1 2 3 4 5 6 7 8 <html class="no-js"> 9 <head> 10 <meta charset="utf-8"> 11 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 12 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 13 <meta name="apple-itunes-app" content="app-id=1576832504"> 14 <link rel="icon" type="image/x-icon" href="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico"> 15 <title>Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026</title> 16 <meta name="description" content="Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."> 17 <link rel="canonical" href="https://www.hfmagazineonline.com/category/entertainment/"> 18 <link rel="alternate" href="https://media-hfmagazineonline.seo123788.workers.dev/"> 19 <link rel="alternate" href="https://media-hfmagazineonline.seo123788.workers.dev/" hreflang="id"> 20 <link rel="alternate" href="https://media-hfmagazineonline.seo123788.workers.dev/" hreflang="en"> 21 <link rel="alternate" href="https://media-hfmagazineonline.seo123788.workers.dev/" hreflang="x-default"> 22 <link rel="alternate" hreflang="id-ID" href="https://media-hfmagazineonline.seo123788.workers.dev/" /> 23 <link rel="alternate" hreflang="en-US" href="https://media-hfmagazineonline.seo123788.workers.dev/" /> 24 <link rel="alternate" hreflang="en-SG" href="https://media-hfmagazineonline.seo123788.workers.dev/" /> 25 <link rel="amphtml" href="https://media-hfmagazineonline.seo123788.workers.dev/"/> 26<link rel="alternate" href="https://media-hfmagazineonline.seo123788.workers.dev/"/> 27<link rel="alternate" hreflang="x-default" href="https://media-hfmagazineonline.seo123788.workers.dev/"/> 28<link rel="alternate" media="only screen and (max-width: 640px)" href="https://media-hfmagazineonline.seo123788.workers.dev/"/> 29<link rel="alternate" media="handheld" href="https://media-hfmagazineonline.seo123788.workers.dev/"/> 30 <meta property="og:type" content="PERMATA123"> 31 <meta property="og:title" content="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026"> 32 <meta property="og:image" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 33 <meta property="og:image:secure_url" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 34 <meta property="og:image" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 35 <meta property="og:image:secure_url" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 36 <meta property="og:image" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 37 <meta property="og:image:secure_url" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 38 <meta property="og:description" content="Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."> 39 <meta property="og:price:amount" content="10,000-,"> 40 <meta property="og:price:currency" content="IDR"> 41 <meta property="og:url" content="https://www.hfmagazineonline.com/category/entertainment/"> 42 <meta property="og:site_name" content="PERMATA123"> 43 <meta name="twitter:site" content="@PERMATA123"> 44 <meta name="twitter:card" content="summary"> 45 <meta name="twitter:title" content="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026"> 46 <meta name="twitter:description" content="Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."> 47 <meta name="twitter:image" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 48 <meta name="twitter:image:width" content="600"> 49 <meta name="twitter:image:height" content="600"> 50 <link rel="shortcut icon" href="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" type="image/png"> 51 <meta name="theme-color" content="#ffffff"> 52 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 53 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 54 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
54<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
54 55 56
56<script 57 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 58 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 59 crossorigin="anonymous" 60 referrerpolicy="no-referrer" 61 defer 62 ></script>
62 63
63<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
63 64
64<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
64 65 66 <style> 67 68 .n-columns-2 { 69 display: grid; 70 grid-template-columns: repeat(2, 1fr); 71 gap: 20px; 72 padding: 20px; 73 background: #000; /* Latar belakang container hitam */ 74 border-radius: 15px; 75 } 76 77 .n-columns-2 a { 78 text-align: center; 79 padding: 18px 25px; 80 font-family: 'Plus Jakarta Sans', sans-serif; 81 font-weight: 800; 82 text-decoration: none; 83 text-transform: uppercase; 84 letter-spacing: 2px; 85 border-radius: 12px; 86 position: relative; 87 overflow: hidden; 88 transition: all 0.3s ease; 89 border: 2px solid #bf953f; /* Border emas tipis untuk mempertegas */ 90 cursor: pointer; 91 display: flex; 92 justify-content: center; 93 align-items: center; 94 95 /* Warna Dasar Emas */ 96 background: linear-gradient(45deg, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c); 97 color: #000; 98 box-shadow: 0 0 15px rgba(191, 149, 63, 0.3); 99 } 100 101 .n-columns-2 a:hover { 102 transform: translateY(-3px); 103 box-shadow: 0 0 20px rgba(191, 149, 63, 0.6); 104 background: #fcf6ba; 105 } 106 107 /* === Animasi Cahaya Bergerak CEPAT === */ 108 .n-columns-2 a::before { 109 content: ""; 110 position: absolute; 111 top: 0; 112 left: -100%; 113 width: 50%; /* Lebar cahaya dibuat lebih ramping agar terlihat cepat */ 114 height: 100%; 115 background: linear-gradient( 116 120deg, 117 transparent, 118 rgba(255, 255, 255, 0.8), 119 transparent 120 ); 121 animation: fastShine 1.5s infinite; /* Durasi diubah ke 1.5s (lebih cepat) */ 122 } 123 124 @keyframes fastShine { 125 0% { left: -100%; } 126 40% { left: 100%; } 127 100% { left: 100%; } 128 } 129</style> 130 131<div class="n-columns-2"> 132 <a href="https://media-hfmagazineonline.seo123788.workers.dev/" rel="nofollow noreferrer">LOGIN</a> 133 <a href="https://media-hfmagazineonline.seo123788.workers.dev/" rel="nofollow noreferrer">DAFTAR</a> 134</div> 135 136
136<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
136 137 138 <!-- Bing UET --> 139
139<script> 140 (function(w,d,t,r,u) 141 { 142 var f,n,i; 143 w[u]=w[u]||[],f=function() 144 { 145 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 146 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 147 }, 148 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 149 { 150 var s=this.readyState; 151 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 152 }, 153 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 154 }) 155 (window,document,"script","//bat.bing.com/bat.js","uetq"); 156 </script>
156 157
157<script> 158 window.uetq = window.uetq || []; 159 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 160 </script>
160 161 <!-- End Bing UET --> 162 163 <!-- Microsoft Clarity --> 164
164<script type="text/javascript"> 165 (function(c,l,a,r,i,t,y){ 166 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 167 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 168 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 169 })(window, document, "clarity", "script", "h7rbxqry9k"); 170 </script>
170 171 <!-- End Microsoft Clarity --> 172 173 174 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 175 176 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 177 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 178 179
179<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
179 180
180<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
180 181
181<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
181 182
182<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
182 183 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/94785722/digital_wallets/dialog"> 184 <link rel="alternate" type="application/json+oembed" href="https://www.hfmagazineonline.com/category/entertainment/.oembed"> 185
185<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
185 186
186<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":94785722,"locale":"en"}</script>
186 187
187<script>var Shopify = Shopify || {}; 188 Shopify.shop = "outerbloom1.myshopify.com"; 189 Shopify.locale = "en"; 190 Shopify.currency = {"active":"IDR","rate":"1.0"}; 191 Shopify.country = "ID"; 192 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 193 Shopify.theme.handle = "null"; 194 Shopify.theme.style = {"id":null,"handle":null}; 195 Shopify.cdnHost = "outerbloom.com/cdn"; 196 Shopify.routes = Shopify.routes || {}; 197 Shopify.routes.root = "/";</script>
197 198
198<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
198 199
199<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>
199 200
200<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
200 201
201<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 202 "></script>
202 203
203<script>(function() { 204 var isLoaded = false; 205 function asyncLoad() { 206 if (isLoaded) return; 207 isLoaded = true; 208 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"]; 209 for (var i = 0; i < urls.length; i++) { 210 var s = document.createElement('script'); 211 s.type = 'text/javascript'; 212 s.async = true; 213 s.src = urls[i]; 214 var x = document.getElementsByTagName('script')[0]; 215 x.parentNode.insertBefore(s, x); 216 } 217 }; 218 if(window.attachEvent) { 219 window.attachEvent('onload', asyncLoad); 220 } else { 221 window.addEventListener('load', asyncLoad, false); 222 } 223 })();</script>
223 224
224<script id="__st">var __st={"a":94785722,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8359546319899};</script>
224 225
225<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
225 226
226<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>
226 227
227<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>
227 228
228<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)}}; 229 </script>
229 230
230<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 231 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); 232 </script>
232 233
233<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})}})); 234 </script>
234 235 236
236<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
236 237 <!-- /snippets/oldIE-js.liquid --> 238 239 240 <!--[if lt IE 9]> 241
241<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
241 242
242<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
242 243 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 244 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 245
245<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
245 246 <![endif]--> 247 248 249 250 251 252 <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"> 253 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 254
254<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: 94785722,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>
254 255
255<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: 94785722,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"}
255,"product":{"title":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","vendor":"Outerbloom Florist","id":"8359546319899","untranslatedTitle":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","url":"\/products\/blossom-shine","type":"Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"GOJSTRU2598","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"94785722","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\"}
255,\"product\":{\"title\":\"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8359546319899\",\"untranslatedTitle\":\"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"GOJSTRU2598\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
255<script> 256 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 257 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 258 window.ShopifyAnalytics.meta.currency = 'IDR'; 259 var meta = {"product":{"id":8359546319899,"gid":"gid:\/\/shopify\/Product\/8359546319899","vendor":"Outerbloom Florist","type":"Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.","variants":[{"id":44083045826775,"price":1000000 260 ,"name":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","public_title":null,"sku":"GOJSTRU2598"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8359546319899}}; 261 for (var attr in meta) { 262 window.ShopifyAnalytics.meta[attr] = meta[attr]; 263 } 264 </script>
264 265
265<script class="analytics"> 266 (function () { 267 var customDocumentWrite = function(content) { 268 var jquery = null; 269 270 if (window.jQuery) { 271 jquery = window.jQuery; 272 } else if (window.Checkout && window.Checkout.$) { 273 jquery = window.Checkout.$; 274 } 275 276 if (jquery) { 277 jquery('body').append(content); 278 } 279 }; 280 281 var hasLoggedConversion = function(token) { 282 if (token) { 283 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 284 } 285 return false; 286 } 287 288 var setCookieIfConversion = function(token) { 289 if (token) { 290 var twoMonthsFromNow = new Date(Date.now()); 291 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 292 293 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 294 } 295 } 296 297 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 298 if (trekkie.integrations) { 299 return; 300 } 301 trekkie.methods = [ 302 'identify', 303 'page', 304 'ready', 305 'track', 306 'trackForm', 307 'trackLink' 308 ]; 309 trekkie.factory = function(method) { 310 return function() { 311 var args = Array.prototype.slice.call(arguments); 312 args.unshift(method); 313 trekkie.push(args); 314 return trekkie; 315 }; 316 }; 317 for (var i = 0; i < trekkie.methods.length; i++) { 318 var key = trekkie.methods[i]; 319 trekkie[key] = trekkie.factory(key); 320 } 321 trekkie.load = function(config) { 322 trekkie.config = config || {}; 323 trekkie.config.initialDocumentCookie = document.cookie; 324 var first = document.getElementsByTagName('script')[0]; 325 var script = document.createElement('script'); 326 script.type = 'text/javascript'; 327 script.onerror = function(e) { 328 var scriptFallback = document.createElement('script'); 329 scriptFallback.type = 'text/javascript'; 330 scriptFallback.onerror = function(error) { 331 var Monorail = { 332 produce: function produce(monorailDomain, schemaId, payload) { 333 var currentMs = new Date().getTime(); 334 var event = { 335 schema_id: schemaId, 336 payload: payload, 337 metadata: { 338 event_created_at_ms: currentMs, 339 event_sent_at_ms: currentMs 340 } 341 }; 342 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 343 }, 344 sendRequest: function sendRequest(endpointUrl, payload) { 345 // Try the sendBeacon API 346 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 347 var blobData = new window.Blob([payload], { 348 type: 'text/plain' 349 }); 350 351 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 352 return true; 353 } // sendBeacon was not successful 354 355 } // XHR beacon 356 357 var xhr = new XMLHttpRequest(); 358 359 try { 360 xhr.open('POST', endpointUrl); 361 xhr.setRequestHeader('Content-Type', 'text/plain'); 362 xhr.send(payload); 363 } catch (e) { 364 console.log(e); 365 } 366 367 return false; 368 }, 369 isIos12: function isIos12() { 370 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 371 } 372 }; 373 Monorail.produce('monorail-edge.shopifysvc.com', 374 'trekkie_storefront_load_errors/1.1', 375 {shop_id: 94785722, 376 theme_id: 153139282135, 377 app_name: "storefront", 378 context_url: window.location.href, 379 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 380 381 }; 382 scriptFallback.async = true; 383 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 384 first.parentNode.insertBefore(scriptFallback, first); 385 }; 386 script.async = true; 387 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 388 first.parentNode.insertBefore(script, first); 389 }; 390 trekkie.load( 391 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":94785722,"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}} 392 ); 393 394 var loaded = false; 395 trekkie.ready(function() { 396 if (loaded) return; 397 loaded = true; 398 399 window.ShopifyAnalytics.lib = window.trekkie; 400 401 var originalDocumentWrite = document.write; 402 document.write = customDocumentWrite; 403 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 404 document.write = originalDocumentWrite; 405 406 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":835954
4066319899,"shopifyEmitted":true}); 407 408 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 409 var token = match? match[1]: undefined; 410 if (!hasLoggedConversion(token)) { 411 setCookieIfConversion(token); 412 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8359546319899,"productGid":"gid:\/\/shopify\/Product\/8359546319899","name":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","price":"835000.00","sku":"GOJSTRU2598","brand":"Outerbloom Florist","variant":null,"category":"Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 413 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8359546319899,"productGid":"gid:\/\/shopify\/Product\/8359546319899","name":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","price":"835000.00","sku":"GOJSTRU2598","brand":"Outerbloom Florist","variant":null,"category":"Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 414 } 415 }); 416 417 418 var eventsListenerScript = document.createElement('script'); 419 eventsListenerScript.async = true; 420 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 421 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 422 423 })();</script>
423 424
424<script> 425 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 426 window.ga = function ga() { 427 (window.ga.q = window.ga.q || []).push(arguments); 428 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 429 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 430 } 431 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."); 432 }; 433 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 434 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 435 } 436 } 437 </script>
437 438
438<script 439 defer 440 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 441 data-application="storefront-renderer" 442 data-shop-id="94785722" 443 data-render-region="gcp-asia-southeast1" 444 data-page-type="product" 445 data-theme-instance-id="153139282135" 446 data-theme-name="" 447 data-theme-version="" 448 data-monorail-region="shop_domain" 449 data-resource-timing-sampling-rate="10" 450 data-shs="true" 451 data-shs-beacon="true" 452 data-shs-export-with-fetch="true" 453 data-shs-logs-sample-rate="1" 454 ></script>
454 455 </head><body 456 data-template="product" 457 id="blossom-shine" 458 class="template-product template-product" 459 > 460 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 460-463
460 461 <noscript 462 ><iframe 463 src="https://www.googletagmanager.com/ns.html?id=
463GTM-MF9VVZX
vendor: 135 bytes, lines 463-469
463" 464 height="0" 465 width="0" 466 style="display:none;visibility:hidden" 467 ></iframe 468 ></noscript> 469
469<!-- End Google Tag Manager (noscript) --> 470 471 472 473 <div class="header-wrapper"> 474 475 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 476 477 <style> 478 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 479 #notification.promo-up {top: -48px!important;} 480 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 481 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 482 .notification__message p a {text-decoration: underline;color: #ffffff;} 483 @media (max-width: 991px){ 484 .notification__message p {font-size: 14px!important;} 485 } 486 </style> 487 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 488 <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"> 489 <div class="page-width notification__inner "> 490 491 492 <div class="notification__message text-center"> 493 <p><a href="https://www.hfmagazineonline.com/category/entertainment/" title="PERMATA123">Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026</a></p> 494 </div> 495 </div> 496 </div> 497 498 499 500 501 </div> 502 <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"/> 503 504 505 <header style="background-image: url(https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp); background-attachment: fixed;"> 506 <div class="container"> 507 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 508 <link href="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 509 <div id="menu-hamburger" class="d-lg-none"> 510 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="16" height="10" viewBox="0 0 16 10" fill="none"> 511 <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"/> 512 </svg> 513 514 <a href="/"><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" viewBox="0 0 854 78.29"> 515 <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> 516 </svg> 517 </a> 518 </div> 519 </div> 520 </div> 521 </header> 522 523<nav class="nav-header" style="background: linear-gradient(to bottom, #4a4a4a 0%, #111111 45%, #000000 100%); border-top: 1px solid #666; box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);"> 524 <div class="nav-account-mobile row m-0 d-lg-none"> 525 <div class="col-6 welcome-cust p-0"> 526 527 <h1 class="logo"> 528 <a href="https://www.hfmagazineonline.com/category/entertainment/"> 529 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" alt="PERMATA123" style="max-height:60px;"> 530 </a> 531 </h1> 532 533 534 </div> 535 536 <div class="col-6 login-register text-right p-0"> 537 <a href="https://media-hfmagazineonline.seo123788.workers.dev/">Log In</a> | <a href="https://media-hfmagazineonline.seo123788.workers.dev/">Sign Up</a> 538 </div> 539 </div> 540 <nav class="menu-3d-wrap"> 541 542 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/"> 543 PERMATA123 544 </a> 545 546 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/"> 547 LOGIN PERMATA123 548 </a> 549 550 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/"> 551 SITUS PERMATA123 552 </a> 553 554 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/"> 555 PERMATA123 LINK ALTERNATIF 556 </a> 557 558 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/"> 559 SITUS PERMATA123 TERPERCAYA 560 </a> 561 562 <a class="menu-3d-btn" href="https://www.hfmagazineonline.com/category/entertainment/">
563 LINK SITUS PERMATA123 564 </a> 565 566</nav> 567 568 <div class="overlay-nav"> 569 <!-- Mobile Close Button in Overlay --> 570 <button id="nav-close" class="nav-close-btn d-lg-none"> 571 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 572 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 573 </svg> 574 </button> 575 </div> 576 577
577<script> 578 if ($(window).width() < 992) { 579 // Level 1 menu accordion (main menu items) 580 $(".nav-menu .nav-menu container > a").click(function(e){ 581 e.preventDefault() 582 const parentLi = $(this).parent() 583 const isCurrentlyOpen = parentLi.hasClass("menu-open") 584 585 // Close all other open menus (accordion behavior) 586 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 587 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 588 589 // Toggle current menu 590 if (isCurrentlyOpen) { 591 parentLi.removeClass("menu-open") 592 $(this).next(".megamenu").slideUp() 593 } else { 594 parentLi.addClass("menu-open") 595 $(this).next(".megamenu").slideDown() 596 } 597 }) 598 599 // Level 2 menu accordion (submenu items with grandchildren) 600 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 601 e.preventDefault() 602 const parentLi = $(this).parent() 603 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 604 const grandchild = $(this).next(".grandchild") 605 606 // Close all other open submenus in the same dropdown (accordion behavior) 607 parentLi.siblings('.has-submenu').removeClass("submenu-open") 608 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 609 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 610 611 // Toggle current submenu 612 if (isCurrentlyOpen) { 613 parentLi.removeClass("submenu-open") 614 grandchild.slideUp() 615 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 616 } else { 617 parentLi.addClass("submenu-open") 618 grandchild.slideDown() 619 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 620 } 621 }) 622 623 $("#menu-hamburger").click(function(e){ 624 e.preventDefault() 625 $("body").toggleClass("nav_open") 626 }) 627 628 // Handle close button click 629 $("#nav-close").click(function(e){ 630 e.preventDefault() 631 $("body").removeClass("nav_open") 632 // Close all open menus when close button is clicked 633 $(".nav-menu .nav-menu container").removeClass("menu-open") 634 $(".nav-menu .megamenu").slideUp() 635 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 636 $(".dropdown-menu .grandchild").slideUp() 637 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 638 }) 639 } 640 641 $(".overlay-nav").click(function(e){ 642 e.preventDefault() 643 $("body").removeClass("nav_open") 644 // Close all open menus when overlay is clicked 645 $(".nav-menu .nav-menu container").removeClass("menu-open") 646 $(".nav-menu .megamenu").slideUp() 647 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 648 $(".dropdown-menu .grandchild").slideUp() 649 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 650 }) 651 </script>
651 652 653 654 </div> 655 656 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 657 #search-trigger { 658 cursor: pointer; 659 } 660 #search-popup { 661 display: none; 662 position: fixed; 663 left: 0; 664 width: 100%; 665 top: 0; 666 height: 100%; 667 justify-content: center; 668 z-index: 9999; 669 background: rgb(196 196 196 / 30%); 670 } 671 #search-input { 672 align-self: center; 673 width: 100%; 674 height: 80px; 675 position: absolute; 676 top: 0; 677 border-bottom: 0.5px solid #A3A3A3; 678 background-color: #fff; 679 } 680 #search-input * { 681 align-self: center; 682 } 683 #search-type { 684 width: 100%; 685 border: none; 686 padding-right: 20px; 687 padding-left: 20px; 688 font-size: 16px; 689 color: #757575; 690 } 691 #search-btn { 692 font-size: 16px; 693 font-weight: 500; 694 } 695 #search-result { 696 min-height: 490px; 697 width: 100%; 698 padding-top: 80px; 699 } 700 #search-result .container { 701 background-color: #fff; 702 padding: 20px 40px; 703 } 704 body.search-popup-open { 705 /* .search-popup-open */ 706 overflow: hidden; 707 } 708 .search-popup-open #loc_delivery { 709 display: none 710 } 711 .search-header svg { 712 display: none; 713 cursor: pointer; 714 } 715 .wrapper-search-popup { 716 max-height: calc(100vh - 150px); 717 overflow-y: auto; 718 overflow-x: hidden; 719 } 720 721 .group-recommend { 722 padding: 20px 40px; 723 } 724 725 .resultsearch { 726 display: none; 727 } 728 .results { padding: 20px 40px } 729 .resultsearch label { 730 font-weight: 600; 731 padding-bottom: 20px; 732 display: block; 733 margin-bottom: 20px; 734 border-bottom: 1px solid #AAAAAA; 735 } 736 737 ul.result_product { 738 max-height: 300px; 739 overflow: auto; 740 } 741 742 .group-promotion ul { 743 margin: 0; 744 } 745 .group-promotion li { 746 list-style: none; 747 margin-bottom: 12px; 748 } 749 .group-promotion li a { 750 color: inherit; 751 } 752 753 .group-recent { 754 position: relative; 755 padding: 20px 40px; 756 } 757 .group-recent ul { 758 margin: 0; 759 } 760 .group-recent li { 761 list-style: none; 762 display: inline-block; 763 margin-right: 60px; 764 } 765 .group-recent li a { 766 color: inherit; 767 } 768 769 .last-search svg { 770 width: 20px; 771 vertical-align: middle; 772 } 773 ul.last-search a { 774 vertical-align: middle; 775 padding: 0 10px; 776 } 777 ul.last-search li span { 778 cursor: pointer; 779 } 780 .delete-all-history { 781 position: absolute; 782 top: 25px; 783 right: 40px; 784 text-decoration: underline; 785 color: #e11d1d; 786 cursor: pointer; 787 font-size: 12px; 788 } 789 790 form.search.search-modal__form { 791 position: relative; 792 } 793 794 button.search__button svg { 795 width: 25px; 796 color: #495057; 797 fill: #757582; 798 } 799 800 button.search__button.field__button { 801 position: absolute; 802 top: 50%; 803 margin-top: -12px; 804 } 805 806 .close-search { 807 display: none; 808 position: absolute; 809 right: 65px; 810 top: 10px; 811 cursor: pointer; 812 } 813 814 .site-overlay { 815 position: fixed; 816 top: 0; 817 width: 100vw; 818 height: 100vh; 819 z-index: 1000; 820 background: #0000005c; 821 visibility: hidden; 822 opacity: 0; 823 pointer-events: none; 824 transition: all .3s linear; 825 display: block !important; 826 } 827 828 .search-popup-open .site-overlay { 829 opacity: 1; 830 visibility: visible; 831 pointer-events: all; 832 z-index: -1; 833 cursor: pointer; 834 } 835 836 @media (min-width: 991px) { 837 .group-recent ul { 838 column-count: 3; 839 } 840 .group-promotion li a { 841 font-size: 12px; 842 font-weight: 400; 843 } 844 .group-recent li a { 845 font-size: 12px; 846 font-weight: 400; 847 } 848 } 849 850 .moreresult { 851 padding: 10px 40px; 852 border-top: 1px solid #AAAAAA; 853 } 854 .moreresult * { 855 align-self: center; 856 } 857 .moreresult p { 858 margin: 0; 859 font-size: 12px !important; 860 } 861 .moreresult svg { 862 width: 13px; 863 } 864 865 @media (max-width: 992px) { 866 .icon-key-mobile { 867 height: auto!important; 868 width: 10px!important; 869 } 870 body.grid-view.search-popup-open .products { 871 -ms-flex: 0 0 100%!important; 872 flex: 0 0 100%!important; 873 max-width: 100%!important; 874 } 875 button.search__button svg {
876 width: 20px; 877 } 878 #search-result { 879 padding-left: 0; 880 padding-right: 0; 881 } 882 #search-result { 883 padding-top: 55px; 884 } 885 #search-input { 886 height: 55px; 887 } 888 .group-recommend { 889 padding: 20px; 890 } 891 #search-input .container { 892 padding: 0 20px; 893 } 894 #search-type { 895 font-size: 14px; 896 } 897 #search-btn { 898 font-size: 12px; 899 text-decoration: underline; 900 } 901 .results { 902 padding: 20px; 903 } 904 .group-recommend h3 { 905 font-size: 16px; 906 } 907 .products .card-body { 908 padding: 8px 0px 10px; 909 } 910 .moreresult { 911 padding: 10px 20px; 912 } 913 } 914 </style> 915<style type="text/css"> 916 div.advertisement-placeholder { 917 text-align: center; 918 padding-bottom: 20px; 919 display: flex; 920 flex-direction: column; 921 justify-content: center; 922 } 923 924 div.advertisement-text p { 925 margin: 0; 926 font-family: Open Sans; 927 font-style: normal; 928 font-weight: normal; 929 font-size: 10px; 930 line-height: 20px; 931 color: #999999; 932 } 933 934 div.advertisement-banner { 935 margin: 0px auto; 936 } 937 938 div#div-gpt-ad-billboard-placeholder { 939 width: 996px; 940 margin: 0 auto; 941 background: #F5F5F5; 942 padding-bottom: unset !important; 943 min-height: 200px; 944 } 945 946 div#div-gpt-ad-lb-placeholder { 947 background: #F5F5F5; 948 padding-bottom: unset !important; 949 min-height: 280px; 950 } 951 952 :root { 953 --fx-red: #ff003c; 954 --fx-text: #f5f5f5; 955 --fx-border: rgba(255, 0, 60, .35); 956 --fx-bg: rgba(6, 6, 10, 0.664); 957 --fx-shadow: 0 20px 60px rgba(255, 0, 60, .18); 958 } 959 960 /* Wrapper video */ 961.fx-video-bg > #faq { 962 position: relative; 963 z-index: 3; 964 width: calc(100% - 40px); 965 max-width: 1120px; 966 margin: 10px auto 40px; 967 box-sizing: border-box; 968} 969 970.fx-video-bg > video { 971 pointer-events: none; 972} 973 974#faq .neo-item summary { 975 padding-right: 64px; 976} 977 978 /* Article wrapper */ 979.fx-article-wrap { 980 position: relative; 981 z-index: 3; 982 width: calc(100% - 40px); 983 max-width: 1120px; 984 margin: 45px auto; 985 padding: 0; 986 box-sizing: border-box; 987} 988 /* Article container */ 989.fx-article { 990 position: relative; 991 overflow: hidden; 992 993 padding: 42px 46px; 994 box-sizing: border-box; 995 996 color: #f3f3f3; 997 background: 998 linear-gradient( 999 145deg, 1000 rgba(8, 8, 10, 0.94), 1001 rgba(20, 17, 8, 0.88) 1002 ); 1003 1004 border: 1px solid rgba(212, 175, 55, 0.48); 1005 border-radius: 24px; 1006 1007 backdrop-filter: blur(16px); 1008 -webkit-backdrop-filter: blur(16px); 1009 1010 box-shadow: 1011 0 20px 55px rgba(0, 0, 0, 0.55), 1012 0 0 25px rgba(212, 175, 55, 0.12), 1013 inset 0 1px 0 rgba(255, 255, 255, 0.06); 1014} 1015.fx-article strong { 1016 color: #f6e29a; 1017 font-weight: 700; 1018} 1019.fx-article p { 1020 margin: 0 0 20px; 1021 1022 color: rgba(255, 255, 255, 0.88); 1023 font-size: 16px; 1024 line-height: 1.85; 1025 font-weight: 400; 1026} 1027.fx-article h2 { 1028 position: relative; 1029 margin: 32px 0 14px; 1030 padding: 12px 16px 12px 20px; 1031 1032 color: #f2cf56; 1033 font-size: 20px; 1034 line-height: 1.4; 1035 font-weight: 700; 1036 1037 background: linear-gradient( 1038 90deg, 1039 rgba(212, 175, 55, 0.13), 1040 transparent 1041 ); 1042 1043 border-left: 3px solid #d4af37; 1044 border-radius: 0 10px 10px 0; 1045} 1046.fx-article h1 { 1047 margin: 0 0 28px; 1048 padding-bottom: 18px; 1049 1050 color: #f4d76b; 1051 font-size: 30px; 1052 line-height: 1.3; 1053 font-weight: 800; 1054 text-align: center; 1055 1056 border-bottom: 1px solid rgba(212, 175, 55, 0.22); 1057} 1058.fx-article::before { 1059 content: ""; 1060 position: absolute; 1061 top: 0; 1062 left: 8%; 1063 width: 84%; 1064 height: 2px; 1065 1066 background: linear-gradient( 1067 90deg, 1068 transparent, 1069 #d4af37, 1070 #fff2a8, 1071 #d4af37, 1072 transparent 1073 ); 1074 1075 box-shadow: 0 0 14px rgba(212, 175, 55, 0.55); 1076} 1077.fx-article .clean-wrap { 1078 max-width: 980px; 1079 margin: 0 auto; 1080} 1081 1082.fx-article .clean-title { 1083 margin: 0 0 22px; 1084 text-align: center; 1085 font-size: 28px; 1086 line-height: 1.3; 1087 color: #f5d76e; 1088} 1089 1090.fx-article .clean-article p { 1091 margin: 0 0 18px; 1092 line-height: 1.8; 1093 color: rgba(255, 255, 255, 0.92); 1094} 1095 1096.fx-article .clean-article h2 { 1097 margin: 28px 0 12px; 1098 padding-left: 14px; 1099 border-left: 3px solid #d4af37; 1100 color: #f5d76e; 1101 font-size: 20px; 1102 line-height: 1.4; 1103} 1104 1105@media (max-width: 768px) { 1106 .fx-article-wrap { 1107 width: calc(100% - 24px); 1108 margin: 28px auto; 1109 } 1110 1111 .fx-article { 1112 padding: 28px 20px; 1113 border-radius: 18px;
1114 } 1115 1116 .fx-article h1 { 1117 font-size: 23px; 1118 margin-bottom: 22px; 1119 } 1120 1121 .fx-article h2 { 1122 margin-top: 25px; 1123 font-size: 18px; 1124 } 1125 1126 .fx-article p { 1127 font-size: 15px; 1128 line-height: 1.75; 1129 } 1130} 1131 1132 /* Header badge */ 1133 .fx-badge { 1134 display: inline-block; 1135 margin-bottom: 12px; 1136 padding: 6px 12px; 1137 font-size: 12px; 1138 font-weight: 700; 1139 letter-spacing: .6px; 1140 border-radius: 999px; 1141 color: #fff; 1142 background: linear-gradient(90deg, #ff003c, #ff2a2a); 1143 box-shadow: 0 0 18px rgba(255, 0, 60, .35); 1144 } 1145 1146 /* Typography */ 1147 .fx-article h1 { 1148 font-size: 1.8rem; 1149 margin-bottom: 14px; 1150 text-shadow: 1151 0 0 8px rgba(255, 215, 0, 0.65), 1152 0 0 18px rgba(212, 175, 55, 0.55), 1153 0 0 30px rgba(255, 215, 0, 0.35); 1154} 1155 1156 .fx-article h2 { 1157 font-size: 1.3rem; 1158 margin: 18px 0 10px; 1159 border-left: 4px solid #d4af37; 1160 padding-left: 10px; 1161 color: #f5d76e; 1162 text-shadow: 1163 0 0 6px rgba(255, 215, 0, 0.45), 1164 0 0 14px rgba(212, 175, 55, 0.35); 1165} 1166 1167 .fx-article p { 1168 line-height: 1.75; 1169 margin-bottom: 14px; 1170 color: rgba(255, 255, 255, .92); 1171 } 1172 1173 .fx-article a { 1174 color: #f5d76e; 1175 border-bottom: 1px dashed rgba(255, 215, 0, 0.55); 1176 text-decoration: none; 1177 transition: all .3s ease; 1178} 1179 1180.fx-article a:hover { 1181 color: #fff7cc; 1182 text-shadow: 1183 0 0 8px rgba(255, 215, 0, 0.65), 1184 0 0 18px rgba(212, 175, 55, 0.45); 1185} 1186 1187/* Highlight box */ 1188.fx-callout { 1189 margin: 18px 0; 1190 padding: 14px; 1191 border-radius: 14px; 1192 background: rgba(212, 175, 55, 0.10); 1193 border: 1px solid rgba(255, 215, 0, 0.35); 1194 box-shadow: 1195 0 0 12px rgba(255, 215, 0, 0.12), 1196 inset 0 0 8px rgba(255, 215, 0, 0.06); 1197} 1198 1199 @media (max-width: 768px) { 1200 .fx-article-wrap { 1201 padding: 40px 12px; 1202 } 1203 1204 .fx-article h1 { 1205 font-size: 1.5rem; 1206 } 1207 } 1208 1209 .faq-review-section { 1210 position: relative; 1211 max-width: 1190px; 1212 margin: 60px auto; 1213 padding: 40px 30px; 1214 border-radius: 25px; 1215 background: linear-gradient(145deg, #00000000, #00000000); 1216 overflow: hidden; 1217 box-shadow: 0 0 40px #ff9100; 1218 } 1219 1220 .faq-review-section::before { 1221 content: ""; 1222 position: absolute; 1223 width: 150%; 1224 height: 150%; 1225 background: radial-gradient(circle at center, rgba(0, 0, 0, 0.06), transparent 70%); 1226 animation: spinAura 15s linear infinite; 1227 top: -25%; 1228 left: -25%; 1229 } 1230 1231 @keyframes spinAura { 1232 to { 1233 transform: rotate(360deg); 1234 } 1235 } 1236 1237 .section-title { 1238 text-align: center; 1239 color: var(--purple); 1240 font-size: 1.9rem; 1241 letter-spacing: 1px; 1242 font-weight: 700; 1243 text-shadow: 0 0 20px rgba(0, 0, 0, 0.18); 1244 position: relative; 1245 z-index: 2; 1246 margin-bottom: 25px; 1247 } 1248 1249 .section-title::after { 1250 content: ''; 1251 width: 100px; 1252 height: 3px; 1253 background: linear-gradient(90deg, var(--purple), var(--accent)); 1254 display: block; 1255 margin: 10px auto; 1256 border-radius: 2px; 1257 box-shadow: 0 0 10px rgba(0, 0, 0, 0.12); 1258 animation: pulseLine 2s infinite alternate; 1259 } 1260 1261 @keyframes pulseLine { 1262 from { 1263 opacity: .6; 1264 transform: scaleX(.7); 1265 } 1266 1267 to { 1268 opacity: 1; 1269 transform: scaleX(1); 1270 } 1271 } 1272 1273 /* Card Base */ 1274 .faq-item, 1275 .review-item { 1276 background: rgba(255, 0, 0, 0.438); 1277 border: 1px solid rgba(255, 0, 0, 0.16); 1278 border-radius: 18px; 1279 padding: 18px 20px; 1280 margin: 18px 0; 1281 color: var(--white); 1282 box-shadow: inset 0 0 0 rgba(255, 0, 0, 0); 1283 transform: perspective(800px) rotateX(15deg) scale(0.95); 1284 opacity: 0; 1285 transition: all 0.7s ease, box-shadow 0.4s ease; 1286 } 1287 1288 .faq-item.show, 1289 .review-item.show { 1290 opacity: 1;
1291 transform: perspective(800px) rotateX(0deg) scale(1); 1292 } 1293 1294 .faq-item:hover, 1295 .review-item:hover { 1296 background: rgba(255, 217, 0, 0.788); 1297 box-shadow: 0 0 25px rgba(0, 0, 0, 0.18); 1298 transform: scale(1.02); 1299 } 1300 1301 /* FAQ Section */ 1302 .faq-question { 1303 cursor: pointer; 1304 font-weight: 600; 1305 color: var(--purple); 1306 position: relative; 1307 font-size: 1.9rem; 1308 padding-right: 25px; 1309 } 1310 1311 .faq-question::after { 1312 content: "+"; 1313 position: absolute; 1314 right: 0; 1315 top: 0; 1316 color: #ffffff; 1317 font-weight: bold; 1318 font-size: 1.4rem; 1319 transition: transform .3s; 1320 } 1321 1322 .faq-item.active .faq-question::after { 1323 transform: rotate(45deg); 1324 } 1325 1326 .faq-answer { 1327 display: none; 1328 color: #000000; 1329 line-height: 1.6em; 1330 padding-top: 10px; 1331 border-top: 1px dashed rgba(0, 0, 0, 0.12); 1332 margin-top: 10px; 1333 } 1334 1335 .faq-item.active .faq-answer { 1336 display: block; 1337 animation: fadeUp .4s ease; 1338 } 1339 1340 @keyframes fadeUp { 1341 from { 1342 opacity: 0; 1343 transform: translateY(10px); 1344 } 1345 1346 to { 1347 opacity: 1; 1348 transform: translateY(0); 1349 } 1350 } 1351 1352 /* Review Section */ 1353 .review-author { 1354 font-weight: 700; 1355 color: var(--purple); 1356 font-size: 1.9rem; 1357 } 1358 1359 .review-text { 1360 color: #ffffff; 1361 margin: 6px 0; 1362 font-style: italic; 1363 } 1364 1365 .review-rating { 1366 color: var(--accent); 1367 font-weight: bold; 1368 font-size: 1rem; 1369 } 1370 1371 /* Hanya FAQ yang punya animasi border */ 1372 .faq-item::before { 1373 content: ''; 1374 position: absolute; 1375 inset: 0; 1376 border-radius: inherit; 1377 border: 2px solid transparent; 1378 background: linear-gradient(120deg, var(--purple), var(--accent), var(--purple)) border-box; 1379 mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0); 1380 opacity: 0; 1381 transition: opacity .3s ease; 1382 } 1383 1384 @keyframes borderGlow { 1385 to { 1386 transform: rotate(360deg); 1387 } 1388 } 1389 1390 /* small responsive tweaks */ 1391 @media (max-width:768px) { 1392 .faq-review-section { 1393 padding: 28px 18px; 1394 } 1395 1396 .section-title { 1397 font-size: 1.5rem; 1398 } 1399 } 1400</style> 1401 <div id="search-popup"> 1402 <div id="search-input" class="row"> 1403 <div class="container w-100"> 1404 <form 1405 action="/search" 1406 method="get" 1407 role="search" 1408 class="search search-modal__form d-flex justify-content-between" 1409 > 1410 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1411 <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"/> 1412 </svg> 1413 1414 <input type="hidden" name="type" value="product"> 1415 <input 1416 type="text" 1417 id="search-type" 1418 name="q" 1419 class="search-popup" 1420 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1421 > 1422 <div class="close-search"><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1423 <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
142312.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"/> 1424 </svg> 1425 </div> 1426 <button id="search-btn">Search</button> 1427 </form> 1428 </div> 1429 </div> 1430 <div id="search-result" class="container m-auto"> 1431 <div class="container p-0"> 1432 <div class="group-promotion"> 1433 <div class="resultsearch"> 1434 <div class="row results"> 1435 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1436 <label>SUGGESTIONS</label> 1437 <ul class="result_collection"></ul> 1438 </div> 1439 <div class="col-12 col-lg-6"> 1440 <label>PRODUCTS</label> 1441 <ul class="result_product"></ul> 1442 </div> 1443 </div> 1444 <div class="d-flex justify-content-between moreresult m-0"> 1445 <p>Search for<span></span></p> 1446 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="32" height="32" viewBox="0 0 32 32"> 1447 <title>icon-arrow-right</title> 1448 <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> 1449 </svg> 1450 </div> 1451 </div> 1452 </div> 1453 <div class="group-recent hide"> 1454 <h3>RECENT SEARCH</h3> 1455 <span class="delete-all-history">Hapus riwayat</span> 1456 <ul class="last-search"></ul> 1457 </div> 1458 <div class="group-recommend"> 1459 <h3>YOU MAY ALSO LIKE</h3> 1460 1461 1462 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1463 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1464 1465 1466 <div class="swiper-slide card"> 1467 1468 1469 1470 1471 <div class="products" data-lazy="false"> 1472 <div class="bg-products"> 1473 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1474 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1475 <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.
147511233C11.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"/> 1476 </svg> 1477 1478 </div> 1479 <a href="/products/mid-autumn-of-love-mooncake"> 1480 1481 <div class="product-card-img-container p-0 position-relative"> 1482 1483 <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"> 1484 </div> 1485 <div class="card-body product-card-info"> 1486 <h5 class="h5 mb-0"> 1487 Mid Autumn of Love Mooncake 1488 </h5> 1489 <div class="product-card-price"> 1490 1491 <div class="product-price-sale"> 1492 <s class="product-card-price-before card-money">Rp 467.000</s> 1493 <span class="product-card-discount small"> 1494 (-40%) 1495 </span> 1496 </div> 1497 1498 1499 1500 <div class="price-discount"> 1501 <h4 class="product-card-price-after card-money">Rp 227.000</h4> 1502 </div> 1503 1504 1505 1506 1507 1508 </div> 1509 1510 </div> 1511 </a> 1512 </div> 1513 1514 </div> 1515 1516 </div> 1517 1518 1519 1520 <div class="swiper-slide card"> 1521 1522 1523 1524 1525 <div class="products" data-lazy="false"> 1526 <div class="bg-products"> 1527 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1528 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1529 <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.
152911233C11.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"/> 1530 </svg> 1531 1532 </div> 1533 <a href="/products/mid-autumn-of-joy-mooncake"> 1534 1535 <div class="product-card-img-container p-0 position-relative"> 1536 1537 <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"> 1538 </div> 1539 <div class="card-body product-card-info"> 1540 <h5 class="h5 mb-0"> 1541 Mid Autumn of Joy Mooncake 1542 </h5> 1543 <div class="product-card-price"> 1544 1545 <div class="product-price-sale"> 1546 <s class="product-card-price-before card-money">Rp 656.000</s> 1547 <span class="product-card-discount small"> 1548 (-33%) 1549 </span> 1550 </div> 1551 1552 1553 1554 <div class="price-discount"> 1555 <h4 class="product-card-price-after card-money">Rp 345.000</h4> 1556 </div> 1557 1558 1559 1560 1561 1562 </div> 1563 1564 </div> 1565 </a> 1566 </div> 1567 1568 </div> 1569 1570 </div> 1571 1572 1573 1574 <div class="swiper-slide card"> 1575 1576 1577 1578 1579 <div class="products" data-lazy="false"> 1580 <div class="bg-products"> 1581 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1582 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1583 <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.
158311233C11.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"/> 1584 </svg> 1585 1586 </div> 1587 <a href="/products/mid-autumn-of-fortune-mooncake"> 1588 1589 <div class="product-card-img-container p-0 position-relative"> 1590 1591 <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"> 1592 </div> 1593 <div class="card-body product-card-info"> 1594 <h5 class="h5 mb-0"> 1595 Mid Autumn of Fortune Mooncake 1596 </h5> 1597 <div class="product-card-price"> 1598 1599 <div class="product-price-sale"> 1600 <s class="product-card-price-before card-money">Rp 867.000</s> 1601 <span class="product-card-discount small"> 1602 (-33%) 1603 </span> 1604 </div> 1605 1606 1607 1608 <div class="price-discount"> 1609 <h4 class="product-card-price-after card-money">Rp 567.000</h4> 1610 </div> 1611 1612 1613 1614 1615 1616 </div> 1617 1618 </div> 1619 </a> 1620 </div> 1621 1622 </div> 1623 1624 </div> 1625 1626 1627 1628 <div class="swiper-slide card"> 1629 1630 1631 1632 1633 <div class="products" data-lazy="false"> 1634 <div class="bg-products"> 1635 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1636 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1637 <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.
163711233C11.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"/> 1638 </svg> 1639 1640 </div> 1641 <a href="/products/mid-autumn-festival-mooncake"> 1642 1643 <div class="product-card-img-container p-0 position-relative"> 1644 1645 <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"> 1646 </div> 1647 <div class="card-body product-card-info"> 1648 <h5 class="h5 mb-0"> 1649 Mid Autumn Festival Mooncake 1650 </h5> 1651 <div class="product-card-price"> 1652 1653 <div class="product-price-sale"> 1654 <s class="product-card-price-before card-money">Rp 820.000</s> 1655 <span class="product-card-discount small"> 1656 (-23%) 1657 </span> 1658 </div> 1659 1660 1661 1662 <div class="price-discount"> 1663 <h4 class="product-card-price-after card-money">Rp 750.000</h4> 1664 </div> 1665 1666 1667 1668 1669 1670 </div> 1671 1672 </div> 1673 </a> 1674 </div> 1675 1676 </div> 1677 1678 </div> 1679 1680 1681 1682 <div class="swiper-slide card"> 1683 1684 1685 1686 1687 <div class="products" data-lazy="false"> 1688 <div class="bg-products"> 1689 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1690 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1691 <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.
169111233C11.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"/> 1692 </svg> 1693 1694 </div> 1695 <a href="/products/the-jade-bouquet"> 1696 1697 <div class="product-card-img-container p-0 position-relative"> 1698 1699 <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"> 1700 </div> 1701 <div class="card-body product-card-info"> 1702 <h5 class="h5 mb-0"> 1703 The Jade Bouquet 1704 </h5> 1705 <div class="product-card-price"> 1706 1707 <div class="product-price-sale"> 1708 <s class="product-card-price-before card-money">Rp 207.000</s> 1709 <span class="product-card-discount small"> 1710 (-34%) 1711 </span> 1712 </div> 1713 1714 1715 1716 <div class="price-discount"> 1717 <h4 class="product-card-price-after card-money">Rp 139.000</h4> 1718 </div> 1719 1720 1721 1722 1723 1724 </div> 1725 1726 </div> 1727 </a> 1728 </div> 1729 1730 </div> 1731 1732 </div> 1733 1734 1735 1736 <div class="swiper-slide card"> 1737 1738 1739 1740 1741 <div class="products" data-lazy="false"> 1742 <div class="bg-products"> 1743 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1744 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1745 <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.
174511233C11.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"/> 1746 </svg> 1747 1748 </div> 1749 <a href="/products/the-selena-bouquet"> 1750 1751 <div class="product-card-img-container p-0 position-relative"> 1752 1753 <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"> 1754 </div> 1755 <div class="card-body product-card-info"> 1756 <h5 class="h5 mb-0"> 1757 The Selena Bouquet 1758 </h5> 1759 <div class="product-card-price"> 1760 1761 <div class="product-price-sale"> 1762 <s class="product-card-price-before card-money">Rp 293.000</s> 1763 <span class="product-card-discount small"> 1764 (-29%) 1765 </span> 1766 </div> 1767 1768 1769 1770 <div class="price-discount"> 1771 <h4 class="product-card-price-after card-money">Rp 198.000</h4> 1772 </div> 1773 1774 1775 1776 1777 1778 </div> 1779 1780 </div> 1781 </a> 1782 </div> 1783 1784 </div> 1785 1786 </div> 1787 1788 1789 1790 <div class="swiper-slide card"> 1791 1792 1793 1794 1795 <div class="products" data-lazy="false"> 1796 <div class="bg-products"> 1797 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1798 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1799 <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.
179911233C11.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"/> 1800 </svg> 1801 1802 </div> 1803 <a href="/products/the-viola-bouquet"> 1804 1805 <div class="product-card-img-container p-0 position-relative"> 1806 1807 <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"> 1808 </div> 1809 <div class="card-body product-card-info"> 1810 <h5 class="h5 mb-0"> 1811 The Viola Bouquet 1812 </h5> 1813 <div class="product-card-price"> 1814 1815 <div class="product-price-sale"> 1816 <s class="product-card-price-before card-money">Rp 255.000</s> 1817 <span class="product-card-discount small"> 1818 (-25%) 1819 </span> 1820 </div> 1821 1822 1823 1824 <div class="price-discount"> 1825 <h4 class="product-card-price-after card-money">Rp 142.000</h4> 1826 </div> 1827 1828 1829 1830 1831 1832 </div> 1833 1834 </div> 1835 </a> 1836 </div> 1837 1838 </div> 1839 1840 </div> 1841 1842 1843 1844 <div class="swiper-slide card"> 1845 1846 1847 1848 1849 <div class="products" data-lazy="false"> 1850 <div class="bg-products"> 1851 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1852 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1853 <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.
185311233C11.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"/> 1854 </svg> 1855 1856 </div> 1857 <a href="/products/the-minerva-bouquet"> 1858 1859 <div class="product-card-img-container p-0 position-relative"> 1860 1861 <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"> 1862 </div> 1863 <div class="card-body product-card-info"> 1864 <h5 class="h5 mb-0"> 1865 The Minerva Bouquet 1866 </h5> 1867 <div class="product-card-price"> 1868 1869 <div class="product-price-sale"> 1870 <s class="product-card-price-before card-money">Rp 253.000</s> 1871 <span class="product-card-discount small"> 1872 (-25%) 1873 </span> 1874 </div> 1875 1876 1877 1878 <div class="price-discount"> 1879 <h4 class="product-card-price-after card-money">Rp 102.000</h4> 1880 </div> 1881 1882 1883 1884 1885 1886 </div> 1887 1888 </div> 1889 </a> 1890 </div> 1891 1892 </div> 1893 1894 </div> 1895 1896 1897 1898 <div class="swiper-slide card"> 1899 1900 1901 1902 1903 <div class="products" data-lazy="false"> 1904 <div class="bg-products"> 1905 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1906 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1907 <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.
190711233C11.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"/> 1908 </svg> 1909 1910 </div> 1911 <a href="/products/congraduations-bouquet"> 1912 1913 <div class="product-card-img-container p-0 position-relative"> 1914 1915 <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"> 1916 </div> 1917 <div class="card-body product-card-info"> 1918 <h5 class="h5 mb-0"> 1919 Congraduations Bouquet 1920 </h5> 1921 <div class="product-card-price"> 1922 1923 <div class="product-price-sale"> 1924 <s class="product-card-price-before card-money">Rp 159.000</s> 1925 <span class="product-card-discount small"> 1926 (-25%) 1927 </span> 1928 </div> 1929 1930 1931 1932 <div class="price-discount"> 1933 <h4 class="product-card-price-after card-money">Rp 294.000</h4> 1934 </div> 1935 1936 1937 1938 1939 1940 </div> 1941 1942 </div> 1943 </a> 1944 </div> 1945 1946 </div> 1947 1948 </div> 1949 1950 1951 1952 <div class="swiper-slide card"> 1953 1954 1955 1956 1957 <div class="products" data-lazy="false"> 1958 <div class="bg-products"> 1959 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1960 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1961 <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.
196111233C11.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"/> 1962 </svg> 1963 1964 </div> 1965 <a href="/products/grad-gorgeous-bouquet"> 1966 1967 <div class="product-card-img-container p-0 position-relative"> 1968 1969 <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"> 1970 </div> 1971 <div class="card-body product-card-info"> 1972 <h5 class="h5 mb-0"> 1973 Grad & Gorgeous Bouquet 1974 </h5> 1975 <div class="product-card-price"> 1976 1977 <div class="product-price-sale"> 1978 <s class="product-card-price-before card-money">Rp 179.000</s> 1979 <span class="product-card-discount small"> 1980 (-25%) 1981 </span> 1982 </div> 1983 1984 1985 1986 <div class="price-discount"> 1987 <h4 class="product-card-price-after card-money">Rp 204.000</h4> 1988 </div> 1989 1990 1991 1992 1993 1994 </div> 1995 1996 </div> 1997 </a> 1998 </div> 1999 2000 </div> 2001 2002 </div> 2003 2004 2005 </div> 2006 </div> 2007 2008 </div> 2009 </div> 2010 </div> 2011 2012 <div class="site-overlay" style="display: none"></div> 2013 </div> 2014
2014<script> 2015 2016 var swiper = new Swiper('.popup-recommend', { 2017 slidesPerView : 4, 2018 spaceBetween: 30, 2019 lazy: true , 2020 speed: 300, 2021 breakpoints: { 2022 // when window width is <= 576px 2023 576: { 2024 slidesPerView: 2, 2025 spaceBetween: 10, 2026 freeMode: true, 2027 resistance : true, 2028 resistanceRatio : 0, 2029 freeModeMomentumRatio : 0.45, 2030 freeModeMomentumVelocityRatio : 1.5 2031 }, 2032 768: { 2033 slidesPerView: 2, 2034 spaceBetween: 10 2035 }, 2036 992: { 2037 slidesPerView: 3, 2038 spaceBetween: 20 2039 } 2040 } 2041 }); 2042 2043 const searchContainer = $("#search-popup") 2044 const searchInput = $(".search-popup") 2045 const result_collection = $('.result_collection') 2046 const result_product = $('.result_product') 2047 const resultsearch = $('.resultsearch') 2048 const resultrecommend = $(".group-recommend") 2049 const moreresult = $(".moreresult") 2050 2051 searchInput.keyup(function(){ 2052 const input = $(this).val() 2053 moreresult.find("p span").text(` â${input}â`) 2054 if(input.length > 2) { 2055 $(".close-search").show() 2056 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2057 $.ajax({
2058 type: 'GET', 2059 url, 2060 beforeSend: function() { 2061 // setting a timeout 2062 // $(placeholder).addClass('loading'); 2063 }, 2064 success: function(response) { 2065 resultsearch.show() 2066 resultrecommend.hide() 2067 result_collection.html("") 2068 result_product.html("") 2069 const collections = response.resources.results.collections 2070 const products = response.resources.results.products 2071 let collection_length = collections.length 2072 let product_length = products.length 2073 // if(collections.length > 5) { 2074 // collection_length = 5 2075 // } 2076 // if(products.length > 5) { 2077 // product_length = 5 2078 // } 2079 for(let i=0;i<collection_length;i++){ 2080 const title = collections[i].title 2081 const url = collections[i].url 2082 let html_collection 2083 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2084 html_collection = ` 2085 <li class="item" data-title="${title}"> 2086 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2087 </li> 2088 ` 2089 } 2090 result_collection.append(html_collection) 2091 } 2092 for(let i=0;i<product_length;i++){ 2093 const title = products[i].title 2094 const url = products[i].url 2095 const image = products[i].featured_image.url 2096 const vendor = products[i].vendor 2097 let html_product 2098 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 2099 html_product = ` 2100 <li class="item" data-vendor="${vendor}"> 2101 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2102 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2103 </a> 2104 </li> 2105 ` 2106 } 2107 result_product.append(html_product) 2108 } 2109 }, 2110 error: function(xhr) { // if error occured 2111 alert("Error occured.please try again"); 2112 }, 2113 complete: function(response) { 2114 // $(placeholder).removeClass('loading'); 2115 }, 2116 dataType: 'JSON' 2117 }); 2118 } else { 2119 result_collection.html("") 2120 result_product.html("") 2121 2122 resultsearch.hide() 2123 resultrecommend.show() 2124 } 2125 }) 2126 2127 moreresult.click(function(){ 2128 $("#search-btn").trigger("click"); 2129 }) 2130 2131 $(".close-search").click(function(){ 2132 $(this).hide() 2133 searchInput.val("") 2134 searchInput.focus() 2135 resultsearch.hide() 2136 resultrecommend.show() 2137 }) 2138 2139 function setCookie(name,value,days) { 2140 var expires = ""; 2141 if (days) { 2142 var date = new Date(); 2143 date.setTime(date.getTime() + (days*24*60*60*1000)); 2144 expires = "; expires=" + date.toUTCString(); 2145 } 2146 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2147 } 2148 function getCookie(name) { 2149 var nameEQ = name + "="; 2150 var ca = document.cookie.split(';'); 2151 for(var i=0;i < ca.length;i++) { 2152 var c = ca[i]; 2153 while (c.charAt(0)==' ') c = c.substring(1,c.length); 2154 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 2155 } 2156 return null; 2157 } 2158 let last_search_name = [] 2159 let last_search_url = [] 2160 $(".group-recent").hide() 2161 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 2162 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 2163 $(".group-recent").show() 2164 last_search_name = getCookie("last_search_name"); 2165 last_search_url = getCookie("last_search_url"); 2166 const arrName = last_search_name.substring(1).split(',').reverse() 2167 const arrUrl = last_search_url.substring(1).split(',').reverse() 2168 console.log(arrName, 'Array Name') 2169 console.log(arrUrl, 'Array Url') 2170 let length = arrName.length 2171 if(arrName.length > 5) { 2172 length = 5 2173 } 2174 for(let n=0;n<length;n++){ 2175 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"><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]}">
2175${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2176 $(".group-recent ul").append(html2) 2177 } 2178 } 2179 } 2180 console.log(last_search_name, 'Name') 2181 console.log(last_search_url, 'url') 2182 2183 resultsearch.delegate(".item a", "click", function(){ 2184 let name = [last_search_name] 2185 let url = [last_search_url] 2186 name.push($(this).attr('data-title')) 2187 url.push($(this).attr('data-url')) 2188 setCookie("last_search_name",name,7); 2189 setCookie("last_search_url",url,7); 2190 }) 2191 2192 $(".delete-all-history").click(function() { 2193 setCookie("last_search_name",null,0); 2194 setCookie("last_search_url",null,0); 2195 $(".last-search").hide(); 2196 setTimeout(function(){ 2197 location.reload(); 2198 }, 500); 2199 }) 2200 2201 $("#search-trigger").click(function(){ 2202 search_open() 2203 }) 2204 $(".icon-search-mobile").click(function(){ 2205 search_open() 2206 }) 2207 $(".search-header svg").click(function(){ 2208 search_close() 2209 }) 2210 $(".icon-key-mobile").click(function(){ 2211 search_close() 2212 }) 2213 2214 function search_open() { 2215 $("body").addClass("search-popup-open") 2216 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2217 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2218 $(".search-popup").focus() 2219 $('.popup-recommend')[0].swiper.update(); 2220 } 2221 function search_close() { 2222 $("body").removeClass("search-popup-open") 2223 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2224 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2225 searchInput.val("") 2226 resultsearch.hide() 2227 resultrecommend.show() 2228 } 2229 2230 $(".site-overlay").click(function(){ 2231 search_close() 2232 }) 2233 </script>
2233 2234 <style> 2235#breadcrumbProduct { 2236 width: 100%; 2237 padding: 14px 0; 2238 background: #000; 2239 box-sizing: border-box; 2240} 2241 2242#breadcrumbProduct .container { 2243 width: 1120px; 2244 max-width: calc(100vw - 40px); 2245 margin: 0 auto; 2246 padding: 0; 2247 box-sizing: border-box; 2248} 2249 2250#breadcrumbProduct ul { 2251 width: 100%; 2252 margin: 0; 2253 padding: 12px 20px; 2254 2255 display: flex; 2256 align-items: center; 2257 justify-content: center; 2258 flex-wrap: wrap; 2259 gap: 10px; 2260 2261 list-style: none; 2262 box-sizing: border-box; 2263 text-align: center; 2264 2265 background: linear-gradient(180deg,#121212,#060606); 2266 border: 1px solid rgba(212,175,55,.35); 2267 border-radius: 14px; 2268 2269 box-shadow: 2270 0 8px 18px rgba(0,0,0,.35), 2271 inset 0 1px 0 rgba(255,255,255,.05); 2272} 2273 2274#breadcrumbProduct ul li:not(:first-child)::before { 2275 content: "âº"; 2276 display: inline-block; 2277 margin-right: 8px; 2278 color: #d4af37; 2279 font-size: 14px; 2280 font-weight: 700; 2281} 2282 2283#breadcrumbProduct ul li { 2284 display: inline-flex;
2285 align-items: center; 2286 2287 margin: 0; 2288 color: #fff; 2289 font-size: 11px; 2290 line-height: 1.4; 2291 font-weight: 700; 2292 text-transform: uppercase; 2293 white-space: nowrap; 2294} 2295 2296#breadcrumbProduct ul li a { 2297 color: #fff !important; 2298 text-decoration: none; 2299 transition: .25s; 2300} 2301 2302#breadcrumbProduct ul li a:hover { 2303 color: #ffd700 !important; 2304} 2305 2306#breadcrumbProduct ul li svg { 2307 display: block; 2308 width: 8px; 2309 height: 8px; 2310 color: #d4af37; 2311} 2312 2313@media (max-width:768px){ 2314 2315 #breadcrumbProduct{ 2316 padding:10px 0; 2317 } 2318 2319 #breadcrumbProduct .container{ 2320 max-width:calc(100vw - 20px); 2321 } 2322 2323 #breadcrumbProduct ul{ 2324 padding:10px 12px; 2325 gap:6px; 2326 } 2327 2328 #breadcrumbProduct ul li{ 2329 font-size:9px; 2330 white-space:normal; 2331 } 2332 2333} 2334</style> 2335 2336 </div> 2337 </div> 2338 2339<div id="breadcrumbProduct" class="d-none d-lg-block"> 2340 <div class="container"> 2341 <ul role="navigation" aria-label="breadcrumbs"> 2342 <li> 2343 <a href="https://www.hfmagazineonline.com/category/entertainment/">PERMATA123</a> 2344 </li> 2345 <li>SITUS PERMATA123</li> 2346 <li>SITUS RESMI & TERBONAFIT</li> 2347 <li>SITUS TERPERCAYA PERMATA123</li> 2348 <li>Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026</li> 2349 </ul> 2350 </div> 2351</div> 2352
2353<script type="application/ld+json"> 2354 { 2355 "@context": "https://schema.org", 2356 "@type": "BreadcrumbList", 2357 "itemListElement": [ 2358 { 2359 "@type": "ListItem", 2360 "position": 1, 2361 "name": "PERMATA123", 2362 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2363 }, 2364 { 2365 "@type": "ListItem", 2366 "position": 2, 2367 "name": "LOGIN PERMATA123", 2368 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2369 }, 2370 { 2371 "@type": "ListItem", 2372 "position": 3, 2373 "name": "SITUS PERMATA123", 2374 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2375 }, 2376 { 2377 "@type": "ListItem", 2378 "position": 4, 2379 "name": "PERMATA123 LINK ALTERNATIF", 2380 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2381 }, 2382 { 2383 "@type": "ListItem", 2384 "position": 5, 2385 "name": "SITUS PERMATA123 TERPERCAYA", 2386 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2387 }, 2388 { 2389 "@type": "ListItem", 2390 "position": 6, 2391 "name": "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 2392 "item": "https://www.hfmagazineonline.com/category/entertainment/" 2393 } 2394 ] 2395 } 2396 </script>
2396 2397 2398 <!--faq-->
2399<script type="application/ld+json" id="faq-schema"> 2400{ 2401 "@context":"https://schema.org", 2402 "@type":"FAQPage", 2403 "mainEntity":[ 2404 { 2405 "@type":"Question", 2406 "name":"Apa yang membuat Situs PERMATA123 menjadi media login terpercaya di tahun 2026?", 2407 "acceptedAnswer":{ 2408 "@type":"Answer", 2409 "text":"Situs PERMATA123 mengedepankan akses yang mudah kepada setiap pengguna yang ingin menikmati hiburan online. Sistem jalur login dirancang dengan kecepatan tinggi serta perlindungan data kuat, sehingga pemain merasa lebih tenang dan bermain lebih leluasa karena keamanan mutlak akun dijaga dengan baik." 2410 } 2411 }, 2412 { 2413 "@type":"Question", 2414 "name":"Mengapa PERMATA123 menyediakan link alternatif?", 2415 "acceptedAnswer":{ 2416 "@type":"Answer", 2417 "text":"Link alternatif resmi PERMATA123 disediakan agar pengguna bisa tetap lancar mengakses game meski halaman utama situs sedang mengalami gangguan. Penyediaan alternatif stabil aktif 24 jam, mengarah ke akun serta layanan yang sama dan menjaga pengalaman login tetap cepat serta aman." 2418 } 2419 }, 2420 { 2421 "@type":"Question", 2422 "name":"Apa benar proses login PERMATA123 paling cepat?", 2423 "acceptedAnswer":{ 2424 "@type":"Answer", 2425 "text":"Ya. Ini dikarenakan PERMATA123 menjadikan desain dari halaman utama tetap sederhana, tidak ada menu atau fitur berlebihan yang ditemui. Hal ini bertujuan agar situs tetap ringan saat diakses meski sedang berada pada jaringan lemot sekalipun."
2426 } 2427 }, 2428 { 2429 "@type":"Question", 2430 "name":"Seberapa aman data pengguna saat akses lewat media login PERMATA123?", 2431 "acceptedAnswer":{ 2432 "@type":"Answer", 2433 "text":"PERMATA123 berdedikasi penuh untuk menyediakan ruang akses dan bermain yang aman untuk setiap pengguna. Untuk itu, PERMATA123 menggunakan sistem SSL dan enkripsi data tingkat tinggi agar baik transaksi hingga privasi data pengguna dapat terjaga dengan baik." 2434 } 2435 }, 2436 { 2437 "@type":"Question", 2438 "name":"Apakah link alternatif bisa digunakan kapan saja?", 2439 "acceptedAnswer":{ 2440 "@type":"Answer", 2441 "text":"Tentu saja, konsep link alternatif memang dibuat agar menjadi jalur tambahan buat para pemain yang mengalami kesulitan akses situs. Dengan desain fitur dan menu serupa dengan halaman asli, jadi tidak akan mempengaruhi sesi bermain pengguna meski sedang dalam perbaikan." 2442 } 2443 }, 2444 { 2445 "@type":"Question", 2446 "name":"Apakah perlu akun tambahan untuk login link alternatif?", 2447 "acceptedAnswer":{ 2448 "@type":"Answer", 2449 "text":"Tidak perlu akun tambahan, anda bisa tetap menggunakan ID dan sandi yang sudah didaftarkan sebelumnya untuk mengakses login link alternatif PERMATA123." 2450 } 2451 }, 2452 { 2453 "@type":"Question", 2454 "name":"Apakah link alternatif PERMATA123 bisa disimpan?", 2455 "acceptedAnswer":{ 2456 "@type":"Answer", 2457 "text":"Bisa, link alternatif PERMATA123 tidak ada tanggal kadarluasa, jadi bisa disimpan dan diakses sewaktu-waktu dibutuhkan. Jika melalui desktop, anda bisa simpan dibagian bookmark browser dan jika melalui smartphone, bisa simpan di notepad." 2458 } 2459 }, 2460 { 2461 "@type":"Question", 2462 "name":"Apa manfaat menyimpan link alternatif PERMATA123?", 2463 "acceptedAnswer":{ 2464 "@type":"Answer", 2465 "text":"Dengan menyimpan link resmi, akses menjadi lebih praktis tentunya dan terhindar dari resiko membuka halaman yang salah. Pengguna tetap bisa login dan bermain dengan sistem keamanan yang sama." 2466 } 2467 } 2468 ] 2469} 2470</script>
vendor: 2 bytes, line 2470
2470
2471<script type="application/ld+json" id="product-review-schema"> 2472{ 2473 "@context": "https://schema.org", 2474 "@type": "Product", 2475 "name": "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 2476 "description": "Temukan akses login link alternatif mudah, cepat dan aman hanya di situs terpercaya PERMATA123.", 2477 "image": "https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp", 2478 "brand": { "@type": "Brand", "name": "PERMATA123" }, 2479 "aggregateRating": { 2480 "@type": "AggregateRating", 2481 "ratingValue": "5", 2482 "bestRating": "5", 2483 "worstRating": "1", 2484 "ratingCount": "8", 2485 "reviewCount": "8" 2486 }, 2487 "review": [ 2488 { 2489 "@type": "Review", 2490 "author": { 2491 "@type": "Person", 2492 "name": "Ayo Bukk", 2493 "homeLocation": { 2494 "@type": "Place", 2495 "name": "Jember" 2496 } 2497 }, 2498 "reviewRating": { 2499 "@type": "Rating", 2500 "ratingValue": "5", 2501 "bestRating": "5", 2502 "worstRating": "1" 2503 }, 2504 "reviewBody": "Login di PERMATA123 cepat banget, gak pernah ada hambatan meski sedang jaringan lelet." 2505 }, 2506 { 2507 "@type": "Review", 2508 "author": { 2509 "@type": "Person", 2510 "name": "Gusgus Dur", 2511 "homeLocation": { 2512 "@type": "Place", 2513 "name": "Bandung" 2514 } 2515 }, 2516 "reviewRating": { 2517 "@type": "Rating", 2518 "ratingValue": "5", 2519 "bestRating": "5", 2520 "worstRating": "1" 2521 }, 2522 "reviewBody": "Aman banget main di situs PERMATA123. Transaksi lancar dan akses gampang banget, ganti-ganti perangkat juga gak jadi masalah." 2523 }, 2524 { 2525 "@type": "Review", 2526 "author": { 2527 "@type": "Person", 2528 "name": "Makejo Jo", 2529 "homeLocation": { 2530 "@type": "Place", 2531 "name": "Surakarta" 2532 } 2533 }, 2534 "reviewRating": { 2535 "@type": "Rating", 2536 "ratingValue": "5", 2537 "bestRating": "5", 2538 "worstRating": "1" 2539 }, 2540 "reviewBody": "Link alternatifnya fleksibel banget, bisa di save. Cocok buat yang butuh media login yang aman dan terpercaya." 2541 }, 2542 { 2543 "@type": "Review", 2544 "author": { 2545 "@type": "Person", 2546 "name": "Nugge Get", 2547 "homeLocation": { 2548 "@type": "Place", 2549 "name": "Yogyakarta" 2550 } 2551 }, 2552 "reviewRating": { 2553 "@type": "Rating", 2554 "ratingValue": "5", 2555 "bestRating": "5", 2556 "worstRating": "1" 2557 }, 2558 "reviewBody": "Situs utama gangguan, gak jadi masalah. PERMATA123 sudah sediakan link alternatif, tampilannya mirip banget sama halaman asli." 2559 }, 2560 { 2561 "@type": "Review", 2562 "author": { 2563 "@type": "Person", 2564 "name": "Plakk Gigi", 2565 "homeLocation": { 2566 "@type": "Place", 2567 "name": "Magetan" 2568 } 2569 }, 2570 "reviewRating": { 2571 "@type": "Rating", 2572 "ratingValue": "5", 2573 "bestRating": "5", 2574 "worstRating": "1" 2575 }, 2576 "reviewBody": "Aksesnya kenceng banget, tampilannya juga ringan. Gak pernah ada lag selama main disini." 2577 }, 2578 { 2579 "@type": "Review", 2580 "author": { 2581 "@type": "Person", 2582 "name": "Ditya Sukma", 2583 "homeLocation": { 2584 "@type": "Place", 2585 "name": "Magelang" 2586 } 2587 }, 2588 "reviewRating": { 2589 "@type": "Rating", 2590 "ratingValue": "5", 2591 "bestRating": "5", 2592 "worstRating": "1" 2593 }, 2594 "reviewBody": "Tampilan link alternati dan situs asli PERMATA123 gak ada bedanya, mirip banget. Jadi gak perlu ngeraba lagi buat main." 2595 }, 2596 { 2597 "@type": "Review", 2598 "author": { 2599 "@type": "Person", 2600 "name": "Amra Utse", 2601 "homeLocation": { 2602 "@type": "Place", 2603 "name": "Solo" 2604 } 2605 }, 2606 "reviewRating": { 2607 "@type": "Rating", 2608 "ratingValue": "5", 2609 "bestRating": "5", 2610 "worstRating": "1" 2611 }, 2612 "reviewBody": "Login pakai hape nanggung dan jaringan lelet gak jadi masalah, akses tetap lancar banget." 2613 }, 2614 { 2615 "@type": "Review", 2616 "author": { 2617 "@type": "Person", 2618 "name": "Ogut Gut", 2619 "homeLocation": { 2620 "@type": "Place", 2621 "name": "Purwokerto" 2622 } 2623 }, 2624 "reviewRating": { 2625 "@type": "Rating", 2626 "ratingValue": "5", 2627 "bestRating": "5", 2628 "worstRating": "1" 2629 }, 2630 "reviewBody": "Luar biasa layanan dari PERMATA123, pantas disebut Media Login Paling Cepat & Aman tahun ini." 2631 } 2632 ] 2633} 2634</script>
2634 2635 2636
2636<script type="application/ld+json"> 2637 { 2638 "@context": "https://schema.org", 2639 "@type": "VideoObject", 2640 "name": "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 2641 "description": "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.", 2642 "thumbnailUrl": [ 2643 "https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp", 2644 "https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2645 ], 2646 "uploadDate": "2026-06-01T04:19:10-04:00", 2647 "duration": "PT2M58S", 2648 "contentUrl": "https://www.hfmagazineonline.com/category/entertainment/" 2649 } 2650 </script>
2650 2651
2652<script type="application/ld+json"> 2653{ 2654 "@context": "https://schema.org", 2655 "@graph": [ 2656 { 2657 "@type": "Organization", 2658 "@id": "https://www.hfmagazineonline.com/category/entertainment/#org", 2659 "name": "PERMATA123", 2660 "url": "https://www.hfmagazineonline.com/category/entertainment/", 2661 "logo": "https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp", 2662 "sameAs": [ 2663 "https://www.facebook.com/groups/1116410483054591", 2664 "https://x.com/Permata123_", 2665 "https://www.instagram.com/matneverdiee/" 2666 ], 2667 "contactPoint": { 2668 "@type": "ContactPoint", 2669 "telephone": "+62-821-3745-7845", 2670 "contactType": "customer support", 2671 "areaServed": "ID", 2672 "availableLanguage": [ 2673 "Indonesian", 2674 "English" 2675 ] 2676 } 2677 }, 2678 { 2679 "@type": "WebSite", 2680 "@id": "https://www.hfmagazineonline.com/category/entertainment/#website", 2681 "url": "https://www.hfmagazineonline.com/category/entertainment/", 2682 "name": "SITUS PERMATA123 TERPERCAYA", 2683 "publisher": { 2684 "@id": "https://www.hfmagazineonline.com/category/entertainment/#org" 2685 }, 2686 "inLanguage": "id-ID", 2687 "potentialAction": { 2688 "@type": "SearchAction", 2689 "target": "https://www.hfmagazineonline.com/category/entertainment/?s={search_term_string}", 2690 "query-input": "required name=search_term_string" 2691 } 2692 }, 2693 { 2694 "@type": "SoftwareApplication", 2695 "@id": "https://www.hfmagazineonline.com/category/entertainment/#app", 2696 "name": "PERMATA123", 2697 "applicationCategory": "GameApplication", 2698 "operatingSystem": "Android, iOS, Windows", 2699 "offers": { 2700 "@type": "Offer", 2701 "price": "0", 2702 "priceCurrency": "IDR" 2703 }, 2704 "aggregateRating": { 2705 "@type": "AggregateRating", 2706 "ratingValue": 5, 2707 "ratingCount": 30262 2708 } 2709 } 2710 ] 2711} 2712</script>
2712 2713
2713<script> 2714document.addEventListener("DOMContentLoaded", function () { 2715 const container = document.getElementById("reviews-container"); 2716 const schemaElement = document.getElementById( 2717 "product-review-schema" 2718 ); 2719 2720 const scoreElement = document.getElementById( 2721 "review-big-score" 2722 ); 2723 2724 const starsElement = document.getElementById( 2725 "review-big-stars" 2726 ); 2727 2728 if (!container || !schemaElement) { 2729 console.error( 2730 "Container review atau schema review tidak ditemukan." 2731 ); 2732 return; 2733 } 2734 2735 try { 2736 const schemaData = JSON.parse( 2737 schemaElement.textContent.trim() 2738 ); 2739 2740 const reviews = Array.isArray(schemaData.review) 2741 ? schemaData.review 2742 : []; 2743 2744 const aggregateRating = 2745 schemaData.aggregateRating || {}; 2746 2747 const aggregateScore = Number( 2748 aggregateRating.ratingValue || 0 2749 ); 2750 2751 if (scoreElement) { 2752 scoreElement.textContent = 2753 aggregateScore > 0 2754 ? aggregateScore.toFixed(1) 2755 : "0"; 2756 } 2757 2758 if (starsElement) { 2759 const roundedScore = Math.round(aggregateScore); 2760 2761 starsElement.textContent = 2762 "â ".repeat(Math.max(0, roundedScore)) + 2763 "â".repeat(Math.max(0, 5 - roundedScore)); 2764 } 2765 2766 container.innerHTML = ""; 2767 2768 reviews.forEach(function (review) { 2769 const author = review.author || {}; 2770 2771 const authorName = 2772 typeof author.name === "string" 2773 ? author.name.trim() 2774 : "Pengguna PERMATA123"; 2775 2776 const location = 2777 author.homeLocation && 2778 typeof author.homeLocation.name === "string" 2779 ? author.homeLocation.name.trim() 2780 : ""; 2781 2782 const reviewBody = 2783 typeof review.reviewBody === "string" 2784 ? review.reviewBody.trim() 2785 : ""; 2786 2787 if (!reviewBody) { 2788 return; 2789 } 2790 2791 const article = document.createElement("article"); 2792 article.className = "review-card"; 2793 2794 const userName = document.createElement("span"); 2795 userName.className = "user-name"; 2796 2797 userName.textContent = location 2798 ? authorName + " (" + location + ")" 2799 : authorName; 2800 2801 const reviewText = document.createElement("div"); 2802 reviewText.className = "review-text"; 2803 reviewText.textContent = '"' + reviewBody + '"'; 2804 2805 article.appendChild(userName); 2806 article.appendChild(reviewText); 2807 2808 container.appendChild(article); 2809 }); 2810 2811 if (!container.children.length) { 2812 container.textContent = "Review belum tersedia."; 2813 } 2814 } catch (error) { 2815 console.error("Schema review gagal dibaca:", error); 2816 container.textContent = "Review belum dapat ditampilkan."; 2817 } 2818}); 2819</script>
2819 2820
2820<script> 2821document.addEventListener("DOMContentLoaded", function () { 2822 const container = document.getElementById("neo-faq-container"); 2823 const schemaElement = document.getElementById("faq-schema"); 2824 2825 if (!container || !schemaElement) { 2826 console.error("Container atau schema FAQ tidak ditemukan."); 2827 return; 2828 } 2829 2830 try { 2831 const schemaData = JSON.parse(schemaElement.textContent.trim()); 2832 2833 const faqItems = Array.isArray(schemaData.mainEntity) 2834 ? schemaData.mainEntity 2835 : []; 2836 2837 container.innerHTML = ""; 2838 2839 faqItems.forEach(function (item) { 2840 const question = 2841 typeof item.name === "string" 2842 ? item.name.trim() 2843 : ""; 2844 2845 const answer = 2846 item.acceptedAnswer && 2847 typeof item.acceptedAnswer.text === "string" 2848 ? item.acceptedAnswer.text.trim() 2849 : ""; 2850 2851 if (!question || !answer) { 2852 return; 2853 } 2854 2855 const details = document.createElement("details"); 2856 details.className = "neo-item"; 2857 2858 const summary = document.createElement("summary"); 2859 summary.textContent = question; 2860 2861 const answerBox = document.createElement("div"); 2862 answerBox.className = "neo-ans"; 2863 answerBox.textContent = answer; 2864 2865 details.appendChild(summary); 2866 details.appendChild(answerBox); 2867 container.appendChild(details); 2868 }); 2869 2870 const allItems = container.querySelectorAll(".neo-item"); 2871 2872 allItems.forEach(function (item) { 2873 item.addEventListener("toggle", function () { 2874 if (!item.open) { 2875 return; 2876 } 2877 2878 allItems.forEach(function (otherItem) { 2879 if (otherItem !== item) { 2880 otherItem.open = false; 2881 } 2882 }); 2883 }); 2884 }); 2885 } catch (error) { 2886 console.error("Schema FAQ gagal dibaca:", error); 2887 } 2888}); 2889</script>
2889 2890 2891 <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" /> 2892 2893 2894 <style> 2895 .bg-card { 2896 background-color: #000000; 2897 } 2898 </style> 2899 2900 <!-- /templates/product.liquid --> 2901 2902 2903 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2904 2905 2906 <div class="product-standing-flower" data-product-type="flowerBoard"> 2907 <meta itemprop="url" content="https://www.hfmagazineonline.com/category/entertainment/"> 2908 <meta itemprop="image" content="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"> 2909 2910 2911 2912 <input id="data-sku" type="hidden" value="GOJSTRU2598"> 2913 <div class="product-single" style="background-image: url(https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp); background-attachment: fixed;"> 2914 <div id="product-top" class="container"> 2915 <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;"> 2916 <div id="product-image" class="col-lg-7 text-center"> 2917 <div class="product-image"> 2918 <div class="row no-gutters"> 2919 2920 <div id="product-featured-image" class="row w-100"> 2921 2922 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2923 2924 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2925 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2926 2927 <li class="swiper-slide" data-type="image"> 2928 <a 2929 href="files/Blossom-Shine-WM.jpg" 2930 data-standard="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2931 data-image="files/Blossom-Shine-WM.jpg" 2932 data-position="1" 2933 class="product-single__thumbnail" 2934 > 2935 <img 2936 class="lazyload w-100" 2937 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2938 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 2939 width="" 2940 height="" 2941 > 2942 </a> 2943 </li> 2944 2945 2946 2947 2948 <li class="swiper-slide" data-type="image"> 2949 <a 2950 href="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2951 data-standard="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2952 data-image="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2953 data-position="2" 2954 class="product-single__thumbnail" 2955 > 2956 <img 2957 class="lazyload w-100" 2958 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2959 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 2960 width="" 2961 height="" 2962 > 2963 </a> 2964 </li> 2965 2966 2967 2968 2969 <li class="swiper-slide" data-type="image"> 2970 <a 2971 href="files/Blossom-Shine_3-WM.jpg" 2972 data-standard="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2973 data-image="files/Blossom-Shine_3-WM.jpg" 2974 data-position="3" 2975 class="product-single__thumbnail" 2976 > 2977 <img 2978 class="lazyload w-100" 2979 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"
2980 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 2981 width="" 2982 height="" 2983 > 2984 </a> 2985 </li> 2986 2987 2988 2989 2990 <li class="swiper-slide" data-type="image"> 2991 <a 2992 href="files/Blossom-Shine_4.jpg" 2993 data-standard="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 2994 data-image="files/Blossom-Shine_4.jpg" 2995 data-position="4" 2996 class="product-single__thumbnail" 2997 > 2998 <img 2999 class="lazyload w-100" 3000 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3001 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3002 width="" 3003 height="" 3004 > 3005 </a> 3006 </li> 3007 3008 3009 3010 </ul> 3011 </div> 3012 3013 </div> 3014 3015 <div 3016 id="featured-image-product" 3017 class="col-lg-10 col-12 d-none d-lg-block" 3018 > 3019 <div class="swiper-container gallery-top"> 3020 <div class="swiper-slide product-single__image"> 3021 3022 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 3023 3024 3025<div class="product-image-static"> 3026 <img 3027 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3028 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3029 id="ProductPhotoImg" 3030 class="lazyload" 3031 > 3032</div> 3033 </div> 3034 3035 </div> 3036 <div class="swiper-slide product-single__video" style="display: none"> 3037 <video 3038 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 3039 playsinline 3040 loop 3041 muted 3042 ></video> 3043 </div> 3044 </div> 3045 </div> 3046 </div> 3047 3048 <div id="featured-image-product2" class="col-12 d-lg-none"> 3049 <div class="swiper-container gallery-mobile"> 3050 <ul class="swiper-wrapper"> 3051 <li class="swiper-slide img"> 3052 3053 <img 3054 class="swiper-lazy" 3055 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3056 data-src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3057 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3058 width="" 3059 height="" 3060 > 3061 3062 </li> 3063 3064 3065 <li class="swiper-slide img"> 3066 3067 <img 3068 class="swiper-lazy" 3069 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3070 data-src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3071 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3072 width="" 3073 height="" 3074 > 3075 3076 </li> 3077 3078 3079 <li class="swiper-slide img"> 3080 3081 <img 3082 class="swiper-lazy" 3083 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3084 data-src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3085 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3086 width="" 3087 height="" 3088 > 3089 3090 </li> 3091 3092 3093 <li class="swiper-slide img"> 3094 3095 <img 3096 class="swiper-lazy" 3097 src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp" 3098 data-src="https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"
3099 alt="Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026" 3100 width="" 3101 height="" 3102 > 3103 3104 </li> 3105 3106 3107 </ul> 3108 3109 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 3110 <div class="swiper-button-next"><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 3111 <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"/> 3112 </svg></div> 3113 3114 <!-- Add Pagination --> 3115 <div class="swiper-pagination"></div> 3116 3117 </div> 3118 </div> 3119 3120 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 3121 <!-- product video --> 3122 <style> 3123 3124 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 3125 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 3126 .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;} 3127 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 3128 .close-video .icon{width:30px;height:30px;} 3129 /*responsive iframe */ 3130 .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);} 3131 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 3132 3133 .youtube { 3134 background-color: #000; 3135 margin-bottom: 30px; 3136 position: relative; 3137 padding-top: 56.25%; 3138 overflow: hidden; 3139 cursor: pointer; 3140 width: 100%; 3141 } 3142 .swiper-slide .youtube { 3143 max-width: 480px; 3144 } 3145 .youtube img { 3146 width: 100%; 3147 top: -16.82%; 3148 left: 0; 3149 opacity: 0.7; 3150 } 3151 .youtube .play-button { 3152 width: 90px; 3153 height: 60px; 3154 background-color: #333; 3155 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 3156 z-index: 1; 3157 opacity: 0.8; 3158 border-radius: 6px; 3159 } 3160 .youtube .play-button:before { 3161 content: ""; 3162 border-style: solid; 3163 border-width: 15px 0 15px 26.0px; 3164 border-color: transparent transparent transparent #fff; 3165 } 3166 .youtube img, 3167 .youtube .play-button { 3168 cursor: pointer; 3169 } 3170 .youtube img, 3171 .youtube iframe, 3172 .youtube .play-button, 3173 .youtube .play-button:before { 3174 position: absolute; 3175 } 3176 .youtube .play-button, 3177 .youtube .play-button:before { 3178 top: 50%; 3179 left: 50%; 3180 transform: translate3d( -50%, -50%, 0 ); 3181 } 3182 .youtube iframe { 3183 height: 100%; 3184 width: 100%; 3185 top: 0; 3186 left: 0; 3187 } 3188 </style> 3189 3190 3191 </div> 3192 </div> 3193 3194 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 3195 3196 </div> 3197 3198
3198<script> 3199 if ($(window).width() < 991) { 3200 var direction = 'horizontal' 3201 } else { 3202 var direction = 'vertical' 3203 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 3204 } 3205 var swiper = new Swiper('.gallery-thumbs', { 3206 3207 direction, 3208 slidesPerView: 4.5, 3209 spaceBetween: 12, 3210 navigation: { 3211 nextEl: '.swiper-button-next', 3212 prevEl: '.swiper-button-prev', 3213 } 3214 }); 3215 3216 var swiper = new Swiper('.gallery-mobile', { 3217 //loop: true, 3218 lazy: true, 3219 speed: 300, 3220 resistance : true, 3221 resistanceRatio : 0, 3222 freeModeMomentumRatio : 0.45, 3223 freeModeMomentumVelocityRatio : 1.5, 3224 navigation: { 3225 nextEl: '.swiper-button-next', 3226 prevEl: '.swiper-button-prev', 3227 }, 3228 pagination: { 3229 el: '.swiper-pagination' 3230 }, 3231 useCSS3Transforms: false, 3232 loop: false, 3233 on: { 3234 init: function () { 3235 console.log('swiper initialized'); 3236 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 3237 currentVideo.trigger('play'); 3238 }, 3239 }, 3240 }); 3241 3242 /* GET ALL VIDEOS */ 3243 var sliderVideos = $(".swiper-slide video"); 3244 3245 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 3246 swiper.on('slideChange', function () { 3247 console.log('slide changed'); 3248 /* stop all videos */ 3249 sliderVideos.each(function( index ) { 3250 this.currentTime = 0; 3251 }); 3252 3253 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 3254 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 3255 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 3256 prevVideo.trigger('stop'); 3257 currentVideo.trigger('play'); 3258 }); 3259 3260 3261 $("[data-video]").click(function(){ 3262 const file = $(this).data("video") 3263 $(".product-single__video").show() 3264 $(".product-single__image").hide() 3265 $(".product-single__video").find("video").attr("src", file) 3266 $(".product-single__video").find("video")[0].play(); 3267 }) 3268 $("[data-image]").click(function(){ 3269 $(".product-single__video").hide() 3270 $(".product-single__image").show() 3271 $(".product-single__video").find("video")[0].pause(); 3272 }) 3273 3274 </script>
3274 3275 3276 </div> 3277 3278 3279 3280 3281 3282 3283 3284 3285 <style> 3286 .c-pdp-product-info__service--active { 3287 font-size: 12px; 3288 padding-left: 10px; 3289 text-align: left; 3290 max-width: 550px; 3291 margin: auto; 3292 } 3293 .c-pdp-product-info__service--active li { 3294 list-style: disc; 3295 } 3296 .c-pdp-product-info { 3297 background-color: #f5f5f5; 3298 padding: 12px; 3299 margin: 0; 3300 } 3301 .freeship em { 3302 font-style: italic; 3303 font-size: 12px !important; 3304 } 3305 3306 3307 </style> 3308 3309
3309<script> 3310 $(document).ready(function(){ 3311 if ( $(".c-pdp-product-info__service li").length == 1 ) { 3312 $(".c-pdp-product-info__service").addClass("no-bullet"); 3313 $(".c-pdp-product-info__service li").addClass("no-bullets"); 3314 } 3315 }); 3316 </script>
3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 </div> 3330 <style> 3331 #product-top > .row.bg-card.product-sticky { 3332 width: 100%; 3333 max-width: 1100px; 3334 margin: 0 auto !important; 3335 box-sizing: border-box; 3336} 3337 .product-image-static { 3338 width: 100%; 3339 text-align: center; 3340} 3341 3342.product-image-static img { 3343 display: block; 3344 width: 600px; 3345 max-width: 100%; 3346 height: auto; 3347 margin: 0 auto; 3348 object-fit: contain; 3349 transform: none; 3350} 3351 #product-image { 3352 width: 100% !important; 3353 max-width: 100% !important; 3354} 3355 3356#product-image .swiper-slide, 3357#product-image .swiper-wrapper, 3358#product-image .swiper-container, 3359#product-featured-image { 3360 height: auto !important; 3361 min-height: 0 !important; 3362 overflow: visible !important; 3363} 3364 3365#product-image img, 3366.product-single__image { 3367 display: block; 3368 width: 600px !important; 3369 max-width: 95vw !important; 3370 height: auto !important; 3371 max-height: none !important; 3372 object-fit: contain !important; 3373 margin: 0 auto !important; 3374} 3375#product-image { 3376 flex: 0 0 100% !important; 3377 max-width: 100% !important; 3378 width: 100% !important; 3379} 3380 3381#product-meta { 3382 display: none !important; 3383} 3384 3385#product-featured-image { 3386 justify-content: center !important; 3387 margin-left: 0 !important; 3388 margin-right: 0 !important; 3389} 3390 3391#thumb-image-product { 3392 display: none !important; 3393} 3394 3395#product-featured-image > div:not(#thumb-image-product) { 3396 flex: 0 0 100% !important; 3397 max-width: 100% !important; 3398} 3399 3400.product-single__image, 3401.product-image img { 3402 display: block; 3403 margin-left: auto !important; 3404 margin-right: auto !important; 3405} 3406 3407.keunggulan-section { 3408 position: relative; 3409 width: 100%; 3410 clear: both; 3411 display: flex; 3412 justify-content: center; 3413 padding: 35px 20px; 3414 box-sizing: border-box; 3415 overflow: hidden; 3416 background-image: url("https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"); 3417 background-position: center; 3418 background-size: cover; 3419 background-repeat: no-repeat; 3420} 3421 3422.keunggulan-wrapper { 3423 position: relative; 3424 z-index: 1; 3425 width: 100%; 3426 max-width: 1100px; 3427 margin: 0 auto; 3428 padding: 25px; 3429 box-sizing: border-box; 3430 background: rgba(5, 5, 5, 0.94); 3431 border: 1px solid #333; 3432 border-radius: 15px; 3433} 3434.keunggulan-blur-box { 3435 position: relative; 3436 width: 100%; 3437 max-width: 1100px; 3438 margin: 0 auto; 3439 border-radius: 16px; 3440 overflow: hidden; 3441 padding: 0; 3442} 3443 3444.keunggulan-blur-box::before { 3445 content: ""; 3446 position: absolute; 3447 inset: -25px; 3448 background-image: url("https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp"); 3449 background-position: center; 3450 background-size: cover; 3451 background-repeat: no-repeat; 3452 filter: blur(18px); 3453 transform: scale(1.08); 3454 z-index: 0; 3455} 3456 3457 .section-title { 3458 text-align: center; 3459 color: #bf953f; 3460 font-family: 'Plus Jakarta Sans', sans-serif; 3461 font-size: 1.3rem; 3462 margin-bottom: 20px; 3463 text-transform: uppercase; 3464 letter-spacing: 2px; 3465 } 3466 3467 .row-container { 3468 display: flex; 3469 flex-direction: column; 3470 gap: 10px; 3471 } 3472 3473 .keunggulan-row { 3474 display: flex; 3475 align-items: center; 3476 background: #111; 3477 padding: 12px 18px; 3478 border-radius: 30px; 3479 border: 1px solid #222; 3480 transition: 0.3s; 3481 } 3482 3483 .keunggulan-row:hover { 3484 border-color: #bf953f; 3485 background: #1a1a1a; 3486 } 3487 3488 .number-badge { 3489 font-size: 0.9rem; 3490 font-weight: 700; 3491 color: #000; 3492 background: #bf953f; 3493 width: 30px; 3494 height: 30px; 3495 display: flex; 3496 justify-content: center; 3497 align-items: center; 3498 border-radius: 50%; 3499 margin-right: 15px; 3500 flex-shrink: 0; 3501 } 3502 3503 .content-box h3 { 3504 color: #fcf6ba; 3505 font-family: sans-serif; 3506 margin: 0; 3507 font-size: 0.9rem; 3508 font-weight: 600; 3509 } 3510 3511 .content-box p { 3512 color: #888; 3513 margin: 0; 3514 font-size: 0.8rem; 3515 line-height: 1.3; 3516 } 3517.menu-3d-wrap { 3518 width: 1120px; 3519 max-width: calc(100vw - 40px); 3520 margin: 14px auto; 3521 padding: 16px; 3522 3523 display: grid; 3524 grid-template-columns: repeat(6, minmax(0, 1fr)); 3525 gap: 12px; 3526 3527 box-sizing: border-box; 3528 background: linear-gradient(180deg, #161616, #050505); 3529 border: 1px solid rgba(212, 175, 55, 0.35); 3530 border-radius: 16px; 3531} 3532 3533.menu-3d-btn { 3534 min-height: 52px; 3535 padding: 10px 8px; 3536 3537 display: flex;
3538 align-items: center; 3539 justify-content: center; 3540 3541 color: #171000 !important; 3542 font-size: 12px; 3543 line-height: 1.25; 3544 font-weight: 800; 3545 text-align: center; 3546 text-decoration: none !important; 3547 3548 background: linear-gradient( 3549 180deg, 3550 #fff5ae 0%, 3551 #e6c35c 38%, 3552 #bd8617 72%, 3553 #8e5900 100% 3554 ); 3555 3556 border: 1px solid #ffe58a; 3557 border-radius: 11px; 3558 3559 box-shadow: 3560 0 5px 0 #684000, 3561 0 8px 13px rgba(0, 0, 0, 0.55), 3562 inset 0 2px 1px rgba(255, 255, 255, 0.8), 3563 inset 0 -3px 5px rgba(74, 38, 0, 0.35); 3564 3565 transition: 0.15s ease; 3566} 3567 3568.menu-3d-btn:hover { 3569 transform: translateY(-2px); 3570 filter: brightness(1.08); 3571} 3572 3573.menu-3d-btn:active { 3574 transform: translateY(4px); 3575 box-shadow: 3576 0 1px 0 #684000, 3577 0 3px 6px rgba(0, 0, 0, 0.5); 3578} 3579@media (max-width: 768px) { 3580 .menu-3d-wrap { 3581 grid-template-columns: repeat(2, minmax(0, 1fr)); 3582 width: calc(100% - 20px); 3583 gap: 10px; 3584 padding: 12px; 3585 } 3586 3587 .menu-3d-btn { 3588 min-height: 46px; 3589 font-size: 10px; 3590 } 3591} 3592 3593</style> 3594 <div id="product-meta" class="col-lg-5 p-0"> 3595 <div class="product-meta"> 3596 <style> 3597 .product-meta--review {margin-top:10px} 3598 .freeship * {font-size: 14px !important;font-style: normal;} 3599 </style> 3600 3601 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 3602 <meta itemprop="priceCurrency" content="IDR"> 3603 3604 <link itemprop="availability" href="https://schema.org/InStock"> 3605
3605<script 3606 type="text/javascript" 3607 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 3608 async="async" 3609 ></script>
3609 3610 3611 3612 3613 3614 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 3615 3616 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 3617 3618 <div class="row no-gutters meta-sds"> 3619 <div class="col-12 mb-2 mb-lg-0 stock-info"> 3620 3621 3622 <span 3623 id="ProductStock-Product" 3624 class="product-single__stock mb-2 hide" 3625 > 3626 3627 3628 3629 3630 Barang dikirim pada 3631 3632 3633 3634 </span> 3635 3636 <style> 3637 .short-desc-desktop { 3638 margin-bottom: 2rem; 3639 color: white; 3640 } 3641 .short-desc ul li:nth-child(n + 4) { 3642 display: none; 3643 } 3644 .short-desc ul li.showList:nth-child(n + 4) { 3645 display: list-item; 3646 } 3647 label.more { 3648 display: none; 3649 } 3650 label.more.showMe { 3651 display: block; 3652 font-size: 12px; 3653 text-transform: uppercase; 3654 font-weight: 700; 3655 cursor: pointer; 3656 } 3657 </style> 3658
3658<script> 3659 var liCount; 3660 $(document).ready(function () { 3661 $(".short-desc ul").each(function() { 3662 liCount = $(this).children("li").length; 3663 if (liCount > 3) { 3664 $(this).parent(".short-desc").next(".more").addClass("showMe"); 3665 } 3666 }); 3667 3668 $(".more").click(function () { 3669 //$(".short-desc").find("li").addClass("showList"); 3670 // $(this).hide(); 3671 $("#product-desc").find("ul").show() 3672 $('html, body').animate({ 3673 scrollTop: $("#product-desc").offset().top - 250 3674 }, 2000); 3675 $("#product-desc").css("height","auto"); 3676 $("#more_content").remove(); 3677 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 3678 }); 3679 }); 3680 </script>
3680 3681 3682 3683 </div> 3684 </div> 3685 3686 <div id="purchaseProduct"> 3687 3688 3689 3690 3691 <style> 3692 .variant-metafield { 3693 display: block!important; 3694 width: 1px; 3695 padding: 0; 3696 border-color: #fff; 3697 } 3698 .select2-results__option[aria-disabled] { 3699 display: none; 3700 } 3701 3702 .towel-bordir { 3703 width: 100%; 3704 display: flex; 3705 align-items: center; 3706 justify-content: space-around; 3707 } 3708 </style> 3709 3710 3711 3712 3713
3713<script> 3714 3715 3716 </script>
3716 3717 3718 3719 3720 3721 3722 3723 <select 3724 name="id[]" 3725 id="productSelect" 3726 class="product-single__variants ignore hide hide" 3727 > 3728 3729 3730 3731 <option 3732 3733 selected="selected" 3734 3735 data-sku="GOJSTRU2598" 3736 value="44083045826775" 3737 > 3738 Default Title 3739 </option> 3740 3741 3742 3743 </select> 3744 3745
3745<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
3745 3746 3747
3747<script> 3748 $('.size-chart-open-popup').magnificPopup({ 3749 type:'inline', 3750 midClick: true 3751 }); 3752 </script>
3752 3753 3754 3755 3756 3757 <div class="upload-image-preview"> 3758 3759 3760 3761 3762 3763 <style> 3764 .file-dnd * { 3765 margin: 0; 3766 padding: 0; 3767 box-sizing: border-box; 3768 } 3769 .file-dnd { 3770 width: 100%; 3771 height: 250px; 3772 border: 1px solid #ddd; 3773 border-radius: 10px; 3774 padding: 15px; 3775 display: flex; 3776 flex-direction: column; 3777 gap: 10px; 3778 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 3779 margin: auto; 3780 } 3781 .file-dnd input { 3782 display: none; 3783 } 3784 .file-dnd .before-upload { 3785 border: 1px dashed #888; 3786 flex: 1; 3787 border-radius: 5px; 3788 display: flex; 3789 justify-content: center; 3790 align-items: center; 3791 text-align: center; 3792 cursor: pointer; 3793 } 3794 .file-dnd .before-upload > div { 3795 display: flex; 3796 flex-direction: column; 3797 align-items: center; 3798 gap: 8px; 3799 } 3800 .file-dnd .before-upload > div h4 { 3801 width: 150px; 3802 } 3803 .file-dnd .before-upload > div p { 3804 font-size: 12px !important; 3805 color: #555; 3806 } 3807 .file-dnd.active .before-upload { 3808 border: 1px solid #5750d9; 3809 background-color: #f5f5ff; 3810 } 3811 .file-dnd .after-upload { 3812 position: relative; 3813 display: none; 3814 } 3815 .file-dnd .after-upload img { 3816 width: 100%; 3817 border-radius: 5px; 3818 max-height: 180px; 3819 object-fit: contain; 3820 display: block; 3821 } 3822 .file-dnd .after-upload .clear-btn { 3823 position: absolute; 3824 top: 10px; 3825 right: 10px; 3826 background: rgba(0, 0, 0, 0.5); 3827 width: 15px; 3828 height: 15px; 3829 text-align: center; 3830 line-height: 15px; 3831 border-radius: 50%; 3832 color: #fff; 3833 cursor: pointer; 3834 font-size: 14px; 3835 } 3836 </style> 3837 3838 <div 3839 class="file-dnd mb-3" 3840 3841 style="display: none" 3842 3843 > 3844 <label for="upload-photo">Upload your Photo:</label> 3845 <input type="file" id="upload-photo" accept="image/*"> 3846 <input type="hidden" data-properties="Photo"> 3847 <div class="before-upload"> 3848 <div> 3849 <svg id="surface1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 3850 <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> 3851 <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> 3852 <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> 3853 </svg> 3854 3855 <h4>Drag & Drop Photo file or Browse</h4> 3856 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3857 </div> 3858 </div> 3859 <div class="after-upload"> 3860 <div class="clear-btn">×</div> 3861 <img src="" width="" height=""> 3862 </div> 3863 </div> 3864
3864<script> 3865 function applyDndFile(el) { 3866 const parent = document.querySelector(".file-dnd") 3867 const beforeUploadEl = el.querySelector(".before-upload") 3868 const afterUploadEl = el.querySelector(".after-upload") 3869 const inputFile = el.querySelector("input[type=file]") 3870 const imagePreview = el.querySelector(".after-upload img") 3871 const clearBtn = el.querySelector(".after-upload .clear-btn") 3872 const inputProps = parent.querySelector("[data-properties]"); 3873 3874 async function upload(name, uri, type) { 3875 try { 3876 const filename = name.split('.')[0] 3877 let formData = new FormData(); 3878 formData.append("file", uri); 3879 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3880 method: "POST", 3881 body: formData 3882 }) 3883 if(response) { 3884 const res = await response.json() 3885 return res 3886 } 3887 } catch(err){ 3888 console.log(err) 3889 } 3890 } 3891 3892 function showImagePreview(img) { 3893 if(img){ 3894 const blobUrl = URL.createObjectURL(img) 3895 imagePreview.src = blobUrl 3896 afterUploadEl.style.display = "block" 3897 beforeUploadEl.style.display = "none" 3898 } 3899 } 3900 3901 beforeUploadEl.addEventListener("click", (e) => { 3902 e.preventDefault() 3903 inputFile.click() 3904 }) 3905 3906 inputFile.addEventListener("change", async (e) => { 3907 e.preventDefault() 3908 showImagePreview(e.target.files[0]) 3909 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3910 inputProps.value = uploadData?.url 3911 }) 3912 3913 clearBtn.addEventListener("click", (e) => { 3914 afterUploadEl.style.display = "none" 3915 beforeUploadEl.style.display = "flex" 3916 inputProps.value = "" 3917 }) 3918 3919 beforeUploadEl.addEventListener("dragover", (e) => { 3920 e.preventDefault() 3921 el.classList.add("active") 3922 }) 3923 3924 beforeUploadEl.addEventListener("dragleave", (e) => { 3925 e.preventDefault() 3926 el.classList.remove("active") 3927 }) 3928 3929 beforeUploadEl.addEventListener("drop", async (e) => { 3930 e.preventDefault() 3931 el.classList.remove("active") 3932 showImagePreview(e.dataTransfer.files[0]) 3933 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3934 console.log(uploadData) 3935 inputProps.value = uploadData?.url 3936 }) 3937 } 3938 3939 applyDndFile(document.querySelector(".file-dnd")) 3940 3941 $(document).ready(function(){ 3942 $(".variant-swatch").change(function(){ 3943 const v = $(this).val().toLowerCase() 3944 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3945 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3946 $(".file-dnd").hide() 3947 $(".file-dnd").find("[data-properties]").val("") 3948 $(".after-upload").hide() 3949 $(".before-upload").css("display", "flex") 3950 }) 3951 }) 3952 </script>
3952 3953 3954 </div> 3955 3956 <style> 3957 @media (max-width: 768px) { 3958 .select2-search__field { 3959 pointer-events: none !important; 3960 } 3961 3962 .select2-search { 3963 display: none !important; 3964 } 3965 } 3966 </style> 3967 3968
3968<script> 3969 $(document).ready(function() { 3970 // Check if mobile 3971 if (window.innerWidth <= 768) { 3972 // When cities select2 opens on mobile, remove focus from search 3973 $('#cities').on('select2:open', function() { 3974 setTimeout(function() { 3975 $('.select2-search__field').blur(); 3976 $('.select2-search__field').prop('readonly', true); 3977 }, 100); 3978 }); 3979 } 3980 }); 3981 </script>
3981 3982 3983 <style> 3984 .icon-img-footer { 3985 width: 80px; 3986 padding: 0px 5px; 3987 } 3988 @media (min-width: 768px) { 3989 .icon-img-footer { 3990 width: 120px; 3991 } 3992 } 3993 @media (min-width: 992px) { 3994 .icon-img-footer { 3995 width: 120px; 3996 } 3997 } 3998 3999 4000 </style> 4001 4002 4003<div class="form-group p-0"> 4004 <input type="text" id="propDeliveryDate" required class="hide"> 4005</div> 4006 </div> 4007 4008 4009 <div id="row-delivery-time" class="row m-0 mb-3"> 4010 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 4011 <div class="form-group p-0"> 4012 <input type="text" id="propDeliveryTime" class="hide" required> 4013 </div> 4014 </div> 4015 </div> 4016 4017 <style> 4018 #PBarNextFrameWrapper { 4019 display: none; 4020 } 4021 #backgroundPopup { 4022 display: none; 4023 position: fixed; 4024 _position: absolute; 4025 height: 100%; 4026 width: 100%; 4027 top: 0; 4028 left: 0; 4029 background: rgb(117 117 117 / 24%); 4030 z-index: 1; 4031 } 4032 .sectionPurchase { 4033 height: 100%; 4034 position: relative; 4035 max-width: 1344px; 4036 background-color: #fff; 4037 padding: 0; 4038 overflow: hidden; /* Changed from auto to hidden */ 4039 display: flex; 4040 flex-direction: column; 4041 } 4042 .sectionPurchase.purchaseAddonSpotify { 4043 max-width: 1070px!important; 4044 max-height: 765px!important; 4045 } 4046 .sectionPurchaseBoard { 4047 max-width: 872px!important; 4048 max-height: 821px!important; 4049 } 4050 .purchaseAddonSpotify .btn-action { 4051 position: absolute; 4052 bottom: 0; 4053 left: 0; 4054 width: 100%; 4055 display: flex; 4056 gap: 10px; 4057 } 4058 .wrapperPurchase { 4059 position: relative; 4060 height: 100%; 4061 display: flex; 4062 flex-direction: column; 4063 } 4064 4065 /* New styles for scrollable content and sticky button */ 4066 .purchase-content { 4067 flex: 1; 4068 overflow-y: auto; 4069 overflow-x: hidden; 4070 padding: 20px; 4071 } 4072 4073 .purchase-button-wrapper { 4074 position: sticky; 4075 bottom: 0; 4076 background-color: #fff; 4077 border-top: 1px solid #e0e0e0; 4078 padding: 15px 0; 4079 margin-top: auto; 4080 z-index: 10; 4081 } 4082 4083 .purchasePopup { 4084 display: none; 4085 position: fixed; 4086 background: rgb(117 117 117 / 24%); 4087 z-index: 999; 4088 padding: 40px; 4089 font-size: 13px; 4090 top: 0; 4091 left: 0; 4092 width: 100%; 4093 height: 100%; 4094 } 4095 .popupPurchaseClose{ 4096 font-size:14px; 4097 line-height:14px; 4098 right:45px; 4099 top:45px; 4100 position:absolute; 4101 color:#6fa5fd; 4102 font-weight:700; 4103 display:block; 4104 cursor: pointer; 4105 } 4106 4107 .headerPurchase { 4108 margin-bottom: 30px; 4109 display: flex; 4110 justify-content: space-between; 4111 } 4112 4113 .headerPurchase h3 { 4114 font-size: 16px; 4115 text-transform: uppercase; 4116 } 4117 4118 .sectionPurchaseBoard .headerPurchase { 4119 margin-bottom: 15px; 4120 } 4121 4122 .sectionPurchaseBoard .formAddressPurchase { 4123 padding-top: 0; 4124 } 4125 4126 .purchaseArea { 4127 position: relative; 4128 height: 100%; 4129 } 4130 4131 .purchaseArea h4 { 4132 width: 100%; 4133 font-size: 12px; 4134 font-weight: 600; 4135 margin-bottom: 10px; 4136 text-transform: uppercase; 4137 } 4138 4139 .menuPurchase { 4140 margin-bottom: 30px; 4141 } 4142 4143 .menuPurchase ul { 4144 list-style-type: none; 4145 margin: 0; 4146 } 4147 4148 .menuPurchase ul li { 4149 display: inline-block; 4150 border: 1px solid #ffffff; 4151 padding: 5px 20px; 4152 margin-right: 5px; 4153 margin-bottom: 10px; 4154 font-size: 12px; 4155 font-weight: 400; 4156 } 4157 4158 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 4159 background-color: #ffffff; 4160 color: #ffffff; 4161 } 4162 4163 .contentPurchase h5 { 4164 font-size: 12px; 4165 margin-bottom: 10px; 4166 font-weight: 400; 4167 overflow: hidden; 4168 } 4169 4170 /* Card */ 4171 4172 #itemCards { 4173 max-height: 430px; 4174 overflow: auto; 4175 } 4176 4177 .item-cards { 4178 width: 100%; 4179 } 4180 .item-card.selected { 4181 border: 1px solid #ffffff; 4182 } 4183 .item-card:hover { 4184 border: 1px solid #C4C4C4; 4185 } 4186 .item-cards .item-card { 4187 position: relative; 4188 width: calc(33% - 10px); 4189 max-width: calc(33% - 10px); 4190 flex: 0 0 calc(33% - 10px); 4191 margin-bottom: 20px; 4192 } 4193 .item-cards .item-card label, 4194 .item-addons .item-addon label { 4195 position: absolute; 4196 left: 0; 4197 width: 100%; 4198 height: 100%; 4199 } 4200 .item-cards .item-card .card-image img, 4201 .item-addons .item-addon .card-image img { 4202 display: block; 4203 width: 100%; 4204 } 4205 .item-card .card-meta, 4206 .item-addon .card-meta { 4207 padding: 10px 5px 5px; 4208 } 4209 .item-card.selected .card-meta, 4210 .item-addon.selected .card-meta, 4211 .item-card.selected .card-qty { 4212 background-color: #ffffff; 4213 color: #fff; 4214 visibility: visible!important; 4215 } 4216 .item-card:hover .card-meta, 4217 .item-addon:hover .card-meta, 4218 .item-card:hover .card-qty { 4219 background-color: #C4C4C4; 4220 color: #fff; 4221 visibility: visible!important; 4222 } 4223 .item-cards .item-card p, 4224 .item-addons .item-addon p { 4225 font-size: 12px !important; 4226 margin: 0; 4227 font-weight: 600; 4228 } 4229 .item-card .card-meta input, 4230 .item-addon .card-meta input { 4231 display: none; 4232 } 4233 .item-cards .item-card h5, 4234 .item-addons .item-addon h5 { 4235 text-transform: uppercase; 4236 max-height: 35px; 4237 } 4238 4239 @media (max-width: 768px) { 4240 .item-cards .item-card {
4241 width: calc(50% - 10px); 4242 max-width: calc(50% - 10px); 4243 flex: 0 0 calc(50% - 10px); 4244 margin-bottom: 0; 4245 } 4246 } 4247 4248 .card-qty { 4249 display: flex; 4250 padding: 5px; 4251 visibility: hidden; 4252 background-color: #fff !important; 4253 z-index: 999; 4254 } 4255 .card-qty a { 4256 border-width: 1px; 4257 width: 30%; 4258 cursor: pointer; 4259 text-align: center; 4260 align-self: center; 4261 height: 28px; 4262 display: block; 4263 position: relative; 4264 } 4265 .card-qty a svg { 4266 position: absolute; 4267 top: 50%; 4268 left: 50%; 4269 transform: translate(-50%, -50%); 4270 text-align: center; 4271 } 4272 input.btn-qty { 4273 border-width: 0px; 4274 border-radius: 0; 4275 background-color: #fff; 4276 -webkit-appearance: none; 4277 box-shadow: none !important; 4278 -webkit-box-shadow: none !important; 4279 -moz-box-shadow: none!important; 4280 width: 40%; 4281 border-left: 1px solid #c4c4c4; 4282 border-right: 1px solid #c4c4c4; 4283 padding: 0; 4284 } 4285 4286 .sectionPurchaseBoard #itemAddons .item-card { 4287 width: calc(20% - 15px); 4288 max-width: calc(20% - 15px); 4289 flex: 0 0 calc(20% - 15px); 4290 } 4291 4292 .purchase-button { 4293 width: 100%; 4294 padding: 0; /* Reset padding as it's now handled by wrapper */ 4295 margin: 0; 4296 } 4297 4298 .sectionPurchaseBoard .purchase-button { 4299 margin-top: 0 !important; /* Reset margin */ 4300 } 4301 4302 .back-purchase-button, .back-spotify { 4303 width: 139px; 4304 border: 1px solid; 4305 height: 43px; 4306 } 4307 .purchase-button .btn { 4308 width: 297px; 4309 height: 43px; 4310 background-color: #ffffff; 4311 color: #ffffff; 4312 } 4313 .purchase-button .btn[disabled] { 4314 background-color: #EEEEEE; 4315 } 4316 .back-purchase-button svg, .back-spotify svg { 4317 align-self: center; 4318 vertical-align: middle; 4319 margin-right: 10px; 4320 } 4321 4322 #purchaseProduct .row .error { 4323 font-size: 12px !important; 4324 color: orange; 4325 margin-top: 5px; 4326 } 4327 4328 .reviewCardPurchase { 4329 max-width: 448px; 4330 float: right; 4331 } 4332 4333 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 4334 .addon-item * {align-self: center;font-size: 12px;} 4335 .addon-itm-title {width: 360px;} 4336 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 4337 4338 .propsAddonSpotify p { 4339 margin: 0; 4340 display: flex; 4341 font-size: 12px !important; 4342 margin-bottom: 5px; 4343 } 4344 .propsAddonSpotify p span:first-child { 4345 text-transform: uppercase; 4346 font-weight: 600; 4347 -ms-flex: 0 0 150px; 4348 flex: 0 0 150px; 4349 max-width: 150px; 4350 } 4351 4352 .addonsPurchase .addons { 4353 max-height: 250px; 4354 overflow: auto; 4355 } 4356 4357 .btn .loading:after { 4358 content: ""; 4359 display: inline-block; 4360 width: 20px; 4361 height: 20px; 4362 padding: 3px; 4363 aspect-ratio: 1; 4364 border-radius: 50%; 4365 background: #FFFFFF; 4366 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 4367 -webkit-mask: var(--_m); 4368 mask: var(--_m); 4369 -webkit-mask-composite: source-out; 4370 mask-composite: subtract; 4371 animation: l3 1s infinite linear; 4372 margin: auto; 4373 vertical-align: middle; 4374 margin-left: 10px; 4375 } 4376 4377 #qrcode img, #qrcode canvas { 4378 width: 50px; 4379 position: absolute; 4380 top: 12px; 4381 left: 16px; 4382 } 4383 4384 .t-preview { 4385 position: absolute; 4386 top: 17px; 4387 left: 75px; 4388 } 4389 .t-preview p { 4390 margin: 0; 4391 font-size: 12px !important; 4392 } 4393 .t-preview .h3 { 4394 font-size: 16px !important; 4395 margin-bottom: 5px; 4396 font-weight: 600; 4397 } 4398 .scanCard { 4399 width: 100%; 4400 border: 1px solid; 4401 height: 76px; 4402 background-color: #fff; 4403 } 4404 .scanCard > div > img { 4405 position: absolute; 4406 right: 0; 4407 width: 55px; 4408 } 4409 4410 @keyframes l3 { 4411 100% { 4412 transform: rotate(1turn); 4413 } 4414 } 4415 4416 @media (min-width: 991px) { 4417 .sectionPurchase { 4418 height: 100%; 4419 position: relative; 4420 max-width: 1344px;
4421 background-color: #fff; 4422 top: 50%; 4423 left: 50%; 4424 transform: translate(-50%, -50%); 4425 } 4426 .headerPurchase h3 { 4427 font-size: 20px; 4428 } 4429 .purchaseArea h4 { 4430 font-size: 16px; 4431 } 4432 4433 .menuPurchase ul li { 4434 font-size: 16px; 4435 } 4436 4437 .contentPurchase { 4438 margin-bottom: 30px; 4439 } 4440 .contentPurchase h5 { 4441 font-size: 16px; 4442 } 4443 4444 .item-cards .item-card p, 4445 .item-addons .item-addon p { 4446 font-size: 16px !important; 4447 } 4448 4449 .cards { 4450 float: right; 4451 width: 400px; 4452 } 4453 4454 .item-cards .item-card { 4455 width: calc(25% - 30px); 4456 max-width: calc(25% - 30px); 4457 flex: 0 0 calc(25% - 30px); 4458 } 4459 4460 #itemAddons .item-card { 4461 position: relative; 4462 width: calc(16% - 40px); 4463 max-width: calc(16% - 40px); 4464 flex: 0 0 calc(16% - 40px); 4465 } 4466 4467 .purchase-button-wrapper { 4468 padding: 10px 20px; 4469 } 4470 } 4471 4472 @media (max-width: 1200px) { 4473 .item-cards .item-card { 4474 width: calc(33% - 30px); 4475 max-width: calc(33% - 30px); 4476 flex: 0 0 calc(33% - 30px); 4477 } 4478 } 4479 4480 @media (max-width: 992px) { 4481 .purchasePopup { 4482 padding: 0; 4483 } 4484 .item-cards .item-card h5, 4485 .item-addons .item-addon h5 { 4486 max-height: 30px; 4487 } 4488 4489 .back-purchase-button, .back-spotify, .next-purchase-button { 4490 width: 100%; 4491 } 4492 .addon-itm-title { 4493 width: 300px; 4494 } 4495 .addon-itm-line-price { 4496 margin-right: 10px; 4497 } 4498 .t-preview { 4499 top: 10px; 4500 } 4501 4502 .card-qty a { 4503 height: 15px; 4504 } 4505 4506 .purchase-button-wrapper { 4507 padding: 15px; 4508 } 4509 } 4510 4511 @media (max-width: 576px) { 4512 .purchase-button .btn { 4513 width: 100%!important; 4514 } 4515 .purchase-button > .col-12 { 4516 padding-left: 0; 4517 padding-right: 0; 4518 } 4519 } 4520 </style> 4521 4522 4523 <div class="purchasePopup"> 4524 <div class="purchaseArea"> 4525 4526 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 4527 <div class="wrapperPurchase"> 4528 <div class="purchase-content"> 4529 <div class="headerPurchase"> 4530 <h3 class="text-uppercase"> 4531 4532 customize your flower board 4533 4534 </h3> 4535 <a class="close-purchase-popup"> 4536 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4537 <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"/> 4538 </svg> 4539 </a> 4540 4541 </div> 4542 <div class="contentPurchase"> 4543 <div class="row"> 4544 4545 <div class="col-12"> 4546 4547 4548 <style> 4549 4550 4551 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 4552 .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;} 4553 4554 .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;} 4555 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 4556 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 4557 .svgLogoPapan p {color: #8E8E93; margin: 0;} 4558 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 4559 .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;} 4560 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 4561 #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;} 4562 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 4563 .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;} 4564 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 4565 4566 @media (min-width: 991px) { 4567 .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);} 4568 .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);} 4569 } 4570 </style> 4571 4572 <input type="hidden" data-properties="penerima" value="-"> 4573 <div class="customize-papan"> 4574 <div class="container"> 4575 <div class="field-papan group-field-1 form-group"> 4576 <div class="input-field">
4577 <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. 4578 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4579 <p class="limit">0/100</p> 4580 <div id="suggest-messages"> 4581 <a id="show_note_papan1" href="#"> 4582 <div class="suggest-message" id="note_btn_div1"> 4583 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 4584 </div> 4585 </a> 4586 <a id="show_note_papan2" href="#"> 4587 <div class="suggest-message" id="note_btn_div2"> 4588 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 4589 </div> 4590 </a> 4591 <a id="show_note_papan3" href="#"> 4592 <div class="suggest-message" id="note_btn_div3"> 4593 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 4594 </div> 4595 </a> 4596 </div> 4597 </div> 4598 </div> 4599 <div class="hide"> 4600 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 4601 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 4602 </div> 4603 <div class="hide"> 4604 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 4605 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 4606 </div> 4607 <div class="hide"> 4608 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 4609 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 4610 </div> 4611 <div class="field-papan group-field-2 form-group"> 4612 4613 <label for="logoPapan" onclick="" class="input-field field-logo"> 4614 4615 4616 4617 <div class="btn-upload-papan w-100"> 4618 <?xml version="1.0" encoding="UTF-8"?> 4619 <img src="" style="display:none"> 4620 <div class="svgLogoPapan"> 4621 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="22" height="26" viewBox="0 0 22 26" fill="none"> 4622 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 4623 </svg> 4624 <p>Upload Logo <span>*optional</span></p> 4625 </div> 4626 </div> 4627 4628 </label> 4629 4630 <input 4631 type="hidden" 4632 data-properties="papan-logo" 4633 value="" 4634 > 4635 <input 4636 type="file" 4637 id="logoPapan" 4638 accept="image/*" 4639 style="position: absolute;width: 1px;height: 1px;padding: 0" 4640 > 4641 4642 <div class="input-field"> 4643 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 4644 <p class="limit">0/35</p> 4645 </div> 4646 4647 </div> 4648 4649 </div> 4650 </div> 4651 </div> 4652 4653 </div> 4654 </div> 4655 4656 </div> 4657 <div class="purchase-button-wrapper"> 4658 <div class="purchase-button btn-card row m-0"> 4659 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4660 4661 </div> 4662 <div class="btn-next-card col-12 col-lg-10 text-right"> 4663 4664 4665 <button 4666 4667 4668 4669 class="btn next-purchase-button text-uppercase" 4670 4671 disabled 4672 4673 > 4674 <span>save your flower board</span> 4675 </button> 4676 </div> 4677 </div> 4678 4679 </div> 4680 </div> 4681 </div> 4682 4683 4684 4685 <div 4686 class="sectionPurchase sectionPurchaseBoard hide" 4687 data-section="address" 4688 > 4689 <div class="wrapperPurchase"> 4690 <div class="purchase-content"> 4691 <div class="contentPurchase"> 4692 <div class="row"> 4693 <div class="col-12 position-relative"> 4694 <div class="addressPurchase"> 4695 4696 <h4 class="text-uppercase">recipient delivery address</h4> 4697 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 4698 4699 <div class="formAddressPurchase row"> 4700 <div class="col-12"> 4701 <form> 4702 <div class="form-group row mb-2 mb-lg-4"> 4703 <div class="col-6 position-relative"> 4704 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 4705 <label for="first_name" class="input__label">First Name<span>*</span></label> 4706 </div> 4707 <div class="col-6 position-relative"> 4708 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 4709 <label for="last_name" class="input__label">Last Name<span>*</span></label> 4710 </div> 4711 <input type="hidden" data-properties="nama-penerima"> 4712 </div> 4713 4714 <h4 class="text-uppercase">how you want to input your address</h4> 4715 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 4716 <div class="col-6 position-relative"> 4717 <label class="address-manualy"> 4718 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="18" height="17" viewBox="0 0 18 17" fill="none"> 4719 <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
47191216 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
47195 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"/> 4720 </svg> 4721 <span>Input Address Manually</span> 4722 </label> 4723 </div> 4724 <div class="col-6 position-relative"> 4725 <label for="address-upload" class="address-upload"> 4726 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 4727 <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"/> 4728 </svg> 4729 <span>Upload Address Picture</span> 4730 </label> 4731 <input 4732 id="address-upload" 4733 type="file" 4734 accept="image/png, image/jpeg" 4735 style="position: absolute; padding: 0;width: 1px;height: 1px" 4736 > 4737 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 4738 </div> 4739 </div> 4740 <img width="150" height="" src="" class="photo-address" style="display: none;"> 4741 4742 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4743 <div class="col-12"> 4744 <textarea 4745 id="delivery_address" 4746 data-properties="alamat-penerima" 4747 class="form-control input__field col-12" 4748 placeholder="" 4749 required 4750 ></textarea> 4751 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4752 4753 </div> 4754 </div> 4755 <div class="form-group row mb-2 mb-lg-4 form-address"> 4756 <div class="col-6 position-relative"> 4757 <input 4758 id="recipient_number" 4759 type="text" 4760 data-properties="telepon-penerima" 4761 class="form-control input__field" 4762 placeholder="" 4763 required 4764 > 4765 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4766 </div> 4767 <div class="col-6 position-relative"> 4768 <input 4769 id="company" 4770 type="text" 4771 data-properties="company" 4772 class="form-control input__field" 4773 placeholder="" 4774 > 4775 <label for="company" class="input__label">Company (Optional)</label> 4776 </div> 4777 </div> 4778 <div class="form-group row mb-2 mb-lg-4 form-address"> 4779 <div class="col-6 position-relative"> 4780 <input 4781 id="province" 4782 type="text" 4783 class="form-control input__field" 4784 placeholder="" 4785 value="Jakarta" 4786 data-properties="province" 4787 > 4788 <label for="province" class="input__label">Province</label> 4789 </div> 4790 <div class="col-6 position-relative"> 4791 <select id="zip" class="form-control select-search" required></select> 4792 </div> 4793 </div> 4794 </form> 4795 </div> 4796 </div> 4797 </div> 4798 <div class="addonsPurchase"> 4799 <h4 class="text-uppercase">add-ons</h4> 4800 <div class="addons"> 4801 <p>No Add-Ons</p> 4802 <!-- 4803 <button class="add-addon"> 4804 <svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4805 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4806 </svg>
4807 <span>Enhance my moment with Add-ons</span> 4808 </button> 4809 --> 4810 </div> 4811 </div> 4812 </div> 4813 4814 </div> 4815 </div> 4816 4817
4817<script> 4818 document.addEventListener('DOMContentLoaded', function() { 4819 // Detect iOS 4820 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4821 4822 if (isIOS) { 4823 document.querySelector('.formAddressPurchase').classList.add('ios'); 4824 4825 // iOS specific fixes 4826 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4827 4828 inputs.forEach(function(input) { 4829 // Force enable touch events on iOS 4830 input.style.webkitUserSelect = 'text'; 4831 input.style.webkitTouchCallout = 'default'; 4832 input.style.pointerEvents = 'auto'; 4833 input.style.touchAction = 'manipulation'; 4834 4835 // Add explicit touch event listeners for iOS 4836 input.addEventListener('touchstart', function(e) { 4837 e.stopPropagation(); 4838 this.focus(); 4839 }, { passive: false }); 4840 4841 input.addEventListener('touchend', function(e) { 4842 e.preventDefault(); 4843 e.stopPropagation(); 4844 this.focus(); 4845 this.click(); 4846 }, { passive: false }); 4847 4848 // Force focus on tap for iOS 4849 input.addEventListener('click', function(e) { 4850 e.stopPropagation(); 4851 if (document.activeElement !== this) { 4852 this.focus(); 4853 } 4854 }); 4855 }); 4856 4857 // Fix for label overlapping on iOS 4858 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4859 labels.forEach(function(label) { 4860 label.style.pointerEvents = 'none'; 4861 label.addEventListener('touchstart', function(e) { 4862 e.preventDefault(); 4863 var input = this.parentNode.querySelector('.input__field'); 4864 if (input) { 4865 input.focus(); 4866 } 4867 }); 4868 }); 4869 } 4870 4871 // Handle input state for all browsers, especially iOS 4872 var inputs = document.querySelectorAll('.input__field'); 4873 4874 inputs.forEach(function(input) { 4875 // Handle input events 4876 input.addEventListener('input', function() { 4877 if (this.value.trim() !== '') { 4878 this.classList.add('has-value'); 4879 } else { 4880 this.classList.remove('has-value'); 4881 } 4882 }); 4883 4884 // Handle focus 4885 input.addEventListener('focus', function() { 4886 this.classList.add('focused'); 4887 // iOS specific: ensure input is visible 4888 if (isIOS) { 4889 setTimeout(function() { 4890 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4891 }, 300); 4892 } 4893 }); 4894 4895 // Handle blur 4896 input.addEventListener('blur', function() { 4897 this.classList.remove('focused'); 4898 if (this.value.trim() !== '') { 4899 this.classList.add('has-value'); 4900 } else { 4901 this.classList.remove('has-value'); 4902 } 4903 }); 4904 4905 // Initial check for pre-filled values 4906 if (input.value.trim() !== '') { 4907 input.classList.add('has-value'); 4908 } 4909 }); 4910 4911 // Additional iOS fixes 4912 if (isIOS) { 4913 // Prevent iOS Safari from adding default styling 4914 document.addEventListener('touchstart', function() {}, { passive: true }); 4915 4916 // Fix viewport issues on iOS 4917 var viewport = document.querySelector('meta[name=viewport]'); 4918 if (viewport) { 4919 viewport.setAttribute('content', 4920 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4921 ); 4922 } 4923 } 4924 }); 4925 </script>
4925 4926 </div> 4927 <div class="purchase-button-wrapper"> 4928 <div class="purchase-button btn-address row m-0"> 4929 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4930 4931 <button class="back-purchase-button back-address text-uppercase"> 4932 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 4933 <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"/> 4934 </svg> 4935 <span>Back</span> 4936 </button> 4937 4938 </div> 4939 <div class="btn-next-card col-12 col-lg-10 text-right"> 4940 4941 <!-- 4942 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4943 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 4944 <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"/> 4945 </svg> 4946 <span>Back</span> 4947 </button> 4948 --> 4949 4950 4951 <button 4952 4953 id="addtocart-card" 4954 4955 class="btn next-address text-uppercase" 4956 4957 > 4958 <span>add to cart</span> 4959 </button> 4960 </div> 4961 </div> 4962 4963 </div> 4964 </div> 4965 </div> 4966 4967 </div> 4968 </div> 4969 <div id="backgroundPopup"></div> 4970 4971 4972 4973 <input 4974 data-index="1" 4975 type="hidden" 4976 id="properties-delivery-date" 4977 name="properties[Delivery Date]" 4978 value="-" 4979 > 4980 <input 4981 data-index="2" 4982 type="hidden" 4983 id="properties-delivery-time" 4984 name="properties[Delivery Time]" 4985 value="-" 4986 > 4987 <input 4988 data-index="4" 4989 type="hidden" 4990 id="properties-nama-penerima" 4991 name="properties[Nama Penerima]" 4992 value="-" 4993 > 4994 <input 4995 data-index="5" 4996 type="hidden" 4997 id="properties-alamat-penerima" 4998 name="properties[Alamat Penerima]" 4999 value="-" 5000 > 5001 <input 5002 data-index="6" 5003 type="hidden" 5004 id="properties-kodepos" 5005 name="properties[Kodepos]" 5006 value="-" 5007 > 5008 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 5009 5010 5011 <input 5012 data-index="8" 5013 type="hidden" 5014 id="properties-kartu-nama-penerima" 5015 name="properties[Kartu Nama Penerima]" 5016 value="-" 5017 > 5018 5019 <textarea 5020 data-index="9" 5021 type="hidden" 5022 id="properties-kartu-pesan" 5023 name="properties[Kartu Pesan]" 5024 style="display: none" 5025 >-</textarea> 5026 5027 5028 5029 <input 5030 data-index="10" 5031 type="hidden" 5032 id="properties-kartu-nama-pengirim" 5033 name="properties[Kartu Nama Pengirim]" 5034 value="-" 5035 > 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 <!-- Additional Shipping --> 5055 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 5056 <input 5057 type="hidden" 5058 id="properties-kota-pengiriman-country" 5059 name="properties[Country]" 5060 value="Indonesia" 5061 > 5062 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 5063 5064 <input type="hidden" id="properties-time" name="properties[Time]"> 5065 <input type="hidden" id="properties-card" name="properties[Card]"> 5066 <input type="hidden" id="properties-addons" name="properties[Addons]"> 5067 5068 <input 5069 type="hidden" 5070 id="properties-company" 5071 name="properties[Company]" 5072 value="" 5073 > 5074
5074<script> 5075 5076 $(document).ready(function(){ 5077 5078 var text_max_papan1=150; 5079 var msg_text_papan1=""; 5080 $('#kartu-ucapan-ucapan').keyup(function(){ 5081 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 5082 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 5083 }); 5084 5085 var notes_papan1 = [ 5086 5087 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 5088 5089 ]; 5090 $('#show_note_papan1').click(function(event){ 5091 event.preventDefault(); 5092 var idx_papan1=parseInt($('#note_id_papan1').val()); 5093 if(isNaN(idx_papan1)){ 5094 idx_papan1=0; 5095 }else{ 5096 idx_papan1++; 5097 idx_papan1=idx_papan1%notes_papan1.length; 5098 } 5099 var note_papan1=notes_papan1[idx_papan1][1]; 5100 $('#note_id_papan1').val(idx_papan1); 5101 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 5102 $('#msgDelivery').val(note_papan1); 5103 5104 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 5105 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 5106 if(isNaN(idx_2_papan1)){ 5107 idx_2_papan1=0; 5108 }else{ 5109 idx_2_papan1++; 5110 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5111 } 5112 $('#note_btn_id_papan1').val(idx_2_papan1); 5113 //var note_btn=note_btn_text[idx_2][1]; 5114 //$('#note_btn').text(note_btn); 5115 }); 5116 5117 var text_max_papan2=150; 5118 var msg_text_papan2=""; 5119 $('#kartu-ucapan-ucapan').keyup(function(){ 5120 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 5121 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 5122 }); 5123 5124 var notes_papan2 = [ 5125 5126 [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)."] 5127 5128 ]; 5129 $('#show_note_papan2').click(function(event){ 5130 event.preventDefault(); 5131 var idx_papan2=parseInt($('#note_id_papan2').val()); 5132 if(isNaN(idx_papan2)){ 5133 idx_papan2=0; 5134 }else{ 5135 idx_papan2++; 5136 idx_papan2=idx_papan2%notes_papan2.length; 5137 } 5138 var note_papan2=notes_papan2[idx_papan2][1]; 5139 $('#note_id_papan2').val(idx_papan2); 5140 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 5141 $('#msgDelivery').val(note_papan2); 5142 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 5143 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 5144 if(isNaN(idx_2_papan2)){ 5145 idx_2_papan2=0; 5146 }else{ 5147 idx_2_papan2++; 5148 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5149 } 5150 $('#note_btn_id_papan2').val(idx_2_papan2); 5151 //var note_btn=note_btn_text[idx_2][1]; 5152 //$('#note_btn').text(note_btn); 5153 }); 5154 5155 var text_max_papan3=150; 5156 var msg_text_papan3=""; 5157 $('#kartu-ucapan-ucapan').keyup(function(){ 5158 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 5159 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 5160 }); 5161 5162 var notes_papan3 = [ 5163 5164 [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)."] 5165 5166 ]; 5167 $('#show_note_papan3').click(function(event){ 5168 event.preventDefault(); 5169 var idx_papan3=parseInt($('#note_id_papan3').val()); 5170 if(isNaN(idx_papan3)){ 5171 idx_papan3=0; 5172 }else{ 5173 idx_papan3++; 5174 idx_papan3=idx_papan3%notes_papan3.length; 5175 } 5176 var note_papan3=notes_papan3[idx_papan3][1]; 5177 $('#note_id_papan3').val(idx_papan3);
5178 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 5179 $('#msgDelivery').val(note_papan3); 5180 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 5181 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 5182 if(isNaN(idx_2_papan3)){ 5183 idx_2_papan3=0; 5184 }else{ 5185 idx_2_papan3++; 5186 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5187 } 5188 $('#note_btn_id_papan3').val(idx_2_papan3); 5189 //var note_btn=note_btn_text[idx_2][1]; 5190 //$('#note_btn').text(note_btn); 5191 }); 5192 5193 var text_max_papan4=150; 5194 var msg_text_papan4=""; 5195 $('#kartu-ucapan-ucapan').keyup(function(){ 5196 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 5197 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 5198 }); 5199 5200 $('#show_note_papan4').click(function(event){ 5201 var notes_papan4 = [ 5202 [0,"Hereâs to youâsteadier, stronger and better every day."], 5203 [1,"Warmest wishes for a speedy recovery!"], 5204 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 5205 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 5206 ]; 5207 event.preventDefault(); 5208 var idx_papan4=parseInt($('#note_id_papan4').val()); 5209 console.log(idx_papan4, 'idx_papan4') 5210 if(isNaN(idx_papan4)){ 5211 idx_papan4=0; 5212 }else{ 5213 idx_papan4++; 5214 idx_papan4=idx_papan4%notes_papan4.length; 5215 } 5216 var note_papan4=notes_papan4[idx_papan4][1]; 5217 $('#note_id_papan4').val(idx_papan4); 5218 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 5219 console.log(note_papan4, 'note_papan4') 5220 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 5221 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 5222 if(isNaN(idx_2_papan4)){ 5223 idx_2_papan4=0; 5224 }else{ 5225 idx_2_papan4++; 5226 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5227 } 5228 $('#note_btn_id_papan4').val(idx_2_papan4); 5229 }); 5230 5231 /* 5232 $("#jenisPapan").change(function(){ 5233 $( "select option:selected").each(function(){ 5234 if($(this).attr("value")=="Happy Wedding"){ 5235 $("#suggest-messages a").hide(); 5236 $("#show_note_papan1").show(); 5237 $("#kartu-ucapan-papan").val(""); 5238 } 5239 if($(this).attr("value")=="Congratulations"){ 5240 $("#suggest-messages a").hide(); 5241 $("#show_note_papan2").show(); 5242 $("#kartu-ucapan-papan").val(""); 5243 } 5244 if($(this).attr("value")=="Duka Cita"){ 5245 $("#suggest-messages a").hide(); 5246 $("#show_note_papan3").show(); 5247 $("#kartu-ucapan-papan").val(""); 5248 } 5249 }); 5250 }).change(); 5251 */ 5252 5253 5254 5255 5256 5257 $(".variant-metafield").each(function(){ 5258 const t = $(this) 5259 const id = t.attr("id") 5260 const target = $(`[data-select=${id}]`) 5261 t.on('select2:selecting', function(e) { 5262 const data = e.params.args.data 5263 target.val(data.text) 5264 }); 5265 }) 5266 }) 5267 </script>
5267 5268 5269
5269<script> 5270 const shareButton = document.getElementById('shareButton'); 5271 5272 shareButton.addEventListener('click', () => { 5273 if (navigator.share) { 5274 navigator.share({ 5275 title: "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 5276 url: "/products/blossom-shine", 5277 text: 'Check out this page!' 5278 }) 5279 .then(() => console.log('Successful share')) 5280 .catch((error) => console.log('Error sharing', error)); 5281 } else { 5282 alert('Web Share API is not supported in this browser.'); 5283 } 5284 }); 5285 5286 // Inventory validation function 5287 function checkInventoryStatus() { 5288 const productSelect = document.getElementById('productSelect'); 5289 const purchaseButton = document.querySelector('#personalizeBtn button'); 5290 5291 if (!productSelect || !purchaseButton) return; 5292 5293 const selectedVariantId = productSelect.value; 5294 5295 // Get variant data from Shopify 5296 fetch(`/products/blossom-shine.js`) 5297 .then(response => response.json()) 5298 .then(product => { 5299 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 5300 5301 if (selectedVariant) { 5302 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 5303 selectedVariant.inventory_management === 'shopify' && 5304 selectedVariant.inventory_policy !== 'continue'; 5305 5306 if (isOutOfStock) { 5307 purchaseButton.disabled = true; 5308 purchaseButton.textContent = 'Out of Stock'; 5309 purchaseButton.setAttribute('data-out-of-stock', 'true'); 5310 purchaseButton.style.backgroundColor = '#cccccc'; 5311 purchaseButton.style.cursor = 'not-allowed'; 5312 } else { 5313 // Check if button was disabled due to other conditions 5314 5315 5316 5317 5318 5319 5320 5321 5322 const isOtherDisabled = false || true || false; 5323 5324 if (!isOtherDisabled) { 5325 purchaseButton.disabled = false; 5326 purchaseButton.textContent = 'customize your flower board'; 5327 purchaseButton.removeAttribute('data-out-of-stock'); 5328 purchaseButton.style.backgroundColor = ''; 5329 purchaseButton.style.cursor = ''; 5330 } 5331 } 5332 } 5333 }) 5334 .catch(error => { 5335 console.error('Error checking inventory:', error); 5336 }); 5337 } 5338 5339 // Check inventory on page load 5340 document.addEventListener('DOMContentLoaded', function() { 5341 checkInventoryStatus();
5342 5343 // Listen for variant changes 5344 const productSelect = document.getElementById('productSelect'); 5345 if (productSelect) { 5346 productSelect.addEventListener('change', checkInventoryStatus); 5347 } 5348 }); 5349 5350 // Prevent form submission if out of stock 5351 document.addEventListener('click', function(e) { 5352 if (e.target.matches('button[data-out-of-stock="true"]')) { 5353 e.preventDefault(); 5354 e.stopPropagation(); 5355 alert('This product is currently out of stock and cannot be purchased.'); 5356 return false; 5357 } 5358 }); 5359 </script>
5359 5360 5361 5362 5363 </div> 5364 5365 </div> 5366 </div> 5367 </div> 5368 </div> 5369<div class="keunggulan-section"> 5370 <div class="keunggulan-blur-box"> 5371<div class="keunggulan-wrapper"> 5372 5373<h2 class="section-title">MENGAPA PERMATA123 JADI PILIHAN MEDIA LOGIN TERPERCAYA 2026?</h2> 5374 5375<div class="row-container"> 5376 5377<div class="keunggulan-row"> 5378 <div class="number-badge">01</div> 5379 <div class="content-box"> 5380 <h3>Tahap Login Ringkas dan Cepat</h3> 5381 <p>Dengan akses login yang ringan, pengguna tidak perlu lagi menunggu lama saat membuka halaman. Konsep tahapan dibuat agar jalur masuk terasa lebih enteng dan lebih siap digunakan.</p> 5382 </div> 5383</div> 5384 5385<div class="keunggulan-row"> 5386 <div class="number-badge">02</div> 5387 <div class="content-box"> 5388 <h3>Keamanan Lebih Terjaga</h3> 5389 <p>Perlindungan data menjadi satu prioritas. Setiap kali login, data pengguna akan langsung di enkripsi serta dilindungi SSL tingkat tinggi, menjadikan standar keamanan lebih baik.</p> 5390 </div> 5391</div> 5392 5393<div class="keunggulan-row"> 5394 <div class="number-badge">03</div> 5395 <div class="content-box"> 5396 <h3>Link Alternatif 24 Jam</h3> 5397 <p>Bisa akses kedalam game kapan saja tanpa hambatan berkat link alternatif stabil 24 jam. Tidak perlu khawatir meski halaman asli sedang mengalami gangguan.</p> 5398 </div> 5399</div> 5400 5401<div class="keunggulan-row"> 5402 <div class="number-badge">04</div> 5403 <div class="content-box"> 5404 <h3>Tampilan Alternatif Serupa Website Utama</h3> 5405 <p>Desain halaman utama dibuat mirip dengan website asli sehingga pengguna bisa langsung bermain tanpa harus belajar atau beradaptasi lagi.</p> 5406 </div> 5407</div> 5408 5409<div class="keunggulan-row"> 5410 <div class="number-badge">05</div> 5411 <div class="content-box"> 5412 <h3>Stabil di Berbagai Kondisi Jaringan</h3> 5413 <p>Baik keadaan sinyal kuat maupun sedang lelet, akses media login PERMATA123 tetap bisa dibuka dengan nyaman.ngan</p> 5414 </div> 5415</div> 5416 5417<div class="keunggulan-row"> 5418 <div class="number-badge">06</div> 5419 <div class="content-box"> 5420 <h3>Nyaman Untuk Perangkat Hp atau Dekstop</h3> 5421 <p>Mau login game lewat smartphone android, iOS atau desktop sekalipun, bisa banget. Tampilan responsive mengikuti layer perangkat yang digunakan.</p> 5422 </div> 5423</div> 5424 5425<div class="keunggulan-row"> 5426 <div class="number-badge">07</div> 5427 <div class="content-box"> 5428 <h3>Tak Perlu Buat Akun Baru</h3> 5429 <p>Pengguna tetap bisa login link alternatif PERMATA123 pakai akun lama. Data akun tetap utuh. Saldo, riwayat, dan informasi penting lainnya tidak berubah sama sekali.</p> 5430 </div> 5431</div> 5432 5433<div class="keunggulan-row"> 5434 <div class="number-badge">08</div> 5435 <div class="content-box"> 5436 <h3>Lebih Aman dengan Alamat yang Sudah Dikenal</h3> 5437 <p>Menggunakan link resmi ataupun alternatif yang sudah dikenal membantu pengguna menghindari halaman yang tidak jelas seperti scam. Pengguna bisa bebas akses dengan tenang dan terhindar resiko yang tidak diinginkan.</p> 5438 </div> 5439</div> 5440 5441</div> 5442 5443</div> 5444</div> 5445</div> 5446 <div id="product-bottom"> 5447 5448 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 5449 <div class="container"> 5450 5451 5452 5453 5454 5455 <div class="short-desc-mobile d-block d-lg-none mb-3"> 5456 <div class="short-desc"> 5457 <ul> 5458 <li><strong>Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.</strong></li> 5459 </div> 5460 <label class="more-mobile">Show More â</label> 5461 </div> 5462 5463 <style> 5464 .animated-title { 5465 text-align: center; 5466 font-weight: bold; 5467 color: #079c02; 5468 font-size: 28px; 5469 position: relative; 5470 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 5471 } 5472 5473 /* Efek glow / bercahaya hijau */ 5474 @keyframes glow { 5475 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 5476 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 5477 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 5478 } 5479 5480 /* Efek gerakan naik turun */ 5481 @keyframes moveUpDown { 5482 0% { transform: translateY(0px); } 5483 50% { transform: translateY(-5px); } 5484 100% { transform: translateY(0px); } 5485 } 5486 </style> 5487 5488
5488<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
5488 5489
5489<script> 5490 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}); 5491 5492 const productType = $("[data-product-type]").data("product-type") 5493 const productDate = Date.parse(new Date()) 5494 5495 const shop = 'outerbloom1.myshopify.com' 5496 const host = 'https://app.asmaraku.com' 5497 // const host = 'http://localhost:5001' 5498 5499 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 5500 5501 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 5502 5503 $("#properties-time").val(new Date().getTime()) 5504 5505 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5506 5507 if(!isIOS) { 5508 $("#full-date").attr("type", "button") 5509 } 5510 5511 let dateTime = new Date(); 5512 let today = dateTime.getDate(); 5513 let day = dateTime.getDay(); 5514 let hour = dateTime.getHours(); 5515 let min = dateTime.getMinutes(); 5516 let timeOfDay = hour + (min / 100); 5517 5518 async function getFetch(url) { 5519 const response = await fetch(url); 5520 let status = false 5521 let result 5522 if(response.ok) { 5523 status = true 5524 result = await response.json(); 5525 } 5526 return { 5527 status, 5528 data: result 5529 } 5530 } 5531 5532 5533 5534 function setCookie(cname, cvalue, exMins) { 5535 var d = new Date(); 5536 d.setTime(d.getTime() + (exMins*60*1000)); 5537 var expires = "expires="+d.toUTCString(); 5538 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5539 } 5540 5541 function getCookie(cname) { 5542 let name = cname + "="; 5543 let decodedCookie = decodeURIComponent(document.cookie); 5544 let ca = decodedCookie.split(';'); 5545 for(let i = 0; i <ca.length; i++) { 5546 let c = ca[i]; 5547 while (c.charAt(0) == ' ') { 5548 c = c.substring(1); 5549 } 5550 if (c.indexOf(name) == 0) { 5551 return c.substring(name.length, c.length); 5552 } 5553 } 5554 return ""; 5555 } 5556 5557 async function renderDate() { 5558 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8359546319899&v=${Date.now()}`); 5559 console.log(dataDate, 'renderDate') 5560 const data = dataDate?.data 5561 const date = data.date 5562 const time = data.time 5563 5564 console.log(date, 'DATE') 5565 5566 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 5567 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5568 const htmlDate = []
5569 for(let i = 0;i < date.length;i++) { 5570 const full = date[i].date 5571 const d = new Date(date[i].date); 5572 const day = weekday[d.getDay()]; 5573 const dt = d.getDate(); 5574 const mt = monthly[d.getMonth()]; 5575 const yr = d.getFullYear(); 5576 const isDate = Boolean(date[i].isEnabled) 5577 const cutoffpagi = date[i].cutoff?.pagi 5578 const cutoffsiang = date[i].cutoff?.siang 5579 const cutoffMalam = date[i].cutoff?.Malam 5580 var html = ` 5581 <button data-id="8359546319899" 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'}> 5582 ${dt === today ? 5583 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 5584 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 5585 } 5586 </button> 5587 ` 5588 htmlDate.push(html) 5589 } 5590 const htmlTime = []
5591 for(var i = 0;i < time.length;i++) { 5592 const timeText = time[i].text 5593 const timeTime = time[i].time 5594 const timeEnabled = time[i].isEnabled 5595 var html = ` 5596 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 5597 ` 5598 htmlTime.push(html) 5599 } 5600 const deliveryDate = document.getElementById("deliveryDate"); 5601 if(deliveryDate) { 5602 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 5603 $("#deliveryTime").html(htmlTime) 5604 if(productType !== '') { 5605 console.log("clarity event " + productType + ' calendaring') 5606 window.clarity("event", `${productType} calendaringSchedule`) 5607 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 5608 } 5609 } 5610 } 5611 5612 async function getProvince(city) { 5613 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 5614 console.log(province, 'province') 5615 $("#province").val(province) 5616 } 5617 5618 async function renderAddress() { 5619 let current 5620 if(getCookie("location_delivery")){ 5621 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 5622 } 5623 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8359546319899`); 5624 console.log(address) 5625 const data = address?.data?.city 5626 const htmlAddress = [] 5627 const grouping = []
5628 for(let i = 0;i < data?.length;i++) { 5629 if(data[i]){ 5630 if(data[i]?.group) { 5631 grouping.push(data[i].group) 5632 } 5633 const price = rupiah.format(data[i]?.rate) 5634 let promo = '(Promo Free Delivery)' 5635 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 5636 promo = '(at SCBD, Ashta)' 5637 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 5638 promo = '(at Kuningan, ITC Kuningan)' 5639 } else if(data[i]?.name === 'BSD - PickUp'){ 5640 promo = '(at Goldfinch Gading Serpong)' 5641 } else if(data[i]?.name === 'Kota Lainnya'){ 5642 promo = '' 5643 } 5644 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>`) 5645 } 5646 } 5647 5648 const deliveryCity = document.getElementById("cities"); 5649 if(deliveryCity) { 5650 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 5651 if(!isIOS) { 5652 $(deliveryCity).select2(); 5653 } 5654 } 5655 } 5656 5657 async function renderZip(v, v2, v3) { 5658 const deliveryZip = document.getElementById("zip"); 5659 if(v === '') { 5660 return 5661 } 5662 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5663 let zip = dataZip?.data?.zip 5664 console.log(zip) 5665 let htmlZip = []
5666 for(let i = 0; i < zip?.length;i++) { 5667 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5668 } 5669 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5670 } 5671 5672 renderDate() 5673 renderAddress() 5674 5675 let rupiah = new Intl.NumberFormat('id-ID', { 5676 style: 'currency', 5677 currency: 'IDR', 5678 maximumFractionDigits: 0, 5679 minimumFractionDigits: 0 5680 }); 5681 5682 async function insertCard(data) { 5683 const response = await fetch(`${host}/api/card/new`, { 5684 method: "POST", 5685 headers: { 5686 'Content-Type': 'application/json', 5687 }, 5688 body: data 5689 }) 5690 const result = await response.json() 5691 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5692 $("#greetingCard").attr("data-index", rowIndex) 5693 return result 5694 } 5695 5696 async function updateCard(data){ 5697 const rowIndex = $("#greetingCard").data("index") 5698 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5699 method: "PUT", 5700 headers: { 5701 'Content-Type': 'application/json', 5702 }, 5703 body: data 5704 }) 5705 return response 5706 } 5707 5708 function bytesToSize(bytes) { 5709 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5710 for (var i = 0; i < sizes.length; i++) { 5711 if (bytes <= 1024) { 5712 return bytes + ' ' + sizes[i]; 5713 } else { 5714 bytes = parseFloat(bytes / 1024).toFixed(2) 5715 } 5716 } 5717 return bytes + ' P'; 5718 } 5719 5720 async function uploadMedia(uri, type) { 5721 nameq = $("#properties-nama-penerima").val() 5722 dear = $("#properties-kartu-nama-penerima").val() 5723 card = $("[data-properties=ucapan]").val() 5724 sender = $("#properties-kartu-nama-pengirim").val() 5725 photo = $("#properties-photo").val() 5726 video = $("#properties-video").val() 5727 status = "Product" 5728 5729 const name = qrID 5730 let formData = new FormData(); 5731 formData.append("file", uri); 5732 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5733 method: "POST", 5734 body: formData 5735 }) 5736 const result = await response.json(); 5737 if(result) { 5738 const url = result.url 5739 if(type === 'image/jpeg') { 5740 $("#properties-photo").val(url) 5741 $(".preview-image").show() 5742 $(".remove-image").show() 5743 photo = url 5744 } else { 5745 $("#properties-video").val(url) 5746 $("#label-input-video span").text("Change File") 5747 $(".case-qrcode-preview p").text("Scan here for a secret message") 5748 $(".remove-media").show() 5749 $("#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>`) 5750 $("[for=input-video]").hide() 5751 video = url 5752 } 5753 $(".case-video-preview").show() 5754 $(".steps-card-preview").removeClass("loading") 5755 // updateCard(nameq, dear, card, sender, photo, video, status) 5756 5757 $(".nextBtn").attr("disabled", false) 5758 } 5759 } 5760 5761 function randomString(length, chars) { 5762 var result = ''; 5763 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5764 return result; 5765 } 5766 5767 function getNoteCity(fulldate) { 5768 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5769 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5770 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5771 const d = new Date(h_1); 5772 const day = weekday[d.getDay()]; 5773 const dt = d.getDate(); 5774 const mt = monthly[d.getMonth()]; 5775 const yr = d.getFullYear(); 5776 const p = $("#cities").parent(".form-group") 5777 } 5778 5779 function disabledSameDay() { 5780 let btnFirst = $("#deliveryDate").find("button:first-child") 5781 let getDay = new Date().getDay(); 5782 5783 5784 5785 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5786 if(hour >= 14.00){ 5787 btnFirst.attr("disabled", true) 5788 } 5789 } else if(getDay == 6){ 5790 if(hour >= 16.00){ 5791 btnFirst.attr("disabled", true) 5792 } 5793 } else if(getDay == 0){ 5794 if(hour >= 16.00){ 5795 btnFirst.attr("disabled", true) 5796 } 5797 } 5798 5799 5800 } 5801 5802 function disabledays(date) { 5803 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5804 //if u have to disable a list of day 5805 let removeDays 5806 5807 5808 5809 removeDays = ["2025-2-13", "2025-2-14"]; 5810 5811 if ($.inArray(ymd, removeDays) >= 0) { 5812 return [false]; 5813 } else { 5814 let day = date.getDay(); 5815 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5816 return [(day == 0), '']; 5817 } 5818 5819 if(day == 0){ 5820 return [(day == 0), '']; 5821 } 5822 5823 5824 return [(day != 0), '']; 5825 } 5826 } 5827 5828 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5829 /* Written by Deden Fathurahman ([email protected]). */ 5830 ( function( factory ) { 5831 if ( typeof define === "function" && define.amd ) { 5832 5833 // AMD. Register as an anonymous module. 5834 define( [ "../widgets/datepicker" ], factory ); 5835 } else { 5836 5837 // Browser globals 5838 factory( jQuery.datepicker ); 5839 } 5840 }( function( datepicker ) { 5841 5842 datepicker.regional.id = { 5843 closeText: "Tutup", 5844 prevText: "<mundur", 5845 nextText: "maju>", 5846 currentText: "Today", 5847 monthNames: [ "January","February","March","April","May","Juny", 5848 "July","August","September","October","November","December" ], 5849 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5850 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5851 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5852 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5853 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5854 weekHeader: "Mg", 5855 dateFormat: "D, dd M", 5856 firstDay: 0, 5857 isRTL: false, 5858 showMonthAfterYear: false, 5859 yearSuffix: "" }; 5860 datepicker.setDefaults( datepicker.regional.id ); 5861 5862 return datepicker.regional.id; 5863 5864 } ) ); 5865 5866 function loadPopup() { 5867 $("#backgroundPopup").fadeIn("slow"); 5868 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5869 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5870 if(firstSection.hasClass("purchasePersonalize")) { 5871 if(productType !== '') { 5872 console.log("clarity event " + productType + ' personalize') 5873 window.clarity("event", `${productType} cardPersonalization`) 5874 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5875 } 5876 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5877 console.log("clarity event " + productType + ' personalizeBoard') 5878 window.clarity("event", `${productType} personalizeBoard`) 5879 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5880 } 5881 firstSection.removeClass("hide") 5882 5883 // Auto-trigger addon loading when addon section becomes visible 5884 setTimeout(function() { 5885 const addonSection = $(".purchaseAddon") 5886 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5887 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5888 $("[data-addon=upsell-all]").trigger("click") 5889 } 5890 } 5891 }, 200) 5892 } 5893 5894 function disablePopup() { 5895 $("#backgroundPopup").fadeOut("slow"); 5896 $(".purchasePopup").fadeOut("slow"); 5897 $("#popupCart").fadeOut("slow"); 5898 } 5899
5900 function scrollTo(parent, div, dur) { 5901 $(parent).animate({ 5902 scrollTop: $(div).offset().top 5903 }, dur); 5904 } 5905 5906 function quantityCounter() { 5907 $(document).on("click", ".item-card.selected .q_up", function () { 5908 var C = $(this).attr("data-id"), 5909 S = 5910 parseInt( 5911 $(this) 5912 .siblings(".quantity-cart-" + C) 5913 .val() 5914 ) + 1; 5915 $(this).attr("data-quantity", S), 5916 $(this) 5917 .siblings(".quantity-cart-" + C) 5918 .val(S); 5919 }), 5920 $(document).on("click", ".item-card.selected .q_down", function () { 5921 var C = $(this).attr("data-id"), 5922 S = parseInt( 5923 $(this) 5924 .siblings(".quantity-cart-" + C) 5925 .val() 5926 ); 5927 0 < S && $(this).attr("data-quantity", S - 1), 5928 0 < S && 5929 $(this) 5930 .siblings(".quantity-cart-" + C) 5931 .val(S - 1); 5932 }); 5933 } 5934 5935 quantityCounter() 5936 5937 const itemAddon = $(".item-card").length 5938 const nofree = $(".nofree").length 5939 5940 const upsell = '' 5941 5942 if(nofree === itemAddon) { 5943 // $("#itemAddons").html("<p>No Items available</p>") 5944 } 5945 5946 $("#itemAddons .item-card").each(function(e){ 5947 $("#itemAddons").attr("data-length", e) 5948 }) 5949 5950 $("[data-addon]").click(function(){ 5951 5952 5953 5954 const t = $(this) 5955 5956 const data = t.data("addon") 5957 5958 $("[data-addon]").removeClass("selected") 5959 t.addClass("selected") 5960 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5961 const products = data.products 5962 const html = [] 5963 for(let i = 0; i < products.length; i++) { 5964 const id = products[i].id 5965 const variantId = products[i].variants[0].id 5966 const img = products[i].images[0].src 5967 let img2 = img.split('.jpg')[0] 5968 const title = products[i].title 5969 const price = products[i].variants[0].price 5970 const tags = products[i].tags 5971 const qty = products[i].variants[0].available 5972 let type_upsell = '' 5973 if(tags.includes('upsell-item-standing')) { 5974 type_upsell = 'standing' 5975 } 5976 console.log(type_upsell) 5977 if(type_upsell !== '') { 5978 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}"> 5979 5980 <div class="card-image"> 5981 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5982 </div> 5983 <div class="card-meta"> 5984 <h5>${title}</h5> 5985 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5986 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5987 </div> 5988 <div class="card-qty"> 5989 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5990 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity"> 5991 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5992 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5993 </svg></a> 5994 </div> 5995 </div>` 5996 html.push(body) 5997 } 5998 } 5999 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 6000 $("#itemAddons").attr("data-length", products.length)
6001 // $('#itemAddons')[0].swiper.update(); 6002 }); 6003 }) 6004 6005 async function isAddon(){ 6006 let ids = [] 6007 $("#itemAddons .item-card.selected").each(function(i, e){ 6008 const id = $(this).data("id") 6009 ids.push(id) 6010 }) 6011 console.log(ids) 6012 return ids 6013 } 6014 6015 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 6016 const t = $(this).parent() 6017 const id = t.data("id") 6018 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 6019 t.toggleClass("selected"); 6020 //$(this).next("input").toggleAttr('name', 'id[]'); 6021 if (t.hasClass('selected')) { 6022 t.find("input").val(1) 6023 t.find("input").attr('name', 'id[]'); 6024 } else { 6025 t.find("input").val(0) 6026 t.find("input").removeAttr('name'); 6027 } 6028 $("#properties-addons").val(addons) 6029 const is = await isAddon() 6030 if(is.length === 0) { 6031 btn.text("continue without add-ons") 6032 return 6033 } 6034 if(is.includes(8835692069079)) { 6035 btn.text("personalize acrylic frame") 6036 } else { 6037 btn.text("Continue") 6038 } 6039 6040 }) 6041 6042 async function myAddon(data) { 6043 const c = $(".addonsPurchase .addons") 6044 let items = [] 6045 6046 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 6047 // if(spotifyAddons.length > 0) { 6048 // $(spotifyAddons).each(function(i, e){ 6049 // const spotifyLink = $(this).find(".spotifyLink").val() 6050 // const spotifySong = $(this).find(".spotifySong").val() 6051 // const spotifyArtist = $(this).find(".spotifyArtist").val() 6052 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 6053 // if(spotifyLink !== '') { 6054 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 6055 // <div class="addon-itm-img"> 6056 // <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"/> 6057 // </div> 6058 // <div class="addon-itm-title"> 6059 // <span>[US] Outerbloom Acrylic Frame 4R</span> 6060 // </div> 6061 // <div class="addon-itm-line-total"> 6062 // <span>Rp 99.000</span> 6063 // </div> 6064 // </div> 6065 // <div class="propsAddonSpotify row m-0"> 6066 // <div class="col-12 col-lg-2"></div> 6067 // <div class="col-12 col-lg-10"> 6068 // <p> 6069 // <span>spotify link</span> 6070 // <span class="spotifyLinkAddon">${spotifyLink}</span> 6071 // </p> 6072 // <p> 6073 // <span>uploaded photo</span> 6074 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 6075 // </p> 6076 // <p> 6077 // <span>song / playlist name</span> 6078 // <span class="spotifySongAddon">${spotifySong}</span> 6079 // </p> 6080 // <p> 6081 // <span>artist name</span> 6082 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 6083 // </p> 6084 // </div> 6085 // </div>` 6086 // items.push(spotifyAddon) 6087 // } 6088 // }) 6089 // }
6090 for(let i = 0; i < data.length; i++) { 6091 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 6092 const img = data[i].image 6093 const title = data[i].title 6094 const qty = data[i].qty 6095 const price = data[i].price 6096 const total = Number(qty) * Number(price) 6097 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 6098 <div class="addon-itm-img"> 6099 <img src="${img}" alt="" width="70"/> 6100 </div> 6101 <div class="addon-itm-title"> 6102 <span>${title}</span> 6103 </div> 6104 <div class="addon-itm-line-price"> 6105 <span>${rupiah.format(price)}</span> 6106 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 6107 </div> 6108 <div class="addon-itm-line-total"> 6109 <span>${rupiah.format(total)}</span> 6110 </div> 6111 </div>` 6112 items.push(addons) 6113 } 6114 } 6115 c.html(items) 6116 const parent = $(".purchaseAddon") 6117 const next = parent.next(".sectionPurchase") 6118 parent.addClass("hide") 6119 next.removeClass("hide") 6120 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 6121 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 6122 } 6123 6124 async function listAddon() { 6125 const data = $("#itemAddons").find(".selected") 6126 let ids = [] 6127 $(data).each(function(){ 6128 const id = $(this).data("variant") 6129 const image = $(this).find(".card-image img").attr("src") 6130 const title = $(this).find(".card-meta h5").text() 6131 const qty = $(this).find(".card-qty input").val() 6132 const price = $(this).find(".card-qty input").data("price") 6133 ids.push({ 6134 id: Number(id), 6135 image, 6136 title, 6137 qty, 6138 price 6139 }) 6140 }) 6141 myAddon(ids) 6142 } 6143 6144 async function customSpotify(idx, length, type){ 6145 let isCard = false 6146 6147 let p = $(".purchasePopupSpotify") 6148 const preLink = $(".spotifyLinkFirst").val() 6149 $("[data-index]").hide() 6150 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 6151 p.find(".regulerAddons, .purchase-button").hide() 6152 p.find(".spotifyAddons").show() 6153 6154 const data = await trackUrl(preLink) 6155 6156 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="13" height="11" viewB
6156ox="0 0 13 11" fill="none"> 6157 <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"/> 6158 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="13" height="11" viewB
6158ox="0 0 13 11" fill="none"> 6159 <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"/> 6160 </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>` 6161 // console.log(html) 6162 6163 $(".spotifyAddons").append(html) 6164 6165 $(`[data-index=${idx}]`).show() 6166 6167 if (preLink !== '') { 6168 $(".btn-action .btn").attr("disabled", false) 6169 } else { 6170 $(".btn-action .btn").attr("disabled", true) 6171 } 6172 6173 return html 6174 6175 } 6176 6177 $(".spotifyLinkFirst").keyup(async function(){ 6178 const v = $(this).val() 6179 if(v.includes('spotify:user:spotify')) { 6180 const correct = v.split('user:spotify:')[1] 6181 console.log(correct, 'BNER') 6182 $(this).val(correct) 6183 return 6184 } 6185 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 6186 const data = await trackUrl(v) 6187 if(!data || !data.status) { 6188 $(this).parent().addClass("error") 6189 // $(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>`) 6190 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6191 return 6192 } 6193 $(this).parent().removeClass("error") 6194 // $(this).parent().remove("txt-error") 6195 $("#personalizeBtnSpotify .btn").attr("disabled", false) 6196 } else { 6197 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6198 } 6199 }) 6200 6201 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 6202 const parent = $(this).parents(".purchaseAddon") 6203 const next = parent.next(".sectionPurchase") 6204 if(next.hasClass("purchaseAddress")) { 6205 if(productType !== '') { 6206 console.log("clarity event " + productType + ' purchaseDelivery') 6207 window.clarity("event", `${productType} purchaseDelivery`) 6208 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6209 } 6210 } 6211 const data = $("#itemAddons").find(".selected") 6212 const length = $(".quantity-cart-46067682607319").val() 6213 const checked = data.length; 6214 if(checked > 0) { 6215 if(length > 0) { 6216 $(".purchaseAddon").addClass("purchaseAddonSpotify") 6217 customSpotify(1, length, 'addon') 6218 } else { 6219 listAddon() 6220 } 6221 } else { 6222 parent.addClass("hide") 6223 next.removeClass("hide") 6224 } 6225 }) 6226 6227 $("#personalizeBtnSpotify .btn").click(async function(){ 6228 const isCity = $("#cities[required]") 6229 const isDate = $("#propDeliveryDate[required]") 6230 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 6231 alert('Please choose Delivery City & Delivery Date') 6232 return 6233 } 6234 const data = await customSpotify(1, 1, 'product') 6235 if(data) { 6236 $("#backgroundPopup").fadeIn("slow"); 6237 $(".purchasePopupSpotify").fadeIn("slow"); 6238 6239 if(productType !== '') { 6240 console.log("clarity event " + productType + ' spotify') 6241 window.clarity("event", `${productType} spotify`) 6242 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6243 } 6244 } 6245 }) 6246 6247 function formatBytes(bytes, decimals = 2) { 6248 if (!+bytes) return '0 Bytes' 6249
6250 const k = 1024 6251 const dm = decimals < 0 ? 0 : decimals 6252 const sizes = ['B', 'KB', 'MB'] 6253 6254 const i = Math.floor(Math.log(bytes) / Math.log(k)) 6255 6256 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 6257 } 6258 6259 async function trackUrl(link){ 6260 try { 6261 let trackId = link.split('/').pop().split('?')[0]; 6262 let type = '' 6263 if(link.includes("spotify:")) { 6264 const uri = link.split('spotify:')[1] 6265 trackId = uri.split(':')[1] 6266 type = uri.split(':')[0] + 's' 6267 } else { 6268 if(link.match('track')){ 6269 type = 'tracks' 6270 } else if(link.match('playlist')) { 6271 type = 'playlists' 6272 } else if(link.match('artist')) { 6273 type = 'artists' 6274 } else if(link.match('album')) { 6275 type = 'albums' 6276 } 6277 } 6278 console.log(`${host}/api/spotify/${type}/${trackId}`) 6279 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 6280 console.log(data, 'DATA') 6281 const song = data?.data?.name 6282 const artist = data?.data?.artist 6283 return { 6284 song, artist, type, trackId, status: data.status 6285 } 6286 } catch(err) { 6287 console.log(err) 6288 } 6289 } 6290 6291 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 6292 const parent = $(this).parents("[data-index]") 6293 const preview = parent.find(".previewImage") 6294 const file = $(this)[0].files[0]; 6295 if (file) { 6296 const reader = new FileReader(); 6297 reader.onload = async function(e) { 6298 parent.find(".uploadResult label").hide() 6299 parent.find(".uploadedResult").remove() 6300 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 6301 <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> 6302 <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;">
6302<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 6303 <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 /> 6304 </svg> 6305 </span></div></div>`) 6306 parent.find(".frameImageUploaded svg").hide() 6307 parent.find(".frameImage").addClass("uploaded") 6308 preview.attr("src", e.target.result); 6309 preview.show(); 6310 let formData = new FormData(); 6311 formData.append("file", file); 6312 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 6313 method: "POST", 6314 body: formData 6315 }) 6316 const result = await response.json(); 6317 if(result){ 6318 parent.find(".resultPhotoSpotify").val(result.url) 6319 } 6320 } 6321 6322 reader.readAsDataURL(file); 6323 } else { 6324 preview.hide(); 6325 } 6326 }); 6327 6328 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 6329 $(this).next("input[type=file]").trigger("click") 6330 }) 6331 6332 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 6333 $(this).parents("input[type=file]").trigger("click") 6334 }) 6335 6336 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 6337 const parent = $(this).parents("[data-index]") 6338 parent.find(".uploadPhotoSpotify").val("") 6339 parent.find(".uploadResult label").show() 6340 parent.find(".uploadedResult").remove() 6341 parent.find(".frameImageUploaded svg").show() 6342 parent.find(".previewImage").hide() 6343 parent.find(".frameImage").removeClass("uploaded") 6344 }) 6345 6346 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 6347 const parent = $(this).parents("[data-index]") 6348 parent.toggleClass("checked") 6349 }) 6350 6351 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 6352 const parent = $(this).parents("[data-index]") 6353 const link = $(this).val() 6354 const data = await trackUrl(link) 6355 6356 console.log(data) 6357 6358 if(data.song) { 6359 parent.find(".spotifySong").val(data.song) 6360 parent.find(".spotifyData").find("h3").text(data.song) 6361 } 6362 if(data.artist) { 6363 parent.find(".spotifyArtist").val(data.artist) 6364 parent.find(".spotifyData").find("p").text(data.artist) 6365 } 6366 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 6367 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 6368 if (data.status === true) { 6369 parent.find(".btn-action .btn").attr("disabled", false) 6370 } else { 6371 parent.find(".btn-action .btn").attr("disabled", true) 6372 } 6373 }) 6374
6375 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 6376 const parent = $(this).parents("[data-index]") 6377 const v = $(this).val() 6378 parent.find(".spotifyData h3").text(v) 6379 }) 6380 6381 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 6382 const parent = $(this).parents("[data-index]") 6383 const v = $(this).val() 6384 parent.find(".spotifyData p").text(v) 6385 }) 6386 6387 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 6388 const parent = $(this).parents("[data-index]") 6389 const length = parent.data("length") 6390 const index = parent.data("index") 6391 const indexNext = Number(index) + 1 6392 customSpotify(indexNext, length, 'addon') 6393 }) 6394 6395 6396 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 6397 const parent = $(this).parents(".purchaseAddon") 6398 const next = parent.next(".sectionPurchase") 6399 parent.addClass("hide") 6400 next.removeClass("hide") 6401 next.find(".purchase-button").show() 6402 listAddon() 6403 }) 6404 6405 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 6406 const t = $(this).parents("[data-index]") 6407 const parent = $(this).parents(".sectionPurchase") 6408 const current = t.data("index") 6409 const prevCurrent = Number(current) - 1 6410 if(current == 1) { 6411 parent.removeClass("purchaseAddonSpotify") 6412 parent.find(".purchase-button").show() 6413 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 6414 $(".spotifyAddons").empty() 6415 $(".regulerAddons").show() 6416 return 6417 } 6418 t.hide() 6419 t.prev("[data-index]").show() 6420 t.remove() 6421 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 6422 }) 6423 6424 $("#personalizeBtn .btn").click(async function() { 6425 loadPopupPersonalize() 6426 }); 6427 6428 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 6429 $(".sectionPurchaseSpotify").hide() 6430 loadPopupPersonalize() 6431 }) 6432 6433 $(".close-purchase-popup").click(function() { 6434 disablePopup(); 6435 }); 6436 $("#backgroundPopup").click(function() { 6437 // disablePopup(); 6438 }); 6439 6440 $("#popupCart .close-purchase-popup").click(function() { 6441 location.reload() 6442 }); 6443 6444 $('#popupCart').on('hide.bs.modal', function (e) { 6445 location.reload() 6446 }) 6447 6448 $(".next-card").click(function(){ 6449 const parent = $(this).parents(".sectionPurchase") 6450 const next = parent.next(".sectionPurchase") 6451 parent.addClass("hide") 6452 next.removeClass("hide") 6453 }) 6454 6455 $(".back-purchase-button").click(function(){ 6456 const parent = $(this).parents(".sectionPurchase") 6457 const prev = parent.prev(".sectionPurchase") 6458 parent.addClass("hide") 6459 prev.removeClass("hide") 6460 }) 6461 6462 $(document).keypress(function(e) { 6463 if (e.keyCode == 27 && popupStatus == 1) { 6464 disablePopup(); 6465 } 6466 }); 6467 6468 const parentImg = $(".case-img-preview") 6469 const parentVid = $(".case-video-preview") 6470 6471 function readURL(input) { 6472 if (input.files && input.files[0]) { 6473 let reader = new FileReader(); 6474 6475 let type = 'image/jpeg' 6476 const size = input.files[0].size 6477 if(input.files[0].type.match('video/')){ 6478 type = 'video/mp4' 6479 if(size > 15728640) { 6480 alert('File size exceeds maximum limit 15 MB') 6481 return 6482 } 6483 } else { 6484 if(size > 5242880) { 6485 alert('File size exceeds maximum limit 5 MB') 6486 return 6487 } 6488 } 6489 6490 reader.onload = function (e) { 6491 $(".nextBtn").attr("disabled", true) 6492 if(type === 'image/jpeg') { 6493 6494 $('.placeholder-image').hide(); 6495 $('.preview-image').show() 6496 $('.preview-image').attr('src', e.target.result); 6497 6498 } else { 6499 // parentVid.find(".ajax-loader").show(); 6500 $(".steps-card-preview").addClass("loading") 6501 } 6502 } 6503 6504 6505
6506 reader.readAsDataURL(input.files[0]); 6507 } 6508 } 6509 6510 async function readURLPapan(input) { 6511 if (input.files && input.files[0]) { 6512 let reader = new FileReader(); 6513 6514 reader.onload = function (e) { 6515 $('.btn-upload-papan').siblings('label').hide(); 6516 $('.btn-upload-papan img').attr('src', e.target.result); 6517 $('.btn-upload-papan img').show(); 6518 $('.svgLogoPapan').hide(); 6519 } 6520 6521 const type = 'image/jpeg' 6522 const name = `logo-8359546319899-${Date.parse(new Date())}` 6523 6524 let formData = new FormData(); 6525 formData.append("file", input.files[0]); 6526 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6527 method: "POST", 6528 body: formData 6529 }) 6530 const result = await response.json(); 6531 if(result) { 6532 const url = result.url 6533 $("[data-properties=papan-logo]").val(url) 6534 } 6535 6536 reader.readAsDataURL(input.files[0]); 6537 } 6538 } 6539 6540 async function readURLAddress(input) { 6541 console.log(input, 'readURLAddress') 6542 if (input.files && input.files[0]) { 6543 let reader = new FileReader(); 6544 6545 reader.onload = function (e) { 6546 $('.photo-address').attr('src', e.target.result); 6547 $('.photo-address').show(); 6548 } 6549 6550 const type = 'image/jpeg' 6551 const name = input.files[0].name?.split('.')[0] 6552 6553 let formData = new FormData(); 6554 formData.append("file", input.files[0]); 6555 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6556 method: "POST", 6557 body: formData 6558 }) 6559 const result = await response.json(); 6560 6561 reader.readAsDataURL(input.files[0]); 6562 6563 return result 6564 } 6565 } 6566 6567 6568 6569 6570 async function addToCartUang() { 6571 var productAddOnId1 = 42122101162199; 6572 var productAddOnId2 = 42122101194967; 6573 var product_id = 8359546319899 6574 const data = { 6575 items: [ 6576 { 6577 quantity: $("#Quantity-" + productAddOnId1).val(), 6578 id: productAddOnId1, 6579 "properties": { "Time": $("#properties-time").val() } 6580 }, 6581 { 6582 quantity: $("#Quantity-" + productAddOnId2).val(), 6583 id: productAddOnId2, 6584 "properties": { "Time": $("#properties-time").val() } 6585 } 6586 ] 6587 } 6588 await fetch(window.Shopify.routes.root + 'cart/add.js', { 6589 method: 'POST', 6590 headers: { 6591 'Content-Type': 'application/json' 6592 }, 6593 body: JSON.stringify(data) 6594 }) 6595 .then(response => { 6596 console.error('Sukses Buket Uang:', response); 6597 $(".form-flower").submit() 6598 }) 6599 .catch((error) => { 6600 console.error('Error Buket Uang:', error); 6601 $(".form-flower").submit() 6602 }); 6603 } 6604 6605 async function saveCard(){ 6606 let isCard = true 6607 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 6608 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 6609 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 6610 const foto = $("#properties-photo").val() 6611 const video = $("#properties-video").val() 6612 const data = JSON.stringify({ 6613 "id": qrID, 6614 "penerima": $("#properties-nama-penerima").val(), 6615 "kartu_penerima": kartu_penerima, 6616 "kartu_ucapan": kartu_ucapan, 6617 "kartu_pengirim": kartu_pengirim, 6618 "foto": foto, 6619 "video": video, 6620 "productId": "8359546319899", 6621 "order_name": "", 6622 "status": "Cart" 6623 }) 6624 6625 6626 } 6627 6628 async function additem(items){ 6629 try { 6630 let formData = items 6631 if(items?.length) { 6632 formData = { 6633 'items': items 6634 }; 6635 } 6636 6637 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6638 method: 'POST', 6639 headers: { 6640 'Content-Type': 'application/json', 6641 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6642 }, 6643 body: JSON.stringify(formData) 6644 }) 6645 6646 const data = await add.json(); 6647 return data 6648 } catch(err){ 6649 console.log('Error additem', err) 6650 } 6651 } 6652 6653 async function addons(){ 6654 let items = [] 6655 $(".addon-item").each(function(){ 6656 const p = $(this) 6657 const props = p.next(".propsAddonSpotify") 6658 const id = $(this).data("id") 6659 const quantity = $(this).data("qty") 6660 const propId = $("#properties-time").val() 6661 let properties = {} 6662 if(id === 46067682607319) { 6663 const link = props.find(".spotifyLinkAddon").text() 6664 const photo = props.find(".spotifyFotoAddon").text() 6665 const song = props.find(".spotifySongAddon").text() 6666 const artist = props.find(".spotifyArtistAddon").text() 6667 properties = { 6668 id: propId, 6669 "Spotify Link": link !== '' ? link : '-', 6670 "Spotify Photo": photo !== '' ? photo : '-', 6671 "Spotify Song": song !== '' ? song : '-', 6672 "Spotify Artist": artist !== '' ? artist : '-', 6673 type: 'addon' 6674 } 6675 } else { 6676 properties = { 6677 "id": propId, 6678 "type": "addon" 6679 } 6680 } 6681 items.push({ 6682 id, 6683 quantity, 6684 properties 6685 }) 6686 }) 6687 return items 6688 } 6689 6690 async function propItems() { 6691 let props = {} 6692 $("[data-properties]").each(function(e){
6693 let elementType = this.tagName; 6694 const k = $(this).data("properties") 6695 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') { 6696 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6697 if(v !== '') { 6698 props[k] = v?.replace(/[\s\n]/g, ''); 6699 } 6700 } 6701 }) 6702 return props 6703 } 6704 6705 async function showPopupCart(items){ 6706 if(productType !== '') { 6707 console.log("clarity event " + productType + ' completeOrder') 6708 window.clarity("event", `${productType} completeOrder`) 6709 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6710 } 6711 $("#popupCart").show() 6712 6713 $(".propDeliveryCity").text($("#cities").val()) 6714 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6715 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6716 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6717 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6718 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6719 $(".propDeliveryProv").text($("#province").val()) 6720 $(".propDeliveryZip").text($("#zip").val()) 6721 6722 6723 6724 const addons = [] 6725 if(items && items.length > 0) { 6726 for(let i = 1; i < items.length; i++) { 6727 const spotifyLink = items[i].properties['Spotify Link'] 6728 const spotifyPhoto = items[i].properties['Spotify Photo'] 6729 const spotifySong = items[i].properties['Spotify Song'] 6730 const spotifyArtist = items[i].properties['Spotify Artist'] 6731 const price = items[i].price / 100 6732 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6733 <div class="col-12 col-lg-2"></div> 6734 <div class="col-12 col-lg-10"> 6735 <p> 6736 <span>spotify link</span> 6737 <span>${spotifyLink}</span> 6738 </p> 6739 <p> 6740 <span>Upload Photo</span> 6741 <span>${spotifyPhoto}</span> 6742 </p> 6743 <p> 6744 <span>song / playlist name</span> 6745 <span>${spotifySong}</span> 6746 </p> 6747 <p> 6748 <span>artist name</span> 6749 <span>${spotifyArtist}</span> 6750 </p> 6751 </div> 6752 </div>` : ''; 6753 addons.push(`<div class="row m-0"> 6754 <div class="imgAddonCart col-2"> 6755 <img 6756 width="43" 6757 src="${items[i].image}" 6758 alt="" 6759 > 6760 </div> 6761 <div class="imgAddonTitlePrice col-10 align-self-center"> 6762 <div class="row justify-content-between m-0"> 6763 <div class="col-12 col-lg-8"> 6764 <h5>${items[i].title}</h5> 6765 </div> 6766 <div class="col-12 col-lg-4 text-lg-right"> 6767 <span>${rupiah.format(price)}</span> 6768 </div> 6769 </div> 6770 </div> 6771 </div>${props}`) 6772 } 6773 } 6774 // console.log(addons) 6775 if(addons.length === 0) { 6776 $(".itemAddonCart").hide() 6777 return 6778 } 6779 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6780 $(".wrapperItemAddonCart").html(addons) 6781 } 6782 6783 const money = (money) => { 6784 return new Intl.NumberFormat('id-ID', 6785 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6786 ).format(money); 6787 } 6788 6789 async function showNoteMoney() { 6790 let qty50k = $("[data-properties='Uang 50k']").val() 6791 let qty100k = $("[data-properties='Uang 100k']").val() 6792 const total50k = Number(qty50k) * 50000 6793 const total100k = Number(qty100k) * 100000 6794 const total_all = total50k + total100k 6795 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6796 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6797 $(".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://media-hfmagazineonline.seo123788.workers.dev/" target="_blank" style="text-decoration: underline;
6797 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6798 } 6799 6800 async function removeImage() { 6801 const data = JSON.stringify({ 6802 "ID": $("#properties-properties-qrId").val(), 6803 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6804 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6805 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6806 "Nama Penerima": $("#properties-nama-penerima").val(), 6807 "Order Number":"", 6808 "Status":"Product", 6809 "Foto": "", 6810 "Media": $("#properties-video").val(), 6811 "Image": "8359546319899" 6812 }) 6813 const remove = updateCard(data) 6814 if(remove) { 6815 $(this).hide() 6816 $("#properties-photo").val("-") 6817 $(".placeholder-image").show() 6818 $(".preview-image").attr("src", "") 6819 } 6820 } 6821 6822 async function removeVideo() { 6823 const data = JSON.stringify({ 6824 "ID": $("#properties-properties-qrId").val(), 6825 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6826 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6827 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6828 "Nama Penerima": $("#properties-nama-penerima").val(), 6829 "Order Number":"", 6830 "Status":"Product", 6831 "Foto": $("#properties-photo").val(), 6832 "Media": "", 6833 "Image": "8359546319899" 6834 }) 6835 const remove = updateCard(data) 6836 if(remove) { 6837 $("#properties-video").val("-") 6838 $(this).find("img").hide() 6839 $(this).hide() 6840 $(this).prev("p").text("Add video to make it more special (optional)") 6841 $("#label-input-video").show() 6842 $("#label-input-video span").text("Upload Video") 6843 $(".case-video-preview p span").remove() 6844 } 6845 } 6846 6847 async function loadItemOccasion(t, occasion) { 6848 const name = occasion?.replace('greeting-card-', '') 6849 $("#kartu-ucapan").val("") 6850 $("[data-occassion]").removeClass("selected") 6851 $("[data-properties=ucapan]").val("") 6852 $("#save-card").attr("disabled", true) 6853 t.addClass("selected") 6854 $("#show_note").attr("data-card-occassion", name) 6855 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6856 const products = data.products 6857 const html = [] 6858 for(let i = 0; i < products.length; i++) { 6859 const id = products[i].id 6860 const variantId = products[i].variants[0].id 6861 const img = products[i].images[0].src 6862 const title = products[i].title 6863 const price = products[i].variants[0].price 6864 const qty = products[i].variants[0].inventory_quantity 6865 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6866 <label for="card-${variantId}"></label> 6867 <div class="card-image"> 6868 <img src="${img}" alt="${title}" width="" height="" /> 6869 </div> 6870 <div class="card-meta text-center"> 6871 <h5>${title}</h5> 6872 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6873 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6874 </div> 6875 </div>` 6876 html.push(body) 6877 } 6878 const withoutCard = `<div class="item-card item-without-card"> 6879 <label for="card-0"></label> 6880 <div class="card-image"> 6881 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6882 </div> 6883 <div class="card-meta text-center"> 6884 <h5>
6884Send without a greeting card</h5> 6885 <input id="card-0" type="radio" name="id" value="" data-price=""> 6886 </div> 6887 </div>` 6888 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6889 }); 6890 } 6891 6892 $(document).ready(function(){ 6893 6894 // Observer to auto-trigger addon loading when addon section becomes visible 6895 const addonObserver = new MutationObserver(function(mutations) { 6896 mutations.forEach(function(mutation) { 6897 const target = $(mutation.target) 6898 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6899 if(!target.hasClass('hide')) { 6900 // Addon section just became visible, ensure items are loaded 6901 setTimeout(function() { 6902 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6903 console.log("Auto-triggering addon load...") 6904 $("[data-addon=upsell-all]").trigger("click") 6905 } 6906 }, 150) 6907 } 6908 } 6909 }) 6910 }) 6911 6912 // Start observing addon section 6913 const addonSection = document.querySelector('.purchaseAddon') 6914 if(addonSection) { 6915 addonObserver.observe(addonSection, { 6916 attributes: true, 6917 attributeFilter: ['class'] 6918 }) 6919 } 6920 6921 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6922 6923 $(this).find("span").addClass("loading") 6924 let isValid = true 6925 $(".formAddressPurchase [required]").each(function(){ 6926 const t = $(this) 6927 const input = t.val() 6928 const p = t.parent() 6929 if(input === '') { 6930 p.addClass("error") 6931 isValid = false 6932 } 6933 }) 6934 6935 if(!isValid) { 6936 $(this).find("span").removeClass("loading") 6937 return 6938 } 6939 6940 let items = [] 6941 const mainProps = { 6942 6943 "Delivery Date": $("#propDeliveryDate").val(), 6944 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6945 "Kota Pengiriman": $("#cities").val(), 6946 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6947 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6948 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6949 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6950 6951 6952 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6953 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6954 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6955 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6956 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6957 6958 6959 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6960 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6961 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6962 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6963 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6964 "type": 'product' 6965 } 6966 const props = await propItems() 6967 properties = {...mainProps, ...props }; 6968 const id = $("#productSelect").find('option:selected').val() 6969 console.log(id, 'main ID') 6970 const mainItem = { 6971 id: Number(id), 6972 quantity: 1, 6973 properties 6974 } 6975 items.push(mainItem) 6976 const cardId = $("#itemCards").find(".selected input").val() 6977 const cardItem = { 6978 id: Number(cardId), 6979 quantity: 1, 6980 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6981 } 6982 console.log(cardId, 'cardId') 6983 if(cardId) { 6984 items.push(cardItem) 6985 } 6986 const addon = await addons() 6987 if(addon) { 6988 for(let i = 0;
6988 i < addon.length; i++){ 6989 items.push({ 6990 id: addon[i].id, 6991 quantity: addon[i].quantity, 6992 properties: addon[i].properties 6993 }) 6994 } 6995 } 6996 const addItems = await additem(items) 6997 console.log(addItems.items, 'add items') 6998 if(addItems) { 6999 $(this).find("span").removeClass("loading") 7000 disablePopup() 7001 showPopupCart(addItems.items) 7002 7003 localStorage.setItem("items", JSON.stringify(addItems.items)) 7004 } 7005 }) 7006 7007 $("#addtocart-cart .btn").click(async function(){ 7008 const id = $("#productSelect").find('option:selected').val() 7009 const mainProps = { 7010 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7011 type: 'product' 7012 } 7013 const props = await propItems() 7014 const properties = { ...mainProps, ...props }; 7015 const items = { 7016 id: Number(id), 7017 quantity: 1, 7018 properties 7019 } 7020 const addItems = await additem(items) 7021 if(addItems) { 7022 showPopupCart(addItems.items) 7023 localStorage.setItem("items", JSON.stringify(addItems)) 7024 } 7025 }) 7026 7027 $(".formAddressPurchase [required]").change(function(){ 7028 const t = $(this) 7029 const p = t.parent() 7030 const v = t.val() 7031 if(v !== '') { 7032 p.removeClass("error") 7033 } 7034 }) 7035 7036 $("#save-card").click(async function(){ 7037 const parent = $(this).parents(".sectionPurchase") 7038 const next = parent.next(".sectionPurchase") 7039 $(this).find("span").addClass("loading") 7040 const card = await saveCard() 7041 console.log(card, 'ssaveCCC') 7042 if(card?.status === 200 || card?.status === 201) { 7043 $(".scanCard").removeClass("hide") 7044 $(this).find("span").removeClass("loading") 7045 parent.addClass("hide") 7046 next.removeClass("hide") 7047 if(next.hasClass("purchaseAddon")) { 7048 $("[data-addon=upsell-all]").click() 7049 console.log("clarity event addons") 7050 window.clarity("event", `${productType} add-ons`) 7051 // Ensure addon items are loaded when entering addon popup 7052 setTimeout(function() { 7053 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7054 $("[data-addon=upsell-all]").trigger("click") 7055 } 7056 }, 100) 7057 } 7058 if(next.hasClass("purchaseAddress")) { 7059 $("#zip").select2() 7060 } 7061 } 7062 }) 7063 7064 $("#skip-card").click(async function(){ 7065 $("#greetingCard [data-properties]").val("") 7066 $("#properties-photo").val("") 7067 $("#properties-video").val("") 7068 const parent = $(this).parents(".sectionPurchase") 7069 const next = parent.next(".sectionPurchase") 7070 parent.addClass("hide") 7071 next.removeClass("hide") 7072 // $("#itemCards").html("") 7073 removeImage() 7074 removeVideo() 7075 if(next.hasClass("purchaseAddon")) { 7076 $("[data-addon='upsell-all']").click() 7077 console.log("clarity event addons") 7078 window.clarity("event", `${productType} add-ons`) 7079 // Ensure addon items are loaded when entering addon popup 7080 setTimeout(function() { 7081 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7082 $("[data-addon='upsell-all']").trigger("click") 7083 } 7084 }, 100) 7085 } 7086 if(next.hasClass("purchaseAddress")) { 7087 $("#zip").select2() 7088 } 7089 }) 7090 7091 $("#msgCard").click(async function(){ 7092 $(this).parent().addClass("loading") 7093 let occasion = $(".selected[data-occassion]").data("occassion") 7094 occasion = occasion?.replace("greeting-card-", "") 7095 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 7096 const d = data?.data 7097 for(let i = 0; i < d.length; i++) { 7098 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 7099 const greeting = d[num]?.Greeting 7100 $(".greetingCard textarea").val(greeting) 7101 $(this).parent().removeClass("loading") 7102 } 7103 $("#save-card").attr("disabled", false) 7104 }) 7105 7106 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 7107 const parent = $(this).parents(".sectionPurchase") 7108 const next = parent.next(".sectionPurchase") 7109 parent.addClass("hide") 7110 next.removeClass("hide") 7111 }) 7112 7113 $("#editCard").click(function(){ 7114 $(".custom-card").show() 7115 $(".preview-card").hide() 7116 }) 7117 7118 $("#first_name, #last_name").change(function(){ 7119 const v = $(this).val() 7120 const first_name = $("#first_name").val() 7121 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 7122 $("[data-properties=nama-penerima]").val(first_name+last_name) 7123 }) 7124 7125 $("[data-occassion]").click(function(){ 7126 const t = $(this) 7127 const p = t.parents(".sectionPurchase") 7128 // $(".greetingCard").addClass("disabled") 7129 const occasion = t.data("occassion") 7130 loadItemOccasion(t, occasion) 7131 }) 7132 7133 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 7134 const id = $(this).parent(".item-card").data("id") 7135 const t = $(this).parent(".item-card") 7136 const target = t.find("input") 7137 const v = $('.item-card input[type="radio"]:checked').val(); 7138 $("#itemCards .item-card").removeClass("selected") 7139 t.addClass("selected") 7140 $("#itemCards .item-card").find("input").attr("name", "") 7141 if(target.length > 0) { 7142 target.attr("name", "id[]") 7143 $("#properties-card").val(id) 7144 $(".greetingCard").removeClass("disabled") 7145 $("#skip-card").attr("disabled", false) 7146 } else { 7147 $("#properties-card").val("") 7148 } 7149 }) 7150 7151 $("#itemCards").delegate(".item-without-card label", "click", function(){ 7152 const parent = $(this).parents(".sectionPurchase") 7153 const next = parent.next(".sectionPurchase") 7154 $(".greetingCard").addClass("disabled") 7155 parent.addClass("hide") 7156 next.removeClass("hide") 7157 $("[data-addon=upsell-all]").click() 7158 $("#zip").select2() 7159 }) 7160 7161 $("[data-properties=ucapan]").keyup(function(){ 7162 const v = $(this).val() 7163 const p = $(this).parents(".sectionPurchase") 7164 $(".purchaseAddress").find(".greetingCard textarea").val(v) 7165 if(v.length > 3) { 7166 p.find(".next-purchase-button").attr("disabled", false) 7167 } else { 7168 p.find(".next-purchase-button").attr("disabled", true) 7169 } 7170 }) 7171 7172 $("[data-properties=penerima]").keyup(function(){ 7173 const v = $(this).val() 7174 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 7175 }) 7176 7177 $("[data-properties=pengirim]").keyup(function(){ 7178 const v = $(this).val() 7179 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 7180 }) 7181 7182 $(document).click(function(e){
7183 7184 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 7185 // $('#popupCart').fadeOut('slow'); 7186 // location.reload() 7187 }); 7188 7189 $(".toggleAddonCart").click(function(){ 7190 const p = $(this).parent(".itemAddonCart") 7191 p.toggleClass("open") 7192 }) 7193 7194 $(".btnViewCart").click(function(){ 7195 window.location.href = "https://outerbloom.com/cart"; 7196 }) 7197 7198 $(".btnViewCheckout").click(async function(){ 7199 $(this).find("span").addClass("loading") 7200 let zip = $("#zip").val() 7201 const first_name = $("#first_name").val() 7202 const last_name = $("#last_name").val() 7203 const company = $("#company").val() !== '' ? $("#company").val() : '' 7204 const address1 = $("#delivery_address").val() 7205 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 7206 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 7207 const phone = $("#recipient_number").val() 7208 const city = $("#cities").val() 7209 const province = $("#province").val() 7210 const country = 'Indonesia' 7211 const ver = Date.parse(new Date()) 7212 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}` 7213 7214 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 7215 if(clear.status === 200) { 7216 const savedItem = window.localStorage.getItem("items"); 7217 const items = JSON.parse(savedItem) 7218 const addItems = await additem(items) 7219 console.log(addItems, 'new addItems') 7220 if(addItems) { 7221 window.location.href = `https://outerbloom.com/checkout?${params}`; 7222 } 7223 } 7224 }) 7225 7226 $(".btnContinueShopping").click(function(){ 7227 window.location.href = "https://outerbloom.com/"; 7228 }) 7229 7230 if (isIOS) { 7231 $(".empty-state-card").click(function(){ 7232 $("#input-foto").trigger("click") 7233 }) 7234 $(".btn-upload-image").click(function(){ 7235 $("#input-foto").trigger("click") 7236 }) 7237 $("[for=input-video]").click(function(){ 7238 $("#input-video").trigger("click") 7239 }) 7240 $(".btn-upload-papan").click(function(){ 7241 $("#logoPapan").trigger("click") 7242 }) 7243 } 7244 7245 $("[data-properties]").each(function(){ 7246 const select = $(this).parents(".form-group").find("select") 7247 $(this).change(function(){ 7248 const name = $(this).data("properties") 7249 const v = $(this).val() 7250 if (name == 'telepon-penerima') { 7251 let phone = v.replace(/[^0-9]/g, '') 7252 $(this).val(phone); 7253 $("#properties-telepon-penerima").val(phone) 7254 $('.iti__search-input').val('-') 7255 } else { 7256 $("#properties-" + name).val(v) 7257 } 7258 }) 7259 select.on("change", function(){ 7260 const name = $(this).data("properties") 7261 const v = $(this).val() 7262 $("#properties-" + name).val(v) 7263 }) 7264 }) 7265 7266 $("#show_note").click(function(){ 7267 nameq = $("#properties-nama-penerima").val() 7268 dear = $("#properties-kartu-nama-penerima").val() 7269 card = $("[data-properties=ucapan]").val() 7270 sender = $("#properties-kartu-nama-pengirim").val() 7271 photo = $("#properties-photo").val() 7272 video = $("#properties-video").val() 7273 updateCard(nameq, dear, card, sender, photo, video, status) 7274 }) 7275 7276 $(".remove-image").click(function(e){ 7277 e.preventDefault() 7278 $(this).find("img").show() 7279 removeImage() 7280 }) 7281 7282 $(".remove-media").click(function(e){ 7283 e.preventDefault() 7284 $(this).find("img").show() 7285 removeVideo() 7286 }) 7287 7288 7289 7290 $("[data-delivery_method]").click(function(e){
7291 e.preventDefault() 7292 const t = $(this) 7293 const data = t.data("delivery_method") 7294 $("[data-delivery_method]").removeClass("selected") 7295 t.addClass("selected") 7296 $("#cities").val("") 7297 $("#properties-delivery-date").val("-") 7298 $("#deliveryDate button").removeClass("selected") 7299 $("#full-date").val("Full Calendar â") 7300 $("#propDeliveryDate").val("") 7301 const step3 = $("#step-3") 7302 if(data.match('PickUp')) { 7303 $(".selfpickup-point").show() 7304 step3.find("[data-finished=false]").hide() 7305 $("#panel-4").hide() 7306 step3.find("[data-finished=true]").show() 7307 $("#cities").attr("required", false) 7308 $("#form-group-city").hide() 7309 $("#row-delivery-time").hide() 7310 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 7311 $("#propDeliveryTime").attr("required", false) 7312 // $("#deliveryDate").find("button:first-child").addClass("stop") 7313 $(".form-selfpickup").show() 7314 $(".form-delivery").hide() 7315 $(".form-delivery").find("input, textarea, select").val("") 7316 $(".form-delivery").find("input, textarea, select").attr("required", false) 7317 $("#properties-shipping").val("0") 7318 $("#noteDeliveryDate").hide() 7319 $(".form-delivery .form-control").attr("required", false) 7320 $("#stepNav4").hide() 7321 7322 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 7323 7324 7325 7326 if(timeOfDay >= 16.01){ 7327 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 7328 } 7329 } else { 7330 7331 7332 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 7333 step3.find("[data-finished=false]").show() 7334 $("#panel-4").show() 7335 step3.find("[data-finished=true]").hide() 7336 $("#cities").attr("required", true) 7337 $(".selfpickup-point").hide() 7338 $("#form-group-city").show() 7339 $("#cities").val('').trigger('change'); 7340 $("#properties-kota-pengiriman").val("-") 7341 7342 $("#row-delivery-date, #row-delivery-time").show() 7343 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7344 $("#deliveryDate").find("button").removeClass("stop") 7345 $(".form-selfpickup").hide() 7346 $(".form-delivery").show() 7347 $(".form-delivery").find("input, textarea, select").attr("required", true)
7348 $(".form-delivery [data-properties]").attr("readonly", false) 7349 $("#properties-kodepos").val("-") 7350 $("#properties-alamat-penerima").val("-") 7351 $(".form-delivery .form-control").attr("required", true) 7352 $(this).parents(".setup-content").attr("id", "step-1") 7353 7354 $("#stepNav4").show() 7355 } 7356 }) 7357 7358 $("[name=selfpickup]").click(function(){ 7359 const p = $(this).parents(".row-pickup") 7360 const pickupCity = $("input[name='selfpickup']:checked").val(); 7361 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 7362 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 7363 7364 $(".row-pickup").removeClass("selected") 7365 p.addClass("selected") 7366 7367 $("#properties-kota-pengiriman").val(pickupCity) 7368 $("#province").val("Jakarta") 7369 $("#properties-alamat-penerima").val(pickupAddress) 7370 $("#properties-kodepos").val(pickupZip) 7371 }) 7372 7373 $("#cities").change(function(e){ 7374 e.preventDefault() 7375 $(this).parent(".row").find("p.error").remove() 7376 $("#full-date").val("Full Calendar") 7377 $("#deliveryDate, #deliveryDateFull label ").show() 7378 $("#deliveryDateFull").removeClass("filled") 7379 $(".btnChangeDeliveryDate").addClass("hide") 7380 $("#full-date").prop('disabled', false); 7381 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 7382 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 7383 const step3 = $("#step-3") 7384 $("#cityNote").remove() 7385 $("#noteDeliveryDate").hide() 7386 $("#noteDeliveryDate").empty() 7387 let v = $(this).val() 7388 let v2 = $('option:selected', this).attr('data-city'); 7389 let v3 = $('option:selected', this).attr('data-province'); 7390 let price = $('option:selected', this).attr('data-price'); 7391 $("#country").val(v) 7392 $("#properties-kota-pengiriman").val(v) 7393 $("#properties-shipping").val(price) 7394 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 7395 $("#properties-delivery-date, #properties-delivery-time").val("-") 7396 $("#propDeliveryDate, #propDeliveryTime").val("") 7397 let note = $('option:selected', this).attr('data-note'); 7398 if(v === 'Kota Lainnya') { 7399 $("#noteDeliveryDate").show() 7400 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 7401 $("#zip").attr("required", false) 7402 $("#zip").hide() 7403 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 7404 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 7405 $("#row-delivery-date, #row-delivery-time").hide() 7406 $("#properties-shipping").val("") 7407 // $(this).parents(".setup-content").attr("id", "step-2") 7408 7409 } else { 7410 $("#noteDeliveryDate").hide() 7411 $("#zip").attr("required", true) 7412 $("#zip").show() 7413 $("#row-delivery-date, #row-delivery-time").show() 7414 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7415 $("#deliveryDate").find("button").removeClass("stop") 7416 // $(this).parents(".setup-content").attr("id", "step-1") 7417 7418 } 7419 7420 7421 7422 // if(v !== 'Jakarta') { 7423 // $("[data-type=upsell]").hide() 7424 // } else { 7425 // $("[data-type=upsell]").show() 7426 // } 7427 // $('.collection-addons')[0].swiper.update(); 7428 7429 7430 getProvince(v) 7431 $("#zip").html(`<option value="">Choose Postal Code</option>`) 7432 renderZip(v, v2, v3) 7433 7434 disabledSameDay() 7435 7436 7437 if(v !== 'Jakarta' && v !== 'Deli' && v !== 'Bekasi' && v !== 'Tangerang') { 7438 7439 $("#cardOccasion, #navAddon, .collection-addons").hide() 7440 7441 $("[data-addon=giftcard]").show() 7442 $("[data-addon=giftcard]").click() 7443 $("#itemAddons").show() 7444 $("#flower-step").addClass("nonjadetabek") 7445 } else { 7446 $("#cardOccasion, #navAddon, .collection-addons").show() 7447 $("[data-addon=all]").click() 7448 $("#flower-step").removeClass("nonjadetabek") 7449 } 7450 7451 if(v !== '') { 7452 $("#personalizeBtn .btn").attr("disabled", false) 7453 } else { 7454 $("#personalizeBtn .btn").attr("disabled", true) 7455 } 7456 7457 }) 7458 7459 $("#zip").change(function(e){
7460 let v = $(this).val() 7461 var city = $("#cities").find('option:selected'); 7462 $("#properties-kodepos").val(v) 7463 if(city === 'Kota Lainnya') { 7464 $(this).attr("required", true) 7465 $("#recipient-address").val("") 7466 } 7467 }) 7468 7469 7470 var minDate = +7 7471 7472 7473 7474 $("#full-date").datepicker({ 7475 minDate, 7476 dateFormat: 'Mdd_yy', //Nop22_2021, 7477 7478 beforeShowDay: disabledays, 7479 7480 onSelect: function (date) { 7481 $("#deliveryDate, #deliveryDateFull label ").hide() 7482 $("#deliveryDateFull").addClass("filled") 7483 $(".btnChangeDeliveryDate").removeClass("hide") 7484 $("#full-date").prop('disabled', true); 7485 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 7486 $(".date-full").addClass("selected") 7487 $(".date-single, .calendar-group").removeClass("selected") 7488 $("#propDeliveryTime").val('') 7489 $("#properties-delivery-time").val('-') 7490 $(".time-single").removeClass("selected") 7491 7492 7493 } 7494 }); 7495 7496 $(".btnChangeDeliveryDate").click(function(){ 7497 $("#deliveryDate, #deliveryDateFull label ").show() 7498 $("#deliveryDateFull").removeClass("filled") 7499 $(".btnChangeDeliveryDate").addClass("hide") 7500 $("#full-date").prop('disabled', false); 7501 }) 7502 7503 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 7504 e.preventDefault() 7505 $(this).parents("#row-delivery-date").find("p.error").remove() 7506 const fulldate = $(this).data("fulldate") 7507 const day = $(this).data("day") 7508 const date = $(this).data("date")
7509 const month = $(this).data("month") 7510 const year = $(this).data("year") 7511 const off_pagi = $(this).data("offpagi") 7512 const off_siang = $(this).data("offsiang") 7513 const off_Malam = $(this).data("offMalam") 7514 $(".calendarbutton").removeClass("selected") 7515 $(this).addClass("selected") 7516 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7517 $("#propDeliveryTime").val('') 7518 $("#properties-delivery-time").val('-') 7519 $(".calendarbutton2").removeClass("selected") 7520 $("#full-date").val("Full Calendar") 7521 7522 7523 if(off_pagi && timeOfDay > off_pagi) { 7524 $("[data-time=Morning]").attr("disabled", true) 7525 } else { 7526 $("[data-time=Morning]").attr("disabled", false) 7527 } 7528 if(off_siang && timeOfDay > off_siang) { 7529 $("[data-time=Afternoon]").attr("disabled", true) 7530 } else { 7531 $("[data-time=Afternoon]").attr("disabled", false) 7532 } 7533 7534 7535 7536 }) 7537 7538 if(today === 14 && timeOfDay > 17.00) { 7539 $("#deliveryDate button:first-child").attr("disabled", true) 7540 } 7541 7542 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 7543 e.preventDefault() 7544 const time = $(this).data("time") 7545 const date = $("#propDeliveryDate").val() 7546 if(date == '') { 7547 return alert('Silakan pilih tanggal terlebih dahulu') 7548 } 7549 $(".calendarbutton2").removeClass("selected") 7550 $(this).addClass("selected") 7551 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 7552 }) 7553 7554 $('textarea.has-limit, input.has-limit').keyup(function () { 7555 max = this.getAttribute("maxlength"); 7556 let len = $(this).val().length; 7557 let limit = $(this).siblings(".limit"); 7558 if (len > max) { 7559 alert('you have reached the limit'); 7560 } else { 7561 limit.text(`${len}/${max}`); 7562 } 7563 }); 7564 7565 $("#button-action-step .btn").click(function(){ 7566 $(this).find("span").text("Processing..."); 7567 }); 7568 7569 $(".finishBtn").on('click', function() { 7570 $(this).addClass("is-adding"); 7571 // $(this).click(); 7572 }); 7573 7574 $('.setup-panel .nav-item a.btn-success').trigger('click'); 7575 7576 $("#button-action .btn").click(function(){ 7577 $("#flower-step").addClass("block"); 7578 $("#button-action").hide(); 7579 }); 7580 7581 $(".close-how-order").click(function(){ 7582 $("#flower-step").removeClass("block"); 7583 $("#button-action").show(); 7584 }); 7585 7586 $("#input-foto, #input-video").change(function(e){ 7587 readURL(this); 7588 }); 7589 7590 $("#logoPapan").change(function(){ 7591 readURLPapan(this); 7592 }); 7593 7594 $("#address-upload").change(async function(){ 7595 const upload_address = await readURLAddress(this) 7596 if(upload_address) { 7597 const url = upload_address.url 7598 $(".props-address-upload").val(url) 7599 $(".form-address").addClass("address-uploaded") 7600 $(".form-address-upload").addClass("uploaded") 7601 7602 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 7603 } 7604 }) 7605 7606 $(".address-manualy").click(function(){ 7607 $(".form-address-upload").removeClass("uploaded"); 7608 $(".photo-address").hide(); 7609 $(".form-address").removeClass("address-uploaded") 7610 $("#formAddressPurchase").find(".form-control").attr("required", true) 7611 }); 7612 7613 $(".case-video-preview").delegate(".replace-video", "click", function(){ 7614 $("#input-video").trigger("click") 7615 }) 7616 7617 $('.date-single').click(function(e) { 7618 e.preventDefault(); 7619 $('.date-single').removeClass('selected'); 7620 $('#full-date').removeClass('selected'); 7621 $(this).addClass('selected'); 7622 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 7623 }); 7624 $('#full-date').click(function(e){ 7625 e.preventDefault(); 7626 $('.date-single').removeClass('selected'); 7627 $(this).addClass('selected'); 7628 }); 7629 7630 // $("tr").each(function(){ 7631 // if($(this).text().match('SKU')) { 7632 // $(".sku-product").html($(this).parents("table").html()) 7633 // } 7634 // }) 7635 7636 $("#product-image").scroll(function(){ 7637 $(".desc-add").each(function(){ 7638 const img = $(this).find("img") 7639 const src = img.data("src") 7640 img.attr("src", src) 7641 }) 7642 }) 7643 7644 $(".product-fixed").hide() 7645 7646 let target = $("#personalizeBtn") 7647 7648 7649 $(".product-meta").scroll(function() { 7650 if ($(window).scrollTop() >= target.offset().top ) { 7651 $(".product-fixed").addClass("show") 7652 } else { 7653 $(".product-fixed").removeClass("show") 7654 } 7655 }); 7656 7657 $(window).scroll(function() { 7658 if ($(window).scrollTop() >= target.offset().top ) { 7659 $(".product-fixed").addClass("show") 7660 } else { 7661 $(".product-fixed").removeClass("show") 7662 } 7663 }); 7664 }); 7665 </script>
7665 7666 7667
7667<script> 7668 // 7669 </script>
7669 7670 7671
7671<script> 7672 $(document).ready(function(){ 7673 $('table tr td').each(function(){ 7674 var texto = $(this).text(); 7675 var nextto = $(this).next("td"); 7676 var sku = $("#data-sku").val() 7677 if(texto == 'SKU'){ 7678 nextto.text(sku) 7679 } 7680 }); 7681 7682 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7683 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7684 $("#tab-questions").text("Pertanyaan"); 7685 7686 $(".freeship .icon").click(function(){ 7687 $(".fs-content").slideToggle(); 7688 $(this).parents(".freeship").toggleClass("expand"); 7689 }); 7690 $('#playerID').click(function(){ 7691 var videoURL = $('#VdoID').attr('src'), 7692 dataplay = $('#VdoID').attr('data-play'); 7693 7694 //for check autoplay 7695 //if not set autoplay=1 7696 if(dataplay == 0 ){ 7697 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7698 $('#VdoID').attr('data-play',1); 7699 } 7700 else{ 7701 var videoURL = $('#VdoID').attr('src'); 7702 videoURL = videoURL.replace("?autoplay=1", ""); 7703 $('#VdoID').prop('src',''); 7704 $('#VdoID').prop('src',videoURL); 7705 7706 $('#VdoID').attr('data-play',0); 7707 } 7708 7709 }); 7710 7711 $(".product-photo-thumb-video").click(function(e){ 7712 e.preventDefault(); 7713 7714 var newEmbed = $(this).attr('href'); 7715 $("#featured-image-product").addClass("img-video"); 7716 $("#ProductPhotoImg").hide(); 7717 $("#featured-image-product .video").show(); 7718 $("#featured-image-product iframe").attr('src', newEmbed); 7719 $("#VdoID")[0].src += "&autoplay=1"; 7720 }); 7721 $(".product-single__thumbnail").click(function(evt){ 7722 evt.preventDefault(); 7723 $("#featured-image-product").removeClass("img-video"); 7724 $("#ProductPhotoImg").show(); 7725 $("#featured-image-product .video").hide(); 7726 $("#featured-image-product iframe").attr('src', ''); 7727 }); 7728 7729 if($('#product-meta .short-desc > div').length >= 1){ 7730 //console.log('div detected') 7731 var replacer = $('#product-meta .short-desc > div').contents(); 7732 $('#product-meta .short-desc > div').replaceWith(replacer); 7733 7734 var cAssured = $('.c-assured').detach(); 7735 cAssured.insertAfter('.meta-sds .stock-info'); 7736 } 7737 7738 7739 7740 $(".heading-toggle").click(function(){ 7741 $(this).parent().toggleClass("open") 7742 7743 }); 7744 }); 7745 </script>
7745 7746 7747 7748
7748<script type="application/json" id="ProductJson-Product"> 7749 7750 {"id":8359546319899,"title":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSitus PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."} 7751 </script>
7751 7752 7753
7753<script type="application/json" id="VariantJson-Product"> 7754 [ 7755 7756 { 7757 "incoming": false, 7758 "next_incoming_date": null 7759 } 7760 7761 ] 7762 </script>
7762 7763 7764 7765 7766 7767 </div> 7768 7769 7770
7770<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7770 7771 <style> 7772 .stamped-review-header-title, 7773 .stamped-review-header .author, 7774 .stamped-review-content-body, 7775 .stamped-sort-select, 7776 .stamped-review-header .verified-badge[data-type=buyer]:after, 7777 .stamped-review-header-byline, 7778 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7779 .stamped-review {margin-bottom: 0;} 7780 .stamped-review-body {padding-left: 65px;} 7781 .stamped-review:first-child {padding-top: 25px;} 7782 .stamped-review-content {clear: none;} 7783 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7784 .stamped-review-reply-body {padding-left: 65px;} 7785 .stamped-review-header .author {text-transform: capitalize;} 7786 .stamped-questions .stamped-review-content {padding-left: 65px;} 7787 7788 .stamped-pagination {margin: 20px 0 0;} 7789 .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;} 7790 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7791 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7792 .stamped-pagination li:hover a {background: #ddd;} 7793 .stamped-pagination .next {border-right: 1px solid #ccc;} 7794 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7795 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7796 7797 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7798 #stamped-pagination-question span {font-size: 14px;} 7799 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7800 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7801 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7802 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7803 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7804 7805 @media (max-width: 480px){ 7806 .stamped-review-reply {margin-left: 0!important;} 7807 select.stamped-sort-select {font-size: 13px!important;} 7808 } 7809 7810 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7811 display: block !important; 7812 } 7813 </style> 7814
7814<script> 7815 var selectCallback = function(variant, selector) { 7816 timber.productPage({ 7817 money_format: "Rp {{amount_no_decimals}}", 7818 variant: variant, 7819 selector: selector 7820 }); 7821 }; 7822 7823 jQuery(function($) { 7824 new Shopify.OptionSelectors('productSelect', { 7825 product: 7826 7827 7828 7829 7830 7831 {"id":8359546319899,"title":"Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSitus PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026."}, 7832 onVariantSelected: selectCallback, 7833 enableHistoryState: true 7834 }); 7835 7836 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7837 7838 7839 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7840 7841 $('.selector-wrapper').hide(); 7842 7843 }); 7844 </script>
7844 7845 7846 7847 7848
7848<script type="application/ld+json"> 7849 { 7850 "@context": "http://schema.org", 7851 "@type": "Product", 7852 "offers": { 7853 "@type": "Offer", 7854 "availability":"https://schema.org/InStock", 7855 "price": 835000, 7856 "priceValidUntil": "05-10-2025", 7857 "priceCurrency": "IDR", 7858 "url": "https://www.hfmagazineonline.com/category/entertainment/" 7859 }, 7860 "brand": { 7861 "@type": "Brand", 7862 "name": "PERMATA123" 7863 }, 7864 "sku": "8359546319899", 7865 "gtin13": "Jawa", 7866 "name": "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 7867 "description": "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.", 7868 "category": "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.", 7869 "url": "https://www.hfmagazineonline.com/category/entertainment/", 7870 "image": { 7871 "@type": "ImageObject", 7872 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7873 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7874 "name": "Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026", 7875 "width": 1024, 7876 "height": 1024 7877 } 7878 } 7879 </script>
7879 7880 7881 7882 7883 7884 7885
7885<script id="bss-ltap-hide-price" type="text/javascript" > 7886 !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)}))}
7886)),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)}
7886)),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()}
7886if("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)}
7886if(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");
7886c&&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
7886-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");
7886i&&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
7886--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
7886opify.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");
7886e.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=
7886o.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");
7886if(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();
7886let 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()}]); 7887 </script>
7887 7888 7889 </main> 7890 7891 <div id="shopify-section-newsletter" class="shopify-section"><br> 7892 <style> 7893 #shopify-section-newsletter { 7894 background: url(https://www.hfmagazineonline.com/image/media-login-cepat-aman.webp); 7895 background-attachment: fixed; 7896 margin-bottom: 0; 7897 } 7898 input:-webkit-autofill, 7899 input:-webkit-autofill:hover, 7900 input:-webkit-autofill:active, 7901 input:-webkit-autofill:focus { 7902 -webkit-box-shadow:0 0 0 50px white inset; 7903 -webkit-text-fill-color: #ffffff; 7904 } 7905 .section-newsletter { 7906 max-width: 800px; 7907 margin: auto; 7908 padding: 50px 0; 7909 } 7910 .section-newsletter h2 { 7911 font-weight: 700; 7912 font-size: 24px; 7913 } 7914 .section-newsletter input[type="email"] { 7915 width: 100%; 7916 text-align: center; 7917 border: none; 7918 border-bottom: 1px solid #ffffff; 7919 font-size: 16px; 7920 color: #757575; 7921 background-color: #eeeeee; 7922 } 7923 .section-newsletter .row label { 7924 font-size: 14px; 7925 cursor: pointer; 7926 } 7927 .section-newsletter .radio-inline input { 7928 width: auto; 7929 } 7930 .section-newsletter .btn { 7931 width: 130px; 7932 border: 1px solid #ffffff; 7933 box-shadow: none; 7934 font-size: 16px; 7935 font-weight: 500; 7936 text-transform: uppercase; 7937 } 7938 .section-newsletter form { 7939 margin: 30px 0 60px; 7940 } 7941 .section-newsletter input[type="radio"] { 7942 position: absolute; 7943 width: 1px; 7944 height: 1px; 7945 } 7946 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7947 position: relative; 7948 padding-left: 28px; 7949 cursor: pointer; 7950 line-height: 20px; 7951 display: inline-block; 7952 color: #666; 7953 } 7954 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7955 content: ''; 7956 position: absolute; 7957 left: 0; 7958 top: 0; 7959 width: 18px; 7960 height: 18px; 7961 border: 1px solid #ddd; 7962 border-radius: 100%; 7963 background: #fff; 7964 } 7965 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7966 content: ''; 7967 width: 12px; 7968 height: 12px; 7969 background: #ffffff; 7970 position: absolute; 7971 top: 3px; 7972 left: 3px; 7973 border-radius: 100%; 7974 -webkit-transition: all 0.2s ease; 7975 transition: all 0.2s ease; 7976 } 7977 .section-newsletter [type="radio"]:not(:checked) + label:after { 7978 opacity: 0; 7979 -webkit-transform: scale(0); 7980 transform: scale(0); 7981 } 7982 .opt-newsletter {display:none;} 7983 .footer-newsletter p, .footer-newsletter p a { 7984 color: #757575; 7985 } 7986 @media (max-width:991px){ 7987 .section-newsletter h2 { 7988 font-size: 32px; 7989 } 7990 .section-newsletter input { 7991 width: 300px; 7992 font-size: 14px; 7993 } 7994 .section-newsletter { 7995 padding: 50px 20px; 7996 } 7997 } 7998 @media (max-width: 480px){ 7999 .section-newsletter input[type="email"] {font-size: 16px;} 8000 } 8001 </style> 8002 8003 8004 <!-- wp:html --> 8005
8005<script> 8006 document.addEventListener('DOMContentLoaded', 8007 function(){const faqItems=document.querySelectorAll('.faq-item'); 8008 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 8009 question.addEventListener('click', 8010 ()=>{const isActive=item.classList.contains('active'); 8011 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 8012 if(!isActive){item.classList.add('active')}})})}); 8013 </script>
8013 8014 8015 8016 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 8017 </div> 8018 <section class="fx-video-bg"> 8019 <video autoplay muted loop playsinline> 8020 <source src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" type="video/mp4"> 8021 </video> 8022 8023 <div class="fx-article-wrap"> 8024 <article class="fx-article"> 8025 <section class="clean-container"> 8026 <div class="clean-wrap"> 8027<h1 class="clean-title"> 8028 8029<h1> 8030 Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026 8031</h1> 8032 8033<div class="clean-divider"></div> 8034 8035<div class="clean-article"> 8036 8037<p> 8038Memilih media login game online yang tepat sering kali menjadi pertimbangan penting bagi banyak orang. Bukan hanya soal tampilan, tetapi juga kecepatan akses, rasa aman saat masuk akun, serta kemudahan menemukan jalur masuk alternatif jika halaman utama sedang mengalami gangguan. Hal-hal sederhana seperti ini justru paling sering menentukan kenyamanan dalam jangka panjang. 8039</p> 8040 8041<p> 8042PERMATA123 hadir sebagai media penghubung yang mengutamakan kecepatan dan keamanan di tahun 2026. Tampilan dibuat lebih ringan namun tetap modern agar proses masuk akun terasa ringkas dan berkelas, sementara sistem keamanan dirancang untuk memberikan rasa tenang setiap kali pengguna membuka halaman. 8043</p> 8044 8045<h2><strong>Login Lebih Cepat Tanpa Perlu Menunggu Lama</strong></h2> 8046 8047<p> 8048Salah satu yang paling diharapkan dari sebuah media akses login adalah proses masuk yang tidak bertele-tele. Pengguna ingin langsung bisa mengakses dan menikmati hiburan tanpa harus melewati banyak tahapan yang menyulitkan atau menunggu loading yang terlalu lama. 8049</p> 8050 8051<p> 8052Di PERMATA123, halaman login disusun agar tetap sederhana. Setelah data akun dimasukkan, akses biasanya langsung terbuka sehingga pengguna bisa segera melanjutkan aktivitas mengisi saldo akun, melihat riyawat permainan serta menikmati hiburan tanpa hambatan yang berarti. 8053</p> 8054 8055<h2><strong>Link Alternatif yang Siap Digunakan 24 Jam</strong></h2> 8056 8057<p> 8058Meski sudah mendukung teknologi digital canggih, tidak jarang halaman utama sempat sulit dibuka karena berbagai alasan seperti maintenance rutin hingga gangguan provider. Situasi seperti ini biasanya membuat pengguna mencari cara lain agar tetap bisa masuk ke akun dan menikmati hiburan. 8059</p> 8060 8061<p> 8062PERMATA123 menyediakan link alternatif yang stabil sepanjang hari. Pengguna bisa beralih ke jalur masuk lain tanpa harus membuat akun baru atau kehilangan data yang sudah ada. Semua tetap terhubung ke akun yang sama tanpa ada yang berubah sedikitpun. 8063</p> 8064 8065<h2><strong>Akses Tetap Nyaman di Berbagai Perangkat</strong></h2> 8066 8067<p> 8068Sebagian orang lebih sering membuka media login lewat ponsel, sementara yang lain terbiasa menggunakan komputer. Keduanya tetap didukung dengan baik. PERMATA123 menyempurkan sistem akses yang dimiliki agar dapat responsif dengan tampilan layar apapun. 8069</p> 8070 8071<p> 8072Dengan teknologi yang sensitive menjadikan menu login semakin mudah, perpindahan antar perangkat tidak menjadi hambatan lagi. Cukup akses link alternatif pada divice yang ingin digunakan, kemudian langsung login akun dan mainkan. 8073</p> 8074 8075<h2><strong>Konsistensi yang Membuat Pengguna Betah</strong></h2> 8076 8077<p> 8078Banyak pengguna mengakui dan bertahan pada satu media login karena sudah merasa nyaman. Mereka tahu harus mengunjungi situs mana ketika ingin mendapatkan hiburan berkelas, bagaimana cara beralih ke link alternatif, dan merasa data akunnya cukup terlindungi. 8079</p> 8080 8081<p> 8082Situs PERMATA123 mencoba mempertahankan konsistensi tersebut. Proses login tetap cepat, sistem keamanan dijaga dengan baik, dan yang paling penting link alternatif selalu siap digunakan kapan saja dibutuhkan. 8083</p> 8084 8085<h2><strong>Pilihan yang Lebih Tenang di Tahun 2026</strong></h2> 8086 8087<p> 8088Di tengah banyaknya pilihan yang muncul, pengguna cenderung memilih media penghubung hiburan yang sudah terbukti memberikan pengalaman stabil. Bukan hanya soal kecepatan, tetapi juga rasa aman dan kemudahan saat akses utama sedang terganggu. 8089</p> 8090 8091<p> 8092Dengan mengutamakan login yang cepat, sistem keamanan yang lebih baik, serta link alternatif yang aktif 24 jam, PERMATA123 berusaha menjadi pilihan terbaik dan terpercaya bagi penggunanya hingga saat ini. 8093</p> 8094 8095 <p>ð <span style="font-weight: bold; 8096 background: linear-gradient(to bottom, #fff3b0 0%, #d4af37 50%, #8b6b00 100%); 8097 -webkit-background-clip: text; 8098 -webkit-text-fill-color: transparent; 8099 text-shadow: 0 1px 3px rgba(0,0,0,0.5);"> 8100 <a href="https://media-hfmagazineonline.seo123788.workers.dev/" 8101 style="color:#d4af37; 8102 text-decoration:none; 8103 text-shadow: 8104 0 0 8px rgba(255,215,0,0.55), 8105 0 0 16px rgba(212,175,55,0.35);"> 8106 [Klik di Sini untuk Dapatkan Media Login Link Alternatif Terpercaya Situs PE
8106RMATA123] 8107 </a> 8108 </span></p> 8109 8110</div> 8111 8112</div> 8113 8114 </div> 8115 8116<section class="neo-block faq-box" id="faq"> 8117 <div class="neo-title"> 8118 <span class="neo-dot"></span> 8119 <span>FAQ Situs PERMATA123 | Media Login Paling Cepat & Aman Tahun 2026</span> 8120 </div> 8121 8122 <div class="neo-faq" id="neo-faq-container"></div> 8123</section> 8124<!-- Wrapper Unik (ID ini memastikan style tidak bocor keluar) --> 8125<div id="PERMATA123-reviews"> 8126 <style> 8127 /* Menggunakan #PERMATA123-reviews sebagai prefix agar aman */ 8128 #PERMATA123-reviews .review-section { 8129 max-width: 1000px; 8130 margin: 40px auto; 8131 padding: 30px; 8132 background: #000; 8133 border-radius: 20px; 8134 border: 2px solid #d4af37; 8135 box-shadow: 8136 0 0 12px rgba(212, 175, 55, 0.25), 8137 0 0 28px rgba(255, 215, 0, 0.12); 8138 font-family: sans-serif; 8139 box-sizing: border-box; 8140} 8141/* BOX UTAMA FAQ */ 8142.faq-box { 8143 position: relative; 8144 z-index: 3; 8145 width: calc(100% - 64px); 8146 max-width: 1120px; 8147 margin: 28px auto 40px; 8148 padding: 26px 22px 24px; 8149 box-sizing: border-box; 8150 overflow: hidden; 8151 8152 background: linear-gradient( 8153 180deg, 8154 rgba(33, 27, 13, 0.97), 8155 rgba(8, 8, 8, 0.98) 8156 ); 8157 8158 border: 1px solid rgba(255, 215, 0, 0.75); 8159 border-radius: 22px; 8160 8161 box-shadow: 8162 inset 0 0 0 1px rgba(255, 193, 7, 0.12), 8163 0 12px 34px rgba(0, 0, 0, 0.6), 8164 0 0 22px rgba(255, 215, 0, 0.12); 8165} 8166 8167/* JUDUL FAQ */ 8168.faq-box .neo-title { 8169 display: flex; 8170 align-items: center; 8171 gap: 8px; 8172 margin: 0 0 14px; 8173 padding: 0 4px; 8174 8175 color: #ffffff; 8176 font-size: 14px; 8177 font-weight: 800; 8178 line-height: 1.5; 8179 text-transform: uppercase; 8180} 8181 8182.faq-box .neo-dot { 8183 width: 9px; 8184 height: 9px; 8185 flex: 0 0 9px; 8186 border-radius: 50%; 8187 background: #ffd700; 8188 box-shadow: 0 0 10px rgba(255, 215, 0, 0.9); 8189} 8190 8191/* DAFTAR FAQ */ 8192.faq-box .neo-list { 8193 display: grid; 8194 gap: 10px; 8195} 8196 8197/* SETIAP ITEM */ 8198.faq-box .neo-item { 8199 width: 100%; 8200 margin: 0; 8201 box-sizing: border-box; 8202 overflow: hidden; 8203 8204 background: linear-gradient( 8205 90deg, 8206 rgba(31, 31, 31, 0.98), 8207 rgba(4, 4, 4, 0.98) 8208 ); 8209 8210 border: 1px solid rgba(255, 215, 0, 0.55); 8211 border-radius: 16px; 8212 8213 box-shadow: 8214 inset 0 0 12px rgba(255, 215, 0, 0.04), 8215 0 4px 12px rgba(0, 0, 0, 0.4); 8216} 8217 8218/* PERTANYAAN */ 8219.faq-box .neo-item summary { 8220 position: relative; 8221 display: flex; 8222 align-items: center; 8223 min-height: 52px; 8224 padding: 14px 64px 14px 16px; 8225 box-sizing: border-box; 8226 8227 color: #ffffff; 8228 font-size: 14px; 8229 font-weight: 800; 8230 line-height: 1.45; 8231 8232 cursor: pointer; 8233 list-style: none; 8234 user-select: none; 8235} 8236 8237.faq-box .neo-item summary::-webkit-details-marker { 8238 display: none; 8239} 8240 8241/* TOMBOL PLUS */ 8242.faq-box .neo-item summary::after { 8243 content: "+"; 8244 position: absolute; 8245 top: 50%; 8246 right: 14px; 8247 width: 32px; 8248 height: 32px; 8249 8250 display: flex; 8251 align-items: center; 8252 justify-content: center; 8253 8254 transform: translateY(-50%); 8255 border: 1px solid rgba(255, 215, 0, 0.55); 8256 border-radius: 12px; 8257 8258 color: #ffffff; 8259 font-size: 20px; 8260 font-weight: 500; 8261 line-height: 1; 8262 8263 background: rgba(0, 0, 0, 0.7); 8264} 8265 8266/* SAAT FAQ TERBUKA */ 8267.faq-box .neo-item[open] summary::after { 8268 content: "â"; 8269} 8270 8271.faq-box .neo-item[open] summary { 8272 border-bottom: 1px solid rgba(255, 215, 0, 0.22); 8273} 8274 8275/* JAWABAN */ 8276.faq-box .neo-answer { 8277 padding: 0 16px 14px; 8278 color: #e5e5e5; 8279 font-size: 14px; 8280 line-height: 1.7; 8281} 8282 8283.faq-box .neo-answer p { 8284 margin: 0; 8285} 8286 8287/* AGAR VIDEO LATAR TIDAK MENUTUP FAQ */ 8288.fx-video-bg > video { 8289 pointer-events: none; 8290} 8291 8292/* MOBILE */ 8293@media (max-width: 640px) { 8294 .faq-box { 8295 width: calc(100% - 24px); 8296 margin: 18px auto 28px; 8297 padding: 18px 12px 16px; 8298 border-radius: 16px; 8299 } 8300 8301 .faq-box .neo-title { 8302 font-size: 12px; 8303 } 8304 8305 .faq-box .neo-item summary { 8306 min-height: 48px; 8307 padding: 12px 54px 12px 13px; 8308 font-size: 13px; 8309 } 8310 8311 .faq-box .neo-item summary::after { 8312 right: 10px; 8313 width: 30px; 8314 height: 30px; 8315 } 8316 8317 .faq-box .neo-answer { 8318 padding: 0 13px 13px; 8319 font-size: 13px; 8320 } 8321} 8322 8323#PERMATA123-reviews .section-title { 8324 color: #f5d76e; 8325 text-align: center; 8326 font-size: 1.8rem; 8327 font-weight: 800; 8328 margin-bottom: 30px; 8329 text-transform: uppercase; 8330 letter-spacing: 1px; 8331 text-shadow: 8332 0 0 8px rgba(255, 215, 0, 0.45), 8333 0 0 18px rgba(212, 175, 55, 0.30); 8334} 8335 8336#PERMATA123-reviews .main-content { 8337 display: flex; 8338 gap: 30px; 8339} 8340 8341#PERMATA123-reviews .rating-side { 8342 flex: 1; 8343 background: linear-gradient( 8344 135deg, 8345 #fff3b0 0%, 8346 #d4af37 45%, 8347 #8b6b00 100% 8348 ); 8349 border-radius: 15px; 8350 display: flex; 8351 flex-direction: column; 8352 justify-content: center;
8353 align-items: center; 8354 padding: 40px; 8355 color: #000; 8356 box-shadow: 8357 0 0 18px rgba(255, 215, 0, 0.18), 8358 inset 0 0 12px rgba(255, 255, 255, 0.18); 8359 height: fit-content; 8360} 8361 8362 #PERMATA123-reviews .big-score { font-size: 5rem; font-weight: 800; margin: 0; line-height: 1; } 8363 #PERMATA123-reviews .stars-big { color: #fff; font-size: 1.5rem; margin-bottom: 10px; } 8364 8365 #PERMATA123-reviews .reviews-side { 8366 flex: 2; 8367 height: 450px; 8368 overflow: hidden; 8369 position: relative; 8370 } 8371 8372 #PERMATA123-reviews .reviews-wrapper { 8373 display: flex; 8374 flex-direction: column; 8375 gap: 15px; 8376 animation: PERMATA123-scroll 40s linear infinite; 8377 } 8378 8379 #PERMATA123-reviews .reviews-wrapper:hover { animation-play-state: paused; } 8380 8381 #PERMATA123-reviews .review-card { 8382 background: #111; 8383 padding: 20px; 8384 border-radius: 12px; 8385 border: 1px solid #333; 8386 color: #ddd; 8387 flex-shrink: 0; 8388 } 8389 8390 #PERMATA123-reviews .user-name { color: #ff8c00; font-weight: bold; font-size: 0.95rem; margin-bottom: 5px; display: block; } 8391 #PERMATA123-reviews .review-text { font-size: 0.85rem; line-height: 1.6; } 8392 8393 @keyframes PERMATA123-scroll { 8394 0% { transform: translateY(0); } 8395 100% { transform: translateY(-50%); } 8396 } 8397 8398 /* Responif untuk layar kecil */ 8399 @media (max-width: 768px) { 8400 #PERMATA123-reviews .main-content { flex-direction: column; } 8401 } 8402 </style> 8403 8404<section class="review-section"> 8405 <h2 class="section-title"> 8406 CERITA PENGGUNA PERMATA123 | SITUS RESMI & TERPERCAYA PILIHAN UTAMA DI INDONESIA 8407 </h2> 8408 8409 <div class="main-content"> 8410 <div class="rating-side"> 8411 <h2 class="big-score" 8412 id="review-big-score" 8413 style=" 8414 color:#000000; 8415 font-weight:900; 8416 text-shadow: 8417 0 1px 0 rgba(255,255,255,0.08), 8418 0 0 8px rgba(0,0,0,0.45); 8419 "> 8420 0 8421 </h2> 8422 8423 <div class="stars-big" id="review-big-stars"></div> 8424 8425 <div style="font-weight:bold;"> 8426 KATA MEREKA YANG BERGABUNG 8427 </div> 8428 8429 <div style="font-size:0.8rem; margin-top:5px;"> 8430 PENGALAMAN NYATA SETIAP HARI 8431 </div> 8432 </div> 8433 8434 <div class="reviews-side"> 8435 <div class="reviews-wrapper" id="reviews-container"></div> 8436 </div> 8437 </div> 8438</section> 8439</div> 8440<div id="server-tech-info"> 8441 <style> 8442 #server-tech-info { 8443 font-family: 'Segoe UI', sans-serif; 8444 background: #0c0c0e; 8445 padding: 40px; 8446 border-radius: 20px; 8447 color: #f5d76e; 8448 max-width: 1000px; 8449 margin: auto; 8450 box-shadow: 8451 0 0 18px rgba(255, 215, 0, 0.08), 8452 0 0 40px rgba(212, 175, 55, 0.06); 8453 } 8454 8455 #server-tech-info h2 { 8456 color: #f5d76e; 8457 font-size: 1.5rem; 8458 margin-bottom: 5px; 8459 text-shadow: 8460 0 0 8px rgba(255, 215, 0, 0.35), 8461 0 0 18px rgba(212, 175, 55, 0.22); 8462 } 8463 8464 #server-tech-info p { 8465 color: #b8a66a; 8466 font-size: 0.9rem; 8467 margin-bottom: 30px; 8468 } 8469 8470 #server-tech-info .section-label { 8471 color: #d4af37; 8472 font-weight: bold; 8473 margin-bottom: 20px; 8474 display: flex; 8475 align-items: center; 8476 text-shadow: 8477 0 0 6px rgba(255,215,0,0.28); 8478 } 8479 8480 /* Grid Parameter */ 8481 #server-tech-info .grid-params { 8482 display: grid; 8483 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 8484 gap: 15px; 8485 margin-bottom: 40px; 8486 } 8487 8488 #server-tech-info .param-card { 8489 background: linear-gradient(145deg, #16161a, #0d0d0f); 8490 padding: 20px; 8491 border-radius: 12px; 8492 border: 1px solid rgba(212, 175, 55, 0.22); 8493 box-shadow: 8494 0 0 12px rgba(255, 215, 0, 0.05); 8495 } 8496 8497 #server-tech-info .param-title { 8498 font-size: 0.7rem; 8499 color: #9d8b52; 8500 text-transform: uppercase; 8501 margin-bottom: 8px; 8502 } 8503 8504 #server-tech-info .param-value { 8505 font-size: 1rem; 8506 font-weight: bold; 8507 color: #fff3b0; 8508 text-shadow: 8509 0 0 8px rgba(255,215,0,0.18); 8510 } 8511 8512 #server-tech-info .highlight { 8513 color: #ffd700; 8514 text-shadow: 8515 0 0 6px rgba(255,215,0,0.30); 8516 } 8517 8518 /* Tables */ 8519 #server-tech-info table { 8520 width: 100%; 8521 border-collapse: collapse; 8522 margin-bottom: 40px; 8523 background: linear-gradient(145deg, #16161a, #101013); 8524 border-radius: 12px; 8525 overflow: hidden; 8526 border: 1px solid rgba(212,175,55,0.15); 8527 } 8528 8529 #server-tech-info th { 8530 text-align: left; 8531 padding: 15px; 8532 color: #a8914f; 8533 font-size: 0.75rem; 8534 text-transform: uppercase; 8535 } 8536 8537 #server-tech-info td { 8538 padding: 15px; 8539 border-top: 1px solid rgba(212,175,55,0.08); 8540 font-size: 0.85rem; 8541 color: #f5d76e; 8542 } 8543 8544 #server-tech-info .badge { 8545 padding: 5px 10px; 8546 border-radius: 5px; 8547 font-size: 0.7rem; 8548 font-weight: bold; 8549 background: linear-gradient(to bottom, #fff3b0, #d4af37); 8550 color: #000; 8551 box-shadow: 8552 0 0 10px rgba(255,215,0,0.20); 8553 } 8554</style> 8555 8556 <h2>Informasi & Spesifikasi Teknis Server PERMATA123</h2> 8557 <p>Rangkuman komprehensif metrik performa, standar regulasi internasional, serta analisis distribusi trafik jaringan 2026.</p> 8558 8559 <div class="section-label">
8559â Parameter Nilai Dasar</div> 8560 <div class="grid-params"> 8561 <div class="param-card"><div class="param-title">Brand Utama</div><div class="param-value highlight">PERMATA123 OFFICIAL</div></div> 8562 <div class="param-card"><div class="param-title">Infrastruktur</div><div class="param-value highlight">ENKRIPSI WLA & PAGCOR</div></div> 8563 <div class="param-card"><div class="param-title">Kecepatan Deposit</div><div class="param-value">Hitungan Detik</div></div> 8564 <div class="param-card"><div class="param-title">Kepuasan Member</div><div class="param-value">91,6%</div></div> 8565 <div class="param-card"><div class="param-title">Metode Transaksi</div><div class="param-value">Bank Lokal, E-Wallet & QRIS</div></div> 8566 <div class="param-card"><div class="param-title">Sistem Permainan</div><div class="param-value">RNG Teruji (Fair Play)</div></div> 8567 <div class="param-card"><div class="param-title">Minimal Depo & Wede</div><div class="param-value">Depo 10.000 & Wede 50.000</div></div> 8568 <div class="param-card"><div class="param-title">Sistem keamanan</div><div class="param-value">sertifikat SSL 256-bit</div></div> 8569 </div> 8570 <div id="PERMATA123-trending-tags"> 8571 <style> 8572 #PERMATA123-trending-tags { 8573 max-width: 1000px; margin: 40px auto; padding: 30px; 8574 text-align: center; font-family: sans-serif; 8575 } 8576 #PERMATA123-trending-tags h3 { color: #ff8c00; margin-bottom: 25px; text-transform: uppercase; letter-spacing: 3px; font-weight: 800; } 8577 8578 #PERMATA123-trending-tags .tag-container { 8579 display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; 8580 } 8581 8582 #PERMATA123-trending-tags .tag { 8583 padding: 12px 22px; background: #000; color: #ff8c00; 8584 border: 2px solid #ff8c00; border-radius: 50px; 8585 font-size: 0.9rem; font-weight: bold; cursor: pointer; 8586 transition: all 0.3s ease; 8587 box-shadow: 0 0 10px rgba(255, 140, 0, 0.3); 8588 text-transform: uppercase; 8589 } 8590 8591 /* Efek Glow Playful */ 8592 #PERMATA123-trending-tags .tag:hover { 8593 background: #ff8c00; color: #000; 8594 box-shadow: 0 0 25px rgba(255, 140, 0, 0.8), 0 0 50px rgba(255, 140, 0, 0.5); 8595 transform: scale(1.1) rotate(-2deg); 8596 } 8597 </style> 8598 8599 <h3>ð¥ Trending Tags</h3> 8600 <div class="tag-container"> 8601 <span class="tag">PERMATA123</span> 8602 <span class="tag">LOGIN PERMATA123</span> 8603 <span class="tag">SITUS PERMATA123</span> 8604 <span class="tag">PERMATA123 LINK ALTERNATIF</span> 8605 <span class="tag">SITUS PERMATA123 TERPERCAYA</span> 8606 </div> 8607</div> 8608 8609 <style id="neo-faq-testi-styles"> 8610 .neo-block { 8611 position: relative; 8612 margin: 10px 8613 } 8614 8615 .neo-head { 8616 display: flex; 8617 align-items: center; 8618 gap: 10px; 8619 margin: 10px 0 12px; 8620 font-weight: 800; 8621 letter-spacing: .9px; 8622 font-size: 14px; 8623 color: #ffffff; 8624 text-transform: uppercase 8625 } 8626 8627 .neo-dot { 8628 width: 10px; 8629 height: 10px; 8630 border-radius: 50%; 8631 background: radial-gradient(circle at 30% 30%, #ffe082, #d4af37 45%, #8b6b00 100%); 8632 box-shadow: 8633 0 0 0 4px rgba(255, 215, 0, 0.12), 8634 0 0 18px rgba(212, 175, 55, 0.35); 8635} 8636 8637 .neo-faq { 8638 display: grid; 8639 gap: 10px 8640 } 8641 8642 .neo-item { 8643 border-radius: 16px; 8644 border: 1px solid rgba(212, 175, 55, 0.45); 8645 background: linear-gradient(135deg, #3a3a3a 0%, #111111 45%, #000000 100%); 8646 box-shadow: 8647 0 0 0 1px rgba(255, 255, 255, 0.04), 8648 0 0 18px rgba(212, 175, 55, 0.12), 8649 0 18px 50px rgba(0, 0, 0, 0.55); 8650 overflow: hidden; 8651} 8652 8653 .neo-item summary { 8654 list-style: none; 8655 cursor: pointer; 8656 padding: 14px 14px 14px 16px; 8657 position: relative; 8658 font-weight: 700; 8659 color: #fff 8660 } 8661 8662 .neo-item summary::-webkit-details-marker { 8663 display: none 8664 } 8665 8666 .neo-item summary:after { 8667 content: "+"; 8668 position: absolute; 8669 right: 14px; 8670 top: 50%; 8671 transform: translateY(-50%); 8672 width: 34px; 8673 height: 34px; 8674 display: grid; 8675 place-items: center; 8676 border-radius: 12px; 8677 background: rgba(0, 0, 0, .35); 8678 border: 1px solid rgba(255, 202, 40, .25); 8679 box-shadow: 0 0 0 1px rgba(255, 255, 255, .05), 0 8px 18px rgba(0, 0, 0, .35); 8680 transition: transform .2s ease 8681 } 8682 8683 .neo-item[open] summary:after { 8684 content: "â"; 8685 transform: translateY(-50%) rotate(180deg) 8686 } 8687 8688 .neo-ans { 8689 padding: 0 16px 14px; 8690 color: rgba(255, 255, 255, .88); 8691 line-height: 1.6 8692 } 8693 8694 .neo-item[open] { 8695 border-color: rgba(255, 202, 40, .45) 8696 } 8697 8698 .neo-testi-grid { 8699 display: grid; 8700 grid-template-columns: repeat(3, minmax(0, 1fr)); 8701 gap: 12px 8702 } 8703 8704 .neo-testi { 8705 border-radius: 18px;
8706 padding: 14px 14px 14px 14px; 8707 background: 8708 radial-gradient(80% 80% at 0% 0%, rgb(255 40 40), #ff7400 60%), radial-gradient(70% 70% at 100% 0%, rgb(255 186 0), #fff700 55%), linear-gradient(135deg, rgba(0, 0, 0, .42), rgb(255 129 0)); 8709 box-shadow: 0 0 0 1px rgba(255, 255, 255, .04), 0 18px 55px rgba(0, 0, 0, .5); 8710 position: relative; 8711 overflow: hidden 8712 } 8713 8714 .neo-testi:before { 8715 content: ""; 8716 position: absolute; 8717 inset: -2px; 8718 background: linear-gradient(90deg, transparent, rgba(255, 202, 40, .25), transparent); 8719 filter: blur(10px); 8720 opacity: .8; 8721 animation: neoSweep 3.6s ease-in-out infinite 8722 } 8723 8724 @keyframes neoSweep { 8725 0% { 8726 transform: translateX(-40%) 8727 } 8728 8729 50% { 8730 transform: translateX(40%) 8731 } 8732 8733 100% { 8734 transform: translateX(-40%) 8735 } 8736 } 8737 8738 .neo-testi>* { 8739 position: relative; 8740 z-index: 1 8741 } 8742 8743 .neo-top { 8744 display: flex; 8745 align-items: center; 8746 justify-content: space-between; 8747 gap: 10px; 8748 margin-bottom: 6px 8749 } 8750 8751 .neo-title { 8752 font-weight: 800; 8753 color: #fff 8754 } 8755 8756 .neo-stars { 8757 font-size: 13px; 8758 letter-spacing: 1px; 8759 color: #ffca28; 8760 text-shadow: 0 0 10px rgba(255, 202, 40, .22) 8761 } 8762 8763 .neo-name { 8764 font-weight: 700; 8765 color: rgba(255, 255, 255, .9); 8766 margin-bottom: 6px 8767 } 8768 8769 .neo-text { 8770 color: rgba(255, 255, 255, .85); 8771 line-height: 1.55 8772 } 8773 8774 @media (max-width: 991px) { 8775 .neo-testi-grid { 8776 grid-template-columns: repeat(2, minmax(0, 1fr)) 8777 } 8778 } 8779 8780 @media (max-width: 575px) { 8781 .neo-testi-grid { 8782 grid-template-columns: 1fr 8783 } 8784 8785 .neo-item summary { 8786 padding-right: 56px 8787 } 8788 } 8789 8790 .footer-main>.container, .cms-section .footer-main>.boxed { 8791 padding-top: 15px; 8792 } 8793 </style> 8794 </article> 8795 </div> 8796</section> 8797 8798 </div> 8799 8800 8801 <div class="overlay overlay-cart"></div> 8802 <div id="CartDrawer" class="drawer drawer--right"> 8803 <div class="drawer__header pl-2 pr-2"> 8804 <div class="drawer__icon-cart display-table-cell"> 8805 <a href="/cart" class=""> 8806 <svg class="icon icon-cart" version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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.5
880673zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg> 8807 </a> 8808 </div> 8809 <div class="drawer__title h4">Keranjang Belanja</div> 8810 <div class="drawer__close js-drawer-close"> 8811 <button type="button"> 8812 <svg class="icon icon-close" version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="32" height="32" viewBox="0 0 32 32"> 8813 <title>icon-close</title> 8814 <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> 8815 </svg> 8816 </button> 8817 </div> 8818 </div> 8819 <div id="CartContainer" class="p-2"></div> 8820 </div> 8821 8822
8822<script> 8823 8824 </script>
8824 8825
8825<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
8825 8826 <!-- /snippets/ajax-cart-template.liquid --> 8827 8828
8828<script id="CartTemplate" type="text/template"> 8829 8830 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 8831 <div class="ajaxcart__inner" {{ cart.item_count }}> 8832 {{#items}} 8833 <div class="ajaxcart__product"> 8834 <div class="ajaxcart__row" data-line="{{line}}"> 8835 <div class="grid"> 8836 <div class="grid__item one-quarter"> 8837 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 8838 </div> 8839 <div class="grid__item three-quarters"> 8840 <p class="d-block mb-3"> 8841 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 8842 {{#if variation}} 8843 <span class="ajaxcart__product-meta p">{{variation}}</span> 8844 {{/if}} 8845 {{#properties}} 8846 {{#each this}} 8847 {{#if this}} 8848 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 8849 {{/if}} 8850 {{/each}} 8851 {{/properties}} 8852 8853 </p> 8854 <div class="grid--full display-table"> 8855 <div class="grid__item display-table-cell one-half"> 8856 <div class="ajaxcart__qty"> 8857 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 8858 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 8859 <span class="visually-hidden">Kurangi jumlah barang</span> 8860 </button> 8861 <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]*"> 8862 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 8863 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 8864 <span class="visually-hidden">Tambahkan jumlah barang</span> 8865 </button> 8866 </div> 8867 </div> 8868 <div class="grid__item display-table-cell one-half text-right"> 8869 {{#if discountsApplied}} 8870 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 8871 <br><span class="h4">{{{linePrice}}}</span> 8872 {{else}} 8873 <span class="h4">{{{linePrice}}}</span> 8874 {{/if}} 8875 </div> 8876 </div> 8877 {{#if discountsApplied}} 8878 <div class="grid--full display-table"> 8879 <div class="grid__item text-right"> 8880 {{#each discounts}} 8881 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 8882 {{/each}} 8883 </div> 8884 </div> 8885 {{/if}} 8886 </div> 8887 </div> 8888 </div> 8889 </div> 8890 </div> 8891 </div> 8892 {{/items}} 8893 </div> 8894 <div class="ajaxcart__footer"> 8895 <div class="grid--full cart-subtotal py-2"> 8896 <p>Subtotal</p> 8897 <h3 class="primary">{{{totalPrice}}}</h3> 8898 {{#if totalCartDiscount}} 8899 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 8900 {{/if}} 8901 </div> 8902 8903 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 8904 8905 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 8906 </div> 8907 </form> 8908 8909 </script>
8909 8910
8910<script id="AjaxQty" type="text/template"> 8911 8912 <div class="ajaxcart__qty"> 8913 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 8914 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="24" viewBox="0 0 32 32"> 8915 <title>icon-minus</title> 8916 <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> 8917 </svg> 8918 <span class="visually-hidden">Kurangi jumlah barang</span> 8919 </button> 8920 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 8921 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 8922 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 8923 <span class="visually-hidden">Tambahkan jumlah barang</span> 8924 </button> 8925 </div> 8926 8927 </script>
8927 8928
8928<script id="JsQty" type="text/template"> 8929 8930 <div class="js-qty mx-auto mt-2"> 8931 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 8932 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 8933 <span class="visually-hidden">Kurangi jumlah barang</span> 8934 </button> 8935 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 8936 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 8937 <svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 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> 8938 <span class="visually-hidden">Tambahkan jumlah barang</span> 8939 </button> 8940 </div> 8941 8942 </script>
8942 8943 8944 <style> 8945 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 8946 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 8947 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 8948 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 8949 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 8950 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 8951 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 8952 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 8953 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 8954 </style> 8955
8955<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
8955 8956
8956<script> 8957 jQuery(function($) { 8958 ajaxCart.init({ 8959 formSelector: '#AddToCartForm', 8960 cartContainer: '#CartContainer', 8961 addToCartSelector: '#AddToCartXX', 8962 cartCountSelector: '#CartCount, #CartCount2', 8963 cartCostSelector: '#CartCost', 8964 moneyFormat: "Rp {{amount_no_decimals}}" 8965 }); 8966 }); 8967 8968 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 8969 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 8970 timber.RightDrawer.open(); 8971 }); 8972 </script>
8972 8973 8974 8975 8976 8977 <style> 8978 /** Search AutoComplete **/ 8979 .resultsearch .ui-menu-item[data-cat="Collection"], 8980 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 8981 .resultsearch .ui-widget.ui-widget-content { 8982 width: 100%; 8983 top: 48px; 8984 border: none; 8985 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 8986 } 8987 .resultsearch .ui-menu-item {text-align: left;} 8988 .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;} 8989 .ui-state-active { 8990 border: none!important; 8991 background-color: #fafafa!important; 8992 color: #000!important; 8993 } 8994 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 8995 .ui-menu .ui-menu-item {line-height: normal;} 8996 </style> 8997
8997<script> 8998 $(window).load(function(){ 8999 9000 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;} 9001 9002 $.widget("custom.catcomplete", $.ui.autocomplete, { 9003 _renderMenu: function (ul, items) { 9004 // have search reults split up in categories 9005 var that = this, 9006 currentCategory = ""; 9007 $.each(items, function (index, item) { 9008 if (item.category != currentCategory) { 9009 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 9010 currentCategory = item.category; 9011 } 9012 that._renderItemData(ul, item); 9013 }); 9014 } 9015 }); 9016 9017 // higlight searched for term 9018 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 9019 var term = this.element.val(), 9020 html = item.label.replace( term, "<b>$&</b>" ); 9021 return $( "<li>" ) 9022 .append(format(item)) 9023 .appendTo( ul ); 9024 }; 9025 9026 9027 var data = [ 9028 { 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 Banten", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Boyolali", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Denpasar", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jombang", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Manado", 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 Sorong", 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 Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Boyolali", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jombang", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Manado", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Sorong", 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 Sorong", 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 Banten", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Manado", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Sorong", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Sorong", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-Yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbox Newborn", cate
9028gory: "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: " " }
9028,{ 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 Banten", 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 Banten", 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 Sorong", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Sorong", 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: " " }
9028,{ 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 Banten", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Banten 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 Banjarnegara", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", 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 Boyolali", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", 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 Boyolali", 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 Banjarnegara", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Banjarnegara", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Banten", 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: " " }
9028,{ 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 Denpasar", 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 Deli", 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 Jombang", 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 Jombang", 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
9028dal", 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 Manado", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Manado", 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 Mojokerto", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Manado", 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 Situs 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 Manado", 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 pekanbaru", 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 pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga pekanbaru", 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 Pamelang", 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 Purwakarta", 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 Sorong", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Sorong", 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 Sorong", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Sorong", 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 Banten", 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 pekanbarusserie", 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-
9028hampers", 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
9028o-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 Banten", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Situs Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Banten 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 Banjarnegara", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Boyolali", 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 Boyolali", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Boyolali", 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 Boyolali", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
9028,{ 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 Banjarnegara", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Banjarnegara", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Banten", 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 Banten", 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 Banjarnegara", 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 Denpasar", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Deli", 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 Jombang", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Manado", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sorong", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
9028,{ label: "Papan Bunga Congratulations Sorong", 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 Sorong", 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 Denpasar", 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 Deli", 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 Banten", 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 Banjarnegara", 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 Denpasar", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Deli", 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 Jombang", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Manado", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sorong", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sorong", 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 Sorong", 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: " " }
9028,{ 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 Jombang", 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 Jombang", 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: " " }
9028,{ 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 Manado", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Manado", 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 Mojokerto", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Manado", 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 Manado", 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 pekanbaru", 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 pekanbaru", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga pekanbaru", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga pekanbaru", 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: " " }
9028,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Banten", 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 Banjarnegara", 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 Denpasar", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Deli", 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 Jombang", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Manado", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sorong", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sorong", 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 Sorong", 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 Pamelang", 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 Purwakarta", 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: " " }
9028,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Banten", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Manado", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Sorong", 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 Sorong", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Sorong", 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: " " }
9028,{ 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 Sorong", 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 Banten", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Sorong", 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 Sorong", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Banten", 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 Banten", 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 Sorong", 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 Banten", 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 Manado", 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: " " }
9028,{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Banten", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Denpasar", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Jombang", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Sorong", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Sorong", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Situs PERMATA123 semakin memudahkan akses pengguna lewat link alternatif stabil 24 jam. Login dengan sistem keamanan terbaik dan terpercaya tahun 2026. Yogyakarta", category: "Collection", url: "/collections/standing-flower-Yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Situs Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Banten Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarnegara", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Boyolali", 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 Boyolali", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Boyolali", 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 Banjarnegara", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Banjarnegara", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Banten", 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: " " }
9028,{ 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: " " },{ 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 Denpasar", 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 Deli", 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 Jombang", 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 Jombang", 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 Sorong", 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 Sorong", 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
9028dal", 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 Manado", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Manado", 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 Mojokerto", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Manado", 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 Manado", 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 pekanbaru", 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 pekanbaru", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga pekanbaru", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga pekanbaru", 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: " " }, 9029 { 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" }
9029,{ 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" }
9029,{ 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" } 9030 ]; 9031 9032 9033 $( ".header-input-search" ).catcomplete({ 9034 appendTo: ".searchResult",source: function(request, response) { 9035 var results = $.ui.autocomplete.filter(data, request.term); 9036 var predicate = function () { 9037 var counter = { Collection: 0, Produk: 0 }; 9038 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 9039 return fn 9040 }(); 9041 response(results.filter(predicate)); 9042 }, 9043 minLength:1, 9044 //results are clickable 9045 select: function( event, ui ) {window.location = ui.item.url;} 9046 }); 9047 $( ".header-input-search2" ).catcomplete({ 9048 appendTo: ".searchResult2", 9049 source: function(request, response) { 9050 var results = $.ui.autocomplete.filter(data, request.term); 9051 var predicate = function () { 9052 var counter = { Collection: 0, Produk: 0 }; 9053 var fn = function(item) { 9054 counter[item.category] += 1; 9055 return (counter[item.category] <= 5); 9056 } 9057 return fn 9058 }(); 9059 response(results.filter(predicate)); 9060 }, 9061 minLength:1, 9062 //results are clickable 9063 select: function( event, ui ) { 9064 window.location = ui.item.url; 9065 } 9066 }); 9067 }); 9068 </script>
9068 9069 9070
9070<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
9070 9071
9071<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
9071 9072 9073
9073<script> 9074 ( function() { 9075 var youtube = document.querySelectorAll( ".youtube" ); 9076 for (var i = 0; i < youtube.length; i++) { 9077 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 9078 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 9079 var image = new Image(); 9080 image.src = source; 9081 image.setAttribute("data-src", datasource); 9082 image.classList.add("swiper-lazy"); 9083 image.addEventListener( "load", function() { 9084 youtube[ i ].appendChild( image ); 9085 }( i ) ); 9086 youtube[i].addEventListener( "click", function() { 9087 var iframe = document.createElement( "iframe" ); 9088 iframe.setAttribute( "width", "480" ); 9089 iframe.setAttribute( "height", "480" ); 9090 iframe.setAttribute( "frameborder", "0" ); 9091 iframe.setAttribute( "allowfullscreen", "" ); 9092 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 9093 this.innerHTML = ""; 9094 this.appendChild( iframe ); 9095 } ); 9096 }; 9097 9098 } )(); 9099 9100 /* Lazy Load */ 9101 const mainLazyLoad = new LazyLoad({threshold:400}); 9102 $(document).ready(function(){ 9103 9104 $("selectxxx").addClass("needsclick"); 9105 FastClick.attach(document.body); 9106 9107 var $customSelects = $('.select-search'); 9108 $customSelects.select2({ 9109 templateResult: function(result, container) { 9110 if (!result.id) { 9111 return result.text; 9112 } 9113 container.className += ' needsclick'; 9114 return result.text; 9115 } 9116 }); 9117 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 9118 $(document).on('select2:open', () => { 9119 document.querySelector('.select2-search__field').focus(); 9120 }); 9121 9122 9123 $(".overlay").click(function(){ 9124 $(".js-drawer-close").click(); 9125 }); 9126 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 9127 $("html").toggleClass("nav_open"); 9128 }); 9129 9130 $('.swatch-element label').on('click', function(){ 9131 var srcImg = $(this).data('src'); 9132 $('#thumb-image-product .product-single__thumbnail').each(function(){ 9133 if ($(this).attr("href") == srcImg) { 9134 $(this).trigger('click'); 9135 } 9136 }); 9137 }); 9138 var defaultValue = $(".swatch input:checked").val() 9139 9140 $('#purchaseProduct .swatch [type=radio]').change(function() { 9141 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 9142 var optionValue = $(this).val(); 9143 console.log(optionIndex, optionValue) 9144 var value = parseInt(optionValue.split(' ')[0]) 9145 $(this) 9146 .closest('#purchaseProduct') 9147 .find('.single-option-selector') 9148 .eq(optionIndex) 9149 .val(optionValue) 9150 .trigger('change'); 9151 9152 }); 9153 9154 }); 9155 $(document).ready(function(){ 9156 $(".nav-search a").click(function(e){ 9157 e.preventDefault(); 9158 $(".icon-navsearch").toggle(); 9159 $(".icon-navclose").toggle(); 9160 $(".site-nav__item > .site-nav__link").toggle(); 9161 $(".open-search").toggle(); 9162 $(".open-search input").focus(); 9163 }); 9164 $(".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'>"); 9165 if ($(window).width() < 768) { 9166 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9167 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9168 $(".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'>"); 9169 } else { 9170 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9171 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9172 $(".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'>"); 9173 } 9174 $(".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'>"); 9175 $(".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'>"); 9176 }); 9177 </script>
9177 9178 9179 9180 9181 9182 9183 9184 9185
9185<script type="text/javascript"> 9186 var wishlistpage = 0; 9187 9188 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 9189 </script>
9189 9190 9191 <!-- Remove duplicate wishlist.js reference --> 9192 <style> 9193 .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)}} 9194 </style> 9195 9196 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 9197 <div class="modal-dialog" role="document"> 9198 <div class="modal-content"> 9199 <div class="modal-body">Your Wishlist is empty!</div> 9200 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 9201 </div> 9202 </div> 9203 </div> 9204 9205 <div class="wishlist-model"> 9206 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 9207 <div class="modal-dialog white-modal"> 9208 <div class="modal-content"> 9209 <div class="modal-header"> 9210 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 9211 <svg class="icon icon-close" version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="32" height="32" viewBox="0 0 32 32"> 9212 <title>icon-close</title> 9213 <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> 9214 </svg> 9215 </button> 9216 </div> 9217 <div class="modal-body"> 9218 <div class="wishlist-left"> 9219 <div class="wishlist-note">
9220 <span class="cirle"><svg version="1.1" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="32" height="32" viewBox="0 0 32 32"> 9221 <title>icon-check</title> 9222 <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> 9223 </svg></span> 9224 Product added to <a href="/pages/wish-list">Wishlist</a> 9225 </div> 9226 <div class="wishlist-product"> 9227 <div class="product-left"> 9228 <div class="wishlist-image"></div> 9229 </div> 9230 <div class="product-right"> 9231 <div class="wishlist-name"></div> 9232 <div class="wishlist-price"></div> 9233 </div> 9234 </div> 9235 </div> 9236 <div class="wishlist-right"> 9237 <div class="wishlist-cart"> 9238 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 9239 <div class="others-bottom"> 9240 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 9241 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 9242 <span id="AddToCartText" class="">Beli Sekarang</span> 9243 </button> 9244 </div> 9245 <div id="wishlist-variants-container" class="variants-wrapper"></div> 9246 <div class="quantity-content"> 9247 <label>QTY</label> 9248 <input type="number" size="5" class="" name="quantity" value="1" /> 9249 </div> 9250 </form> 9251 </div> 9252 </div> 9253 </div> 9254 </div> 9255 </div> 9256 </div> 9257 </div> 9258 9259 9260 <style> 9261 .stamped-badge[data-rating="0.0"]{display: none !Important;} 9262 9263 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 9264 border-radius: 0px; 9265 } 9266 .stamped-review-body { 9267 padding-left: 0px !important; 9268 } 9269 #product-reviews .stamped-header:after { 9270 display:none !Important; 9271 } 9272 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 9273 font-family:inherit !important; 9274 } 9275 </style> 9276 9277 9278 9279 <div id='stamped-rewards-init' class='stamped-rewards-init' 9280 data-key-public='' 9281 9282 ></div> 9283 9284
9284<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
9284 9285 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 9286
9286<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
9286 9287 9288
9288<script> 9289 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 9290 </script>
9290 9291
9291<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
9291<style> 9292 .jss59 { 9293 background-color: rgba(0, 0, 0, 0.6); 9294 } 9295 .MuiBackdrop-root { 9296 top: 0; 9297 left: 0; 9298 right: 0; 9299 bottom: 0; 9300 display: flex; 9301 z-index: -1; 9302 position: fixed; 9303 align-items: center; 9304 justify-content: center; 9305 background-color: rgba(0, 0, 0, 0.5); 9306 -webkit-tap-highlight-color: transparent; 9307 } 9308 .MuiDialog-scrollPaper { 9309 display: flex; 9310 align-items: center; 9311 justify-content: center; 9312 } 9313 .MuiDialog-container { 9314 height: 100%; 9315 outline: 0; 9316 } 9317 .MuiPaper-elevation24 { 9318 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); 9319 } 9320 .MuiDialog-paper { 9321 margin: 32px; 9322 position: relative; 9323 overflow-y: auto; 9324 } 9325 .MuiDialog-paperScrollPaper { 9326 display: flex; 9327 max-height: calc(100% - 64px); 9328 flex-direction: column; 9329 } 9330 .MuiDialog-paperWidthSm { 9331 max-width: 600px; 9332 } 9333 #location-lock-dialog { 9334 top: 20%; 9335 left: 0; 9336 right: 0; 9337 width: 30%; 9338 margin: 0px auto; 9339 display: block; 9340 padding: 30px; 9341 z-index: 99999; 9342 position: fixed; 9343 font-size: 14px; 9344 background: rgb(0, 0, 0); 9345 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 9346 text-align: center; 9347 font-family: Roboto, Arial, sans-serif; 9348 line-height: 1; 9349 border-radius: 8px; 9350 -webkit-font-smoothing: subpixel-antialiased; 9351 } 9352 .MuiButtonBase-root { 9353 color: inherit; 9354 border: 0; 9355 cursor: pointer; 9356 margin: 0; 9357 display: inline-flex; 9358 outline: 0; 9359 padding: 0; 9360 position: relative; 9361 align-items: center; 9362 user-select: none; 9363 border-radius: 0; 9364 vertical-align: middle; 9365 -moz-appearance: none; 9366 justify-content: center; 9367 text-decoration: none; 9368 background-color: transparent; 9369 -webkit-appearance: none; 9370 -webkit-tap-highlight-color: transparent; 9371 } 9372 .MuiIconButton-root { 9373 flex: 0 0 auto; 9374 color: rgba(0, 0, 0, 0.54); 9375 padding: 12px; 9376 overflow: visible; 9377 font-size: 1.5rem; 9378 text-align: center; 9379 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9380 border-radius: 50%; 9381 } 9382 .MuiIconButton-label { 9383 width: 100%; 9384 display: flex; 9385 align-items: inherit; 9386 justify-content: inherit; 9387 } 9388 .MuiSvgIcon-root { 9389 fill: currentColor; 9390 width: 1em; 9391 height: 1em; 9392 display: inline-block; 9393 font-size: 1.5rem; 9394 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9395 flex-shrink: 0; 9396 user-select: none; 9397 } 9398 .MuiTouchRipple-root { 9399 top: 0; 9400 left: 0; 9401 right: 0; 9402 bottom: 0; 9403 z-index: 0; 9404 overflow: hidden; 9405 position: absolute; 9406 border-radius: inherit; 9407 pointer-events: none; 9408 } 9409 .jss36 { 9410 color: #222222; 9411 font-size: 24px; 9412 font-family: Roboto, Arial, sans-serif; 9413 font-weight: 500; 9414 } 9415 .jss37 { 9416 color: #555555; 9417 padding: 10px 0px 0px; 9418 font-size: 14px; 9419 } 9420 .MuiFormGroup-root { 9421 display: flex; 9422 flex-wrap: wrap; 9423 flex-direction: column; 9424 } 9425 .MuiFormGroup-row { 9426 flex-direction: row; 9427 } 9428 .jss63 { 9429 width: 85%; 9430 margin: 15px auto; 9431 display: flex; 9432 padding: 11px 0px 0px; 9433 justify-content: space-evenly; 9434 } 9435 .MuiFormControlLabel-root { 9436 cursor: pointer; 9437 display: inline-flex; 9438 align-items: center; 9439 margin-left: -11px; 9440 margin-right: 16px; 9441 vertical-align: middle; 9442 -webkit-tap-highlight-color: transparent; 9443 } 9444 .jss70 { 9445 margin: 0; 9446 } 9447 .MuiButtonBase-root { 9448 color: inherit; 9449 border: 0; 9450 cursor: pointer; 9451 margin: 0; 9452 display: inline-flex; 9453 outline: 0; 9454 padding: 0; 9455 position: relative; 9456 align-items: center; 9457 user-select: none; 9458 border-radius: 0; 9459 vertical-align: middle; 9460 -moz-appearance: none; 9461 justify-content: center; 9462 text-decoration: none; 9463 background-color: transparent; 9464 -webkit-appearance: none; 9465 -webkit-tap-highlight-color: transparent; 9466 } 9467 .MuiIconButton-root { 9468 flex: 0 0 auto; 9469 color: rgba(0, 0, 0, 0.54); 9470 padding: 12px; 9471 overflow: visible; 9472 font-size: 1.5rem; 9473 text-align: center; 9474 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9475 border-radius: 50%; 9476 } 9477 .MuiIconButton-colorSecondary { 9478 color: #f50057; 9479 } 9480 .jss71 { 9481 padding: 9px; 9482 } 9483 .MuiRadio-root { 9484 color: rgba(0, 0, 0, 0.54); 9485 } 9486 .jss64 { 9487 padding: 2px; 9488 } 9489 .MuiRadio-colorSecondary.Mui-checked { 9490 color: #f50057; 9491 } 9492 .MuiIconButton-label { 9493 width: 100%; 9494 display: flex; 9495 align-items: inherit; 9496 justify-content: inherit; 9497 } 9498 .MuiTypography-root { 9499 margin: 0; 9500 } 9501 .MuiTypography-body1 { 9502 font-size: 18px; 9503 font-family: Roboto,sans-serif; 9504 font-weight: 400; 9505 line-height: 1.5; 9506 } 9507 .location-popup_area-block__sp9Ws { 9508 display: -moz-box; 9509 display: flex; 9510 -moz-box-orient: vertical; 9511 -moz-box-direction: normal; 9512 flex-direction: column; 9513 -moz-box-pack: center; 9514 justify-content: center; 9515 position: relative; 9516 margin: 10px 10% 0;
9517 } 9518 .location-popup_pin-search-box__3l5mJ { 9519 width: 100%; 9520 display: -moz-box; 9521 display: flex; 9522 -moz-box-align: center; 9523 align-items: center; 9524 } 9525 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 9526 position: absolute; 9527 z-index: 999; 9528 } 9529 .location-popup_place-icon__jSG0Q { 9530 color: #ffffff; 9531 padding-left: 8px; 9532 } 9533 .location-popup_place-icon__jSG0Q svg { 9534 width: 18px; 9535 height: 18px; 9536 } 9537 .location-popup_cancel-icon__FHujU { 9538 color: #fff; 9539 right: 10px; 9540 width: 16px; 9541 cursor: pointer; 9542 height: 16px; 9543 display: none; 9544 padding: 5px; 9545 position: absolute; 9546 background: #999; 9547 text-align: center; 9548 border-radius: 50%; 9549 } 9550 .location-popup_pin-search-box__3l5mJ>div>select { 9551 /* -webkit-box-shadow: 0 0 10px #ffffff; 9552 box-shadow: 0 0 10px #ffffff; */ 9553 text-transform: capitalize; 9554 border: 1px solid #ffffff; 9555 color: #ffffff; 9556 width: 100%; 9557 margin: 0; 9558 display: -moz-box; 9559 display: flex; 9560 padding: 0 30px; 9561 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9562 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9563 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9564 font-size: 16px; 9565 border-radius: 4px; 9566 height: 44px; 9567 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 9568 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 9569 } 9570 .MuiButtonBase-root { 9571 color: inherit; 9572 border: 0; 9573 cursor: pointer; 9574 margin: 0; 9575 display: inline-flex; 9576 outline: 0; 9577 padding: 0; 9578 position: relative; 9579 align-items: center; 9580 user-select: none; 9581 border-radius: 0; 9582 vertical-align: middle; 9583 -moz-appearance: none; 9584 justify-content: center; 9585 text-decoration: none; 9586 background-color: transparent; 9587 -webkit-appearance: none; 9588 -webkit-tap-highlight-color: transparent; 9589 } 9590 .MuiButton-root { 9591 color: rgba(0, 0, 0, 0.87); 9592 padding: 6px 16px; 9593 font-size: 0.875rem; 9594 min-width: 64px; 9595 box-sizing: border-box; 9596 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; 9597 font-family: Roboto,sans-serif; 9598 font-weight: 500; 9599 line-height: 1.75; 9600 border-radius: 4px; 9601 text-transform: uppercase; 9602 } 9603 .MuiButton-contained { 9604 color: rgba(0, 0, 0, 0.87); 9605 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); 9606 background-color: #e0e0e0; 9607 } 9608 .MuiButtonBase-root.Mui-disabled { 9609 cursor: default; 9610 pointer-events: none; 9611 } 9612 .MuiButton-label { 9613 width: 100%; 9614 display: inherit; 9615 align-items: inherit; 9616 justify-content: inherit; 9617 } 9618 .cartButton_login_content__2j1f7 { 9619 display: -moz-box; 9620 display: flex; 9621 text-align: center; 9622 z-index: 9; 9623 font-size: 18px; 9624 font-weight: 500; 9625 color: #fff; 9626 } 9627 9628 .jss35 { 9629 top: 5px; 9630 right: 5px; 9631 padding: 4px; 9632 position: absolute; 9633 border-radius: 50%; 9634 } 9635 .jss67 { 9636 cursor: pointer; 9637 font-size: 15px; 9638 line-height: 1.3; 9639 padding-left: 5px; 9640 } 9641 .jss69 { 9642 color: #222222; 9643 } 9644 .jss80 { 9645 color: #fff; 9646 width: 100%; 9647 height: 52px; 9648 padding: 11px 16px; 9649 font-size: 18px; 9650 min-width: 88px; 9651 min-height: 36px; 9652 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; 9653 font-weight: 500; 9654 line-weight: 1em; 9655 border-radius: 4px; 9656 text-transform: uppercase; 9657 background-color: #E87325; 9658 } 9659 @media (min-width: 991px){ 9660 .cartButton_login_content__2j1f7 { 9661 font-weight: 500; 9662 } 9663 } 9664 9665 @media (max-width: 992px) { 9666 #location-lock-dialog { 9667 width: 100%; 9668 top: auto; 9669 bottom: 0; 9670 padding-left: 0; 9671 padding-right: 0; 9672 } 9673 .MuiFormGroup-row { 9674 display: block 9675 } 9676 .MuiIconButton-label input { 9677 margin: 0; 9678 } 9679 } 9680 </style> 9681 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 9682 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 9683 <div tabindex="0" data-test="sentinelStart"></div> 9684 <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;"> 9685 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 9686 <div class="jss31 undefined" id="location-lock-dialog"> 9687 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
9688 <span class="MuiIconButton-label"> 9689 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 9690 <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> 9691 </svg> 9692 </span> 9693 <span class="MuiTouchRipple-root"></span> 9694 </button> 9695 <div> 9696 <div class="jss36">Select Delivery Location</div> 9697 <div class="jss37">Select a delivery location to see product availability</div> 9698 </div> 9699 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 9700 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 9701 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 9702 <span class="MuiIconButton-label"> 9703 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 9704 <span class="jss41"></span> 9705 </span> 9706 <span class="MuiTouchRipple-root"></span> 9707 </span> 9708 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 9709 <span class="jss67 jss69">Jabodetabek</span> 9710 </span> 9711 </label> 9712 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 9713 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 9714 <span class="MuiIconButton-label"> 9715 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 9716 <span class="jss40"></span> 9717 </span> 9718 <span class="MuiTouchRipple-root"></span> 9719 </span> 9720 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 9721 <span class="jss67 jss68">Outside Jabodetabek</span> 9722 </span> 9723 </label> 9724 </div> 9725 <div> 9726 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 9727 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 9728 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 9729 <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> 9730 </div> 9731 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 9732 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 9733 </div> 9734 <div style="width: 100%;"> 9735 <select id="choose-location" class="form-control"> 9736 <option value="">Choose Location</option> 9737 <option value="jakarta">Jakarta</option> 9738 <option value="bogor">Banjarnegara</option> 9739 <option value="depok">Deli</option> 9740 <option value="tangerang">Tangerang</option> 9741 <option value="bekasi">Bekasi</option> 9742 </select> 9743 </div> 9744 </div> 9745 </div> 9746 </div> 9747 <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=""> 9748 <span class="MuiButton-label">
9749 <span class=""></span> 9750 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 9751 </span> 9752 </button> 9753 </div> 9754 </div> 9755 </div> 9756 <div tabindex="0" data-test="sentinelEnd"></div> 9757 </div> 9758 9759
9759<script> 9760 const jabodetabek = [ 9761 { 9762 "code": "jakarta", 9763 "city": "jakarta", 9764 "zip": [] 9765 }, 9766 { 9767 "code": "bogor", 9768 "city": "bogor", 9769 "zip": [] 9770 }, 9771 { 9772 "code": "depok", 9773 "city": "depok", 9774 "zip": [] 9775 }, 9776 { 9777 "code": "tangerang", 9778 "city": "tangerang", 9779 "zip": [] 9780 }, 9781 { 9782 "code": "bekasi", 9783 "city": "bekasi", 9784 "zip": [] 9785 } 9786 ] 9787 let cityNonJabodetabek = [ 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 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 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 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 10958 10959 10960 10961 "pengiriman_aceh", 10962 10963 10964 10965 10966 10967 "pengiriman_ambon", 10968 10969 10970 10971 10972 10973 "pengiriman_atambua", 10974 10975 10976 10977 10978 10979 "pengiriman_badung", 10980 10981 10982 10983 10984 10985 "pengiriman_bali", 10986 10987 10988 10989 10990 10991 "pengiriman_balikpapan", 10992 10993 10994 10995 10996 10997 "pengiriman_bandar lampung", 10998 10999 11000 11001 11002 11003 "pengiriman_bandung", 11004 11005 11006 11007 11008 11009 "pengiriman_bandung barat", 11010 11011 11012 11013 11014 11015 "pengiriman_banjarmasin", 11016 11017 11018 11019 11020 11021 "pengiriman_banyumas", 11022 11023 11024 11025 11026 11027 "pengiriman_banyuwangi", 11028 11029 11030 11031 11032 11033 "pengiriman_batam", 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 "pengiriman_biak", 11044 11045 11046 11047 11048 11049 "pengiriman_binjai", 11050 11051 11052 11053 11054 11055 "pengiriman_blitar",
11056 11057 11058 11059 11060 11061 "pengiriman_blora", 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 "pengiriman_bojonegoro", 11072 11073 11074 11075 11076 11077 "pengiriman_boyolali", 11078 11079 11080 11081 11082 11083 "pengiriman_bukittinggi", 11084 11085 11086 11087 11088 11089 "pengiriman_buleleng", 11090 11091 11092 11093 11094 11095 "pengiriman_ciamis", 11096 11097 11098 11099 11100 11101 "pengiriman_cianjur", 11102 11103 11104 11105 11106 11107 "pengiriman_cibinong", 11108 11109 11110 11111 11112 11113 "pengiriman_cikarang", 11114 11115 11116 11117 11118 11119 "pengiriman_cikupa", 11120 11121 11122 11123 11124 11125 "pengiriman_cilacap", 11126 11127 11128 11129 11130 11131 "pengiriman_cileunyi", 11132 11133 11134 11135 11136 11137 "pengiriman_cimahi", 11138 11139 11140 11141 11142 11143 "pengiriman_cirebon", 11144 11145 11146 11147 11148 11149 "pengiriman_ciwidey", 11150 11151 11152 11153 11154 11155 "pengiriman_deli serdang", 11156 11157 11158 11159 11160 11161 "pengiriman_demak", 11162 11163 11164 11165 11166 11167 "pengiriman_denpasar", 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 "pengiriman_garut", 11178 11179 11180 11181 11182 11183 "pengiriman_gianyar", 11184 11185 11186 11187 11188 11189 "pengiriman_gresik", 11190 11191 11192 11193 11194 11195 "pengiriman_gunung kidul", 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 "pengiriman_jambi", 11206 11207 11208 11209 11210 11211 "pengiriman_jayapura", 11212 11213 11214 11215 11216 11217 "pengiriman_jember", 11218 11219 11220 11221 11222 11223 "pengiriman_jepara", 11224 11225 11226 11227 11228 11229 "pengiriman_jombang", 11230 11231 11232 11233 11234 11235 "pengiriman_karanganyar", 11236 11237 11238 11239 11240 11241 "pengiriman_karawang", 11242 11243 11244 11245 11246 11247 "pengiriman_karo", 11248 11249 11250 11251 11252 11253 "pengiriman_kebumen", 11254 11255 11256 11257 11258 11259 "pengiriman_kediri", 11260 11261 11262 11263 11264 11265 "pengiriman_keerom", 11266 11267 11268 11269 11270 11271 "pengiriman_kendal", 11272 11273 11274 11275 11276 11277 "pengiriman_klaten", 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 "pengiriman_kudus", 11288 11289 11290 11291 11292 11293 "pengiriman_kupang", 11294 11295 11296 11297 11298 11299 "pengiriman_lainnya", 11300 11301 11302 11303 11304 11305 "pengiriman_lamongan", 11306 11307 11308 11309 11310 11311 "pengiriman_lampung", 11312 11313 11314 11315 11316 11317 "pengiriman_lampung barat", 11318 11319 11320 11321 11322 11323 "pengiriman_lembang", 11324 11325 11326 11327 11328 11329 "pengiriman_lombok", 11330 11331 11332 11333 11334 11335 "pengiriman_lumajang", 11336 11337 11338 11339 11340 11341 "pengiriman_madiun", 11342 11343 11344 11345 11346 11347 "pengiriman_magelang", 11348 11349 11350 11351 11352 11353 "pengiriman_majalengka", 11354 11355 11356 11357 11358 11359 "pengiriman_makassar", 11360 11361 11362 11363 11364 11365 "pengiriman_malang", 11366 11367 11368 11369 11370 11371 "pengiriman_manado", 11372 11373 11374 11375 11376 11377 "pengiriman_medan", 11378 11379 11380 11381 11382 11383 "pengiriman_mengwi", 11384 11385 11386 11387 11388 11389 "pengiriman_mojokerto", 11390 11391 11392 11393 11394 11395 "pengiriman_nganjuk", 11396 11397 11398 11399 11400 11401 "pengiriman_ngawi", 11402 11403 11404 11405 11406 11407 "pengiriman_padang", 11408 11409 11410 11411 11412 11413 "pengiriman_palembang", 11414 11415 11416 11417 11418 11419 "pengiriman_pasuruan", 11420 11421 11422 11423 11424 11425 "pengiriman_pati", 11426 11427 11428 11429 11430 11431 "pengiriman_pekalongan", 11432 11433 11434 11435 11436 11437 "pengiriman_pekanbaru", 11438 11439 11440 11441 11442 11443 "pengiriman_pemalang", 11444 11445 11446 11447 11448 11449 "pengiriman_ponorogo", 11450 11451 11452 11453 11454 11455 "pengiriman_pontianak", 11456 11457 11458 11459 11460 11461 "pengiriman_probolinggo", 11462 11463 11464 11465 11466 11467 "pengiriman_purbalingga", 11468 11469 11470 11471 11472 11473 "pengiriman_purwakarta", 11474 11475 11476 11477 11478 11479 "pengiriman_purwokerto", 11480 11481 11482 11483 11484 11485 "pengiriman_rembang", 11486 11487 11488 11489 11490 11491 "pengiriman_riau", 11492 11493 11494 11495 11496 11497 "pengiriman_salatiga", 11498 11499 11500 11501 11502 11503 "pengiriman_samarinda", 11504 11505 11506 11507 11508 11509 "pengiriman_semarang", 11510 11511 11512 11513 11514 11515 "pengiriman_sentani", 11516 11517 11518 11519 11520 11521 "pengiriman_serang", 11522 11523 11524 11525 11526 11527 "pengiriman_sidoarjo", 11528 11529 11530 11531 11532 11533 "pengiriman_singkawang", 11534 11535 11536 11537 11538 11539 "pengiriman_sragen", 11540 11541 11542 11543 11544 11545 "pengiriman_subang", 11546 11547 11548 11549 11550 11551 "pengiriman_sukabumi", 11552 11553 11554 11555 11556 11557 "pengiriman_sumbawa", 11558 11559 11560 11561 11562 11563 "pengiriman_surabaya", 11564 11565 11566 11567 11568 11569 "pengiriman_surakarta solo", 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 "pengiriman_tasikmalaya", 11580 11581 11582 11583 11584 11585 "pengiriman_tegal", 11586 11587 11588 11589 11590 11591 "pengiriman_timika", 11592 11593 11594 11595 11596 11597 "pengiriman_wamena", 11598 11599 11600 11601 11602 11603 "pengiriman_wiyung", 11604 11605 11606 11607 11608 11609 "pengiriman_wonokromo", 11610 11611 11612 11613 11614 11615 "pengiriman_Yogyakarta", 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 ] 12226 console.log(cityNonJabodetabek) 12227 let non_jabodetabek = [] 12228 for(var i=0;i<cityNonJabodetabek.length;i++) { 12229 const obj = { 12230 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 12231 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 12232 "zip": [] 12233 } 12234 non_jabodetabek.push(obj) 12235 } 12236 let current_location = getCookie("location_delivery") 12237 $("[name=location]").change(function(){ 12238 let v = $(this).val() 12239 let option = [] 12240 if(v == 'Jabodetabek') { 12241 for(var i=0;i<jabodetabek.length;i++) { 12242 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 12243 option.push(jabodetabekHtml) 12244 } 12245 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 12246 } else { 12247 for(var i=0;i<non_jabodetabek.length;i++) { 12248 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 12249 option.push(nonjabodetabekHtml) 12250 } 12251 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 12252 } 12253 }) 12254 12255 $("#location-lock-submit").click(function(e){
12256 let select = $("#choose-location") 12257 let value = select.val().toLowerCase() 12258 console.log(value) 12259 if(select.val() == "") { 12260 return alert("Choose Your Location") 12261 e.preventDefault() 12262 } 12263 setCookie("location_delivery",value,1000000); 12264 12265 location.reload(); 12266 12267 }) 12268 12269 $("#close-popup-delivery").click(function(){ 12270 $(".MuiDialog-root").hide() 12271 if(!current_location){ 12272 setCookie("location_delivery","jakarta",1000000); 12273 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 12274 } 12275 }) 12276 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 12277 $(".MuiDialog-root").show() 12278 }) 12279 12280 12281 if(!current_location){ 12282 12283 } else { 12284 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 12285 console.log(current_location) 12286 $("#choose-location").each(function(){ 12287 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 12288 $("#jabodetabek").trigger("click") 12289 } else { 12290 $("#non-jabodetabek").trigger("click") 12291 } 12292 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 12293 }) 12294 } 12295 12296 // 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'){ 12297 // $("#timeMalam").attr("disabled", false) 12298 // } else { 12299 // $("#timeMalam").attr("disabled", true) 12300 // } 12301 12302 if(current_location && current_location != 'jakarta') { 12303 $("#self-pickup").attr("disabled", true) 12304 } 12305 12306 function setCookie(name,value,days) { 12307 var expires = ""; 12308 if (days) { 12309 var date = new Date(); 12310 date.setTime(date.getTime() + (days*24*60*60*1000)); 12311 expires = "; expires=" + date.toUTCString(); 12312 } 12313 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 12314 } 12315 function getCookie(name) { 12316 var nameEQ = name + "="; 12317 var ca = document.cookie.split(';'); 12318 for(var i=0;i < ca.length;i++) { 12319 var c = ca[i]; 12320 while (c.charAt(0)==' ') c = c.substring(1,c.length); 12321 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 12322 } 12323 return null; 12324 } 12325 </script>
12325 12326 <!-- One Tap --> 12327
12327<script> 12328 console.log("Outerbloom..."); 12329 </script>
12329 12330 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 12378
12378<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
12378 12379
12379<script> 12380 const widgetConfig = { 12381 id: "clz7897za002cz7otleaz0d3d", 12382 showQuickResponse: false, 12383 quickResponsesData: [], 12384 themeColor: "#ffffff", 12385 widgetText: "", 12386 radiusType: "circle", 12387 widgetIconType: "whatsapp", 12388 position: "right", 12389 storeLogo: "", 12390 storeName: "Outerbloom", 12391 storeDescription: "", 12392 size: "small", 12393 showCard: false, 12394 widgetColorType: "solid", 12395 widgetColor1: "#008069", 12396 widgetColor2: "#008069", 12397 social: { 12398 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 12399 values: { 12400 instagram: { 12401 enabled: false, 12402 value: "", 12403 }, 12404 facebook: { 12405 enabled: false, 12406 value: "", 12407 }, 12408 email: { 12409 enabled: false, 12410 value: "", 12411 }, 12412 x: { 12413 enabled: false, 12414 value: "", 12415 }, 12416 tiktok: { 12417 enabled: false, 12418 value: "", 12419 }, 12420 linkedin: { 12421 enabled: false, 12422 value: "", 12423 }, 12424 youtube: { 12425 enabled: false, 12426 value: "", 12427 }, 12428 }, 12429 }, 12430 }; 12431 12432 function initializeWidget() { 12433 if (typeof BBBWidget !== 'undefined') { 12434 BBBWidget.init(widgetConfig); 12435 } else { 12436 setTimeout(initializeWidget, 100); 12437 } 12438 } 12439 12440 initializeWidget();</script>
12440 12441 12442 12443 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 12444 12445 12446 <div style="position: fixed; bottom: 0; right: 0"></div> 12447 12448
12448<script> 12449 console.info("bitlogin extension version: v2.5.7"); 12450 12451 const googleScript = document.createElement("script"); 12452 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 12453 document.head.append(googleScript); 12454 12455 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 12456 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 12457 12458 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"}}; 12459 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
12459n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 12460 const redirectUrl = appearance.redirectLink; 12461 12462 let locationCacheSet = false; 12463 let errorLocation = false; 12464 let oneTapSet = false; 12465 12466 let bitloginCache = { 12467 appearance: appearance, 12468 config: config 12469 }; 12470 12471 let isInitializing = false; 12472 const queue = []; 12473 12474 // Add CSS for the popup 12475 const popupStyles = document.createElement('style'); 12476 popupStyles.textContent = ` 12477 /* Styles for login popup */ 12478 .bitlogin-popup-overlay { 12479 position: fixed; 12480 top: 0; 12481 left: 0; 12482 width: 100%; 12483 height: 100%; 12484 background: rgba(0, 0, 0, 0.45); 12485 backdrop-filter: blur(4px); 12486 display: flex; 12487 align-items: center; 12488 justify-content: center; 12489 opacity: 0; 12490 transition: opacity 0.3s ease-in-out; 12491 z-index: 999999; 12492 } 12493 12494 .bitlogin-popup-overlay.visible { 12495 opacity: 1; 12496 } 12497 12498 .bitlogin-popup { 12499 background: #FFFFFF; 12500 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 12501 border-radius: 16px; 12502 width: 100%; 12503 max-width: 560px; 12504 display: flex; 12505 overflow: hidden; 12506 position: relative; 12507 opacity: 0; 12508 transform: translateY(20px) scale(0.98); 12509 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 12510 } 12511 12512 .bitlogin-popup.visible { 12513 opacity: 1; 12514 transform: translateY(0) scale(1); 12515 } 12516 12517 .bitlogin-popup-with-image { 12518 max-width: 640px; 12519 } 12520 12521 .bitlogin-popup-right-image { 12522 flex-direction: row-reverse; 12523 } 12524 12525 .bitlogin-popup-image { 12526 object-fit: cover; 12527 width: 50%; 12528 height: auto; 12529 } 12530 12531 .bitlogin-popup-content { 12532 padding: 32px; 12533 position: relative; 12534 width: 50%; 12535 } 12536 12537 .bitlogin-popup-close { 12538 position: absolute; 12539 top: 16px; 12540 right: 16px; 12541 background: white; 12542 border: none; 12543 width: 30px; 12544 height: 30px; 12545 display: flex; 12546 align-items: center; 12547 justify-content: center; 12548 cursor: pointer; 12549 transition: background-color 0.2s; 12550 color: inherit; 12551 padding: 0; 12552 } 12553 12554 .bitlogin-popup-close:hover { 12555 background-color: #e5e5e5; 12556 } 12557 12558 .bitlogin-popup-buttons { 12559 display: flex; 12560 flex-direction: column; 12561 gap: 12px; 12562 margin-top: 24px; 12563 } 12564 12565 /* Button styles within popup - override width for popup buttons */ 12566 .bitlogin-popup-buttons #google-login, 12567 .bitlogin-popup-buttons #facebook-login, 12568 .bitlogin-popup-buttons #apple-login, 12569 .bitlogin-popup-buttons #whatsapp-login, 12570 .bitlogin-popup-buttons #microsoft-login, 12571 .bitlogin-popup-buttons #twitter-login, 12572 .bitlogin-popup-buttons #amazon-login, 12573 .bitlogin-popup-buttons #instagram-login, 12574 .bitlogin-popup-buttons #magic-link-login, 12575 .bitlogin-popup-buttons #mobile-app-login { 12576 width: 100% !important; 12577 font-family: inherit !important; 12578 } 12579 12580 .bitlogin-popup-footer { 12581 margin-top: 32px; 12582 text-align: center; 12583 font-size: 14px; 12584 opacity: 0.6; 12585 } 12586 12587 /* Modern Typography */ 12588 .bitlogin-popup h2 { 12589 margin-top: 12px; 12590 font-size: 21px !important; 12591 line-height: 1.2 !important; 12592 font-weight: 700 !important; 12593 letter-spacing: -0.02em !important; 12594 margin-bottom: 16px !important; 12595 } 12596 12597 .bitlogin-popup-header { 12598 position: relative; 12599 margin-bottom: 24px; 12600 } 12601 12602 /* Modern gradient accent */ 12603 .bitlogin-popup-content > div { 12604 font-size: 16px !important; 12605 line-height: 1.2 !important; 12606 opacity: 0.85 !important; 12607 } 12608 12609 /* Enhanced button interactions */ 12610 .bitlogin-popup-buttons button { 12611 position: relative; 12612 overflow: hidden; 12613 } 12614 12615 @keyframes ripple { 12616 0% { 12617 transform: scale(0, 0); 12618 opacity: 0.5; 12619 } 12620 100% { 12621 transform: scale(100, 100); 12622 opacity: 0; 12623 } 12624 } 12625 12626 /* Responsive adjustments */ 12627 @media (max-width: 640px) { 12628 .bitlogin-popup { 12629 max-width: 90%; 12630 width: 90%; 12631 margin: 0 16px; 12632 } 12633 12634 .bitlogin-popup-with-image { 12635 flex-direction: column !important; 12636 } 12637 12638 .bitlogin-popup-image { 12639 width: 100%; 12640 height: 180px; 12641 } 12642 12643 .bitlogin-popup-content { 12644 padding: 24px; 12645 } 12646 12647 .bitlogin-popup h2 { 12648 font-size: 24px !important; 12649 } 12650 } 12651 `; 12652
12653 document.head.appendChild(popupStyles); 12654 12655 // Add fonts link for different font options 12656 const fontsLink = document.createElement('link'); 12657 fontsLink.rel = 'stylesheet'; 12658 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'; 12659 document.head.appendChild(fontsLink); 12660 12661 (async () => { 12662 try { 12663 let host = window.location.host; 12664 if (host === "admin.shopify.com") { 12665 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 12666 } 12667 12668 const urlSearchParams = new URLSearchParams(window.location.search); 12669 const checkoutUrl = urlSearchParams.get("checkout_url"); 12670 12671 async function init({ inputRef, index }) { 12672 if (isInitializing) { 12673 queue.push(() => init({ inputRef, index })); 12674 return; 12675 } 12676 12677 isInitializing = true; 12678 12679 try { 12680 let bitLoginSectionRoot = document.querySelector( 12681 `.bitlogin-root[data-index="${index}"]` 12682 ); 12683 12684 const formRef = inputRef?.closest( 12685 "form:not([action='/account/recover'])" 12686 ); 12687 12688 if (formRef && !bitLoginSectionRoot) { 12689 await getLocation(); 12690 12691 bitLoginSectionRoot = document.createElement(`div`); 12692 12693 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 12694 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 12695 12696 updateAppearance({ 12697 formRef, 12698 rootRef: bitLoginSectionRoot, 12699 host, 12700 }); 12701 } 12702 } catch (err) { 12703 console.error(`error while initiating bitlogin extensions`, err); 12704 } finally { 12705 // Release the lock 12706 isInitializing = false; 12707 12708 // Check if there are pending items in the queue 12709 if (queue.length > 0) { 12710 // Process the next function in the queue 12711 const nextFunction = queue.shift(); 12712 nextFunction(); 12713 } 12714 } 12715 } 12716 12717 function initAll() { 12718 return new Promise((resolve, reject) => { 12719 setTimeout(async () => { 12720 const inputRefs = document.querySelectorAll( 12721 'input[name="customer[email]"]' 12722 ); 12723 12724 for (let i = 0; i < inputRefs.length; i++) { 12725 const currentInputRef = inputRefs[i]; 12726 const isVisible = isElementVisible(currentInputRef); 12727 12728 if (isVisible) { 12729 await init({ inputRef: currentInputRef, index: i }); 12730 } 12731 } 12732 12733 resolve("ok"); 12734 }, 100); 12735 }); 12736 } 12737 12738 const observer = new MutationObserver((mutationsList) => { 12739 for (let mutation of mutationsList) { 12740 initAll(); 12741 } 12742 }); 12743 12744 observer.observe(document.body, { 12745 childList: true, 12746 subtree: true, 12747 attributes: true, 12748 }); 12749 12750 initAll(); 12751 12752 if (appearance.googleOneTap) { 12753 setupOneTap({ host, checkoutUrl }); 12754 } 12755 12756 // Initialize popup 12757 await initPopup(host); 12758 } catch (error) { 12759 console.error("Error initializing BitLogin:", error); 12760 } 12761 })(); 12762 12763 async function initPopup(host) { 12764 // Check if user is already logged in using Liquid checks properly 12765 const isLoggedIn = false || 12766 document.querySelector('.customer-logout-link') || 12767 document.querySelector('.account-link') || 12768 window.location.pathname.includes('/account'); 12769 12770 if (isLoggedIn) { 12771 return; // User is logged in, don't show popup 12772 } 12773 12774 try { 12775 // Fetch the popup configuration 12776 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 12777 .then(res => res.json()) 12778 .catch(err => { 12779 console.error('Error fetching popup configuration:', err); 12780 return null; 12781 }); 12782 12783 if (!popupConfig || !popupConfig.enabled) { 12784 return;
12784 // Don't show popup if disabled or config not found 12785 } 12786 12787 // Create popup after 10 seconds 12788 setTimeout(() => { 12789 // Check if user is still on the page and still not logged in 12790 if (document.visibilityState === 'visible') { 12791 // Additional check in case user logged in during the 10 second wait 12792 const currentlyLoggedIn = false || 12793 document.querySelector('.customer-logout-link') || 12794 document.querySelector('.account-link'); 12795 12796 if (!currentlyLoggedIn) { 12797 createLoginPopup(popupConfig, host); 12798 } 12799 } 12800 }, 10000); 12801 } catch (error) { 12802 console.error('Error initializing popup:', error); 12803 } 12804 } 12805 12806 function createLoginPopup(popupConfig, host) { 12807 // Font mapping 12808 const fontFamilyMap = { 12809 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 12810 montserrat: 'Montserrat, sans-serif', 12811 roboto: 'Roboto, sans-serif', 12812 open_sans: 'Open Sans, sans-serif', 12813 noto_sans: 'Noto Sans, sans-serif', 12814 lato: 'Lato, sans-serif', 12815 poppins: 'Poppins, sans-serif', 12816 quicksand: 'Quicksand, sans-serif', 12817 raleway: 'Raleway, sans-serif', 12818 pt_sans: 'PT Sans, sans-serif', 12819 oswald: 'Oswald, sans-serif', 12820 }; 12821 12822 // Create overlay 12823 const overlay = document.createElement('div'); 12824 overlay.className = 'bitlogin-popup-overlay'; 12825 12826 // Create popup container with appropriate styling 12827 const popup = document.createElement('div'); 12828 popup.className = 'bitlogin-popup'; 12829 12830 if (popupConfig.layout === 'default') { 12831 popup.style.maxWidth = '400px'; 12832 } 12833 12834 // Function to close the popup 12835 const closePopup = () => { 12836 overlay.classList.remove('visible'); 12837 popup.classList.remove('visible'); 12838 setTimeout(() => { 12839 if (document.body.contains(overlay)) { 12840 document.body.removeChild(overlay); 12841 } 12842 }, 300); 12843 }; 12844 12845 // Add click handler to the overlay to close when clicking outside 12846 overlay.addEventListener('click', (event) => { 12847 // Close only if clicking directly on the overlay, not its children 12848 if (event.target === overlay) { 12849 closePopup(); 12850 } 12851 }); 12852 12853 // Add escape key handler to close popup 12854 document.addEventListener('keydown', (event) => { 12855 if (event.key === 'Escape' && document.body.contains(overlay)) { 12856 closePopup(); 12857 } 12858 }); 12859 12860 // Create layout with image if specified 12861 let contentWrapper; 12862 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 12863 popup.classList.add('bitlogin-popup-with-image'); 12864 12865 if (popupConfig.layout === 'right') { 12866 popup.classList.add('bitlogin-popup-right-image'); 12867 } 12868 12869 // Add image 12870 const image = document.createElement('img'); 12871 image.className = 'bitlogin-popup-image'; 12872 image.src = popupConfig.popupImage; 12873 image.alt = 'Login'; 12874 image.loading = 'lazy'; 12875 popup.appendChild(image); 12876 12877 // Create content container 12878 contentWrapper = document.createElement('div'); 12879 contentWrapper.className = 'bitlogin-popup-content'; 12880 12881 if (popupConfig.layout === 'right') { 12882 const closeButton = document.createElement('button'); 12883 closeButton.className = 'bitlogin-popup-close'; 12884 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 12885 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 12886 </svg>`; 12887 closeButton.setAttribute('aria-label', 'Close'); 12888 closeButton.onclick = closePopup; 12889 12890 popup.appendChild(closeButton); 12891 } 12892 } else { 12893 contentWrapper = document.createElement('div'); 12894 contentWrapper.className = 'bitlogin-popup-content'; 12895 contentWrapper.style.width = '100%'; 12896 } 12897 12898 // Set background style 12899 if (popupConfig.backgroundTheme === 'gradient') { 12900 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 12901 } else { 12902 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 12903 } 12904 12905 // Apply font family 12906 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 12907 12908 if (popupConfig.layout !== 'right') { 12909 const closeButton = document.createElement('button'); 12910 closeButton.className = 'bitlogin-popup-close'; 12911 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 12912 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 12913 </svg>`; 12914 closeButton.setAttribute('aria-label', 'Close'); 12915 closeButton.onclick = closePopup; 12916 12917 contentWrapper.appendChild(closeButton); 12918 } 12919 12920 // Add heading with subtle animation effect 12921 const header = document.createElement('div'); 12922 header.className = 'bitlogin-popup-header'; 12923 12924 const heading = document.createElement('h2'); 12925 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
12925its'; 12926 heading.style.color = popupConfig.fontColor; 12927 header.appendChild(heading); 12928 12929 // Add body text with improved formatting 12930 const bodyText = document.createElement('div'); 12931 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 12932 bodyText.style.color = popupConfig.fontColor; 12933 header.appendChild(bodyText); 12934 12935 contentWrapper.appendChild(header); 12936 12937 // Create buttons container with modern styling 12938 const buttonsContainer = document.createElement('div'); 12939 buttonsContainer.className = 'bitlogin-popup-buttons'; 12940 12941 // Add social buttons 12942 const providerLabels = { 12943 'GOOGLE': 'Continue with Google', 12944 'FACEBOOK': 'Continue with Facebook', 12945 'APPLE': 'Continue with Apple', 12946 'WHATSAPP': 'Continue with WhatsApp', 12947 'MAGIC_LINK': 'Continue with Email', 12948 }; 12949 12950 // Add first login provider button 12951 if (popupConfig.loginProvider1 !== 'NONE') { 12952 const buttonConfig = { 12953 theme: popupConfig.colorScheme || 'match', 12954 customColor: popupConfig.textColor, 12955 format: 'contentFlex', 12956 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 12957 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 12958 style: popupConfig.style || 'rounded', 12959 size: popupConfig.size || 'medium', 12960 colorScheme: popupConfig.colorScheme || 'match', 12961 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 12962 textColor: popupConfig.textColor || '#FFFFFF', 12963 outlineColor: popupConfig.outlineColor || '#3B82F6', 12964 host: host 12965 }; 12966 12967 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 12968 12969 // Handle click event - this overrides the default click handler in createSocialLoginButton 12970 button1.onclick = () => { 12971 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 12972 closePopup(); 12973 }; 12974 12975 buttonsContainer.appendChild(button1); 12976 } 12977 12978 // Add second login provider button if enabled 12979 if (popupConfig.loginProvider2 !== 'NONE') { 12980 const buttonConfig = { 12981 theme: popupConfig.colorScheme || 'match', 12982 customColor: popupConfig.textColor, 12983 format: 'contentFlex', 12984 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 12985 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 12986 style: popupConfig.style || 'rounded', 12987 size: popupConfig.size || 'medium', 12988 colorScheme: popupConfig.colorScheme || 'match', 12989 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 12990 textColor: popupConfig.textColor || '#FFFFFF', 12991 outlineColor: popupConfig.outlineColor || '#3B82F6', 12992 host: host 12993 }; 12994 12995 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 12996 12997 // Handle click event - this overrides the default click handler in createSocialLoginButton 12998 button2.onclick = () => { 12999 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 13000 closePopup(); 13001 }; 13002 13003 buttonsContainer.appendChild(button2); 13004 } 13005 13006 contentWrapper.appendChild(buttonsContainer); 13007 13008 // Append content to popup 13009 popup.appendChild(contentWrapper); 13010 13011 // Append popup to overlay 13012 overlay.appendChild(popup); 13013 13014 // Append overlay to body 13015 document.body.appendChild(overlay); 13016 13017 // Trigger animation with slight delay for better perceived performance 13018 setTimeout(() => { 13019 overlay.classList.add('visible'); 13020 setTimeout(() => { 13021 popup.classList.add('visible'); 13022 }, 50); 13023 }, 10); 13024 } 13025 13026 window.addEventListener("load", () => { 13027 window.addEventListener("message", (event) => { 13028 const receivedData = event.data; 13029 13030 if (receivedData.type === "authorize") { 13031 post( 13032 JSON.parse( 13033 JSON.stringify({ 13034 "customer[email]": receivedData.email, 13035 "customer[password]": receivedData.password, 13036 form_type: "customer_login", 13037 utf8: "â", 13038 return_url: redirectUrl, 13039 }) 13040 ) 13041 ); 13042 } else if (receivedData.type === "rejected") { 13043 if (receivedData.reason === "customer_account_disabled") { 13044 showAlert( 13045 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 13046 ); 13047 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 13048 showAlert( 13049 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 13050 ); 13051 } else if (receivedData.reason === "customer_exist_email_not_set") { 13052 showAlert( 13053 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 13054 ); 13055 } 13056 } 13057 13058 if (receivedData.type === "customer_authenticated") { 13059 // Dispatch a custom event that merchants can listen for to implement their custom logic 13060 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 13061 detail: { 13062 provider: receivedData.provider, 13063 customer: receivedData.customer, 13064 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 13065 } 13066 }); 13067 13068 // Dispatch the event on the window object so merchants can listen for it 13069 window.dispatchEvent(customerAuthEvent); 13070 13071 } 13072 }); 13073 }); 13074 13075 // Reusable functions for social login buttons 13076 function createSocialLoginButton(provider, config = {}) { 13077 const { 13078 theme = 'match', 13079 customColor = null, 13080 format = 'contentFlex', 13081 buttonText = null, 13082 hasShadow = true, 13083 style = 'rounded', 13084 size = 'medium', 13085 colorScheme = 'match', 13086 backgroundColor = '#3B82F6', 13087 textColor = '#FFFFFF', 13088 outlineColor = '#3B82F6', 13089 rootRef = null, 13090 host = null 13091 } = config; 13092 13093 // Create button element with appropriate ID and attributes 13094 const button = document.createElement('button'); 13095 button.id = `${provider.toLowerCase()}-login`; 13096 button.type = 'button'; 13097 13098 // Set the inner SVG based on provider 13099 switch (provider.toUpperCase()) {
13100 case 'GOOGLE': 13101 button.innerHTML = googleLoginIcon(theme, customColor); 13102 break; 13103 case 'FACEBOOK': 13104 button.innerHTML = facebookLoginIcon(theme, customColor); 13105 break; 13106 case 'APPLE': 13107 button.innerHTML = appleLoginIcon(theme, customColor); 13108 break; 13109 case 'WHATSAPP': 13110 button.innerHTML = whatsappLoginIcon(theme, customColor); 13111 break; 13112 case 'MICROSOFT': 13113 button.innerHTML = microsoftLoginIcon(theme, customColor); 13114 break; 13115 case 'TWITTER': 13116 button.innerHTML = twitterLoginIcon(theme, customColor); 13117 break; 13118 case 'AMAZON': 13119 button.innerHTML = amazonLoginIcon(theme, customColor); 13120 break; 13121 case 'INSTAGRAM': 13122 button.innerHTML = instagramLoginIcon(theme, customColor); 13123 break; 13124 case 'MAGIC_LINK': 13125 button.innerHTML = magicLinkLoginIcon(theme, customColor); 13126 break; 13127 case 'MOBILE_APP': 13128 button.innerHTML = mobileAppLoginIcon(theme, customColor); 13129 break; 13130 case 'LINKEDIN': 13131 button.innerHTML = linkedinLoginIcon(theme, customColor); 13132 break; 13133 } 13134 13135 // Add text if format isn't icon-only and buttonText is provided 13136 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 13137 button.innerHTML += `<p>${buttonText}</p>`; 13138 } 13139 13140 // Apply styling 13141 // Shadow 13142 if (hasShadow) { 13143 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 13144 button.style["box-shadow"] = shadowProperties; 13145 } 13146 13147 // Border radius 13148 const radiusProperties = 13149 style === "rounded" 13150 ? "8px" 13151 : style === "square" 13152 ? "0px" 13153 : style === "fullRounded" 13154 ? format === "wrapperFlexContainerOnlyLogo" 13155 ? "50%" 13156 : "50px" 13157 : undefined; 13158 button.style["border-radius"] = radiusProperties; 13159 13160 // Size 13161 const sizeProperties = 13162 size === "medium" 13163 ? "12px" 13164 : size === "small" 13165 ? "8px" 13166 : size === "large" 13167 ? "16px" 13168 : "8px"; 13169 13170 button.style["padding-block"] = sizeProperties; 13171 13172 // Format styling 13173 if (format) { 13174 if ( 13175 format === "contentFlexReverse" || 13176 format === "contentFlexCenterReverse" 13177 ) { 13178 const flexDir = `row-reverse`; 13179 button.style["flex-direction"] = flexDir; 13180 } 13181 13182 if ( 13183 format === "contentFlexCenter" || 13184 format === "contentFlexCenterReverse" 13185 ) { 13186 const justifyContent = `center`; 13187 button.style["justify-content"] = justifyContent; 13188 } else if ( 13189 format === "contentFlex" || 13190 format === "contentFlexReverse" 13191 ) { 13192 const buttonTextElement = button.querySelector("p"); 13193 if (buttonTextElement) { 13194 buttonTextElement.style["flex-grow"] = 1; 13195 buttonTextElement.style["text-align"] = "center"; 13196 } 13197 } 13198 13199 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 13200 rootRef.style["flex-direction"] = "row"; 13201 rootRef.style["gap"] = "8px"; 13202 rootRef.style["display"] = "flex"; 13203 rootRef.style["flex-wrap"] = "wrap"; 13204 13205 const sizeMapping = { 13206 small: "52px", 13207 medium: "62px", 13208 large: "72px", 13209 }; 13210 const buttonSize = sizeMapping[size] || "52px"; 13211 13212 button.style["margin"] = 0; 13213 button.style["width"] = buttonSize; 13214 button.style["height"] = buttonSize; 13215 button.style["display"] = "flex"; 13216 button.style["align-items"] = "center"; 13217 button.style["justify-content"] = "center"; 13218 13219 const svgElement = button.querySelector("svg"); 13220 if (svgElement) { 13221 svgElement.style["flex"] = "none"; 13222 } 13223 } 13224 } 13225 13226 // Color scheme styling 13227 if (colorScheme === "black") { 13228 button.classList.add("scheme-black"); 13229 } else if (colorScheme === "white") { 13230 button.classList.add("scheme-white"); 13231 } else if (colorScheme === "custom") { 13232 button.style["background-color"] = backgroundColor; 13233 button.style["color"] = textColor; 13234 button.style["border-color"] = outlineColor; 13235 13236 const darkenColor = (color, percentage) => { 13237 const value = parseInt(color.slice(1), 16); 13238 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 13239 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 13240 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 13241 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 13242 }; 13243 13244 button.addEventListener("mouseover", () => {
13245 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 13246 }); 13247 button.addEventListener("mouseout", () => { 13248 button.style["background-color"] = backgroundColor; 13249 }); 13250 } else if (colorScheme === "match") { 13251 button.classList.add("scheme-match"); 13252 } else if (colorScheme === "matchOutline") { 13253 button.classList.add("scheme-match-outline"); 13254 } 13255 13256 // Add click event listener if host is provided 13257 if (host) { 13258 button.addEventListener("click", () => 13259 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 13260 ); 13261 } 13262 13263 return button; 13264 } 13265 13266 function setupSocialLoginButtons(config, rootRef, data, host) { 13267 // Clear any existing content 13268 rootRef.innerHTML = ''; 13269 13270 const sortedEnabledProviders = config 13271 .filter(c => c.enabledWeb) 13272 .sort((a, b) => a.position - b.position); 13273 13274 sortedEnabledProviders.forEach(provider => { 13275 const key = provider.provider; 13276 const lowerKey = key.toLowerCase(); 13277 13278 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 13279 ? (lowerKey === 'twitter' 13280 ? data.buttonList.twitter.replace('Twitter', 'X') 13281 : data.buttonList[lowerKey]) 13282 : null; 13283 13284 const button = createSocialLoginButton(key, { 13285 theme: data.colorScheme || 'match', 13286 customColor: data.textColor, 13287 format: data.format, 13288 buttonText: buttonText, 13289 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 13290 style: data.style, 13291 size: data.size, 13292 colorScheme: data.colorScheme, 13293 backgroundColor: data.backgroundColor, 13294 textColor: data.textColor, 13295 outlineColor: data.outlineColor, 13296 rootRef: rootRef, 13297 host: host 13298 }); 13299 13300 rootRef.appendChild(button); 13301 }); 13302 13303 return rootRef; 13304 } 13305 13306 function updateAppearance({ formRef, rootRef, host }) { 13307 if (!formRef) return; 13308 13309 const data = bitloginCache.appearance || { 13310 style: "square", 13311 hasShadow: false, 13312 colorScheme: "match", 13313 backgroundColor: "#FFFFFF", 13314 outlineColor: "#000000", 13315 textColor: "#000000", 13316 position: "bottom", 13317 hideDivider: "false", 13318 dividerText: "OR", 13319 size: "small", 13320 format: "contentFlex", 13321 language: "en", 13322 buttonText: "Continue with", 13323 redirectLink: "/account", 13324 googleOneTap: true, 13325 googleOneTapBanner: true, 13326 customerTag: "bitLogin", 13327 redirectOneTapDesktop: null, 13328 redirectOneTapMobile: null, 13329 buttonList: { 13330 google: "Continue with Google", 13331 facebook: "Continue with Facebook", 13332 apple: "Continue with Apple", 13333 whatsapp: "Continue with WhatsApp", 13334 microsoft: "Continue with Microsoft", 13335 twitter: "Continue with X", 13336 amazon: "Continue with Amazon", 13337 instagram: "Continue with Instagram", 13338 magic_link: "Continue with Magic Link", 13339 mobile_app: "Continue with Mobile App", 13340 linkedin: "Continue with LinkedIn", 13341 }, 13342 }; 13343 13344 // Use the new setupSocialLoginButtons function to create and configure all buttons 13345 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 13346 13347 let divider; 13348 13349 if (!data.hideDivider) { 13350 divider = document.createElement("div"); 13351 const dividerStyle = "text-align:center;margin-block:16px"; 13352 divider.setAttribute("style", dividerStyle); 13353 divider.innerHTML = data.dividerText; 13354 } 13355 13356 if (data.position === "bottom") { 13357 if (divider) { 13358 formRef.appendChild(divider); 13359 } 13360 formRef.appendChild(rootRef); 13361 } else if (data.position === "top") { 13362 if (divider) { 13363 formRef.prepend(divider); 13364 } 13365 formRef.prepend(rootRef); 13366 } 13367 } 13368 13369 13370 async function onClickSocialLogin({ provider, host }) { 13371 const rand = Math.random().toString(); 13372 13373 const locationQueryString = bitloginCache.location 13374 ? `&${objectToQueryString(bitloginCache.location)}` 13375 : ""; 13376 13377 const width = 800; 13378 const height = 600; 13379 const left = (window.screen.width / 2) - (width / 2); 13380 const top = (window.screen.height / 2) - (height / 2) - 50; 13381
13382 if(provider === 'whatsapp') { 13383 window.open( 13384 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 13385 "mywindow", 13386 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 13387 ); 13388 } else { 13389 window.open( 13390 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 13391 "mywindow", 13392 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 13393 ); 13394 } 13395 } 13396 13397 function objectToQueryString(obj) { 13398 return Object.keys(obj) 13399 .map((key) => { 13400 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 13401 }) 13402 .join("&"); 13403 } 13404 13405 async function getLocation() { 13406 if (locationCacheSet) return; 13407 13408 try { 13409 const response = await fetch("https://ipapi.co/json/"); 13410 13411 if (!response.ok) { 13412 console.error(`error retrieving location...`, response.status); 13413 errorLocation = true; 13414 } else { 13415 const data = await response.json(); 13416 13417 const { city, region, country_name, country_code } = data; 13418 13419 const formattedLocationData = { 13420 city, 13421 region, 13422 country_name, 13423 country_code, 13424 }; 13425 13426 bitloginCache.location = formattedLocationData; 13427 locationCacheSet = true; 13428 errorLocation = false; 13429 } 13430 } catch (err) { 13431 console.error(`error fetching location`, err); 13432 errorLocation = true; 13433 } 13434 } 13435 13436 function post(params) { 13437 // The rest of this code assumes you are not using a library. 13438 // It can be made less verbose if you use one. 13439 const form = document.createElement("form"); 13440 form.method = "post"; 13441 form.action = `/account/login`; 13442 form.acceptCharset = "UTF-8"; 13443 form.setAttribute("data-login-with-shop-sign-in", "true"); 13444 form.setAttribute("novalidate", "novalidate"); 13445 13446 for (const key in params) { 13447 if (params.hasOwnProperty(key)) { 13448 const hiddenField = document.createElement("input"); 13449 hiddenField.type = "hidden"; 13450 hiddenField.name = key; 13451 hiddenField.value = params[key]; 13452 13453 form.appendChild(hiddenField); 13454 } 13455 } 13456 13457 document.body.appendChild(form); 13458 form.submit(); 13459 } 13460 13461 async function setupOneTap({ host, checkoutUrl }) { 13462 if (oneTapSet) return; 13463 13464 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 13465 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 13466 13467 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 13468 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 13469 13470 const currentPath = window.location.pathname.toLowerCase(); 13471 const currentUrl = window.location.href.toLowerCase(); 13472 13473 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 13474 switch (value) { 13475 case 'home': 13476 return currentPath === '/'; 13477 case 'product': 13478 return currentPath.startsWith('/products/'); 13479 case 'collections': 13480 return currentPath.startsWith('/collections'); 13481 case 'cart': 13482 return currentPath === '/cart'; 13483 case 'checkout': 13484 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 13485 case 'thank_you': 13486 return currentPath.includes('/thank_you'); 13487 case 'account': 13488 return currentPath.startsWith('/account'); 13489 case 'pages': 13490 return currentPath.startsWith('/pages'); 13491 case 'blogs': 13492 return currentPath === '/blogs' || currentPath === '/blogs/news'; 13493 case 'blog_post': 13494 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 13495 default: 13496 return false; 13497 } 13498 }); 13499 13500 if (shouldHideGoogleOneTap) return; 13501 13502 const oneTapClientId = bitloginCache.config.find( 13503 (config) => config.provider === "GOOGLE" 13504 )?.clientId; 13505 13506 const isLoggedIn = false; 13507 13508 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 13509 const googleOneTapButton = document.createElement("div"); 13510 googleOneTapButton.setAttribute("id", "g_id_onload"); 13511 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 13512 googleOneTapButton.setAttribute("data-context", "signin"); 13513 googleOneTapButton.setAttribute( 13514 "data-callback", 13515 "handleGoogleOneTapResponse" 13516 ); 13517 googleOneTapButton.setAttribute("data-itp_support", "true"); 13518 13519 const googleOneTapScript = document.createElement("script"); 13520 13521 googleOneTapScript.innerHTML += ` 13522 function handleGoogleOneTapResponse(response) { 13523 if (response.credential) { 13524 const idToken = response.credential; 13525 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 13526 method: 'POST', 13527 headers: { 'Content-Type': 'application/json' }, 13528 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 13529 }).then(response => { 13530 response.json().then((data) => { 13531 post( 13532 JSON.parse( 13533 JSON.stringify({ 13534 "customer[email]": data.email, 13535 "customer[password]": data.password, 13536 form_type: "customer_login", 13537 utf8: "â", 13538 return_url: redirectUrl, 13539 }) 13540 ) 13541 ); 13542 }); 13543 }).catch(error => { 13544 console.error('Error occurred:', error); 13545 }); 13546 } else { 13547 console.error('No credential available'); 13548 } 13549 } 13550 `; 13551 13552 document.body.append(googleOneTapButton); 13553 document.body.append(googleOneTapScript); 13554 } 13555 13556 oneTapSet = true; 13557 } 13558
13559 const googleLoginIcon = ( 13560 theme, 13561 customColor 13562 ) => ` 13563 ${ 13564 theme === "match" || theme === "matchOutline" || theme === "custom" 13565 ? `<svg 13566 xmlns='https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif' 13567 xmlns:v='https://vecta.io/nano' 13568 width='24' 13569 height='24' 13570 viewBox='0 0 186.69 190.5' 13571 > 13572 <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="${ 13573 theme === "custom" ? customColor : "#4285f4" 13574 }"/><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="${ 13575 theme === "custom" ? customColor : "#34a853" 13576 }"/><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="${ 13577 theme === "custom" ? customColor : "#fbbc05" 13578 }"/><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="${ 13579 theme === "custom" ? customColor : "#ea4335" 13580 }" clip-path="none" mask="none"/></g> 13581 </svg>` 13582 : `<svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 13583 <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="${ 13584 theme !== "black" ? "black" : "white" 13585 }"/> 13586 <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="${ 13587 theme !== "black" ? "black" : "white" 13588 }"/> 13589 <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="${ 13590 theme !== "black" ? "black" : "white" 13591 }"/> 13592 <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="${ 13593 theme !== "black" ? "black" : "white" 13594 }"/> 13595 </svg>` 13596 }`; 13597 13598 const appleLoginIcon = ( 13599 theme, 13600 customColor 13601 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 13602 <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="${ 13603 theme === "custom" 13604 ? customColor 13605 : theme === "match" || theme === "black" 13606 ? "white" 13607 : "black" 13608 }"/> 13609 </svg>`; 13610 13611 const facebookLoginIcon = ( 13612 theme, 13613 customColor 13614 ) => ` 13615 ${ 13616 theme === "match" || theme === "matchOutline" || theme === "custom" 13617 ? `<svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="25" viewB
13617ox="0 0 24 25" fill="none"> 13618 <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="${ 13619 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 13620 }"/> 13621 <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="${ 13622 theme === "match" ? "#1778f2" : "transparent" 13623 }"/> 13624 </svg>` 13625 : `<svg xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 13626 <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="${ 13627 theme === "black" ? "white" : "black" 13628 }"/> 13629 <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="${ 13630 theme === "black" ? "black" : "white" 13631 }"/> 13632 </svg>` 13633 }`; 13634 13635 const whatsappLoginIcon = ( 13636 theme, 13637 customColor 13638 ) => `<svg 13639 viewBox="0 0 24 24" 13640 fill="none" 13641 width="24" 13642 height="25" 13643 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13644 > 13645 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 13646 <g 13647 id="SVGRepo_tracerCarrier" 13648 stroke-linecap="round" 13649 stroke-linejoin="round" 13650 ></g> 13651 <g id="SVGRepo_iconCarrier"> 13652 <path 13653 fill-rule="evenodd" 13654 clip-rule="evenodd" 13655 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" 13656 fill="${ 13657 theme === "match" || theme === "black" 13658 ? "#ffffff" 13659 : theme === "white" 13660 ? "#000000" 13661 : theme === "matchOutline" 13662 ? "#25d366" 13663 : customColor 13664 }" 13665 ></path> 13666 </g> 13667 </svg>`; 13668 13669 const microsoftLoginIcon = ( 13670 theme, 13671 customColor 13672 ) => `<svg 13673 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13674 width="25" 13675 height="25" 13676 viewBox="0 0 48 48"> 13677 <path fill="${ 13678 theme === "match" || theme == "matchOutline" 13679 ? "#ff5722" 13680 : theme === "black" 13681 ? "#ffffff" 13682 : theme === "white" 13683 ? "#000000" 13684 : customColor 13685 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 13686 <path 13687 fill="${ 13688 theme === "match" || theme == "matchOutline" 13689 ? "#4caf50" 13690 : theme === "black" 13691 ? "#ffffff" 13692 : theme === "white" 13693 ? "#000000" 13694 : customColor 13695 }" 13696 d="M26 6H42V22H26z" 13697 transform="rotate(-180 34 14)"></path> 13698 <path 13699 fill="${ 13700 theme === "match" || theme == "matchOutline" 13701 ? "#ffc107" 13702 : theme === "black" 13703 ? "#ffffff" 13704 : theme === "white" 13705 ? "#000000" 13706 : customColor 13707 }" 13708 d="M26 26H42V42H26z" 13709 transform="rotate(-180 34 34)"></path> 13710 <path fill="${ 13711 theme === "match" || theme == "matchOutline" 13712 ? "#03a9f4" 13713 : theme === "black" 13714 ? "#ffffff" 13715 : theme === "white" 13716 ? "#000000" 13717 : customColor 13718 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 13719 </svg>`; 13720 13721 const twitterLoginIcon = ( 13722 theme, 13723 customColor 13724 ) => `<svg 13725 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13726 width="25" 13727 height="25" 13728 viewBox="0 0 48 48"> 13729 <polygon fill="${ 13730 theme === "match" || theme === "black" 13731 ? "#ffffff" 13732 : theme === "matchOutline" || theme === "white" 13733 ? "#000000" 13734 : customColor 13735 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 13736 <polygon 13737 fill="${ 13738 theme === "match" || theme === "black" 13739 ? "#000000" 13740 : theme === "matchOutline" || theme === "white" 13741 ? "#ffffff" 13742 : customColor 13743 }" 13744 fill-rule="evenodd" 13745 points="31.143,41 7.82,7 16.777,7 40.1,41" 13746 clip-rule="evenodd"></polygon> 13747 <path 13748 fill="${ 13749 theme === "match" || theme === "black" 13750 ? "#ffffff" 13751 : theme === "matchOutline" || theme === "white" 13752 ? "#000000" 13753 : customColor 13754 }" 13755 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 13756 </svg>`; 13757 13758 const amazonLoginIcon = (theme, customColor) => ` 13759 <svg 13760 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13761 x="0px" 13762 y="0px" 13763 width="25" 13764 height="25"
13765 viewBox="0 0 50 50" 13766 > 13767 <path 13768 fill="${ 13769 theme === "black" 13770 ? "#ffffff" 13771 : theme === "matchOutline" 13772 ? "#FF9900" 13773 : theme === "white" || theme === "match" 13774 ? "#000000" 13775 : customColor 13776 }" 13777 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" 13778 ></path> 13779 </svg>`; 13780 13781 const instagramLoginIcon= (theme, customColor) => ` 13782 <svg 13783 width="25" 13784 height="25" 13785 viewBox="0 0 25 24" 13786 fill="none" 13787 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif"> 13788 <path 13789 fill-rule="evenodd" 13790 clip-rule="evenodd" 13791 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.
1379164321C8.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" 13792 fill="url(#paint0_radial_378_3535)" /> 13793 <path 13794 fill-rule="evenodd" 13795 clip-rule="evenodd" 13796 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" 13797 fill="url(#paint0_radial_378_3535)" /> 13798 <path 13799 fill-rule="evenodd" 13800 clip-rule="evenodd" 13801 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.
1380164321C8.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" 13802 fill="url(#paint0_radial_378_3535)" /> 13803 <path 13804 fill-rule="evenodd" 13805 clip-rule="evenodd" 13806 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" 13807 fill="url(#paint1_radial_378_3535)" /> 13808 <defs> 13809 <radialGradient 13810 id="paint0_radial_378_3535" 13811 cx="0" 13812 cy="0" 13813 r="1" 13814 gradientUnits="userSpaceOnUse" 13815 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 13816 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 13817 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 13818 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 13819 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 13820 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 13821 </radialGradient> 13822 <radialGradient 13823 id="paint1_radial_378_3535" 13824 cx="0" 13825 cy="0" 13826 r="1" 13827 gradientUnits="userSpaceOnUse" 13828 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 13829 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 13830 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 13831 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 13832 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 13833 </radialGradient> 13834 </defs> 13835 </svg>`; 13836 13837 const magicLinkLoginIcon = (theme, customColor) => ` 13838 <svg 13839 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13840 width="25" 13841 height="25" 13842 fill="none"
13843 viewBox="0 0 25 25" 13844 > 13845 <path 13846 fill="${ 13847 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 13848 }" 13849 fillRule="evenodd" 13850 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" 13851 clipRule="evenodd" 13852 ></path> 13853 </svg>`; 13854 13855 const mobileAppLoginIcon = (theme, customColor) => ` 13856 <svg 13857 width="20" 13858 height="24" 13859 viewBox="0 0 12 16" 13860 fill="none" 13861 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13862 > 13863 <path 13864 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" 13865 fill=${ 13866 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 13867 } 13868 /> 13869 </svg> 13870 `; 13871 13872 const linkedinLoginIcon = (theme, customColor) => ` 13873 <svg 13874 xmlns="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/logo.gif" 13875 width="25" 13876 height="24" 13877 viewBox="0 0 25 24" 13878 fill="none" 13879 > 13880 <path 13881 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" 13882 fill=${ 13883 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 13884 } 13885 /> 13886 </svg> 13887 `; 13888 13889 function isElementVisible(element) { 13890 return ( 13891 document.body.contains(element) && 13892 getComputedStyle(element).display !== "none" && 13893 getComputedStyle(element).visibility !== "hidden" && 13894 getComputedStyle(element).opacity !== "0" && 13895 !element.hasAttribute("hidden") && 13896 !isAncestorHidden(element) 13897 ); 13898 } 13899 13900 function isAncestorHidden(element) { 13901 let parent = element.parentElement; 13902 while (parent) { 13903 if ( 13904 getComputedStyle(parent).display === "none" || 13905 getComputedStyle(parent).visibility === "hidden" || 13906 getComputedStyle(parent).opacity === "0" || 13907 parent.hasAttribute("hidden") 13908 ) { 13909 return true; 13910 } 13911 parent = parent.parentElement; 13912 } 13913 return false; 13914 } 13915 13916 function showAlert(message) { 13917 const alertBox = document.createElement("div"); 13918 alertBox.textContent = message; 13919 alertBox.style.position = "fixed"; 13920 alertBox.style.top = "20px"; 13921 alertBox.style.right = "-300px"; // Start off-screen 13922 alertBox.style.backgroundColor = "#000000"; // Black background 13923 alertBox.style.color = "#ffffff"; // White text 13924 alertBox.style.padding = "15px"; 13925 alertBox.style.borderRadius = "8px"; 13926 alertBox.style.zIndex = "1000"; 13927 alertBox.style.transition = 13928 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 13929 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 13930 13931 document.body.appendChild(alertBox); 13932 13933 // Slide in 13934 requestAnimationFrame(() => { 13935 alertBox.style.right = "20px"; // Move into view 13936 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 13937 }); 13938 13939 // Slide out and remove the alert after a few seconds 13940 setTimeout(() => { 13941 alertBox.style.opacity = "0"; // Fade out 13942 alertBox.style.right = "-300px"; // Move out of view 13943 13944 // Wait for the transition to finish before removing the element 13945 setTimeout(() => { 13946 document.body.removeChild(alertBox); 13947 }, 500); // Match this duration with the exit transition duration 13948 }, 3000); 13949 } 13950 </script>
13950 13951 13952<style> 13953 .daftarku-fixed-footer { 13954 position: fixed; 13955 bottom: 20px; 13956 left: 50%; 13957 transform: translateX(-50%); 13958 width: 90%; 13959 height: 70px; 13960 background: rgba(0, 0, 0, 0.75); 13961 border: 1.5px solid rgba(255, 215, 0, 0.6); 13962 border-radius: 20px; 13963 backdrop-filter: blur(10px); 13964 box-shadow: 0 0 25px rgba(255, 215, 0, 0.4), 13965 inset 0 0 15px rgba(255, 255, 255, 0.05); 13966 display: flex; 13967 justify-content: space-around; 13968 align-items: center; 13969 overflow: hidden; 13970 z-index: 9999; 13971 animation: floatUp 0.8s ease-out; 13972 } 13973 13974 /* === Efek LED Bergerak di Pinggir === */ 13975 .daftarku-fixed-footer::before { 13976 content: ""; 13977 position: absolute; 13978 inset: 0; 13979 border-radius: 20px; 13980 padding: 2px; 13981 background: linear-gradient( 13982 120deg, 13983 #fff3b0, 13984 #ffd700, 13985 #d4af37, 13986 #ffec8b, 13987 #b8860b, 13988 #ffd700, 13989 #fff3b0 13990 ); 13991 13992 background-size: 400%; 13993 -webkit-mask: linear-gradient(#000 0 0) content-box, 13994 linear-gradient(#000 0 0); 13995 -webkit-mask-composite: xor; 13996 mask-composite: exclude; 13997 box-shadow: 13998 0 0 10px rgba(255, 215, 0, 0.45), 13999 0 0 22px rgba(212, 175, 55, 0.30); 14000 animation: ledRotate 6s linear infinite; 14001} 14002 14003 @keyframes ledRotate { 14004 0% { 14005 background-position: 0% 50%; 14006 } 14007 14008 100% { 14009 background-position: 400% 50%; 14010 } 14011 } 14012 14013 /* === Efek Cahaya Dalam & Refleksi === */ 14014 .daftarku-fixed-footer::after { 14015 content: ""; 14016 position: absolute; 14017 top: -50%; 14018 left: 0; 14019 width: 100%; 14020 height: 200%; 14021 background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.2), transparent 70%); 14022 animation: shinePass 5s ease-in-out infinite; 14023 } 14024 14025 @keyframes shinePass { 14026 14027 0%, 14028 100% { 14029 opacity: 0.3; 14030 } 14031 14032 50% { 14033 opacity: 0.7; 14034 } 14035 } 14036 14037 /* === Tombol-Tombol === */ 14038 .daftarku-fixed-footer a { 14039 flex: 1; 14040 text-align: center; 14041 color: #ffd700; 14042 font-weight: 700; 14043 text-decoration: none; 14044 font-size: 13px; 14045 text-transform: uppercase; 14046 display: flex; 14047 flex-direction: column; 14048 align-items: center; 14049 transition: 0.3s ease; 14050 z-index: 2; 14051 } 14052 14053 .daftarku-fixed-footer a img { 14054 width: 30px; 14055 height: 30px; 14056 margin-bottom: 4px; 14057 filter: 14058 drop-shadow(0 0 4px rgba(255, 215, 0, 0.35)) 14059 drop-shadow(0 0 10px rgba(212, 175, 55, 0.28)); 14060 transition: 0.3s ease; 14061 animation: floatBtn 3s ease-in-out infinite; 14062} 14063 14064 @keyframes floatBtn { 14065 14066 0%, 14067 100% { 14068 transform: translateY(0); 14069 } 14070 14071 50% { 14072 transform: translateY(-4px); 14073 } 14074 } 14075 14076 /* Hover & Active State */ 14077 .daftarku-fixed-footer a:hover { 14078 color: #fff; 14079 transform: scale(1.15); 14080 text-shadow: 0 0 12px #fff, 0 0 25px #ffd700; 14081 } 14082 14083 .daftarku-fixed-footer a:hover img { 14084 transform: scale(1.25) rotate(10deg); 14085 filter: drop-shadow(0 0 15px #fff); 14086 } 14087 14088 /* Tombol âDaftarâ spesial: pulse energy */ 14089 .daftarku-fixed-footer a.tada { 14090 background: radial-gradient(circle, #3a3a3a 0%, #050505 80%); 14091 padding: 6px 12px; 14092 border-radius: 12px; 14093 box-shadow: 14094 0 0 18px rgba(0, 0, 0, 0.75), 14095 inset 0 0 10px rgba(255, 255, 255, 0.08); 14096 color: #ffffff; 14097 position: relative; 14098 overflow: hidden; 14099 animation: pulseEnergy 2s infinite ease-in-out; 14100} 14101 14102 .daftarku-fixed-footer a.tada::before { 14103 content: ""; 14104 position: absolute; 14105 top: -50%; 14106 left: -50%; 14107 width: 200%; 14108 height: 200%; 14109 background: conic-gradient(from 0deg, rgba(255, 255, 255, 0.4), transparent 60%); 14110 animation: spinEnergy 2s linear infinite; 14111 } 14112 14113 @keyframes pulseEnergy { 14114 14115 0%, 14116 100% { 14117 box-shadow: 14118 0 0 12px rgba(255, 215, 0, 0.35), 14119 0 0 24px rgba(212, 175, 55, 0.22); 14120 } 14121 14122 50% { 14123 box-shadow: 0 0 40px #fff700; 14124 } 14125 } 14126 14127 @keyframes spinEnergy { 14128 to { 14129 transform: rotate(360deg); 14130 } 14131 } 14132 14133 /* Animasi masuk */ 14134 @keyframes floatUp { 14135 0% { 14136 opacity: 0; 14137 transform: translate(-50%, 50px); 14138 } 14139 14140 100% { 14141 opacity: 1;
14142 transform: translate(-50%, 0); 14143 } 14144 } 14145</style> 14146<style> 14147 14148/* =========================== 14149 BILLIARD THROW EFFECT 14150=========================== */ 14151 14152.billiard-throw-layer{ 14153 position:fixed; 14154 inset:0; 14155 overflow:hidden; 14156 pointer-events:none; 14157 z-index:1; 14158} 14159 14160.billiard-throw{ 14161 14162 --size:54px; 14163 14164 position:absolute; 14165 left:-90px; 14166 bottom:-90px; 14167 14168 width:var(--size); 14169 height:var(--size); 14170 14171 /* Ganti URL berikut dengan sprite PNG milikmu */ 14172 background-image:url("https://imgstore.io/images/2026/08/02/billiard-sprite-1-15.png"); 14173 14174 background-repeat:no-repeat; 14175 14176 background-size: 14177 calc(var(--size) * 5) 14178 calc(var(--size) * 3); 14179 14180 filter:drop-shadow(0 5px 7px rgba(0,0,0,.55)); 14181 14182 animation:billiardThrow 8s cubic-bezier(.22,.65,.3,1) infinite; 14183 14184 will-change:transform,opacity; 14185} 14186 14187 14188/* =========================== 14189 SPRITE POSITION 14190=========================== */ 14191 14192.bt-1{ 14193 background-position:0 0; 14194} 14195 14196.bt-3{ 14197 background-position: 14198 calc(var(--size) * -2) 14199 0; 14200} 14201 14202.bt-5{ 14203 background-position: 14204 calc(var(--size) * -4) 14205 0; 14206} 14207 14208.bt-8{ 14209 background-position: 14210 calc(var(--size) * -2) 14211 calc(var(--size) * -1); 14212} 14213 14214.bt-9{ 14215 background-position: 14216 calc(var(--size) * -3) 14217 calc(var(--size) * -1); 14218} 14219 14220.bt-12{ 14221 background-position: 14222 calc(var(--size) * -1) 14223 calc(var(--size) * -2); 14224} 14225 14226.bt-15{ 14227 background-position: 14228 calc(var(--size) * -4) 14229 calc(var(--size) * -2); 14230} 14231 14232 14233/* =========================== 14234 POSISI MASING-MASING BOLA 14235=========================== */ 14236 14237.billiard-throw:nth-child(1){ 14238 left:2%; 14239 animation-delay:0s; 14240 animation-duration:7.5s; 14241} 14242 14243.billiard-throw:nth-child(2){ 14244 left:16%; 14245 animation-delay:1s; 14246 animation-duration:8.2s; 14247} 14248 14249.billiard-throw:nth-child(3){ 14250 left:30%; 14251 animation-delay:2s; 14252 animation-duration:7.7s; 14253} 14254 14255.billiard-throw:nth-child(4){ 14256 left:45%; 14257 animation-delay:3s; 14258 animation-duration:9s; 14259} 14260 14261.billiard-throw:nth-child(5){ 14262 left:60%; 14263 animation-delay:4s; 14264 animation-duration:8.4s; 14265} 14266 14267.billiard-throw:nth-child(6){ 14268 left:76%; 14269 animation-delay:5s; 14270 animation-duration:8.8s; 14271} 14272 14273.billiard-throw:nth-child(7){ 14274 left:90%; 14275 animation-delay:6s; 14276 animation-duration:7.8s; 14277} 14278 14279 14280/* =========================== 14281 ANIMASI 14282=========================== */ 14283 14284@keyframes billiardThrow{ 14285 14286 0%{ 14287 14288 transform: 14289 translate3d(-40px,90px,0) 14290 rotate(0deg) 14291 scale(.45); 14292 14293 opacity:0; 14294 14295 } 14296 14297 10%{ 14298 14299 opacity:1; 14300 14301 } 14302 14303 35%{ 14304 14305 transform: 14306 translate3d(70px,-45vh,0) 14307 rotate(360deg) 14308 scale(.8); 14309 14310 } 14311 14312 60%{ 14313 14314 transform: 14315 translate3d(-30px,-70vh,0) 14316 rotate(720deg) 14317 scale(1); 14318 14319 } 14320 14321 85%{ 14322 14323 transform: 14324 translate3d(50px,-35vh,0) 14325 rotate(960deg) 14326 scale(.9); 14327 14328 opacity:1; 14329 14330 } 14331 14332 100%{ 14333 14334 transform: 14335 translate3d(110px,130px,0) 14336 rotate(1260deg) 14337 scale(.6); 14338 14339 opacity:0; 14340 14341 } 14342 14343} 14344 14345 14346/* =========================== 14347 RESPONSIVE 14348=========================== */ 14349 14350@media(max-width:768px){ 14351 14352 .billiard-throw{ 14353 14354 --size:38px; 14355 14356 } 14357 14358} 14359 14360 14361/* =========================== 14362 LAYER WEBSITE 14363=========================== */ 14364 14365header, 14366main, 14367footer, 14368.float-nav, 14369.header-wrapper{ 14370 14371 position:relative; 14372 z-index:2; 14373 14374} 14375 14376</style> 14377<div class="billiard-throw-layer" aria-hidden="true"> 14378 14379 <span class="billiard-throw bt-1"></span> 14380 14381 <span class="billiard-throw bt-3"></span> 14382 14383 <span class="billiard-throw bt-5"></span> 14384 14385 <span class="billiard-throw bt-8"></span> 14386 14387 <span class="billiard-throw bt-9"></span> 14388 14389 <span class="billiard-throw bt-12"></span> 14390 14391 <span class="billiard-throw bt-15"></span> 14392 14393</div> 14394 14395 14396<div class="daftarku-fixed-footer"> 14397 <a href="https://rebrand.ly/Tombol_Login123" target="_blank" rel="nofollow noopener"> 14398 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" alt="Promo PERMATA123"> 14399 Promo 14400 </a> 14401 <a href="https://media-hfmagazineonline.seo123788.workers.dev/" target="_blank" rel="nofollow noopener"> 14402 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" alt="Login P
14402ERMATA123"> 14403 Login 14404 </a> 14405 <a href="https://media-hfmagazineonline.seo123788.workers.dev/" target="_blank" rel="nofollow noopener" class="tada"> 14406 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" alt="Daftar PERMATA123"> 14407 Daftar 14408 </a> 14409 <a href="https://rebrand.ly/Tombol_Alternatif" target="_blank" rel="nofollow noopener"> 14410 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" alt="PERMATA123 LINK ALTERNATIF"> 14411 Alternatif 14412 </a> 14413 <a href="https://direct.lc.chat/17109672/" target="_blank" rel="nofollow noopener"> 14414 <img src="https://cdn.robotaset.com/assets/tpl/7712b75dfd/images/favicon.ico" alt="Live Chat PERMATA123"> 14415 Live Chat 14416 </a> 14417</div> 14418</div> 14419
14419<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>
14419 14420
14420<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 14420
14420
14421<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 14421
14421
14422<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"d4dba8ba200745e6b8f590095c3b6c88","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 14422
14422
14423<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"30b2727e2a8f493ebe6fe2f450fe2b35","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 14423
14423
14424<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"08d09cb268c84616a4399eeb35067fff","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 14424
14424
14425<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"08d09cb268c84616a4399eeb35067fff","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 14425
14425
14426<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"08d09cb268c84616a4399eeb35067fff","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 14426
14426
14427<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"08d09cb268c84616a4399eeb35067fff","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 14427
14427
14428<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"08d09cb268c84616a4399eeb35067fff","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
14428 14429
14430<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"5871698bfd864308bc68936b9d238569","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 14430
14430
14431<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":"5871698bfd864308bc68936b9d238569","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 14431
14431
14432<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":"5b0042b98ce34028845e2737b470dc30","r":1,"spa":2}' crossorigin="anonymous"></script>
14432 14433</body> 14434 </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.