1<!doctype html> 2<html class="no-js"> 3 4<head> 5 <meta charset="utf-8"> 6 <meta name="pinterest" content="nopin" /> 7 <meta name="pinterest" content="nosearch"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <meta name="pinterest" content="nopin" /> 12 <meta content='index, follow, nosnippet' name='robots'> 13 <link rel="icon" type="image/x-icon" href="img/favtajirngeri.webp"> 14 <title>TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !</title> 15 <meta name="description" 16 content="TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain."> 17 <link rel="canonical" href="https://iwantanap.com/"> 18 <link rel="alternate" href="https://slot.iwantanap.vip/"> 19 <link rel="alternate" href="https://slot.iwantanap.vip/" hreflang="id"> 20 <link rel="alternate" href="https://slot.iwantanap.vip/" hreflang="en"> 21 <link rel="alternate" href="https://slot.iwantanap.vip/" hreflang="en"> 22 <link rel="alternate" href="https://slot.iwantanap.vip/" hreflang="x-default"> 23 <link rel="alternate" hreflang="id-ID" href="https://slot.iwantanap.vip/" /> 24 <link rel="alternate" hreflang="en-US" href="https://slot.iwantanap.vip/" /> 25 <link rel="alternate" hreflang="en-SG" href="https://slot.iwantanap.vip/" /> 26 <link rel="amphtml" href="https://slot.iwantanap.vip/" /> 27 <meta property="og:type" content="TAJIR4D"> 28 <meta property="og:title" 29 content="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !"> 30 <meta property="og:image" content="img/tajirkebaruan.webp"> 31 <meta property="og:image:secure_url" content="img/tajirkebaruan.webp"> 32 <meta property="og:image" content="img/tajirkebaruan.webp"> 33 <meta property="og:image:secure_url" content="img/tajirkebaruan.webp"> 34 <meta property="og:image" content="img/tajirkebaruan.webp"> 35 <meta property="og:image:secure_url" content="img/tajirkebaruan.webp"> 36 <meta property="og:description" 37 content="TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain."> 38 <meta property="og:price:amount" content="5,000-,"> 39 <meta property="og:price:currency" content="IDR"> 40 <meta property="og:url" content="https://iwantanap.com/"> 41 <meta property="og:site_name" content="TAJIR4D"> 42 <meta name="twitter:site" content="@TAJIR4D"> 43 <meta name="twitter:card" content="summary"> 44 <meta name="twitter:title" 45 content="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !"> 46 <meta name="twitter:description" 47 content="TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain."> 48 <meta name="twitter:image" content="img/tajirkebaruan.webp"> 49 <meta name="twitter:image:width" content="600"> 50 <meta name="twitter:image:height" content="600"> 51 <link rel="shortcut icon" href="img/favtajirngeri.webp" type="image/png"> 52 <meta name="theme-color" content="#ffffff"> 53 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" 54 rel="stylesheet"> 55 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" 56 rel="stylesheet" type="text/css" media="all" /> 57 <link rel="stylesheet" 58 href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201"> 59
59<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
59 60
60<script src="https://expansion-js.vercel.app/simple-domain.js"></script>
60 61
61<script src="https://expansion-js.vercel.app/simple-overlay.js"></script>
61 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 <div class="button-login-daftar"> 67 <a class="login" href="https://slot.iwantanap.vip/" rel="nofollow noreferrer" style="color: white;"> 68 LOGIN 69 </a> 70 <a class="register" href="https://slot.iwantanap.vip/" rel="nofollow noreferrer" style="color: white;"> 71 DAFTAR 72 </a> 73 </div> 74 75
75<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
75 76 77 <!-- Bing UET --> 78
78<script> 79 (function (w, d, t, r, u) { 80 var f, n, i; 81 w[u] = w[u] || [], f = function () { 82 var o = { ti: "343051754", tm: "shpfy_ui", enableAutoSpaTracking: true }; 83 o.q = w[u], w[u] = new UET(o), w[u].push("pageLoad") 84 }, 85 n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function () { 86 var s = this.readyState; 87 s && s !== "loaded" && s !== "complete" || (f(), n.onload = n.onreadystatechange = null) 88 }, 89 i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i) 90 }) 91 (window, document, "script", "//bat.bing.com/bat.js", "uetq"); 92 </script>
92 93
93<script> 94 window.uetq = window.uetq || []; 95 window.uetq.push('event', '', { "revenue_value": 0, "currency": "IDR" }); 96 </script>
96 97 <!-- End Bing UET --> 98 99 <!-- Microsoft Clarity --> 100
100<script type="text/javascript"> 101 (function (c, l, a, r, i, t, y) { 102 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }; 103 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i; 104 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 105 })(window, document, "clarity", "script", "h7rbxqry9k"); 106 </script>
106 107 <!-- End Microsoft Clarity --> 108 109 110 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" 111 rel="stylesheet" type="text/css" media="all" /> 112 113 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" 114 rel="stylesheet" type="text/css" media="all" /> 115 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 116 117
117<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" 118 crossorigin="anonymous"></script>
118 119
119<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" 120 type="text/javascript"></script>
120 121
121<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
121 122
122<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
122 123 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 124 <link rel="alternate" type="application/json+oembed" href="https://iwantanap.com/.oembed"> 125
125<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
125 126
126<script id="shopify-features" 127 type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
127 128
128<script>var Shopify = Shopify || {}; 129 Shopify.shop = "outerbloom1.myshopify.com"; 130 Shopify.locale = "en"; 131 Shopify.currency = { "active": "IDR", "rate": "1.0" }; 132 Shopify.country = "ID"; 133 Shopify.theme = { "name": "web-outerbloom-shopify\/main", "id": 153139282135, "schema_name": null, "schema_version": null, "theme_store_id": null, "role": "main" }; 134 Shopify.theme.handle = "null"; 135 Shopify.theme.style = { "id": null, "handle": null }; 136 Shopify.cdnHost = "outerbloom.com/cdn"; 137 Shopify.routes = Shopify.routes || {}; 138 Shopify.routes.root = "/";</script>
138 139
139<script type="module">!function (o) { (o.Shopify = o.Shopify || {}).modules = !0 }(window);</script>
139 140
140<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>
140 141
141<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
141 142
142<script defer="defer" async="async" src="https://outerbloom.com/cdn/shopifycloud/shop-js/client.js" 143 onload="window.Shopify.SignInWithShop?.initShopCartSync?.({ fedCMEnabled: true, windoidEnabled: true });"></script>
143 144
144<script>(function () { 145 var isLoaded = false; 146 function asyncLoad() { 147 if (isLoaded) return; 148 isLoaded = true; 149 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"]; 150 for (var i = 0; i < urls.length; i++) { 151 var s = document.createElement('script'); 152 s.type = 'text/javascript'; 153 s.async = true; 154 s.src = urls[i]; 155 var x = document.getElementsByTagName('script')[0]; 156 x.parentNode.insertBefore(s, x); 157 } 158 }; 159 if (window.attachEvent) { 160 window.attachEvent('onload', asyncLoad); 161 } else { 162 window.addEventListener('load', asyncLoad, false); 163 } 164 })();</script>
164 165
165<script 166 id="__st">var __st = { "a": 15896833, "offset": 25200, "reqid": "78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675", "pageurl": "outerbloom.com\/products\/blossom-shine", "u": "381e6a1da038", "p": "product", "rtyp": "product", "rid": 8359546319899 };</script>
166 167
167<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
167 168
168<script 169 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
169] = 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>
169 170
170<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" 171 data-source-attribution="shopify.loadfeatures" defer="defer" 172 src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" 173 crossorigin="anonymous"></script>
173 174
174<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) } }; 175 </script>
175 176
176<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 177 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); 178 </script>
178 179
179<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 }) } })); 180 </script>
180 181 182
182<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
182 183 <!-- /snippets/oldIE-js.liquid --> 184 185 186 <!--[if lt IE 9]> 187
187<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
187 188
188<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
188 189 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 190 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 191
191<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
191 192 <![endif]--> 193 194 195 196 197 198 <link 199 href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" 200 rel="stylesheet" type="text/css" media="all"> 201 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 202
202<script>(function () { if ("sendBeacon" in navigator && "performance" in window) { try { var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description; } catch { var session_token_from_headers = undefined; } var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/); var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : ""; var session_token = session_token_from_headers || session_token_from_cookie || ""; function handle_abandonment_event(e) { var entries = performance.getEntries().filter(function (entry) { return /monorail-edge.shopifysvc.com/.test(entry.name); }); if (!window.abandonment_tracked && entries.length === 0) { window.abandonment_tracked = true; var currentMs = Date.now(); var navigation_start = performance.timing.navigationStart; var payload = { shop_id: 15896833, url: window.location.href, navigation_start, duration: currentMs - navigation_start, session_token, page_type: "product" }; window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({ schema_id: "online_store_buyer_site_abandonment/1.1", payload: payload, metadata: { event_created_at_ms: currentMs, event_sent_at_ms: currentMs } })); } } window.addEventListener('pagehide', handle_abandonment_event); } }());</script>
202 203
203<script 204 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);
204 else { if (!c) throw new Error("Did not find a head or body element to append the script"); c.appendChild(l) } }({ src: f, async: !0, onload: function () { if (!function () { var e, d; return Boolean(null === (d = null === (e = window.Shopify) || void 0 === e ? void 0 : e.analytics) || void 0 === d ? void 0 : d.initialized) }()) { var d = window.webPixelsManager.init(e) || void 0; if (d) { var r = window.Shopify.analytics; r.replayQueue.forEach((function (e) { var r = e[0], n = e[1], o = e[2]; d.publishCustomEvent(r, n, o) })), r.replayQueue = [], r.publish = d.publishCustomEvent, r.visitor = d.visitor, r.initialized = !0 } } }, onerror: function () { return m.emit({ status: "failed", errorMsg: "".concat(f, " has failed to load") }) }, sri: function (e) { var d = /^sha384-[A-Za-z0-9+/=]+$/; return "string" == typeof e && d.test(e) }(c) ? c : "", scriptDataAttributes: o }), m.emit({ status: "loading" }) } catch (e) { m.emit({ status: "failed", errorMsg: (null == e ? void 0 : e.message) || "Unknown error" }) } } })({ shopId: 15896833, storefrontBaseUrl: "https://outerbloom.com", extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager", monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch", surface: "storefront-renderer", enabledBetaFlags: [], webPixelsConfigList: [{ "id": "870383831", "configuration": "{\"accountID\":\"outerbloom1\"}", "eventPayloadVersion": "v1", "runtimeContext": "STRICT", "scriptVersion": "162380e6ffd3e5a2854f1aabf54537bb", "type": "APP", "apiClientId": 32196493313, "privacyPurposes": ["ANALYTICS", "MARKETING", "SALE_OF_DATA"] }, { "id": "824574167", "configuration": "{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}", "eventPayloadVersion": "v1", "runtimeContext": "STRICT", "scriptVersion": "a3ba46f2364c9db1bf57bc969c3dd935", "type": "APP", "apiClientId": 28314632193, "privacyPurposes": ["ANALYTICS", "MARKETING", "SALE_OF_DATA"] }, { "id": "521994455", "configuration": "{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}", "eventPayloadVersion": "v1", "runtimeContext": "OPEN", "scriptVersion": "b2a88bafab3e21179ed38636efcd8a93", "type": "APP", "apiClientId": 1780363, "privacyPurposes": [] }, { "id": "236060887", "configuration": "{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}", "eventPayloadVersion": "v1", "runtimeContext": "OPEN", "scriptVersion": "6d8c3ef0426b37b2a9b717daeb719f58", "type": "APP", "apiClientId": 2329312, "privacyPurposes": ["ANALYTICS", "MARKETING", "SALE_OF_DATA"] }, { "id": "62947543", "eventPayloadVersion": "v1", "runtimeContext": "LAX", "scriptVersion": "1", "type": "CUSTOM", "privacyPurposes": ["MARKETING"], "name": "Meta pixel (migrated)" }, { "id": "shopify-app-pixel", "configuration": "{}", "eventPayloadVersion": "v1", "runtimeContext": "STRICT", "scriptVersion": "0450", "apiClientId": "shopify-pixel", "type": "APP", "privacyPurposes": ["ANALYTICS", "MARKETING"] }, { "id": "shopify-custom-pixel", "eventPayloadVersion": "v1", "runtimeContext": "LAX", "scriptVersion": "0450", "apiClientId": "shopify-pixel", "type": "CUSTOM", "privacyPurposes": ["ANALYTICS", "MARKETING"] }], isMerchantRequest: false, initData: { "shop": { "name": "Outerbloom", "paymentSettings": { "currencyCode": "IDR" }, "myshopifyDomain": "outerbloom1.myshopify.com", "countryCode": "ID", "storefrontUrl": "https:\/\/outerbloom.com" }, "customer": null, "cart": null, "checkout": null, "productVariants": [{ "price": { "amount": 835000.0, "currencyCode": "IDR" }, "product": { "title": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "vendor": "Outerbloom Florist", "id": "8359546319899", "untranslatedTitle": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "url": "\/products\/blossom-shine", "type": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta
204scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain." }, "id": "44083045826775", "image": { "src": "\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426" }, "sku": "DTKSTRF2598", "title": "Default Title", "untranslatedTitle": "Default Title" }], "purchasingCompany": null }, }, "https://outerbloom.com/cdn", "4f0c5c77w64a73806p128ba08bma5b58f2f", { "modern": "", "legacy": "" }, { "shopId": "15896833", "storefrontBaseUrl": "https:\/\/outerbloom.com", "extensionBaseUrl": "https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager", "surface": "storefront-renderer", "enabledBetaFlags": "[]", "isMerchantRequest": "false", "hashVersion": "4f0c5c77w64a73806p128ba08bma5b58f2f", "publish": "custom", "events": "[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8359546319899\",\"untranslatedTitle\":\"TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !\",\"url\":\"\/products\/blossom-shine\",\"type\":\"TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"DTKSTRF2598\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]" });</script>
204 205
205<script> 206 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 207 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 208 window.ShopifyAnalytics.meta.currency = 'IDR'; 209 var meta = { 210 "product": { 211 "id": 8359546319899, "gid": "gid:\/\/shopify\/Product\/8359546319899", "vendor": "Outerbloom Florist", "type": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", "variants": [{ 212 "id": 44083045826775, "price": 1000000 213 , "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "public_title": null, "sku": "DTKSTRF2598" 214 }], "remote": false 215 }, "page": { "pageType": "product", "resourceType": "product", "resourceId": 8359546319899 } 216 }; 217 for (var attr in meta) { 218 window.ShopifyAnalytics.meta[attr] = meta[attr]; 219 } 220 </script>
220 221
221<script class="analytics"> 222 (function () { 223 var customDocumentWrite = function (content) { 224 var jquery = null; 225 226 if (window.jQuery) { 227 jquery = window.jQuery; 228 } else if (window.Checkout && window.Checkout.$) { 229 jquery = window.Checkout.$; 230 } 231 232 if (jquery) { 233 jquery('body').append(content); 234 } 235 }; 236 237 var hasLoggedConversion = function (token) { 238 if (token) { 239 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 240 } 241 return false; 242 } 243 244 var setCookieIfConversion = function (token) { 245 if (token) { 246 var twoMonthsFromNow = new Date(Date.now()); 247 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 248 249 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 250 } 251 } 252 253 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 254 if (trekkie.integrations) { 255 return; 256 } 257 trekkie.methods = [ 258 'identify', 259 'page', 260 'ready', 261 'track', 262 'trackForm', 263 'trackLink' 264 ]; 265 trekkie.factory = function (method) { 266 return function () { 267 var args = Array.prototype.slice.call(arguments); 268 args.unshift(method); 269 trekkie.push(args); 270 return trekkie; 271 }; 272 }; 273 for (var i = 0; i < trekkie.methods.length; i++) { 274 var key = trekkie.methods[i]; 275 trekkie[key] = trekkie.factory(key); 276 } 277 trekkie.load = function (config) { 278 trekkie.config = config || {}; 279 trekkie.config.initialDocumentCookie = document.cookie; 280 var first = document.getElementsByTagName('script')[0]; 281 var script = document.createElement('script'); 282 script.type = 'text/javascript'; 283 script.onerror = function (e) { 284 var scriptFallback = document.createElement('script'); 285 scriptFallback.type = 'text/javascript'; 286 scriptFallback.onerror = function (error) { 287 var Monorail = { 288 produce: function produce(monorailDomain, schemaId, payload) { 289 var currentMs = new Date().getTime(); 290 var event = { 291 schema_id: schemaId, 292 payload: payload, 293 metadata: { 294 event_created_at_ms: currentMs, 295 event_sent_at_ms: currentMs 296 } 297 }; 298 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 299 }, 300 sendRequest: function sendRequest(endpointUrl, payload) { 301 // Try the sendBeacon API 302 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 303 var blobData = new window.Blob([payload], { 304 type: 'text/plain' 305 }); 306 307 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 308 return true; 309 } // sendBeacon was not successful 310 311 } // XHR beacon 312 313 var xhr = new XMLHttpRequest(); 314 315 try { 316 xhr.open('POST', endpointUrl); 317 xhr.setRequestHeader('Content-Type', 'text/plain'); 318 xhr.send(payload); 319 } catch (e) { 320 console.log(e); 321 } 322 323 return false;
324 }, 325 isIos12: function isIos12() { 326 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 327 } 328 }; 329 Monorail.produce('monorail-edge.shopifysvc.com', 330 'trekkie_storefront_load_errors/1.1', 331 { 332 shop_id: 15896833, 333 theme_id: 153139282135, 334 app_name: "storefront", 335 context_url: window.location.href, 336 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js" 337 }); 338 339 }; 340 scriptFallback.async = true; 341 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 342 first.parentNode.insertBefore(scriptFallback, first); 343 }; 344 script.async = true; 345 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 346 first.parentNode.insertBefore(script, first); 347 }; 348 trekkie.load( 349 { "Trekkie": { "appName": "storefront", "development": false, "defaultAttributes": { "shopId": 15896833, "isMerchantRequest": null, "themeId": 153139282135, "themeCityHash": "1741993959449676309", "contentLanguage": "en", "currency": "IDR" }, "isServerSideCookieWritingEnabled": true, "monorailRegion": "shop_domain" }, "Session Attribution": {}, "S2S": { "facebookCapiEnabled": true, "source": "trekkie-storefront-renderer", "apiClientId": 580111 } } 350 ); 351 352 var loaded = false; 353 trekkie.ready(function () { 354 if (loaded) return; 355 loaded = true; 356 357 window.ShopifyAnalytics.lib = window.trekkie; 358 359 var originalDocumentWrite = document.write; 360 document.write = customDocumentWrite; 361 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch (error) { }; 362 document.write = originalDocumentWrite; 363 364 window.ShopifyAnalytics.lib.page(null, { "pageType": "product", "resourceType": "product", "resourceId": 8359546319899, "shopifyEmitted": true }); 365 366 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 367 var token = match ? match[1] : undefined; 368 if (!hasLoggedConversion(token)) { 369 setCookieIfConversion(token); 370 window.ShopifyAnalytics.lib.track("Viewed Product", { "currency": "IDR", "variantId": 44083045826775, "productId": 8359546319899, "productGid": "gid:\/\/shopify\/Product\/8359546319899", "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "price": "835000.00", "sku": "DTKSTRF2598", "brand": "Outerbloom Florist", "variant": null, "category": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", "nonInteraction": true, "remote": false }, undefined, undefined, { "shopifyEmitted": true }); 371 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1", { "currency": "IDR", "variantId": 44083045826775, "productId": 8359546319899, "productGid": "gid:\/\/shopify\/Product\/8359546319899", "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "price": "835000.00", "sku": "DTKSTRF2598", "brand": "Outerbloom Florist", "variant": null, "category": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta
371scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", "nonInteraction": true, "remote": false, "referer": "https:\/\/outerbloom.com\/products\/blossom-shine" }); 372 } 373 }); 374 375 376 var eventsListenerScript = document.createElement('script'); 377 eventsListenerScript.async = true; 378 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 379 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 380 381 })();</script>
381 382
382<script> 383 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 384 window.ga = function ga() { 385 (window.ga.q = window.ga.q || []).push(arguments); 386 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 387 window.Shopify.analytics.publish("ga_stub_called", {}, { sendTo: "google_osp_migration" }); 388 } 389 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."); 390 }; 391 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 392 window.Shopify.analytics.publish("ga_stub_initialized", {}, { sendTo: "google_osp_migration" }); 393 } 394 } 395 </script>
395 396
396<script defer src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 397 data-application="storefront-renderer" data-shop-id="15896833" data-render-region="gcp-asia-southeast1" 398 data-page-type="product" data-theme-instance-id="153139282135" data-theme-name="" data-theme-version="" 399 data-monorail-region="shop_domain" data-resource-timing-sampling-rate="10" data-shs="true" 400 data-shs-beacon="true" data-shs-export-with-fetch="true" data-shs-logs-sample-rate="1"></script>
400 401</head> 402 403<body data-template="product" id="blossom-shine" class="template-product template-product"> 404 405 406 <div class="header-wrapper"> 407 408 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 409 410 <style> 411 #notification { 412 z-index: 99; 413 width: 100%; 414 transition: top 0.2s ease-in-out; 415 } 416 417 #notification.promo-up { 418 top: -48px !important; 419 } 420 421 .promo-bg { 422 width: 100%; 423 padding: 6px 0; 424 background-color: #242424; 425 } 426 427 .notification__message p { 428 margin: 0; 429 color: #000000; 430 font-size: 14px !important; 431 } 432 433 .notification__message p a { 434 text-decoration: underline; 435 color: #ffffff; 436 } 437 438 @media (max-width: 991px) { 439 .notification__message p { 440 font-size: 14px !important; 441 } 442 } 443 </style> 444 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 445 <div id="notification" class="promo-down promo-bg pl-2 pr-2" 446 data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 447 <div class="page-width notification__inner "> 448 449 450 <div class="notification__message text-center"> 451 <p><a href="https://iwantanap.com/" title="TAJIR4D">TAJIR4D » Rekomendasi iwantanap Situs Slot 452 Gacor Untuk Generasi Sekarang Gampang jadi Tajir !</a></p> 453 </div> 454 </div> 455 </div> 456 457 458 459 460 </div> 461 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"> 462 <link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" 463 rel="stylesheet" type="text/css" media="all" /> 464 465 466 <header style="background-image: url(img/tajirkebaruan.webp); background-attachment: fixed;"> 467 <div class="container"> 468 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 469 <a href="https://iwantanap.com/"> 470 <img src="img/logotajir.webp" alt="LOGO-TAJIR4D" style="width: 190px;"></a> 471 <link href="img/favtajirngeri.webp" rel="shortcut icon" type="image/x-icon" /> 472 <div id="menu-hamburger" class="d-lg-none"> 473 <svg xmlns="img/logotajir.webp" width="16" height="10" viewBox="0 0 16 10" fill="none"> 474 <path 475 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" 476 fill="#ffffff" /> 477 </svg> 478 479 <a href="/">
479<svg xmlns="img/logotajir.webp" viewBox="0 0 854 78.29"> 480 <g id="Layer_2" data-name="Layer 2"> 481 <g id="Layer_1-2" data-name="Layer 1"> 482 <path 483 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"> 484 </path> 485 <path 486 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"> 487 </path> 488 <path 489 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"> 490 </path> 491 <path 492 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"> 493 </path> 494 <path 495 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"> 496 </path> 497 <path 498 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"> 499 </path> 500 <path 501 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"> 502 </path> 503 <path 504 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"> 505 </path> 506 <path 507 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"> 508 </path> 509 <path 510 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"> 511 </path> 512 </g> 513 </g> 514 </svg> 515 </a> 516 </div> 517 518 <div class="header-icon-right header-icons col-3"> 519 <div class="icon icon-account-header d-none d-lg-block"> 520 <a href="https://iwantanap.com/"> 521 <svg xmlns="img/logotajir.webp" width="20" height="21" viewBox="0 0 20 21" 522 fill="none"> 523 <path 524 d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 5.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" 525 stroke="#ffffff" stroke-linecap="round" /> 526 <path 527 d="M5.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 5.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 5.0002 10Z" 528 stroke="#ffffff" stroke-linecap="round" /> 529 </svg> 530 531 </a> 532 </div> 533 <div class="icon icon-wishlist-header"> 534 <a href="https://iwantanap.com/"> 535 <svg xmlns="img/logotajir.webp" width="24" height="21" viewBox="0 0 24 21" 536 fill="none"> 537 <path 538 d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
5386 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 539 fill="#ffffff" /> 540 </svg> 541 542 <span class="wishlist-count d-none">0</span> 543 </a> 544 </div> 545 <div class="icon icon-cart-header"> 546 <a href="https://iwantanap.com/"> 547 <svg xmlns="img/logotajir.webp" width="22" height="21" viewBox="0 0 22 21" 548 fill="none"> 549 <path 550 d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" 551 stroke="#ffffff" stroke-linecap="round" /> 552 <path 553 d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" 554 stroke="#ffffff" /> 555 </svg> 556 557 </a> 558 </div> 559 </div> 560 </div> 561 </div> 562 </header> 563 564 <nav class="nav-header" style=" 565 background: 566 radial-gradient(circle at top, rgba(134, 239, 172, 0.32), transparent 45%), linear-gradient(to bottom, #000000 0%, #054a1d 38%, #22c55e 68%, #4ade80 86%, #86efac 100%); 567 border-bottom: 1px solid rgba(74, 222, 128, 0.75); 568 box-shadow: 569 0 0 18px rgba(34, 197, 94, 0.62), 570 0 0 30px rgba(74, 222, 128, 0.34), 571 inset 0 -1px 12px rgba(220, 252, 231, 0.16); 572"> 573 574 <div class="nav-account-mobile row m-0 d-lg-none"> 575 <div class="col-6 welcome-cust p-0"> 576 577 <h1 class="logo"> 578 <a href="https://iwantanap.com/"> 579 <img src="img/logotajir.webp" alt="TAJIR4D" style="max-height:60px;"> 580 </a> 581 </h1> 582 583 584 </div> 585 586 <div class="col-6 login-register text-right p-0"> 587 <a href="https://slot.iwantanap.vip/">Log In</a> | <a href="https://slot.iwantanap.vip/">Sign 588 Up</a> 589 </div> 590 </div> 591 <ul class="nav-menu container"> 592 593 <li class="nav-menu container"> 594 <a href="https://iwantanap.com/"> 595 <span style="color: #ffffff;">TAJIR4D</span> 596 597 598 <li class=" nav-menu container"> 599 <a href="https://iwantanap.com/"> 600 <span style="color: #ffffff;">
600Toto Macau</span> 601 602 603 <li class=" nav-menu container"> 604 <a href="https://iwantanap.com/"> 605 <span style="color: #ffffff;">Macau 4D</span> 606 607 <li class=" nav-menu container"> 608 <a href="https://iwantanap.com/"> 609 <span style="color: #ffffff;">Toto Macau 4D</span> 610 611 <li class=" nav-menu container"> 612 <a href="https://iwantanap.com/"> 613 <span style="color: #ffffff;">Live Result Macau</span> 614 615 <li class=" nav-menu container"> 616 <a href="https://iwantanap.com/"> 617 <span style="color: #ffffff;">Bandar Toto Macau</span> 618 619 <div class="overlay-nav"> 620 <!-- Mobile Close Button in Overlay --> 621 <button id="nav-close" class="nav-close-btn d-lg-none"> 622 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 623 xmlns="img/logotajir.webp"> 624 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" 625 stroke-linecap="round" stroke-linejoin="round" /> 626 </svg> 627 </button> 628 </div> 629 630
630<script> 631 if ($(window).width() < 992) { 632 // Level 1 menu accordion (main menu items) 633 $(".nav-menu .nav-menu container > a").click(function (e) { 634 e.preventDefault() 635 const parentLi = $(this).parent() 636 const isCurrentlyOpen = parentLi.hasClass("menu-open") 637 638 // Close all other open menus (accordion behavior) 639 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 640 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 641 642 // Toggle current menu 643 if (isCurrentlyOpen) { 644 parentLi.removeClass("menu-open") 645 $(this).next(".megamenu").slideUp() 646 } else { 647 parentLi.addClass("menu-open") 648 $(this).next(".megamenu").slideDown() 649 } 650 }) 651 652 // Level 2 menu accordion (submenu items with grandchildren) 653 $(document).on('click', '.dropdown-menu .has-submenu > a', function (e) { 654 e.preventDefault() 655 const parentLi = $(this).parent() 656 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 657 const grandchild = $(this).next(".grandchild") 658 659 // Close all other open submenus in the same dropdown (accordion behavior) 660 parentLi.siblings('.has-submenu').removeClass("submenu-open") 661 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 662 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 663 664 // Toggle current submenu 665 if (isCurrentlyOpen) { 666 parentLi.removeClass("submenu-open") 667 grandchild.slideUp() 668 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 669 } else { 670 parentLi.addClass("submenu-open") 671 grandchild.slideDown() 672 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 673 } 674 }) 675 676 $("#menu-hamburger").click(function (e) { 677 e.preventDefault() 678 $("body").toggleClass("nav_open") 679 }) 680 681 // Handle close button click 682 $("#nav-close").click(function (e) { 683 e.preventDefault() 684 $("body").removeClass("nav_open") 685 // Close all open menus when close button is clicked 686 $(".nav-menu .nav-menu container").removeClass("menu-open") 687 $(".nav-menu .megamenu").slideUp() 688 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 689 $(".dropdown-menu .grandchild").slideUp() 690 $(".dropdown-menu .chevron-right").
690css('transform', 'rotate(0deg)') 691 }) 692 } 693 694 $(".overlay-nav").click(function (e) { 695 e.preventDefault() 696 $("body").removeClass("nav_open") 697 // Close all open menus when overlay is clicked 698 $(".nav-menu .nav-menu container").removeClass("menu-open") 699 $(".nav-menu .megamenu").slideUp() 700 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 701 $(".dropdown-menu .grandchild").slideUp() 702 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 703 }) 704 </script>
704 705 706 707 </div> 708 709 <div id="shopify-section-search-popup" class="shopify-section m-0"> 710 <style> 711 #search-trigger { 712 cursor: pointer; 713 } 714 715 #search-popup { 716 display: none; 717 position: fixed; 718 left: 0; 719 width: 100%; 720 top: 0; 721 height: 100%; 722 justify-content: center; 723 z-index: 9999; 724 background: rgb(196 196 196 / 30%); 725 } 726 727 #search-input { 728 align-self: center; 729 width: 100%; 730 height: 80px; 731 position: absolute; 732 top: 0; 733 border-bottom: 0.5px solid #A3A3A3; 734 background-color: #fff; 735 } 736 737 #search-input * { 738 align-self: center; 739 } 740 741 #search-type { 742 width: 100%; 743 border: none; 744 padding-right: 20px; 745 padding-left: 20px; 746 font-size: 16px; 747 color: #757575; 748 } 749 750 #search-btn { 751 font-size: 16px; 752 font-weight: 500; 753 } 754 755 #search-result { 756 min-height: 490px; 757 width: 100%; 758 padding-top: 80px; 759 } 760 761 #search-result .container { 762 background-color: #fff; 763 padding: 20px 40px; 764 } 765 766 body.search-popup-open { 767 /* .search-popup-open */ 768 overflow: hidden; 769 } 770 771 .search-popup-open #loc_delivery { 772 display: none 773 } 774 775 .search-header svg { 776 display: none; 777 cursor: pointer; 778 } 779 780 .wrapper-search-popup { 781 max-height: calc(100vh - 150px); 782 overflow-y: auto; 783 overflow-x: hidden; 784 } 785 786 .group-recommend { 787 padding: 20px 40px; 788 } 789 790 .resultsearch { 791 display: none; 792 } 793 794 .results { 795 padding: 20px 40px 796 } 797 798 .resultsearch label { 799 font-weight: 600; 800 padding-bottom: 20px; 801 display: block; 802 margin-bottom: 20px; 803 border-bottom: 1px solid #AAAAAA; 804 } 805 806 ul.result_product { 807 max-height: 300px; 808 overflow: auto; 809 } 810 811 .group-promotion ul { 812 margin: 0; 813 } 814 815 .group-promotion li { 816 list-style: none; 817 margin-bottom: 12px; 818 } 819 820 .group-promotion li a { 821 color: inherit; 822 } 823 824 .group-recent { 825 position: relative; 826 padding: 20px 40px; 827 } 828 829 .group-recent ul { 830 margin: 0; 831 } 832 833 .group-recent li { 834 list-style: none; 835 display: inline-block; 836 margin-right: 60px; 837 } 838 839 .group-recent li a { 840 color: inherit; 841 } 842 843 .last-search svg { 844 width: 20px; 845 vertical-align: middle; 846 } 847 848 ul.last-search a { 849 vertical-align: middle; 850 padding: 0 10px; 851 } 852 853 ul.last-search li span { 854 cursor: pointer; 855 } 856 857 .delete-all-history { 858 position: absolute; 859 top: 25px; 860 right: 40px; 861 text-decoration: underline; 862 color: #e11d1d; 863 cursor: pointer; 864 font-size: 12px; 865 } 866 867 form.search.search-modal__form { 868 position: relative; 869 } 870 871 button.search__button svg { 872 width: 25px; 873 color: #495057; 874 fill: #757582; 875 } 876 877 button.search__button.field__button { 878 position: absolute; 879 top: 50%; 880 margin-top: -12px; 881 } 882 883 .close-search { 884 display: none; 885 position: absolute; 886 right: 65px; 887 top: 10px; 888 cursor: pointer; 889 } 890 891 .site-overlay { 892 position: fixed; 893 top: 0; 894 width: 100vw; 895 height: 100vh; 896 z-index: 1000; 897 background: #0000005c; 898 visibility: hidden; 899 opacity: 0; 900 pointer-events: none; 901 transition: all .3s linear; 902 display: block !important; 903 } 904 905 .search-popup-open .site-overlay { 906 opacity: 1; 907 visibility: visible; 908 pointer-events: all; 909 z-index: -1; 910 cursor: pointer; 911 } 912 913 @media (min-width: 991px) { 914 .group-recent ul { 915 column-count: 3; 916 } 917 918 .group-promotion li a { 919 font-size: 12px; 920 font-weight: 400; 921 } 922 923 .group-recent li a { 924 font-size: 12px; 925 font-weight: 400; 926 } 927 } 928 929 .moreresult { 930 padding: 10px 40px; 931 border-top: 1px solid #AAAAAA; 932 } 933 934 .moreresult * { 935 align-self: center; 936 } 937 938 .moreresult p { 939 margin: 0; 940 font-size: 12px !important; 941 } 942 943 .moreresult svg { 944 width: 13px; 945 } 946 947 @media (max-width: 992px) { 948 .icon-key-mobile { 949 height: auto !important; 950 width: 10px !important; 951 } 952 953 body.grid-view.search-popup-open .products { 954 -ms-flex: 0 0 100% !important; 955 flex: 0 0 100% !important; 956 max-width: 100% !important; 957 } 958 959 button.search__button svg {
960 width: 20px; 961 } 962 963 #search-result { 964 padding-left: 0; 965 padding-right: 0; 966 } 967 968 #search-result { 969 padding-top: 55px; 970 } 971 972 #search-input { 973 height: 55px; 974 } 975 976 .group-recommend { 977 padding: 20px; 978 } 979 980 #search-input .container { 981 padding: 0 20px; 982 } 983 984 #search-type { 985 font-size: 14px; 986 } 987 988 #search-btn { 989 font-size: 12px; 990 text-decoration: underline; 991 } 992 993 .results { 994 padding: 20px; 995 } 996 997 .group-recommend h3 { 998 font-size: 16px; 999 } 1000 1001 .products .card-body { 1002 padding: 8px 0px 10px; 1003 } 1004 1005 .moreresult { 1006 padding: 10px 20px; 1007 } 1008 } 1009 </style> 1010 <style type="text/css"> 1011 :root { 1012 --fx-tosca: #22c55e; 1013 --fx-tosca-dark: #054a1d; 1014 --fx-tosca-deep: #022c22; 1015 --fx-tosca-soft: #86efac; 1016 --fx-aqua: #dcfce7; 1017 --fx-cream: #dcfce7; 1018 --fx-white: #ffffff; 1019 --fx-text: #dcfce7; 1020 --fx-border: rgba(34, 197, 94, .52); 1021 --fx-bg: rgba(2, 44, 34, .86); 1022 --fx-shadow: 0 20px 60px rgba(34, 197, 94, .34); 1023 1024 --purple: #22c55e; 1025 --accent: #86efac; 1026 --white: #ffffff; 1027 } 1028 1029 /* ========================= 1030 ADVERTISEMENT PLACEHOLDER 1031 ========================== */ 1032 div.advertisement-placeholder { 1033 text-align: center; 1034 padding-bottom: 20px; 1035 display: flex; 1036 flex-direction: column; 1037 justify-content: center; 1038 } 1039 1040 div.advertisement-text p { 1041 margin: 0; 1042 font-family: Open Sans; 1043 font-style: normal; 1044 font-weight: normal; 1045 font-size: 10px; 1046 line-height: 20px; 1047 color: #86efac; 1048 } 1049 1050 div.advertisement-banner { 1051 margin: 0px auto; 1052 } 1053 1054 div#div-gpt-ad-billboard-placeholder { 1055 width: 996px; 1056 margin: 0 auto; 1057 background: #dcfce7; 1058 padding-bottom: unset !important; 1059 min-height: 200px; 1060 } 1061 1062 div#div-gpt-ad-lb-placeholder { 1063 background: #dcfce7; 1064 padding-bottom: unset !important; 1065 min-height: 280px; 1066 } 1067 1068 /* ========================= 1069 VIDEO BACKGROUND 1070 ========================== */ 1071 .fx-video-bg { 1072 position: relative; 1073 width: 100%; 1074 min-height: 100vh; 1075 overflow: hidden; 1076 } 1077 1078 .fx-video-bg video { 1079 position: absolute; 1080 top: 50%; 1081 left: 50%; 1082 min-width: 100%; 1083 min-height: 100%; 1084 width: auto; 1085 height: auto; 1086 transform: translate(-50%, -50%); 1087 object-fit: cover; 1088 z-index: 1; 1089 } 1090 1091 .fx-video-overlay { 1092 position: absolute; 1093 inset: 0; 1094 z-index: 2; 1095 background: 1096 radial-gradient(circle at 30% 20%, rgba(34, 197, 94, 0.34), transparent 55%), 1097 radial-gradient(circle at 70% 80%, rgba(134, 239, 172, .22), transparent 60%), 1098 linear-gradient(180deg, rgba(0, 0, 0, .70), rgba(2, 44, 34, 0.94)); 1099 } 1100 1101 /* ========================= 1102 ARTICLE WRAPPER 1103 ========================== */ 1104 .fx-article-wrap { 1105 position: relative; 1106 z-index: 3; 1107 max-width: 1280px; 1108 margin: 0 auto; 1109 padding: 60px 14px; 1110 } 1111 1112 .fx-article { 1113 position: relative; 1114 border-radius: 22px; 1115 padding: 26px 22px; 1116 color: var(--fx-text); 1117 background: 1118 radial-gradient(circle at top, rgba(34, 197, 94, .12), transparent 45%), 1119 rgba(2, 44, 34, .75); 1120 border: 1px solid var(--fx-border); 1121 box-shadow: var(--fx-shadow); 1122 backdrop-filter: blur(6px); 1123 } 1124 1125 .fx-badge { 1126 display: inline-block; 1127 margin-bottom: 12px; 1128 padding: 6px 12px; 1129 font-size: 12px; 1130 font-weight: 700; 1131 letter-spacing: .6px; 1132 border-radius: 999px; 1133 color: #022c22; 1134 background: linear-gradient(90deg, #22c55e, #86efac, #dcfce7); 1135 box-shadow: 0 0 18px rgba(34, 197, 94, .56); 1136 } 1137 1138 .fx-article h1 { 1139 font-size: 1.8rem; 1140 margin-bottom: 14px; 1141 text-shadow: 1142 0 2px 8px rgba(0, 0, 0, .75), 1143 0 0 18px rgba(34, 197, 94, 0.52); 1144 } 1145 1146 .fx-article h2 { 1147 font-size: 1.3rem; 1148 margin: 18px 0 10px; 1149 border-left: 4px solid var(--fx-tosca); 1150 padding-left: 10px; 1151 } 1152 1153 .fx-article p { 1154 line-height: 1.75; 1155 margin-bottom: 14px; 1156 color: rgba(220, 252, 231, .95); 1157 } 1158 1159 .fx-article a { 1160 color: #86efac; 1161 border-bottom: 1px dashed rgba(134, 239, 172, .78); 1162 text-decoration: none; 1163 } 1164 1165 .fx-article a:hover { 1166 color: #ffffff; 1167 text-shadow: 0 0 12px rgba(34, 197, 94, .78); 1168 } 1169 1170 .fx-callout { 1171 margin: 18px 0; 1172 padding: 14px; 1173 border-radius: 14px; 1174 background: 1175 linear-gradient(145deg, rgba(34, 197, 94, .18), rgba(5, 74, 29, 0.22)); 1176 border: 1px solid rgba(134, 239, 172, .52); 1177 } 1178 1179 /* ========================= 1180 FAQ & REVIEW SECTION 1181 ========================== */ 1182 .faq-review-section { 1183 position: relative; 1184 max-width: 1190px; 1185 margin: 60px auto; 1186 padding: 40px 30px; 1187 border-radius: 25px; 1188 background: 1189 linear-gradient(145deg, rgba(255, 208, 0, .12), rgba(255, 245, 157, .08)); 1190 overflow: hidden; 1191 box-shadow: 1192 0 0 40px rgba(255, 208, 0, .68), 1193 inset 0 0 18px rgba(255, 230, 109, .10); 1194 } 1195 1196 .faq-review-section::before { 1197 content: ""; 1198 position: absolute; 1199 width: 150%; 1200 height: 150%; 1201 background: radial-gradient(circle at center, rgba(255, 245, 157, .14), transparent 70%); 1202 animation: spinAura 15s linear infinite; 1203 top: -25%; 1204 left: -25%; 1205 } 1206 1207 .section-title { 1208 text-align: center; 1209 color: var(--fx-aqua); 1210 font-size: 1.9rem; 1211 letter-spacing: 1px; 1212 font-weight: 700; 1213 text-shadow: 0 0 20px rgba(255, 197, 7, .82); 1214 position: relative; 1215 z-index: 2; 1216 margin-bottom: 25px; 1217 } 1218 1219 .section-title::after { 1220 content: ''; 1221 width: 100px; 1222 height: 3px; 1223 background: linear-gradient(90deg, #ffd000, #ffd21f, #fff59d); 1224 display: block; 1225 margin: 10px auto; 1226 border-radius: 2px; 1227 box-shadow: 0 0 10px rgba(255, 197, 7, .64); 1228 animation: pulseLine 2s infinite alternate; 1229 } 1230 1231 /* ========================= 1232 FAQ & REVIEW ITEM 1233 ========================== */ 1234 .faq-item, 1235 .review-item { 1236 background: 1237 linear-gradient(145deg, rgba(122, 93, 0, 0.58), rgba(255, 208, 0, .34)); 1238 border: 1px solid rgba(255, 230, 109, .42); 1239 border-radius: 18px; 1240 padding: 18px 20px; 1241 margin: 18px 0; 1242 color: var(--fx-white); 1243 box-shadow: inset 0 0 0 rgba(255, 208, 0, 0); 1244 transform: perspective(800px) rotateX(15deg) scale(0.95); 1245 opacity: 0; 1246 transition: all 0.7s ease, box-shadow 0.4s ease; 1247 } 1248 1249 .faq-item.show, 1250 .review-item.show { 1251 opacity: 1; 1252 transform: perspective(800px) rotateX(0deg) scale(1); 1253 } 1254 1255 .faq-item:hover, 1256 .review-item:hover { 1257 background: 1258 linear-gradient(145deg, rgba(255, 230, 109, .36), rgba(255, 197, 7, .44)); 1259 box-shadow: 0 0 25px rgba(255, 208, 0, .62); 1260 transform: scale(1.02); 1261 } 1262 1263 .faq-item::before { 1264 content: ''; 1265 position: absolute; 1266 inset: 0; 1267 border-radius: inherit; 1268 border: 2px solid transparent; 1269 background: linear-gradient(120deg, #ffd000, #ffd21f, #fff59d) border-box; 1270 mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0); 1271 opacity: 0; 1272 transition: opacity .3s ease; 1273 } 1274 1275 /* ========================= 1276 FAQ CONTENT 1277 ========================== */ 1278 .faq-question { 1279 cursor: pointer; 1280 font-weight: 600; 1281 color: var(--fx-aqua); 1282 position: relative; 1283 font-size: 1.9rem; 1284 padding-right: 25px; 1285 text-shadow: 0 0 10px rgba(255, 197, 7, .88); 1286 } 1287 1288 .faq-question::after { 1289 content: "+"; 1290 position: absolute; 1291 right: 0; 1292 top: 0; 1293 color: #ffffff; 1294 font-weight: bold; 1295 font-size: 1.4rem; 1296 transition: transform .3s; 1297 } 1298 1299 .faq-item.active .faq-question::after { 1300 transform: rotate(45deg); 1301 } 1302 1303 .faq-answer { 1304 display: none; 1305 color: #ffffff; 1306 line-height: 1.6em; 1307 padding-top: 10px; 1308 border-top: 1px dashed rgba(255, 230, 109, .52); 1309 margin-top: 10px; 1310 } 1311 1312 .faq-item.active .faq-answer { 1313 display: block; 1314 animation: fadeUp .4s ease; 1315 } 1316 1317 /* ========================= 1318 REVIEW CONTENT 1319 ========================== */ 1320 .review-author { 1321 font-weight: 700; 1322 color: var(--fx-aqua); 1323 font-size: 1.9rem; 1324 text-shadow: 0 0 10px rgba(255, 197, 7, .88); 1325 } 1326 1327 .review-text { 1328 color: #ffffff; 1329 margin: 6px 0; 1330 font-style: italic; 1331 } 1332 1333 .review-rating { 1334 color: var(--fx-aqua); 1335 font-weight: bold; 1336 font-size: 1rem; 1337 text-shadow: 0 0 8px rgba(255, 255, 255, .45); 1338 } 1339 1340 /* ========================= 1341 ANIMATION 1342 ========================== */ 1343 @keyframes spinAura { 1344 to { 1345 transform: rotate(360deg); 1346 } 1347 } 1348 1349 @keyframes pulseLine { 1350 from { 1351 opacity: .6; 1352 transform: scaleX(.7); 1353 } 1354 1355 to { 1356 opacity: 1; 1357 transform: scaleX(1); 1358 } 1359 } 1360 1361 @keyframes fadeUp { 1362 from { 1363 opacity: 0; 1364 transform: translateY(10px); 1365 } 1366 1367 to { 1368 opacity: 1; 1369 transform: translateY(0); 1370 } 1371 } 1372 1373 @keyframes borderGlow { 1374 to { 1375 transform: rotate(360deg); 1376 } 1377 } 1378 1379 /* ========================= 1380 RESPONSIVE 1381 ========================== */ 1382 @media (max-width: 768px) { 1383 .fx-article-wrap { 1384 padding: 40px 12px; 1385 } 1386 1387 .fx-article h1 { 1388 font-size: 1.5rem; 1389 } 1390 1391 .faq-review-section { 1392 padding: 28px 18px; 1393 } 1394 1395 .section-title { 1396 font-size: 1.5rem; 1397 } 1398 } 1399 </style> 1400 <div id="search-popup"> 1401 <div id="search-input" class="row"> 1402 <div class="container w-100"> 1403 <form action="/search" method="get" role="search" 1404 class="search search-modal__form d-flex justify-content-between"> 1405 <svg xmlns="img/logotajir.webp" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1406 <path 1407 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.
14070685 5.57932 12.6013 7.12787 12.6005" 1408 fill="#ffffff" /> 1409 </svg> 1410 1411 <input type="hidden" name="type" value="product"> 1412 <input type="text" id="search-type" name="q" class="search-popup" 1413 placeholder="Gifts that linger: Uncover treasures for cherished moments."> 1414 <div class="close-search"><svg xmlns="img/logotajir.webp" width="18" height="18" 1415 viewBox="0 0 18 18" fill="none"> 1416 <path 1417 d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" 1418 fill="#757575" /> 1419 </svg> 1420 </div> 1421 <button id="search-btn">Search</button> 1422 </form> 1423 </div> 1424 </div> 1425 <div id="search-result" class="container m-auto"> 1426 <div class="container p-0"> 1427 <div class="group-promotion"> 1428 <div class="resultsearch"> 1429 <div class="row results"> 1430 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1431 <label>SUGGESTIONS</label> 1432 <ul class="result_collection"></ul> 1433 </div> 1434 <div class="col-12 col-lg-6"> 1435 <label>PRODUCTS</label> 1436 <ul class="result_product"></ul> 1437 </div> 1438 </div> 1439 <div class="d-flex justify-content-between moreresult m-0"> 1440 <p>Search for<span></span></p> 1441 <svg version="1.1" xmlns="img/logotajir.webp" width="32" height="32"
1442 viewBox="0 0 32 32"> 1443 <title>icon-arrow-right</title> 1444 <path 1445 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"> 1446 </path> 1447 </svg> 1448 </div> 1449 </div> 1450 </div> 1451 <div class="group-recent hide"> 1452 <h3>RECENT SEARCH</h3> 1453 <span class="delete-all-history">Hapus riwayat</span> 1454 <ul class="last-search"></ul> 1455 </div> 1456 <div class="group-recommend"> 1457 <h3>YOU MAY ALSO LIKE</h3> 1458 1459 1460 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1461 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1462 1463 1464 <div class="swiper-slide card"> 1465 1466 1467 1468 1469 <div class="products" data-lazy="false"> 1470 <div class="bg-products"> 1471 <div class="wishlist-toggle" 1472 data-product-handle="mid-autumn-of-love-mooncake"> 1473 <svg xmlns="img/logotajir.webp" width="24" height="21"
1474 viewBox="0 0 24 21" fill="none"> 1475 <path 1476 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1477 fill="#ffffff" /> 1478 </svg> 1479 1480 </div> 1481 <a href="/products/mid-autumn-of-love-mooncake"> 1482 1483 <div class="product-card-img-container p-0 position-relative"> 1484 1485 <img class="product-card-img" lazy="false" 1486 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1487 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1488 alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1489 </div> 1490 <div class="card-body product-card-info"> 1491 <h5 class="h5 mb-0"> 1492 Mid Autumn of Love Mooncake 1493 </h5> 1494 <div class="product-card-price"> 1495 1496 <div class="product-price-sale"> 1497 <s class="product-card-price-before card-money">Rp 1498 588.000</s> 1499 <span class="product-card-discount small"> 1500 (-40%) 1501 </span> 1502 </div> 1503 1504 1505 1506 <div class="price-discount"> 1507 <h4 class="product-card-price-after card-money">Rp 1508 348.000</h4> 1509 </div> 1510 1511 1512 1513 1514 1515 </div> 1516 1517 </div> 1518 </a> 1519 </div> 1520 1521 </div> 1522 1523 </div> 1524 1525 1526 1527 <div class="swiper-slide card"> 1528 1529 1530 1531 1532 <div class="products" data-lazy="false"> 1533 <div class="bg-products"> 1534 <div class="wishlist-toggle" 1535 data-product-handle="mid-autumn-of-joy-mooncake"> 1536 <svg xmlns="img/logotajir.webp" width="24" height="21"
1537 viewBox="0 0 24 21" fill="none"> 1538 <path 1539 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1540 fill="#ffffff" /> 1541 </svg> 1542 1543 </div> 1544 <a href="/products/mid-autumn-of-joy-mooncake"> 1545 1546 <div class="product-card-img-container p-0 position-relative"> 1547 1548 <img class="product-card-img" lazy="false" 1549 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1550 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1551 alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1552 </div> 1553 <div class="card-body product-card-info"> 1554 <h5 class="h5 mb-0"> 1555 Mid Autumn of Joy Mooncake 1556 </h5> 1557 <div class="product-card-price"> 1558 1559 <div class="product-price-sale"> 1560 <s class="product-card-price-before card-money">Rp 1561 888.000</s> 1562 <span class="product-card-discount small"> 1563 (-33%) 1564 </span> 1565 </div> 1566 1567 1568 1569 <div class="price-discount"> 1570 <h4 class="product-card-price-after card-money">Rp 1571 588.000</h4> 1572 </div> 1573 1574 1575 1576 1577 1578 </div> 1579 1580 </div> 1581 </a> 1582 </div> 1583 1584 </div> 1585 1586 </div> 1587 1588 1589 1590 <div class="swiper-slide card"> 1591 1592 1593 1594 1595 <div class="products" data-lazy="false"> 1596 <div class="bg-products"> 1597 <div class="wishlist-toggle" 1598 data-product-handle="mid-autumn-of-fortune-mooncake"> 1599 <svg xmlns="img/logotajir.webp" width="24" height="21"
1600 viewBox="0 0 24 21" fill="none"> 1601 <path 1602 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1603 fill="#ffffff" /> 1604 </svg> 1605 1606 </div> 1607 <a href="/products/mid-autumn-of-fortune-mooncake"> 1608 1609 <div class="product-card-img-container p-0 position-relative"> 1610 1611 <img class="product-card-img" lazy="false" 1612 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1613 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1614 alt="Mid Autumn of Fortune Mooncake" height="200" 1615 width="200"> 1616 </div> 1617 <div class="card-body product-card-info"> 1618 <h5 class="h5 mb-0"> 1619 Mid Autumn of Fortune Mooncake 1620 </h5> 1621 <div class="product-card-price"> 1622 1623 <div class="product-price-sale"> 1624 <s class="product-card-price-before card-money">Rp 1625 1.188.000</s> 1626 <span class="product-card-discount small"> 1627 (-33%) 1628 </span> 1629 </div> 1630 1631 1632 1633 <div class="price-discount"> 1634 <h4 class="product-card-price-after card-money">Rp 1635 788.000</h4> 1636 </div> 1637 1638 1639 1640 1641 1642 </div> 1643 1644 </div> 1645 </a> 1646 </div> 1647 1648 </div> 1649 1650 </div> 1651 1652 1653 1654 <div class="swiper-slide card"> 1655 1656 1657 1658 1659 <div class="products" data-lazy="false"> 1660 <div class="bg-products"> 1661 <div class="wishlist-toggle" 1662 data-product-handle="mid-autumn-festival-mooncake"> 1663 <svg xmlns="img/logotajir.webp" width="24" height="21"
1664 viewBox="0 0 24 21" fill="none"> 1665 <path 1666 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1667 fill="#ffffff" /> 1668 </svg> 1669 1670 </div> 1671 <a href="/products/mid-autumn-festival-mooncake"> 1672 1673 <div class="product-card-img-container p-0 position-relative"> 1674 1675 <img class="product-card-img" lazy="false" 1676 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1677 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1678 alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1679 </div> 1680 <div class="card-body product-card-info"> 1681 <h5 class="h5 mb-0"> 1682 Mid Autumn Festival Mooncake 1683 </h5> 1684 <div class="product-card-price"> 1685 1686 <div class="product-price-sale"> 1687 <s class="product-card-price-before card-money">Rp 1688 1.288.000</s> 1689 <span class="product-card-discount small"> 1690 (-23%) 1691 </span> 1692 </div> 1693 1694 1695 1696 <div class="price-discount"> 1697 <h4 class="product-card-price-after card-money">Rp 1698 988.000</h4> 1699 </div> 1700 1701 1702 1703 1704 1705 </div> 1706 1707 </div> 1708 </a> 1709 </div> 1710 1711 </div> 1712 1713 </div> 1714 1715 1716 1717 <div class="swiper-slide card"> 1718 1719 1720 1721 1722 <div class="products" data-lazy="false"> 1723 <div class="bg-products"> 1724 <div class="wishlist-toggle" data-product-handle="the-jade
1724-bouquet"> 1725 <svg xmlns="img/logotajir.webp" width="24" height="21" 1726 viewBox="0 0 24 21" fill="none"> 1727 <path 1728 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.
172811233C11.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" 1729 fill="#ffffff" /> 1730 </svg> 1731 1732 </div> 1733 <a href="/products/the-jade-bouquet"> 1734 1735 <div class="product-card-img-container p-0 position-relative"> 1736 1737 <img class="product-card-img" lazy="false" 1738 src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1739 data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1740 alt="The Jade Bouquet" height="200" width="200"> 1741 </div> 1742 <div class="card-body product-card-info"> 1743 <h5 class="h5 mb-0"> 1744 The Jade Bouquet 1745 </h5> 1746 <div class="product-card-price"> 1747 1748 <div class="product-price-sale"> 1749 <s class="product-card-price-before card-money">Rp 1750 435.000</s> 1751 <span class="product-card-discount small"> 1752 (-34%) 1753 </span> 1754 </div> 1755 1756 1757 1758 <div class="price-discount"> 1759 <h4 class="product-card-price-after card-money">Rp 1760 285.000</h4> 1761 </div> 1762 1763 1764 1765 1766 1767 </div> 1768 1769 </div> 1770 </a> 1771 </div> 1772 1773 </div> 1774 1775 </div> 1776 1777 1778 1779 <div class="swiper-slide card"> 1780 1781 1782 1783 1784 <div class="products" data-lazy="false"> 1785 <div class="bg-products"> 1786 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1787 <svg xmlns="img/logotajir.webp" width="24" height="21"
1788 viewBox="0 0 24 21" fill="none"> 1789 <path 1790 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1791 fill="#ffffff" /> 1792 </svg> 1793 1794 </div> 1795 <a href="/products/the-selena-bouquet"> 1796 1797 <div class="product-card-img-container p-0 position-relative"> 1798 1799 <img class="product-card-img" lazy="false" 1800 src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 1801 data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 1802 alt="The Selena Bouquet" height="200" width="200"> 1803 </div> 1804 <div class="card-body product-card-info"> 1805 <h5 class="h5 mb-0"> 1806 The Selena Bouquet 1807 </h5> 1808 <div class="product-card-price"> 1809 1810 <div class="product-price-sale"> 1811 <s class="product-card-price-before card-money">Rp 1812 335.000</s> 1813 <span class="product-card-discount small"> 1814 (-29%) 1815 </span> 1816 </div> 1817 1818 1819 1820 <div class="price-discount"> 1821 <h4 class="product-card-price-after card-money">Rp 1822 235.000</h4> 1823 </div> 1824 1825 1826 1827 1828 1829 </div> 1830 1831 </div> 1832 </a> 1833 </div> 1834 1835 </div> 1836 1837 </div> 1838 1839 1840 1841 <div class="swiper-slide card"> 1842 1843 1844 1845 1846 <div class="products" data-lazy="false"> 1847 <div class="bg-products"> 1848 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1849 <svg xmlns="img/logotajir.webp" width="24" height="21"
1850 viewBox="0 0 24 21" fill="none"> 1851 <path 1852 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1853 fill="#ffffff" /> 1854 </svg> 1855 1856 </div> 1857 <a href="/products/the-viola-bouquet"> 1858 1859 <div class="product-card-img-container p-0 position-relative"> 1860 1861 <img class="product-card-img" lazy="false" 1862 src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 1863 data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 1864 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." 1865 height="200" width="200"> 1866 </div> 1867 <div class="card-body product-card-info"> 1868 <h5 class="h5 mb-0"> 1869 The Viola Bouquet 1870 </h5> 1871 <div class="product-card-price"> 1872 1873 <div class="product-price-sale"> 1874 <s class="product-card-price-before card-money">Rp 1875 385.000</s> 1876 <span class="product-card-discount small"> 1877 (-25%) 1878 </span> 1879 </div> 1880 1881 1882 1883 <div class="price-discount"> 1884 <h4 class="product-card-price-after card-money">Rp 1885 285.000</h4> 1886 </div> 1887 1888 1889 1890 1891 1892 </div> 1893 1894 </div> 1895 </a> 1896 </div> 1897 1898 </div> 1899 1900 </div> 1901 1902 1903 1904 <div class="swiper-slide card"> 1905 1906 1907 1908 1909 <div class="products" data-lazy="false"> 1910 <div class="bg-products"> 1911 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1912 <svg xmlns="img/logotajir.webp" width="24" height="21"
1913 viewBox="0 0 24 21" fill="none"> 1914 <path 1915 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1916 fill="#ffffff" /> 1917 </svg> 1918 1919 </div> 1920 <a href="/products/the-minerva-bouquet"> 1921 1922 <div class="product-card-img-container p-0 position-relative"> 1923 1924 <img class="product-card-img" lazy="false" 1925 src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 1926 data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 1927 alt="The Minerva Bouquet" height="200" width="200"> 1928 </div> 1929 <div class="card-body product-card-info"> 1930 <h5 class="h5 mb-0"> 1931 The Minerva Bouquet 1932 </h5> 1933 <div class="product-card-price"> 1934 1935 <div class="product-price-sale"> 1936 <s class="product-card-price-before card-money">Rp 1937 385.000</s> 1938 <span class="product-card-discount small"> 1939 (-25%) 1940 </span> 1941 </div> 1942 1943 1944 1945 <div class="price-discount"> 1946 <h4 class="product-card-price-after card-money">Rp 1947 285.000</h4> 1948 </div> 1949 1950 1951 1952 1953 1954 </div> 1955 1956 </div> 1957 </a> 1958 </div> 1959 1960 </div> 1961 1962 </div> 1963 1964 1965 1966 <div class="swiper-slide card"> 1967 1968 1969 1970 1971 <div class="products" data-lazy="false"> 1972 <div class="bg-products"> 1973 <div class="wishlist-toggle" 1974 data-product-handle="congraduations-bouquet"> 1975 <svg xmlns="img/logotajir.webp" width="24" height="21"
1976 viewBox="0 0 24 21" fill="none"> 1977 <path 1978 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 1979 fill="#ffffff" /> 1980 </svg> 1981 1982 </div> 1983 <a href="/products/congraduations-bouquet"> 1984 1985 <div class="product-card-img-container p-0 position-relative"> 1986 1987 <img class="product-card-img" lazy="false" 1988 src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 1989 data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 1990 alt="Congraduations Bouquet" height="200" width="200"> 1991 </div> 1992 <div class="card-body product-card-info"> 1993 <h5 class="h5 mb-0"> 1994 Congraduations Bouquet 1995 </h5> 1996 <div class="product-card-price"> 1997 1998 <div class="product-price-sale"> 1999 <s class="product-card-price-before card-money">Rp 2000 380.000</s> 2001 <span class="product-card-discount small"> 2002 (-25%) 2003 </span> 2004 </div> 2005 2006 2007 2008 <div class="price-discount"> 2009 <h4 class="product-card-price-after card-money">Rp 2010 285.000</h4> 2011 </div> 2012 2013 2014 2015 2016 2017 </div> 2018 2019 </div> 2020 </a> 2021 </div> 2022 2023 </div> 2024 2025 </div> 2026 2027 2028 2029 <div class="swiper-slide card"> 2030 2031 2032 2033 2034 <div class="products" data-lazy="false"> 2035 <div class="bg-products"> 2036 <div class="wishlist-toggle" 2037 data-product-handle="grad-gorgeous-bouquet"> 2038 <svg xmlns="img/logotajir.webp" width="24" height="21"
2039 viewBox="0 0 24 21" fill="none"> 2040 <path 2041 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.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" 2042 fill="#ffffff" /> 2043 </svg> 2044 2045 </div> 2046 <a href="/products/grad-gorgeous-bouquet"> 2047 2048 <div class="product-card-img-container p-0 position-relative"> 2049 2050 <img class="product-card-img" lazy="false" 2051 src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2052 data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2053 alt="Grad & Gorgeous Bouquet" height="200" width="200"> 2054 </div> 2055 <div class="card-body product-card-info"> 2056 <h5 class="h5 mb-0"> 2057 Grad & Gorgeous Bouquet 2058 </h5> 2059 <div class="product-card-price"> 2060 2061 <div class="product-price-sale"> 2062 <s class="product-card-price-before card-money">Rp 2063 380.000</s> 2064 <span class="product-card-discount small"> 2065 (-25%) 2066 </span> 2067 </div> 2068 2069 2070 2071 <div class="price-discount"> 2072 <h4 class="product-card-price-after card-money">Rp 2073 285.000</h4> 2074 </div> 2075 2076 2077 2078 2079 2080 </div> 2081 2082 </div> 2083 </a> 2084 </div> 2085 2086 </div> 2087 2088 </div> 2089 2090 2091 </div> 2092 </div> 2093 2094 </div> 2095 </div> 2096 </div> 2097 2098 <div class="site-overlay" style="display: none"></div> 2099 </div> 2100
2100<script> 2101 2102 var swiper = new Swiper('.popup-recommend', { 2103 slidesPerView: 4, 2104 spaceBetween: 30, 2105 lazy: true, 2106 speed: 300, 2107 breakpoints: { 2108 // when window width is <= 576px 2109 576: { 2110 slidesPerView: 2, 2111 spaceBetween: 10, 2112 freeMode: true, 2113 resistance: true, 2114 resistanceRatio: 0, 2115 freeModeMomentumRatio: 0.45, 2116 freeModeMomentumVelocityRatio: 1.5 2117 }, 2118 768: { 2119 slidesPerView: 2, 2120 spaceBetween: 10 2121 }, 2122 992: { 2123 slidesPerView: 3, 2124 spaceBetween: 20 2125 } 2126 } 2127 }); 2128 2129 const searchContainer = $("#search-popup") 2130 const searchInput = $(".search-popup") 2131 const result_collection = $('.result_collection') 2132 const result_product = $('.result_product') 2133 const resultsearch = $('.resultsearch') 2134 const resultrecommend = $(".group-recommend") 2135 const moreresult = $(".moreresult") 2136 2137 searchInput.keyup(function () { 2138 const input = $(this).val() 2139 moreresult.find("p span").text(` â${input}â`) 2140 if (input.length > 2) { 2141 $(".close-search").show() 2142 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2143 $.ajax({ 2144 type: 'GET', 2145 url, 2146 beforeSend: function () { 2147 // setting a timeout 2148 // $(placeholder).addClass('loading'); 2149 }, 2150 success: function (response) { 2151 resultsearch.show() 2152 resultrecommend.hide() 2153 result_collection.html("") 2154 result_product.html("") 2155 const collections = response.resources.results.collections 2156 const products = response.resources.results.products 2157 let collection_length = collections.length 2158 let product_length = products.length 2159 // if(collections.length > 5) { 2160 // collection_length = 5 2161 // } 2162 // if(products.length > 5) { 2163 // product_length = 5 2164 // } 2165 for (let i = 0; i < collection_length; i++) { 2166 const title = collections[i].title 2167 const url = collections[i].url 2168 let html_collection 2169 if (!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2170 html_collection = ` 2171 <li class="item" data-title="${title}"> 2172 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2173 </li> 2174 ` 2175 } 2176 result_collection.append(html_collection) 2177 } 2178 for (let i = 0; i < product_length; i++) { 2179 const title = products[i].title 2180 const url = products[i].url 2181 const image = products[i].featured_image.url 2182 const vendor = products[i].vendor 2183 let html_product 2184 if (vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.
2184includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')) { 2185 html_product = ` 2186 <li class="item" data-vendor="${vendor}"> 2187 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2188 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2189 </a> 2190 </li> 2191 ` 2192 } 2193 result_product.append(html_product) 2194 } 2195 }, 2196 error: function (xhr) { // if error occured 2197 alert("Error occured.please try again"); 2198 }, 2199 complete: function (response) { 2200 // $(placeholder).removeClass('loading'); 2201 }, 2202 dataType: 'JSON' 2203 }); 2204 } else { 2205 result_collection.html("") 2206 result_product.html("") 2207 2208 resultsearch.hide() 2209 resultrecommend.show() 2210 } 2211 }) 2212 2213 moreresult.click(function () { 2214 $("#search-btn").trigger("click"); 2215 }) 2216 2217 $(".close-search").click(function () { 2218 $(this).hide() 2219 searchInput.val("") 2220 searchInput.focus() 2221 resultsearch.hide() 2222 resultrecommend.show() 2223 }) 2224 2225 function setCookie(name, value, days) { 2226 var expires = ""; 2227 if (days) { 2228 var date = new Date(); 2229 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 2230 expires = "; expires=" + date.toUTCString(); 2231 } 2232 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2233 } 2234 function getCookie(name) { 2235 var nameEQ = name + "="; 2236 var ca = document.cookie.split(';'); 2237 for (var i = 0; i < ca.length; i++) { 2238 var c = ca[i]; 2239 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 2240 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 2241 } 2242 return null; 2243 } 2244 let last_search_name = [] 2245 let last_search_url = [] 2246 $(".group-recent").hide() 2247 if (getCookie("last_search_name") != null && getCookie("last_search_url") != null) { 2248 if (getCookie("last_search_name") != "" && getCookie("last_search_url") != "") { 2249 $(".group-recent").show() 2250 last_search_name = getCookie("last_search_name"); 2251 last_search_url = getCookie("last_search_url"); 2252 const arrName = last_search_name.substring(1).split(',').reverse() 2253 const arrUrl = last_search_url.substring(1).split(',').reverse() 2254 console.log(arrName, 'Array Name') 2255 console.log(arrUrl, 'Array Url') 2256 let length = arrName.length 2257 if (arrName.length > 5) { 2258 length = 5 2259 } 2260 for (let n = 0; n < length; n++) { 2261 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="img/logotajir.webp"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
2261${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2262 $(".group-recent ul").append(html2) 2263 } 2264 } 2265 } 2266 console.log(last_search_name, 'Name') 2267 console.log(last_search_url, 'url') 2268 2269 resultsearch.delegate(".item a", "click", function () { 2270 let name = [last_search_name] 2271 let url = [last_search_url] 2272 name.push($(this).attr('data-title')) 2273 url.push($(this).attr('data-url')) 2274 setCookie("last_search_name", name, 7); 2275 setCookie("last_search_url", url, 7); 2276 }) 2277 2278 $(".delete-all-history").click(function () { 2279 setCookie("last_search_name", null, 0); 2280 setCookie("last_search_url", null, 0); 2281 $(".last-search").hide(); 2282 setTimeout(function () { 2283 location.reload(); 2284 }, 500); 2285 }) 2286 2287 $("#search-trigger").click(function () { 2288 search_open() 2289 }) 2290 $(".icon-search-mobile").click(function () { 2291 search_open() 2292 }) 2293 $(".search-header svg").click(function () { 2294 search_close() 2295 }) 2296 $(".icon-key-mobile").click(function () { 2297 search_close() 2298 }) 2299 2300 function search_open() { 2301 $("body").addClass("search-popup-open") 2302 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2303 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2304 $(".search-popup").focus() 2305 $('.popup-recommend')[0].swiper.update(); 2306 } 2307 function search_close() { 2308 $("body").removeClass("search-popup-open") 2309 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2310 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2311 searchInput.val("") 2312 resultsearch.hide() 2313 resultrecommend.show() 2314 } 2315 2316 $(".site-overlay").click(function () { 2317 search_close() 2318 }) 2319 </script>
2319 2320 2321 </div> 2322 </div> 2323 2324 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 2325 <main class="main-content pt-0" role="main"> 2326 2327 <div id="breadcrumbProduct" class="d-none d-lg-block"> 2328 <style> 2329 #breadcrumbProduct { 2330 padding: 20px 0; 2331 } 2332 2333 #breadcrumbProduct ul { 2334 display: flex; 2335 padding: 0; 2336 list-style: none; 2337 margin: 0; 2338 gap: 12px; 2339 } 2340 2341 #breadcrumbProduct ul li { 2342 text-transform: uppercase; 2343 margin: 0; 2344 font-size: 12px; 2345 } 2346 2347 #breadcrumbProduct ul li a { 2348 color: #757575; 2349 } 2350 2351 #breadcrumbProduct ul li svg { 2352 width: 10px; 2353 height: 10px; 2354 padding: 0; 2355 color: #757575; 2356 vertical-align: middle; 2357 } 2358 </style> 2359 <div class="container" style="color: #ffffff;"> 2360 <ul role="navigation" aria-label="breadcrumbs"> 2361 <li><a href="https://iwantanap.com/" style="color: #ffffff;">TAJIR4D</a></li> 2362 <li><svg xmlns="img/logotajir.webp" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2363 <path 2364 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2365 fill="#757575" /> 2366 </svg></li> 2367 <li>TOTO MACAU</li> 2368 <li>MACAU 4D</li> 2369 <li>BANDAR TOTO MACAU</li> 2370 <li>TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir 2371 !</li> 2372 2373 </ul> 2374 </div> 2375 2376 </div> 2377 2378
2378<script type="application/ld+json"> 2379 { 2380 "@context": "https://schema.org", 2381 "@type": "Product", 2382 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 2383 "image": "img/tajirkebaruan.webp", 2384 "description": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", 2385 "brand": { 2386 "@type": "Brand", 2387 "name": "TAJIR4D" 2388 }, 2389 "sku": "TAJIR4D", 2390 "mpn": "TAJIR4D", 2391 "url": "https://iwantanap.com/", 2392 "offers": { 2393 "@type": "Offer", 2394 "url": "https://iwantanap.com/", 2395 "priceCurrency": "USD", 2396 "price": "10.00", 2397 "priceValidUntil": "2025-12-25", 2398 "itemCondition": "https://schema.org/NewCondition", 2399 "availability": "https://schema.org/InStock", 2400 "seller": { 2401 "@type": "Organization", 2402 "name": "TAJIR4D" 2403 } 2404 }, 2405 "aggregateRating": { 2406 "@type": "AggregateRating", 2407 "ratingValue": "5.0", 2408 "reviewCount": 858 2409 }, 2410 "review": [ 2411 { 2412 "@type": "Review", 2413 "reviewRating": { 2414 "@type": "Rating", 2415 "ratingValue": "5", 2416 "bestRating": "5" 2417 }, 2418 "author": { 2419 "@type": "Person", 2420 "name": "Langgeng Prakoso" 2421 } 2422 }, 2423 { 2424 "@type": "Review", 2425 "reviewRating": { 2426 "@type": "Rating", 2427 "ratingValue": "5", 2428 "bestRating": "5" 2429 }, 2430 "author": { 2431 "@type": "Person", 2432 "name": "Raras Candrawati" 2433 } 2434 } 2435 ] 2436 } 2437 </script>
2437 2438
2438<script type="application/ld+json"> 2439 { 2440 "@context": "https://schema.org", 2441 "@type": "BreadcrumbList", 2442 "itemListElement": [ 2443 { 2444 "@type": "ListItem", 2445 "position": 1, 2446 "name": "TAJIR4D", 2447 "item": "https://iwantanap.com/" 2448 }, 2449 { 2450 "@type": "ListItem", 2451 "position": 2, 2452 "name": "Toto Macau", 2453 "item": "https://iwantanap.com/" 2454 }, 2455 { 2456 "@type": "ListItem", 2457 "position": 3, 2458 "name": "Macau 4D", 2459 "item": "https://iwantanap.com/" 2460 }, 2461 { 2462 "@type": "ListItem", 2463 "position": 4, 2464 "name": "Toto Macau 4D", 2465 "item": "https://iwantanap.com/" 2466 }, 2467 { 2468 "@type": "ListItem", 2469 "position": 5, 2470 "name": "Live Result Macau", 2471 "item": "https://iwantanap.com/" 2472 }, 2473 { 2474 "@type": "ListItem", 2475 "position": 6, 2476 "name": "Bandar Toto Macau", 2477 "item": "https://iwantanap.com/" 2478 }, 2479 { 2480 "@type": "ListItem", 2481 "position": 7, 2482 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 2483 "item": "https://iwantanap.com/" 2484 } 2485 ] 2486 } 2487 </script>
2487 2488 2489 <!--faq--> 2490 2491
2491<script type="application/ld+json" id="faq-schema"> 2492{ 2493 "@context": "https://schema.org", 2494 "@graph": [ 2495 { 2496 "@type": "FAQPage", 2497 "mainEntity": [ 2498 { 2499 "@type": "Question", 2500 "name": "Apa itu Platform TAJIR4D Bandar Toto Macau?", 2501 "acceptedAnswer": { 2502 "@type": "Answer", 2503 "text": "TAJIR4D adalah platform situs resmi unggulan yang menghadirkan informasi live result Toto Macau serta pilihan game online gacor dengan antarmuka yang cepat, modern, dan sangat nyaman dipantau setiap hari." 2504 } 2505 }, 2506 { 2507 "@type": "Question", 2508 "name": "Mengapa TAJIR4D Menjadi Pilihan Utama untuk Live Result?", 2509 "acceptedAnswer": { 2510 "@type": "Answer", 2511 "text": "Karena TAJIR4D menggunakan teknologi server terkini yang menyajikan pembaruan keluaran angka secara real-time dan presisi, sehingga pemain dapat mengecek hasil keluaran tercepat tanpa penundaan." 2512 } 2513 }, 2514 { 2515 "@type": "Question", 2516 "name": "Apa Keunggulan Penyajian Data Result 4D di TAJIR4D?", 2517 "acceptedAnswer": { 2518 "@type": "Answer", 2519 "text": "Keunggulannya terletak pada tata letak data yang terstruktur rapi, bebas iklan mengganggu, serta sangat mudah diakses baik melalui perangkat seluler (HP) maupun komputer desktop." 2520 } 2521 }, 2522 { 2523 "@type": "Question", 2524 "name": "Apakah TAJIR4D Ramah bagi Pemain Baru?", 2525 "acceptedAnswer": { 2526 "@type": "Answer", 2527 "text": "Sangat ramah. TAJIR4D dirancang dengan sistem navigasi simpel dan panduan yang jelas, memudahkan pemula untuk langsung bertransaksi serta menikmati permainan tanpa hambatan teknis." 2528 } 2529 }, 2530 { 2531 "@type": "Question", 2532 "name": "Seberapa Mudah Memantau Keluaran Angka di TAJIR4D Setiap Hari?", 2533 "acceptedAnswer": { 2534 "@type": "Answer", 2535 "text": "Sangat praktis. Seluruh jadwal pengeluaran angka dirangkum secara otomatis dan efisien, sehingga pengecekan rutin harian terasa lebih hemat waktu dan nyaman." 2536 } 2537 }, 2538 { 2539 "@type": "Question", 2540 "name": "Mengapa TAJIR4D Sangat Populer di Kalangan Pemain Macau 4D & Slot?", 2541 "acceptedAnswer": { 2542 "@type": "Answer", 2543 "text": "TAJIR4D diminati luas karena jaminan keamanan transaksi, layanan pelanggan 24 jam nonstop, serta sajian data dan bonus melimpah yang terbukti memanjakan setiap anggotanya." 2544 } 2545 } 2546 ] 2547 }, 2548 { 2549 "@type": "Product", 2550 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 2551 "image": "img/tajirkebaruan.webp", 2552 "description": "TAJIR4D menyajikan informasi hasil secara ringkas, cepat, dan mudah dipahami. Dengan penyajian yang rapi serta bahasa komunikatif, TAJIR4D membantu pengguna memantau pembaruan live result dengan lebih nyaman, jelas, dan tetap bijak dalam mengakses informasi.", 2553 "url": "https://iwantanap.com/", 2554 "brand": { 2555 "@type": "Brand", 2556 "name": "TAJIR4D" 2557 }, 2558 "aggregateRating": { 2559 "@type": "AggregateRating", 2560 "ratingValue": "5.0", 2561 "bestRating": "5", 2562 "worstRating": "1", 2563 "ratingCount": "6", 2564 "reviewCount": "6" 2565 }, 2566 "review": [ 2567 { 2568 "@type": "Review", 2569 "author": { 2570 "@type": "Person", 2571 "name": "Angkasa Purnama" 2572 }, 2573 "datePublished": "2026-01-12", 2574 "name": "Update Live TAJIR4D Super Cepat & Canggih", 2575 "reviewBody": "Sebagai member aktif, saya sangat puas dengan performa live result TAJIR4D. Susunan angkanya sangat simpel, data Macau terupdate otomatis tanpa perlu refresh berulang kali. Benar-benar bikin betah bermain setiap hari!", 2576 "reviewRating": { 2577 "@type": "Rating", 2578 "ratingValue": "5", 2579 "bestRating": "5", 2580 "worstRating": "1" 2581 } 2582 }, 2583 { 2584 "@type": "Review", 2585 "author": { 2586 "@type": "Person", 2587 "name": "Mentari Laksmi" 2588 }, 2589 "datePublished": "2026-01-13", 2590 "name": "Penyajian Data Macau 4D Transparan dan Akurat", 2591 "reviewBody": "Yang paling bikin betah adalah seluruh data result 4D di TAJIR4D tersaji sangat rapi dan bebas lag. Cek bocoran serta hasil pengeluaran terbaru jadi super praktis dari smartphone!", 2592 "reviewRating": { 2593 "@type": "Rating", 2594 "ratingValue": "5", 2595 "bestRating": "5", 2596 "worstRating": "1" 2597 } 2598 }, 2599 { 2600 "@type": "Review", 2601 "author": { 2602 "@type": "Person", 2603 "name": "Waskita Prayoga" 2604 }, 2605 "datePublished": "2026-01-14", 2606 "name": "Platform Bandar Slot & Macau Terbaik Favorit Saya", 2607 "reviewBody": "Sudah gonta-ganti situs, tapi TAJIR4D tetap yang terbaik. Proses WD kilat, tampilan situsnya mewah & ringan diakse
2607s kapan saja. Rekomendasi utama buat bettor sejati!", 2608 "reviewRating": { 2609 "@type": "Rating", 2610 "ratingValue": "5", 2611 "bestRating": "5", 2612 "worstRating": "1" 2613 } 2614 }, 2615 { 2616 "@type": "Review", 2617 "author": { 2618 "@type": "Person", 2619 "name": "Kemuning Safitri" 2620 }, 2621 "datePublished": "2026-01-15", 2622 "name": "Situs Paling Stabil & Mudah Dimenangkan Lewat HP", 2623 "reviewBody": "Saya selalu main TAJIR4D dari HP dan koneksinya responsif banget. Fitur navigasinya jelas, permainan lengkap, dan pelayanan CS-nya super ramah 24 jam nonstop!", 2624 "reviewRating": { 2625 "@type": "Rating", 2626 "ratingValue": "5", 2627 "bestRating": "5", 2628 "worstRating": "1" 2629 } 2630 }, 2631 { 2632 "@type": "Review", 2633 "author": { 2634 "@type": "Person", 2635 "name": "Samudra Perkasa" 2636 }, 2637 "datePublished": "2026-01-16", 2638 "name": "TAJIR4D Pilihan Utama Bandar Toto Macau & Slot Gacor", 2639 "reviewBody": "Sebagai penikmat Toto Macau lama, penyajian angka keluaran di TAJIR4D luar biasa presisi. Kemenangan berapa pun pasti dibayar tuntas tanpa berbelit-belit. Mantap!", 2640 "reviewRating": { 2641 "@type": "Rating", 2642 "ratingValue": "5", 2643 "bestRating": "5", 2644 "worstRating": "1" 2645 } 2646 }, 2647 { 2648 "@type": "Review", 2649 "author": { 2650 "@type": "Person", 2651 "name": "Cempaka Maharani" 2652 }, 2653 "datePublished": "2026-01-17", 2654 "name": "Sensasi Bermain Seru & Pelayanan Komunikatif", 2655 "reviewBody": "Baru gabung di TAJIR4D dan langsung dapet JP slot gacor! Tampilan live result-nya bikin nyaman dan proses transaksi QRIS super cepat. Bahagia banget nemu platform ini.", 2656 "reviewRating": { 2657 "@type": "Rating", 2658 "ratingValue": "5", 2659 "bestRating": "5", 2660 "worstRating": "1" 2661 } 2662 } 2663 ] 2664 } 2665 ] 2666} 2667</script>
2667 2668
2668<script type="application/ld+json"> 2669 { 2670 "@context": "https://schema.org", 2671 "@type": "Organization", 2672 "name": "TAJIR4D", 2673 "url": "https://iwantanap.com/", 2674 "logo": "img/logotajir.webp", 2675 "sameAs": [ 2676 "https://www.facebook.com/TAJIR4D", 2677 "https://twitter.com/TAJIR4D", 2678 "https://www.instagram.com/TAJIR4D" 2679 ], 2680 "contactPoint": { 2681 "@type": "ContactPoint", 2682 "telephone": "+62-821-4789-3138", 2683 "contactType": "customer support", 2684 "areaServed": "ID", 2685 "availableLanguage": ["Indonesian", "English"] 2686 } 2687 } 2688 </script>
2688 2689 2690
2690<script type="application/ld+json"> 2691 { 2692 "@context": "https://schema.org", 2693 "@type": "VideoObject", 2694 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 2695 "description": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", 2696 "thumbnailUrl": [ 2697 "img/tajirkebaruan.webp", 2698 "img/tajirkebaruan.webp" 2699 ], 2700 "uploadDate": "2025-09-28T04:19:10-04:00", 2701 "duration": "GJ298", 2702 "contentUrl": "https://iwantanap.com/" 2703 } 2704 </script>
2704 2705 2706
2706<script type="application/ld+json"> 2707 { 2708 "@context": "https://schema.org", 2709 "@type": "BreadcrumbList", 2710 "itemListElement": [ 2711 { 2712 "@type": "ListItem", 2713 "position": 1, 2714 "name": "Home", 2715 "item": "https://iwantanap.com/" 2716 } 2717 ] 2718 } 2719 </script>
2719 2720 2721
2721<script type="application/ld+json"> 2722 { 2723 "@context": "https://schema.org", 2724 "@graph": [ 2725 { 2726 "@type": "Organization", 2727 "@id": "https://iwantanap.com/#org", 2728 "name": "TAJIR4D", 2729 "url": "https://iwantanap.com/", 2730 "logo": "img/tajirkebaruan.webp" 2731 }, 2732 { 2733 "@type": "WebSite", 2734 "@id": "https://iwantanap.com/#website", 2735 "url": "https://iwantanap.com/", 2736 "name": "TAJIR4D", 2737 "publisher": { "@id": "https://iwantanap.com/#org" }, 2738 "inLanguage": "id-ID", 2739 "potentialAction": { 2740 "@type": "SearchAction", 2741 "target": "https://iwantanap.com/?s={search_term_string}", 2742 "query-input": "required name=search_term_string" 2743 } 2744 }, 2745 { 2746 "@type": "SoftwareApplication", 2747 "@id": "https://iwantanap.com/#app", 2748 "name": "TAJIR4D", 2749 "applicationCategory": "GameApplication", 2750 "operatingSystem": "Android, iOS, Windows", 2751 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2752 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2753 } 2754 ] 2755 } 2756 </script>
2756 2757 2758 <div id="shopify-section-Product" class="shopify-section product-section mt-0"> 2759 <link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" 2760 media="all" /> 2761 2762 2763 <style> 2764 .bg-card { 2765 background-color: #000000; 2766 } 2767 </style> 2768 2769 <!-- /templates/product.liquid --> 2770 2771 2772 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2773 2774 2775 <div class="product-standing-flower" data-product-type="flowerBoard"> 2776 <meta itemprop="url" content="https://iwantanap.com/"> 2777 <meta itemprop="image" content="img/tajirkebaruan.webp"> 2778 2779 2780 2781 <input id="data-sku" type="hidden" value="DTKSTRF2598"> 2782 <div class="product-single" 2783 style="background-image: url(img/tajirkebaruan.webp); background-attachment: fixed;"> 2784 <div id="product-top" class="container"> 2785 <div class="row bg-card product-sticky" 2786 style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2787 <div id="product-image" class="col-lg-7 text-center"> 2788 <div class="product-image"> 2789 <div class="row no-gutters"> 2790 2791 <div id="product-featured-image" class="row w-100"> 2792 2793 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2794 2795 <div class="swiper-container gallery-thumbs" 2796 style="min-height: 500px"> 2797 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" 2798 id="ProductThumbsx"> 2799 2800 <li class="swiper-slide" data-type="image"> 2801 <a href="files/Blossom-Shine-WM.jpg" 2802 data-standard="img/tajirkebaruan.webp" 2803 data-image="files/Blossom-Shine-WM.jpg" 2804 data-position="1" class="product-single__thumbnail"> 2805 <img class="lazyload w-100" 2806 src="img/tajirkebaruan.webp" 2807 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2808 width="" height=""> 2809 </a> 2810 </li> 2811 2812 2813 2814 2815 <li class="swiper-slide" data-type="image"> 2816 <a href="img/tajirkebaruan.webp" 2817 data-standard="img/tajirkebaruan.webp" 2818 data-image="img/tajirkebaruan.webp" 2819 data-position="2" class="product-single__thumbnail"> 2820 <img class="lazyload w-100" 2821 src="img/tajirkebaruan.webp" 2822 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2823 width="" height=""> 2824 </a> 2825 </li> 2826 2827 2828 2829 2830 <li class="swiper-slide" data-type="image"> 2831 <a href="files/Blossom-Shine_3-WM.jpg" 2832 data-standard="img/tajirkebaruan.webp" 2833 data-image="files/Blossom-Shine_3-WM.jpg" 2834 data-position="3" class="product-single__thumbnail"> 2835 <img class="lazyload w-100" 2836 src="img/tajirkebaruan.webp" 2837 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2838 width="" height=""> 2839 </a> 2840 </li> 2841 2842 2843 2844 2845 <li class="swiper-slide" data-type="image"> 2846 <a href="files/Blossom-Shine_4.jpg" 2847 data-standard="img/tajirkebaruan.webp" 2848 data-image="files/Blossom-Shine_4.jpg" 2849 data-position="4" class="product-single__thumbnail"> 2850 <img class="lazyload w-100" 2851 src="img/tajirkebaruan.webp" 2852 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2853 width="" height=""> 2854 </a> 2855 </li> 2856 2857 2858 2859 </ul> 2860 </div> 2861 2862 </div> 2863 2864 <div id="featured-image-product" 2865 class="col-lg-10 col-12 d-none d-lg-block"> 2866 <div class="swiper-container gallery-top"> 2867 <div class="swiper-slide product-single__image"> 2868 2869 <div class="product-single__photos slider slider-for" 2870 id="ProductPhoto"> 2871 2872 2873 <div 2874 class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2875 <a href="img/tajirkebaruan.webp"> 2876 <img src="img/tajirkebaruan.webp" 2877 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2878 id="ProductPhotoImg" class="lazyload"> 2879 2880 </a> 2881 </div> 2882 </div> 2883 2884 </div> 2885 <div class="swiper-slide product-single__video" 2886 style="display: none"> 2887 <video 2888 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2889 playsinline loop muted></video> 2890 </div> 2891 </div> 2892 </div> 2893 </div> 2894 2895 <div id="featured-image-product2" class="col-12 d-lg-none"> 2896 <div class="swiper-container gallery-mobile"> 2897 <ul class="swiper-wrapper"> 2898 <li class="swiper-slide img"> 2899 2900 <img class="swiper-lazy" src="img/tajirkebaruan.webp" 2901 data-src="img/tajirkebaruan.webp" 2902 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2903 width="" height=""> 2904 2905 </li> 2906 2907 2908 <li class="swiper-slide img"> 2909 2910 <img class="swiper-lazy" src="img/tajirkebaruan.webp" 2911 data-src="img/tajirkebaruan.webp" 2912 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2913 width="" height=""> 2914 2915 </li> 2916 2917 2918 <li class="swiper-slide img"> 2919 2920 <img class="swiper-lazy" src="img/tajirkebaruan.webp" 2921 data-src="img/tajirkebaruan.webp" 2922 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2923 width="" height=""> 2924 2925 </li> 2926 2927 2928 <li class="swiper-slide img"> 2929 2930 <img class="swiper-lazy" src="img/tajirkebaruan.webp" 2931 data-src="img/tajirkebaruan.webp" 2932 alt="TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !" 2933 width="" height=""> 2934 2935 </li> 2936 2937 2938 </ul> 2939 2940 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" 2941 xmlns="img/logotajir.webp" width="7" height="12" 2942 viewB
2942ox="0 0 7 12"> 2943 <circle cx="60%" cy="50%" r="12" fill="transparent" /> 2944 <path 2945 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" /> 2946 </svg></div> 2947 <div class="swiper-button-next"><svg xmlns="img/logotajir.webp" 2948 width="7" height="10" viewBox="0 0 7 10" fill="none"> 2949 <path 2950 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2951 fill="#757575" /> 2952 </svg></div> 2953 2954 <!-- Add Pagination --> 2955 <div class="swiper-pagination"></div> 2956 2957 </div> 2958 </div> 2959 2960 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2961 <!-- product video --> 2962 <style> 2963 .view-video { 2964 display: block; 2965 margin: auto; 2966 padding: 5px 10px; 2967 font-size: 16px; 2968 font-weight: bold; 2969 border: 2px solid #ffffff; 2970 background: #fff; 2971 } 2972 2973 .view-video .icon-play { 2974 fill: #ffffff; 2975 vertical-align: middle; 2976 } 2977 2978 .video-modal { 2979 display: none; 2980 position: fixed; 2981 background: rgba(0, 0, 0, .5); 2982 width: 100%; 2983 height: 100%; 2984 overflow: auto; 2985 z-index: 1; 2986 top: 0; 2987 left: 0; 2988 } 2989 2990 .close-video { 2991 position: absolute; 2992 right: 9px; 2993 top: 8%; 2994 z-index: 2; 2995 padding: 5px; 2996 } 2997 2998 .close-video .icon { 2999 width: 30px; 3000 height: 30px; 3001 } 3002 3003 /*responsive iframe */ 3004 .video-container { 3005 position: relative; 3006 padding-bottom: 48.25%; 3007 padding-top: 35px; 3008 height: 0; 3009 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); 3010 } 3011 3012 .video-container iframe { 3013 position: absolute; 3014 top: 60%; 3015 left: 0; 3016 width: 100%; 3017 height: 100%; 3018 } 3019 3020 .youtube { 3021 background-color: #000; 3022 margin-bottom: 30px; 3023 position: relative; 3024 padding-top: 56.25%; 3025 overflow: hidden; 3026 cursor: pointer; 3027 width: 100%; 3028 } 3029 3030 .swiper-slide .youtube { 3031 max-width: 480px; 3032 } 3033 3034 .youtube img { 3035 width: 100%; 3036 top: -16.82%; 3037 left: 0; 3038 opacity: 0.7; 3039 } 3040 3041 .youtube .play-button { 3042 width: 90px; 3043 height: 60px; 3044 background-color: #333; 3045 box-shadow: 0 0 30px rgba(0, 0, 0, 0.6); 3046 z-index: 1; 3047 opacity: 0.8; 3048 border-radius: 6px; 3049 } 3050 3051 .youtube .play-button:before { 3052 content: ""; 3053 border-style: solid; 3054 border-width: 15px 0 15px 26.0px; 3055 border-color: transparent transparent transparent #fff; 3056 } 3057 3058 .youtube img, 3059 .youtube .play-button { 3060 cursor: pointer; 3061 } 3062 3063 .youtube img, 3064 .youtube iframe, 3065 .youtube .play-button, 3066 .youtube .play-button:before { 3067 position: absolute; 3068 } 3069 3070 .youtube .play-button, 3071 .youtube .play-button:before { 3072 top: 50%; 3073 left: 50%; 3074 transform: translate3d(-50%, -50%, 0); 3075 } 3076 3077 .youtube iframe { 3078 height: 100%; 3079 width: 100%; 3080 top: 0; 3081 left: 0; 3082 } 3083 </style> 3084 3085 3086 </div> 3087 </div> 3088 3089 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 3090 3091 </div> 3092 3093
3093<script> 3094 if ($(window).width() < 991) { 3095 var direction = 'horizontal' 3096 } else { 3097 var direction = 'vertical' 3098 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 3099 } 3100 var swiper = new Swiper('.gallery-thumbs', { 3101 3102 direction, 3103 slidesPerView: 4.5, 3104 spaceBetween: 12, 3105 navigation: { 3106 nextEl: '.swiper-button-next', 3107 prevEl: '.swiper-button-prev', 3108 } 3109 }); 3110 3111 var swiper = new Swiper('.gallery-mobile', { 3112 //loop: true, 3113 lazy: true, 3114 speed: 300, 3115 resistance: true, 3116 resistanceRatio: 0, 3117 freeModeMomentumRatio: 0.45, 3118 freeModeMomentumVelocityRatio: 1.5, 3119 navigation: { 3120 nextEl: '.swiper-button-next', 3121 prevEl: '.swiper-button-prev', 3122 }, 3123 pagination: { 3124 el: '.swiper-pagination' 3125 }, 3126 useCSS3Transforms: false, 3127 loop: false, 3128 on: { 3129 init: function () { 3130 console.log('swiper initialized'); 3131 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 3132 currentVideo.trigger('play'); 3133 }, 3134 }, 3135 }); 3136 3137 /* GET ALL VIDEOS */ 3138 var sliderVideos = $(".swiper-slide video"); 3139 3140 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 3141 swiper.on('slideChange', function () { 3142 console.log('slide changed'); 3143 /* stop all videos */ 3144 sliderVideos.each(function (index) { 3145 this.currentTime = 0; 3146 }); 3147 3148 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 3149 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 3150 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 3151 prevVideo.trigger('stop'); 3152 currentVideo.trigger('play'); 3153 }); 3154 3155
3156 $("[data-video]").click(function () { 3157 const file = $(this).data("video") 3158 $(".product-single__video").show() 3159 $(".product-single__image").hide() 3160 $(".product-single__video").find("video").attr("src", file) 3161 $(".product-single__video").find("video")[0].play(); 3162 }) 3163 $("[data-image]").click(function () { 3164 $(".product-single__video").hide() 3165 $(".product-single__image").show() 3166 $(".product-single__video").find("video")[0].pause(); 3167 }) 3168 3169 $("#product-image .swiper-slide").each(function () { 3170 let width = $(this).width() 3171 $(this).height(width) 3172 }) 3173 3174 $(window).resize(function () { 3175 $("#product-image .swiper-slide").each(function () { 3176 let width = $(this).width() 3177 $(this).height(width) 3178 }) 3179 }) 3180 </script>
3180 3181 3182 </div> 3183 3184 3185 3186 3187 3188 3189 3190 3191 <style> 3192 .c-pdp-product-info__service--active { 3193 font-size: 12px; 3194 padding-left: 10px; 3195 text-align: left; 3196 max-width: 550px; 3197 margin: auto; 3198 } 3199 3200 .c-pdp-product-info__service--active li { 3201 list-style: disc; 3202 } 3203 3204 .c-pdp-product-info { 3205 background-color: #f5f5f5; 3206 padding: 12px; 3207 margin: 0; 3208 } 3209 3210 .freeship em { 3211 font-style: italic; 3212 font-size: 12px !important; 3213 } 3214 </style> 3215 3216
3216<script> 3217 $(document).ready(function () { 3218 if ($(".c-pdp-product-info__service li").length == 1) { 3219 $(".c-pdp-product-info__service").addClass("no-bullet"); 3220 $(".c-pdp-product-info__service li").addClass("no-bullets"); 3221 } 3222 }); 3223 </script>
3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 </div> 3237 <div id="product-meta" class="col-lg-5 p-0"> 3238 <div class="product-meta"> 3239 <style> 3240 .product-meta--review { 3241 margin-top: 10px 3242 } 3243 3244 .freeship * { 3245 font-size: 14px !important; 3246 font-style: normal; 3247 } 3248 </style> 3249 <h1 itemprop="name" class="mb-2" 3250 style="color: #ffffff; text-shadow: 2px 2px 4px #ffdd60, -1px -1px 2px #ffdd60; font-weight: bold;"> 3251 TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang 3252 Gampang jadi Tajir !</h1> 3253 3254 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 3255 <meta itemprop="priceCurrency" content="IDR"> 3256 3257 <link itemprop="availability" href="https://schema.org/InStock"> 3258
3258<script type="text/javascript" 3259 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 3260 async="async"></script>
3260 3261 3262 3263 3264 3265 <span class="visually-hidden">Translation missing: 3266 en.products.general.regular_price</span> 3267 3268 <span class="visually-hidden">Translation missing: 3269 en.products.general.sale_price</span> 3270 3271 <div class="row no-gutters mb-3"> 3272 <span id="ProductPrice" class="h2 ProductPrice" itemprop="price" 3273 content="835000" style="color: #ffffff;"> 3274 Rp 10.000 3275 </span> 3276 <div class="discount-product-detail"> 3277 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 3278 Rp 100.000 3279 </p> 3280 <span class=" tag-discount"> 3281 3282 3283 <span id="newDiscount" 3284 class="product-tag persentase-discount hide"> 3285 (90%) 3286 </span><br> 3287 3288 </span> 3289 </div> 3290 </div> 3291 3292 <div class="row no-gutters meta-sds"> 3293 <div class="col-12 mb-2 mb-lg-0 stock-info"> 3294 3295 3296 <span id="ProductStock-Product" 3297 class="product-single__stock mb-2 hide"> 3298 3299 3300 3301 3302 Barang dikirim pada 3303 3304 3305 3306 </span> 3307 3308 <style> 3309 .short-desc-desktop { 3310 margin-bottom: 2rem; 3311 color: white; 3312 } 3313 3314 .short-desc ul li:nth-child(n + 4) { 3315 display: none; 3316 } 3317 3318 .short-desc ul li.showList:nth-child(n + 4) { 3319 display: list-item; 3320 } 3321 3322 label.more { 3323 display: none; 3324 } 3325 3326 label.more.showMe { 3327 display: block; 3328 font-size: 12px; 3329 text-transform: uppercase; 3330 font-weight: 700; 3331 cursor: pointer; 3332 } 3333 </style> 3334 3335 <div class="short-desc-desktop d-none d-lg-block"> 3336 <div class="short-desc"> 3337 3338 <p style="text-align: justify;">Tajir4D merupakan Blog utama 3339 penyedia permainan slot gacor server Thailand. Terdapat 3340 berbagai macam game blogs dengan sistem keamanan terbaik 3341 serta layanan 24 jam hanya untuk anda.</p> 3342 3343 </div> 3344 <label class="more">Show More â</label> 3345 </div><br> 3346 3347 3348
3348<script> 3349 var liCount; 3350 $(document).ready(function () { 3351 $(".short-desc ul").each(function () { 3352 liCount = $(this).children("li").length; 3353 if (liCount > 3) { 3354 $(this).parent(".short-desc").next(".more").addClass("showMe"); 3355 } 3356 }); 3357 3358 $(".more").click(function () { 3359 //$(".short-desc").find("li").addClass("showList"); 3360 // $(this).hide(); 3361 $("#product-desc").find("ul").show() 3362 $('html, body').animate({ 3363 scrollTop: $("#product-desc").offset().top - 250 3364 }, 2000); 3365 $("#product-desc").css("height", "auto"); 3366 $("#more_content").remove(); 3367 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 3368 }); 3369 }); 3370 </script>
3370 3371 3372 3373 </div> 3374 </div> 3375 3376 <div id="purchaseProduct"> 3377 3378 3379 3380 3381 <style> 3382 .variant-metafield { 3383 display: block !important; 3384 width: 1px; 3385 padding: 0; 3386 border-color: #fff; 3387 } 3388 3389 .select2-results__option[aria-disabled] { 3390 display: none; 3391 } 3392 3393 .towel-bordir { 3394 width: 100%; 3395 display: flex; 3396 align-items: center; 3397 justify-content: space-around; 3398 } 3399 </style> 3400 3401 3402 3403 3404
3404<script> 3405 3406 3407 </script>
3407 3408 3409 3410 3411 3412 3413 3414 <select name="id[]" id="productSelect" 3415 class="product-single__variants ignore hide hide"> 3416 3417 3418 3419 <option selected="selected" data-sku="DTKSTRF2598" 3420 value="44083045826775"> 3421 Default Title 3422 </option> 3423 3424 3425 3426 </select> 3427 3428
3428<script 3429 src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" 3430 type="text/javascript"></script>
3430 3431 3432
3432<script> 3433 $('.size-chart-open-popup').magnificPopup({ 3434 type: 'inline', 3435 midClick: true 3436 }); 3437 </script>
3437 3438 3439 3440 3441 3442 <div class="upload-image-preview"> 3443 3444 3445 3446 3447 3448 <style> 3449 .file-dnd * { 3450 margin: 0; 3451 padding: 0; 3452 box-sizing: border-box; 3453 } 3454 3455 .file-dnd { 3456 width: 100%; 3457 height: 250px; 3458 border: 1px solid #ddd; 3459 border-radius: 10px; 3460 padding: 15px; 3461 display: flex; 3462 flex-direction: column; 3463 gap: 10px; 3464 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 3465 margin: auto; 3466 } 3467 3468 .file-dnd input { 3469 display: none; 3470 } 3471 3472 .file-dnd .before-upload { 3473 border: 1px dashed #888; 3474 flex: 1; 3475 border-radius: 5px; 3476 display: flex; 3477 justify-content: center; 3478 align-items: center; 3479 text-align: center; 3480 cursor: pointer; 3481 } 3482 3483 .file-dnd .before-upload>div { 3484 display: flex; 3485 flex-direction: column; 3486 align-items: center; 3487 gap: 8px; 3488 } 3489 3490 .file-dnd .before-upload>div h4 { 3491 width: 150px; 3492 } 3493 3494 .file-dnd .before-upload>div p { 3495 font-size: 12px !important; 3496 color: #555; 3497 } 3498 3499 .file-dnd.active .before-upload { 3500 border: 1px solid #5750d9; 3501 background-color: #f5f5ff; 3502 } 3503 3504 .file-dnd .after-upload { 3505 position: relative; 3506 display: none; 3507 } 3508 3509 .file-dnd .after-upload img { 3510 width: 100%; 3511 border-radius: 5px; 3512 max-height: 180px; 3513 object-fit: contain; 3514 display: block; 3515 } 3516 3517 .file-dnd .after-upload .clear-btn { 3518 position: absolute; 3519 top: 10px; 3520 right: 10px; 3521 background: rgba(0, 0, 0, 0.5); 3522 width: 15px; 3523 height: 15px; 3524 text-align: center; 3525 line-height: 15px; 3526 border-radius: 50%; 3527 color: #fff; 3528 cursor: pointer; 3529 font-size: 14px; 3530 } 3531 </style> 3532 3533 <div class="file-dnd mb-3" style="display: none"> 3534 <label for="upload-photo">Upload your Photo:</label> 3535 <input type="file" id="upload-photo" accept="image/*"> 3536 <input type="hidden" data-properties="Photo"> 3537 <div class="before-upload"> 3538 <div> 3539 <svg id="surface1" xmlns="img/logotajir.webp" 3540 width="33.053" height="41.719" 3541 viewB
3541ox="0 0 33.053 41.719"> 3542 <path id="Path_2149" data-name="Path 2149" 3543 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" 3544 transform="translate(-0.5)" fill="#ababab"> 3545 </path> 3546 <path id="Path_2150" data-name="Path 2150" 3547 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" 3548 transform="translate(-81.947 -369.183)" 3549 fill="#ababab"></path> 3550 <path id="Path_2151" data-name="Path 2151" 3551 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" 3552 transform="translate(-108.776 -156.421)" 3553 fill="#ababab"></path> 3554 </svg> 3555 3556 <h4>Drag & Drop Photo file or Browse</h4> 3557 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3558 </div> 3559 </div> 3560 <div class="after-upload"> 3561 <div class="clear-btn">×</div> 3562 <img src="" width="" height=""> 3563 </div> 3564 </div> 3565
3565<script> 3566 function applyDndFile(el) { 3567 const parent = document.querySelector(".file-dnd") 3568 const beforeUploadEl = el.querySelector(".before-upload") 3569 const afterUploadEl = el.querySelector(".after-upload") 3570 const inputFile = el.querySelector("input[type=file]") 3571 const imagePreview = el.querySelector(".after-upload img") 3572 const clearBtn = el.querySelector(".after-upload .clear-btn") 3573 const inputProps = parent.querySelector("[data-properties]"); 3574 3575 async function upload(name, uri, type) { 3576 try { 3577 const filename = name.split('.')[0] 3578 let formData = new FormData(); 3579 formData.append("file", uri); 3580 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3581 method: "POST", 3582 body: formData 3583 }) 3584 if (response) { 3585 const res = await response.json() 3586 return res 3587 } 3588 } catch (err) { 3589 console.log(err) 3590 } 3591 } 3592 3593 function showImagePreview(img) { 3594 if (img) { 3595 const blobUrl = URL.createObjectURL(img) 3596 imagePreview.src = blobUrl 3597 afterUploadEl.style.display = "block" 3598 beforeUploadEl.style.display = "none" 3599 } 3600 } 3601 3602 beforeUploadEl.addEventListener("click", (e) => { 3603 e.preventDefault() 3604 inputFile.click() 3605 }) 3606 3607 inputFile.addEventListener("change", async (e) => { 3608 e.preventDefault() 3609 showImagePreview(e.target.files[0]) 3610 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3611 inputProps.value = uploadData?.url 3612 }) 3613 3614 clearBtn.addEventListener("click", (e) => { 3615 afterUploadEl.style.display = "none" 3616 beforeUploadEl.style.display = "flex" 3617 inputProps.value = "" 3618 }) 3619 3620 beforeUploadEl.addEventListener("dragover", (e) => { 3621 e.preventDefault() 3622 el.classList.add("active") 3623 }) 3624 3625 beforeUploadEl.addEventListener("dragleave", (e) => { 3626 e.preventDefault() 3627 el.classList.remove("active") 3628 }) 3629 3630 beforeUploadEl.addEventListener("drop", async (e) => { 3631 e.preventDefault() 3632 el.classList.remove("active") 3633 showImagePreview(e.dataTransfer.files[0]) 3634 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3635 console.log(uploadData) 3636 inputProps.value = uploadData?.url 3637 }) 3638 } 3639 3640 applyDndFile(document.querySelector(".file-dnd")) 3641 3642 $(document).ready(function () { 3643 $(".variant-swatch").change(function () { 3644 const v = $(this).val().toLowerCase() 3645 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3646 if (list.some(item => v.includes(item))) return $(".file-dnd").show() 3647 $(".file-dnd").hide() 3648 $(".file-dnd").find("[data-properties]").val("") 3649 $(".after-upload").hide() 3650 $(".before-upload").css("display", "flex") 3651 }) 3652 }) 3653 </script>
3653 3654 3655 </div> 3656 3657 3658 <div class="delivery-city mb-4"> 3659 <a href="https://slot.iwantanap.vip/"> 3660 <center> 3661 <img src="img/logotajir.webp" alt="logo-daftar" 3662 style="width: 260px; margin-top: -20px; border-radius: 22px;"> 3663 </center> 3664 </a><br> 3665 <h4 class="fw-600 text-uppercase mb-15" 3666 style="text-align: center; color: #ffffff; text-shadow: 2px 2px 4px #ffdd60, -1px -1px 2px #ffdd60;"> 3667 TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi 3668 Sekarang Gampang jadi Tajir ! 3669 </h4> 3670 <div class="row justify-content-between m-0"> 3671 <select id="cities" class="form-control select-search" required> 3672 <option value=""> 3673 Gunakan TAJIR4D melalui Pembayaran Yang 100% Dibayar 3674 Full untuk menemukan akses Episode 3675 Toto Macau, Live Macau, pasaran populer, result terbaru, 3676 data angka, dan pilihan 3677 permainan dalam satu jalur yang ringan serta praktis 3678 melalui HP maupun desktop. 3679 </option> 3680 </select> 3681 </div> 3682 </div> 3683 3684 <style> 3685 @media (max-width: 768px) { 3686 .select2-search__field { 3687 pointer-events: none !important; 3688 } 3689 3690 .select2-search { 3691 display: none !important; 3692 } 3693 } 3694 </style> 3695 3696
3696<script> 3697 $(document).ready(function () { 3698 // Check if mobile 3699 if (window.innerWidth <= 768) { 3700 // When cities select2 opens on mobile, remove focus from search 3701 $('#cities').on('select2:open', function () { 3702 setTimeout(function () { 3703 $('.select2-search__field').blur(); 3704 $('.select2-search__field').prop('readonly', true); 3705 }, 100); 3706 }); 3707 } 3708 }); 3709 </script>
3709 3710 3711 <style> 3712 .icon-img-footer { 3713 width: 80px; 3714 padding: 0px 5px; 3715 } 3716 3717 @media (min-width: 768px) { 3718 .icon-img-footer { 3719 width: 120px; 3720 } 3721 } 3722 3723 @media (min-width: 992px) { 3724 .icon-img-footer { 3725 width: 120px; 3726 } 3727 } 3728 </style> 3729 <div id="row-delivery-date" class="row m-0 mb-3"> 3730 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" 3731 style="text-align: center; color: #ffffff; text-shadow: 2px 2px 4px #ffdd60, -1px -1px 2px #ffdd60"> 3732 SEO INVOKER</h4> 3733 <div id="deliveryDate" class="m-0"></div> 3734 <div id="deliveryDateFull"> 3735 <div class=""> 3736 <input type="text" id="full-date" 3737 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3738 value="Full Calendar"> 3739 <label for="full-date"><svg version="1.1" 3740 xmlns="img/logotajir.webp" width="32" height="32" 3741 viewB
3741ox="0 0 32 32"> 3742 <title>icon-arrow-right</title> 3743 <path 3744 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"> 3745 </path> 3746 </svg></label> 3747 </div> 3748 <button class="btnChangeDeliveryDate hide">Change Delivery 3749 Date</button> 3750 </div> 3751 <div class="form-group p-0"> 3752 <input type="text" id="propDeliveryDate" required class="hide"> 3753 </div> 3754 </div> 3755 3756 3757 <div id="row-delivery-time" class="row m-0 mb-3"> 3758 <h4 class="text-center fw-600 text-uppercase col-12 mb-15" 3759 style="text-align: center; color: #ffffff; text-shadow: 2px 2px 4px #ffdd60, -1px -1px 2px #ffdd60;"> 3760 TAJIR4D 3761 </h4> 3762 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3763 <div class="form-group p-0"> 3764 <input type="text" id="propDeliveryTime" class="hide" required> 3765 </div> 3766 </div> 3767 3768 3769 3770 3771 3772 <div id="personalizeBtn"> 3773 3774 3775 3776 3777 <button class="btn text-uppercase w-100 fw-400"> 3778 3779 customize your flower board 3780 3781 </button> 3782 <div 3783 class="button-share-wishlist d-flex justify-content-around mt-3"> 3784 <div class="button-share text-center"> 3785 <p id="shareButton" class="d-flex gap-2"> 3786 <span>Share</span><svg xmlns="img/logotajir.webp" 3787 width="15" height="13" viewBox="0 0 15 13" 3788 fill="none"> 3789 <path 3790 d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" 3791 fill="#ffffff" /> 3792 </svg> 3793 </p> 3794 </div> 3795 <div class="button-wishlist text-center"> 3796 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" 3797 data-product-handle="blossom-shine"> 3798 <sp
3798an>Wishlist</span><svg xmlns="img/logotajir.webp" 3799 width="16" height="15" viewBox="0 0 16 15" 3800 fill="none"> 3801 <path 3802 d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" 3803 fill="#ffffff" /> 3804 </svg> 3805 <!-- 3806 <svg xmlns="img/logotajir.webp" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3807 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 18.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/> 3808 </svg> 3809 --> 3810 </p> 3811 </div> 3812 </div> 3813 </div> 3814 </div> 3815 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3816 <div class="purchaseArea"> 3817 <div class="sectionPurchase sectionPurchaseSpotify"> 3818 <div class="wrapperPurchase"> 3819 <div class="headerPurchase"> 3820 <h3>personalize spotify photo print</h3> 3821 <a class="close-purchase-popup"> 3822 <svg xmlns="img/logotajir.webp" width="18" 3823 height="18" viewBox="0 0 18 18" fill="none"> 3824 <path 3825 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" 3826 fill="black"></path> 3827 </svg> 3828 </a> 3829 </div> 3830 <div class="contentPurchase"> 3831 <div class="spotifyAddons"></div> 3832 </div> 3833 3834 <div class="purchase-button btn-addon row m-0" 3835 style="display: none;"> 3836 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3837 <button 3838 class="back-purchase-button back-addon text-uppercase"> 3839 <svg width="15" height="14" viewBox="0 0 15 14" 3840 fill="none" xmlns="img/logotajir.webp"> 3841 <path 3842 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" 3843 fill="black"></path> 3844 </svg> 3845 <sp
3845an>Back</span> 3846 </button> 3847 </div> 3848 <div class="col-12 col-lg-10 text-right" 3849 style="display: flex;justify-content: end;gap: 20px;"> 3850 <button 3851 class="btn next-purchase-button next-addon text-uppercase"> 3852 <span>continue without add-ons</span> 3853 </button> 3854 </div> 3855 </div> 3856 </div> 3857 </div> 3858 </div> 3859 </div> 3860 3861 <style> 3862 #PBarNextFrameWrapper { 3863 display: none; 3864 } 3865 3866 #backgroundPopup { 3867 display: none; 3868 position: fixed; 3869 _position: absolute; 3870 height: 100%; 3871 width: 100%; 3872 top: 0; 3873 left: 0; 3874 background: rgb(117 117 117 / 24%); 3875 z-index: 1; 3876 } 3877 3878 .sectionPurchase { 3879 height: 100%; 3880 position: relative; 3881 max-width: 1344px; 3882 background-color: #fff; 3883 padding: 0; 3884 overflow: hidden; 3885 /* Changed from auto to hidden */ 3886 display: flex; 3887 flex-direction: column; 3888 } 3889 3890 .sectionPurchase.purchaseAddonSpotify { 3891 max-width: 1070px !important; 3892 max-height: 765px !important; 3893 } 3894 3895 .sectionPurchaseBoard { 3896 max-width: 872px !important; 3897 max-height: 821px !important; 3898 } 3899 3900 .purchaseAddonSpotify .btn-action { 3901 position: absolute; 3902 bottom: 0; 3903 left: 0; 3904 width: 100%; 3905 display: flex; 3906 gap: 10px; 3907 } 3908 3909 .wrapperPurchase { 3910 position: relative; 3911 height: 100%; 3912 display: flex; 3913 flex-direction: column; 3914 } 3915 3916 /* New styles for scrollable content and sticky button */ 3917 .purchase-content { 3918 flex: 1; 3919 overflow-y: auto; 3920 overflow-x: hidden; 3921 padding: 20px; 3922 } 3923 3924 .purchase-button-wrapper { 3925 position: sticky; 3926 bottom: 0; 3927 background-color: #fff; 3928 border-top: 1px solid #e0e0e0; 3929 padding: 15px 0; 3930 margin-top: auto; 3931 z-index: 10; 3932 } 3933 3934 .purchasePopup { 3935 display: none; 3936 position: fixed; 3937 background: rgb(117 117 117 / 24%); 3938 z-index: 999; 3939 padding: 40px; 3940 font-size: 13px; 3941 top: 0; 3942 left: 0; 3943 width: 100%; 3944 height: 100%; 3945 } 3946 3947 .popupPurchaseClose { 3948 font-size: 14px; 3949 line-height: 14px; 3950 right: 45px; 3951 top: 45px; 3952 position: absolute; 3953 color: #6fa5fd; 3954 font-weight: 700; 3955 display: block; 3956 cursor: pointer; 3957 } 3958 3959 .headerPurchase { 3960 margin-bottom: 30px; 3961 display: flex; 3962 justify-content: space-between; 3963 } 3964 3965 .headerPurchase h3 { 3966 font-size: 16px; 3967 text-transform: uppercase; 3968 } 3969 3970 .sectionPurchaseBoard .headerPurchase { 3971 margin-bottom: 15px; 3972 } 3973 3974 .sectionPurchaseBoard .formAddressPurchase { 3975 padding-top: 0; 3976 } 3977 3978 .purchaseArea { 3979 position: relative; 3980 height: 100%; 3981 } 3982 3983 .purchaseArea h4 { 3984 width: 100%; 3985 font-size: 12px; 3986 font-weight: 600; 3987 margin-bottom: 10px; 3988 text-transform: uppercase; 3989 } 3990 3991 .menuPurchase { 3992 margin-bottom: 30px; 3993 } 3994 3995 .menuPurchase ul { 3996 list-style-type: none; 3997 margin: 0; 3998 } 3999 4000 .menuPurchase ul li { 4001 display: inline-block; 4002 border: 1px solid #ffffff; 4003 padding: 5px 20px; 4004 margin-right: 5px; 4005 margin-bottom: 10px; 4006 font-size: 12px; 4007 font-weight: 400; 4008 } 4009 4010 .menuPurchase ul li:hover, 4011 .menuPurchase ul li.selected { 4012 background-color: #ffffff; 4013 color: #ffffff; 4014 } 4015 4016 .contentPurchase h5 { 4017 font-size: 12px; 4018 margin-bottom: 10px; 4019 font-weight: 400; 4020 overflow: hidden; 4021 } 4022 4023 /* Card */ 4024 4025 #itemCards { 4026 max-height: 430px; 4027 overflow: auto; 4028 } 4029 4030 .item-cards { 4031 width: 100%; 4032 } 4033 4034 .item-card.selected { 4035 border: 1px solid #ffffff; 4036 } 4037 4038 .item-card:hover { 4039 border: 1px solid #C4C4C4; 4040 } 4041 4042 .item-cards .item-card { 4043 position: relative; 4044 width: calc(33% - 10px); 4045 max-width: calc(33% - 10px); 4046 flex: 0 0 calc(33% - 10px); 4047 margin-bottom: 20px; 4048 } 4049 4050 .item-cards .item-card label, 4051 .item-addons .item-addon label { 4052 position: absolute; 4053 left: 0; 4054 width: 100%; 4055 height: 100%; 4056 } 4057 4058 .item-cards .item-card .card-image img, 4059 .item-addons .item-addon .card-image img { 4060 display: block; 4061 width: 100%; 4062 } 4063 4064 .item-card .card-meta, 4065 .item-addon .card-meta { 4066 padding: 10px 5px 5px; 4067 } 4068 4069 .item-card.selected .card-meta, 4070 .item-addon.selected .card-meta, 4071 .item-card.selected .card-qty { 4072 background-color: #ffffff; 4073 color: #fff; 4074 visibility: visible !important; 4075 } 4076 4077 .item-card:hover .card-meta, 4078 .item-addon:hover .card-meta, 4079 .item-card:hover .card-qty { 4080 background-color: #C4C4C4; 4081 color: #fff; 4082 visibility: visible !important; 4083 } 4084 4085 .item-cards .item-card p, 4086 .item-addons .item-addon p { 4087 font-size: 12px !important; 4088 margin: 0; 4089 font-weight: 600; 4090 } 4091 4092 .item-card .card-meta input, 4093 .item-addon .card-meta input { 4094 display: none; 4095 } 4096 4097 .item-cards .item-card h5, 4098 .item-addons .item-addon h5 { 4099 text-transform: uppercase; 4100 max-height: 35px; 4101 } 4102 4103 @media (max-width: 768px) { 4104 .item-cards .item-card { 4105 width: calc(50% - 10px
4105); 4106 max-width: calc(50% - 10px); 4107 flex: 0 0 calc(50% - 10px); 4108 margin-bottom: 0; 4109 } 4110 } 4111 4112 .card-qty { 4113 display: flex; 4114 padding: 5px; 4115 visibility: hidden; 4116 background-color: #fff !important; 4117 z-index: 999; 4118 } 4119 4120 .card-qty a { 4121 border-width: 1px; 4122 width: 30%; 4123 cursor: pointer; 4124 text-align: center; 4125 align-self: center; 4126 height: 28px; 4127 display: block; 4128 position: relative; 4129 } 4130 4131 .card-qty a svg { 4132 position: absolute; 4133 top: 50%; 4134 left: 50%; 4135 transform: translate(-50%, -50%); 4136 text-align: center; 4137 } 4138 4139 input.btn-qty { 4140 border-width: 0px; 4141 border-radius: 0; 4142 background-color: #fff; 4143 -webkit-appearance: none; 4144 box-shadow: none !important; 4145 -webkit-box-shadow: none !important; 4146 -moz-box-shadow: none !important; 4147 width: 40%; 4148 border-left: 1px solid #c4c4c4; 4149 border-right: 1px solid #c4c4c4; 4150 padding: 0; 4151 } 4152 4153 .sectionPurchaseBoard #itemAddons .item-card { 4154 width: calc(20% - 15px); 4155 max-width: calc(20% - 15px); 4156 flex: 0 0 calc(20% - 15px); 4157 } 4158 4159 .purchase-button { 4160 width: 100%; 4161 padding: 0; 4162 /* Reset padding as it's now handled by wrapper */ 4163 margin: 0; 4164 } 4165 4166 .sectionPurchaseBoard .purchase-button { 4167 margin-top: 0 !important; 4168 /* Reset margin */ 4169 } 4170 4171 .back-purchase-button, 4172 .back-spotify { 4173 width: 139px; 4174 border: 1px solid; 4175 height: 43px; 4176 } 4177 4178 .purchase-button .btn { 4179 width: 297px; 4180 height: 43px; 4181 background-color: #ffffff; 4182 color: #ffffff; 4183 } 4184 4185 .purchase-button .btn[disabled] { 4186 background-color: #EEEEEE; 4187 } 4188 4189 .back-purchase-button svg, 4190 .back-spotify svg { 4191 align-self: center; 4192 vertical-align: middle; 4193 margin-right: 10px; 4194 } 4195 4196 #purchaseProduct .row .error { 4197 font-size: 12px !important; 4198 color: orange; 4199 margin-top: 5px; 4200 } 4201 4202 .reviewCardPurchase { 4203 max-width: 448px; 4204 float: right; 4205 } 4206 4207 .addonsPurchase .addon-item { 4208 display: flex; 4209 justify-content: space-between; 4210 } 4211 4212 .addon-item * { 4213 align-self: center; 4214 font-size: 12px; 4215 } 4216 4217 .addon-itm-title { 4218 width: 360px; 4219 } 4220 4221 .addon-itm-line-price { 4222 color: #757575; 4223 width: 80px; 4224 justify-content: space-between; 4225 display: flex; 4226 } 4227 4228 .propsAddonSpotify p { 4229 margin: 0; 4230 display: flex; 4231 font-size: 12px !important; 4232 margin-bottom: 5px; 4233 } 4234 4235 .propsAddonSpotify p span:first-child { 4236 text-transform: uppercase; 4237 font-weight: 600; 4238 -ms-flex: 0 0 150px; 4239 flex: 0 0 150px; 4240 max-width: 150px; 4241 } 4242 4243 .addonsPurchase .addons { 4244 max-height: 250px; 4245 overflow: auto; 4246 } 4247 4248 .btn .loading:after { 4249 content: ""; 4250 display: inline-block;
4251 width: 20px; 4252 height: 20px; 4253 padding: 3px; 4254 aspect-ratio: 1; 4255 border-radius: 50%; 4256 background: #FFFFFF; 4257 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 4258 -webkit-mask: var(--_m); 4259 mask: var(--_m); 4260 -webkit-mask-composite: source-out; 4261 mask-composite: subtract; 4262 animation: l3 1s infinite linear; 4263 margin: auto; 4264 vertical-align: middle; 4265 margin-left: 10px; 4266 } 4267 4268 #qrcode img, 4269 #qrcode canvas { 4270 width: 50px; 4271 position: absolute; 4272 top: 12px; 4273 left: 16px; 4274 } 4275 4276 .t-preview { 4277 position: absolute; 4278 top: 17px; 4279 left: 75px; 4280 } 4281 4282 .t-preview p { 4283 margin: 0; 4284 font-size: 12px !important; 4285 } 4286 4287 .t-preview .h3 { 4288 font-size: 16px !important; 4289 margin-bottom: 5px; 4290 font-weight: 600; 4291 } 4292 4293 .scanCard { 4294 width: 100%; 4295 border: 1px solid; 4296 height: 76px; 4297 background-color: #fff; 4298 } 4299 4300 .scanCard>div>img { 4301 position: absolute; 4302 right: 0; 4303 width: 55px; 4304 } 4305 4306 @keyframes l3 { 4307 100% { 4308 transform: rotate(1turn); 4309 } 4310 } 4311 4312 @media (min-width: 991px) { 4313 .sectionPurchase { 4314 height: 100%; 4315 position: relative; 4316 max-width: 1344px; 4317 background-color: #fff; 4318 top: 50%; 4319 left: 50%; 4320 transform: translate(-50%, -50%); 4321 } 4322 4323 .headerPurchase h3 { 4324 font-size: 20px; 4325 } 4326 4327 .purchaseArea h4 { 4328 font-size: 16px; 4329 } 4330 4331 .menuPurchase ul li { 4332 font-size: 16px; 4333 } 4334 4335 .contentPurchase { 4336 margin-bottom: 30px; 4337 } 4338 4339 .contentPurchase h5 { 4340 font-size: 16px; 4341 } 4342 4343 .item-cards .item-card p, 4344 .item-addons .item-addon p { 4345 font-size: 16px !important; 4346 } 4347 4348 .cards { 4349 float: right; 4350 width: 400px; 4351 } 4352 4353 .item-cards .item-card { 4354 width: calc(25% - 30px); 4355 max-width: calc(25% - 30px); 4356 flex: 0 0 calc(25% - 30px); 4357 } 4358 4359 #itemAddons .item-card { 4360 position: relative; 4361 width: calc(16% - 40px); 4362 max-width: calc(16% - 40px); 4363 flex: 0 0 calc(16% - 40px); 4364 } 4365 4366 .purchase-button-wrapper { 4367 padding: 10px 20px; 4368 } 4369 } 4370 4371 @media (max-width: 1200px) { 4372 .item-cards .item-card { 4373 width: calc(33% - 30px); 4374 max-width: calc(33% - 30px); 4375 flex: 0 0 calc(33% - 30px); 4376 } 4377 } 4378 4379 @media (max-width: 992px) { 4380 .purchasePopup { 4381 padding: 0; 4382 } 4383 4384 .item-cards .item-card h5, 4385 .item-addons .item-addon h5 { 4386 max-height: 30px; 4387 } 4388 4389 .back-purchase-button, 4390 .back-spotify, 4391 .next-purchase-button { 4392 width: 100%; 4393 } 4394 4395 .addon-itm-title { 4396 width: 300px; 4397 } 4398 4399 .addon-itm-line-price { 4400 margin-right: 10px; 4401 } 4402 4403 .t-preview { 4404 top: 10px; 4405 } 4406 4407 .card-qty a { 4408 height: 15px; 4409 } 4410 4411 .purchase-button-wrapper { 4412 padding: 15px; 4413 } 4414 } 4415 4416 @media (max-width: 576px) { 4417 .purchase-button .btn { 4418 width: 100% !important; 4419 } 4420 4421 .purchase-button>.col-12 { 4422 padding-left: 0; 4423 padding-right: 0; 4424 } 4425 } 4426 </style> 4427 4428 4429 <div class="purchasePopup"> 4430 <div class="purchaseArea"> 4431 4432 <div 4433 class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 4434 <div class="wrapperPurchase"> 4435 <div class="purchase-content"> 4436 <div class="headerPurchase"> 4437 <h3 class="text-uppercase"> 4438 4439 customize your flower board 4440 4441 </h3> 4442 <a class="close-purchase-popup"> 4443 <svg xmlns="img/logotajir.webp" width="18" 4444 height="18" viewBox="0 0 18 18" fill="none"> 4445 <path 4446 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" 4447 fill="black" /> 4448 </svg> 4449 </a> 4450 4451 </div> 4452 <div class="contentPurchase"> 4453 <div class="row"> 4454 4455 <div class="col-12"> 4456 4457 4458 <style> 4459 .customize-papan .group-field-1 .input-field { 4460 float: left; 4461 width: 100%; 4462 height: 317px; 4463 background-color: #E5E5EA; 4464 } 4465 4466 .customize-papan .input-field textarea { 4467 width: 100%; 4468 max-width: 421px; 4469 min-height: 150px; 4470 font-weight: 400; 4471 font-size: 16px; 4472 resize: none; 4473 background-color: #E5E5EA; 4474 position: absolute; 4475 top: 50%; 4476 left: 50%; 4477 transform: translate(-50%, -50%); 4478 text-align: center; 4479 color: #ffffff; 4480 border: none; 4481 } 4482 4483 .customize-papan .field-papan.group-field-2 .input-field.field-logo { 4484 height: 90px; 4485 margin: 0; 4486 border-radius: 0; 4487 position: relative; 4488 -ms-flex: 0 0 174px; 4489 flex: 0 0 174px; 4490 max-width: 174px; 4491 } 4492 4493 .customize-papan .btn-upload-papan svg { 4494 width: 21px; 4495 height: 25px; 4496 display: block; 4497 align-self: center; 4498 margin: auto; 4499 margin-bottom: 12px; 4500 } 4501 4502
4502 .svgLogoPapan { 4503 position: absolute; 4504 width: 100%; 4505 top: 50%; 4506 left: 50%; 4507 transform: translate(-50%, -50%); 4508 text-align: center; 4509 } 4510 4511 .svgLogoPapan p { 4512 color: #8E8E93; 4513 margin: 0; 4514 } 4515 4516 .svgLogoPapan p span { 4517 font-size: 12px; 4518 color: #FF0E00; 4519 } 4520 4521 .customize-papan .btn-upload-papan img { 4522 margin: auto; 4523 display: block; 4524 position: absolute; 4525 width: 80px; 4526 top: 50%; 4527 left: 50%; 4528 transform: translate(-50%, -50%); 4529 text-align: center; 4530 } 4531 4532 #suggest-messages { 4533 position: absolute; 4534 bottom: 5px; 4535 left: 5px; 4536 } 4537 4538 #suggest-messages a { 4539 border: 1px solid #979797; 4540 background: #fff; 4541 color: #979797; 4542 border-radius: 3px; 4543 padding: 5px 10px; 4544 font-size: 10px; 4545 font-weight: 600; 4546 display: inline-block; 4547 } 4548 4549 .case-occasion .nice-select:after { 4550 border-bottom: 2px solid #333; 4551 border-right: 2px solid #333; 4552 right: 20px; 4553 top: 42%; 4554 width: 10px; 4555 height: 10px; 4556 } 4557 4558 .customize-papan .input-field input { 4559 font-weight: 600; 4560 font-size: 16px; 4561 width: 100%; 4562 height: 90px; 4563 min-height: 44px !important; 4564 border: none; 4565 background: #E5E5EA; 4566 margin: 0; 4567 border-radius: 0; 4568 text-align: center; 4569 color: #ffffff; 4570 } 4571 4572 .customize-papan .input-field .limit { 4573 position: absolute; 4574 right: 15px; 4575 top: 0; 4576 color: #757575; 4577 } 4578 4579 @media (min-width: 991px) { 4580 .customize-papan:before { 4581 content: ""; 4582 position: absolute; 4583 border: 4px solid #ffffff; 4584 bottom: -50px; 4585 left: 210px; 4586 width: 100px; 4587 display: block; 4588 -ms-transform: rotate(60deg); 4589 -webkit-transform: rotate(60deg); 4590 transform: rotate(-65deg); 4591 } 4592 4593 .customize-papan:after { 4594 content: ""; 4595 position: absolute; 4596 border: 4px solid #ffffff; 4597 bottom: -52px; 4598 right: 240px; 4599 width: 100px; 4600 display: block; 4601 -ms-transform: rotate(-120deg); 4602 -webkit-transform: rotate(70deg); 4603 transform: rotate(70deg); 4604 } 4605 } 4606 </style> 4607 4608 <input type="hidden" 4609 data-properties="penerima" value="-"> 4610 <div class="customize-papan"> 4611 <div class="container"> 4612 <div 4613 class="field-papan group-field-1 form-group"> 4614 <div class="input-field"> 4615 <textarea 4616 id="kartu-ucapan-
4616papan" 4617 class="mb-0 has-limit" 4618 type="text" 4619 data-properties="ucapan" 4620 placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 4621 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4622 <p class="limit">0/100</p> 4623 <div id="suggest-messages"> 4624 <a id="show_note_papan1" 4625 href="#"> 4626 <div class="suggest-message" 4627 id="note_btn_div1"> 4628 <span 4629 class="promo-code-link" 4630 id="note_btn_papan1">Contoh 4631 Kata 4632 WEDDING</span> 4633 </div> 4634 </a> 4635 <a id="show_note_papan2" 4636 href="#"> 4637 <div class="suggest-message" 4638 id="note_btn_div2"> 4639 <span 4640 class="promo-code-link" 4641 id="note_btn_papan2">Contoh 4642 Kata 4643 SELAMAT</span> 4644 </div> 4645 </a> 4646 <a id="show_note_papan3" 4647 href="#"> 4648 <div class="suggest-message" 4649 id="note_btn_div3"> 4650 <span 4651 class="promo-code-link" 4652 id="note_btn_papan3">Contoh 4653 Kata DUKA 4654 CITA</span> 4655 </div> 4656 </a> 4657 </div> 4658 </div> 4659 </div> 4660 <div class="hide"> 4661 <input type="hidden" value="" 4662 id="note_id_papan1" 4663 name="note_id_papan1" 4664 style="top: 0px;"> 4665 <input type="hidden" value="" 4666 id="note_btn_id_papan1" 4667 name="note_btn_id_papan1"> 4668 </div> 4669 <div class="hide"> 4670 <input type="hidden" value="" 4671 id="note_id_papan2" 4672 name="note_id_papan2" 4673 style="top: 0px;"> 4674 <input type="hidden" value="" 4675 id="note_btn_id_papan2" 4676 name="note_btn_id_papan2"> 4677 </div> 4678 <div class="hide"> 4679 <input type="hidden" value="" 4680 id="note_id_papan3" 4681 name="note_id_papan3" 4682 style="top: 0px;"> 4683 <input type="hidden" value="" 4684 id="note_btn_id_papan3" 4685 name="note_btn_id_papan3"> 4686 </div> 4687 <div 4688 class="field-papan group-field-2 form-group"> 4689 4690 <label for="logoPapan" 4691 onclick="" 4692 class="input-field field-logo"> 4693 4694 4695 4696 <div 4697 class="btn-upload-papan w-100"> 4698 <?xml version="1.0" encoding="UTF-8"?> 4699 <img src="" 4700 style="display:none"> 4701 <div 4702 class="svgLogoPapan"> 4703 <svg xmlns="img/logotajir.webp" 4704 width="22" 4705 height="26" 4706 viewB
4706ox="0 0 22 26" 4707 fill="none"> 4708 <path 4709 d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" 4710 fill="black" /> 4711 </svg> 4712 <p>Upload Logo 4713 <span>*optional</span> 4714 </p> 4715 </div> 4716 </div> 4717 4718 </label> 4719 4720 <input type="hidden" 4721 data-properties="papan-logo" 4722 value=""> 4723 <input type="file" 4724 id="logoPapan" 4725 accept="image/*" 4726 style="position: absolute;width: 1px;height: 1px;padding: 0"> 4727 4728 <div class="input-field"> 4729 <input 4730 class="has-limit sender-name" 4731 type="text" 4732 placeholder="Nama Pengirim" 4733 data-properties="pengirim" 4734 maxlength="35" /> 4735 <p class="limit">0/35</p> 4736 </div> 4737 4738 </div> 4739 4740 </div> 4741 </div> 4742 </div> 4743 4744 </div> 4745 </div> 4746 4747 </div> 4748 <div class="purchase-button-wrapper"> 4749 <div class="purchase-button btn-card row m-0"> 4750 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4751 4752 </div> 4753 <div 4754 class="btn-next-card col-12 col-lg-10 text-right"> 4755 4756 4757 <button 4758 class="btn next-purchase-button text-uppercase" 4759 disabled> 4760 <sp
4760an>save your flower board</span> 4761 </button> 4762 </div> 4763 </div> 4764 4765 </div> 4766 </div> 4767 </div> 4768 4769 4770 4771 <div class="sectionPurchase sectionPurchaseBoard hide" 4772 data-section="address"> 4773 <div class="wrapperPurchase"> 4774 <div class="purchase-content"> 4775 <div class="headerPurchase"> 4776 <h3> 4777 Complete Your Order 4778 </h3> 4779 <a class="close-purchase-popup"> 4780 <svg xmlns="img/logotajir.webp" width="18" 4781 height="18" viewBox="0 0 18 18" fill="none"> 4782 <path 4783 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" 4784 fill="black" /> 4785 </svg> 4786 </a> 4787 4788 </div> 4789 <div class="contentPurchase"> 4790 <div class="row"> 4791 <div class="col-12 position-relative"> 4792 <div class="addressPurchase"> 4793 4794 <h4 class="text-uppercase">recipient 4795 delivery address</h4> 4796 <p>Share the delivery address to send 4797 your heartfelt blooms straight to 4798 their 4799 door.</p> 4800 4801 <div class="formAddressPurchase row"> 4802 <div class="col-12"> 4803 <form> 4804 <div 4805 class="form-group row mb-2 mb-lg-4"> 4806 <div 4807 class="col-6 position-relative"> 4808 <input 4809 id="first_name" 4810 type="text" 4811 class="form-control input__field" 4812 placeholder="" 4813 required> 4814 <label 4815 for="first_name" 4816 class="input__label">First 4817 Name<span>*</span></label> 4818 </div> 4819 <div 4820 class="col-6 position-relative"> 4821 <input 4822 id="last_name" 4823 type="text" 4824 class="form-control input__field" 4825 placeholder="" 4826 required> 4827 <label 4828 for="last_name" 4829 class="input__label">Last 4830 Name<span>*</span></label> 4831 </div> 4832 <input type="hidden" 4833 data-properties="nama-penerima"> 4834 </div> 4835 4836 <h4 class="text-uppercase"> 4837 how you want to input 4838 your address</h4> 4839 <div 4840 class="form-group row mb-2 mb-lg-4 form-address-upload"> 4841 <div 4842 class="col-6 position-relative"> 4843 <label 4844 class="address-manualy"> 4845 <svg xmlns="img/logotajir.webp" 4846 width="18" 4847 height="17" 4848 viewB
4848ox="0 0 18 17" 4849 fill="none"> 4850 <path 4851 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.91216 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
48515 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" 4852 fill="black" /> 4853 </svg> 4854 <span>Input 4855 Address 4856 Manually</span> 4857 </label> 4858 </div> 4859 <div 4860 class="col-6 position-relative"> 4861 <label 4862 for="address-upload" 4863 class="address-upload"> 4864 <svg xmlns="img/logotajir.webp" 4865 width="12" 4866 height="13" 4867 viewB
4867ox="0 0 12 13" 4868 fill="none"> 4869 <path 4870 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" 4871 fill="black" /> 4872 </svg> 4873 <span>Upload 4874 Address 4875 Picture</span> 4876 </label> 4877 <input 4878 id="address-upload" 4879 type="file" 4880 accept="image/png, image/jpeg" 4881 style="position: absolute; padding: 0;width: 1px;height: 1px"> 4882 <input type="hidden" 4883 class="props-address-upload" 4884 data-properties="foto-alamat"> 4885 </div> 4886 </div> 4887 <img width="150" height="" 4888 src="" 4889 class="photo-address" 4890 style="display: none;"> 4891 4892 <div 4893 class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4894 <div class="col-12"> 4895 <textarea 4896 id="delivery_address" 4897 data-properties="alamat-penerima" 4898 class="form-control input__field col-12" 4899 placeholder="" 4900 required></textarea> 4901 <label 4902 for="delivery_address" 4903 class="input__label">Delivery 4904 Address<span>*</span></label> 4905 4906 </div> 4907 </div> 4908 <div 4909 class="form-group row mb-2 mb-lg-4 form-address"> 4910 <div 4911 class="col-6 position-relative"> 4912 <input 4913 id="recipient_number" 4914 type="text" 4915 data-properties="telepon-penerima" 4916 class="form-control input__field" 4917 placeholder="" 4918 required> 4919 <label 4920 for="recipient_number" 4921 class="input__label">Recipient 4922 number<span>*</span></label> 4923 </div> 4924 <div 4925 class="col-6 position-relative"> 4926 <input id="company" 4927 type="text" 4928 data-properties="company" 4929 class="form-control input__field" 4930 placeholder=""> 4931 <label for="company" 4932 class="input__label">Company 4933 (Optional)</label> 4934 </div> 4935 </div> 4936 <div 4937 class="form-group row mb-2 mb-lg-4 form-address"> 4938 <div 4939 class="col-6 position-relative"> 4940 <input id="province" 4941 type="text" 4942 class="form-control input__field" 4943 placeholder="" 4944 value="Jakarta" 4945 data-properties="province"> 4946 <label 4947 for="province" 4948 class="input__label">Province</label> 4949 </div> 4950 <div 4951 class="col-6 position-relative"> 4952 <select id="zip" 4953 class="form-control select-search" 4954 required></select> 4955 </div> 4956 </div> 4957 </form> 4958 </div> 4959 </div> 4960 </div> 4961 <div class="addonsPurchase"> 4962 <h4 class="text-uppercase">add-ons</h4> 4963 <div class="addons"> 4964 <p>No Add-Ons</p> 4965 <!-- 4966 <button class="add-addon"> 4967 <svg xmlns="img/logotajir.webp" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4968 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4969 </svg>
4970 <span>Enhance my moment with Add-ons</span> 4971 </button> 4972 --> 4973 </div> 4974 </div> 4975 </div> 4976 4977 </div> 4978 </div> 4979 4980
4980<script> 4981 document.addEventListener('DOMContentLoaded', function () { 4982 // Detect iOS 4983 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4984 4985 if (isIOS) { 4986 document.querySelector('.formAddressPurchase').classList.add('ios'); 4987 4988 // iOS specific fixes 4989 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4990 4991 inputs.forEach(function (input) { 4992 // Force enable touch events on iOS 4993 input.style.webkitUserSelect = 'text'; 4994 input.style.webkitTouchCallout = 'default'; 4995 input.style.pointerEvents = 'auto'; 4996 input.style.touchAction = 'manipulation'; 4997 4998 // Add explicit touch event listeners for iOS 4999 input.addEventListener('touchstart', function (e) { 5000 e.stopPropagation(); 5001 this.focus(); 5002 }, { passive: false }); 5003 5004 input.addEventListener('touchend', function (e) { 5005 e.preventDefault(); 5006 e.stopPropagation(); 5007 this.focus(); 5008 this.click(); 5009 }, { passive: false }); 5010 5011 // Force focus on tap for iOS 5012 input.addEventListener('click', function (e) { 5013 e.stopPropagation(); 5014 if (document.activeElement !== this) { 5015 this.focus(); 5016 } 5017 }); 5018 }); 5019 5020 // Fix for label overlapping on iOS 5021 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 5022 labels.forEach(function (label) { 5023 label.style.pointerEvents = 'none'; 5024 label.addEventListener('touchstart', function (e) { 5025 e.preventDefault(); 5026 var input = this.parentNode.querySelector('.input__field'); 5027 if (input) { 5028 input.focus(); 5029 } 5030 }); 5031 }); 5032 } 5033 5034 // Handle input state for all browsers, especially iOS 5035 var inputs = document.querySelectorAll('.input__field'); 5036 5037 inputs.forEac
5037h(function (input) { 5038 // Handle input events 5039 input.addEventListener('input', function () { 5040 if (this.value.trim() !== '') { 5041 this.classList.add('has-value'); 5042 } else { 5043 this.classList.remove('has-value'); 5044 } 5045 }); 5046 5047 // Handle focus 5048 input.addEventListener('focus', function () { 5049 this.classList.add('focused'); 5050 // iOS specific: ensure input is visible 5051 if (isIOS) { 5052 setTimeout(function () { 5053 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 5054 }, 300); 5055 } 5056 }); 5057 5058 // Handle blur 5059 input.addEventListener('blur', function () { 5060 this.classList.remove('focused'); 5061 if (this.value.trim() !== '') { 5062 this.classList.add('has-value'); 5063 } else { 5064 this.classList.remove('has-value'); 5065 } 5066 }); 5067 5068 // Initial check for pre-filled values 5069 if (input.value.trim() !== '') { 5070 input.classList.add('has-value'); 5071 } 5072 }); 5073 5074 // Additional iOS fixes 5075 if (isIOS) { 5076 // Prevent iOS Safari from adding default styling 5077 document.addEventListener('touchstart', function () { }, { passive: true }); 5078 5079 // Fix viewport issues on iOS 5080 var viewport = document.querySelector('meta[name=viewport]'); 5081 if (viewport) { 5082 viewport.setAttribute('content', 5083 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 5084 ); 5085 } 5086 } 5087 }); 5088 </script>
5088 5089 </div> 5090 <div class="purchase-button-wrapper"> 5091 <div class="purchase-button btn-address row m-0"> 5092 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 5093 5094 <button 5095 class="back-purchase-button back-address text-uppercase"> 5096 <svg width="15" height="14" 5097 viewBox="0 0 15 14" fill="none" 5098 xmlns="img/logotajir.webp"> 5099 <path 5100 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" 5101 fill="black" /> 5102 </svg> 5103 <span>Back</span> 5104 </button> 5105 5106 </div> 5107 <div 5108 class="btn-next-card col-12 col-lg-10 text-right"> 5109 5110 <!-- 5111 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 5112 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="img/logotajir.webp"> 5113 <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"/> 5114 </svg> 5115 <span>Back</span> 5116 </button> 5117 --> 5118 5119 5120 <button id="addtocart-card" 5121 class="btn next-address text-uppercase"> 5122 <span>add to cart</span> 5123 </button> 5124 </div> 5125 </div> 5126 5127 </div> 5128 </div> 5129 </div> 5130 5131 </div> 5132 </div> 5133 <div id="backgroundPopup"></div> 5134 5135 5136 5137 <input data-index="1" type="hidden" id="properties-delivery-date" 5138 name="properties[Delivery Date]" value="-"> 5139 <input data-index="2" type="hidden" id="properties-delivery-time" 5140 name="properties[Delivery Time]" value="-"> 5141 <input data-index="4" type="hidden" id="properties-nama-penerima" 5142 name="properties[Nama Penerima]" value="-"> 5143 <input data-index="5" type="hidden" id="properties-alamat-penerima" 5144 name="properties[Alamat Penerima]" value="-"> 5145 <input data-index="6" type="hidden" id="properties-kodepos" 5146 name="properties[Kodepos]" value="-"> 5147 <input data-index="7" type="hidden" id="properties-telepon-penerima" 5148 name="properties[Telepon Penerima]"> 5149 5150 5151 <input data-index="8" type="hidden" id="properties-kartu-nama-penerima" 5152 name="properties[Kartu Nama Penerima]" value="-"> 5153 5154 <textarea data-index="9" type="hidden" id="properties-kartu-pesan" 5155 name="properties[Kartu Pesan]" style="display: none">-</textarea> 5156 5157 5158 5159 <input data-index="10" type="hidden" id="properties-kartu-nama-pengirim" 5160 name="properties[Kartu Nama Pengirim]" value="-"> 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 <!-- Additional Shipping --> 5180 <input type="hidden" id="properties-kota-pengiriman-province" 5181 name="properties[Province]"> 5182 <input type="hidden" id="properties-kota-pengiriman-country" 5183 name="properties[Country]" value="Indonesia"> 5184 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 5185 5186 <input type="hidden" id="properties-time" name="properties[Time]"> 5187 <input type="hidden" id="properties-card" name="properties[Card]"> 5188 <input type="hidden" id="properties-addons" name="properties[Addons]"> 5189 5190 <input type="hidden" id="properties-company" name="properties[Company]" 5191 value=""> 5192
5192<script> 5193 5194 $(document).ready(function () { 5195 5196 var text_max_papan1 = 150; 5197 var msg_text_papan1 = ""; 5198 $('#kartu-ucapan-ucapan').keyup(function () { 5199 var text_length_papan1 = $('#kartu-ucapan-ucapan').val().length; 5200 var msg_text_papan1 = $('#kartu-ucapan-ucapan').val(); 5201 }); 5202 5203 var notes_papan1 = [ 5204 5205 [0, "Happy Wedding (nama & nama)."], [1, "Congratulations lovebirds (nama & nama)."], [2, "Selamat berbahagia (nama & nama)."], [3, "Selamat menempuh hidup baru (nama & nama)."] 5206 5207 ]; 5208 $('#show_note_papan1').click(function (event) { 5209 event.preventDefault(); 5210 var idx_papan1 = parseInt($('#note_id_papan1').val()); 5211 if (isNaN(idx_papan1)) { 5212 idx_papan1 = 0; 5213 } else { 5214 idx_papan1++; 5215 idx_papan1 = idx_papan1 % notes_papan1.length; 5216 } 5217 var note_papan1 = notes_papan1[idx_papan1][1]; 5218 $('#note_id_papan1').val(idx_papan1); 5219 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 5220 $('#msgDelivery').val(note_papan1); 5221 5222 var text_length_papan1 = $('#kartu-ucapan-papan').val().length; 5223 var idx_2_papan1 = parseInt($('#note_btn_id_papan1').val()); 5224 if (isNaN(idx_2_papan1)) { 5225 idx_2_papan1 = 0; 5226 } else { 5227 idx_2_papan1++; 5228 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5229 } 5230 $('#note_btn_id_papan1').val(idx_2_papan1); 5231 //var note_btn=note_btn_text[idx_2][1]; 5232 //$('#note_btn').text(note_btn); 5233 }); 5234 5235 var text_max_papan2 = 150; 5236 var msg_text_papan2 = ""; 5237 $('#kartu-ucapan-ucapan').keyup(function () { 5238 var text_length_papan2 = $('#kartu-ucapan-ucapan').val().length; 5239 var msg_text_papan2 = $('#kartu-ucapan-ucapan').val(); 5240 }); 5241 5242 var notes_papan2 = [ 5243 5244 [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)."] 5245 5246 ]; 5247 $('#show_note_papan2').click(function (event) { 5248 event.preventDefault(); 5249 var idx_papan2 = parseInt($('#note_id_papan2').val()); 5250 if (isNaN(idx_papan2)) { 5251 idx_papan2 = 0; 5252 } else { 5253 idx_papan2++; 5254 idx_papan2 = idx_papan2 % notes_papan2.length; 5255 } 5256 var note_papan2 = notes_papan2[idx_papan2][1]; 5257 $('#note_id_papan2').val(idx_papan2); 5258 $('#kartu-ucapan-
5258papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 5259 $('#msgDelivery').val(note_papan2); 5260 var text_length_papan2 = $('#kartu-ucapan-papan').val().length; 5261 var idx_2_papan2 = parseInt($('#note_btn_id_papan2').val()); 5262 if (isNaN(idx_2_papan2)) { 5263 idx_2_papan2 = 0; 5264 } else { 5265 idx_2_papan2++; 5266 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5267 } 5268 $('#note_btn_id_papan2').val(idx_2_papan2); 5269 //var note_btn=note_btn_text[idx_2][1]; 5270 //$('#note_btn').text(note_btn); 5271 }); 5272 5273 var text_max_papan3 = 150; 5274 var msg_text_papan3 = ""; 5275 $('#kartu-ucapan-ucapan').keyup(function () { 5276 var text_length_papan3 = $('#kartu-ucapan-ucapan').val().length; 5277 var msg_text_papan3 = $('#kartu-ucapan-ucapan').val(); 5278 }); 5279 5280 var notes_papan3 = [ 5281 5282 [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)."] 5283 5284 ]; 5285 $('#show_note_papan3').click(function (event) { 5286 event.preventDefault(); 5287 var idx_papan3 = parseInt($('#note_id_papan3').val()); 5288 if (isNaN(idx_papan3)) { 5289 idx_papan3 = 0; 5290 } else { 5291 idx_papan3++; 5292 idx_papan3 = idx_papan3 % notes_papan3.length; 5293 } 5294 var note_papan3 = notes_papan3[idx_papan3][1]; 5295 $('#note_id_papan3').val(idx_papan3); 5296 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 5297 $('#msgDelivery').val(note_papan3); 5298 var text_length_papan3 = $('#kartu-ucapan-papan').val().length; 5299 var idx_2_papan3 = parseInt($('#note_btn_id_papan3').val()); 5300 if (isNaN(idx_2_papan3)) { 5301 idx_2_papan3 = 0; 5302 } else { 5303 idx_2_papan3++; 5304 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5305 } 5306 $('#note_btn_id_papan3').val(idx_2_papan3); 5307 //var note_btn=note_btn_text[idx_2][1]; 5308 //$('#note_btn').text(note_btn); 5309 }); 5310 5311 var text_max_papan4 = 150; 5312 var msg_text_papan4 = ""; 5313 $('#kartu-ucapan-ucapan').keyup(function () { 5314 var text_length_papan4 = $('#kartu-ucapan-ucapan').val().length; 5315 var msg_text_papan4 = $('#kartu-ucapan-ucapan').val(); 5316 }); 5317 5318 $('#show_note_papan4').click(function (event) { 5319 var notes_papan4 = [ 5320 [0, "Hereâs to youâsteadier, stronger and better every day."], 5321 [1, "Warmest wishes for a speedy recovery!"], 5322 [2, "Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 5323 [3, "Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 5324 ]; 5325 event.preventDefault(); 5326 var idx_papan4 = parseInt($('#note_id_papan4').val()); 5327 console.log(idx_papan4, 'idx_papan4') 5328 if (isNaN(idx_papan4)) { 5329 idx_papan4 = 0; 5330 } else { 5331 idx_papan4++; 5332 idx_papan4 = idx_papan4 % notes_papan4.length; 5333 } 5334 var note_papan4 = notes_papan4[idx_papan4][1]; 5335 $('#note_id_papan4').val(idx_papan4); 5336 $('#kartu-ucapan-
5336papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 5337 console.log(note_papan4, 'note_papan4') 5338 var text_length_papan4 = $('#kartu-ucapan-papan').val().length; 5339 var idx_2_papan4 = parseInt($('#note_btn_id_papan4').val()); 5340 if (isNaN(idx_2_papan4)) { 5341 idx_2_papan4 = 0; 5342 } else { 5343 idx_2_papan4++; 5344 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5345 } 5346 $('#note_btn_id_papan4').val(idx_2_papan4); 5347 }); 5348 5349 /* 5350 $("#jenisPapan").change(function(){ 5351 $( "select option:selected").each(function(){ 5352 if($(this).attr("value")=="Happy Wedding"){ 5353 $("#suggest-messages a").hide(); 5354 $("#show_note_papan1").show(); 5355 $("#kartu-ucapan-papan").val(""); 5356 } 5357 if($(this).attr("value")=="Congratulations"){ 5358 $("#suggest-messages a").hide(); 5359 $("#show_note_papan2").show(); 5360 $("#kartu-ucapan-papan").val(""); 5361 } 5362 if($(this).attr("value")=="Duka Cita"){ 5363 $("#suggest-messages a").hide(); 5364 $("#show_note_papan3").show(); 5365 $("#kartu-ucapan-papan").val(""); 5366 } 5367 }); 5368 }).change(); 5369 */ 5370 5371 5372 5373 5374 5375 $(".variant-metafield").each(function () { 5376 const t = $(this) 5377 const id = t.attr("id") 5378 const target = $(`[data-select=${id}]`) 5379 t.on('select2:selecting', function (e) { 5380 const data = e.params.args.data 5381 target.val(data.text) 5382 }); 5383 }) 5384 }) 5385 </script>
5385 5386 5387 <div id="popupCart"> 5388 <div class="container"> 5389 <div class="wrapperPopupCart"> 5390 <div class="headerPopupCart"> 5391 <div class="d-flex pl-5 pr-5 p-4"> 5392 <svg xmlns="img/logotajir.webp" width="16" height="12" 5393 viewBox="0 0 16 12" fill="none"> 5394 <path 5395 d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" 5396 fill="black" /> 5397 </svg> 5398 <span>item added to your cart</span> 5399 </div> 5400 <a class="close-purchase-popup"> 5401 <svg xmlns="img/logotajir.webp" width="18" height="18" 5402 viewB
5402ox="0 0 18 18" fill="none"> 5403 <path 5404 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" 5405 fill="black" /> 5406 </svg> 5407 </a> 5408 5409 </div> 5410 <div class="contentPopupCart"> 5411 <div class="pl-5 pr-5 p-4"> 5412 <div 5413 class="itemContent row m-0 justify-content-between"> 5414 <div class="col-2 align-self-center"> 5415 5416 <img class="d-block" width="80" 5417 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"> 5418 </div> 5419 <div class="col-10 align-self-center"> 5420 <div class="row pl-3"> 5421 <div class="col-12 col-lg-7"> 5422 <span 5423 class="titleCartPopup text-uppercase">TAJIR4D 5424 » Rekomendasi iwantanap Situs Slot 5425 Gacor Untuk Generasi Sekarang 5426 Gampang jadi Tajir !</span> 5427 </div> 5428 <div 5429 class="d-flex justify-content-end col-12 col-lg-5"> 5430 <span 5431 class="deleteCartPopup hide">Delete</span> 5432 <span 5433 class="lineCartPrice align-self-center">Rp 5434 5.000</span> 5435 </div> 5436 </div> 5437 </div> 5438 </div> 5439 <div class="itemProperties"> 5440 5441 <div class="propDeliver"> 5442 <h4>delivery option detail</h4> 5443 <p> 5444 <span>delivery city</span> 5445 <span 5446 class="propDeliveryCity">jakarta</span> 5447 </p> 5448 <p> 5449 <sp
5449an>delivery date</span> 5450 <span 5451 class="propDeliveryDate">24/03/2025</span> 5452 </p> 5453 <p> 5454 <span>delivery time</span> 5455 <span class="propDeliveryTime">Afternoon | 5456 13:00 - 18:00</span> 5457 </p> 5458 </div> 5459 <div class="propAddress"> 5460 <h4>delivery option detail</h4> 5461 <p> 5462 <span>RECIPIENT NAME</span> 5463 <span class="propDeliveryName">Beban 5464 Team</span> 5465 </p> 5466 <p> 5467 <span>delivery address</span> 5468 <span class="propDeliveryAddress">Jl. 5469 Jenderal Sudirman Kav. 76-78, RT.003 5470 /RW.002, Kelurahan Karet, Kecamatan 5471 Palang merah, Kota Jakarta barat, Daerah 5472 Khusus Ibukota Jakarta 10221, 5473 Indonesia</span> 5474 </p> 5475 <p> 5476 <span>recipient phone number</span> 5477 <span class="propDeliveryPhone">(+62) 5478 856-9671-0206</span> 5479 </p> 5480 <p> 5481 <span>PROVINCE</span> 5482 <span 5483 class="propDeliveryProv">Jakarta</span> 5484 </p> 5485 <p> 5486 <span>postal code</span> 5487 <span class="propDeliveryZip">10220</span> 5488 </p> 5489 5490 5491 </div> 5492 5493 </div> 5494 <div class="itemAddonCart"> 5495 <div 5496 class="toggleAddonCart d-flex justify-content-between"> 5497 <h4>add-ons (0)</h4> 5498 <svg xmlns="img/logotajir.webp" width="5" 5499 height="9" viewBox="0 0 5 9" fill="none"> 5500 <path 5501 d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" 5502 fill="black" /> 5503 </svg> 5504 </div> 5505 <div class="wrapperItemAddonCart"></div> 5506 </div> 5507 5508 </div> 5509 </div> 5510 <div class="footerPo
5510pupCart"> 5511 <div class="row m-0 pl-5 pr-5 p-4"> 5512 <a class="btn btnViewCart w-100 text-uppercase text-center" 5513 href="/cart">View Cart</a> 5514 <a class="btn btnViewCheckout w-100 text-uppercase text-center" 5515 href="/checkout"><span>Checkout</span></a> 5516 <a class="btnContinueShopping w-100 text-center" 5517 href="/">Continue shopping</a> 5518 </div> 5519 </div> 5520 </div> 5521 </div> 5522 </div> 5523 5524 5525
5525<script> 5526 const shareButton = document.getElementById('shareButton'); 5527 5528 shareButton.addEventListener('click', () => { 5529 if (navigator.share) { 5530 navigator.share({ 5531 title: "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 5532 url: "/products/blossom-shine", 5533 text: 'Check out this page!' 5534 }) 5535 .then(() => console.log('Successful share')) 5536 .catch((error) => console.log('Error sharing', error)); 5537 } else { 5538 alert('Web Share API is not supported in this browser.'); 5539 } 5540 }); 5541 5542 // Inventory validation function 5543 function checkInventoryStatus() { 5544 const productSelect = document.getElementById('productSelect'); 5545 const purchaseButton = document.querySelector('#personalizeBtn button'); 5546 5547 if (!productSelect || !purchaseButton) return; 5548 5549 const selectedVariantId = productSelect.value; 5550 5551 // Get variant data from Shopify 5552 fetch(`/products/blossom-shine.js`) 5553 .then(response => response.json()) 5554 .then(product => { 5555 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 5556 5557 if (selectedVariant) { 5558 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 5559 selectedVariant.inventory_management === 'shopify' && 5560 selectedVariant.inventory_policy !== 'continue'; 5561 5562 if (isOutOfStock) { 5563 purchaseButton.disabled = true; 5564 purchaseButton.textContent = 'Out of Stock'; 5565 purchaseButton.setAttribute('data-out-of-stock', 'true'); 5566 purchaseButton.style.backgroundColor = '#cccccc'; 5567 purchaseButton.style.cursor = 'not-allowed'; 5568 } else { 5569 // Check if button was disabled due to other conditions 5570 5571 5572 5573 5574 5575 5576 5577 5578 const isOtherDisabled = false || true || false; 5579 5580 if (!isOtherDisabled) { 5581 purchaseButton.disabled = false; 5582 purchaseButton.textContent = 'customize your flower board'; 5583 purchaseButton.removeAttribute('data-out-of-stock'); 5584 purchaseButton.style.backgroundColor = ''; 5585 purchaseButton.style.cursor = ''; 5586 } 5587 } 5588 } 5589 }) 5590 .catch(error => { 5591 console.error('Error checking inventory:', error); 5592 }); 5593 } 5594 5595 // Check inventory on page load 5596 document.addEventListener('DOMContentLoaded', function () { 5597 checkInventoryStatus(); 5598 5599 // Listen for variant changes 5600 const productSelect = document.getElementById('productSelect'); 5601 if (productSelect) { 5602 productSelect.addEventListener('change', checkInventoryStatus); 5603 } 5604 }); 5605 5606 // Prevent form submission if out of stock 5607 document.addEventListener('click', function (e) { 5608 if (e.target.matches('button[data-out-of-stock="true"]')) { 5609 e.preventDefault(); 5610 e.stopPropagation(); 5611 alert('This product is currently out of stock and cannot be purchased.'); 5612 return false;
5613 } 5614 }); 5615 </script>
5615 5616 5617 5618 5619 </div> 5620 5621 </div> 5622 </div> 5623 </div> 5624 </div> 5625 <div id="product-bottom"> 5626 5627 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 5628 <div class="container"> 5629 5630 5631 5632 5633 5634 <div class="short-desc-mobile d-block d-lg-none mb-3"> 5635 <div class="short-desc"> 5636 <ul> 5637 <li><strong>Tajir4D merupakan Blog utama penyedia permainan slot gacor 5638 server Thailand. Terdapat berbagai macam game blogs dengan 5639 sistem keamanan terbaik serta layanan 24 jam hanya untuk 5640 anda.</strong></li> 5641 </div> 5642 <label class="more-mobile">Show More â</label> 5643 </div> 5644 5645 <style> 5646 .animated-title { 5647 text-align: center; 5648 font-weight: bold; 5649 color: #079c02; 5650 font-size: 28px; 5651 position: relative; 5652 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 5653 } 5654 5655 /* Efek glow / bercahaya hijau */ 5656 @keyframes glow { 5657 0% { 5658 text-shadow: 0 0 5px #079c02; 5659 color: #079c02; 5660 } 5661 5662 50% { 5663 text-shadow: 0 0 20px #00ff55; 5664 color: #12d12b; 5665 } 5666 5667 100% { 5668 text-shadow: 0 0 10px #1bff00; 5669 color: #079c02; 5670 } 5671 } 5672 5673 /* Efek gerakan naik turun */ 5674 @keyframes moveUpDown { 5675 0% { 5676 transform: translateY(0px); 5677 } 5678 5679 50% { 5680 transform: translateY(-5px); 5681 } 5682 5683 100% { 5684 transform: translateY(0px); 5685 } 5686 } 5687 </style> 5688 5689
5689<script type="text/javascript" 5690 src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
5690 5691
5691<script> 5692 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 }); 5693 5694 const productType = $("[data-product-type]").data("product-type") 5695 const productDate = Date.parse(new Date()) 5696 5697 const shop = 'outerbloom1.myshopify.com' 5698 const host = 'https://app.asmaraku.com' 5699 // const host = 'http://localhost:5001' 5700 5701 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 5702 5703 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 5704 5705 $("#properties-time").val(new Date().getTime()) 5706 5707 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5708 5709 if (!isIOS) { 5710 $("#full-date").attr("type", "button") 5711 } 5712 5713 let dateTime = new Date(); 5714 let today = dateTime.getDate(); 5715 let day = dateTime.getDay(); 5716 let hour = dateTime.getHours(); 5717 let min = dateTime.getMinutes(); 5718 let timeOfDay = hour + (min / 100); 5719 5720 async function getFetch(url) { 5721 const response = await fetch(url); 5722 let status = false 5723 let result 5724 if (response.ok) { 5725 status = true 5726 result = await response.json(); 5727 } 5728 return { 5729 status, 5730 data: result 5731 } 5732 } 5733 5734 5735 5736 function setCookie(cname, cvalue, exMins) { 5737 var d = new Date(); 5738 d.setTime(d.getTime() + (exMins * 60 * 1000)); 5739 var expires = "expires=" + d.toUTCString(); 5740 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5741 } 5742 5743 function getCookie(cname) { 5744 let name = cname + "="; 5745 let decodedCookie = decodeURIComponent(document.cookie); 5746 let ca = decodedCookie.split(';'); 5747 for (let i = 0; i < ca.length; i++) { 5748 let c = ca[i]; 5749 while (c.charAt(0) == ' ') { 5750 c = c.substring(1); 5751 } 5752 if (c.indexOf(name) == 0) { 5753 return c.substring(name.length, c.length); 5754 } 5755 } 5756 return ""; 5757 } 5758 5759 async function renderDate() { 5760 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8359546319899&v=${Date.now()}`); 5761 console.log(dataDate, 'renderDate') 5762 const data = dataDate?.data 5763 const date = data.date 5764 const time = data.time 5765 5766 console.log(date, 'DATE') 5767 5768 const weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 5769 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 5770 const htmlDate = [] 5771 for (let i = 0; i < date.length; i++) { 5772 const full = date[i].date 5773 const d = new Date(date[i].date); 5774 const day = weekday[d.getDay()]; 5775 const dt = d.getDate(); 5776 const mt = monthly[d.getMonth()]; 5777 const yr = d.getFullYear(); 5778 const isDate = Boolean(date[i].isEnabled) 5779 const cutoffpagi = date[i].cutoff?.pagi 5780 const cutoffsiang = date[i].cutoff?.siang 5781 const cutoffMalam = date[i].cutoff?.Malam 5782 var html = ` 5783 <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'}> 5784 ${dt === today ? 5785 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 5786 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 5787 } 5788 </button> 5789 ` 5790 htmlDate.push(html) 5791 } 5792 const htmlTime = [] 5793 for (var i = 0; i < time.length; i++) { 5794 const timeText = time[i].text 5795 const timeTime = time[i].time 5796 const timeEnabled = time[i].isEnabled 5797 var html = ` 5798 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 5799 ` 5800 htmlTime.push(html) 5801 } 5802 const deliveryDate = document.getElementById("deliveryDate"); 5803 if (deliveryDate) { 5804 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 5805 $("#deliveryTime").html(htmlTime) 5806 if (productType !== '') { 5807 console.log("clarity event " + productType + ' calendaring') 5808 window.clarity("event", `${productType} calendaringSchedule`) 5809 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 5810 } 5811 } 5812 } 5813 5814 async function getProvince(city) { 5815 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 5816 console.log(province, 'province') 5817 $("#province").val(province) 5818 } 5819 5820 async function renderAddress() { 5821 let current 5822 if (getCookie("location_delivery")) { 5823 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 5824 } 5825 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8359546319899`); 5826 console.log(address) 5827 const data = address?.data?.city 5828 const htmlAddress = [] 5829 const grouping = [] 5830 for (let i = 0; i < data?.length; i++) { 5831 if (data[i]) { 5832 if (data[i]?.group) { 5833 grouping.push(data[i].group) 5834 } 5835 const price = rupiah.format(data[i]?.rate) 5836 let promo = '(Promo Free Delivery)' 5837 if (data[i]?.name === 'Jakarta - PickUp ASHTA') { 5838 promo = '(at SCBD, Ashta)' 5839 } else if (data[i]?.name === 'Jakarta - PickUp ITC') { 5840 promo = '(at Kuningan, ITC Kuningan)' 5841 } else if (data[i]?.name === 'BSD - PickUp') { 5842 promo = '(at Goldfinch Gading Serpong)' 5843 } else if (data[i]?.name === 'Kota Lainnya') { 5844 promo = '' 5845 } 5846 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>`) 5847 } 5848 } 5849 5850 const deliveryCity = document.getElementById("cities"); 5851 if (deliveryCity) { 5852 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 5853 if (!isIOS) { 5854 $(deliveryCity).select2(); 5855 } 5856 } 5857 } 5858 5859 async function renderZip(v, v2, v3) { 5860 const deliveryZip = document.getElementById("zip"); 5861 if (v === '') { 5862 return 5863 } 5864 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5865 let zip = dataZip?.data?.z
5865ip 5866 console.log(zip) 5867 let htmlZip = [] 5868 for (let i = 0; i < zip?.length; i++) { 5869 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5870 } 5871 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5872 } 5873 5874 renderDate() 5875 renderAddress() 5876 5877 let rupiah = new Intl.NumberFormat('id-ID', { 5878 style: 'currency', 5879 currency: 'IDR', 5880 maximumFractionDigits: 0, 5881 minimumFractionDigits: 0 5882 }); 5883 5884 async function insertCard(data) { 5885 const response = await fetch(`${host}/api/card/new`, { 5886 method: "POST", 5887 headers: { 5888 'Content-Type': 'application/json', 5889 }, 5890 body: data 5891 }) 5892 const result = await response.json() 5893 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5894 $("#greetingCard").attr("data-index", rowIndex) 5895 return result 5896 } 5897 5898 async function updateCard(data) { 5899 const rowIndex = $("#greetingCard").data("index") 5900 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5901 method: "PUT", 5902 headers: { 5903 'Content-Type': 'application/json', 5904 }, 5905 body: data 5906 }) 5907 return response 5908 } 5909 5910 function bytesToSize(bytes) { 5911 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5912 for (var i = 0; i < sizes.length; i++) { 5913 if (bytes <= 1024) { 5914 return bytes + ' ' + sizes[i]; 5915 } else { 5916 bytes = parseFloat(bytes / 1024).toFixed(2) 5917 } 5918 } 5919 return bytes + ' P'; 5920 } 5921 5922 async function uploadMedia(uri, type) { 5923 nameq = $("#properties-nama-penerima").val() 5924 dear = $("#properties-kartu-nama-penerima").val() 5925 card = $("[data-properties=ucapan]").val() 5926 sender = $("#properties-kartu-nama-pengirim").val() 5927 photo = $("#properties-photo").val() 5928 video = $("#properties-video").val() 5929 status = "Product" 5930 5931 const name = qrID 5932 let formData = new FormData(); 5933 formData.append("file", uri); 5934 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5935 method: "POST", 5936 body: formData 5937 }) 5938 const result = await response.json(); 5939 if (result) { 5940 const url = result.url 5941 if (type === 'image/jpeg') { 5942 $("#properties-photo").val(url) 5943 $(".preview-image").show() 5944 $(".remove-image").show() 5945 photo = url 5946 } else { 5947 $("#properties-video").val(url) 5948 $("#label-input-video span").text("Change File") 5949 $(".case-qrcode-preview p").text("Scan here for a secret message") 5950 $(".remove-media").show() 5951 $("#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>`) 5952 $("[for=input-video]").hide() 5953 video = url 5954 } 5955 $(".case-video-preview").show() 5956 $(".steps-card-preview").removeClass("loading") 5957 // updateCard(nameq, dear, card, sender, photo, video, status) 5958 5959 $(".nextBtn").attr("disabled", false) 5960 } 5961 } 5962 5963 function randomString(length, chars) { 5964 var result = ''; 5965 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5966 return result; 5967 } 5968 5969 function getNoteCity(fulldate) { 5970 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5971 const weekday = ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"]; 5972 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 5973 const d = new Date(h_1); 5974 const day = weekday[d.getDay()]; 5975 const dt = d.getDate(); 5976 const mt = monthly[d.getMonth()]; 5977 const yr = d.getFullYear(); 5978 const p = $("#cities").parent(".form-group") 5979 } 5980 5981 function disabledSameDay() { 5982 let btnFirst = $("#deliveryDate").find("button:first-child") 5983 let getDay = new Date().getDay(); 5984 5985 5986 5987 if (getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5) { 5988 if (hour >= 14.00) { 5989 btnFirst.attr("disabled", true) 5990 } 5991 } else if (getDay == 6) { 5992 if (hour >= 16.00) { 5993 btnFirst.attr("disabled", true) 5994 } 5995 } else if (getDay == 0) { 5996 if (hour >= 16.00) { 5997 btnFirst.attr("disabled", true) 5998 } 5999 } 6000 6001 6002 } 6003 6004 function disabledays(date) { 6005 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 6006 //if u have to disable a list of day 6007 let removeDays 6008 6009 6010 6011 removeDays = ["2025-2-13", "2025-2-14"]; 6012 6013 if ($.inArray(ymd, removeDays) >= 0) { 6014 return [false]; 6015 } else { 6016 let day = date.getDay(); 6017 if (day == 0 && date.getDate() == 13 && date.getMonth() == 1) { 6018 return [(day == 0), '']; 6019 } 6020 6021 if (day == 0) { 6022 return [(day == 0), '']; 6023 } 6024 6025 6026 return [(day != 0), '']; 6027 } 6028 } 6029 6030 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 6031 /* Written by Deden Fathurahman ([email protected]). */ 6032 (function (factory) { 6033 if (typeof define === "function" && define.amd) { 6034 6035 // AMD. Register as an anonymous module. 6036 define(["../widgets/datepicker"], factory); 6037 } else { 6038 6039 // Browser globals 6040 factory(jQuery.datepicker); 6041 } 6042 }(function (datepicker) { 6043 6044 datepicker.regional.id = { 6045 closeText: "Tutup", 6046 prevText: "<mundur", 6047 nextText: "maju>", 6048 currentText: "Today", 6049 monthNames: ["January", "February", "March", "April", "May", "Juny", 6050 "July", "August", "September", "October", "
6050November", "December"], 6051 monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 6052 "Jul", "Agu", "Sep", "Oct", "Nov", "Dec"], 6053 dayNames: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], 6054 dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 6055 dayNamesMin: ["Mg", "Sn", "Sl", "Rb", "Km", "jm", "Sb"], 6056 weekHeader: "Mg", 6057 dateFormat: "D, dd M", 6058 firstDay: 0, 6059 isRTL: false, 6060 showMonthAfterYear: false, 6061 yearSuffix: "" 6062 }; 6063 datepicker.setDefaults(datepicker.regional.id); 6064 6065 return datepicker.regional.id; 6066 6067 })); 6068 6069 function loadPopup() { 6070 $("#backgroundPopup").fadeIn("slow"); 6071 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 6072 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 6073 if (firstSection.hasClass("purchasePersonalize")) { 6074 if (productType !== '') { 6075 console.log("clarity event " + productType + ' personalize') 6076 window.clarity("event", `${productType} cardPersonalization`) 6077 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 6078 } 6079 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 6080 console.log("clarity event " + productType + ' personalizeBoard') 6081 window.clarity("event", `${productType} personalizeBoard`) 6082 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 6083 } 6084 firstSection.removeClass("hide") 6085 6086 // Auto-trigger addon loading when addon section becomes visible 6087 setTimeout(function () { 6088 const addonSection = $(".purchaseAddon") 6089 if (addonSection.length > 0 && !addonSection.hasClass("hide")) { 6090 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6091 $("[data-addon=upsell-all]").trigger("click") 6092 } 6093 } 6094 }, 200) 6095 } 6096 6097 function disablePopup() { 6098 $("#backgroundPopup").fadeOut("slow"); 6099 $(".purchasePopup").fadeOut("slow"); 6100 $("#popupCart").fadeOut("slow"); 6101 } 6102 6103 function scrollTo(parent, div, dur) { 6104 $(parent).animate({ 6105 scrollTop: $(div).offset().top 6106 }, dur); 6107 } 6108 6109 function loadPopupPersonalize() { 6110 const div = "#purchaseProduct" 6111 const p = "html, body, .product-meta" 6112 $("p.error").remove() 6113 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 6114 const isCity = $("#cities[required]") 6115 const isDate = $("#propDeliveryDate[required]") 6116 const isTime = $("#propDeliveryTime[required]") 6117 // loadPopup() 6118 if (isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 6119 loadPopup() 6120 } 6121 if (isCity.val() == '') { 6122 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 6123 scrollTo(p, div, 500) 6124 } 6125 if (isDate.val() == '') { 6126 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 6127 scrollTo(p, div, 500) 6128 } 6129 if (isTime.val() == '') { 6130 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 6131 scrollTo(p, div, 500) 6132 } 6133 } 6134 6135 function quantityCounter() { 6136 $(document).on("click", ".item-card.selected .q_up", function () { 6137 var C = $(this).attr("data-id"), 6138 S = 6139 parseInt( 6140 $(this) 6141 .siblings(".quantity-cart-" + C) 6142 .val() 6143 ) + 1; 6144 $(this).attr("data-quantity", S), 6145 $(this) 6146 .siblings(".quantity-cart-" + C) 6147 .val(S); 6148 }), 6149 $(document).on("click", ".item-card.selected .q_down", function () { 6150 var C = $(this).attr("data-id"), 6151 S = parseInt( 6152 $(this) 6153 .siblings(".quantity-cart-" + C) 6154 .val() 6155 ); 6156 0 < S && $(this).attr("data-quantity", S - 1), 6157 0 < S && 6158 $(this) 6159 .siblings(".quantity-cart-" + C) 6160 .val(S - 1); 6161 }); 6162 } 6163 6164 quantityCounter() 6165 6166 const itemAddon = $(".item-card").length 6167 const nofree = $(".nofree").length 6168 6169 const upsell = '' 6170 6171 if (nofree === itemAddon) { 6172 // $("#itemAddons").html("<p>No Items available</p>") 6173 } 6174 6175 $("#itemAddons .item-card").each(function (e) { 6176 $("#itemAddons").attr("data-length", e) 6177 }) 6178 6179 $("[data-addon]").click(function () { 6180 6181 6182 6183 const t = $(this) 6184 6185 const data = t.data("addon") 6186 6187 $("[data-addon]").removeClass("selected") 6188 t.addClass("selected") 6189 $.get(`https://outerbloom.com/collections/${data}/products.json`, function (data, status) { 6190 const products = data.products 6191 const html = [] 6192 for (let i = 0; i < products.length; i++) { 6193 const id = products[i].id 6194 const variantId = products[i].variants[0].id 6195 const img = products[i].images[0].src 6196 let img2 = img.split('.jpg')[0] 6197 const title = products[i].title 6198 const price = products[i].variants[0].price 6199 const tags = products[i].tags
6200 const qty = products[i].variants[0].available 6201 let type_upsell = '' 6202 if (tags.includes('upsell-item-standing')) { 6203 type_upsell = 'standing' 6204 } 6205 console.log(type_upsell) 6206 if (type_upsell !== '') { 6207 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}"> 6208 6209 <div class="card-image"> 6210 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 6211 </div> 6212 <div class="card-meta"> 6213 <h5>${title}</h5> 6214 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6215 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 6216 </div> 6217 <div class="card-qty"> 6218 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="img/logotajir.webp" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 6219 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity"> 6220 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="img/logotajir.webp" width="12" height="13" viewBox="0 0 12 13" fill="none"> 6221 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 6222 </svg></a> 6223 </div> 6224 </div>` 6225 html.push(body) 6226 } 6227 } 6228 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 6229 $("#itemAddons").attr("data-length", products.length) 6230 // $('#itemAddons')[0].swiper.update(); 6231 }); 6232 }) 6233 6234 async function isAddon() { 6235 let ids = [] 6236 $("#itemAddons .item-card.selected").each(function (i, e) { 6237 const id = $(this).data("id") 6238 ids.push(id) 6239 }) 6240 console.log(ids) 6241 return ids 6242 } 6243 6244 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function () { 6245 const t = $(this).parent() 6246 const id = t.data("id") 6247 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 6248 t.toggleClass("selected"); 6249 //$(this).next("input").toggleAttr('name', 'id[]'); 6250 if (t.hasClass('selected')) { 6251 t.find("input").val(1) 6252 t.find("input").attr('name', 'id[]'); 6253 } else { 6254 t.find("input").val(0) 6255 t.find("input").removeAttr('name'); 6256 } 6257 $("#properties-addons").val(addons) 6258 const is = await isAddon() 6259 if (is.length === 0) { 6260 btn.text("continue without add-ons") 6261 return 6262 } 6263 if (is.includes(8835692069079)) { 6264 btn.text("personalize acrylic frame") 6265 } else { 6266 btn.text("Continue") 6267 } 6268 6269 }) 6270 6271 async function myAddon(data) { 6272 const c = $(".addonsPurchase .addons") 6273 let items = [] 6274 6275 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 6276 // if(spotifyAddons.length > 0) { 6277 // $(spotifyAddons).each(function(i, e){ 6278 // const spotifyLink = $(this).find(".spotifyLink").val() 6279 // const spotifySong = $(this).find(".spotifySong").val() 6280 // const spotifyArtist = $(this).find(".spotifyArtist").val() 6281 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 6282 // if(spotifyLink !== '') { 6283 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 6284 // <div class="addon-itm-img"> 6285 // <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"/> 6286 // </div> 6287 // <div class="addon-itm-title">
6288 // <span>[US] Outerbloom Acrylic Frame 4R</span> 6289 // </div> 6290 // <div class="addon-itm-line-total"> 6291 // <span>Rp 99.000</span> 6292 // </div> 6293 // </div> 6294 // <div class="propsAddonSpotify row m-0"> 6295 // <div class="col-12 col-lg-2"></div> 6296 // <div class="col-12 col-lg-10"> 6297 // <p> 6298 // <span>spotify link</span> 6299 // <span class="spotifyLinkAddon">${spotifyLink}</span> 6300 // </p> 6301 // <p> 6302 // <span>uploaded photo</span> 6303 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 6304 // </p> 6305 // <p> 6306 // <span>song / playlist name</span> 6307 // <span class="spotifySongAddon">${spotifySong}</span> 6308 // </p> 6309 // <p> 6310 // <span>artist name</span> 6311 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 6312 // </p> 6313 // </div> 6314 // </div>` 6315 // items.push(spotifyAddon) 6316 // } 6317 // }) 6318 // } 6319 for (let i = 0; i < data.length; i++) { 6320 if (data[i].title !== '[US] Outerbloom Acrylic Frame 4R') { 6321 const img = data[i].image 6322 const title = data[i].title 6323 const qty = data[i].qty 6324 const price = data[i].price 6325 const total = Number(qty) * Number(price) 6326 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 6327 <div class="addon-itm-img"> 6328 <img src="${img}" alt="" width="70"/> 6329 </div> 6330 <div class="addon-itm-title"> 6331 <span>${title}</span> 6332 </div> 6333 <div class="addon-itm-line-price"> 6334 <span>${rupiah.format(price)}</span> 6335 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 6336 </div> 6337 <div class="addon-itm-line-total"> 6338 <span>${rupiah.format(total)}</span> 6339 </div> 6340 </div>` 6341 items.push(addons) 6342 } 6343 } 6344 c.html(items) 6345 const parent = $(".purchaseAddon") 6346 const next = parent.next(".sectionPurchase") 6347 parent.addClass("hide") 6348 next.removeClass("hide") 6349 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 6350 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 6351 } 6352 6353 async function listAddon() { 6354 const data = $("#itemAddons").find(".selected") 6355 let ids = [] 6356 $(data).each(function () { 6357 const id = $(this).data("variant") 6358 const image = $(this).find(".card-image img").attr("src") 6359 const title = $(this).find(".card-meta h5").text()
6360 const qty = $(this).find(".card-qty input").val() 6361 const price = $(this).find(".card-qty input").data("price") 6362 ids.push({ 6363 id: Number(id), 6364 image, 6365 title, 6366 qty, 6367 price 6368 }) 6369 }) 6370 myAddon(ids) 6371 } 6372 6373 async function customSpotify(idx, length, type) { 6374 let isCard = false 6375 6376 let p = $(".purchasePopupSpotify") 6377 const preLink = $(".spotifyLinkFirst").val() 6378 $("[data-index]").hide() 6379 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 6380 p.find(".regulerAddons, .purchase-button").hide() 6381 p.find(".spotifyAddons").show() 6382 6383 const data = await trackUrl(preLink) 6384 6385 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>
6385<svg xmlns="img/logotajir.webp" width="13" height="11" viewBox="0 0 13 11" fill="none"> 6386 <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"/> 6387 </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=img/logotajir.webp><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded>
6387<svg xmlns="img/logotajir.webp" width="13" height="11" viewBox="0 0 13 11" fill="none"> 6388 <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"/> 6389 </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>` 6390 // console.log(html) 6391 6392 $(".spotifyAddons").append(html) 6393 6394 $(`[data-index=${idx}]`).show() 6395 6396 if (preLink !== '') { 6397 $(".btn-action .btn").attr("disabled", false) 6398 } else { 6399 $(".btn-action .btn").attr("disabled", true) 6400 } 6401 6402 return html 6403 6404 } 6405 6406 $(".spotifyLinkFirst").keyup(async function () { 6407 const v = $(this).val() 6408 if (v.includes('spotify:user:spotify')) { 6409 const correct = v.split('user:spotify:')[1] 6410 console.log(correct, 'BNER') 6411 $(this).val(correct) 6412 return 6413 } 6414 if (v.includes("spotify:") || v.includes("https://open.spotify.com/")) { 6415 const data = await trackUrl(v) 6416 if (!data || !data.status) { 6417 $(this).parent().addClass("error") 6418 // $(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>`) 6419 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6420 return 6421 } 6422 $(this).parent().removeClass("error") 6423 // $(this).parent().remove("txt-error") 6424 $("#personalizeBtnSpotify .btn").attr("disabled", false) 6425 } else { 6426 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6427 } 6428 }) 6429 6430 $(".purchaseAddon").delegate(".next-addon", "click", function () { 6431 const parent = $(this).parents(".purchaseAddon") 6432 const next = parent.next(".sectionPurchase") 6433 if (next.hasClass("purchaseAddress")) { 6434 if (productType !== '') { 6435 console.log("clarity event " + productType + ' purchaseDelivery') 6436 window.clarity("event", `${productType} purchaseDelivery`) 6437 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6438 } 6439 } 6440 const data = $("#itemAddons").find(".selected") 6441 const length = $(".quantity-cart-46067682607319").val() 6442 const checked = data.length; 6443 if (checked > 0) { 6444 if (length > 0) { 6445 $(".purchaseAddon").addClass("purchaseAddonSpotify") 6446 customSpotify(1, length, 'addon') 6447 } else { 6448 listAddon() 6449 } 6450 } else { 6451 parent.addClass("hide") 6452 next.removeClass("hide") 6453 } 6454 }) 6455 6456 $("#personalizeBtnSpotify .btn").click(async function () { 6457 const isCity = $("#cities[required]") 6458 const isDate = $("#propDeliveryDate[required]") 6459 if ((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 6460 alert('Please choose Delivery City & Delivery Date') 6461 return 6462 } 6463 const data = await customSpotify(1, 1, 'product') 6464 if (data) { 6465 $("#backgroundPopup").fadeIn("slow"); 6466 $(".purchasePopupSpotify").fadeIn("slow"); 6467 6468 if (productType !== '') { 6469 console.log("clarity event " + productType + ' spotify') 6470 window.clarity("event", `${productType} spotify`) 6471 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6472 } 6473 } 6474 }) 6475 6476 function formatBytes(bytes, decimals = 2) { 6477 if (!+bytes) return '0 Bytes' 6478
6479 const k = 1024 6480 const dm = decimals < 0 ? 0 : decimals 6481 const sizes = ['B', 'KB', 'MB'] 6482 6483 const i = Math.floor(Math.log(bytes) / Math.log(k)) 6484 6485 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 6486 } 6487 6488 async function trackUrl(link) { 6489 try { 6490 let trackId = link.split('/').pop().split('?')[0]; 6491 let type = '' 6492 if (link.includes("spotify:")) { 6493 const uri = link.split('spotify:')[1] 6494 trackId = uri.split(':')[1] 6495 type = uri.split(':')[0] + 's' 6496 } else { 6497 if (link.match('track')) { 6498 type = 'tracks' 6499 } else if (link.match('playlist')) { 6500 type = 'playlists' 6501 } else if (link.match('artist')) { 6502 type = 'artists' 6503 } else if (link.match('album')) { 6504 type = 'albums' 6505 } 6506 } 6507 console.log(`${host}/api/spotify/${type}/${trackId}`) 6508 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 6509 console.log(data, 'DATA') 6510 const song = data?.data?.name 6511 const artist = data?.data?.artist 6512 return { 6513 song, artist, type, trackId, status: data.status 6514 } 6515 } catch (err) { 6516 console.log(err) 6517 } 6518 } 6519 6520 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function () { 6521 const parent = $(this).parents("[data-index]") 6522 const preview = parent.find(".previewImage") 6523 const file = $(this)[0].files[0]; 6524 if (file) { 6525 const reader = new FileReader(); 6526 reader.onload = async function (e) { 6527 parent.find(".uploadResult label").hide() 6528 parent.find(".uploadedResult").remove() 6529 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 6530 <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> 6531 <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;">
6531<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="img/logotajir.webp"> 6532 <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 /> 6533 </svg> 6534 </span></div></div>`) 6535 parent.find(".frameImageUploaded svg").hide() 6536 parent.find(".frameImage").addClass("uploaded") 6537 preview.attr("src", e.target.result); 6538 preview.show(); 6539 let formData = new FormData(); 6540 formData.append("file", file); 6541 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 6542 method: "POST", 6543 body: formData 6544 }) 6545 const result = await response.json(); 6546 if (result) { 6547 parent.find(".resultPhotoSpotify").val(result.url) 6548 } 6549 } 6550 6551 reader.readAsDataURL(file); 6552 } else { 6553 preview.hide(); 6554 } 6555 }); 6556 6557 $(".spotifyAddons").delegate(".uploadResult", "click", function () { 6558 $(this).next("input[type=file]").trigger("click") 6559 }) 6560 6561 $(".spotifyAddons").delegate(".changeUpload", "click", function () { 6562 $(this).parents("input[type=file]").trigger("click") 6563 }) 6564 6565 $(".spotifyAddons").delegate(".removeUpload", "click", function () { 6566 const parent = $(this).parents("[data-index]") 6567 parent.find(".uploadPhotoSpotify").val("") 6568 parent.find(".uploadResult label").show() 6569 parent.find(".uploadedResult").remove() 6570 parent.find(".frameImageUploaded svg").show() 6571 parent.find(".previewImage").hide() 6572 parent.find(".frameImage").removeClass("uploaded") 6573 }) 6574 6575 $(".spotifyAddons").delegate("label.checkbox", "click", function () { 6576 const parent = $(this).parents("[data-index]") 6577 parent.toggleClass("checked") 6578 }) 6579 6580 $(".spotifyAddons").delegate(".
6580spotifyLink", "change", async function () { 6581 const parent = $(this).parents("[data-index]") 6582 const link = $(this).val() 6583 const data = await trackUrl(link) 6584 6585 console.log(data) 6586 6587 if (data.song) { 6588 parent.find(".spotifySong").val(data.song) 6589 parent.find(".spotifyData").find("h3").text(data.song) 6590 } 6591 if (data.artist) { 6592 parent.find(".spotifyArtist").val(data.artist) 6593 parent.find(".spotifyData").find("p").text(data.artist) 6594 } 6595 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 6596 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 6597 if (data.status === true) { 6598 parent.find(".btn-action .btn").attr("disabled", false) 6599 } else { 6600 parent.find(".btn-action .btn").attr("disabled", true) 6601 } 6602 }) 6603 6604 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function () { 6605 const parent = $(this).parents("[data-index]") 6606 const v = $(this).val() 6607 parent.find(".spotifyData h3").text(v) 6608 }) 6609 6610 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function () { 6611 const parent = $(this).parents("[data-index]") 6612 const v = $(this).val() 6613 parent.find(".spotifyData p").text(v) 6614 }) 6615 6616 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function () { 6617 const parent = $(this).parents("[data-index]") 6618 const length = parent.data("length") 6619 const index = parent.data("index") 6620 const indexNext = Number(index) + 1 6621 customSpotify(indexNext, length, 'addon') 6622 }) 6623 6624 6625 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function () { 6626 const parent = $(this).parents(".purchaseAddon") 6627 const next = parent.next(".sectionPurchase") 6628 parent.addClass("hide") 6629 next.removeClass("hide") 6630 next.find(".purchase-button").show() 6631 listAddon() 6632 }) 6633 6634 $(".spotifyAddons").delegate(".back-spotify", "click", async function () { 6635 const t = $(this).parents("[data-index]") 6636 const parent = $(this).parents(".sectionPurchase") 6637 const current = t.data("index") 6638 const prevCurrent = Number(current) - 1 6639 if (current == 1) { 6640 parent.removeClass("purchaseAddonSpotify") 6641 parent.find(".purchase-button").show() 6642 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 6643 $(".spotifyAddons").empty() 6644 $(".regulerAddons").show() 6645 return 6646 } 6647 t.hide() 6648 t.prev("[data-index]").show() 6649 t.remove() 6650 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 6651 }) 6652 6653 $("#personalizeBtn .btn").click(async function () { 6654 loadPopupPersonalize() 6655 }); 6656 6657 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function () { 6658 $(".sectionPurchaseSpotify").hide() 6659 loadPopupPersonalize() 6660 }) 6661 6662 $(".close-purchase-popup").click(function () { 6663 disablePopup(); 6664 }); 6665 $("#backgroundPopup").click(function () { 6666 // disablePopup(); 6667 }); 6668 6669 $("#popupCart .close-purchase-popup").click(function () { 6670 location.reload() 6671 }); 6672 6673 $('#popupCart').on('hide.bs.modal', function (e) { 6674 location.reload() 6675 }) 6676 6677 $(".next-card").click(function () { 6678 const parent = $(this).parents(".sectionPurchase") 6679 const next = parent.next(".sectionPurchase") 6680 parent.addClass("hide") 6681 next.removeClass("hide") 6682 }) 6683 6684 $(".back-purchase-button").click(function () { 6685 const parent = $(this).parents(".sectionPurchase") 6686 const prev = parent.prev(".sectionPurchase") 6687 parent.addClass("hide") 6688 prev.removeClass("hide") 6689 }) 6690 6691 $(document).keypress(function (e) { 6692 if (e.keyCode == 27 && popupStatus == 1) { 6693 disablePopup(); 6694 } 6695 }); 6696 6697 const parentImg = $(".case-img-preview") 6698 const parentVid = $(".case-video-preview") 6699 6700 function readURL(input) { 6701 if (input.files && input.files[0]) { 6702 let reader = new FileReader(); 6703 6704 let type = 'image/jpeg' 6705 const size = input.files[0].size 6706 if (input.files[0].type.match('video/')) { 6707 type = 'video/mp4' 6708 if (size > 15728640) { 6709 alert('File size exceeds maximum limit 15 MB') 6710 return 6711 } 6712 } else { 6713 if (size > 5242880) { 6714 alert('File size exceeds maximum limit 5 MB') 6715 return 6716 } 6717 } 6718 6719 reader.onload = function (e) { 6720 $(".nextBtn").attr("disabled", true) 6721 if (type === 'image/jpeg') { 6722 6723 $('.placeholder-image').hide(); 6724 $('.preview-image').show() 6725 $('.preview-image').attr('src', e.target.result); 6726 6727 } else { 6728 // parentVid.find(".ajax-loader").show(); 6729 $(".steps-card-preview").addClass("loading") 6730 } 6731 } 6732 6733 6734
6735 reader.readAsDataURL(input.files[0]); 6736 } 6737 } 6738 6739 async function readURLPapan(input) { 6740 if (input.files && input.files[0]) { 6741 let reader = new FileReader(); 6742 6743 reader.onload = function (e) { 6744 $('.btn-upload-papan').siblings('label').hide(); 6745 $('.btn-upload-papan img').attr('src', e.target.result); 6746 $('.btn-upload-papan img').show(); 6747 $('.svgLogoPapan').hide(); 6748 } 6749 6750 const type = 'image/jpeg' 6751 const name = `logo-8359546319899-${Date.parse(new Date())}` 6752 6753 let formData = new FormData(); 6754 formData.append("file", input.files[0]); 6755 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6756 method: "POST", 6757 body: formData 6758 }) 6759 const result = await response.json(); 6760 if (result) { 6761 const url = result.url 6762 $("[data-properties=papan-logo]").val(url) 6763 } 6764 6765 reader.readAsDataURL(input.files[0]); 6766 } 6767 } 6768 6769 async function readURLAddress(input) { 6770 console.log(input, 'readURLAddress') 6771 if (input.files && input.files[0]) { 6772 let reader = new FileReader(); 6773 6774 reader.onload = function (e) { 6775 $('.photo-address').attr('src', e.target.result); 6776 $('.photo-address').show(); 6777 } 6778 6779 const type = 'image/jpeg' 6780 const name = input.files[0].name?.split('.')[0] 6781 6782 let formData = new FormData(); 6783 formData.append("file", input.files[0]); 6784 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6785 method: "POST", 6786 body: formData 6787 }) 6788 const result = await response.json(); 6789 6790 reader.readAsDataURL(input.files[0]); 6791 6792 return result 6793 } 6794 } 6795 6796 6797 6798 6799 async function addToCartUang() { 6800 var productAddOnId1 = 42122101162199; 6801 var productAddOnId2 = 42122101194967; 6802 var product_id = 8359546319899 6803 const data = { 6804 items: [ 6805 { 6806 quantity: $("#Quantity-" + productAddOnId1).val(), 6807 id: productAddOnId1, 6808 "properties": { "Time": $("#properties-time").val() } 6809 }, 6810 { 6811 quantity: $("#Quantity-" + productAddOnId2).val(), 6812 id: productAddOnId2, 6813 "properties": { "Time": $("#properties-time").val() } 6814 } 6815 ] 6816 } 6817 await fetch(window.Shopify.routes.root + 'cart/add.js', { 6818 method: 'POST', 6819 headers: { 6820 'Content-Type': 'application/json' 6821 }, 6822 body: JSON.stringify(data) 6823 }) 6824 .then(response => { 6825 console.error('Sukses Buket Uang:', response); 6826 $(".form-flower").submit() 6827 }) 6828 .catch((error) => { 6829 console.error('Error Buket Uang:', error); 6830 $(".form-flower").submit() 6831 }); 6832 } 6833 6834 async function saveCard() { 6835 let isCard = true
6836 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 6837 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 6838 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 6839 const foto = $("#properties-photo").val() 6840 const video = $("#properties-video").val() 6841 const data = JSON.stringify({ 6842 "id": qrID, 6843 "penerima": $("#properties-nama-penerima").val(), 6844 "kartu_penerima": kartu_penerima, 6845 "kartu_ucapan": kartu_ucapan, 6846 "kartu_pengirim": kartu_pengirim, 6847 "foto": foto, 6848 "video": video, 6849 "productId": "8359546319899", 6850 "order_name": "", 6851 "status": "Cart" 6852 }) 6853 6854 6855 } 6856 6857 async function additem(items) { 6858 try { 6859 let formData = items 6860 if (items?.length) { 6861 formData = { 6862 'items': items 6863 }; 6864 } 6865 6866 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6867 method: 'POST', 6868 headers: { 6869 'Content-Type': 'application/json', 6870 'X-Requested-With': 'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6871 }, 6872 body: JSON.stringify(formData) 6873 }) 6874 6875 const data = await add.json(); 6876 return data 6877 } catch (err) { 6878 console.log('Error additem', err) 6879 } 6880 } 6881 6882 async function addons() { 6883 let items = [] 6884 $(".addon-item").each(function () { 6885 const p = $(this) 6886 const props = p.next(".propsAddonSpotify") 6887 const id = $(this).data("id") 6888 const quantity = $(this).data("qty") 6889 const propId = $("#properties-time").val() 6890 let properties = {} 6891 if (id === 46067682607319) { 6892 const link = props.find(".spotifyLinkAddon").text() 6893 const photo = props.find(".spotifyFotoAddon").text() 6894 const song = props.find(".spotifySongAddon").text() 6895 const artist = props.find(".spotifyArtistAddon").text() 6896 properties = { 6897 id: propId, 6898 "Spotify Link": link !== '' ? link : '-', 6899 "Spotify Photo": photo !== '' ? photo : '-', 6900 "Spotify Song": song !== '' ? song : '-', 6901 "Spotify Artist": artist !== '' ? artist : '-', 6902 type: 'addon' 6903 } 6904 } else { 6905 properties = { 6906 "id": propId, 6907 "type": "addon" 6908 } 6909 } 6910 items.push({ 6911 id, 6912 quantity, 6913 properties 6914 }) 6915 }) 6916 return items 6917 } 6918 6919 async function propItems() { 6920 let props = {} 6921 $("[data-properties]").each(function (e) { 6922 let elementType = this.tagName;
6923 const k = $(this).data("properties") 6924 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') { 6925 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6926 if (v !== '') { 6927 props[k] = v?.replace(/[\s\n]/g, ''); 6928 } 6929 } 6930 }) 6931 return props 6932 } 6933 6934 async function showPopupCart(items) { 6935 if (productType !== '') { 6936 console.log("clarity event " + productType + ' completeOrder') 6937 window.clarity("event", `${productType} completeOrder`) 6938 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6939 } 6940 $("#popupCart").show() 6941 6942 $(".propDeliveryCity").text($("#cities").val()) 6943 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6944 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6945 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6946 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6947 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6948 $(".propDeliveryProv").text($("#province").val()) 6949 $(".propDeliveryZip").text($("#zip").val()) 6950 6951 6952 6953 const addons = [] 6954 if (items && items.length > 0) { 6955 for (let i = 1; i < items.length; i++) { 6956 const spotifyLink = items[i].properties['Spotify Link'] 6957 const spotifyPhoto = items[i].properties['Spotify Photo'] 6958 const spotifySong = items[i].properties['Spotify Song'] 6959 const spotifyArtist = items[i].properties['Spotify Artist'] 6960 const price = items[i].price / 100 6961 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6962 <div class="col-12 col-lg-2"></div> 6963 <div class="col-12 col-lg-10"> 6964 <p> 6965 <span>spotify link</span> 6966 <span>${spotifyLink}</span> 6967 </p> 6968 <p> 6969 <span>Upload Photo</span> 6970 <span>${spotifyPhoto}</span> 6971 </p> 6972 <p> 6973 <span>song / playlist name</span> 6974 <span>${spotifySong}</span> 6975 </p> 6976 <p> 6977 <span>artist name</span> 6978 <span>${spotifyArtist}</span> 6979 </p> 6980 </div> 6981 </div>` : ''; 6982 addons.push(`<div class="row m-0">
6983 <div class="imgAddonCart col-2"> 6984 <img 6985 width="43" 6986 src="${items[i].image}" 6987 alt="" 6988 > 6989 </div> 6990 <div class="imgAddonTitlePrice col-10 align-self-center"> 6991 <div class="row justify-content-between m-0"> 6992 <div class="col-12 col-lg-8"> 6993 <h5>${items[i].title}</h5> 6994 </div> 6995 <div class="col-12 col-lg-4 text-lg-right"> 6996 <span>${rupiah.format(price)}</span> 6997 </div> 6998 </div> 6999 </div> 7000 </div>${props}`) 7001 } 7002 } 7003 // console.log(addons) 7004 if (addons.length === 0) { 7005 $(".itemAddonCart").hide() 7006 return 7007 } 7008 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 7009 $(".wrapperItemAddonCart").html(addons) 7010 } 7011 7012 const money = (money) => { 7013 return new Intl.NumberFormat('id-ID', 7014 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 7015 ).format(money); 7016 } 7017 7018 async function showNoteMoney() { 7019 let qty50k = $("[data-properties='Uang 50k']").val() 7020 let qty100k = $("[data-properties='Uang 100k']").val() 7021 const total50k = Number(qty50k) * 50000 7022 const total100k = Number(qty100k) * 100000 7023 const total_all = total50k + total100k 7024 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 7025 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 7026 $(".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://slot.iwantanap.vip/" target="_blank" style="text-decoration: underline; color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 7027 } 7028 7029 async function removeImage() { 7030 const data = JSON.stringify({ 7031 "ID": $("#properties-properties-qrId").val(), 7032 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7033 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7034 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7035 "Nama Penerima": $("#properties-nama-penerima").val(), 7036 "Order Number": "", 7037 "Status": "Product", 7038 "Foto": "", 7039 "Media": $("#properties-video").val(), 7040 "Image": "8359546319899" 7041 }) 7042 const remove = updateCard(data) 7043 if (remove) { 7044 $(this).hide() 7045 $("#properties-photo").val("-") 7046 $(".placeholder-image").show() 7047 $(".preview-image").attr("src", "") 7048 } 7049 } 7050 7051 async function removeVideo() { 7052 const data = JSON.stringify({ 7053 "ID": $("#properties-properties-qrId").val(), 7054 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7055 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7056 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7057 "Nama Penerima": $("#properties-nama-penerima").val(), 7058 "Order Number": "", 7059 "Status": "Product", 7060 "Foto": $("#properties-photo").val(), 7061 "Media": "", 7062 "Image": "8359546319899" 7063 }) 7064 const remove = updateCard(data) 7065 if (remove) { 7066 $("#properties-video").val("-") 7067 $(this).find("img").hide() 7068 $(this).hide() 7069 $(this).prev("p").text("Add video to make it more special (optional)") 7070 $("#label-input-video").show() 7071 $("#label-input-video span").text("Upload Video") 7072 $(".case-video-preview p span").remove() 7073 } 7074 } 7075 7076 async function loadItemOccasion(t, occasion) { 7077 const name = occasion?.replace('greeting-card-', '') 7078 $("#kartu-ucapan").val("") 7079 $("[data-occassion]").removeClass("selected") 7080 $("[data-properties=ucapan]").val("") 7081 $("#save-card").attr("disabled", true) 7082 t.addClass("selected") 7083 $("#show_note").attr("data-card-occassion", name) 7084 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function (data, status) { 7085 const products = data.products 7086 const html = [] 7087 for (let i = 0; i < products.length; i++) { 7088 const id = products[i].id 7089 const variantId = products[i].variants[0].id 7090 const img = products[i].images[0].src 7091 const title = products[i].title 7092 const price = products[i].variants[0].price
7093 const qty = products[i].variants[0].inventory_quantity 7094 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 7095 <label for="card-${variantId}"></label> 7096 <div class="card-image"> 7097 <img src="${img}" alt="${title}" width="" height="" /> 7098 </div> 7099 <div class="card-meta text-center"> 7100 <h5>${title}</h5> 7101 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 7102 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 7103 </div> 7104 </div>` 7105 html.push(body) 7106 } 7107 const withoutCard = `<div class="item-card item-without-card"> 7108 <label for="card-0"></label> 7109 <div class="card-image"> 7110 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 7111 </div> 7112 <div class="card-meta text-center"> 7113 <h5>
7113Send without a greeting card</h5> 7114 <input id="card-0" type="radio" name="id" value="" data-price=""> 7115 </div> 7116 </div>` 7117 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 7118 }); 7119 } 7120 7121 $(document).ready(function () { 7122 7123 // Observer to auto-trigger addon loading when addon section becomes visible 7124 const addonObserver = new MutationObserver(function (mutations) { 7125 mutations.forEach(function (mutation) { 7126 const target = $(mutation.target) 7127 if (target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 7128 if (!target.hasClass('hide')) { 7129 // Addon section just became visible, ensure items are loaded 7130 setTimeout(function () { 7131 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7132 console.log("Auto-triggering addon load...") 7133 $("[data-addon=upsell-all]").trigger("click") 7134 } 7135 }, 150) 7136 } 7137 } 7138 }) 7139 }) 7140 7141 // Start observing addon section 7142 const addonSection = document.querySelector('.purchaseAddon') 7143 if (addonSection) { 7144 addonObserver.observe(addonSection, { 7145 attributes: true, 7146 attributeFilter: ['class'] 7147 }) 7148 } 7149 7150 $(".purchasePopup").delegate("#addtocart-card", "click", async function () { 7151 7152 $(this).find("span").addClass("loading") 7153 let isValid = true 7154 $(".formAddressPurchase [required]").each(function () { 7155 const t = $(this) 7156 const input = t.val() 7157 const p = t.parent() 7158 if (input === '') { 7159 p.addClass("error") 7160 isValid = false 7161 } 7162 }) 7163 7164 if (!isValid) { 7165 $(this).find("span").removeClass("loading") 7166 return 7167 } 7168 7169 let items = [] 7170 const mainProps = { 7171 7172 "Delivery Date": $("#propDeliveryDate").val(), 7173 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-', 7174 "Kota Pengiriman": $("#cities").val(), 7175 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-', 7176 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-', 7177 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-', 7178 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-', 7179 7180 7181 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-', 7182 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-', 7183 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-', 7184 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-', 7185 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-', 7186 7187 7188 "Province": $("#province").val() !== '' ? $("#province").val() : '-', 7189 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-', 7190 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-', 7191 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-', 7192 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7193 "type": 'product' 7194 } 7195 const props = await propItems() 7196 properties = { ...mainProps, ...props }; 7197 const id = $("#productSelect").find('option:selected').val() 7198 console.log(id, 'main ID') 7199 const mainItem = { 7200 id: Number(id), 7201 quantity: 1, 7202 properties 7203 } 7204 items.push(mainItem) 7205 const cardId = $("#itemCards").find(".selected input").val() 7206 const cardItem = { 7207 id: Number(cardId), 7208 quantity: 1, 7209 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 7210 } 7211 console.log(cardId, 'cardId') 7212 if (cardId) { 7213 items.push(cardItem) 7214 } 7215 const addon = await addons() 7216 if (addon) { 7217 for (let i = 0;
7217 i < addon.length; i++) { 7218 items.push({ 7219 id: addon[i].id, 7220 quantity: addon[i].quantity, 7221 properties: addon[i].properties 7222 }) 7223 } 7224 } 7225 const addItems = await additem(items) 7226 console.log(addItems.items, 'add items') 7227 if (addItems) { 7228 $(this).find("span").removeClass("loading") 7229 disablePopup() 7230 showPopupCart(addItems.items) 7231 7232 localStorage.setItem("items", JSON.stringify(addItems.items)) 7233 } 7234 }) 7235 7236 $("#addtocart-cart .btn").click(async function () { 7237 const id = $("#productSelect").find('option:selected').val() 7238 const mainProps = { 7239 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7240 type: 'product' 7241 } 7242 const props = await propItems() 7243 const properties = { ...mainProps, ...props }; 7244 const items = { 7245 id: Number(id), 7246 quantity: 1, 7247 properties 7248 } 7249 const addItems = await additem(items) 7250 if (addItems) { 7251 showPopupCart(addItems.items) 7252 localStorage.setItem("items", JSON.stringify(addItems)) 7253 } 7254 }) 7255 7256 $(".formAddressPurchase [required]").change(function () { 7257 const t = $(this) 7258 const p = t.parent() 7259 const v = t.val() 7260 if (v !== '') { 7261 p.removeClass("error") 7262 } 7263 }) 7264 7265 $("#save-card").click(async function () { 7266 const parent = $(this).parents(".sectionPurchase") 7267 const next = parent.next(".sectionPurchase") 7268 $(this).find("span").addClass("loading") 7269 const card = await saveCard() 7270 console.log(card, 'ssaveCCC') 7271 if (card?.status === 200 || card?.status === 201) { 7272 $(".scanCard").removeClass("hide") 7273 $(this).find("span").removeClass("loading") 7274 parent.addClass("hide") 7275 next.removeClass("hide") 7276 if (next.hasClass("purchaseAddon")) { 7277 $("[data-addon=upsell-all]").click() 7278 console.log("clarity event addons") 7279 window.clarity("event", `${productType} add-ons`) 7280 // Ensure addon items are loaded when entering addon popup 7281 setTimeout(function () { 7282 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7283 $("[data-addon=upsell-all]").trigger("click") 7284 } 7285 }, 100) 7286 } 7287 if (next.hasClass("purchaseAddress")) { 7288 $("#zip").select2() 7289 } 7290 } 7291 }) 7292 7293 $("#skip-card").click(async function () { 7294 $("#greetingCard [data-properties]").val("") 7295 $("#properties-photo").val("") 7296 $("#properties-video").val("") 7297 const parent = $(this).parents(".sectionPurchase") 7298 const next = parent.next(".sectionPurchase") 7299 parent.addClass("hide") 7300 next.removeClass("hide") 7301 // $("#itemCards").html("") 7302 removeImage() 7303 removeVideo() 7304 if (next.hasClass("purchaseAddon")) { 7305 $("[data-addon='upsell-all']").click() 7306 console.log("clarity event addons") 7307 window.clarity("event", `${productType} add-ons`) 7308 // Ensure addon items are loaded when entering addon popup 7309 setTimeout(function () { 7310 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7311 $("[data-addon='upsell-all']").trigger("click") 7312 } 7313 }, 100) 7314 } 7315 if (next.hasClass("purchaseAddress")) { 7316 $("#zip").select2() 7317 } 7318 }) 7319 7320 $("#msgCard").click(async function () { 7321 $(this).parent().addClass("loading") 7322 let occasion = $(".selected[data-occassion]").data("occassion") 7323 occasion = occasion?.replace("greeting-card-", "") 7324 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 7325 const d = data?.data 7326 for (let i = 0; i < d.length; i++) { 7327 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 7328 const greeting = d[num]?.Greeting 7329 $(".greetingCard textarea").val(greeting) 7330 $(this).parent().removeClass("loading") 7331 } 7332 $("#save-card").attr("disabled", false) 7333 }) 7334 7335 $(".sectionPurchaseBoard .next-purchase-button").click(function () { 7336 const parent = $(this).parents(".sectionPurchase") 7337 const next = parent.next(".sectionPurchase") 7338 parent.addClass("hide") 7339 next.removeClass("hide") 7340 }) 7341 7342 $("#editCard").click(function () { 7343 $(".custom-card").show() 7344 $(".preview-card").hide() 7345 }) 7346 7347 $("#first_name, #last_name").change(function () { 7348 const v = $(this).val() 7349 const first_name = $("#first_name").val() 7350 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 7351 $("[data-properties=nama-penerima]").val(first_name + last_name) 7352 }) 7353 7354 $("[data-occassion]").click(function () { 7355 const t = $(this) 7356 const p = t.parents(".sectionPurchase") 7357 // $(".greetingCard").addClass("disabled") 7358 const occasion = t.data("occassion") 7359 loadItemOccasion(t, occasion) 7360 }) 7361 7362 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function () { 7363 const id = $(this).parent(".item-card").data("id") 7364 const t = $(this).parent(".item-card") 7365 const target = t.find("input") 7366 const v = $('.item-card input[type="radio"]:checked').val(); 7367 $("#itemCards .item-card").removeClass("selected") 7368 t.addClass("selected") 7369 $("#itemCards .item-card").find("input").attr("name", "") 7370 if (target.length > 0) { 7371 target.attr("name", "id[]") 7372 $("#properties-card").val(id) 7373 $(".greetingCard").removeClass("disabled") 7374 $("#skip-card").attr("disabled", false) 7375 } else { 7376 $("#properties-card").val("") 7377 } 7378 }) 7379 7380 $("#itemCards").delegate(".item-without-card label", "click", function () { 7381 const parent = $(this).parents(".sectionPurchase") 7382 const next = parent.next(".sectionPurchase") 7383 $(".greetingCard").addClass("disabled") 7384 parent.addClass("hide") 7385 next.removeClass("hide") 7386 $("[data-addon=upsell-all]").click() 7387 $("#zip").select2() 7388 }) 7389 7390 $("[data-properties=ucapan]").keyup(function () { 7391 const v = $(this).val() 7392 const p = $(this).parents(".sectionPurchase") 7393 $(".purchaseAddress").find(".greetingCard textarea").val(v) 7394 if (v.length > 3) { 7395 p.find(".next-purchase-button").attr("disabled", false) 7396 } else { 7397 p.find(".next-purchase-button").attr("disabled", true) 7398 } 7399 }) 7400 7401 $("[data-properties=penerima]").keyup(function () { 7402 const v = $(this).val() 7403 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 7404 }) 7405 7406 $("[data-properties=pengirim]").keyup(function () { 7407 const v = $(this).val() 7408 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 7409 }) 7410 7411 $(document).click(function (e) { 7412 7413 if ($(e.target).closest('.wrapperPopupCart').length != 0) return false;
7414 // $('#popupCart').fadeOut('slow'); 7415 // location.reload() 7416 }); 7417 7418 $(".toggleAddonCart").click(function () { 7419 const p = $(this).parent(".itemAddonCart") 7420 p.toggleClass("open") 7421 }) 7422 7423 $(".btnViewCart").click(function () { 7424 window.location.href = "https://outerbloom.com/cart"; 7425 }) 7426 7427 $(".btnViewCheckout").click(async function () { 7428 $(this).find("span").addClass("loading") 7429 let zip = $("#zip").val() 7430 const first_name = $("#first_name").val() 7431 const last_name = $("#last_name").val() 7432 const company = $("#company").val() !== '' ? $("#company").val() : '' 7433 const address1 = $("#delivery_address").val() 7434 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 7435 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 7436 const phone = $("#recipient_number").val() 7437 const city = $("#cities").val() 7438 const province = $("#province").val() 7439 const country = 'Indonesia' 7440 const ver = Date.parse(new Date()) 7441 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}` 7442 7443 const clear = await fetch(`/cart/clear.js`, { method: 'POST' }) 7444 if (clear.status === 200) { 7445 const savedItem = window.localStorage.getItem("items"); 7446 const items = JSON.parse(savedItem) 7447 const addItems = await additem(items) 7448 console.log(addItems, 'new addItems') 7449 if (addItems) { 7450 window.location.href = `https://outerbloom.com/checkout?${params}`; 7451 } 7452 } 7453 }) 7454 7455 $(".btnContinueShopping").click(function () { 7456 window.location.href = "https://outerbloom.com/"; 7457 }) 7458 7459 if (isIOS) { 7460 $(".empty-state-card").click(function () { 7461 $("#input-foto").trigger("click") 7462 }) 7463 $(".btn-upload-image").click(function () { 7464 $("#input-foto").trigger("click") 7465 }) 7466 $("[for=input-video]").click(function () { 7467 $("#input-video").trigger("click") 7468 }) 7469 $(".btn-upload-papan").click(function () { 7470 $("#logoPapan").trigger("click") 7471 }) 7472 } 7473 7474 $("[data-properties]").each(function () { 7475 const select = $(this).parents(".form-group").find("select") 7476 $(this).change(function () { 7477 const name = $(this).data("properties") 7478 const v = $(this).val() 7479 if (name == 'telepon-penerima') { 7480 let phone = v.replace(/[^0-9]/g, '') 7481 $(this).val(phone); 7482 $("#properties-telepon-penerima").val(phone) 7483 $('.iti__search-input').val('-') 7484 } else { 7485 $("#properties-" + name).val(v) 7486 } 7487 }) 7488 select.on("change", function () { 7489 const name = $(this).data("properties") 7490 const v = $(this).val() 7491 $("#properties-" + name).val(v) 7492 }) 7493 }) 7494 7495 $("#show_note").click(function () { 7496 nameq = $("#properties-nama-penerima").val() 7497 dear = $("#properties-kartu-nama-penerima").val() 7498 card = $("[data-properties=ucapan]").val() 7499 sender = $("#properties-kartu-nama-pengirim").val() 7500 photo = $("#properties-photo").val() 7501 video = $("#properties-video").val() 7502 updateCard(nameq, dear, card, sender, photo, video, status) 7503 }) 7504 7505 $(".remove-image").click(function (e) { 7506 e.preventDefault() 7507 $(this).find("img").show() 7508 removeImage() 7509 }) 7510 7511 $(".remove-media").click(function (e) { 7512 e.preventDefault() 7513 $(this).find("img").show() 7514 removeVideo() 7515 }) 7516 7517 7518 7519 $("[data-delivery_method]").click(function (e) { 7520 e.preventDefault() 7521 const t = $(this) 7522 const data = t.data("delivery_method") 7523 $("[data-delivery_method]").removeClass("selected") 7524 t.addClass("selected") 7525 $("#cities").val("") 7526 $("#properties-delivery-date").val("-") 7527 $("#deliveryDate button").removeClass("selected") 7528 $("#full-date").val("Full Calendar â") 7529 $("#propDeliveryDate").val("") 7530 const step3 = $("#step-3") 7531 if (data.match('PickUp')) { 7532 $(".selfpickup-point").show() 7533 step3.find("[data-finished=false]").hide() 7534 $("#panel-4").hide() 7535 step3.find("[data-finished=true]").show() 7536 $("#cities").attr("required", false) 7537 $("#form-group-city").hide() 7538 $("#row-delivery-time").hide() 7539 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 7540 $("#propDeliveryTime").attr("required", false) 7541 // $("#deliveryDate").find("button:first-child").addClass("stop") 7542 $(".form-selfpickup").show() 7543 $(".form-delivery").hide() 7544 $(".form-delivery").find("input, textarea, select").val("") 7545 $(".form-delivery").find("input, textarea, select").attr("required", false) 7546 $("#properties-shipping").val("0") 7547 $("#noteDeliveryDate").hide() 7548 $(".form-delivery .form-control").attr("required", false) 7549 $("#stepNav4").hide() 7550 7551 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 7552 7553 7554 7555 if (timeOfDay >= 16.01) { 7556 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 7557 } 7558 } else { 7559 7560 7561 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 7562 step3.find("[data-finished=false]").show() 7563 $("#panel-4").show() 7564 step3.find("[data-finished=true]").hide() 7565 $("#cities").attr("required", true) 7566 $(".selfpickup-point").hide() 7567 $("#form-group-city").show() 7568 $("#cities").val('').trigger('change'); 7569 $("#properties-kota-pengiriman").val("-") 7570 7571 $("#row-delivery-date, #row-delivery-time").show() 7572 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7573 $("#deliveryDate").find("button").removeClass("stop") 7574 $(".form-selfpickup").hide() 7575 $(".form-delivery").show() 7576 $(".form-delivery").find("input, textarea, select").attr("required", true) 7577 $(".form-delivery [data-
7577properties]").attr("readonly", false) 7578 $("#properties-kodepos").val("-") 7579 $("#properties-alamat-penerima").val("-") 7580 $(".form-delivery .form-control").attr("required", true) 7581 $(this).parents(".setup-content").attr("id", "step-1") 7582 7583 $("#stepNav4").show() 7584 } 7585 }) 7586 7587 $("[name=selfpickup]").click(function () { 7588 const p = $(this).parents(".row-pickup") 7589 const pickupCity = $("input[name='selfpickup']:checked").val(); 7590 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 7591 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 7592 7593 $(".row-pickup").removeClass("selected") 7594 p.addClass("selected") 7595 7596 $("#properties-kota-pengiriman").val(pickupCity) 7597 $("#province").val("Jakarta") 7598 $("#properties-alamat-penerima").val(pickupAddress) 7599 $("#properties-kodepos").val(pickupZip) 7600 }) 7601 7602 $("#cities").change(function (e) { 7603 e.preventDefault() 7604 $(this).parent(".row").find("p.error").remove() 7605 $("#full-date").val("Full Calendar") 7606 $("#deliveryDate, #deliveryDateFull label ").show() 7607 $("#deliveryDateFull").removeClass("filled") 7608 $(".btnChangeDeliveryDate").addClass("hide") 7609 $("#full-date").prop('disabled', false); 7610 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 7611 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 7612 const step3 = $("#step-3") 7613 $("#cityNote").remove() 7614 $("#noteDeliveryDate").hide() 7615 $("#noteDeliveryDate").empty() 7616 let v = $(this).val() 7617 let v2 = $('option:selected', this).attr('data-city'); 7618 let v3 = $('option:selected', this).attr('data-province'); 7619 let price = $('option:selected', this).attr('data-price'); 7620 $("#country").val(v) 7621 $("#properties-kota-pengiriman").val(v) 7622 $("#properties-shipping").val(price) 7623 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 7624 $("#properties-delivery-date, #properties-delivery-time").val("-") 7625 $("#propDeliveryDate, #propDeliveryTime").val("") 7626 let note = $('option:selected', this).attr('data-note'); 7627 if (v === 'Kota Lainnya') { 7628 $("#noteDeliveryDate").show() 7629 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 7630 $("#zip").attr("required", false) 7631 $("#zip").hide() 7632 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 7633 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 7634 $("#row-delivery-date, #row-delivery-time").hide() 7635 $("#properties-shipping").val("") 7636 // $(this).parents(".setup-content").attr("id", "step-2") 7637 7638 } else { 7639 $("#noteDeliveryDate").hide() 7640 $("#zip").attr("required", true) 7641 $("#zip").show() 7642 $("#row-delivery-date, #row-delivery-time").show() 7643 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7644 $("#deliveryDate").find("button").removeClass("stop") 7645 // $(this).parents(".setup-content").attr("id", "step-1") 7646 7647 } 7648 7649 7650 7651 // if(v !== 'Jakarta') { 7652 // $("[data-type=upsell]").hide() 7653 // } else { 7654 // $("[data-type=upsell]").show() 7655 // } 7656 // $('.collection-addons')[0].swiper.update(
7656); 7657 7658 7659 getProvince(v) 7660 $("#zip").html(`<option value="">Choose Postal Code</option>`) 7661 renderZip(v, v2, v3) 7662 7663 disabledSameDay() 7664 7665 7666 if (v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 7667 7668 $("#cardOccasion, #navAddon, .collection-addons").hide() 7669 7670 $("[data-addon=giftcard]").show() 7671 $("[data-addon=giftcard]").click() 7672 $("#itemAddons").show() 7673 $("#flower-step").addClass("nonjadetabek") 7674 } else { 7675 $("#cardOccasion, #navAddon, .collection-addons").show() 7676 $("[data-addon=all]").click() 7677 $("#flower-step").removeClass("nonjadetabek") 7678 } 7679 7680 if (v !== '') { 7681 $("#personalizeBtn .btn").attr("disabled", false) 7682 } else { 7683 $("#personalizeBtn .btn").attr("disabled", true) 7684 } 7685 7686 }) 7687 7688 $("#zip").change(function (e) { 7689 let v = $(this).val() 7690 var city = $("#cities").find('option:selected'); 7691 $("#properties-kodepos").val(v) 7692 if (city === 'Kota Lainnya') { 7693 $(this).attr("required", true) 7694 $("#recipient-address").val("") 7695 } 7696 }) 7697 7698 7699 var minDate = +7 7700 7701 7702 7703 $("#full-date").datepicker({ 7704 minDate, 7705 dateFormat: 'Mdd_yy', //Nop22_2021, 7706 7707 beforeShowDay: disabledays, 7708 7709 onSelect: function (date) { 7710 $("#deliveryDate, #deliveryDateFull label ").hide() 7711 $("#deliveryDateFull").addClass("filled") 7712 $(".btnChangeDeliveryDate").removeClass("hide") 7713 $("#full-date").prop('disabled', true); 7714 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_' + date); 7715 $(".date-full").addClass("selected") 7716 $(".date-single, .calendar-group").removeClass("selected") 7717 $("#propDeliveryTime").val('') 7718 $("#properties-delivery-time").val('-') 7719 $(".time-single").removeClass("selected") 7720 7721 7722 } 7723 }); 7724 7725 $(".btnChangeDeliveryDate").click(function () { 7726 $("#deliveryDate, #deliveryDateFull label ").show() 7727 $("#deliveryDateFull").removeClass("filled") 7728 $(".btnChangeDeliveryDate").addClass("hide") 7729 $("#full-date").prop('disabled', false); 7730 }) 7731 7732 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function (e) { 7733 e.preventDefault() 7734 $(this).parents("#row-delivery-date").find("p.error").remove() 7735 const fulldate = $(this).data("fulldate") 7736 const day = $(this).data("day") 7737 const date = $(this).data("date")
7738 const month = $(this).data("month") 7739 const year = $(this).data("year") 7740 const off_pagi = $(this).data("offpagi") 7741 const off_siang = $(this).data("offsiang") 7742 const off_Malam = $(this).data("offMalam") 7743 $(".calendarbutton").removeClass("selected") 7744 $(this).addClass("selected") 7745 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7746 $("#propDeliveryTime").val('') 7747 $("#properties-delivery-time").val('-') 7748 $(".calendarbutton2").removeClass("selected") 7749 $("#full-date").val("Full Calendar") 7750 7751 7752 if (off_pagi && timeOfDay > off_pagi) { 7753 $("[data-time=Morning]").attr("disabled", true) 7754 } else { 7755 $("[data-time=Morning]").attr("disabled", false) 7756 } 7757 if (off_siang && timeOfDay > off_siang) { 7758 $("[data-time=Afternoon]").attr("disabled", true) 7759 } else { 7760 $("[data-time=Afternoon]").attr("disabled", false) 7761 } 7762 7763 7764 7765 }) 7766 7767 if (today === 14 && timeOfDay > 17.00) { 7768 $("#deliveryDate button:first-child").attr("disabled", true) 7769 } 7770 7771 $("#deliveryTime").delegate(".calendarbutton2", "click", function (e) { 7772 e.preventDefault() 7773 const time = $(this).data("time") 7774 const date = $("#propDeliveryDate").val() 7775 if (date == '') { 7776 return alert('Silakan pilih tanggal terlebih dahulu') 7777 } 7778 $(".calendarbutton2").removeClass("selected") 7779 $(this).addClass("selected") 7780 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_', '')}_${time}`) 7781 }) 7782 7783 $('textarea.has-limit, input.has-limit').keyup(function () { 7784 max = this.getAttribute("maxlength"); 7785 let len = $(this).val().length; 7786 let limit = $(this).siblings(".limit"); 7787 if (len > max) { 7788 alert('you have reached the limit'); 7789 } else { 7790 limit.text(`${len}/${max}`); 7791 } 7792 }); 7793 7794 $("#button-action-step .btn").click(function () { 7795 $(this).find("span").text("Processing..."); 7796 }); 7797 7798 $(".finishBtn").on('click', function () { 7799 $(this).addClass("is-adding"); 7800 // $(this).click(); 7801 }); 7802 7803 $('.setup-panel .nav-item a.btn-success').trigger('click'); 7804 7805 $("#button-action .btn").click(function () { 7806 $("#flower-step").addClass("block"); 7807 $("#button-action").hide(); 7808 }); 7809 7810 $(".close-how-order").click(function () { 7811 $("#flower-step").removeClass("block"); 7812 $("#button-action").show(); 7813 }); 7814 7815 $("#input-foto, #input-video").change(function (e) { 7816 readURL(this); 7817 }); 7818 7819 $("#logoPapan").change(function () { 7820 readURLPapan(this); 7821 }); 7822 7823 $("#address-upload").change(async function () { 7824 const upload_address = await readURLAddress(this) 7825 if (upload_address) { 7826 const url = upload_address.url 7827 $(".props-address-upload").val(url) 7828 $(".form-address").addClass("address-uploaded") 7829 $(".form-address-upload").addClass("uploaded") 7830 7831 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 7832 } 7833 }) 7834 7835 $(".address-manualy").click(function () { 7836 $(".form-address-upload").removeClass("uploaded"); 7837 $(".photo-address").hide(); 7838 $(".form-address").removeClass("address-uploaded") 7839 $("#formAddressPurchase").find(".form-control").attr("required", true) 7840 }); 7841 7842 $(".case-video-preview").delegate(".replace-video", "click", function () { 7843 $("#input-video").trigger("click") 7844 }) 7845 7846 $('.date-single').click(function (e) { 7847 e.preventDefault(); 7848 $('.date-single').removeClass('selected'); 7849 $('#full-date').removeClass('selected'); 7850 $(this).addClass('selected'); 7851 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 7852 }); 7853 $('#full-date').click(function (e) { 7854 e.preventDefault(); 7855 $('.date-single').removeClass('selected'); 7856 $(this).addClass('selected'); 7857 }); 7858 7859 // $("tr").each(function(){ 7860 // if($(this).text().match('SKU')) { 7861 // $(".sku-product").html($(this).parents("table").html()) 7862 // } 7863 // }) 7864 7865 $("#product-image").scroll(function () { 7866 $(".desc-add").each(function () { 7867 const img = $(this).find("img") 7868 const src = img.data("src") 7869 img.attr("src", src) 7870 }) 7871 }) 7872 7873 $(".product-fixed").hide() 7874 7875 let target = $("#personalizeBtn") 7876 7877 7878 $(".product-meta").scroll(function () { 7879 if ($(window).scrollTop() >= target.offset().top) { 7880 $(".product-fixed").addClass("show") 7881 } else { 7882 $(".product-fixed").removeClass("show") 7883 } 7884 }); 7885 7886 $(window).scroll(function () { 7887 if ($(window).scrollTop() >= target.offset().top) { 7888 $(".product-fixed").addClass("show") 7889 } else { 7890 $(".product-fixed").removeClass("show") 7891 } 7892 }); 7893 }); 7894 </script>
7894 7895 7896
7896<script> 7897 // 7898 </script>
7898 7899 7900
7900<script> 7901 $(document).ready(function () { 7902 $('table tr td').each(function () { 7903 var texto = $(this).text(); 7904 var nextto = $(this).next("td"); 7905 var sku = $("#data-sku").val() 7906 if (texto == 'SKU') { 7907 nextto.text(sku) 7908 } 7909 }); 7910 7911 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7912 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7913 $("#tab-questions").text("Pertanyaan"); 7914 7915 $(".freeship .icon").click(function () { 7916 $(".fs-content").slideToggle(); 7917 $(this).parents(".freeship").toggleClass("expand"); 7918 }); 7919 7920 var $easyzoom = $('.easyzoom').easyZoom(); 7921 // Setup thumbnails example 7922 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 7923 $('.thumbnails').on('click', 'a', function (e) { 7924 var $this = $(this); 7925 e.preventDefault(); 7926 // Use EasyZoom's `swap` method 7927 api1.swap($this.data('standard'), $this.attr('href')); 7928 }); 7929 7930 $('#playerID').click(function () { 7931 var videoURL = $('#VdoID').attr('src'), 7932 dataplay = $('#VdoID').attr('data-play'); 7933 7934 //for check autoplay 7935 //if not set autoplay=1 7936 if (dataplay == 0) { 7937 $('#VdoID').attr('src', videoURL + '?autoplay=1'); 7938 $('#VdoID').attr('data-play', 1); 7939 } 7940 else { 7941 var videoURL = $('#VdoID').attr('src'); 7942 videoURL = videoURL.replace("?autoplay=1", ""); 7943 $('#VdoID').prop('src', ''); 7944 $('#VdoID').prop('src', videoURL); 7945 7946 $('#VdoID').attr('data-play', 0); 7947 } 7948 7949 }); 7950 7951 $(".product-photo-thumb-video").click(function (e) { 7952 e.preventDefault(); 7953 7954 var newEmbed = $(this).attr('href'); 7955 $("#featured-image-product").addClass("img-video"); 7956 $("#ProductPhotoImg").hide(); 7957 $("#featured-image-product .video").show(); 7958 $("#featured-image-product iframe").attr('src', newEmbed); 7959 $("#VdoID")[0].src += "&autoplay=1"; 7960 }); 7961 $(".product-single__thumbnail").click(function (evt) { 7962 evt.preventDefault(); 7963 $("#featured-image-product").removeClass("img-video"); 7964 $("#ProductPhotoImg").show(); 7965 $("#featured-image-product .video").hide(); 7966 $("#featured-image-product iframe").attr('src', ''); 7967 }); 7968 7969 if ($('#product-meta .short-desc > div').length >= 1) { 7970 //console.log('div detected') 7971 var replacer = $('#product-meta .short-desc > div').contents(); 7972 $('#product-meta .short-desc > div').replaceWith(replacer); 7973 7974 var cAssured = $('.c-assured').detach(); 7975 cAssured.insertAfter('.meta-sds .stock-info'); 7976 } 7977 7978 7979 7980 $(".heading-toggle").
7980click(function () { 7981 $(this).parent().toggleClass("open") 7982 7983 }); 7984 }); 7985 </script>
7985 7986 7987 7988
7988<script type="application/json" id="ProductJson-Product"> 7989 7990 {"id":8359546319899,"title":"TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain."} 7991 </script>
7991 7992 7993
7993<script type="application/json" id="VariantJson-Product"> 7994 [ 7995 7996 { 7997 "incoming": false, 7998 "next_incoming_date": null 7999 } 8000 8001 ] 8002 </script>
8002 8003 8004 8005 8006 8007 </div> 8008 8009 8010
8010<script 8011 src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" 8012 type="text/javascript"></script>
8012 8013 <style> 8014 .stamped-review-header-title, 8015 .stamped-review-header .author, 8016 .stamped-review-content-body, 8017 .stamped-sort-select, 8018 .stamped-review-header .verified-badge[data-type=buyer]:after, 8019 .stamped-review-header-byline, 8020 .stamped-review-reply-body { 8021 font-size: 14px !important; 8022 font-family: 'Barlow', sans-serif !important; 8023 } 8024 8025 .stamped-review { 8026 margin-bottom: 0; 8027 } 8028 8029 .stamped-review-body { 8030 padding-left: 65px; 8031 } 8032 8033 .stamped-review:first-child { 8034 padding-top: 25px; 8035 } 8036 8037 .stamped-review-content { 8038 clear: none; 8039 } 8040 8041 .stamped-review-reply { 8042 margin: 15px 0 0 65px; 8043 background: #f2f2f2; 8044 border-left: none; 8045 } 8046 8047 .stamped-review-reply-body { 8048 padding-left: 65px; 8049 } 8050 8051 .stamped-review-header .author { 8052 text-transform: capitalize; 8053 } 8054 8055 .stamped-questions .stamped-review-content { 8056 padding-left: 65px; 8057 } 8058 8059 .stamped-pagination { 8060 margin: 20px 0 0; 8061 } 8062 8063 .stamped-pagination li { 8064 position: initial !important; 8065 display: inline-block; 8066 position: relative; 8067 vertical-align: middle; 8068 text-decoration: none; 8069 -webkit-tap-highlight-color: transparent; 8070 -webkit-box-flex: 0; 8071 -moz-box-flex: 0; 8072 -ms-flex: 0 0 auto; 8073 flex: 0 0 auto; 8074 -webkit-user-select: none; 8075 -moz-user-select: none; 8076 -ms-user-select: none; 8077 user-select: none; 8078 background: 0 0; 8079 text-transform: none; 8080 color: #33373D; 8081 font-weight: 400; 8082 -webkit-transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8083 transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8084 border: 1px solid #ccc; 8085 border-right: none; 8086 margin-bottom: 0; 8087 } 8088 8089 .stamped-pagination li a { 8090 color: #121212; 8091 padding: 13px 18px; 8092 vertical-align: middle; 8093 display: block; 8094 } 8095 8096 .stamped-pagination li.active a { 8097 background-color: #ddd; 8098 font-weight: 400; 8099 } 8100 8101 .stamped-pagination li:hover a { 8102 background: #ddd; 8103 } 8104 8105 .stamped-pagination .next { 8106 border-right: 1px solid #ccc; 8107 } 8108 8109 .stamped-pagination li:first-child { 8110 border-top-left-radius: 5px; 8111 border-bottom-left-radius: 5px; 8112 } 8113 8114 .stamped-pagination li:last-child { 8115 border-top-right-radius: 5px; 8116 border-bottom-right-radius: 5px; 8117 } 8118 8119 #stamped-pagination-question span.page { 8120 display: inline-block; 8121 border: 1px solid #ccc; 8122 width: 47px; 8123 } 8124 8125 #stamped-pagination-question span { 8126 font-size: 14px; 8127 } 8128 8129 #stamped-pagination-question .page.active { 8130 padding: 12px; 8131 font-weight: 400; 8132 background: #ddd; 8133 } 8134 8135 #stamped-pagination-question a, 8136 #stamped-pagination-question .page.active { 8137 color: #121212; 8138 padding: 13px 18px; 8139 vertical-align: middle; 8140 display: inline-block; 8141 } 8142 8143 .stamped-pagination-deco { 8144 color: #121212; 8145 padding: 13px 18px; 8146 width: 47px; 8147 vertical-align: middle; 8148 display: inline-block; 8149 border: 1px solid #ccc; 8150 padding: 12px; 8151 } 8152 8153 .stamped-pagination-prev, 8154 .stamped-pagination-next { 8155 position: inherit; 8156 } 8157 8158 .stamped-pagination-prev a, 8159 .stamped-pagination-next a { 8160 width: auto !important; 8161 border: 1px solid #ccc; 8162 } 8163 8164 @media (max-width: 480px) { 8165 .stamped-review-reply { 8166 margin-left: 0 !important; 8167 } 8168 8169 select.stamped-sort-select { 8170 font-size: 13px !important; 8171 } 8172 } 8173 8174 #product-reviews .stamped-summary-ratings, 8175 #product-reviews .stamped-summary-actions, 8176 .stamped-content { 8177 display: block !important; 8178 } 8179 </style> 8180
8180<script> 8181 var selectCallback = function (variant, selector) { 8182 timber.productPage({ 8183 money_format: "Rp {{amount_no_decimals}}", 8184 variant: variant, 8185 selector: selector 8186 }); 8187 }; 8188 8189 jQuery(function ($) { 8190 new Shopify.OptionSelectors('productSelect', { 8191 product: 8192 8193 8194 8195 8196 8197 { "id": 8359546319899, "title": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", "handle": "blossom-shine", "description": "\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain." }, 8198 onVariantSelected: selectCallback, 8199 enableHistoryState: true 8200 }); 8201 8202 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 8203 8204 8205 // Hide selectors if we only have 1 variant and its title contains 'Default'. 8206 8207 $('.selector-wrapper').hide(); 8208 8209 }); 8210 </script>
8210 8211 8212 8213 8214
8214<script type="application/ld+json"> 8215 { 8216 "@context": "http://schema.org", 8217 "@type": "Product", 8218 "offers": { 8219 "@type": "Offer", 8220 "availability":"https://schema.org/InStock", 8221 "price": 835000, 8222 "priceValidUntil": "05-10-2025", 8223 "priceCurrency": "IDR", 8224 "url": "https://iwantanap.com/" 8225 }, 8226 "brand": { 8227 "@type": "Brand", 8228 "name": "TAJIR4D" 8229 }, 8230 "sku": "8359546319899", 8231 "gtin13": "Jakarta", 8232 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 8233 "description": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", 8234 "category": "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", 8235 "url": "https://iwantanap.com/", 8236 "image": { 8237 "@type": "ImageObject", 8238 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8239 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8240 "name": "TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi Sekarang Gampang jadi Tajir !", 8241 "width": 1024, 8242 "height": 1024 8243 } 8244 } 8245 </script>
8245 8246 8247 8248 8249 8250 8251
8251<script id="bss-ltap-hide-price" type="text/javascript"> 8252 !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) })) }
8252)), 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) })), 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) } };
8252 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() } if ("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) }
8252 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) }
8252 if (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"); c && 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-gri
8252d-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-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");
8252 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"); i && 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-detail
8252s"), 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
8252--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
8252opify.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"); e.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__Price
8252List, .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) }
8252 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 = o.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;
8252 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"); if (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();
8252 let 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() }]); 8253 </script>
8253 8254 8255 </main> 8256 8257 <div id="shopify-section-newsletter" class="shopify-section"><br> 8258 <style> 8259 #shopify-section-newsletter { 8260 background: url(img/tajirkebaruan.webp); 8261 background-attachment: fixed; 8262 margin-bottom: 0; 8263 } 8264 8265 input:-webkit-autofill, 8266 input:-webkit-autofill:hover, 8267 input:-webkit-autofill:active, 8268 input:-webkit-autofill:focus { 8269 -webkit-box-shadow: 0 0 0 50px white inset; 8270 -webkit-text-fill-color: #ffffff; 8271 } 8272 8273 .section-newsletter { 8274 max-width: 800px; 8275 margin: auto; 8276 padding: 50px 0; 8277 } 8278 8279 .section-newsletter h2 { 8280 font-weight: 700; 8281 font-size: 24px; 8282 } 8283 8284 .section-newsletter input[type="email"] { 8285 width: 100%; 8286 text-align: center; 8287 border: none; 8288 border-bottom: 1px solid #ffffff; 8289 font-size: 16px; 8290 color: #757575; 8291 background-color: #eeeeee; 8292 } 8293 8294 .section-newsletter .row label { 8295 font-size: 14px; 8296 cursor: pointer; 8297 } 8298 8299 .section-newsletter .radio-inline input { 8300 width: auto; 8301 } 8302 8303 .section-newsletter .btn { 8304 width: 130px; 8305 border: 1px solid #ffffff; 8306 box-shadow: none; 8307 font-size: 16px; 8308 font-weight: 500; 8309 text-transform: uppercase; 8310 } 8311 8312 .section-newsletter form { 8313 margin: 30px 0 60px; 8314 } 8315 8316 .section-newsletter input[type="radio"] { 8317 position: absolute; 8318 width: 1px; 8319 height: 1px; 8320 } 8321 8322 .section-newsletter [type="radio"]:checked+label, 8323 .section-newsletter [type="radio"]:not(:checked)+label { 8324 position: relative; 8325 padding-left: 28px; 8326 cursor: pointer; 8327 line-height: 20px; 8328 display: inline-block; 8329 color: #666; 8330 } 8331 8332 .section-newsletter [type="radio"]:checked+label:before, 8333 .section-newsletter [type="radio"]:not(:checked)+label:before { 8334 content: ''; 8335 position: absolute; 8336 left: 0; 8337 top: 0; 8338 width: 18px; 8339 height: 18px; 8340 border: 1px solid #ddd; 8341 border-radius: 100%; 8342 background: #fff; 8343 } 8344 8345 .section-newsletter [type="radio"]:checked+label:after, 8346 .section-newsletter [type="radio"]:not(:checked)+label:after { 8347 content: ''; 8348 width: 12px; 8349 height: 12px; 8350 background: #ffffff; 8351 position: absolute; 8352 top: 3px; 8353 left: 3px; 8354 border-radius: 100%; 8355 -webkit-transition: all 0.2s ease; 8356 transition: all 0.2s ease; 8357 } 8358 8359 .section-newsletter [type="radio"]:not(:checked)+label:after { 8360 opacity: 0; 8361 -webkit-transform: scale(0); 8362 transform: scale(0); 8363 } 8364 8365 .opt-newsletter { 8366 display: none; 8367 } 8368 8369 .footer-newsletter p, 8370 .footer-newsletter p a { 8371 color: #757575; 8372 } 8373 8374 @media (max-width:991px) { 8375 .section-newsletter h2 { 8376 font-size: 32px; 8377 } 8378 8379 .section-newsletter input { 8380 width: 300px; 8381 font-size: 14px; 8382 } 8383 8384 .section-newsletter { 8385 padding: 50px 20px; 8386 } 8387 } 8388 8389 @media (max-width: 480px) { 8390 .section-newsletter input[type="email"] { 8391 font-size: 16px; 8392 } 8393 } 8394 </style> 8395 <style> 8396 .icon-img-footer { 8397 width: 80px; 8398 padding: 0 5px; 8399 } 8400 8401 @media (min-width: 768px) { 8402 .icon-img-footer { 8403 width: 120px; 8404 } 8405 } 8406 8407 @media (min-width: 992px) { 8408 .icon-img-footer { 8409 width: 120px; 8410 } 8411 } 8412 8413 .button-login-daftar { 8414 display: grid; 8415 grid-template-columns: repeat(2, 1fr); 8416 font-weight: 700; 8417 gap: 10px; 8418 } 8419 8420 .button-login-daftar a { 8421 text-align: center; 8422 text-decoration: none; 8423 } 8424 8425 .login, 8426 .register { 8427 padding: 15px 10px; 8428 font-size: 23px; 8429 font-weight: 800; 8430 letter-spacing: 0.6px; 8431 text-transform: uppercase; 8432 position: relative; 8433 overflow: hidden; 8434 transition: all 0.3s ease; 8435 } 8436 8437 /* LOGIN - HIJAU ELEGANT */ 8438 .login, 8439 .login-button { 8440 background: 8441 radial-gradient(circle at top, rgb(0 0 0 / 28%), transparent 42%), linear-gradient(to bottom, #000000 0%, #054a1d 48%, #000000 72%, #000000 100%); 8442 border: 2px solid #22c55e; 8443 color: #ffffff; 8444 text-shadow: 8445 0 1px 2px rgba(0, 0, 0, 0.9), 8446 0 0 8px rgba(34, 197, 94, 0.72); 8447 box-shadow: 8448 0 0 16px rgba(34, 197, 94, 0.58), 8449 0 0 26px rgba(34, 197, 94, 0.30), 8450 inset 0 0 12px rgba(134, 239, 172, 0.14); 8451 } 8452 8453 /* REGISTER - HIJAU TERANG PREMIUM */ 8454 .register, 8455 .register-button { 8456 background: 8457 radial-gradient(circle at top, rgb(0 0 0 / 28%), transparent 42%), linear-gradient(to bottom, #000000 0%, #054a1d 48%, #000000 72%, #000000 100%); 8458 border: 2px solid #4ade80; 8459 color: #ffffff; 8460 text-shadow: 8461 0 1px 2px rgba(0, 0, 0, 0.9), 8462 0 0 6px rgba(74, 222, 128, 0.70); 8463 box-shadow: 8464 0 0 18px rgba(74, 222, 128, 0.58), 8465 0 0 30px rgba(74, 222, 128, 0.28), 8466 inset 0 1px 0 rgba(255, 255, 255, 0.48); 8467 } 8468 8469 /* SHINE EFFECT */ 8470 .login::before, 8471 .register::before, 8472 .login-button::before, 8473 .register-button::before { 8474 content: ""; 8475 position: absolute; 8476 top: 0; 8477 left: -80%; 8478 width: 55%; 8479 height: 100%; 8480 background: linear-gradient(120deg, 8481 transparent, 8482 rgba(255, 255, 255, 0.42), 8483 transparent); 8484 transform: skewX(-22deg); 8485 transition: left 0.65s ease; 8486 pointer-events: none; 8487 } 8488 8489 .login:hover::before, 8490 .register:hover::before, 8491 .login-button:hover::before, 8492 .register-button:hover::before { 8493 left: 130%; 8494 } 8495 8496 .login:hover, 8497 .register:hover, 8498 .login-button:hover, 8499 .register-button:hover { 8500 filter: brightness(1.12) contrast(1.06); 8501 transform: translateY(-2px); 8502 box-shadow: 8503 0 0 24px rgba(34, 197, 94, 0.78), 8504 0 0 38px rgba(74, 222, 128, 0.48), 8505 inset 0 0 14px rgba(255, 255, 255, 0.14); 8506 } 8507 </style> 8508 <!-- wp:html --> 8509
8509<script> 8510 document.addEventListener('DOMContentLoaded', 8511 function () { 8512 const faqItems = document.querySelectorAll('.faq-item'); 8513 faqItems.forEach(item => { 8514 const question = item.querySelector('.faq-question'); 8515 question.addEventListener('click', 8516 () => { 8517 const isActive = item.classList.contains('active'); 8518 faqItems.forEach(otherItem => { otherItem.classList.remove('active') }); 8519 if (!isActive) { item.classList.add('active') } 8520 }) 8521 }) 8522 }); 8523 </script>
8523 8524 8525 8526 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 8527 </div> 8528 <section class="fx-video-bg"> 8529 <video autoplay muted loop playsinline> 8530 <source src="img/logotajir.webp" type="video/mp4"> 8531 </video> 8532 <div class="fx-video-overlay"></div> 8533 8534 <div class="fx-article-wrap"> 8535 <article class="fx-article"> 8536 <section class="clean-container"> 8537 <div class="clean-wrap"> 8538 <h1 class="clean-title">TAJIR4D » Rekomendasi iwantanap Situs Slot Gacor Untuk Generasi 8539 Sekarang Gampang jadi Tajir ! 8540 </h1> 8541 <div class="clean-divider"></div> 8542 <div class="clean-article"> 8543 <p> 8544 <a href="https://iwantanap.com/">TAJIR4D</a> hadir sebagai platform terdepan 8545 yang menyajikan pengalaman bermain dan informasi permainan online secara modern, 8546 cepat, serta sangat intuitif bagi semua kalangan pengguna. Didukung oleh 8547 antarmuka yang elegan, bersih, dan sistem server berkecepatan tinggi, TAJIR4D 8548 memastikan setiap pengguna dapat menikmati navigasi serta pembaruan data secara 8549 langsung (real-time) tanpa hambatan. Keunggulan ini menjadikan hiburan taruhan 8550 Anda terasa jauh lebih praktis, aman, dan memuaskan setiap saat. 8551 </p> 8552 8553 <h2>Kemudahan Akses & Informasi Terupdate Setiap Saat</h2> 8554 8555 <p> 8556 Memantau perkembangan rilis data <a href="https://iwantanap.com/">Toto Macau</a> 8557 serta info slot gacor kini menjadi jauh lebih instan. TAJIR4D memprioritaskan 8558 transparansi dan kecepatan penyampaian informasi, sehingga para pemain bisa 8559 mendapatkan hasil angka dan bocoran presisi dalam hitungan detik. Tata letak 8560 situs yang responsif mempermudah Anda menemukan setiap fitur unggulan dengan 8561 sekali klik, baik melalui smartphone maupun perangkat komputer. 8562 </p> 8563 8564 <h2>Sistem Data Transparan, Lengkap & Bebas Lag</h2> 8565 8566 <p> 8567 Mengusung arsitektur sistem yang ringan dan teroptimasi, TAJIR4D mampu 8568 menyajikan rekapitulasi data result secara rapi, akurat, dan terstruktur. Pemain 8569 tidak perlu lagi pusing mencari referensi ke banyak tempat karena seluruh 8570 statistik penting telah dirangkum secara efisien. Penyajian visual yang 8571 eye-catching dan ramah pengguna makin memanjakan siapa saja yang ingin 8572 menganalisis pola kemenangan secara maksimal. 8573 </p> 8574 8575 <h2>Pengalaman Bermain Terbaik di Platform Bandar Toto Macau & Slot Resmi</h2> 8576 8577 <p> 8578 Sebagai pilihan utama penggemar taruhan digital, <a 8579 href="https://iwantanap.com/">Bandar Toto Macau</a> TAJIR4D berkomitmen 8580 menghadirkan ekosistem permainan unggulan yang adil, stabil, dan tepercaya. 8581 Dukungan transaksi serba cepat via Bank, E-Wallet, hingga QRIS membuat seluruh 8582 proses top up maupun penarikan dana berlangsung tanpa keraguan. Bergabunglah 8583 bersama TAJIR4D sekarang juga dan rasakan kemudahan meraih sensasi kemenangan 8584 spektakuler setiap harinya! 8585 </p> 8586 </div> 8587 8588 <section class="t4d-generator-box"> 8589 <div class="t4d-generator-title">Angka 4D Generator</div> 8590 8591 <div class="t4d-number-display" id="t4dGenerator"> 8592 <div class="t4d-digit">0</div> 8593 <div class="t4d-digit">0</div> 8594 <div class="t4d-digit">0</div> 8595 <div class="t4d-digit">0</div> 8596 </div> 8597 8598 <br> 8599 <button class="t4d-generate-btn" onclick="generate4D()">Generate Angka</button> 8600 </section> 8601 8602 <section class="t4d-result-grid"> 8603 <article class="t4d-result-card"> 8604 <div class="t4d-market">Hongkong Lotto 4D</div> 8605 <div class="t4d-result-number">3684</div> 8606 <div class="t4d-result-date">Live Update</div> 8607 </article> 8608 8609 <article class="t4d-result-card"> 8610 <div class="t4d-market">Macau 4D</div> 8611 <div class="t4d-result-number">3444</div> 8612 <div class="t4d-result-date">Live Update</div> 8613 </article> 8614 8615 <article class="t4d-result-card"> 8616 <div class="t4d-market">Sydney Lotto 4D</div> 8617 <div class="t4d-result-number">4763</div> 8618 <div class="t4d-result-date">Live Update</div> 8619 </article> 8620 8621 <article class="t4d-result-card"> 8622 <div class="t4d-market">Singapore 4D</div> 8623 <div class="t4d-result-number">4948</div> 8624 <div class="t4d-result-date">Live Update</div> 8625 </article> 8626 </section> 8627 8628 <section class="t4d-block" id="faq"> 8629 <div class="t4d-head">
8630 <span class="t4d-dot"></span> 8631 <span>FAQ Eksklusif TAJIR4D</span> 8632 </div> 8633 8634 <div class="t4d-faq"> 8635 8636 <details class="t4d-item"> 8637 <summary>Apa itu Platform TAJIR4D Bandar Toto Macau?</summary> 8638 <div class="t4d-ans"> 8639 TAJIR4D adalah platform situs resmi unggulan yang menghadirkan informasi 8640 live result Toto Macau serta pilihan game online gacor dengan antarmuka 8641 yang cepat, modern, dan sangat nyaman dipantau setiap hari. 8642 </div> 8643 </details> 8644 8645 <details class="t4d-item"> 8646 <summary>Mengapa TAJIR4D Menjadi Pilihan Utama untuk Live Result?</summary> 8647 <div class="t4d-ans"> 8648 Karena TAJIR4D menggunakan teknologi server terkini yang menyajikan 8649 pembaruan keluaran angka secara real-time dan presisi, sehingga pemain 8650 dapat mengecek hasil keluaran tercepat tanpa penundaan. 8651 </div> 8652 </details> 8653 8654 <details class="t4d-item"> 8655 <summary>Apa Keunggulan Penyajian Data Result 4D di TAJIR4D?</summary> 8656 <div class="t4d-ans"> 8657 Keunggulannya terletak pada tata letak data yang terstruktur rapi, bebas 8658 iklan mengganggu, serta sangat mudah diakses baik melalui perangkat 8659 seluler (HP) maupun komputer desktop. 8660 </div> 8661 </details> 8662 8663 <details class="t4d-item"> 8664 <summary>Apakah TAJIR4D Ramah bagi Pemain Baru?</summary> 8665 <div class="t4d-ans"> 8666 Sangat ramah. TAJIR4D dirancang dengan sistem navigasi simpel dan 8667 panduan yang jelas, memudahkan pemula untuk langsung bertransaksi serta 8668 menikmati permainan tanpa hambatan teknis. 8669 </div> 8670 </details> 8671 8672 <details class="t4d-item"> 8673 <summary>Seberapa Mudah Memantau Keluaran Angka di TAJIR4D Setiap Hari? 8674 </summary> 8675 <div class="t4d-ans"> 8676 Sangat praktis. Seluruh jadwal pengeluaran angka dirangkum secara 8677 otomatis dan efisien, sehingga pengecekan rutin harian terasa lebih 8678 hemat waktu dan nyaman. 8679 </div> 8680 </details> 8681 8682 <details class="t4d-item"> 8683 <summary>Mengapa TAJIR4D Sangat Populer di Kalangan Pemain Macau 4D & 8684 Slot?</summary> 8685 <div class="t4d-ans"> 8686 TAJIR4D diminati luas karena jaminan keamanan transaksi, layanan 8687 pelanggan 24 jam nonstop, serta sajian data dan bonus melimpah
8687yang 8688 terbukti memanjakan setiap anggotanya. 8689 </div> 8690 </details> 8691 8692 </div> 8693 </section> 8694 8695 <section class="t4d-block" id="testimoni" style="margin-top:16px"> 8696 <div class="t4d-head"> 8697 <span class="t4d-dot"></span> 8698 <span>KOMENTAR PEMAIN TAJIR4D</span> 8699 </div> 8700 8701 <div class="t4d-testi-grid" aria-label="Komentar pemain TAJIR4D"> 8702 8703 <article class="t4d-testi"> 8704 <div class="t4d-top"> 8705 <div class="t4d-title">Update Live TAJIR4D Super Cepat & Canggih 8706 </div> 8707 <div class="t4d-stars">â â â â â </div> 8708 </div> 8709 <div class="t4d-name">Angkasa Purnama</div> 8710 <div class="t4d-text"> 8711 Sebagai member aktif, saya sangat puas dengan performa live result 8712 TAJIR4D. Susunan angkanya sangat simpel, data Macau terupdate otomatis 8713 tanpa perlu refresh berulang kali. Benar-benar bikin betah bermain 8714 setiap hari! 8715 </div> 8716 </article> 8717 8718 <article class="t4d-testi"> 8719 <div class="t4d-top"> 8720 <div class="t4d-title">Penyajian Data Macau 4D Transparan dan Akurat 8721 </div> 8722 <div class="t4d-stars">â â â â â </div> 8723 </div> 8724 <div class="t4d-name">Mentari Laksmi</div> 8725 <div class="t4d-text"> 8726 Yang paling bikin betah adalah seluruh data result 4D di TAJIR4D tersaji 8727 sangat rapi dan bebas lag. Cek bocoran serta hasil pengeluaran terbaru 8728 jadi super praktis dari smartphone! 8729 </div> 8730 </article> 8731 8732 <article class="t4d-testi"> 8733 <div class="t4d-top"> 8734 <div class="t4d-title">Platform Bandar Slot & Macau Terbaik Favorit 8735 Saya</div> 8736 <div class="t4d-stars">â â â â â </div> 8737 </div> 8738 <div class="t4d-name">Waskita Prayoga</div> 8739 <div class="t4d-text"> 8740 Sudah gonta-ganti situs, tapi TAJIR4D tetap yang terbaik. Proses WD 8741 kilat, tampilan situsnya mewah & ringan diakses kapan saja. 8742 Rekomendasi utama buat bettor sejati! 8743 </div> 8744 </article> 8745 8746 <article class="t4d-testi"> 8747 <div class="t4d-top"> 8748 <div class="t4d-title">Situs Paling Stabil & Mudah Dimenangkan Lewat 8749 HP</div> 8750 <div class="t4d-stars">â â â â â </div> 8751 </div> 8752 <div class="t4d-name">Kemuning Safitri</div> 8753 <div class="t4d-text"> 8754 Saya selalu main TAJIR4D dari HP dan koneksinya responsif banget. Fitur 8755 navigasinya jelas, permainan lengkap, dan pelayanan CS-nya super rama
8755h 8756 24 jam nonstop! 8757 </div> 8758 </article> 8759 8760 <article class="t4d-testi"> 8761 <div class="t4d-top"> 8762 <div class="t4d-title">TAJIR4D Pilihan Utama Bandar Toto Macau & 8763 Slot Gacor</div> 8764 <div class="t4d-stars">â â â â â </div> 8765 </div> 8766 <div class="t4d-name">Samudra Perkasa</div> 8767 <div class="t4d-text"> 8768 Sebagai penikmat Toto Macau lama, penyajian angka keluaran di TAJIR4D 8769 luar biasa presisi. Kemenangan berapa pun pasti dibayar tuntas tanpa 8770 berbelit-belit. Mantap! 8771 </div> 8772 </article> 8773 8774 <article class="t4d-testi"> 8775 <div class="t4d-top"> 8776 <div class="t4d-title">Sensasi Bermain Seru & Pelayanan Komunikatif 8777 </div> 8778 <div class="t4d-stars">â â â â â </div> 8779 </div> 8780 <div class="t4d-name">Cempaka Maharani</div> 8781 <div class="t4d-text"> 8782 Baru gabung di TAJIR4D dan langsung dapet JP slot gacor! Tampilan live 8783 result-nya bikin nyaman dan proses transaksi QRIS super cepat. Bahagia 8784 banget nemu platform ini. 8785 </div> 8786 </article> 8787 8788 </div> 8789 </section> 8790 <section class="container pt-4 pb-3"> 8791 <h2 class="h4 text-warning mb-3">Trending Tags</h2> 8792 <div class="d-flex flex-wrap"> 8793 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8794 href="https://iwantanap.com/">TAJIR4D</a> 8795 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8796 href="https://iwantanap.com/">Toto Macau</a> 8797 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8798 href="https://iwantanap.com/">Macau</a> 8799 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8800 href="https://iwantanap.com/">Macau 4D</a> 8801 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8802 href="https://iwantanap.com/">Live Macau</a> 8803 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8804 href="https://iwantanap.com/">Result Macau</a> 8805 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8806 href="https://iwantanap.com/">Toto Macau 4D</a> 8807 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8808 href="https://iwantanap.com/">Live Result Macau</a> 8809 <a class="badge badge-pill badge-warning text-dark p-3 mr-2 mb-2" 8810 href="https://iwantanap.com/">Bandar Toto Macau</a> 8811 </div> 8812 </section> 8813 8814
8815 <style id="t4d-faq-testi-styles"> 8816 .t4d-block { 8817 position: relative; 8818 margin: 10px; 8819 } 8820 8821 .t4d-head { 8822 display: flex; 8823 align-items: center; 8824 gap: 10px; 8825 margin: 10px 0 12px; 8826 font-weight: 800; 8827 letter-spacing: .9px; 8828 font-size: 14px; 8829 color: #ffffff; 8830 text-transform: uppercase; 8831 text-shadow: 8832 0 0 8px rgba(255, 208, 0, .85), 8833 0 0 14px rgba(255, 235, 59, .45); 8834 } 8835 8836 .t4d-dot { 8837 width: 10px; 8838 height: 10px; 8839 border-radius: 50%; 8840 background: radial-gradient(circle at 30% 30%, #86efac, #22c55e 70%); 8841 box-shadow: 8842 0 0 0 4px rgba(34, 197, 94, .22), 8843 0 0 18px rgba(74, 222, 128, .65); 8844 } 8845 8846 .t4d-faq { 8847 display: grid; 8848 gap: 10px; 8849 } 8850 8851 /* FAQ ITEM */ 8852 .t4d-item { 8853 border-radius: 16px; 8854 border: 1px solid rgba(34, 197, 94, .85); 8855 background: 8856 radial-gradient(circle at top left, rgba(134, 239, 172, .18), transparent 42%), 8857 linear-gradient(135deg, #054a1d, #022c22); 8858 box-shadow: 8859 0 0 0 1px rgba(255, 255, 255, .08), 8860 0 18px 50px rgba(0, 0, 0, .45), 8861 0 0 18px rgba(34, 197, 94, .22); 8862 overflow: hidden; 8863 } 8864 8865 .t4d-item summary { 8866 list-style: none; 8867 cursor: pointer; 8868 padding: 14px 14px 14px 16px; 8869 position: relative; 8870 font-weight: 700; 8871 color: #dcfce7; 8872 text-shadow: 0 0 6px rgba(34, 197, 94, .75); 8873 } 8874 8875 .t4d-item summary::-webkit-details-marker { 8876 display: none; 8877 } 8878 8879 .t4d-item summary:after { 8880 content: "+"; 8881 position: absolute; 8882 right: 14px; 8883 top: 50%; 8884 transform: translateY(-50%); 8885 width: 34px; 8886 height: 34px; 8887 display: grid; 8888 place-items: center; 8889 border-radius: 12px; 8890 background: rgba(2, 44, 34, 0.82); 8891 border: 1px solid rgba(34, 197, 94, .78); 8892 box-shadow: 8893 0 0 10px rgba(34, 197, 94, .50), 8894 0 8px 18px rgba(0, 0, 0, .35); 8895 transition: transform .2s ease; 8896 } 8897 8898 .t4d-item[open] summary:after { 8899 content: "â"; 8900 transform: translateY(-50%) rotate(180deg); 8901 } 8902 8903 .t4d-ans { 8904 padding: 0 16px 14px; 8905 color: rgba(220, 252, 231, .92); 8906 line-height: 1.6; 8907 } 8908 8909 .t4d-item[open] { 8910 border-color: rgba(134, 239, 172, .95); 8911 } 8912 8913 /* TESTIMONI */ 8914 .t4d-testi-grid { 8915 display: grid; 8916 grid-template-columns: repeat(3, minmax(0, 1fr)); 8917 gap: 12px; 8918 } 8919 8920 .t4d-testi { 8921 border-radius: 18px; 8922 padding: 14px; 8923 background: 8924 radial-gradient(80% 80% at 0% 0%, rgb(0 0 0 / 45%), #000000 60%), linear-gradient(135deg, #000000, #000000); 8925 box-shadow: 8926 0 0 0 1px rgba(255, 255, 255, .08), 8927 0 18px 55px rgba(0, 0, 0, .5), 8928 0 0 24px rgba(34, 197, 94, .24); 8929 position: relative; 8930 overflow: hidden; 8931 } 8932 8933 .t4d-testi:before { 8934 content: ""; 8935 position: absolute; 8936 inset: -2px; 8937 background: linear-gradient(90deg, transparent, rgba(134, 239, 172, .48), transparent); 8938 filter: blur(10px); 8939 opacity: .85; 8940 animation: neoSweep 3.6s ease-in-out infinite; 8941 } 8942 8943 @keyframes neoSweep { 8944 0% { 8945 transform: translateX(-40%); 8946 } 8947 8948 50% { 8949 transform: translateX(40%); 8950 } 8951 8952 100% { 8953 transform: translateX(-40%); 8954 } 8955 } 8956 8957 .t4d-testi>* { 8958 position: relative; 8959 z-index: 1; 8960 } 8961 8962 .t4d-top { 8963 display: flex; 8964 align-items: center; 8965 justify-content: space-between; 8966 gap: 10px; 8967 margin-bottom: 6px; 8968 } 8969 8970 .t4d-title { 8971 font-weight: 800; 8972 color: #ffffff; 8973 text-shadow: 8974 0 0 7px rgba(34, 197, 94, .75), 8975 0 2px 5px rgba(0, 0, 0, .65); 8976 } 8977 8978 .t4d-stars { 8979 font-size: 13px; 8980 letter-spacing: 1px; 8981 color: #86efac; 8982 text-shadow: 8983 0 0 10px rgba(134, 239, 172, .65), 8984 0 0 14px rgba(34, 197, 94, .45); 8985 } 8986 8987 .t4d-name { 8988 font-weight: 700; 8989 color: rgba(220, 252, 231, .96); 8990 margin-bottom: 6px; 8991 } 8992 8993 .t4d-text { 8994 color: rgba(255, 255, 255, .90); 8995 line-height: 1.55; 8996 } 8997 8998 /* GENERATOR BOX */ 8999 .t4d-generator-box { 9000 margin: 18px 10px; 9001 padding: 18px; 9002 border-radius: 20px; 9003 background: 9004 radial-gradient(circle at top, rgba(134, 239, 172, .18), transparent 45%), 9005 linear-gradient(135deg, #022c22, #054a1d); 9006 border: 1px solid rgba(34, 197, 94, .85); 9007 box-shadow: 9008 0 0 25px rgba(34, 197, 94, .55), 9009 inset 0 0 18px rgba(255, 255, 255, .08); 9010 color: #fff; 9011 text-align: center; 9012 } 9013 9014 .t4d-generator-title { 9015 font-weight: 800; 9016 font-size: 18px; 9017 letter-spacing: 1px; 9018 text-transform: uppercase; 9019 color: #ffffff; 9020 text-shadow: 9021 0 0 8px #86efac, 9022 0 0 14px #22c55e; 9023 margin-bottom: 14px; 9024 } 9025 9026 .t4d-number-display { 9027 display: inline-grid; 9028 grid-template-columns: repeat(4, 54px); 9029 gap: 10px; 9030 margin-bottom: 14px; 9031 } 9032 9033 .t4d-digit { 9034 height: 58px; 9035 display: grid; 9036 place-items: center; 9037 border-radius: 14px; 9038 background: linear-gradient(180deg, #dcfce7, #86efac, #22c55e); 9039 color: #022c22; 9040 font-size: 30px; 9041 font-weight: 900; 9042 box-shadow: 9043 0 0 14px rgba(34, 197, 94, .70), 9044 inset 0 1px 0 rgba(255, 255, 255, .45); 9045 } 9046 9047 .t4d-generate-btn { 9048 border: 1px solid rgba(255, 255, 255, .65); 9049 background: linear-gradient(90deg, #22c55e, #86efac, #22c55e); 9050 color: #022c22; 9051 font-weight: 800; 9052 padding: 10px 18px; 9053 border-radius: 999px; 9054 cursor: pointer; 9055 text-transform: uppercase; 9056 box-shadow: 0 0 16px rgba(34, 197, 94, .50); 9057 } 9058 9059 /* RESULT GRID */ 9060 .t4d-result-grid { 9061 margin: 16px 10px; 9062 display: grid; 9063 grid-template-columns: repeat(4, minmax(0, 1fr)); 9064 gap: 12px; 9065 } 9066 9067 .t4d-result-card { 9068 border-radius: 18px; 9069 padding: 16px; 9070 text-align: center; 9071 background: 9072 radial-gradient(80% 80% at 0% 0%, rgb(0 0 0 / 45%), #000000 60%), linear-gradient(135deg, #000000, #000000); 9073 border: 1px solid rgba(34, 197, 94, .82); 9074 box-shadow: 0 0 20px rgba(34, 197, 94, .48); 9075 color: #fff; 9076 } 9077 9078 .t4d-market { 9079 font-weight: 800; 9080 font-size: 14px; 9081 text-transform: uppercase; 9082 color: #ffffff; 9083 text-shadow: 0 0 8px rgba(134, 239, 172, .78); 9084 margin-bottom: 8px; 9085 } 9086 9087 .t4d-result-number { 9088 font-size: 32px; 9089 font-weight: 900; 9090 color: #86efac; 9091 text-shadow: 9092 0 0 8px #22c55e, 9093 0 0 12px #86efac; 9094 margin-bottom: 6px; 9095 } 9096 9097 .t4d-result-date { 9098 font-size: 12px; 9099 color: rgba(255, 253, 231, .84); 9100 } 9101 9102 /* FOOTER SPACING */ 9103 .footer-main>.container, 9104 .cms-section .footer-main>.boxed { 9105 padding-top: 15px; 9106 } 9107 9108 /* RESPONSIVE */ 9109 @media (max-width: 991px) { 9110 .t4d-testi-grid { 9111 grid-template-columns: repeat(2, minmax(0, 1fr)); 9112 } 9113 9114 .t4d-result-grid { 9115 grid-template-columns: repeat(2, minmax(0, 1fr)); 9116 } 9117 } 9118 9119 @media (max-width: 575px) { 9120 .t4d-testi-grid { 9121 grid-template-columns: 1fr; 9122
9122 } 9123 9124 .t4d-item summary { 9125 padding-right: 56px; 9126 } 9127 9128 .t4d-number-display { 9129 grid-template-columns: repeat(4, 44px); 9130 } 9131 9132 .t4d-digit { 9133 height: 50px; 9134 font-size: 26px; 9135 } 9136 9137 .t4d-result-grid { 9138 grid-template-columns: 1fr; 9139 } 9140 } 9141 </style> 9142
9142<script> 9143 function generate4D() { 9144 const digits = document.querySelectorAll("#t4dGenerator .t4d-digit"); 9145 digits.forEach(function (digit) { 9146 digit.textContent = Math.floor(Math.random() * 10); 9147 }); 9148 } 9149 </script>
9149 9150 </article> 9151 </div> 9152 </section> 9153 9154 </div> 9155 9156 9157 <div class="overlay overlay-cart"></div> 9158 <div id="CartDrawer" class="drawer drawer--right"> 9159 <div class="drawer__header pl-2 pr-2"> 9160 <div class="drawer__icon-cart display-table-cell"> 9161 <a href="/cart" class=""> 9162 <svg class="icon icon-cart" version="1.1" xmlns="img/logotajir.webp" width="32" height="32" 9163 viewBox="0 0 32 32"> 9164 <path fill="#fff" 9165 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"> 9166 </path> 9167 <path fill="#fff" 9168 d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"> 9169 </path> 9170 <path fill="#fff" 9171 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"> 9172 </path> 9173 <path fill="#000" 9174 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"> 9175 </path> 9176 <path fill="#fff" 9177 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"> 9178 </path> 9179 <path fill="#fff" 9180 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"> 9181 </path> 9182 <path fill="#fff" 9183 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"> 9184 </path> 9185 <path fill="#fff" 9186 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"> 9187 </path> 9188 </svg> 9189 </a> 9190 </div> 9191 <div class="drawer__title h4">Keranjang Belanja</div> 9192 <div class="drawer__close js-drawer-close"> 9193 <button type="button"> 9194 <svg class="icon icon-close" version="1.1" xmlns="img/logotajir.webp" width="32" height="32"
9195 viewBox="0 0 32 32"> 9196 <title>icon-close</title> 9197 <path 9198 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"> 9199 </path> 9200 </svg> 9201 </button> 9202 </div> 9203 </div> 9204 <div id="CartContainer" class="p-2"></div> 9205 </div> 9206 9207
9207<script> 9208 9209 </script>
9209 9210
9210<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" 9211 defer></script>
9211 9212 <!-- /snippets/ajax-cart-template.liquid --> 9213 9214
9214<script id="CartTemplate" type="text/template"> 9215 9216 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 9217 <div class="ajaxcart__inner" {{ cart.item_count }}> 9218 {{#items}} 9219 <div class="ajaxcart__product"> 9220 <div class="ajaxcart__row" data-line="{{line}}"> 9221 <div class="grid"> 9222 <div class="grid__item one-quarter"> 9223 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 9224 </div> 9225 <div class="grid__item three-quarters"> 9226 <p class="d-block mb-3"> 9227 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 9228 {{#if variation}} 9229 <span class="ajaxcart__product-meta p">{{variation}}</span> 9230 {{/if}} 9231 {{#properties}} 9232 {{#each this}} 9233 {{#if this}} 9234 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 9235 {{/if}} 9236 {{/each}} 9237 {{/properties}} 9238 9239 </p> 9240 <div class="grid--full display-table"> 9241 <div class="grid__item display-table-cell one-half"> 9242 <div class="ajaxcart__qty"> 9243 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 9244 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 9245 <span class="visually-hidden">Kurangi jumlah barang</span> 9246 </button> 9247 <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]*"> 9248 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 9249 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 9250 <span class="visually-hidden">Tambahkan jumlah barang</span> 9251 </button> 9252 </div> 9253 </div> 9254 <div class="grid__item display-table-cell one-half text-right"> 9255 {{#if discountsApplied}} 9256 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 9257 <br><span class="h4">{{{linePrice}}}</span> 9258 {{else}} 9259 <span class="h4">{{{linePrice}}}</span> 9260 {{/if}} 9261 </div> 9262 </div> 9263 {{#if discountsApplied}} 9264 <div class="grid--full display-table"> 9265 <div class="grid__item text-right"> 9266 {{#each discounts}} 9267 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 9268 {{/each}} 9269 </div> 9270 </div> 9271 {{/if}} 9272 </div> 9273 </div> 9274 </div> 9275 </div> 9276 </div> 9277 </div> 9278 {{/items}} 9279 </div> 9280 <div class="ajaxcart__footer"> 9281 <div class="grid--full cart-subtotal py-2"> 9282 <p>Subtotal</p> 9283 <h3 class="primary">{{{totalPrice}}}</h3> 9284 {{#if totalCartDiscount}} 9285 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 9286 {{/if}} 9287 </div> 9288 9289 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 9290 9291 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 9292 </div> 9293 </form> 9294 9295 </script>
9295 9296
9296<script id="AjaxQty" type="text/template"> 9297 9298 <div class="ajaxcart__qty"> 9299 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 9300 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"> 9301 <title>icon-minus</title> 9302 <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> 9303 </svg> 9304 <span class="visually-hidden">Kurangi jumlah barang</span> 9305 </button> 9306 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 9307 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 9308 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 9309 <span class="visually-hidden">Tambahkan jumlah barang</span> 9310 </button> 9311 </div> 9312 9313 </script>
9313 9314
9314<script id="JsQty" type="text/template"> 9315 9316 <div class="js-qty mx-auto mt-2"> 9317 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 9318 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 9319 <span class="visually-hidden">Kurangi jumlah barang</span> 9320 </button> 9321 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 9322 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 9323 <svg version="1.1" xmlns="img/logotajir.webp" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 9324 <span class="visually-hidden">Tambahkan jumlah barang</span> 9325 </button> 9326 </div> 9327 9328 </script>
9328 9329 9330 <style> 9331 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 9332 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 9333 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button { 9334 display: none; 9335 } 9336 9337 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 9338 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 9339 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 9340 pointer-events: none; 9341 opacity: 0.5; 9342 } 9343 9344 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 9345 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 9346 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 9347 pointer-events: none; 9348 } 9349 </style> 9350
9350<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" 9351 defer></script>
9351 9352
9352<script> 9353 jQuery(function ($) { 9354 ajaxCart.init({ 9355 formSelector: '#AddToCartForm', 9356 cartContainer: '#CartContainer', 9357 addToCartSelector: '#AddToCartXX', 9358 cartCountSelector: '#CartCount, #CartCount2', 9359 cartCostSelector: '#CartCost', 9360 moneyFormat: "Rp {{amount_no_decimals}}" 9361 }); 9362 }); 9363 9364 jQuery(document.body).on('afterCartLoad.ajaxCart', function (evt, cart) { 9365 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 9366 timber.RightDrawer.open(); 9367 }); 9368 </script>
9368 9369 9370 9371 9372 9373 <style> 9374 /** Search AutoComplete **/ 9375 .resultsearch .ui-menu-item[data-cat="Collection"], 9376 .resultsearch .ui-menu-item[data-cat="Collection"] { 9377 display: none; 9378 } 9379 9380 .resultsearch .ui-widget.ui-widget-content { 9381 width: 100%; 9382 top: 48px; 9383 border: none; 9384 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 9385 } 9386 9387 .resultsearch .ui-menu-item { 9388 text-align: left; 9389 } 9390 9391 .resultsearch .ui-menu-item>a, 9392 .resultsearch .ui-menu-item>span { 9393 display: inline-block; 9394 width: 100%; 9395 font-size: 16px; 9396 } 9397 9398 .resultsearch .ui-menu-item img { 9399 vertical-align: middle; 9400 } 9401 9402 .resultsearch .ui-menu-item a[data-cat="Collection"] img { 9403 display: none; 9404 } 9405 9406 .resultsearch .ui-menu .ui-state-focus, 9407 .resultsearch .ui-menu .ui-state-active { 9408 margin: 0; 9409 } 9410 9411 .ui-state-active, 9412 .ui-widget-content .ui-state-active { 9413 background: #f2f2f2; 9414 border: none; 9415 color: #ffffff; 9416 } 9417 9418 .resultsearch .ui-menu-item>a, 9419 .resultsearch .ui-menu-item>span { 9420 display: inline-block; 9421 width: 100%; 9422 font-size: 13px; 9423 } 9424 9425 .resultsearch .ui-menu-item a[data-cat="Produk"] img { 9426 margin-right: 10px; 9427 } 9428 9429 .resultsearch .ui-menu-item a[data-cat="Produk"] .price { 9430 float: right; 9431 padding: 15px 0; 9432 } 9433 9434 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before { 9435 content: "Product Populer"; 9436 font-size: 13px; 9437 padding: 5px; 9438 margin: 5px 0; 9439 background: #f2f2f2; 9440 width: 100%; 9441 display: block; 9442 color: #ffffff; 9443 } 9444 9445 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span { 9446 display: none; 9447 } 9448 9449 .ui-state-active { 9450 border: none !important; 9451 background-color: #fafafa !important; 9452 color: #000 !important; 9453 } 9454 9455 .ui-menu-item a[data-cat="Collection"] { 9456 padding: 5px 12px; 9457 } 9458 9459 .ui-menu .ui-menu-item { 9460 line-height: normal; 9461 } 9462 </style> 9463
9463<script> 9464 $(window).load(function () { 9465 9466 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; } 9467 9468 $.widget("custom.catcomplete", $.ui.autocomplete, { 9469 _renderMenu: function (ul, items) { 9470 // have search reults split up in categories 9471 var that = this, 9472 currentCategory = ""; 9473 $.each(items, function (index, item) { 9474 if (item.category != currentCategory) { 9475 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 9476 currentCategory = item.category; 9477 } 9478 that._renderItemData(ul, item); 9479 }); 9480 } 9481 }); 9482 9483 // higlight searched for term 9484 $.ui.autocomplete.prototype._renderItem = function (ul, item) { 9485 var term = this.element.val(), 9486 html = item.label.replace(term, "<b>$&</b>"); 9487 return $("<li>") 9488 .append(format(item)) 9489 .appendTo(ul); 9490 }; 9491 9492 9493 var data = [ 9494 { 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-ne
9494wborn-hampers", images: " ", price: " " }, { label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " }, { label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " }, { label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " }, { label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " }, { label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " }, { label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " }, { label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " }, { label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " }, { label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " }, { label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " }, { label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " }, { label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " }, { label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " }, { label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " }, { label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " }, { label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " }, { label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " }, { label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " }, { label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " }, { label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " }, { label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " }, { label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " }, { label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " }, { label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " }, { label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " }, { label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " }, { label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " }, { label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " }, { label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " }, { label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " }, { label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " }, { label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " }, { label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " }, { label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " }, { label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " }, { label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " }, { label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " }, { label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " }, { label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " }, { label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " }, { label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " }, { label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " }, { label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " }, { label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " }, { label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " }, { label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " }, { label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " }, { label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " }, { label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " }, { label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " }, { label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " }, { label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " }, { label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " }, { label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " }, { label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " }, { label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " }, { label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " }, { label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " }, { label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " }, { label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " }, { label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " }, { label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " }, { label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " }, { label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " }, { label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " }, { label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " }, { label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " }, { label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " }, { label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " }, { label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " }, { label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " }, { label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " }, { label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " }, { label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " }, { label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " }, { label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " }, { label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " }, { label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " }, { label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " }, { label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " }, { label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " }, { label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " }, { label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " }, { label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " }, { label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " }, { label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " }, { label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " }, { label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " }, { label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " }, { label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " }, { label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " }, { label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " }, { label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " }, { label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " }, { label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " }, { label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " }, { label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " }, { label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " }, { label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " }, { label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " }, { label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " }, { label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " }, { label: "Craft Sweetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", 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-pem
9494akaman", 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: " " }, { label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " }, { label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " }, { label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " }, { label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " }, { label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " }, { label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " }, { label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " }, { label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " }, { label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " }, { label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " }, { label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " }, { label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " }, { label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " }, { label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " }, { label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " }, { label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " }, { label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " }, { label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " }, { label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " }, { label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " }, { label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " }, { label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " }, { label: "Gemini âï¸ 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " }, { label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " }, { label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " }, { label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " }, { label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " }
9494, { label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " }, { label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " }, { label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " }, { label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " }, { label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " }, { label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " }, { label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " }, { label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " }, { label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " }, { label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " }, { label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " }, { label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " }, { label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " }, { label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " }, { label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " }, { label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " }, { label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " }, { label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " }, { label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " }, { label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " }, { label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " }, { label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " }, { label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " }, { label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " }, { label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " }, { label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " }, { label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " }, { label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " }, { label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " }, { label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " }, { label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " }, { label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " }, { label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " }, { label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " }, { label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " }, { label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " }, { label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " }, { label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " }, { label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " }, { label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " }, { label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " }, { label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " }, { label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " }, { label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " }, { label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " }, { label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " }, { label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " }, { label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " }, { label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " }, { label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " }, { label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " }, { label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " }, { label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " }, { label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " }, { label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " }, { label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " }, { label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
9494, { label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " }, { label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " }, { label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " }, { label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " }, { label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " }, { label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " }, { label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " }, { label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " }, { label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " }, { label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " }, { label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " }, { label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " }, { label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " }, { label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " }, { label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " }, { label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " }, { label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " }, { label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " }, { label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " }, { label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " }, { label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " }, { label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " }, { label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " }, { label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " }, { label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " }, { label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " }, { label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " }, { label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " }, { label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " }, { label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " }, { label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " }, { label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " }, { label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " }, { label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " }, { label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " }, { label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " }, { label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " }, { label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " }, { label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " }, { label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " }, { label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " }, { label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " }, { label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " }, { label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " }, { label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " }, { label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
9494, { label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " }, { label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " }, { label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " }, { label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " }, { label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " }, { label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " }, { label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " }, { label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " }, { label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " }, { label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " }, { label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " }, { label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " }, { label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " }, { label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " }, { label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " }, { label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " }, { label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " }, { label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " }, { label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " }, { label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " }, { label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " }, { label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " }, { label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " }, { label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " }, { label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " }, { label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " }, { label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " }, { label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " }, { label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " }, { label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " }, { label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " }, { label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " }, { label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " }, { label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " }, { label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " }, { label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " }, { label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
9494dal", images: " ", price: " " }, { label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " }, { label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " }, { label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " }, { label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " }, { label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " }, { label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " }, { label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " }, { label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " }, { label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " }, { label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " }, { label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " }, { label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " }, { label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " }, { label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " }, { label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " }, { label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " }, { label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " }, { label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " }, { label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " }, { label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " }, { label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " }, { label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " }, { label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " }, { label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " }, { label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " }, { label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " }, { label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " }, { label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " }, { label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " }, { label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " }, { label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " }
9494, { label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " }, { label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " }, { label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " }, { label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " }, { label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " }, { label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " }, { label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " }, { label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " }, { label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " }, { label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " }, { label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " }, { label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " }, { label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " }, { label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " }, { label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " }, { label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " }, { label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " }, { label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " }, { label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " }, { label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " }, { label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " }, { label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " }, { label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " }, { label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " }, { label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " }, { label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " }, { label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " }, { label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " }, { label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " }, { label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " }, { label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " }, { label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " }, { label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " }, { label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " }, { label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " }, { label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " }, { label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " }, { label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " }, { label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " }, { label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " }, { label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " }, { label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " }, { label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " }, { label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " }, { label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " }, { label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " }, { label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " }, { label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " }, { label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " }, { label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " }, { label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " }, { label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " }, { label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " }, { label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " }, { label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " }, { label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " }, { label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " }, { label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " }, { label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " }, { label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " }, { label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " }, { label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " }, { label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " }, { label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " }, { label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " }, { label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " }, { label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " }, { label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " }, { label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " }, { label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " }, { label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " }, { label: "Leo âï¸ 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " }, { label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " }, { label: "Libra âï¸ 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " }, { label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " }, { label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " }, { label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " }, { label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " }, { label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " }, { label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " }, { label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " }, { label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " }, { label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " }, { label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " }, { label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " }, { label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " }, { label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " }, { label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " }, { label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " }, { label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " }, { label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " }, { label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " }, { label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
9494hampers", 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
9494o-panna", images: " ", price: " " }, { label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " }, { label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " }, { label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " }, { label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " }, { label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " }, { label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " }, { label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " }, { label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " }, { label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " }, { label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " }, { label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " }, { label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " }, { label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " }, { label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " }, { label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " }, { label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " }, { label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " }, { label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " }, { label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " }, { label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " }, { label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " }, { label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " }, { label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " }, { label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " }, { label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " }, { label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " }, { label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " }, { label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " }, { label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " }, { label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " }, { label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " }, { label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
9494, { label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " }, { label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " }, { label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " }, { label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " }, { label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " }, { label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " }, { label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " }, { label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " }, { label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " }, { label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " }, { label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " }, { label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " }, { label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " }, { label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " }, { label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " }, { label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " }, { label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " }, { label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " }, { label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " }, { label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " }, { label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " }, { label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " }, { label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " }, { label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " }, { label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " }, { label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " }, { label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " }, { label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " }, { label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " }, { label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " }, { label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
9494, { label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " }, { label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " }, { label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " }, { label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " }, { label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " }, { label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " }, { label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " }, { label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " }, { label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " }, { label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " }, { label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " }, { label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " }, { label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " }
9494, { label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }, { label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " }, { label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " }, { label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " }, { label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " }, { label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " }, { label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " }, { label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " }, { label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " }, { label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " }, { label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " }, { label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " }, { label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " }, { label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " }, { label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " }, { label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " }, { label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " }, { label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " }, { label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " }, { label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " }, { label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " }, { label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " }, { label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " }, { label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " }, { label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " }, { label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " }, { label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " }, { label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " }, { label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " }, { label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " }, { label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " }, { label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " }, { label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " }
9494, { label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }, { label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " }, { label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " }, { label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " }, { label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " }, { label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " }, { label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " }, { label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " }, { label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " }, { label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " }, { label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " }, { label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " }, { label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " }, { label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " }, { label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " }, { label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " }, { label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " }, { label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " }, { label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " }, { label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " }, { label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " }, { label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " }, { label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " }, { label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " }, { label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " }, { label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " }, { label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " }, { label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " }, { label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " }, { label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " }, { label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " }, { label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " }, { label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " }
9494, { label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " }, { label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " }, { label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " }, { label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " }, { label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " }, { label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " }, { label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " }, { label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " }, { label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " }, { label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " }, { label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " }, { label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " }, { label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " }, { label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " }
9494, { label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }, { label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " }, { label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " }, { label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " }, { label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " }, { label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " }, { label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " }, { label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " }, { label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " }, { label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " }, { label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " }, { label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " }, { label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " }, { label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " }, { label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " }, { label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " }, { label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " }, { label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " }, { label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " }, { label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " }, { label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " }, { label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " }, { label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " }, { label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " }, { label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " }, { label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " }, { label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " }, { label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " }, { label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " }, { label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " }, { label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " }, { label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " }, { label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " }
9494, { label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }, { label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " }, { label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " }, { label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " }, { label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " }, { label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " }, { label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " }, { label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " }, { label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " }, { label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " }, { label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " }, { label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " }, { label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " }, { label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " }, { label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " }, { label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " }, { label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " }, { label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " }, { label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " }, { label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " }, { label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " }, { label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " }, { label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " }, { label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " }, { label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " }, { label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " }, { label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " }, { label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " }, { label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " }, { label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " }, { label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " }, { label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " }, { label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " }, { label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " }, { label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " }, { label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " }, { label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " }, { label: "Pisces âï¸ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " }, { label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " }, { label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " }, { label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " }, { label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " }, { label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " }, { label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " }, { label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " }, { label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " }, { label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " }, { label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " }, { label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " }, { label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " }, { label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " }, { label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " }, { label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " }, { label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " }, { label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " }, { label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " }, { label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " }, { label: "Sagittarius âï¸ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " }, { label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " }, { label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " }, { label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " }, { label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " }, { label: "Scorpio âï¸ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " }, { label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " }, { label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " }, { label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " }, { label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " }, { label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " }, { label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " }, { label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " }, { label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " }, { label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " }, { label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " }, { label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " }, { label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " }, { label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " }, { label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " }, { label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " }, { label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " }, { label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " }, { label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta
9494scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " }, { label: "TAJIR4D adalah situs iwantanap yang dapat membuat anda tajir dari Slot, Sangat mudah mendapatkan maxwin serta scatter dari berbagai macam game serta layanan 24 jam yang siap membantu anda bermain. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " }, { label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " }, { label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " }, { label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " }, { label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " }, { label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " }, { label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " }, { label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " }, { label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " }, { label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " }, { label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " }, { label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " }, { label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " }, { label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " }, { label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " }, { label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " }, { label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " }, { label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " }, { label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " }, { label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " }, { label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " }, { label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " }, { label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " }, { label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " }, { label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " }, { label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " }, { label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " }, { label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " }, { label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " }, { label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " }, { label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " }, { label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " }, { label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " }, { label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " }, { label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " }
9494, { label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " }, { label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " }, { label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " }, { label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " }, { label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " }, { label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " }, { label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " }, { label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " }, { label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " }, { label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " }, { label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " }, { label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " }, { label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " }, { label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " }, { label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " }, { label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " }, { label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " }, { label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " }, { label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " }, { label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " }, { label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " }, { label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " }, { label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " }, { label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " }, { label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " }, { label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " }, { label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " }, { label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " }, { label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " }, { label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " }, { label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " }, { label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " }, { label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " }, { label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " }, { label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " }, { label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " }, { label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " }, { label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
9494, { label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " }, { label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " }, { label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " }, { label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " }, { label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " }, { label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " }, { label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " }, { label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " }, { label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " }, { label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " }, { label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " }, { label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " }, { label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " }, { label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " }, { label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " }, { label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " }, { label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " }, { label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " }, { label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " }, { label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " }, { label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " }, { label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " }, { label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " }, { label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " }, { label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " }, { label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " }, { label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " }, { label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " }, { label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " }, { label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " }, { label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " }, { label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " }, { label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " }, { label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " }, { label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " }, { label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " }, { label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " }, { label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " }, { label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " }, { label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " }, { label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " }, { label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " }, { label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " }, { label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " }, { label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " }, { label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " }, { label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
9494dal", images: " ", price: " " }, { label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " }, { label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " }, { label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " }, { label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " }, { label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " }, { label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " }, { label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " }, { label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " }, { label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " }, { label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " }, { label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " }, { label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " }, { label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " }, { label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " }, { label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " }, { label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " }, { label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " }, { label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " }, { label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " }, { label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " }, { label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " }, { label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " }, { label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " }, { label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " }, { label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " }, { label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " }, { label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " }, { label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " }, { label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " }, { label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " }, { label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " }, { label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " }, { label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " }, { label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " }, { label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " }, { label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " }, { label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " }, { label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " }, { label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " }, { label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " }, { label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " }, { label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " }, { label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " }, { label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " }, { label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " }, { label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " }, { label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " }, 9495 { 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" }
9495, { 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" }
9495, { 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" } 9496 ]; 9497 9498 9499 $(".header-input-search").catcomplete({ 9500 appendTo: ".searchResult", source: function (request, response) { 9501 var results = $.ui.autocomplete.filter(data, request.term); 9502 var predicate = function () { 9503 var counter = { Collection: 0, Produk: 0 }; 9504 var fn = function (item) { counter[item.category] += 1; return (counter[item.category] <= 5); } 9505 return fn 9506 }(); 9507 response(results.filter(predicate)); 9508 }, 9509 minLength: 1, 9510 //results are clickable 9511 select: function (event, ui) { window.location = ui.item.url; } 9512 }); 9513 $(".header-input-search2").catcomplete({ 9514 appendTo: ".searchResult2", 9515 source: function (request, response) { 9516 var results = $.ui.autocomplete.filter(data, request.term); 9517 var predicate = function () { 9518 var counter = { Collection: 0, Produk: 0 }; 9519 var fn = function (item) { 9520 counter[item.category] += 1; 9521 return (counter[item.category] <= 5); 9522 } 9523 return fn 9524 }(); 9525 response(results.filter(predicate)); 9526 }, 9527 minLength: 1, 9528 //results are clickable 9529 select: function (event, ui) { 9530 window.location = ui.item.url; 9531 } 9532 }); 9533 }); 9534 </script>
9534 9535 9536
9536<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
9536 9537
9537<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
9537 9538 9539
9539<script> 9540 (function () { 9541 var youtube = document.querySelectorAll(".youtube"); 9542 for (var i = 0; i < youtube.length; i++) { 9543 var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault_1x.jpg"; 9544 var datasource = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault.jpg"; 9545 var image = new Image(); 9546 image.src = source; 9547 image.setAttribute("data-src", datasource); 9548 image.classList.add("swiper-lazy"); 9549 image.addEventListener("load", function () { 9550 youtube[i].appendChild(image); 9551 }(i)); 9552 youtube[i].addEventListener("click", function () { 9553 var iframe = document.createElement("iframe"); 9554 iframe.setAttribute("width", "480"); 9555 iframe.setAttribute("height", "480"); 9556 iframe.setAttribute("frameborder", "0"); 9557 iframe.setAttribute("allowfullscreen", ""); 9558 iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset.embed + "?rel=0&showinfo=0&autoplay=1"); 9559 this.innerHTML = ""; 9560 this.appendChild(iframe); 9561 }); 9562 }; 9563 9564 })(); 9565 9566 /* Lazy Load */ 9567 const mainLazyLoad = new LazyLoad({ threshold: 400 }); 9568 $(document).ready(function () { 9569 9570 $("selectxxx").addClass("needsclick"); 9571 FastClick.attach(document.body); 9572 9573 var $customSelects = $('.select-search'); 9574 $customSelects.select2({ 9575 templateResult: function (result, container) { 9576 if (!result.id) { 9577 return result.text; 9578 } 9579 container.className += ' needsclick'; 9580 return result.text; 9581 } 9582 }); 9583 $customSelects.each(function (index, el) { $(el).data('select2').$container.find('*').addClass('needsclick'); }); 9584 $(document).on('select2:open', () => { 9585 document.querySelector('.select2-search__field').focus(); 9586 }); 9587 9588 9589 $(".overlay").click(function () { 9590 $(".js-drawer-close").click(); 9591 }); 9592 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function () { 9593 $("html").toggleClass("nav_open"); 9594 }); 9595 9596 $('.swatch-element label').on('click', function () { 9597 var srcImg = $(this).data('src'); 9598 $('#thumb-image-product .product-single__thumbnail').each(function () { 9599 if ($(this).attr("href") == srcImg) { 9600 $(this).trigger('click'); 9601 } 9602 }); 9603 }); 9604 var defaultValue = $(".swatch input:checked").val() 9605 9606 $('#purchaseProduct .swatch [type=radio]').change(function () { 9607 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 9608 var optionValue = $(this).val(); 9609 console.log(optionIndex, optionValue) 9610 var value = parseInt(optionValue.split(' ')[0]) 9611 $(this) 9612 .closest('#purchaseProduct') 9613 .find('.single-option-selector') 9614 .eq(optionIndex) 9615 .val(optionValue) 9616 .trigger('change'); 9617 9618 }); 9619 9620 }); 9621 $(document).ready(function () { 9622 $(".nav-search a").click(function (e) { 9623 e.preventDefault(); 9624 $(".icon-navsearch").toggle(); 9625 $(".icon-navclose").toggle(); 9626 $(".site-nav__item > .site-nav__link").toggle(); 9627 $(".open-search").toggle(); 9628 $(".open-search input").focus(); 9629 }); 9630 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839
9630651752652420' alt='Logo Best Price Guarantee'>"); 9631 if ($(window).width() < 768) { 9632 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9633 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9634 $(".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'>"); 9635 } else { 9636 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9637 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9638 $(".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'>"); 9639 } 9640 $(".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'>"); 9641 $(".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'>"); 9642 }); 9643 </script>
9643 9644 9645 9646 9647 9648 9649 9650 9651
9651<script type="text/javascript"> 9652 var wishlistpage = 0; 9653 9654 var quickShop_money_format = "<span class='money'>" + "Rp {{amount_no_decimals}}" + "</span>"; 9655 </script>
9655 9656 9657 <!-- Remove duplicate wishlist.js reference --> 9658 <style> 9659 .fade { 9660 opacity: 0; 9661 -webkit-transition: opacity .15s linear; 9662 -o-transition: opacity .15s linear; 9663 transition: opacity .15s linear 9664 } 9665 9666 .modal { 9667 position: fixed; 9668 top: 0; 9669 right: 0; 9670 bottom: 0; 9671 left: 0; 9672 z-index: 999999; 9673 display: none; 9674 overflow: hidden; 9675 -webkit-overflow-scrolling: touch; 9676 outline: 0 9677 } 9678 9679 .fade.in { 9680 opacity: 1 9681 } 9682 9683 .modal-open .modal { 9684 overflow-x: hidden; 9685 overflow-y: auto; 9686 z-index: 999999; 9687 background-color: rgba(0, 0, 0, .3) 9688 } 9689 9690 .modal-dialog { 9691 position: relative; 9692 width: auto; 9693 margin: 10px 9694 } 9695 9696 .wishlist-model .modal-dialog { 9697 width: 700px 9698 } 9699 9700 .modal.fade .modal-dialog { 9701 -webkit-transition: -webkit-transform .3s ease-out; 9702 -o-transition: -o-transform .3s ease-out; 9703 transition: transform .3s ease-out; 9704 -webkit-transform: translate(0, -25%); 9705 -ms-transform: translate(0, -25%); 9706 -o-transform: translate(0, -25%); 9707 transform: translate(0, -25%) 9708 } 9709 9710 .modal.in .modal-dialog { 9711 -webkit-transform: translate(0, 0); 9712 -ms-transform: translate(0, 0); 9713 -o-transform: translate(0, 0); 9714 transform: translate(0, 0) 9715 } 9716
9717 .modal-content { 9718 position: relative; 9719 background-color: #fff; 9720 -webkit-background-clip: padding-box; 9721 background-clip: padding-box; 9722 border: 1px solid #999; 9723 border: 1px solid rgba(0, 0, 0, .2); 9724 outline: 0; 9725 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); 9726 box-shadow: 0 3px 9px rgba(0, 0, 0, .5) 9727 } 9728 9729 .wishlist-model .modal-content {} 9730 9731 .wishlist-model .modal-header { 9732 min-height: 0; 9733 padding: 0; 9734 border-bottom: 0 9735 } 9736 9737 .close { 9738 float: right; 9739 font-size: 21px; 9740 font-weight: 700; 9741 line-height: 1; 9742 color: #000; 9743 text-shadow: 0 1px 0 #121212; 9744 filter: alpha(opacity=20); 9745 opacity: .2 9746 } 9747 9748 button.close { 9749 -webkit-appearance: none; 9750 padding: 0; 9751 cursor: pointer; 9752 background: 0 0; 9753 border: 0 9754 } 9755
9756 .modal-header .close { 9757 margin-top: -2px 9758 } 9759 9760 .wishlist-model .close { 9761 position: absolute; 9762 top: -10px; 9763 right: -10px; 9764 background: #fff; 9765 opacity: 1; 9766 width: 30px; 9767 height: 30px; 9768 font-size: 15px; 9769 border-radius: 50%; 9770 z-index: 10; 9771 box-shadow: 0 1px 4px 0 #121212 9772 } 9773 9774 .wishlist-model .close .icon-close { 9775 width: 25px; 9776 height: 25px 9777 } 9778 9779 .modal-body { 9780 position: relative; 9781 padding: 15px 9782 } 9783 9784 .wishlist-model .modal-body { 9785 padding: 0 30px; 9786 display: flex 9787 } 9788 9789 .wishlist-model .wishlist-left { 9790 width: 66.67%; 9791 border-right: 1px solid #ccc; 9792 padding: 30px 0 9793 } 9794 9795 .wishlist-model .wishlist-note { 9796 position: relative; 9797 display: inline-block; 9798 margin-bottom: 20px; 9799 margin-left: 35px; 9800 border-bottom: 1px solid #121212; 9801 color: #121212 9802 } 9803 9804 .wishlist-model .wishlist-note a { 9805 color: #ffffff; 9806 } 9807 9808 .wishlist-model .wishlist-note .cirle { 9809 position: absolute; 9810 top: -4px; 9811 left: -35px; 9812 width: 25px; 9813 height: 25px; 9814 color: #fff; 9815 background: #121212; 9816 line-height: 25px; 9817 border-radius: 50%; 9818 text-align: center 9819 } 9820 9821 .wishlist-model .wishlist-note svg { 9822 fill: #fff 9823 } 9824 9825 .wishlist-model .wishlist-note .cirle .icon-check { 9826 vertical-align: middle 9827 } 9828 9829 .wishlist-model .product-left { 9830 width: 33.33%; 9831 float: left; 9832 margin-right: 30px 9833 } 9834 9835 .wishlist-model .wishlist-image { 9836 overflow: hidden 9837 } 9838 9839 .wishlist-model .wishlist-image img { 9840 transition: all .3s linear 9841 } 9842 9843 .wishlist-model .wishlist-name { 9844 padding: 0; 9845 margin-bottom: 10px 9846 } 9847 9848 .wishlist-model .wishlist-name a { 9849 color: #ffffff; 9850 } 9851 9852 .wishlist-model .wishlist-price { 9853 margin-bottom: 10px 9854 } 9855 9856 .wishlist-model .wishlist-price .price { 9857 font-weight: 700; 9858 margin-right: 10px; 9859 font-size: 15px 9860 } 9861 9862 .wishlist-model .wishlist-price .price_compare { 9863 color: #ccc 9864 } 9865 9866 .wishlist-model .wishlist-right { 9867 width: 33.33%; 9868 padding: 30px 0; 9869 padding-left: 30px 9870 } 9871 9872 .wishlist-model .btn-quick-shop { 9873 width: 100%; 9874 border-color: #121212; 9875 background: #fff; 9876 color: #121212; 9877 padding: 0 30px; 9878 transition: all .2s linear; 9879 height: 36px; 9880 margin-bottom: 10px; 9881 text-transform: uppercase 9882 } 9883 9884 .wishlist-model .btn-cta { 9885 width: 100%; 9886 font-size: 1em; 9887 border-color: #ffffff; 9888 background: #ffffff; 9889 color: #fff; 9890 padding: 0; 9891 transition: all .2s linear; 9892 height: 36px; 9893 line-height: 36px; 9894 margin-bottom: 10px 9895 } 9896 9897 .wishlist-model .quantity-content { 9898 text-align: center 9899 } 9900 9901 .wishlist-model .quantity-content input { 9902 outline: none; 9903 text-align: center; 9904 font-weight: 600; 9905 border: 1px solid #121212 9906 } 9907 9908 .wishlist-model .quantity-content button { 9909 border-color: #121212 9910 } 9911 9912 @media (min-width:768px) {
9913 .modal-dialog { 9914 width: 600px; 9915 margin: 30px auto 9916 } 9917 9918 .modal-content { 9919 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); 9920 box-shadow: 0 5px 15px rgba(0, 0, 0, .5) 9921 } 9922 } 9923 </style> 9924 9925 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 9926 <div class="modal-dialog" role="document"> 9927 <div class="modal-content"> 9928 <div class="modal-body">Your Wishlist is empty!</div> 9929 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 9930 aria-hidden="true">×</span></button> 9931 </div> 9932 </div> 9933 </div> 9934 9935 <div class="wishlist-model"> 9936 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 9937 <div class="modal-dialog white-modal"> 9938 <div class="modal-content"> 9939 <div class="modal-header"> 9940 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 9941 <svg class="icon icon-close" version="1.1" xmlns="img/logotajir.webp" width="32" 9942 height="32" viewBox="0 0 32 32"> 9943 <title>icon-close</title> 9944 <path 9945 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"> 9946 </path> 9947 </svg> 9948 </button> 9949 </div> 9950 <div class="modal-body"> 9951 <div class="wishlist-left"> 9952 <div class="wishlist-note"> 9953 <span class="cirle"><svg version="1.1" xmlns="img/logotajir.webp" width="32" 9954 height="32" viewBox="0 0 32 32"> 9955 <title>icon-check</title> 9956 <path 9957 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"> 9958 </path> 9959 </svg></span> 9960 Product added to <a href="/pages/wish-list">Wishlist</a> 9961 </div> 9962 <div class="wishlist-product"> 9963 <div class="product-left"> 9964 <div class="wishlist-image"></div> 9965 </div> 9966 <div class="product-right"> 9967 <div class="wishlist-name"></div> 9968 <div class="wishlist-price"></div> 9969 </div> 9970 </div> 9971 </div> 9972 <div class="wishlist-right"> 9973 <div class="wishlist-cart"> 9974 <form action="/cart/add" method="post" class="variants-form variants" 9975 id="AddToCartForm" enctype="multipart/form-data"> 9976 <div class="others-bottom"> 9977 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 9978 <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
9979 <span id="AddToCartText" class="">Beli Sekarang</span> 9980 </button> 9981 </div> 9982 <div id="wishlist-variants-container" class="variants-wrapper"></div> 9983 <div class="quantity-content"> 9984 <label>QTY</label> 9985 <input type="number" size="5" class="" name="quantity" value="1" /> 9986 </div> 9987 </form> 9988 </div> 9989 </div> 9990 </div> 9991 </div> 9992 </div> 9993 </div> 9994 </div> 9995 9996 9997 <style> 9998 .stamped-badge[data-rating="0.0"] { 9999 display: none !Important; 10000 } 10001 10002 div[data-load-type="continue"] ul.stamped-pagination li.next a, 10003 div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 10004 border-radius: 0px; 10005 } 10006 10007 .stamped-review-body { 10008 padding-left: 0px !important; 10009 } 10010 10011 #product-reviews .stamped-header:after { 10012 display: none !Important; 10013 } 10014 10015 #stamped-main-widget .stamped-container, 10016 .stamped-badge-caption, 10017 #stamped-reviews-widget { 10018 font-family: inherit !important; 10019 } 10020 </style> 10021 10022 10023 10024 <div id='stamped-rewards-init' class='stamped-rewards-init' data-key-public=''></div> 10025 10026
10026<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" 10027 defer></script>
10027 10028 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 10029
10029<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" 10030 defer></script>
10030 10031 10032
10032<script> 10033 function myInit() { StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 10034 </script>
10034 10035
10035<script async onload="myInit()" type="text/javascript" 10036 src="https://cdn1.stamped.io/files/widget.min.js"></script>
10036 10037 <style> 10038 .jss59 { 10039 background-color: rgba(0, 0, 0, 0.6); 10040 } 10041 10042 .MuiBackdrop-root { 10043 top: 0; 10044 left: 0; 10045 right: 0; 10046 bottom: 0; 10047 display: flex; 10048 z-index: -1; 10049 position: fixed; 10050 align-items: center; 10051 justify-content: center; 10052 background-color: rgba(0, 0, 0, 0.5); 10053 -webkit-tap-highlight-color: transparent; 10054 } 10055 10056 .MuiDialog-scrollPaper { 10057 display: flex; 10058 align-items: center; 10059 justify-content: center; 10060 } 10061 10062 .MuiDialog-container { 10063 height: 100%; 10064 outline: 0; 10065 } 10066 10067 .MuiPaper-elevation24 { 10068 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); 10069 } 10070 10071 .MuiDialog-paper { 10072 margin: 32px; 10073 position: relative; 10074 overflow-y: auto; 10075 } 10076 10077 .MuiDialog-paperScrollPaper { 10078 display: flex; 10079 max-height: calc(100% - 64px); 10080 flex-direction: column; 10081 } 10082 10083 .MuiDialog-paperWidthSm { 10084 max-width: 600px; 10085 } 10086 10087 #location-lock-dialog { 10088 top: 20%; 10089 left: 0; 10090 right: 0; 10091 width: 30%; 10092 margin: 0px auto; 10093 display: block; 10094 padding: 30px; 10095 z-index: 99999; 10096 position: fixed; 10097 font-size: 14px; 10098 background: rgb(0, 0, 0); 10099 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 10100 text-align: center; 10101 font-family: Roboto, Arial, sans-serif; 10102 line-height: 1; 10103 border-radius: 8px; 10104 -webkit-font-smoothing: subpixel-antialiased; 10105 } 10106 10107 .MuiButtonBase-root { 10108 color: inherit; 10109 border: 0; 10110 cursor: pointer; 10111 margin: 0; 10112 display: inline-flex; 10113 outline: 0; 10114 padding: 0; 10115 position: relative; 10116 align-items: center; 10117 user-select: none; 10118 border-radius: 0; 10119 vertical-align: middle; 10120 -moz-appearance: none; 10121 justify-content: center; 10122 text-decoration: none; 10123 background-color: transparent; 10124 -webkit-appearance: none; 10125 -webkit-tap-highlight-color: transparent; 10126 } 10127 10128 .MuiIconButton-root { 10129 flex: 0 0 auto; 10130 color: rgba(0, 0, 0, 0.54); 10131 padding: 12px; 10132 overflow: visible; 10133 font-size: 1.5rem; 10134 text-align: center; 10135 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 10136 border-radius: 50%; 10137 } 10138 10139 .MuiIconButton-label { 10140 width: 100%; 10141 display: flex; 10142 align-items: inherit; 10143 justify-content: inherit; 10144 } 10145 10146 .MuiSvgIcon-root { 10147 fill: currentColor; 10148 width: 1em; 10149 height: 1em; 10150 display: inline-block; 10151 font-size: 1.5rem; 10152 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 10153 flex-shrink: 0; 10154 user-select: none; 10155 } 10156 10157 .MuiTouchRipple-root { 10158 top: 0; 10159 left: 0; 10160 right: 0; 10161 bottom: 0; 10162 z-index: 0; 10163 overflow: hidden; 10164 position: absolute; 10165 border-radius: inherit; 10166 pointer-events: none; 10167 } 10168 10169 .jss36 { 10170 color: #222222; 10171 font-size: 24px; 10172 font-family: Roboto, Arial, sans-serif; 10173 font-weight: 500; 10174 } 10175 10176 .jss37 { 10177 color: #555555; 10178 padding: 10px 0px 0px; 10179 font-size: 14px; 10180 } 10181 10182 .MuiFormGroup-root { 10183 display: flex; 10184 flex-wrap: wrap; 10185 flex-direction: column; 10186 } 10187 10188 .MuiFormGroup-row { 10189 flex-direction: row; 10190 } 10191 10192 .jss63 { 10193 width: 85%; 10194 margin: 15px auto; 10195 display: flex; 10196 padding: 11px 0px 0px; 10197 justify-content: space-evenly; 10198 } 10199
10200 .MuiFormControlLabel-root { 10201 cursor: pointer; 10202 display: inline-flex; 10203 align-items: center; 10204 margin-left: -11px; 10205 margin-right: 16px; 10206 vertical-align: middle; 10207 -webkit-tap-highlight-color: transparent; 10208 } 10209 10210 .jss70 { 10211 margin: 0; 10212 } 10213 10214 .MuiButtonBase-root { 10215 color: inherit; 10216 border: 0; 10217 cursor: pointer; 10218 margin: 0; 10219 display: inline-flex; 10220 outline: 0; 10221 padding: 0; 10222 position: relative; 10223 align-items: center; 10224 user-select: none; 10225 border-radius: 0; 10226 vertical-align: middle; 10227 -moz-appearance: none; 10228 justify-content: center; 10229 text-decoration: none; 10230 background-color: transparent; 10231 -webkit-appearance: none; 10232 -webkit-tap-highlight-color: transparent; 10233 } 10234 10235 .MuiIconButton-root { 10236 flex: 0 0 auto; 10237 color: rgba(0, 0, 0, 0.54); 10238 padding: 12px; 10239 overflow: visible; 10240 font-size: 1.5rem; 10241 text-align: center; 10242 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 10243 border-radius: 50%; 10244 } 10245 10246 .MuiIconButton-colorSecondary { 10247 color: #f50057; 10248 } 10249 10250 .jss71 { 10251 padding: 9px; 10252 } 10253 10254 .MuiRadio-root { 10255 color: rgba(0, 0, 0, 0.54); 10256 } 10257 10258 .jss64 { 10259 padding: 2px; 10260 } 10261 10262 .MuiRadio-colorSecondary.Mui-checked { 10263 color: #f50057; 10264 } 10265 10266 .MuiIconButton-label { 10267 width: 100%; 10268 display: flex; 10269 align-items: inherit; 10270 justify-content: inherit; 10271 } 10272 10273 .MuiTypography-root { 10274 margin: 0; 10275 } 10276 10277 .MuiTypography-body1 { 10278 font-size: 18px; 10279 font-family: Roboto, sans-serif; 10280 font-weight: 400; 10281 line-height: 1.5; 10282 } 10283 10284 .location-popup_area-block__sp9Ws { 10285 display: -moz-box; 10286 display: flex; 10287 -moz-box-orient: vertical; 10288 -moz-box-direction: normal; 10289 flex-direction: column; 10290 -moz-box-pack: center; 10291 justify-content: center; 10292 position: relative; 10293 margin: 10px 10% 0; 10294 } 10295 10296 .location-popup_pin-search-box__3l5mJ { 10297 width: 100%; 10298 display: -moz-box; 10299 display: flex; 10300 -moz-box-align: center; 10301 align-items: center; 10302 } 10303 10304 .location-popup_place-icon-city__1XAX5, 10305 .location-popup_place-icon__jSG0Q { 10306 position: absolute; 10307 z-index: 999; 10308 } 10309 10310 .location-popup_place-icon__jSG0Q { 10311 color: #ffffff; 10312 padding-left: 8px; 10313 } 10314 10315 .location-popup_place-icon__jSG0Q svg { 10316 width: 18px; 10317 height: 18px; 10318 } 10319 10320 .location-popup_cancel-icon__FHujU { 10321 color: #fff; 10322 right: 10px; 10323 width: 16px; 10324 cursor: pointer; 10325 height: 16px; 10326 display: none; 10327 padding: 5px; 10328 position: absolute; 10329 background: #999; 10330 text-align: center; 10331 border-radius: 50%; 10332 } 10333 10334 .location-popup_pin-search-box__3l5mJ>div>select { 10335 /* -webkit-box-shadow: 0 0 10px #ffffff; 10336 box-shadow: 0 0 10px #ffffff; */ 10337 text-transform: capitalize; 10338 border: 1px solid #ffffff; 10339 color: #ffffff; 10340 width: 100%; 10341 margin: 0; 10342 display: -moz-box; 10343 display: flex;
10344 padding: 0 30px; 10345 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10346 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10347 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10348 font-size: 16px; 10349 border-radius: 4px; 10350 height: 44px; 10351 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 10352 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 10353 } 10354 10355 .MuiButtonBase-root { 10356 color: inherit; 10357 border: 0; 10358 cursor: pointer; 10359 margin: 0; 10360 display: inline-flex; 10361 outline: 0; 10362 padding: 0; 10363 position: relative; 10364 align-items: center; 10365 user-select: none; 10366 border-radius: 0; 10367 vertical-align: middle; 10368 -moz-appearance: none; 10369 justify-content: center; 10370 text-decoration: none; 10371 background-color: transparent; 10372 -webkit-appearance: none; 10373 -webkit-tap-highlight-color: transparent; 10374 } 10375 10376 .MuiButton-root { 10377 color: rgba(0, 0, 0, 0.87); 10378 padding: 6px 16px; 10379 font-size: 0.875rem; 10380 min-width: 64px; 10381 box-sizing: border-box; 10382 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; 10383 font-family: Roboto, sans-serif; 10384 font-weight: 500; 10385 line-height: 1.75; 10386 border-radius: 4px; 10387 text-transform: uppercase; 10388 } 10389 10390 .MuiButton-contained { 10391 color: rgba(0, 0, 0, 0.87); 10392 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); 10393 background-color: #e0e0e0; 10394 } 10395 10396 .MuiButtonBase-root.Mui-disabled { 10397 cursor: default; 10398 pointer-events: none; 10399 } 10400 10401 .MuiButton-label { 10402 width: 100%; 10403 display: inherit; 10404 align-items: inherit; 10405 justify-content: inherit; 10406 } 10407 10408 .cartButton_login_content__2j1f7 { 10409 display: -moz-box; 10410 display: flex; 10411 text-align: center; 10412 z-index: 9; 10413 font-size: 18px; 10414 font-weight: 500; 10415 color: #fff; 10416 } 10417 10418 .jss35 { 10419 top: 5px; 10420 right: 5px; 10421 padding: 4px; 10422 position: absolute; 10423 border-radius: 50%; 10424 } 10425 10426 .jss67 { 10427 cursor: pointer; 10428 font-size: 15px; 10429 line-height: 1.3; 10430 padding-left: 5px; 10431 } 10432 10433 .jss69 { 10434 color: #222222; 10435 } 10436 10437 .jss80 { 10438 color: #fff; 10439 width: 100%; 10440 height: 52px; 10441 padding: 11px 16px; 10442 font-size: 18px; 10443 min-width: 88px; 10444 min-height: 36px; 10445 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; 10446 font-weight: 500; 10447 line-weight: 1em; 10448 border-radius: 4px; 10449 text-transform: uppercase; 10450 background-color: #E87325; 10451 } 10452 10453 @media (min-width: 991px) { 10454 .cartButton_login_content__2j1f7 { 10455 font-weight: 500; 10456 } 10457 } 10458 10459 @media (max-width: 992px) { 10460 #location-lock-dialog { 10461 width: 100%; 10462 top: auto; 10463 bottom: 0; 10464 padding-left: 0; 10465 padding-right: 0; 10466 } 10467 10468 .MuiFormGroup-row { 10469 display: block 10470 } 10471 10472 .MuiIconButton-label input { 10473 margin: 0; 10474 } 10475 } 10476 </style> 10477 <div role="presentation" class="MuiDialog-root jss34" 10478 style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 10479 <div class="MuiBackdrop-root" aria-hidden="true" 10480 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 10481 <div tabindex="0" data-test="sentinelStart"></div> 10482 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" 10483 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 10484 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" 10485 role="dialog"> 10486 <div class="jss31 undefined" id="location-lock-dialog"> 10487 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" 10488 tabindex="0" type="button" aria-label="close">
10489 <span class="MuiIconButton-label"> 10490 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 10491 <path 10492 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"> 10493 </path> 10494 </svg> 10495 </span> 10496 <span class="MuiTouchRipple-root"></span> 10497 </button> 10498 <div> 10499 <div class="jss36">Select Delivery Location</div> 10500 <div class="jss37">Select a delivery location to see product availability</div> 10501 </div> 10502 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 10503 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 10504 <span 10505 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" 10506 aria-disabled="false"> 10507 <span class="MuiIconButton-label"> 10508 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" 10509 checked="" name="location"> 10510 <span class="jss41"></span> 10511 </span> 10512 <span class="MuiTouchRipple-root"></span> 10513 </span> 10514 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 10515 <span class="jss67 jss69">Jabodetabek</span> 10516 </span> 10517 </label> 10518 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 10519 <span 10520 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" 10521 aria-disabled="false"> 10522 <span class="MuiIconButton-label"> 10523 <input id="non-jabodetabek" class="jss49" type="radio" 10524 value="Outside Jabodetabek" name="location"> 10525 <span class="jss40"></span> 10526 </span> 10527 <span class="MuiTouchRipple-root"></span> 10528 </span> 10529 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 10530 <span class="jss67 jss68">Outside Jabodetabek</span> 10531 </span> 10532 </label> 10533 </div> 10534 <div> 10535 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 10536 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 10537 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 10538 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" 10539 aria-hidden="true" style="font-size:16px"> 10540 <path 10541 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"> 10542 </path> 10543 </svg> 10544 </div> 10545 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 10546 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 10547 </div> 10548 <div style="width: 100%;"> 10549 <select id="choose-location" class="form-control"> 10550 <option value="">Choose Location</option> 10551 <option value="jakarta">Jakarta</option> 10552 <option value="bogor">Bogor</option> 10553 <option value="depok">Depok</option> 10554 <option value="tangerang">Tangerang</option> 10555 <option value="bekasi">Bekasi</option> 10556 </select> 10557 </div> 10558 </div> 10559 </div> 10560 </div> 10561 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" 10562 type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" 10563 data-testid="location-lock-submit" 10564 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;" 10565 data-content="">
10566 <span class="MuiButton-label"> 10567 <span class=""></span> 10568 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" 10569 style="font-weight: 500;" data-content="">Continue Shopping</span> 10570 </span> 10571 </button> 10572 </div> 10573 </div> 10574 </div> 10575 <div tabindex="0" data-test="sentinelEnd"></div> 10576 </div> 10577 10578
10578<script> 10579 const jabodetabek = [ 10580 { 10581 "code": "jakarta", 10582 "city": "jakarta", 10583 "zip": [] 10584 }, 10585 { 10586 "code": "bogor", 10587 "city": "bogor", 10588 "zip": [] 10589 }, 10590 { 10591 "code": "depok", 10592 "city": "depok", 10593 "zip": [] 10594 }, 10595 { 10596 "code": "tangerang", 10597 "city": "tangerang", 10598 "zip": [] 10599 }, 10600 { 10601 "code": "bekasi", 10602 "city": "bekasi", 10603 "zip": [] 10604 } 10605 ] 10606 let cityNonJabodetabek = [ 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 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 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 "pengiriman_aceh", 11781 11782 11783 11784 11785 11786 "pengiriman_ambon", 11787 11788 11789 11790 11791 11792 "pengiriman_atambua", 11793 11794 11795 11796 11797 11798 "pengiriman_badung", 11799 11800 11801 11802 11803 11804 "pengiriman_bali", 11805 11806 11807 11808 11809 11810 "pengiriman_balikpapan", 11811 11812 11813 11814 11815 11816 "pengiriman_bandar lampung", 11817 11818 11819 11820 11821 11822 "pengiriman_bandung", 11823 11824 11825 11826 11827 11828 "pengiriman_bandung barat", 11829 11830 11831 11832 11833 11834 "pengiriman_banjarmasin", 11835 11836 11837 11838 11839 11840 "pengiriman_banyumas", 11841 11842 11843 11844 11845 11846 "pengiriman_banyuwangi", 11847 11848 11849 11850 11851 11852 "pengiriman_batam", 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 "pengiriman_biak", 11863 11864 11865 11866 11867 11868 "pengiriman_binjai", 11869 11870 11871 11872 11873 11874 "pengiriman_blitar", 11875 11876 11877 11878 11879 11880 "pengiriman_blora", 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 "pengiriman_bojonegoro", 11891 11892 11893 11894 11895 11896 "pengiriman_boyolali", 11897 11898 11899 11900 11901 11902 "pengiriman_bukittinggi", 11903 11904 11905 11906 11907 11908 "pengiriman_buleleng", 11909 11910 11911 11912 11913 11914 "pengiriman_ciamis", 11915 11916 11917 11918 11919 11920 "pengiriman_cianjur", 11921 11922 11923 11924 11925 11926 "pengiriman_cibinong", 11927 11928 11929 11930 11931 11932 "pengiriman_cikarang", 11933 11934 11935 11936 11937 11938 "pengiriman_cikupa", 11939 11940 11941 11942 11943 11944 "pengiriman_cilacap", 11945 11946 11947 11948 11949 11950 "pengiriman_cileunyi", 11951 11952 11953 11954 11955 11956 "pengiriman_cimahi", 11957 11958 11959 11960 11961 11962 "pengiriman_cirebon", 11963 11964 11965 11966 11967 11968 "pengiriman_ciwidey", 11969 11970 11971 11972 11973 11974 "pengiriman_deli serdang", 11975 11976 11977 11978 11979 11980 "pengiriman_demak", 11981 11982 11983 11984 11985 11986 "pengiriman_denpasar", 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 "pengiriman_garut", 11997 11998 11999 12000 12001 12002 "pengiriman_gianyar", 12003 12004 12005 12006 12007 12008 "pengiriman_gresik", 12009 12010 12011 12012 12013 12014 "pengiriman_gunung kidul", 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 "pengiriman_jambi", 12025 12026 12027 12028 12029 12030 "pengiriman_jayapura", 12031 12032 12033 12034 12035 12036 "pengiriman_jember", 12037 12038 12039 12040 12041 12042 "pengiriman_jepara", 12043 12044 12045 12046 12047 12048 "pengiriman_jombang", 12049 12050 12051 12052 12053 12054 "pengiriman_karanganyar", 12055 12056 12057 12058 12059 12060 "pengiriman_karawang", 12061 12062 12063 12064 12065 12066 "pengiriman_karo", 12067 12068 12069 12070 12071 12072 "pengiriman_kebumen", 12073 12074 12075 12076 12077 12078 "pengiriman_kediri", 12079 12080 12081 12082 12083 12084 "pengiriman_keerom", 12085 12086 12087 12088 12089 12090 "pengiriman_kendal", 12091 12092 12093 12094 12095 12096 "pengiriman_klaten", 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 "pengiriman_kudus", 12107 12108 12109 12110 12111 12112 "pengiriman_kupang", 12113 12114 12115 12116 12117 12118 "pengiriman_lainnya", 12119 12120 12121 12122 12123 12124 "pengiriman_lamongan", 12125 12126 12127 12128 12129 12130 "pengiriman_lampung", 12131 12132 12133 12134 12135 12136 "pengiriman_lampung barat", 12137 12138 12139 12140 12141 12142 "pengiriman_lembang", 12143 12144 12145 12146 12147 12148 "pengiriman_lombok", 12149 12150 12151 12152 12153 12154 "pengiriman_lumajang", 12155 12156 12157 12158 12159 12160 "pengiriman_madiun", 12161 12162 12163 12164 12165 12166 "pengiriman_magelang", 12167 12168 12169 12170 12171 12172 "pengiriman_majalengka", 12173 12174 12175 12176 12177 12178 "pengiriman_makassar", 12179 12180 12181 12182 12183 12184 "pengiriman_malang", 12185 12186 12187 12188 12189 12190 "pengiriman_manado", 12191 12192 12193 12194 12195 12196 "pengiriman_medan", 12197 12198 12199 12200 12201 12202 "pengiriman_mengwi", 12203 12204 12205 12206 12207 12208 "pengiriman_mojokerto", 12209 12210 12211 12212 12213 12214 "pengiriman_nganjuk", 12215 12216 12217 12218 12219 12220 "pengiriman_ngawi", 12221 12222 12223 12224 12225 12226 "pengiriman_padang", 12227 12228 12229 12230 12231 12232 "pengiriman_palembang", 12233 12234 12235 12236 12237 12238 "pengiriman_pasuruan", 12239 12240 12241 12242 12243 12244 "pengiriman_pati", 12245 12246 12247 12248 12249 12250 "pengiriman_pekalongan", 12251 12252 12253 12254 12255 12256 "pengiriman_pekanbaru", 12257 12258 12259 12260 12261 12262 "pengiriman_pemalang", 12263 12264 12265 12266 12267 12268 "pengiriman_ponorogo", 12269 12270 12271 12272 12273 12274 "pengiriman_pontianak", 12275 12276 12277 12278 12279 12280 "pengiriman_probolinggo", 12281 12282 12283 12284 12285 12286 "pengiriman_purbalingga", 12287 12288 12289 12290 12291 12292 "pengiriman_purwakarta", 12293 12294 12295 12296 12297 12298 "pengiriman_purwokerto", 12299 12300 12301 12302 12303 12304 "pengiriman_rembang", 12305 12306 12307 12308 12309 12310 "pengiriman_riau", 12311 12312 12313 12314 12315 12316 "pengiriman_salatiga", 12317 12318 12319 12320 12321 12322 "pengiriman_samarinda", 12323 12324 12325 12326 12327 12328 "pengiriman_semarang", 12329 12330 12331 12332 12333 12334 "pengiriman_sentani", 12335 12336 12337 12338 12339 12340 "pengiriman_serang", 12341 12342 12343 12344 12345 12346 "pengiriman_sidoarjo", 12347 12348 12349 12350 12351 12352 "pengiriman_singkawang", 12353 12354 12355 12356 12357 12358 "pengiriman_sragen", 12359 12360 12361 12362 12363 12364 "pengiriman_subang", 12365 12366 12367 12368 12369 12370 "pengiriman_sukabumi", 12371 12372 12373 12374 12375 12376 "pengiriman_sumbawa", 12377 12378 12379 12380 12381 12382 "pengiriman_surabaya", 12383 12384 12385 12386 12387 12388 "pengiriman_surakarta solo", 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 "pengiriman_tasikmalaya", 12399 12400 12401 12402 12403 12404 "pengiriman_tegal", 12405 12406 12407 12408 12409 12410 "pengiriman_timika", 12411 12412 12413 12414 12415 12416 "pengiriman_wamena", 12417 12418 12419 12420 12421 12422 "pengiriman_wiyung", 12423 12424 12425 12426 12427 12428 "pengiriman_wonokromo", 12429 12430 12431 12432 12433 12434 "pengiriman_yogyakarta", 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 ] 13045 console.log(cityNonJabodetabek) 13046 let non_jabodetabek = [] 13047 for (var i = 0; i < cityNonJabodetabek.length; i++) { 13048 const obj = { 13049 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ', '-'), 13050 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ', '-'), 13051 "zip": [] 13052 } 13053 non_jabodetabek.push(obj) 13054 } 13055 let current_location = getCookie("location_delivery") 13056 $("[name=location]").change(function () { 13057 let v = $(this).val() 13058 let option = [] 13059 if (v == 'Jabodetabek') { 13060 for (var i = 0; i < jabodetabek.length; i++) { 13061 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 13062 option.push(jabodetabekHtml) 13063 } 13064 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 13065 } else { 13066 for (var i = 0; i < non_jabodetabek.length; i++) { 13067 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 13068 option.push(nonjabodetabekHtml) 13069 } 13070 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 13071 } 13072 }) 13073 13074 $("#location-lock-submit").click(function (e) { 13075 let select = $("#choose-location") 13076 let value = select.val().toLowerCase() 13077 console.log(value) 13078 if (select.val() == "") { 13079 return alert("Choose Your Location") 13080 e.preventDefault() 13081 }
13082 setCookie("location_delivery", value, 1000000); 13083 13084 location.reload(); 13085 13086 }) 13087 13088 $("#close-popup-delivery").click(function () { 13089 $(".MuiDialog-root").hide() 13090 if (!current_location) { 13091 setCookie("location_delivery", "jakarta", 1000000); 13092 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 13093 } 13094 }) 13095 $("#loc_delivery, #loc_delivery_mobile").click(function () { 13096 $(".MuiDialog-root").show() 13097 }) 13098 13099 13100 if (!current_location) { 13101 13102 } else { 13103 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 13104 console.log(current_location) 13105 $("#choose-location").each(function () { 13106 if (current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi') { 13107 $("#jabodetabek").trigger("click") 13108 } else { 13109 $("#non-jabodetabek").trigger("click") 13110 } 13111 $("#choose-location").find("option[value=" + current_location + "]").attr("selected", "selected") 13112 }) 13113 } 13114 13115 // 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'){ 13116 // $("#timeMalam").attr("disabled", false) 13117 // } else { 13118 // $("#timeMalam").attr("disabled", true) 13119 // } 13120 13121 if (current_location && current_location != 'jakarta') { 13122 $("#self-pickup").attr("disabled", true) 13123 } 13124 13125 function setCookie(name, value, days) { 13126 var expires = ""; 13127 if (days) { 13128 var date = new Date(); 13129 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 13130 expires = "; expires=" + date.toUTCString(); 13131 } 13132 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 13133 } 13134 function getCookie(name) { 13135 var nameEQ = name + "="; 13136 var ca = document.cookie.split(';'); 13137 for (var i = 0; i < ca.length; i++) { 13138 var c = ca[i]; 13139 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 13140 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 13141 } 13142 return null; 13143 } 13144 </script>
13144 13145 <!-- One Tap --> 13146
13146<script> 13147 console.log("Outerbloom..."); 13148 </script>
13148 13149 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 13197
13197<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
13197 13198
13198<script> 13199 const widgetConfig = { 13200 id: "clz7897za002cz7otleaz0d3d", 13201 showQuickResponse: false, 13202 quickResponsesData: [], 13203 themeColor: "#ffffff", 13204 widgetText: "", 13205 radiusType: "circle", 13206 widgetIconType: "whatsapp", 13207 position: "right", 13208 storeLogo: "", 13209 storeName: "Outerbloom", 13210 storeDescription: "", 13211 size: "small", 13212 showCard: false, 13213 widgetColorType: "solid", 13214 widgetColor1: "#008069", 13215 widgetColor2: "#008069", 13216 social: { 13217 socialOrders: ["instagram", "tiktok", "facebook", "x", "youtube", "linkedin", "email"], 13218 values: { 13219 instagram: { 13220 enabled: false, 13221 value: "", 13222 }, 13223 facebook: { 13224 enabled: false, 13225 value: "", 13226 }, 13227 email: { 13228 enabled: false, 13229 value: "", 13230 }, 13231 x: { 13232 enabled: false, 13233 value: "", 13234 }, 13235 tiktok: { 13236 enabled: false, 13237 value: "", 13238 }, 13239 linkedin: { 13240 enabled: false, 13241 value: "", 13242 }, 13243 youtube: { 13244 enabled: false, 13245 value: "", 13246 }, 13247 }, 13248 }, 13249 }; 13250 13251 function initializeWidget() { 13252 if (typeof BBBWidget !== 'undefined') { 13253 BBBWidget.init(widgetConfig); 13254 } else { 13255 setTimeout(initializeWidget, 100); 13256 } 13257 } 13258 13259 initializeWidget();</script>
13259 13260 13261 13262 </div> 13263 <div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 13264 13265 13266 <div style="position: fixed; bottom: 0; right: 0"></div> 13267 13268
13268<script> 13269 console.info("bitlogin extension version: v2.5.7"); 13270 13271 const googleScript = document.createElement("script"); 13272 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 13273 document.head.append(googleScript); 13274 13275 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 13276 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 13277 13278 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" } }; 13279 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": "amzn1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d", "appleTeamId": null, "applePrivateKey": null, "usePersonalOauth": false, "position": null }]; 13280 const redirectUrl = appearance.redirectLink; 13281 13282 let locationCacheSet = false; 13283 let errorLocation = false; 13284 let oneTapSet = false; 13285 13286 let bitloginCache = { 13287 appearance: appearance, 13288 config: config 13289 }; 13290 13291 let isInitializing = false;
13292 const queue = []; 13293 13294 // Add CSS for the popup 13295 const popupStyles = document.createElement('style'); 13296 popupStyles.textContent = ` 13297 /* Styles for login popup */ 13298 .bitlogin-popup-overlay { 13299 position: fixed; 13300 top: 0; 13301 left: 0; 13302 width: 100%; 13303 height: 100%; 13304 background: rgba(0, 0, 0, 0.45); 13305 backdrop-filter: blur(4px); 13306 display: flex; 13307 align-items: center; 13308 justify-content: center; 13309 opacity: 0; 13310 transition: opacity 0.3s ease-in-out; 13311 z-index: 999999; 13312 } 13313 13314 .bitlogin-popup-overlay.visible { 13315 opacity: 1; 13316 } 13317 13318 .bitlogin-popup { 13319 background: #FFFFFF; 13320 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 13321 border-radius: 16px; 13322 width: 100%; 13323 max-width: 560px; 13324 display: flex; 13325 overflow: hidden; 13326 position: relative; 13327 opacity: 0; 13328 transform: translateY(20px) scale(0.98); 13329 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 13330 } 13331 13332 .bitlogin-popup.visible { 13333 opacity: 1; 13334 transform: translateY(0) scale(1); 13335 } 13336 13337 .bitlogin-popup-with-image { 13338 max-width: 640px; 13339 } 13340 13341 .bitlogin-popup-right-image { 13342 flex-direction: row-reverse; 13343 } 13344 13345 .bitlogin-popup-image { 13346 object-fit: cover; 13347 width: 50%; 13348 height: auto; 13349 } 13350 13351 .bitlogin-popup-content { 13352 padding: 32px; 13353 position: relative; 13354 width: 50%; 13355 } 13356 13357 .bitlogin-popup-close { 13358 position: absolute; 13359 top: 16px; 13360 right: 16px; 13361 background: white; 13362 border: none; 13363 width: 30px; 13364 height: 30px; 13365 display: flex; 13366 align-items: center; 13367 justify-content: center; 13368 cursor: pointer; 13369 transition: background-color 0.2s; 13370 color: inherit; 13371 padding: 0; 13372 } 13373 13374 .bitlogin-popup-close:hover { 13375 background-color: #e5e5e5; 13376 } 13377 13378 .bitlogin-popup-buttons { 13379 display: flex; 13380 flex-direction: column; 13381 gap: 12px; 13382 margin-top: 24px; 13383 } 13384 13385 /* Button styles within popup - override width for popup buttons */ 13386 .bitlogin-popup-buttons #google-login, 13387 .bitlogin-popup-buttons #facebook-login, 13388 .bitlogin-popup-buttons #apple-login, 13389 .bitlogin-popup-buttons #whatsapp-login, 13390 .bitlogin-popup-buttons #microsoft-login, 13391 .bitlogin-popup-buttons #twitter-login, 13392 .bitlogin-popup-buttons #amazon-login, 13393 .bitlogin-popup-buttons #instagram-login, 13394 .bitlogin-popup-buttons #magic-link-login, 13395 .bitlogin-popup-buttons #mobile-app-login { 13396 width: 100% !important; 13397 font-family: inherit !important; 13398 } 13399 13400 .bitlogin-popup-footer { 13401 margin-top: 32px; 13402 text-align: center; 13403 font-size: 14px; 13404 opacity: 0.6; 13405 } 13406 13407 /* Modern Typography */ 13408 .bitlogin-popup h2 { 13409 margin-top: 12px; 13410 font-size: 21px !important; 13411 line-height: 1.2 !important; 13412 font-weight: 700 !important; 13413 letter-spacing: -0.02em !important; 13414 margin-bottom: 16px !important; 13415 } 13416 13417 .bitlogin-popup-header { 13418 position: relative; 13419 margin-bottom: 24px; 13420 } 13421 13422 /* Modern gradient accent */ 13423 .bitlogin-popup-content > div { 13424 font-size: 16px !important; 13425 line-height: 1.2 !important; 13426 opacity: 0.85 !important; 13427 } 13428 13429 /* Enhanced button interactions */ 13430 .bitlogin-popup-buttons button { 13431 position: relative; 13432 overflow: hidden; 13433 } 13434 13435 @keyframes ripple { 13436 0% { 13437 transform: scale(0, 0); 13438 opacity: 0.5; 13439 } 13440 100% { 13441 transform: scale(100, 100); 13442 opacity: 0; 13443 } 13444 } 13445 13446 /* Responsive adjustments */ 13447 @media (max-width: 640px) { 13448 .bitlogin-popup { 13449 max-width: 90%; 13450 width: 90%; 13451 margin: 0 16px; 13452 } 13453 13454 .bitlogin-popup-with-image { 13455 flex-direction: column !important; 13456 } 13457 13458 .bitlogin-popup-image { 13459 width: 100%; 13460 height: 180px; 13461 } 13462 13463 .bitlogin-popup-content { 13464 padding: 24px; 13465 } 13466 13467 .bitlogin-popup h2 { 13468 font-size: 24px !important; 13469 } 13470 } 13471 `; 13472 13473 document.head.appendChild(popupStyles); 13474 13475 // Add fonts link for different font options 13476 const fontsLink = document.createElement('link'); 13477 fontsLink.rel = 'stylesheet'; 13478 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'; 13479 document.head.appendChild(fontsLink); 13480 13481 (async () => { 13482 try { 13483 let host = window.location.host; 13484 if (host === "admin.shopify.com") { 13485 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 13486 } 13487 13488 const urlSearchParams = new URLSearchParams(window.location.search); 13489 const checkoutUrl = urlSearchParams.get("checkout_url"); 13490 13491 async function init({ inputRef, index }) { 13492 if (isInitializing) { 13493 queue.push(() => init({ inputRef, index })); 13494 return; 13495 } 13496 13497 isInitializing = true; 13498 13499 try { 13500 let bitLoginSectionRoot = document.querySelector( 13501 `.bitlogin-root[data-index="${index}"]` 13502 ); 13503 13504 const formRef = inputRef?.closest( 13505 "form:not([action='/account/recover'])" 13506 ); 13507 13508 if (formRef && !bitLoginSectionRoot) { 13509 await getLocation(); 13510 13511 bitLoginSectionRoot = document.createElement(`div`); 13512 13513 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 13514 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 13515 13516 updateAppearance({ 13517 formRef, 13518 rootRef: bitLoginSectionRoot, 13519 host, 13520 }); 13521 } 13522 } catch (err) { 13523 console.error(`error while initiating bitlogin extensions`, err); 13524 } finally { 13525 // Release the lock 13526 isInitializing = false;
13527 13528 // Check if there are pending items in the queue 13529 if (queue.length > 0) { 13530 // Process the next function in the queue 13531 const nextFunction = queue.shift(); 13532 nextFunction(); 13533 } 13534 } 13535 } 13536 13537 function initAll() { 13538 return new Promise((resolve, reject) => { 13539 setTimeout(async () => { 13540 const inputRefs = document.querySelectorAll( 13541 'input[name="customer[email]"]' 13542 ); 13543 13544 for (let i = 0; i < inputRefs.length; i++) { 13545 const currentInputRef = inputRefs[i]; 13546 const isVisible = isElementVisible(currentInputRef); 13547 13548 if (isVisible) { 13549 await init({ inputRef: currentInputRef, index: i }); 13550 } 13551 } 13552 13553 resolve("ok"); 13554 }, 100); 13555 }); 13556 } 13557 13558 const observer = new MutationObserver((mutationsList) => { 13559 for (let mutation of mutationsList) { 13560 initAll(); 13561 } 13562 }); 13563 13564 observer.observe(document.body, { 13565 childList: true, 13566 subtree: true, 13567 attributes: true, 13568 }); 13569 13570 initAll(); 13571 13572 if (appearance.googleOneTap) { 13573 setupOneTap({ host, checkoutUrl }); 13574 } 13575 13576 // Initialize popup 13577 await initPopup(host); 13578 } catch (error) { 13579 console.error("Error initializing BitLogin:", error); 13580 } 13581 })(); 13582 13583 async function initPopup(host) { 13584 // Check if user is already logged in using Liquid checks properly 13585 const isLoggedIn = false || 13586 document.querySelector('.customer-logout-link') || 13587 document.querySelector('.account-link') || 13588 window.location.pathname.includes('/account'); 13589 13590 if (isLoggedIn) { 13591 return; // User is logged in, don't show popup 13592 } 13593 13594 try { 13595 // Fetch the popup configuration 13596 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 13597 .then(res => res.json()) 13598 .catch(err => { 13599 console.error('Error fetching popup configuration:', err); 13600 return null; 13601 }); 13602 13603 if (!popupConfig || !popupConfig.enabled) { 13604 return; // Don't show popup if disabled or config not found 13605 } 13606 13607 // Create popup after 10 seconds 13608 setTimeout(() => { 13609 // Check if user is still on the page and still not logged in 13610 if (document.visibilityState === 'visible') { 13611 // Additional check in case user logged in during the 10 second wait 13612 const currentlyLoggedIn = false || 13613 document.querySelector('.customer-logout-link') || 13614 document.querySelector('.account-link'); 13615 13616 if (!currentlyLoggedIn) { 13617 createLoginPopup(popupConfig, host); 13618 } 13619 } 13620 }, 10000); 13621 } catch (error) { 13622 console.error('Error initializing popup:', error); 13623 } 13624 } 13625 13626 function createLoginPopup(popupConfig, host) { 13627 // Font mapping 13628 const fontFamilyMap = { 13629 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 13630 montserrat: 'Montserrat, sans-serif', 13631 roboto: 'Roboto, sans-serif',
13632 open_sans: 'Open Sans, sans-serif', 13633 noto_sans: 'Noto Sans, sans-serif', 13634 lato: 'Lato, sans-serif', 13635 poppins: 'Poppins, sans-serif', 13636 quicksand: 'Quicksand, sans-serif', 13637 raleway: 'Raleway, sans-serif', 13638 pt_sans: 'PT Sans, sans-serif', 13639 oswald: 'Oswald, sans-serif', 13640 }; 13641 13642 // Create overlay 13643 const overlay = document.createElement('div'); 13644 overlay.className = 'bitlogin-popup-overlay'; 13645 13646 // Create popup container with appropriate styling 13647 const popup = document.createElement('div'); 13648 popup.className = 'bitlogin-popup'; 13649 13650 if (popupConfig.layout === 'default') { 13651 popup.style.maxWidth = '400px'; 13652 } 13653 13654 // Function to close the popup 13655 const closePopup = () => { 13656 overlay.classList.remove('visible'); 13657 popup.classList.remove('visible'); 13658 setTimeout(() => { 13659 if (document.body.contains(overlay)) { 13660 document.body.removeChild(overlay); 13661 } 13662 }, 300); 13663 }; 13664 13665 // Add click handler to the overlay to close when clicking outside 13666 overlay.addEventListener('click', (event) => { 13667 // Close only if clicking directly on the overlay, not its children 13668 if (event.target === overlay) { 13669 closePopup(); 13670 } 13671 }); 13672 13673 // Add escape key handler to close popup 13674 document.addEventListener('keydown', (event) => { 13675 if (event.key === 'Escape' && document.body.contains(overlay)) { 13676 closePopup(); 13677 } 13678 }); 13679 13680 // Create layout with image if specified 13681 let contentWrapper; 13682 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 13683 popup.classList.add('bitlogin-popup-with-image'); 13684 13685 if (popupConfig.layout === 'right') { 13686 popup.classList.add('bitlogin-popup-right-image'); 13687 } 13688 13689 // Add image 13690 const image = document.createElement('img'); 13691 image.className = 'bitlogin-popup-image'; 13692 image.src = popupConfig.popupImage; 13693 image.alt = 'Login'; 13694 image.loading = 'lazy'; 13695 popup.appendChild(image); 13696 13697 // Create content container 13698 contentWrapper = document.createElement('div'); 13699 contentWrapper.className = 'bitlogin-popup-content'; 13700 13701 if (popupConfig.layout === 'right') { 13702 const closeButton = document.createElement('button'); 13703 closeButton.className = 'bitlogin-popup-close'; 13704 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="img/logotajir.webp"> 13705 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13706 </svg>`; 13707 closeButton.setAttribute('aria-label', 'Close'); 13708 closeButton.onclick = closePopup; 13709 13710 popup.appendChild(closeButton); 13711 } 13712 } else { 13713 contentWrapper = document.createElement('div'); 13714 contentWrapper.className = 'bitlogin-popup-content'; 13715 contentWrapper.style.width = '100%'; 13716 } 13717 13718 // Set background style 13719 if (popupConfig.backgroundTheme === 'gradient') { 13720 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 13721 } else { 13722 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 13723 } 13724 13725 // Apply font family 13726 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 13727 13728 if (popupConfig.layout !== 'right') { 13729 const closeButton = document.createElement('button'); 13730 closeButton.className = 'bitlogin-popup-close'; 13731 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="img/logotajir.webp"> 13732 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13733 </svg>`; 13734 closeButton.setAttribute('aria-label', 'Close'); 13735 closeButton.onclick = closePopup; 13736 13737 contentWrapper.appendChild(closeButton); 13738 } 13739 13740 // Add heading with subtle animation effect 13741 const header = document.createElement('div'); 13742 header.className = 'bitlogin-popup-header'; 13743 13744 const heading = document.createElement('h2'); 13745 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
13745its'; 13746 heading.style.color = popupConfig.fontColor; 13747 header.appendChild(heading); 13748 13749 // Add body text with improved formatting 13750 const bodyText = document.createElement('div'); 13751 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 13752 bodyText.style.color = popupConfig.fontColor; 13753 header.appendChild(bodyText); 13754 13755 contentWrapper.appendChild(header); 13756 13757 // Create buttons container with modern styling 13758 const buttonsContainer = document.createElement('div'); 13759 buttonsContainer.className = 'bitlogin-popup-buttons'; 13760 13761 // Add social buttons 13762 const providerLabels = { 13763 'GOOGLE': 'Continue with Google', 13764 'FACEBOOK': 'Continue with Facebook', 13765 'APPLE': 'Continue with Apple', 13766 'WHATSAPP': 'Continue with WhatsApp', 13767 'MAGIC_LINK': 'Continue with Email', 13768 }; 13769 13770 // Add first login provider button 13771 if (popupConfig.loginProvider1 !== 'NONE') { 13772 const buttonConfig = { 13773 theme: popupConfig.colorScheme || 'match', 13774 customColor: popupConfig.textColor, 13775 format: 'contentFlex', 13776 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 13777 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 13778 style: popupConfig.style || 'rounded', 13779 size: popupConfig.size || 'medium', 13780 colorScheme: popupConfig.colorScheme || 'match', 13781 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 13782 textColor: popupConfig.textColor || '#FFFFFF', 13783 outlineColor: popupConfig.outlineColor || '#3B82F6', 13784 host: host 13785 }; 13786 13787 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 13788 13789 // Handle click event - this overrides the default click handler in createSocialLoginButton 13790 button1.onclick = () => { 13791 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 13792 closePopup(); 13793 }; 13794 13795 buttonsContainer.appendChild(button1); 13796 } 13797 13798 // Add second login provider button if enabled 13799 if (popupConfig.loginProvider2 !== 'NONE') { 13800 const buttonConfig = { 13801 theme: popupConfig.colorScheme || 'match', 13802 customColor: popupConfig.textColor, 13803 format: 'contentFlex', 13804 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 13805 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 13806 style: popupConfig.style || 'rounded', 13807 size: popupConfig.size || 'medium', 13808 colorScheme: popupConfig.colorScheme || 'match', 13809 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 13810 textColor: popupConfig.textColor || '#FFFFFF', 13811 outlineColor: popupConfig.outlineColor || '#3B82F6', 13812 host: host 13813 }; 13814 13815 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 13816 13817 // Handle click event - this overrides the default click handler in createSocialLoginButton 13818 button2.onclick = () => { 13819 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 13820 closePopup(); 13821 }; 13822 13823 buttonsContainer.appendChild(button2); 13824 } 13825 13826 contentWrapper.appendChild(buttonsContainer); 13827 13828 // Append content to popup 13829 popup.appendChild(contentWrapper); 13830 13831 // Append popup to overlay
13832 overlay.appendChild(popup); 13833 13834 // Append overlay to body 13835 document.body.appendChild(overlay); 13836 13837 // Trigger animation with slight delay for better perceived performance 13838 setTimeout(() => { 13839 overlay.classList.add('visible'); 13840 setTimeout(() => { 13841 popup.classList.add('visible'); 13842 }, 50); 13843 }, 10); 13844 } 13845 13846 window.addEventListener("load", () => { 13847 window.addEventListener("message", (event) => { 13848 const receivedData = event.data; 13849 13850 if (receivedData.type === "authorize") { 13851 post( 13852 JSON.parse( 13853 JSON.stringify({ 13854 "customer[email]": receivedData.email, 13855 "customer[password]": receivedData.password, 13856 form_type: "customer_login", 13857 utf8: "â", 13858 return_url: redirectUrl, 13859 }) 13860 ) 13861 ); 13862 } else if (receivedData.type === "rejected") { 13863 if (receivedData.reason === "customer_account_disabled") { 13864 showAlert( 13865 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 13866 ); 13867 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 13868 showAlert( 13869 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 13870 ); 13871 } else if (receivedData.reason === "customer_exist_email_not_set") { 13872 showAlert( 13873 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 13874 ); 13875 } 13876 } 13877 13878 if (receivedData.type === "customer_authenticated") { 13879 // Dispatch a custom event that merchants can listen for to implement their custom logic 13880 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 13881 detail: { 13882 provider: receivedData.provider, 13883 customer: receivedData.customer, 13884 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 13885 } 13886 }); 13887 13888 // Dispatch the event on the window object so merchants can listen for it 13889 window.dispatchEvent(customerAuthEvent); 13890 13891 } 13892 }); 13893 }); 13894 13895 // Reusable functions for social login buttons 13896 function createSocialLoginButton(provider, config = {}) { 13897 const { 13898 theme = 'match', 13899 customColor = null, 13900 format = 'contentFlex', 13901 buttonText = null, 13902 hasShadow = true, 13903 style = 'rounded', 13904 size = 'medium', 13905 colorScheme = 'match', 13906 backgroundColor = '#3B82F6', 13907 textColor = '#FFFFFF', 13908 outlineColor = '#3B82F6', 13909 rootRef = null, 13910 host = null 13911 } = config; 13912 13913 // Create button element with appropriate ID and attributes 13914 const button = document.createElement('button'); 13915 button.id = `${provider.toLowerCase()}-login`; 13916 button.type = 'button'; 13917 13918 // Set the inner SVG based on provider 13919 switch (provider.toUpperCase()) { 13920 case 'GOOGLE': 13921 button.innerHTML = googleLoginIcon(theme, customColor); 13922 break; 13923 case 'FACEBOOK': 13924 button.innerHTML = facebookLoginIcon(theme, customColor); 13925 break; 13926 case 'APPLE': 13927 button.innerHTML = appleLoginIcon(theme, customColor); 13928 break; 13929 case 'WHATSAPP': 13930 button.innerHTML = whatsappLoginIcon(theme, customColor); 13931 break; 13932 case 'MICROSOFT': 13933 button.innerHTML = microsoftLoginIcon(theme, customColor); 13934 break; 13935 case 'TWITTER': 13936 button.innerHTML = twitterLoginIcon(theme, customColor); 13937 break; 13938 case 'AMAZON': 13939 button.innerHTML = amazonLoginIcon(theme, customColor); 13940 break; 13941 case 'INSTAGRAM': 13942 button.innerHTML = instagramLoginIcon(theme, customColor); 13943 break; 13944 case 'MAGIC_LINK': 13945 button.innerHTML = magicLinkLoginIcon(theme, customColor); 13946 break; 13947 case 'MOBILE_APP':
13948 button.innerHTML = mobileAppLoginIcon(theme, customColor); 13949 break; 13950 case 'LINKEDIN': 13951 button.innerHTML = linkedinLoginIcon(theme, customColor); 13952 break; 13953 } 13954 13955 // Add text if format isn't icon-only and buttonText is provided 13956 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 13957 button.innerHTML += `<p>${buttonText}</p>`; 13958 } 13959 13960 // Apply styling 13961 // Shadow 13962 if (hasShadow) { 13963 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 13964 button.style["box-shadow"] = shadowProperties; 13965 } 13966 13967 // Border radius 13968 const radiusProperties = 13969 style === "rounded" 13970 ? "8px" 13971 : style === "square" 13972 ? "0px" 13973 : style === "fullRounded" 13974 ? format === "wrapperFlexContainerOnlyLogo" 13975 ? "50%" 13976 : "50px" 13977 : undefined; 13978 button.style["border-radius"] = radiusProperties; 13979 13980 // Size 13981 const sizeProperties = 13982 size === "medium" 13983 ? "12px" 13984 : size === "small" 13985 ? "8px" 13986 : size === "large" 13987 ? "16px" 13988 : "8px"; 13989 13990 button.style["padding-block"] = sizeProperties; 13991 13992 // Format styling 13993 if (format) { 13994 if ( 13995 format === "contentFlexReverse" || 13996 format === "contentFlexCenterReverse" 13997 ) { 13998 const flexDir = `row-reverse`; 13999 button.style["flex-direction"] = flexDir; 14000 } 14001 14002 if ( 14003 format === "contentFlexCenter" || 14004 format === "contentFlexCenterReverse" 14005 ) { 14006 const justifyContent = `center`; 14007 button.style["justify-content"] = justifyContent; 14008 } else if ( 14009 format === "contentFlex" || 14010 format === "contentFlexReverse" 14011 ) { 14012 const buttonTextElement = button.querySelector("p"); 14013 if (buttonTextElement) { 14014 buttonTextElement.style["flex-grow"] = 1; 14015 buttonTextElement.style["text-align"] = "center"; 14016 } 14017 } 14018 14019 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 14020 rootRef.style["flex-direction"] = "row"; 14021 rootRef.style["gap"] = "8px"; 14022 rootRef.style["display"] = "flex"; 14023 rootRef.style["flex-wrap"] = "wrap"; 14024 14025 const sizeMapping = { 14026 small: "52px", 14027 medium: "62px", 14028 large: "72px", 14029 }; 14030 const buttonSize = sizeMapping[size] || "52px"; 14031 14032 button.style["margin"] = 0; 14033 button.style["width"] = buttonSize; 14034 button.style["height"] = buttonSize; 14035 button.style["display"] = "flex"; 14036 button.style["align-items"] = "center"; 14037 button.style["justify-content"] = "center"; 14038 14039 const svgElement = button.querySelector("svg"); 14040 if (svgElement) { 14041 svgElement.style["flex"] = "none"; 14042 } 14043 } 14044 } 14045 14046 // Color scheme styling 14047 if (colorScheme === "black") { 14048 button.classList.add("scheme-black"); 14049 } else if (colorScheme === "white") { 14050 button.classList.add("scheme-white"); 14051 } else if (colorScheme === "custom") { 14052 button.style["background-color"] = backgroundColor; 14053 button.style["color"] = textColor; 14054 button.style["border-color"] = outlineColor; 14055 14056 const darkenColor = (color, percentage) => { 14057 const value = parseInt(color.slice(1), 16); 14058 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 14059 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 14060 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 14061 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 14062 }; 14063 14064 button.addEventListener("mouseover", () => { 14065 button.style["background-color"] = darkenColor
14065(backgroundColor, 0.2); 14066 }); 14067 button.addEventListener("mouseout", () => { 14068 button.style["background-color"] = backgroundColor; 14069 }); 14070 } else if (colorScheme === "match") { 14071 button.classList.add("scheme-match"); 14072 } else if (colorScheme === "matchOutline") { 14073 button.classList.add("scheme-match-outline"); 14074 } 14075 14076 // Add click event listener if host is provided 14077 if (host) { 14078 button.addEventListener("click", () => 14079 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 14080 ); 14081 } 14082 14083 return button; 14084 } 14085 14086 function setupSocialLoginButtons(config, rootRef, data, host) { 14087 // Clear any existing content 14088 rootRef.innerHTML = ''; 14089 14090 const sortedEnabledProviders = config 14091 .filter(c => c.enabledWeb) 14092 .sort((a, b) => a.position - b.position); 14093 14094 sortedEnabledProviders.forEach(provider => { 14095 const key = provider.provider; 14096 const lowerKey = key.toLowerCase(); 14097 14098 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 14099 ? (lowerKey === 'twitter' 14100 ? data.buttonList.twitter.replace('Twitter', 'X') 14101 : data.buttonList[lowerKey]) 14102 : null; 14103 14104 const button = createSocialLoginButton(key, { 14105 theme: data.colorScheme || 'match', 14106 customColor: data.textColor, 14107 format: data.format, 14108 buttonText: buttonText, 14109 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 14110 style: data.style, 14111 size: data.size, 14112 colorScheme: data.colorScheme, 14113 backgroundColor: data.backgroundColor, 14114 textColor: data.textColor, 14115 outlineColor: data.outlineColor, 14116 rootRef: rootRef, 14117 host: host 14118 }); 14119 14120 rootRef.appendChild(button); 14121 }); 14122 14123 return rootRef; 14124 } 14125 14126 function updateAppearance({ formRef, rootRef, host }) { 14127 if (!formRef) return; 14128 14129 const data = bitloginCache.appearance || { 14130 style: "square", 14131 hasShadow: false, 14132 colorScheme: "match", 14133 backgroundColor: "#FFFFFF", 14134 outlineColor: "#000000", 14135 textColor: "#000000", 14136 position: "bottom", 14137 hideDivider: "false", 14138 dividerText: "OR", 14139 size: "small", 14140 format: "contentFlex", 14141 language: "en", 14142 buttonText: "Continue with", 14143 redirectLink: "/account", 14144 googleOneTap: true, 14145 googleOneTapBanner: true, 14146 customerTag: "bitLogin", 14147 redirectOneTapDesktop: null, 14148 redirectOneTapMobile: null, 14149 buttonList: { 14150 google: "Continue with Google", 14151 facebook: "Continue with Facebook", 14152 apple: "Continue with Apple", 14153 whatsapp: "Continue with WhatsApp", 14154 microsoft: "Continue with Microsoft", 14155 twitter: "Continue with X", 14156 amazon: "Continue with Amazon", 14157 instagram: "Continue with Instagram", 14158 magic_link: "Continue with Magic Link", 14159 mobile_app: "Continue with Mobile App", 14160 linkedin: "Continue with LinkedIn", 14161 }, 14162 }; 14163 14164 // Use the new setupSocialLoginButtons function to create and configure all buttons 14165 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 14166 14167 let divider; 14168 14169 if (!data.hideDivider) { 14170 divider = document.createElement("div"); 14171 const dividerStyle = "text-align:center;margin-block:16px"; 14172 divider.setAttribute("style", dividerStyle); 14173 divider.innerHTML = data.dividerText; 14174 } 14175 14176 if (data.position === "bottom") { 14177 if (divider) { 14178 formRef.appendChild(divider); 14179 } 14180 formRef.appendChild(rootRef); 14181 } else if (data.position === "top") { 14182 if (divider) { 14183 formRef.prepend(divider); 14184 } 14185 formRef.prepend(rootRef); 14186 } 14187 } 14188 14189 14190 async function onClickSocialLogin({ provider, host }) { 14191 const rand = Math.random().toString(); 14192 14193 const locationQueryString = bitloginCache.location 14194 ? `&${objectToQueryString(bitloginCache.location)}` 14195 : ""; 14196 14197 const width = 800; 14198 const height = 600; 14199 const left = (window.screen.width / 2) - (width / 2); 14200 const top = (window.screen.height / 2) - (height / 2) - 50; 14201 14202 if (provider === 'whatsapp') { 14203 window.open( 14204 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 14205 "mywindow", 14206 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 14207 ); 14208 } else { 14209 window.open( 14210 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 14211 "mywindow", 14212 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 14213 ); 14214 } 14215 } 14216 14217 function objectToQueryString(obj) { 14218 return Object.keys(obj) 14219 .map((key) => { 14220 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 14221 }) 14222 .join("&"); 14223 } 14224 14225 async function getLocation() { 14226 if (locationCacheSet) return; 14227 14228 try { 14229 const response = await fetch("https://ipapi.co/json/"); 14230 14231 if (!response.ok) { 14232 console.error(`error retrieving location...`, response.status); 14233 errorLocation = true; 14234 } else { 14235 const data = await response.json(); 14236 14237 const { city, region, country_name, country_code } = data; 14238 14239 const formattedLocationData = { 14240 city, 14241 region, 14242 country_name, 14243 country_code, 14244 }; 14245 14246 bitloginCache.location = formattedLocationData; 14247 locationCacheSet = true; 14248 errorLocation = false;
14249 } 14250 } catch (err) { 14251 console.error(`error fetching location`, err); 14252 errorLocation = true; 14253 } 14254 } 14255 14256 function post(params) { 14257 // The rest of this code assumes you are not using a library. 14258 // It can be made less verbose if you use one. 14259 const form = document.createElement("form"); 14260 form.method = "post"; 14261 form.action = `/account/login`; 14262 form.acceptCharset = "UTF-8"; 14263 form.setAttribute("data-login-with-shop-sign-in", "true"); 14264 form.setAttribute("novalidate", "novalidate"); 14265 14266 for (const key in params) { 14267 if (params.hasOwnProperty(key)) { 14268 const hiddenField = document.createElement("input"); 14269 hiddenField.type = "hidden"; 14270 hiddenField.name = key; 14271 hiddenField.value = params[key]; 14272 14273 form.appendChild(hiddenField); 14274 } 14275 } 14276 14277 document.body.appendChild(form); 14278 form.submit(); 14279 } 14280 14281 async function setupOneTap({ host, checkoutUrl }) { 14282 if (oneTapSet) return; 14283 14284 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 14285 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 14286 14287 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 14288 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 14289 14290 const currentPath = window.location.pathname.toLowerCase(); 14291 const currentUrl = window.location.href.toLowerCase(); 14292 14293 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 14294 switch (value) { 14295 case 'home': 14296 return currentPath === '/'; 14297 case 'product': 14298 return currentPath.startsWith('/products/'); 14299 case 'collections': 14300 return currentPath.startsWith('/collections'); 14301 case 'cart': 14302 return currentPath === '/cart'; 14303 case 'checkout': 14304 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 14305 case 'thank_you': 14306 return currentPath.includes('/thank_you'); 14307 case 'account': 14308 return currentPath.startsWith('/account'); 14309 case 'pages': 14310 return currentPath.startsWith('/pages'); 14311 case 'blogs': 14312 return currentPath === '/blogs' || currentPath === '/blogs/news'; 14313 case 'blog_post': 14314 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 14315 default: 14316 return false; 14317 } 14318 }); 14319 14320 if (shouldHideGoogleOneTap) return; 14321 14322 const oneTapClientId = bitloginCache.config.find( 14323 (config) => config.provider === "GOOGLE" 14324 )?.clientId; 14325 14326 const isLoggedIn = false; 14327 14328 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 14329 const googleOneTapButton = document.createElement("div"); 14330 googleOneTapButton.setAttribute("id", "g_id_onload"); 14331 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 14332 googleOneTapButton.setAttribute("data-context", "signin"); 14333 googleOneTapButton.setAttribute( 14334 "data-callback", 14335 "handleGoogleOneTapResponse" 14336 ); 14337 googleOneTapButton.setAttribute("data-itp_support", "true"); 14338 14339 const googleOneTapScript = document.createElement("script"); 14340 14341 googleOneTapScript.innerHTML += ` 14342 function handleGoogleOneTapResponse(response) { 14343 if (response.credential) { 14344 const idToken = response.credential; 14345 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 14346 method: 'POST', 14347 headers: { 'Content-Type': 'application/json' }, 14348 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 14349 }).then(response => { 14350 response.json().then((data) => { 14351 post( 14352 JSON.parse( 14353 JSON.stringify({ 14354 "customer[email]": data.email, 14355 "customer[password]": data.password, 14356 form_type: "customer_login", 14357 utf8: "â", 14358 return_url: redirectUrl, 14359 }) 14360 ) 14361 ); 14362 }); 14363 }).catch(error => { 14364 console.error('Error occurred:', error); 14365 }); 14366 } else { 14367 console.error('No credential available'); 14368 } 14369 } 14370 `; 14371 14372 document.body.append(googleOneTapButton); 14373 document.body.append(googleOneTapScript); 14374 } 14375 14376 oneTapSet = true; 14377 } 14378 14379 const googleLoginIcon = ( 14380 theme, 14381 customColor 14382 ) => ` 14383 ${theme === "match" || theme === "matchOutline" || theme === "custom" 14384 ? `<svg 14385 xmlns='img/logotajir.webp' 14386 xmlns:v='https://vecta.io/nano' 14387 width='24' 14388 height='24'
14389 viewBox='0 0 186.69 190.5' 14390 > 14391 <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="${theme === "custom" ? customColor : "#4285f4" 14392 }"/><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="${theme === "custom" ? customColor : "#34a853" 14393 }"/><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="${theme === "custom" ? customColor : "#fbbc05" 14394 }"/><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="${theme === "custom" ? customColor : "#ea4335" 14395 }" clip-path="none" mask="none"/></g> 14396 </svg>` 14397 : `<svg xmlns="img/logotajir.webp" width="25" height="25" viewBox="0 0 25 25" fill="none"> 14398 <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="${theme !== "black" ? "black" : "white" 14399 }"/> 14400 <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="${theme !== "black" ? "black" : "white" 14401 }"/> 14402 <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="${theme !== "black" ? "black" : "white" 14403 }"/> 14404 <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="${theme !== "black" ? "black" : "white" 14405 }"/> 14406 </svg>` 14407 }`; 14408 14409 const appleLoginIcon = ( 14410 theme, 14411 customColor 14412 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="img/logotajir.webp"> 14413 <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="${theme === "custom" 14414 ? customColor 14415 : theme === "match" || theme === "black" 14416 ? "white" 14417 : "black" 14418 }"/> 14419 </svg>`; 14420 14421 const facebookLoginIcon = ( 14422 theme, 14423 customColor 14424 ) => ` 14425 ${theme === "match" || theme === "matchOutline" || theme === "custom" 14426 ? `<svg xmlns="img/logotajir.webp" width="24" height="25" viewBox="0 0 24 25" fill="none"> 14427 <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="${theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 14428 }"/> 14429 <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="${theme === "match" ? "#1778f2" : "transparent" 14430 }"/> 14431 </svg>` 14432 : `<svg xmlns="img/logotajir.webp" width="24" height="25" viewB
14432ox="0 0 24 25" fill="none"> 14433 <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="${theme === "black" ? "white" : "black" 14434 }"/> 14435 <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="${theme === "black" ? "black" : "white" 14436 }"/> 14437 </svg>` 14438 }`; 14439 14440 const whatsappLoginIcon = ( 14441 theme, 14442 customColor 14443 ) => `<svg 14444 viewBox="0 0 24 24" 14445 fill="none" 14446 width="24" 14447 height="25" 14448 xmlns="img/logotajir.webp" 14449 > 14450 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 14451 <g 14452 id="SVGRepo_tracerCarrier" 14453 stroke-linecap="round" 14454 stroke-linejoin="round" 14455 ></g> 14456 <g id="SVGRepo_iconCarrier"> 14457 <path 14458 fill-rule="evenodd" 14459 clip-rule="evenodd" 14460 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" 14461 fill="${theme === "match" || theme === "black" 14462 ? "#ffffff" 14463 : theme === "white" 14464 ? "#000000" 14465 : theme === "matchOutline" 14466 ? "#25d366" 14467 : customColor 14468 }" 14469 ></path> 14470 </g> 14471 </svg>`; 14472 14473 const microsoftLoginIcon = ( 14474 theme, 14475 customColor 14476 ) => `<svg 14477 xmlns="img/logotajir.webp" 14478 width="25" 14479 height="25" 14480 viewBox="0 0 48 48"> 14481 <path fill="${theme === "match" || theme == "matchOutline" 14482 ? "#ff5722" 14483 : theme === "black" 14484 ? "#ffffff" 14485 : theme === "white" 14486 ? "#000000" 14487 : customColor 14488 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 14489 <path 14490 fill="${theme === "match" || theme == "matchOutline" 14491 ? "#4caf50" 14492 : theme === "black" 14493 ? "#ffffff" 14494 : theme === "white" 14495 ? "#000000" 14496 : customColor 14497 }" 14498 d="M26 6H42V22H26z" 14499 transform="rotate(-180 34 14)"></path> 14500 <path 14501 fill="${theme === "match" || theme == "matchOutline" 14502 ? "#ffc107" 14503 : theme === "black" 14504 ? "#ffffff" 14505 : theme === "white" 14506 ? "#000000" 14507 : customColor 14508 }" 14509 d="M26 26H42V42H26z" 14510 transform="rotate(-180 34 34)"></path> 14511 <path fill="${theme === "match" || theme == "matchOutline" 14512 ? "#03a9f4" 14513 : theme === "black" 14514 ? "#ffffff" 14515 : theme === "white" 14516 ? "#000000" 14517 : customColor 14518 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 14519 </svg>`; 14520 14521 const twitterLoginIcon = ( 14522 theme, 14523 customColor 14524 ) => `<svg 14525 xmlns="img/logotajir.webp" 14526 width="25" 14527 height="25" 14528 viewBox="0 0 48 48"> 14529 <polygon fill="${theme === "match" || theme === "black" 14530 ? "#ffffff" 14531 : theme === "matchOutline" || theme === "white" 14532 ? "#000000" 14533 : customColor 14534 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 14535 <polygon 14536 fill="${theme === "match" || theme === "black" 14537 ? "#000000" 14538 : theme === "matchOutline" || theme === "white" 14539 ? "#ffffff" 14540 : customColor 14541 }" 14542 fill-rule="evenodd" 14543 points="31.143,41 7.82,7 16.777,7 40.1,41" 14544 clip-rule="evenodd"></polygon> 14545 <path 14546 fill="${theme === "match" || theme === "black" 14547 ? "#ffffff" 14548 : theme === "matchOutline" || theme === "white" 14549 ? "#000000" 14550 : customColor 14551 }" 14552 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 14553 </svg>`; 14554 14555 const amazonLoginIcon = (theme, customColor) => ` 14556 <svg 14557 xmlns="img/logotajir.webp" 14558 x="0px" 14559 y="0px" 14560 width="25" 14561 height="25"
14562 viewBox="0 0 50 50" 14563 > 14564 <path 14565 fill="${theme === "black" 14566 ? "#ffffff" 14567 : theme === "matchOutline" 14568 ? "#FF9900" 14569 : theme === "white" || theme === "match" 14570 ? "#000000" 14571 : customColor 14572 }" 14573 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" 14574 ></path> 14575 </svg>`; 14576 14577 const instagramLoginIcon = (theme, customColor) => ` 14578 <svg 14579 width="25" 14580 height="25" 14581 viewBox="0 0 25 24" 14582 fill="none" 14583 xmlns="img/logotajir.webp"> 14584 <path 14585 fill-rule="evenodd" 14586 clip-rule="evenodd" 14587 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.
1458764321C8.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" 14588 fill="url(#paint0_radial_378_3535)" /> 14589 <path 14590 fill-rule="evenodd" 14591 clip-rule="evenodd" 14592 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" 14593 fill="url(#paint0_radial_378_3535)" /> 14594 <path 14595 fill-rule="evenodd" 14596 clip-rule="evenodd" 14597 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.
1459764321C8.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" 14598 fill="url(#paint0_radial_378_3535)" /> 14599 <path 14600 fill-rule="evenodd" 14601 clip-rule="evenodd" 14602 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" 14603 fill="url(#paint1_radial_378_3535)" /> 14604 <defs> 14605 <radialGradient 14606 id="paint0_radial_378_3535" 14607 cx="0" 14608 cy="0" 14609 r="1" 14610 gradientUnits="userSpaceOnUse" 14611 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 14612 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 14613 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 14614 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 14615 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 14616 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 14617 </radialGradient> 14618 <radialGradient 14619 id="paint1_radial_378_3535" 14620 cx="0" 14621 cy="0" 14622 r="1" 14623 gradientUnits="userSpaceOnUse" 14624 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 14625 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 14626 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 14627 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 14628 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 14629 </radialGradient> 14630 </defs> 14631 </svg>`; 14632 14633 const magicLinkLoginIcon = (theme, customColor) => ` 14634 <svg 14635 xmlns="img/logotajir.webp" 14636 width="25" 14637 height="25" 14638 fill="none"
14639 viewBox="0 0 25 25" 14640 > 14641 <path 14642 fill="${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 14643 }" 14644 fillRule="evenodd" 14645 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" 14646 clipRule="evenodd" 14647 ></path> 14648 </svg>`; 14649 14650 const mobileAppLoginIcon = (theme, customColor) => ` 14651 <svg 14652 width="20" 14653 height="24" 14654 viewBox="0 0 12 16" 14655 fill="none" 14656 xmlns="img/logotajir.webp" 14657 > 14658 <path 14659 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" 14660 fill=${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 14661 } 14662 /> 14663 </svg> 14664 `; 14665 14666 const linkedinLoginIcon = (theme, customColor) => ` 14667 <svg 14668 xmlns="img/logotajir.webp" 14669 width="25" 14670 height="24" 14671 viewBox="0 0 25 24" 14672 fill="none" 14673 > 14674 <path 14675 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" 14676 fill=${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 14677 } 14678 /> 14679 </svg> 14680 `; 14681 14682 function isElementVisible(element) { 14683 return ( 14684 document.body.contains(element) && 14685 getComputedStyle(element).display !== "none" && 14686 getComputedStyle(element).visibility !== "hidden" && 14687 getComputedStyle(element).opacity !== "0" && 14688 !element.hasAttribute("hidden") && 14689 !isAncestorHidden(element) 14690 ); 14691 } 14692 14693 function isAncestorHidden(element) { 14694 let parent = element.parentElement; 14695 while (parent) { 14696 if ( 14697 getComputedStyle(parent).display === "none" || 14698 getComputedStyle(parent).visibility === "hidden" || 14699 getComputedStyle(parent).opacity === "0" || 14700 parent.hasAttribute("hidden") 14701 ) { 14702 return true; 14703 } 14704 parent = parent.parentElement; 14705 } 14706 return false; 14707 } 14708 14709 function showAlert(message) { 14710 const alertBox = document.createElement("div"); 14711 alertBox.textContent = message; 14712 alertBox.style.position = "fixed"; 14713 alertBox.style.top = "20px"; 14714 alertBox.style.right = "-300px"; // Start off-screen 14715 alertBox.style.backgroundColor = "#000000"; // Black background 14716 alertBox.style.color = "#ffffff"; // White text 14717 alertBox.style.padding = "15px"; 14718 alertBox.style.borderRadius = "8px"; 14719 alertBox.style.zIndex = "1000"; 14720 alertBox.style.transition = 14721 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 14722 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 14723 14724 document.body.appendChild(alertBox); 14725 14726 // Slide in 14727 requestAnimationFrame(() => { 14728 alertBox.style.right = "20px"; // Move into view 14729 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 14730 }); 14731 14732 // Slide out and remove the alert after a few seconds 14733 setTimeout(() => { 14734 alertBox.style.opacity = "0"; // Fade out 14735 alertBox.style.right = "-300px"; // Move out of view 14736 14737 // Wait for the transition to finish before removing the element 14738 setTimeout(() => { 14739 document.body.removeChild(alertBox); 14740 }, 500); // Match this duration with the exit transition duration 14741 }, 3000); 14742 } 14743 </script>
14743 14744 14745 <style> 14746 .daftarku-fixed-footer { 14747 position: fixed; 14748 bottom: 20px; 14749 left: 50%; 14750 transform: translateX(-50%); 14751 width: 90%; 14752 height: 70px; 14753 background: 14754 radial-gradient(circle at top, rgba(134, 239, 172, 0.35), transparent 45%), 14755 linear-gradient(135deg, #022c22, #054a1d, #22c55e); 14756 border: 1.5px solid rgba(74, 222, 128, 0.75); 14757 border-radius: 20px; 14758 backdrop-filter: blur(10px); 14759 box-shadow: 14760 0 0 25px rgba(34, 197, 94, 0.45), 14761 inset 0 0 15px rgba(220, 252, 231, 0.18); 14762 display: flex; 14763 justify-content: space-around; 14764 align-items: center; 14765 overflow: hidden; 14766 z-index: 9999; 14767 animation: floatUp 0.8s ease-out; 14768 } 14769 14770 .daftarku-fixed-footer::before { 14771 content: ""; 14772 position: absolute; 14773 inset: 0; 14774 border-radius: 20px; 14775 padding: 2px; 14776 background: linear-gradient(120deg, 14777 #22c55e, 14778 #86efac, 14779 #054a1d, 14780 #dcfce7, 14781 #22c55e, 14782 #22c55e, 14783 #022c22, 14784 #22c55e); 14785 background-size: 400%; 14786 -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); 14787 -webkit-mask-composite: xor; 14788 mask-composite: exclude; 14789 animation: ledRotate 6s linear infinite; 14790 } 14791 14792 @keyframes ledRotate { 14793 0% { 14794 background-position: 0% 50%; 14795 } 14796 14797 100% { 14798 background-position: 400% 50%; 14799 } 14800 } 14801 14802 .daftarku-fixed-footer::after { 14803 content: ""; 14804 position: absolute; 14805 top: -50%; 14806 left: 0; 14807 width: 100%; 14808 height: 200%; 14809 background: radial-gradient(circle at 50% 0%, rgba(134, 239, 172, 0.28), transparent 70%); 14810 animation: shinePass 5s ease-in-out infinite; 14811 } 14812 14813 @keyframes shinePass { 14814 14815 0%, 14816 100% { 14817 opacity: 0.3; 14818 } 14819 14820 50% { 14821 opacity: 0.7; 14822 } 14823 } 14824 14825 .daftarku-fixed-footer a { 14826 flex: 1; 14827 text-align: center; 14828 color: #dcfce7; 14829 font-weight: 700; 14830 text-decoration: none; 14831 font-size: 13px; 14832 text-transform: uppercase; 14833 display: flex; 14834 flex-direction: column; 14835 align-items: center; 14836 transition: 0.3s ease; 14837 z-index: 2; 14838 text-shadow: 14839 0 1px 2px rgba(0, 0, 0, 0.85), 14840 0 0 8px rgba(34, 197, 94, 0.65); 14841 } 14842 14843 .daftarku-fixed-footer a img { 14844 width: 30px; 14845 height: 30px; 14846 margin-bottom: 4px; 14847 filter: 14848 drop-shadow(0 0 8px #22c55e) drop-shadow(0 0 12px rgba(134, 239, 172, 0.55)); 14849 transition: 0.3s ease; 14850 animation: floatBtn 3s ease-in-out infinite; 14851 } 14852 14853 @keyframes floatBtn { 14854 14855 0%, 14856 100% { 14857 transform: translateY(0); 14858 } 14859 14860 50% { 14861 transform: translateY(-4px); 14862 } 14863 } 14864 14865 .daftarku-fixed-footer a:hover { 14866 color: #86efac; 14867 transform: scale(1.15); 14868 text-shadow: 14869 0 0 12px #dcfce7, 14870 0 0 25px #22c55e; 14871 } 14872 14873 .daftarku-fixed-footer a:hover img { 14874 transform: scale(1.25) rotate(10deg); 14875 filter: 14876 drop-shadow(0 0 15px #22c55e) drop-shadow(0 0 20px rgba(134, 239, 172, 0.75)); 14877 } 14878 14879 .daftarku-fixed-footer a.tada { 14880 background: 14881 radial-gradient(circle, #86efac 0%, #22c55e 42%, #054a1d 80%); 14882 padding: 6px 12px; 14883 border-radius: 12px; 14884 box-shadow: 14885 0 0 20px #22c55e, 14886 inset 0 0 10px #86efac; 14887 color: #022c22; 14888 position: relative; 14889 overflow: hidden; 14890 animation: pulseEnergy 2s infinite ease-in-out; 14891 } 14892 14893 .daftarku-fixed-footer a.tada::before { 14894 content: ""; 14895 position: absolute; 14896 top: -50%; 14897 left: -50%; 14898 width: 200%; 14899 height: 200%; 14900 background: conic-gradient(from 0deg, 14901 rgba(134, 239, 172, 0.70), 14902 transparent 60%); 14903 animation: spinEnergy 2s linear infinite; 14904 } 14905 14906 @keyframes pulseEnergy { 14907 14908 0%, 14909 100% { 14910 box-shadow: 14911 0 0 20px #22c55e, 14912 inset 0 0 10px rgba(134, 239, 172, 0.45); 14913 } 14914 14915 50% { 14916 box-shadow: 14917 0 0 40px #054a1d, 14918 0 0 55px rgba(34, 197, 94, 0.55); 14919 } 14920 } 14921 14922 @keyframes spinEnergy { 14923 to { 14924 transform: rotate(360deg); 14925 } 14926 } 14927 14928 @keyframes floatUp { 14929 0% { 14930 opacity: 0; 14931 transform: translate(-50%, 50px); 14932 } 14933 14934 100% { 14935 opacity: 1; 14936 transform: translate(-50%, 0); 14937 } 14938 } 14939 </style> 14940 <div class="daftarku-fixed-footer"> 14941 <a href="https://slot.iwantanap.vip/" target="_blank" rel="nofollow noopener"> 14942 <img src="img/favtajirngeri.webp" alt="Promo TAJIR4D"> 14943 Promo 14944 </a> 14945 <a href="https://slot.iwantanap.vip/" target="_blank" rel="nofollow noopener"> 14946 <img src="img/favtajirngeri.webp" alt="Login TAJIR4D"> 14947 Login 14948 </a> 14949 <a href="https://slot.iwantanap.vip/" target="_blank" rel="nofollow noopener" class="tada"> 14950 <img src="img/favtajirngeri.webp" alt="Daftar TAJIR4D"> 14951 Daftar 14952 </a> 14953 <a href="https://slot.iwantanap.vip/" target="_blank" rel="nofollow noopener"> 14954 <img src="img/favtajirngeri.webp" alt="Link Alternatif TAJIR4D"> 14955 Alternatif 14956 </a> 14957 <a href="https://slot.iwantanap.vip/" target="_blank" rel="nofollow noopener"> 14958 <img src="img/favtajirngeri.webp" alt="Live Chat TAJIR4D"> 14959 Live Chat 14960 </a> 14961 </div> 14962 </div> 14963
14963<script> 14964 document.addEventListener("keydown", function (e) { 14965 if ((e.ctrlKey || e.metaKey) && e.key && e.key.toLowerCase() === "u") { 14966 e.preventDefault(); 14967 startMatrix() 14968 } 14969 }); 14970 14971 function startMatrix() { 14972 if (document.getElementById("matrix-full")) return; 14973 14974 // 1. OVERLAY LATAR BELAKANG HITAM PEKAT 14975 const overlay = document.createElement("div"); 14976 overlay.id = "matrix-full"; 14977 Object.assign(overlay.style, { 14978 position: "fixed", 14979 inset: "0", 14980 background: "#000000", 14981 overflow: "hidden", 14982 zIndex: 999999 14983 }); 14984 document.body.appendChild(overlay); 14985 14986 // 2. CANVAS PARTIKEL MATRIX 14987 const canvas = document.createElement("canvas"); 14988 overlay.appendChild(canvas); 14989 const ctx = canvas.getContext("2d"); 14990 canvas.width = window.innerWidth; 14991 canvas.height = window.innerHeight; 14992 14993 const letters = "01ABCDEFGHIJKLMNOPQRSTUVWXYZ$#@%&*"; 14994 const fontSize = 14; 14995 const columns = Math.floor(canvas.width / fontSize); 14996 const drops = Array(columns).fill(1); 14997 14998 function draw() { 14999 ctx.fillStyle = "rgba(0,0,0,0.08)"; 15000 ctx.fillRect(0, 0, canvas.width, canvas.height); 15001 15002 // WARNA UTAMA HUJAN MATRIX: EMAS PREMIUM (#d4af37) 15003 ctx.fillStyle = "#d4af37"; 15004 ctx.font = fontSize + "px monospace"; 15005 15006 for (let i = 0; i < drops.length; i++) { 15007 ctx.fillText(letters[Math.floor(Math.random() * letters.length)], i * fontSize, drops[i] * fontSize); 15008 if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) drops[i] = 0; 15009 drops[i]++; 15010 } 15011 } 15012 setInterval(draw, 33); 15013 15014 // 3. TEKS TERMINAL KIRI ATAS 15015 const terminal = document.createElement("div"); 15016 Object.assign(terminal.style, { 15017 position: "absolute", 15018 top: "20px", 15019 left: "20px", 15020 color: "#ffe894", /* Emas Champagne Cerah agar mudah dibaca */ 15021 fontFamily: "monospace", 15022 fontSize: "13px", 15023 textShadow: "0 0 6px #d4af37", /* Glow Emas */ 15024 zIndex: 1000000 15025 }); 15026 overlay.appendChild(terminal); 15027 15028 ["init engine...", "binding interface...", "detect kaban", "scanning...", "access granted"].forEach((t, i) => setTimeout(() => { 15029 const d = document.createElement("div"); 15030 d.textContent = "> " + t; 15031 terminal.appendChild(d) 15032 }, i * 500)); 15033 15034 // 4. PROGRESS BAR LOADING (EMAS) 15035 const barWrap = document.createElement("div"); 15036 Object.assign(barWrap.style, { 15037 position: "absolute", 15038 bottom: "40px", 15039 left: "50%", 15040 transform: "translateX(-50%)", 15041 width: "320px", 15042 height: "10px", 15043 border: "1px solid #d4af37", /* Bingkai Emas */ 15044 zIndex: 1000000 15045 }); 15046 15047 const bar = document.createElement("div"); 15048 Object.assign(bar.style, { 15049 height: "100%", 15050 width: "0%", 15051 background: "#d4af37" /* Isi Bar Emas Murni */ 15052 }); 15053 15054 barWrap.appendChild(bar); 15055 overlay.appendChild(barWrap); // Perbaikan bug penempatan barWrap bawaan 15056 15057 // 5. LOGO UTAMA TAJIR4D TENGAH LAYAR 15058 const title = document.createElement("div"); 15059 title.textContent = "TAJIR4D"; 15060 Object.assign(title.style, { 15061 position: "absolute", 15062 top: "50%", 15063 left: "50%", 15064 transform: "translate(-50%,-50%)", 15065 color: "#ffffff", /* Putih Solid di tengah */ 15066 fontFamily: "monospace", 15067 fontSize: "60px", 15068 fontWeight: "bold", 15069 letterSpacing: "5px", 15070 textShadow: "0 0 25px #d4af37, 0 0 45px #aa7c11", /* Double Glow Emas Mewah */ 15071 opacity: "0", 15072 transition: "opacity 1s", 15073 zIndex: 1000000, 15074 pointerEvents: "none" 15075 }); 15076 overlay.appendChild(title); 15077 setTimeout(() => title.style.opacity = "1", 2500); 15078 15079 // 6. ENGINE LOADING COUNTER 15080 let p = 0; 15081 const prog = setInterval(() => { 15082 p += Math.random() * 15; 15083 bar.style.width = p + "%"; 15084 if (p >= 100) { 15085 clearInterval(prog); 15086 overlay.style.filter = "contrast(1.8) brightness(1.2)"; 15087 setTimeout(() => overlay.remove(), 3000) 15088 } 15089 }, 200) 15090 } 15091 </script>
15091 15092 15093
15093<script> 15094 setTimeout(function () { 15095 $('.flash .notice.temp:not([data-keep])').slideUp('slow'); 15096 }, 5000); 15097 15098 $(function () { 15099 TeePublic.Utility.unveil_images(); 15100 }); 15101 15102 var rudderstackGlobalProperties = { "website_id": 1, "subdomain_name": "www", "domain_name": "teepublic.com", "store_name": null, "store_id": null, "xcfb": "1847521452160553165b015e0c0c18084c0160024f18015f0f151511095c1a12304c6d7f3528712a757c3174672d7b3965302431623e773a633a2b7f66652a365b696c035d" }; 15103 15104 var rsEnvData = { 15105 write_key: "2HNPADTAqRU1fVtw8bfPRR44gtx", 15106 data_plane_url: "https://unblockedfreegame.com/free-amp/", 15107 js_use_beacon: false, 15108 anonymous_id: "cd1d819e-a9e0-4e3d-b8be-56639cfbd299", 15109 global_properties: window.rudderstackGlobalProperties 15110 }; 15111 window.rudderstackEnvVars = rsEnvData; 15112 15113 if (false) { 15114 window.addEventListener('CookiebotOnConsentReady', function () { 15115 if (Cookiebot.consent.statistics) { 15116 if (true) { 15117 // Rudderstack initialize script 15118 TeePublic.RudderstackHelpers.renderRudderstackScript(); 15119 } 15120 // Datadog RUM script 15121 (function (h, o, u, n, d) { 15122 h = h[d] = h[d] || { q: [], onReady: function (c) { h.q.push(c) } } 15123 d = o.createElement(u); d.async = 1; d.src = n 15124 n = o.getElementsByTagName(u)[0]; n.parentNode.insertBefore(d, n) 15125 })(window, document, 'script', 'https://www.datadoghq-browser-agent.com/us5/v5/datadog-rum.js', 'DD_RUM') 15126 15127 DD_RUM.onReady(function () { 15128 DD_RUM.init({ 15129 clientToken: 'pub8afcb76e7747723499bda481aef4828f', 15130 applicationId: '815ab20a-1d12-45bb-9881-005646b96f5b', 15131 site: 'us5.datadoghq.com', 15132 service: 'teepublic', 15133 env: 'production', 15134 version: '18173265448-2844-1', 15135 sessionSampleRate: 10, 15136 sessionReplaySampleRate: 0, 15137 traceSampleRate: 5, 15138 trackUserInteractions: true, 15139 trackResources: true, 15140 trackLongTasks: true, 15141 defaultPrivacyLevel: 'mask-user-input', 15142 allowedTracingUrls: [ 15143 'https://www.teepublic.com', 15144 'https://www.teepublic-staging.com' 15145 ] 15146 }); 15147 }); 15148 // Google Analytics script 15149 (function () { 15150 window.ga = window.ga || function () { (ga.q = ga.q || []).push(arguments) }; ga.l = +new Date; 15151 ga('create', 'UA-39467830-1', 'auto'); 15152 // Google Optimize Container 15153 ga('require', 'GTM-KL3BC7L'); 15154 // ga('send', 'pageview'); 15155 })(); 15156 var gaScript = document.createElement('script'); 15157 gaScript.async = true; 15158 gaScript.src = 'https://www.google-analytics.com/analytics.js'; 15159 document.head.appendChild(gaScript); 15160 } 15161 }, false); 15162 } 15163 15164 window.addEventListener('load', function () { 15165 if (true && window.rudderanalytics != undefined) { 15166 TeePublic.RudderstackHelpers.storeContextSessionId(); 15167 } 15168 15169 if (window.Cookiebot !== undefined) { 15170 if (Cookies.get('cookiebot_geo') === undefined) { 15171 Cookies.set('cookiebot_geo', Cookiebot.userCountry.toUpperCase(), { expires: 365, secure: true }) 15172 } 15173 } 15174 }); 15175 15176 TeePublic.initProductClicks(); 15177 </script>
15177 15178
15178<script type="module" 15179 src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" 15180 integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" 15181 data-cf-beacon='{"version":"2024.11.0","token":"4240a990282641178285998b5fc45cfa","r":1}' 15182 crossorigin="anonymous"></script>
vendor: 1 bytes, line 15182
15182
15183<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"8842ff5ad55b4c0188bc0520ea575cfd","r":1,"spa":2}' crossorigin="anonymous"></script>
15183 15184</body> 15185 15186</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.