1<!doctype html> 2<html class="no-js"> 3 4<head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 8 <meta name="apple-itunes-app" content="app-id=1576832504"> 9 <link rel="icon" type="image/x-icon" href="https://belajarpsikologi.com/assets/img/favicon-agam99.png"> 10 <!-- Title and description --> 11 <title>AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</title> 12 <meta name="description" 13 content="AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja"> 14 <meta name="keywords" 15 content="agam99" /> 16 <meta name="robots" content="index, follow"> 17 <link rel="canonical" href="https://belajarpsikologi.com/"> 18 <link rel="amphtml" href="https://belajarpsikologi.com/portal/" /> 19 <link rel="alternate" hreflang="id-id" href="https://belajarpsikologi.com/portal/"/> 20 <link rel="alternate" href="https://belajarpsikologi.com/portal/"/> 21 <link rel="alternate" hreflang="id" href="https://belajarpsikologi.com/portal/"/> 22 <link rel="alternate" hreflang="en" href="https://belajarpsikologi.com/portal/"/> 23 <link rel="alternate" hreflang="x-default" href="https://belajarpsikologi.com/portal/"/> 24 <!-- /snippets/social-meta-tags.liquid --> 25 <meta property="og:type" content="AGAM99"> 26 <meta property="og:title" 27 content="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari"> 28 <meta property="og:image" 29 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 30 <meta property="og:image:secure_url" 31 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 32 <meta property="og:image" 33 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 34 <meta property="og:image:secure_url" 35 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 36 <meta property="og:image" 37 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 38 <meta property="og:image:secure_url" 39 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 40 <meta property="og:description" 41 content="AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja"> 42 <meta property="og:price:amount" content="5,000-,"> 43 <meta property="og:price:currency" content="IDR"> 44 <meta property="og:url" content="https://belajarpsikologi.com/"> 45 <meta property="og:site_name" content="AGAM99"> 46 <meta name="twitter:site" content="@AGAM99"> 47 <meta name="twitter:card" content="summary"> 48 <meta name="twitter:title" 49 content="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari"> 50 <meta name="twitter:description" 51 content="AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja"> 52 <meta name="twitter:image" 53 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 54 <meta name="twitter:image:width" content="600"> 55 <meta name="twitter:image:height" content="600"> 56 <link rel="shortcut icon" href="https://belajarpsikologi.com/assets/img/favicon-agam99.png" type="image/png"> 57 <meta name="theme-color" content="#ffffff"> 58 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" 59 rel="stylesheet"> 60 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" 61 rel="stylesheet" type="text/css" media="all" /> 62 <link rel="stylesheet" 63 href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201"> 64
64<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
64 65
65<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 66 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 67 crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
67 68
68<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
68 69
69<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
69 70 <!-- Facebook Pixel Code --> 71
71<script>
vendor: 607 bytes, lines 71-83
71 72 !function (f, b, e, v, n, t, s) { 73 if (f.fbq) return; n = f.fbq = function () { 74 n.callMethod ? 75 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 76 }; 77 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 78 n.queue = []; t = b.createElement(e); t.async = !0; 79 t.src = v; s = b.getElementsByTagName(e)[0]; 80 s.parentNode.insertBefore(t, s) 81 }(window, document, 'script', 82 'https://connect.facebook.net/en_US/fbevents.js'); 83 fbq('init', '
83165971065669324
vendor: 44 bytes, lines 83-85
83'); 84 fbq('track', 'PageView'); 85
85</script>
85 86 <noscript><img height="1" width="1" style="display:none" 87 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"></noscript> 88 <!-- End Facebook Pixel Code --> 89 90 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 91 <!-- 92 Global site tag (gtag.js) - Google Analytics --
vendor: 76 bytes, lines 92-93
92 93 <script async src="https://www.googletagmanager.com/gtag/js?id=
93G-X26HYP4083
vendor: 24 bytes, lines 93-94
93"></script> 94
94<script> 95
vendor: 174 bytes, lines 95-99
95window.dataLayer = window.dataLayer || []; 96 function gtag(){dataLayer.push(arguments);} 97 gtag('js', new Date()); 98 99 gtag('config', '
99G-X26HYP4083
vendor: 16 bytes, lines 99-100
99'); 100
100</script>
100 101 Global site tag (gtag.js) - Google Analytics 102 --> 103 104 <div class="button-login-daftar"> 105 <a class="login" href="https://belajarpsikologi.com/portal/" rel="nofollow noreferrer" style="color: white;"> 106 LOGIN 107 </a> 108 <a class="register" href="https://belajarpsikologi.com/portal/" rel="nofollow noreferrer" style="color: white;"> 109 DAFTAR 110 </a> 111 </div> 112 113
113<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
113 114 115 <!-- Bing UET --> 116
116<script> 117 (function (w, d, t, r, u) { 118 var f, n, i; 119 w[u] = w[u] || [], f = function () { 120 var o = { ti: "343051754", tm: "shpfy_ui", enableAutoSpaTracking: true }; 121 o.q = w[u], w[u] = new UET(o), w[u].push("pageLoad") 122 }, 123 n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function () { 124 var s = this.readyState; 125 s && s !== "loaded" && s !== "complete" || (f(), n.onload = n.onreadystatechange = null) 126 }, 127 i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i) 128 }) 129 (window, document, "script", "//bat.bing.com/bat.js", "uetq"); 130 </script>
130 131
131<script> 132 window.uetq = window.uetq || []; 133 window.uetq.push('event', '', { "revenue_value": 0, "currency": "IDR" }); 134 </script>
134 135 <!-- End Bing UET --> 136 137 <!-- Microsoft Clarity --> 138
138<script type="text/javascript"> 139 (function (c, l, a, r, i, t, y) { 140 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }; 141 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i; 142 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 143 })(window, document, "clarity", "script", "h7rbxqry9k"); 144 </script>
144 145 <!-- End Microsoft Clarity --> 146 147 148 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" 149 rel="stylesheet" type="text/css" media="all" /> 150 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" 151 rel="stylesheet" type="text/css" media="all" /> 152 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 153
153<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" 154 crossorigin="anonymous"></script>
154 155
155<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" 156 type="text/javascript"></script>
156 157
157<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
157 158
158<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
158 159 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 160 <link rel="alternate" type="application/json+oembed" 161 href="https://belajarpsikologi.com/.oembed"> 162
162<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
162 163
163<script id="shopify-features" 164 type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
164 165
165<script>var Shopify = Shopify || {}; 166 Shopify.shop = "outerbloom1.myshopify.com"; 167 Shopify.locale = "en"; 168 Shopify.currency = { "active": "IDR", "rate": "1.0" }; 169 Shopify.country = "ID"; 170 Shopify.theme = { "name": "web-outerbloom-shopify\/main", "id": 153139282135, "schema_name": null, "schema_version": null, "theme_store_id": null, "role": "main" }; 171 Shopify.theme.handle = "null"; 172 Shopify.theme.style = { "id": null, "handle": null }; 173 Shopify.cdnHost = "outerbloom.com/cdn"; 174 Shopify.routes = Shopify.routes || {}; 175 Shopify.routes.root = "/";</script>
175 176
176<script type="module">!function (o) { (o.Shopify = o.Shopify || {}).modules = !0 }(window);</script>
176 177
177<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>
177 178
178<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
178 179
179<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 180 "></script>
180 181
181<script>(function () { 182 var isLoaded = false; 183 function asyncLoad() { 184 if (isLoaded) return; 185 isLoaded = true; 186 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"]; 187 for (var i = 0; i < urls.length; i++) { 188 var s = document.createElement('script'); 189 s.type = 'text/javascript'; 190 s.async = true; 191 s.src = urls[i]; 192 var x = document.getElementsByTagName('script')[0]; 193 x.parentNode.insertBefore(s, x); 194 } 195 }; 196 if (window.attachEvent) { 197 window.attachEvent('onload', asyncLoad); 198 } else { 199 window.addEventListener('load', asyncLoad, false); 200 } 201 })();</script>
201 202
202<script 203 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": 9233866700552 };</script>
203 204
204<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
204 205
205<script 206 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
206] = 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>
206 207
207<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" 208 data-source-attribution="shopify.loadfeatures" defer="defer" 209 src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" 210 crossorigin="anonymous"></script>
210 211
211<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) } }; 212 </script>
212 213
213<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 214 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); 215 </script>
215 216
216<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 }) } })); 217 </script>
217 218 219
219<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
219 220 <!-- /snippets/oldIE-js.liquid --> 221 222 223 <!--[if lt IE 9]> 224
224<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
224 225
225<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
225 226 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 227 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 228
228<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
228 229 <![endif]--> 230 231 232 233 234 235 <link 236 href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" 237 rel="stylesheet" type="text/css" media="all"> 238 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 239
239<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>
239 240
240<script 241 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);
241 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": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "vendor": "Outerbloom Florist", "id": "9233866700552", "untranslatedTitle": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "url": "\/products\/blossom-shine", "type": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja" }, "id": "44083045826775", "image": { "src": "\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426" }, "sku": "TSLATGL1563", "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\":\"AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari\",\"vendor\":\"Outerbloom Florist\",\"id\":\"9233866700552\",\"untranslatedTitle\":\"AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari\",\"url\":\"\/products\/blossom-shine\",\"type\":\"AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"TSLATGL1563\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]" });</script>
241 242
242<script> 243 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 244 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 245 window.ShopifyAnalytics.meta.currency = 'IDR'; 246 var meta = { 247 "product": { 248 "id": 9233866700552, "gid": "gid:\/\/shopify\/Product\/9233866700552", "vendor": "Outerbloom Florist", "type": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", "variants": [{ 249 "id": 44083045826775, "price": 1000000 250 , "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "public_title": null, "sku": "TSLATGL1563" 251 }], "remote": false 252 }, "page": { "pageType": "product", "resourceType": "product", "resourceId": 9233866700552 } 253 }; 254 for (var attr in meta) { 255 window.ShopifyAnalytics.meta[attr] = meta[attr]; 256 } 257 </script>
257 258
258<script class="analytics"> 259 (function () { 260 var customDocumentWrite = function (content) { 261 var jquery = null; 262 263 if (window.jQuery) { 264 jquery = window.jQuery; 265 } else if (window.Checkout && window.Checkout.$) { 266 jquery = window.Checkout.$; 267 } 268 269 if (jquery) { 270 jquery('body').append(content); 271 } 272 }; 273 274 var hasLoggedConversion = function (token) { 275 if (token) { 276 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 277 } 278 return false; 279 } 280 281 var setCookieIfConversion = function (token) { 282 if (token) { 283 var twoMonthsFromNow = new Date(Date.now()); 284 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 285 286 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 287 } 288 } 289 290 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 291 if (trekkie.integrations) { 292 return; 293 } 294 trekkie.methods = [ 295 'identify', 296 'page', 297 'ready', 298 'track', 299 'trackForm', 300 'trackLink' 301 ]; 302 trekkie.factory = function (method) { 303 return function () { 304 var args = Array.prototype.slice.call(arguments); 305 args.unshift(method); 306 trekkie.push(args); 307 return trekkie; 308 }; 309 }; 310 for (var i = 0; i < trekkie.methods.length; i++) { 311 var key = trekkie.methods[i]; 312 trekkie[key] = trekkie.factory(key); 313 } 314 trekkie.load = function (config) { 315 trekkie.config = config || {}; 316 trekkie.config.initialDocumentCookie = document.cookie; 317 var first = document.getElementsByTagName('script')[0]; 318 var script = document.createElement('script'); 319 script.type = 'text/javascript'; 320 script.onerror = function (e) { 321 var scriptFallback = document.createElement('script'); 322 scriptFallback.type = 'text/javascript'; 323 scriptFallback.onerror = function (error) { 324 var Monorail = { 325 produce: function produce(monorailDomain, schemaId, payload) { 326 var currentMs = new Date().getTime(); 327 var event = { 328 schema_id: schemaId, 329 payload: payload, 330 metadata: { 331 event_created_at_ms: currentMs, 332 event_sent_at_ms: currentMs 333 } 334 }; 335 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 336 }, 337 sendRequest: function sendRequest(endpointUrl, payload) { 338 // Try the sendBeacon API 339 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 340 var blobData = new window.Blob([payload], { 341 type: 'text/plain' 342 }); 343 344 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 345 return true; 346 } // sendBeacon was not successful 347 348 } // XHR beacon 349 350 var xhr = new XMLHttpRequest(); 351 352 try { 353 xhr.open('POST', endpointUrl); 354 xhr.setRequestHeader('Content-Type', 'text/plain'); 355 xhr.send(payload); 356 } catch (e) { 357 console.log(e); 358 } 359 360 return false; 361 }, 362 isIos12: function isIos12() { 363 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 364 } 365 }; 366 Monorail.produce('monorail-edge.shopifysvc.com', 367 'trekkie_storefront_load_errors/1.1', 368 { 369 shop_id: 15896833, 370 theme_id: 153139282135, 371 app_name: "storefront", 372 context_url: window.location.href, 373 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js" 374 }); 375 376 }; 377 scriptFallback.async = true; 378 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 379 first.parentNode.insertBefore(scriptFallback, first); 380 }; 381 script.async = true; 382 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 383 first.parentNode.insertBefore(script, first); 384 }; 385 trekkie.load( 386 { "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 } } 387 ); 388 389 var loaded = false; 390 trekkie.ready(function () { 391 if (loaded) return; 392 loaded = true; 393 394 window.ShopifyAnalytics.lib = window.trekkie; 395 396 var originalDocumentWrite = document.write; 397 document.write = customDocumentWrite; 398 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch (error) { }; 399 document.write = originalDocumentWrite; 400 401 window.ShopifyAnalytics.lib.page(null, { "pageType": "product", "resourceType": "product", "resourceId": 9233866700552, "shopifyEmitted": true });
402 403 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 404 var token = match ? match[1] : undefined; 405 if (!hasLoggedConversion(token)) { 406 setCookieIfConversion(token); 407 window.ShopifyAnalytics.lib.track("Viewed Product", { "currency": "IDR", "variantId": 44083045826775, "productId": 9233866700552, "productGid": "gid:\/\/shopify\/Product\/9233866700552", "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "price": "835000.00", "sku": "TSLATGL1563", "brand": "Outerbloom Florist", "variant": null, "category": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", "nonInteraction": true, "remote": false }, undefined, undefined, { "shopifyEmitted": true }); 408 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1", { "currency": "IDR", "variantId": 44083045826775, "productId": 9233866700552, "productGid": "gid:\/\/shopify\/Product\/9233866700552", "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "price": "835000.00", "sku": "TSLATGL1563", "brand": "Outerbloom Florist", "variant": null, "category": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", "nonInteraction": true, "remote": false, "referer": "https:\/\/outerbloom.com\/products\/blossom-shine" }); 409 } 410 }); 411 412 413 var eventsListenerScript = document.createElement('script'); 414 eventsListenerScript.async = true; 415 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 416 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 417 418 })();</script>
418 419
419<script> 420 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 421 window.ga = function ga() { 422 (window.ga.q = window.ga.q || []).push(arguments); 423 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 424 window.Shopify.analytics.publish("ga_stub_called", {}, { sendTo: "google_osp_migration" }); 425 } 426 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."); 427 }; 428 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 429 window.Shopify.analytics.publish("ga_stub_initialized", {}, { sendTo: "google_osp_migration" }); 430 } 431 } 432 </script>
432 433
433<script defer src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 434 data-application="storefront-renderer" data-shop-id="15896833" data-render-region="gcp-asia-southeast1" 435 data-page-type="product" data-theme-instance-id="153139282135" data-theme-name="" data-theme-version="" 436 data-monorail-region="shop_domain" data-resource-timing-sampling-rate="10" data-shs="true" 437 data-shs-beacon="true" data-shs-export-with-fetch="true" data-shs-logs-sample-rate="1"></script>
437 438 439
439<script type="application/ld+json"> 440{ 441 "@context": "https://schema.org", 442 "@type": "Product", 443 "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", 444 "image": "https://belajarpsikologi.com/assets/img/logo-agam99.png", 445 "description": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", 446 "brand": { 447 "@type": "Brand", 448 "name": "AGAM99" 449 }, 450 "sku": "AGAM99", 451 "mpn": "AGAM99", 452 "url": "https://belajarpsikologi.com/", 453 "offers": { 454 "@type": "Offer", 455 "url": "https://belajarpsikologi.com/", 456 "priceCurrency": "USD", 457 "price": "11", 458 "priceValidUntil": "2026-12-06", 459 "itemCondition": "https://schema.org/NewCondition", 460 "availability": "https://schema.org/InStock", 461 "seller": { 462 "@type": "Organization", 463 "name": "AGAM99" 464 } 465 }, 466 "aggregateRating": { 467 "@type": "AggregateRating", 468 "ratingValue": "5.0", 469 "reviewCount": 96228 470 }, 471 "review": [ 472 { 473 "@type": "Review", 474 "reviewRating": { 475 "@type": "Rating", 476 "ratingValue": "5", 477 "bestRating": "5" 478 }, 479 "author": { 480 "@type": "Person", 481 "name": "Rendy - Tampilan Modern" 482 }, 483 "reviewBody": "AGAM99 menyajikan informasi yang diperbarui secara konsisten sehingga saya lebih mudah mengikuti perkembangan terbaru dari Portal Pragmatic Play tanpa harus mencari referensi dari banyak sumber." 484 }, 485 { 486 "@type": "Review", 487 "reviewRating": { 488 "@type": "Rating", 489 "ratingValue": "5", 490 "bestRating": "5" 491 }, 492 "author": { 493 "@type": "Person", 494 "name": "Aldo - Server Cepat" 495 }, 496 "reviewBody": "Menurut saya, AGAM99 memiliki penyajian informasi yang terstruktur dengan navigasi yang sederhana. Setiap pembaruan Portal Pragmatic Play ditampilkan secara ringkas sehingga mudah dipahami oleh pengunjung." 497 }, 498 { 499 "@type": "Review", 500 "reviewRating": { 501 "@type": "Rating", 502 "ratingValue": "5", 503 "bestRating": "5" 504 }, 505 "author": { 506 "@type": "Person", 507 "name": "Kevin - Sangat Menarik" 508 }, 509 "reviewBody": "Saya melihat AGAM99 cukup konsisten dalam menyajikan perkembangan Portal Pragmatic Play. Informasi terbaru selalu tersusun dengan rapi sehingga memudahkan pengunjung mengikuti pembaruan setiap waktu." 510 } 511 ] 512} 513</script>
513 514
514<script type="application/ld+json"> 515{ 516 "@context": "https://schema.org", 517 "@type": "BreadcrumbList", 518 "itemListElement": [ 519 { 520 "@type": "ListItem", 521 "position": 1, 522 "name": "AGAM99", 523 "item": "https://belajarpsikologi.com/" 524 }, 525 { 526 "@type": "ListItem", 527 "position": 2, 528 "name": "AGAM99 Login", 529 "item": "https://belajarpsikologi.com/" 530 }, 531 { 532 "@type": "ListItem", 533 "position": 3, 534 "name": "Portal Informasi", 535 "item": "https://belajarpsikologi.com/" 536 }, 537 { 538 "@type": "ListItem", 539 "position": 4, 540 "name": "Pragmatic Play", 541 "item": "https://belajarpsikologi.com/" 542 }, 543 { 544 "@type": "ListItem", 545 "position": 5, 546 "name": "Perkembangan Harian", 547 "item": "https://belajarpsikologi.com/" 548 }, 549 { 550 "@type": "ListItem", 551 "position": 6, 552 "name": "Observasi Terbaru", 553 "item": "https://belajarpsikologi.com/" 554 }, 555 { 556 "@type": "ListItem", 557 "position": 7, 558 "name": "Update Portal Pragmatic Play", 559 "item": "https://belajarpsikologi.com/" 560 }, 561 { 562 "@type": "ListItem", 563 "position": 8, 564 "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", 565 "item": "https://belajarpsikologi.com/" 566 } 567 ] 568} 569</script>
569 570
570<script type="application/ld+json"> 571 { 572 "@context": "https://schema.org", 573 "@type": "Organization", 574 "name": "AGAM99", 575 "url": "https://belajarpsikologi.com/", 576 "logo": "https://belajarpsikologi.com/assets/img/logo-agam99.png", 577 "sameAs": ["https://www.facebook.com/AGAM99", "https://twitter.com/AGAM99", "https://www.instagram.com/AGAM99"], 578 "contactPoint": { 579 "@type": "ContactPoint", 580 "telephone": "+62-812-7752-3364", 581 "contactType": "customer support", 582 "areaServed": "ID", 583 "availableLanguage": ["Indonesian", "English"] 584 } 585 } 586 </script>
586 587
587<script type="application/ld+json"> 588{ 589 "@context": "https://schema.org", 590 "@type": "FAQPage", 591 "mainEntity": [ 592 { 593 "@type": "Question", 594 "name": "Apa itu AGAM99?", 595 "acceptedAnswer": { 596 "@type": "Answer", 597 "text": "AGAM99 merangkum berbagai pembaruan yang berkaitan dengan Portal Pragmatic Play melalui halaman yang diperbarui secara berkala agar pengunjung dapat mengikuti perubahan terbaru dengan lebih praktis." 598 } 599 }, 600 { 601 "@type": "Question", 602 "name": "Informasi apa saja yang dapat ditemukan melalui AGAM99?", 603 "acceptedAnswer": { 604 "@type": "Answer", 605 "text": "Pengunjung dapat menemukan rangkuman perkembangan harian, pembahasan fitur, perubahan tampilan, serta topik terbaru yang berkaitan dengan Portal Pragmatic Play." 606 } 607 }, 608 { 609 "@type": "Question", 610 "name": "Apakah pembahasan di AGAM99 mudah dipahami oleh pengunjung baru?", 611 "acceptedAnswer": { 612 "@type": "Answer", 613 "text": "Ya, AGAM99 menyajikan setiap pembahasan menggunakan bahasa yang ringkas dan terstruktur sehingga tetap mudah dipahami oleh pengunjung baru maupun pembaca rutin." 614 } 615 }, 616 { 617 "@type": "Question", 618 "name": "Kapan waktu terbaik untuk melihat pembaruan di AGAM99?", 619 "acceptedAnswer": { 620 "@type": "Answer", 621 "text": "Pengunjung dapat membuka AGAM99 kapan saja karena halaman dirancang untuk menampilkan pembaruan secara berkala dan dapat diakses melalui berbagai perangkat." 622 } 623 }, 624 { 625 "@type": "Question", 626 "name": "Apakah AGAM99 hanya membahas satu jenis pembaruan?", 627 "acceptedAnswer": { 628 "@type": "Answer", 629 "text": "Tidak. AGAM99 membahas beragam perkembangan yang masih berkaitan dengan Portal Pragmatic Play, mulai dari perubahan fitur, tampilan, hingga rangkuman topik yang sedang diperbarui." 630 } 631 } 632 ] 633} 634</script>
634 635 636
636<script type="application/ld+json"> 637{ 638 "@context": "https://schema.org", 639 "@type": "HowToStep", 640 "name": "Cara Mengikuti Perkembangan Portal Pragmatic Play Melalui AGAM99", 641 "description": "AGAM99 menyajikan pembaruan mengenai perkembangan Portal Pragmatic Play secara berkala dengan informasi yang tersusun ringkas, mudah dipahami, dan dapat diakses melalui berbagai perangkat.", 642 "image": "https://belajarpsikologi.com/assets/img/pictures-agam99.png", 643 "step": [ 644 { 645 "@type": "HowToStep", 646 "name": "Buka Halaman AGAM99", 647 "text": "Kunjungi halaman AGAM99 melalui browser desktop maupun perangkat seluler untuk memperoleh informasi terbaru mengenai Portal Pragmatic Play.", 648 "url": "https://belajarpsikologi.com/", 649 "image": "https://belajarpsikologi.com/assets/img/pictures-agam99.png" 650 }, 651 { 652 "@type": "HowToStep", 653 "name": "Ikuti Pembaruan Harian", 654 "text": "Lihat informasi yang diperbarui secara berkala agar dapat mengikuti perkembangan terbaru Portal Pragmatic Play setiap hari.", 655 "image": "https://belajarpsikologi.com/assets/img/pictures-agam99.png" 656 }, 657 { 658 "@type": "HowToStep", 659 "name": "Pelajari Informasi yang Tersedia", 660 "text": "Baca setiap pembahasan yang disusun secara ringkas dan terstruktur sehingga informasi lebih mudah dipahami oleh pengunjung.", 661 "image": "https://belajarpsikologi.com/assets/img/pictures-agam99.png" 662 }, 663 { 664 "@type": "HowToStep", 665 "name": "Kunjungi Secara Berkala", 666 "text": "Kunjungi AGAM99 secara berkala untuk memperoleh pembaruan terbaru mengenai Portal Pragmatic Play melalui halaman yang selalu diperbarui.", 667 "image": "https://belajarpsikologi.com/assets/img/pictures-agam99.png" 668 } 669 ], 670 "tool": [ 671 { 672 "@type": "HowToTool", 673 "name": "Perangkat smartphone atau komputer" 674 }, 675 { 676 "@type": "HowToTool", 677 "name": "AGAM99" 678 } 679 ], 680 "totalTime": "PT5M", 681 "estimatedCost": { 682 "@type": "MonetaryAmount", 683 "currency": "IDR", 684 "value": "5000" 685 }, 686 "supply": { 687 "@type": "HowToSupply", 688 "name": "Deposit Semua Bank & Ewallet" 689 } 690} 691</script>
691 692 693</head> 694 695<body data-template="product" id="blossom-shine" class="template-product template-product"> 696 <!-- Google Tag Manager (noscript) -->
vendor: 73 bytes, lines 696-697
696 697 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
697GTM-MF9VVZX
vendor: 101 bytes, lines 697-699
697" height="0" width="0" 698 style="display:none;visibility:hidden"></iframe></noscript> 699
699<!-- End Google Tag Manager (noscript) --> 700 701 702 703 <div class="header-wrapper"> 704 705 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 706 707 <style> 708 #notification { 709 z-index: 99; 710 width: 100%; 711 transition: top 0.2s ease-in-out; 712 } 713 714 #notification.promo-up { 715 top: -48px !important; 716 } 717 718 .promo-bg { 719 width: 100%; 720 padding: 6px 0; 721 background: linear-gradient(to bottom, #20B2AA 0%, #20B2AA 50%, #20B2AA 100%); 722 } 723 724 .notification__message p { 725 margin: 0; 726 color: #ffffff; 727 font-size: 20px !important; 728 font-weight: bold; 729 } 730 731 .notification__message p a { 732 text-decoration: underline; 733 color: #ffffff; 734 } 735 736 @media (max-width: 991px) { 737 .notification__message p { 738 font-size: 14px !important; 739 } 740 } 741 </style> 742 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 743 <div id="notification" class="promo-down promo-bg pl-2 pr-2" 744 data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 745 <div class="page-width notification__inner "> 746 747 748 <div class="notification__message text-center"> 749 <p>AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</p> 750 </div> 751 </div> 752 </div> 753 754 755 756 757 </div> 758 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"> 759 <link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" 760 rel="stylesheet" type="text/css" media="all" /> 761 762 763 <header style="background: black;"> 764 <div class="container"> 765 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 766 <a href="https://belajarpsikologi.com/"> 767 <img src="https://belajarpsikologi.com/assets/img/logo-agam99.png" alt="LOGO AGAM99" 768 style="width: 190px;"></a> 769 <link href="https://belajarpsikologi.com/assets/img/favicon-agam99.png" rel="shortcut icon" 770 type="image/x-icon" /> 771 <div id="menu-hamburger" class="d-lg-none"> 772 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="16" height="10"
773 viewBox="0 0 16 10" fill="none"> 774 <path 775 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" 776 fill="#ffffff" /> 777 </svg> 778 779 <a href="/"><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"
780 viewBox="0 0 854 78.29"> 781 <g id="Layer_2" data-name="Layer 2"> 782 <g id="Layer_1-2" data-name="Layer 1"> 783 <path 784 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"> 785 </path> 786 <path 787 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"> 788 </path> 789 <path 790 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"> 791 </path> 792 <path 793 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"> 794 </path> 795 <path 796 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"> 797 </path> 798 <path 799 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"> 800 </path> 801 <path 802 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"> 803 </path> 804 <path 805 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"> 806 </path> 807 <path 808 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"> 809 </path> 810 <path 811 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"> 812 </path> 813 </g> 814 </g> 815 </svg> 816 </a> 817 </div> 818 819 <div class="header-icon-right header-icons col-3"> 820 <div class="icon icon-account-header d-none d-lg-block"> 821 <a href="https://belajarpsikologi.com/"> 822 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="20" 823 height="21" viewBox="0 0 20 21" fill="none"> 824 <path 825 d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" 826 stroke="#ffffff" stroke-linecap="round" /> 827 <path 828 d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" 829 stroke="#ffffff" stroke-linecap="round" /> 830 </svg> 831 832 </a> 833 </div> 834 <div class="icon icon-wishlist-header"> 835 <a href="https://belajarpsikologi.com/"> 836 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" 837 height="21" viewBox="0 0 24 21" fill="none"> 838 <path 839 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
8396 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" 840 fill="#ffffff" /> 841 </svg> 842 843 <span class="wishlist-count d-none">0</span> 844 </a> 845 </div> 846 <div class="icon icon-cart-header"> 847 <a href="https://belajarpsikologi.com/"> 848 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="22" 849 height="21" viewBox="0 0 22 21" fill="none"> 850 <path 851 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" 852 stroke="#ffffff" stroke-linecap="round" /> 853 <path 854 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" 855 stroke="#ffffff" /> 856 </svg> 857 858 </a> 859 </div> 860 </div> 861 </div> 862 </div> 863 </header> 864 865 <nav class="nav-header" 866 style="background: linear-gradient(to bottom, #20B2AA 0%, #20B2AA 50%, #20B2AA 100%);"> 867 <div class="nav-account-mobile row m-0 d-lg-none"> 868 <div class="col-6 welcome-cust p-0"> 869 870 <h1 class="logo"> 871 <a href="https://belajarpsikologi.com/"> 872 <img src="https://belajarpsikologi.com/assets/img/logo-agam99.png" alt="AGAM99" 873 style="max-height:60px;"> 874 </a> 875 </h1> 876 877 878 </div> 879 880 <div class="col-6 login-register text-right p-0"> 881 <a href="https://belajarpsikologi.com/portal/">Log In</a> | <a 882 href="https://belajarpsikologi.com/portal/">Sign Up</a> 883 </div> 884 </div> 885 <ul class="nav-menu container"> 886 887 <li class="nav-menu container"> 888 <a href="https://belajarpsikologi.com/"> 889 <span style="color: #ffffff;">AGAM99</span> 890 891 892 <li class=" nav-menu container"> 893 <a href="https://belajarpsikologi.com/"> 894 <span style="color: #ffffff;">Portal Pragmatic Play</span> 895 896 897 <li class=" nav-menu container"> 898 <a href="https://belajarpsikologi.com/">
899 <span style="color: #ffffff;">Perkembangan Harian</span> 900 901 <li class=" nav-menu container"> 902 <a href="https://belajarpsikologi.com/"> 903 <span style="color: #ffffff;">Informasi Terbaru</span> 904 905 <li class=" nav-menu container"> 906 <a href="https://belajarpsikologi.com/"> 907 <span style="color: #ffffff;">Observasi Portal</span> 908 909 <li class=" nav-menu container"> 910 <a href="https://belajarpsikologi.com/"> 911 <span style="color: #ffffff;">Pembaruan Harian</span> 912 913 <li class=" nav-menu container"> 914 <a href="https://belajarpsikologi.com/"> 915 <span style="color: #ffffff;">Kompas Perkembangan</span> 916 917 <div class="overlay-nav"> 918 <!-- Mobile Close Button in Overlay --> 919 <button id="nav-close" class="nav-close-btn d-lg-none"> 920 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 921 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 922 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" 923 stroke-linecap="round" stroke-linejoin="round" /> 924 </svg> 925 </button> 926 </div> 927 928
928<script> 929 if ($(window).width() < 992) { 930 // Level 1 menu accordion (main menu items) 931 $(".nav-menu .nav-menu container > a").click(function (e) { 932 e.preventDefault() 933 const parentLi = $(this).parent() 934 const isCurrentlyOpen = parentLi.hasClass("menu-open") 935 936 // Close all other open menus (accordion behavior) 937 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 938 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 939 940 // Toggle current menu 941 if (isCurrentlyOpen) { 942 parentLi.removeClass("menu-open") 943 $(this).next(".megamenu").slideUp() 944 } else { 945 parentLi.addClass("menu-open") 946 $(this).next(".megamenu").slideDown() 947 } 948 }) 949 950 // Level 2 menu accordion (submenu items with grandchildren) 951 $(document).on('click', '.dropdown-menu .has-submenu > a', function (e) { 952 e.preventDefault() 953 const parentLi = $(this).parent() 954 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 955 const grandchild = $(this).next(".grandchild") 956 957 // Close all other open submenus in the same dropdown (accordion behavior) 958 parentLi.siblings('.has-submenu').removeClass("submenu-open") 959 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 960 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 961 962 // Toggle current submenu 963 if (isCurrentlyOpen) { 964 parentLi.removeClass("submenu-open") 965 grandchild.slideUp() 966 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 967 } else { 968 parentLi.addClass("submenu-open") 969 grandchild.slideDown() 970 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 971 } 972 }) 973 974 $("#menu-hamburger").click(function (e) { 975 e.preventDefault() 976 $("body").toggleClass("nav_open") 977 }) 978 979 // Handle close button click 980 $("#nav-close").click(function (e) { 981 e.preventDefault() 982 $("body").removeClass("nav_open") 983 // Close all open menus when close button is clicked 984 $(".nav-menu .nav-menu container").removeClass("menu-open") 985 $(".nav-menu .megamenu").slideUp() 986 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 987 $(".dropdown-menu .grandchild").slide
987Up() 988 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 989 }) 990 } 991 992 $(".overlay-nav").click(function (e) { 993 e.preventDefault() 994 $("body").removeClass("nav_open") 995 // Close all open menus when overlay is clicked 996 $(".nav-menu .nav-menu container").removeClass("menu-open") 997 $(".nav-menu .megamenu").slideUp() 998 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 999 $(".dropdown-menu .grandchild").slideUp() 1000 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 1001 }) 1002 </script>
1002 1003 1004 1005 </div> 1006 1007 <div id="shopify-section-search-popup" class="shopify-section m-0"> 1008 <style> 1009 #search-trigger { 1010 cursor: pointer; 1011 } 1012 1013 #search-popup { 1014 display: none; 1015 position: fixed; 1016 left: 0; 1017 width: 100%; 1018 top: 0; 1019 height: 100%; 1020 justify-content: center; 1021 z-index: 9999; 1022 background: rgb(196 196 196 / 30%); 1023 } 1024 1025 #search-input { 1026 align-self: center; 1027 width: 100%; 1028 height: 80px; 1029 position: absolute; 1030 top: 0; 1031 border-bottom: 0.5px solid #A3A3A3; 1032 background-color: #fff; 1033 } 1034 1035 #search-input * { 1036 align-self: center; 1037 } 1038 1039 #search-type { 1040 width: 100%; 1041 border: none; 1042 padding-right: 20px; 1043 padding-left: 20px; 1044 font-size: 16px; 1045 color: #757575; 1046 } 1047 1048 #search-btn { 1049 font-size: 16px; 1050 font-weight: 500; 1051 } 1052 1053 #search-result { 1054 min-height: 490px; 1055 width: 100%; 1056 padding-top: 80px; 1057 } 1058 1059 #search-result .container { 1060 background-color: #fff; 1061 padding: 20px 40px; 1062 } 1063 1064 body.search-popup-open { 1065 /* .search-popup-open */ 1066 overflow: hidden; 1067 } 1068 1069 .search-popup-open #loc_delivery { 1070 display: none 1071 } 1072 1073 .search-header svg { 1074 display: none; 1075 cursor: pointer; 1076 } 1077 1078 .wrapper-search-popup { 1079 max-height: calc(100vh - 150px); 1080 overflow-y: auto; 1081 overflow-x: hidden; 1082 } 1083 1084 .group-recommend { 1085 padding: 20px 40px; 1086 } 1087 1088 .resultsearch { 1089 display: none; 1090 } 1091 1092 .results { 1093 padding: 20px 40px 1094 } 1095 1096 .resultsearch label { 1097 font-weight: 600; 1098 padding-bottom: 20px; 1099 display: block; 1100 margin-bottom: 20px; 1101 border-bottom: 1px solid #AAAAAA; 1102 } 1103 1104 ul.result_product { 1105 max-height: 300px; 1106 overflow: auto; 1107 } 1108 1109 .group-promotion ul { 1110 margin: 0; 1111 } 1112 1113 .group-promotion li { 1114 list-style: none; 1115 margin-bottom: 12px; 1116 } 1117 1118 .group-promotion li a { 1119 color: inherit; 1120 } 1121 1122 .group-recent { 1123 position: relative; 1124 padding: 20px 40px; 1125 } 1126 1127 .group-recent ul { 1128 margin: 0; 1129 } 1130 1131 .group-recent li { 1132 list-style: none; 1133 display: inline-block; 1134 margin-right: 60px; 1135 } 1136 1137 .group-recent li a { 1138 color: inherit; 1139 } 1140 1141 .last-search svg { 1142 width: 20px; 1143 vertical-align: middle; 1144 } 1145 1146 ul.last-search a { 1147 vertical-align: middle; 1148 padding: 0 10px; 1149 } 1150 1151 ul.last-search li span { 1152 cursor: pointer; 1153 } 1154 1155 .delete-all-history { 1156 position: absolute; 1157 top: 25px; 1158 right: 40px; 1159 text-decoration: underline; 1160 color: #20B2AA; 1161 cursor: pointer; 1162 font-size: 12px; 1163 } 1164 1165 form.search.search-modal__form { 1166 position: relative; 1167 } 1168 1169 button.search__button svg { 1170 width: 25px; 1171 color: #495057; 1172 fill: #757582; 1173 } 1174 1175 button.search__button.field__button { 1176 position: absolute; 1177 top: 50%; 1178 margin-top: -12px; 1179 } 1180 1181 .close-search { 1182 display: none; 1183 position: absolute; 1184 right: 65px; 1185 top: 10px; 1186 cursor: pointer; 1187 } 1188 1189 .site-overlay { 1190 position: fixed; 1191 top: 0; 1192 width: 100vw; 1193 height: 100vh; 1194 z-index: 1000; 1195 background: #0000005c; 1196 visibility: hidden; 1197 opacity: 0; 1198 pointer-events: none; 1199 transition: all .3s linear; 1200 display: block !important; 1201 } 1202 1203 .search-popup-open .site-overlay { 1204 opacity: 1;
1205 visibility: visible; 1206 pointer-events: all; 1207 z-index: -1; 1208 cursor: pointer; 1209 } 1210 1211 @media (min-width: 991px) { 1212 .group-recent ul { 1213 column-count: 3; 1214 } 1215 1216 .group-promotion li a { 1217 font-size: 12px; 1218 font-weight: 400; 1219 } 1220 1221 .group-recent li a { 1222 font-size: 12px; 1223 font-weight: 400; 1224 } 1225 } 1226 1227 .moreresult { 1228 padding: 10px 40px; 1229 border-top: 1px solid #AAAAAA; 1230 } 1231 1232 .moreresult * { 1233 align-self: center; 1234 } 1235 1236 .moreresult p { 1237 margin: 0; 1238 font-size: 12px !important; 1239 } 1240 1241 .moreresult svg { 1242 width: 13px; 1243 } 1244 1245 @media (max-width: 992px) { 1246 .icon-key-mobile { 1247 height: auto !important; 1248 width: 10px !important; 1249 } 1250 1251 body.grid-view.search-popup-open .products { 1252 -ms-flex: 0 0 100% !important; 1253 flex: 0 0 100% !important; 1254 max-width: 100% !important; 1255 } 1256 1257 button.search__button svg { 1258 width: 20px; 1259 } 1260 1261 #search-result { 1262 padding-left: 0; 1263 padding-right: 0; 1264 } 1265 1266 #search-result { 1267 padding-top: 55px; 1268 } 1269 1270 #search-input { 1271 height: 55px; 1272 } 1273 1274 .group-recommend { 1275 padding: 20px; 1276 } 1277 1278 #search-input .container { 1279 padding: 0 20px; 1280 } 1281 1282 #search-type { 1283 font-size: 14px; 1284 } 1285 1286 #search-btn { 1287 font-size: 12px; 1288 text-decoration: underline; 1289 } 1290 1291 .results { 1292 padding: 20px; 1293 } 1294 1295 .group-recommend h3 { 1296 font-size: 16px; 1297 } 1298 1299 .products .card-body { 1300 padding: 8px 0px 10px; 1301 } 1302 1303 .moreresult { 1304 padding: 10px 20px; 1305 } 1306 } 1307 </style> 1308 <style type="text/css"> 1309 div.advertisement-placeholder { 1310 text-align: center; 1311 padding-bottom: 20px; 1312 display: flex; 1313 flex-direction: column; 1314 justify-content: center; 1315 } 1316 1317 div.advertisement-text p { 1318 margin: 0; 1319 font-family: Open Sans; 1320 font-style: normal; 1321 font-weight: normal; 1322 font-size: 10px; 1323 line-height: 20px; 1324 color: #999999; 1325 } 1326 1327 div.advertisement-banner { 1328 margin: 0px auto; 1329 } 1330 1331 div#div-gpt-ad-billboard-placeholder { 1332 width: 996px; 1333 margin: 0 auto; 1334 background: #F5F5F5; 1335 padding-bottom: unset !important; 1336 min-height: 200px; 1337 } 1338 1339 div#div-gpt-ad-lb-placeholder { 1340 background: #F5F5F5; 1341 padding-bottom: unset !important; 1342 min-height: 280px; 1343 } 1344 1345 .faq-section { 1346 max-width: 1200px; 1347 margin: 50px auto; 1348 padding: 40px 20px; 1349 position: relative; 1350 background-color: rgba(0, 0, 0, 0.1); 1351 backdrop-filter: blur(25px); 1352 border-radius: 20px; 1353 } 1354 1355 .faq-section::before { 1356 content: ""; 1357 position: absolute; 1358 top: 0; 1359 left: 50%; 1360 transform: translateX(-50%); 1361 width: 80%; 1362 height: 2px; 1363 background: linear-gradient(90deg, transparent, #20B2AA, transparent) 1364 } 1365 1366 .faq-section h2 { 1367 text-align: center; 1368 font-size: 34px; 1369 font-weight: 700; 1370 margin-bottom: 50px;
1371 background: linear-gradient(135deg, #676767, #ebebeb, #676767); 1372 -webkit-background-clip: text; 1373 -webkit-text-fill-color: transparent; 1374 background-clip: text; 1375 font-family: "Poppins", sans-serif; 1376 letter-spacing: 1px 1377 } 1378 1379 .faq-container { 1380 display: flex; 1381 flex-direction: column; 1382 gap: 25px 1383 } 1384 1385 .faq-item { 1386 background: linear-gradient(145deg, #0a0a0a, #1a1a1a); 1387 border: 2px solid #20B2AA; 1388 border-radius: 20px; 1389 overflow: hidden; 1390 transition: all .4s ease; 1391 box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5) 1392 } 1393 1394 .faq-item:hover { 1395 border-color: #20B2AA; 1396 transform: translateX(10px); 1397 box-shadow: 0 12px 35px rgba(4, 141, 253, 0.25) 1398 } 1399 1400 .faq-question { 1401 width: 100%; 1402 padding: 28px 35px; 1403 background: transparent; 1404 color: #ffffff; 1405 font-size: 18px; 1406 font-weight: 600; 1407 text-align: left; 1408 border: none; 1409 cursor: pointer; 1410 display: flex; 1411 justify-content: space-between; 1412 align-items: center; 1413 font-family: "Poppins", sans-serif; 1414 transition: all .3s ease 1415 } 1416 1417 .faq-question:hover { 1418 color: #20B2AA 1419 } 1420 1421 .faq-question::after { 1422 content: '+'; 1423 font-size: 32px; 1424 font-weight: 300; 1425 transition: all .4s ease; 1426 color: #20B2AA; 1427 width: 40px; 1428 height: 40px; 1429 display: flex; 1430 align-items: center; 1431 justify-content: center; 1432 border: 2px solid #20B2AA; 1433 border-radius: 50%; 1434 background: rgba(0, 0, 0, 0.1) 1435 } 1436 1437 .faq-item.active .faq-question::after { 1438 transform: rotate(135deg); 1439 background: linear-gradient(to bottom, #000000 0%, #20B2AA 50%, #000000 100%); 1440 color: #000; 1441 border-color: transparent 1442 } 1443 1444 .faq-answer { 1445 max-height: 0; 1446 overflow: hidden; 1447 transition: max-height .5s ease, padding .5s ease; 1448 background: linear-gradient(180deg, rgba(253, 228, 4, 0.05), transparent); 1449 padding: 0 35px 1450 } 1451 1452 .faq-item.active .faq-answer { 1453 max-height: 800px; 1454 padding: 30px 35px; 1455 border-top: 1px solid rgba(4, 0, 255, 0.6) 1456 } 1457 1458 .faq-answer p { 1459 color: #e0e0e0; 1460 font-size: 16px; 1461 line-height: 2; 1462 margin: 0; 1463 font-family: "Poppins", sans-serif 1464 } 1465 1466 @media (max-width:768px) { 1467 1468 .faq-section { 1469 padding: 30px 15px 1470 } 1471 1472 .faq-section h2 { 1473 font-size: 26px 1474 } 1475 1476 .faq-question { 1477 font-size: 16px; 1478 padding: 22px 25px 1479 } 1480 1481 .faq-question::after { 1482 width: 35px; 1483 height: 35px; 1484 font-size: 28px 1485 } 1486 1487 .faq-answer { 1488 padding: 0 25px 1489 } 1490 1491 .faq-item.active .faq-answer { 1492 padding: 25px 1493 } 1494 1495 .faq-item:hover { 1496 transform: translateX(5px) 1497 } 1498 } 1499 </style> 1500 <div id="search-popup"> 1501 <div id="search-input" class="row"> 1502 <div class="container w-100"> 1503 <form action="/search" method="get" role="search" 1504 class="search search-modal__form d-flex justify-content-between"> 1505 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="20" height="20"
1506 viewBox="0 0 20 20" fill="none"> 1507 <path 1508 d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" 1509 fill="#ffffff" /> 1510 </svg> 1511 1512 <input type="hidden" name="type" value="product"> 1513 <input type="text" id="search-type" name="q" class="search-popup" 1514 placeholder="Gifts that linger: Uncover treasures for cherished moments."> 1515 <div class="close-search"><svg 1516 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="18" 1517 height="18" viewBox="0 0 18 18" fill="none"> 1518 <path 1519 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" 1520 fill="#757575" /> 1521 </svg> 1522 </div> 1523 <button id="search-btn">Search</button> 1524 </form> 1525 </div> 1526 </div> 1527 <div id="search-result" class="container m-auto"> 1528 <div class="container p-0"> 1529 <div class="group-promotion"> 1530 <div class="resultsearch"> 1531 <div class="row results"> 1532 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1533 <label>SUGGESTIONS</label> 1534 <ul class="result_collection"></ul> 1535 </div> 1536 <div class="col-12 col-lg-6"> 1537 <label>PRODUCTS</label> 1538 <ul class="result_product"></ul> 1539 </div> 1540 </div> 1541 <div class="d-flex justify-content-between moreresult m-0"> 1542 <p>Search for<span></span></p> 1543 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1544 width="32" height="32" viewBox="0 0 32 32"> 1545 <title>icon-arrow-right</title> 1546 <path 1547 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"> 1548 </path> 1549 </svg> 1550 </div> 1551 </div> 1552 </div> 1553 <div class="group-recent hide"> 1554 <h3>RECENT SEARCH</h3>
1555 <span class="delete-all-history">Hapus riwayat</span> 1556 <ul class="last-search"></ul> 1557 </div> 1558 <div class="group-recommend"> 1559 <h3>YOU MAY ALSO LIKE</h3> 1560 1561 1562 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1563 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1564 1565 1566 <div class="swiper-slide card"> 1567 1568 1569 1570 1571 <div class="products" data-lazy="false"> 1572 <div class="bg-products"> 1573 <div class="wishlist-toggle" 1574 data-product-handle="mid-autumn-of-love-mooncake"> 1575 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1576 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1577 <path 1578 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.
157811233C11.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" 1579 fill="#ffffff" /> 1580 </svg> 1581 1582 </div> 1583 <a href="/products/mid-autumn-of-love-mooncake"> 1584 1585 <div class="product-card-img-container p-0 position-relative"> 1586 1587 <img class="product-card-img" lazy="false" 1588 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1589 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1590 alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1591 </div> 1592 <div class="card-body product-card-info"> 1593 <h5 class="h5 mb-0"> 1594 Mid Autumn of Love Mooncake 1595 </h5> 1596 <div class="product-card-price"> 1597 1598 <div class="product-price-sale"> 1599 <s class="product-card-price-before card-money">Rp 1600 588.000</s> 1601 <span class="product-card-discount small"> 1602 (-40%) 1603 </span> 1604 </div> 1605 1606 1607 1608 <div class="price-discount"> 1609 <h4 class="product-card-price-after card-money">Rp 1610 348.000</h4> 1611 </div> 1612 1613 1614 1615 1616 1617 </div> 1618 1619 </div> 1620 </a> 1621 </div> 1622 1623 </div> 1624 1625 </div> 1626 1627 1628 1629 <div class="swiper-slide card"> 1630 1631 1632 1633 1634 <div class="products" data-lazy="false"> 1635 <div class="bg-products"> 1636 <div class="wishlist-toggle" 1637 data-product-handle="mid-autumn-of-joy-mooncake"> 1638 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1639 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1640 <path 1641 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
16416 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" 1642 fill="#ffffff" /> 1643 </svg> 1644 1645 </div> 1646 <a href="/products/mid-autumn-of-joy-mooncake"> 1647 1648 <div class="product-card-img-container p-0 position-relative"> 1649 1650 <img class="product-card-img" lazy="false" 1651 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1652 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1653 alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1654 </div> 1655 <div class="card-body product-card-info"> 1656 <h5 class="h5 mb-0"> 1657 Mid Autumn of Joy Mooncake 1658 </h5> 1659 <div class="product-card-price"> 1660 1661 <div class="product-price-sale"> 1662 <s class="product-card-price-before card-money">Rp 1663 888.000</s> 1664 <span class="product-card-discount small"> 1665 (-33%) 1666 </span> 1667 </div> 1668 1669 1670 1671 <div class="price-discount"> 1672 <h4 class="product-card-price-after card-money">Rp 1673 588.000</h4> 1674 </div> 1675 1676 1677 1678 1679 1680 </div> 1681 1682 </div> 1683 </a> 1684 </div> 1685 1686 </div> 1687 1688 </div> 1689 1690 1691 1692 <div class="swiper-slide card"> 1693 1694 1695 1696 1697 <div class="products" data-lazy="false"> 1698 <div class="bg-products"> 1699 <div class="wishlist-toggle" 1700 data-product-handle="mid-autumn-of-fortune-mooncake"> 1701 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1702 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1703 <path 1704 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
17046 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" 1705 fill="#ffffff" /> 1706 </svg> 1707 1708 </div> 1709 <a href="/products/mid-autumn-of-fortune-mooncake"> 1710 1711 <div class="product-card-img-container p-0 position-relative"> 1712 1713 <img class="product-card-img" lazy="false" 1714 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1715 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1716 alt="Mid Autumn of Fortune Mooncake" height="200" 1717 width="200"> 1718 </div> 1719 <div class="card-body product-card-info"> 1720 <h5 class="h5 mb-0"> 1721 Mid Autumn of Fortune Mooncake 1722 </h5> 1723 <div class="product-card-price"> 1724 1725 <div class="product-price-sale"> 1726 <s class="product-card-price-before card-money">Rp 1727 1.188.000</s> 1728 <span class="product-card-discount small"> 1729 (-33%) 1730 </span> 1731 </div> 1732 1733 1734 1735 <div class="price-discount"> 1736 <h4 class="product-card-price-after card-money">Rp 1737 788.000</h4> 1738 </div> 1739 1740 1741 1742 1743 1744 </div> 1745 1746 </div> 1747 </a> 1748 </div> 1749 1750 </div> 1751 1752 </div> 1753 1754 1755 1756 <div class="swiper-slide card"> 1757 1758 1759 1760 1761 <div class="products" data-lazy="false"> 1762 <div class="bg-products"> 1763 <div class="wishlist-toggle" 1764 data-product-handle="mid-autumn-festival-mooncake"> 1765 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1766 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1767 <path 1768 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
17686 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" 1769 fill="#ffffff" /> 1770 </svg> 1771 1772 </div> 1773 <a href="/products/mid-autumn-festival-mooncake"> 1774 1775 <div class="product-card-img-container p-0 position-relative"> 1776 1777 <img class="product-card-img" lazy="false" 1778 src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1779 data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1780 alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1781 </div> 1782 <div class="card-body product-card-info"> 1783 <h5 class="h5 mb-0"> 1784 Mid Autumn Festival Mooncake 1785 </h5> 1786 <div class="product-card-price"> 1787 1788 <div class="product-price-sale"> 1789 <s class="product-card-price-before card-money">Rp 1790 1.288.000</s> 1791 <span class="product-card-discount small"> 1792 (-23%) 1793 </span> 1794 </div> 1795 1796 1797 1798 <div class="price-discount"> 1799 <h4 class="product-card-price-after card-money">Rp 1800 988.000</h4> 1801 </div> 1802 1803 1804 1805 1806 1807 </div> 1808 1809 </div> 1810 </a> 1811 </div> 1812 1813 </div> 1814 1815 </div> 1816 1817 1818 1819 <div class="swiper-slide card"> 1820 1821 1822 1823 1824 <div class="products" data-lazy="false"> 1825 <div class="bg-products"> 1826 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1827 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1828 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1829 <path 1830 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
18306 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" 1831 fill="#ffffff" /> 1832 </svg> 1833 1834 </div> 1835 <a href="/products/the-jade-bouquet"> 1836 1837 <div class="product-card-img-container p-0 position-relative"> 1838 1839 <img class="product-card-img" lazy="false" 1840 src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1841 data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1842 alt="The Jade Bouquet" height="200" width="200"> 1843 </div> 1844 <div class="card-body product-card-info"> 1845 <h5 class="h5 mb-0"> 1846 The Jade Bouquet 1847 </h5> 1848 <div class="product-card-price"> 1849 1850 <div class="product-price-sale"> 1851 <s class="product-card-price-before card-money">Rp 1852 435.000</s> 1853 <span class="product-card-discount small"> 1854 (-34%) 1855 </span> 1856 </div> 1857 1858 1859 1860 <div class="price-discount"> 1861 <h4 class="product-card-price-after card-money">Rp 1862 285.000</h4> 1863 </div> 1864 1865 1866 1867 1868 1869 </div> 1870 1871 </div> 1872 </a> 1873 </div> 1874 1875 </div> 1876 1877 </div> 1878 1879 1880 1881 <div class="swiper-slide card"> 1882 1883 1884 1885 1886 <div class="products" data-lazy="false"> 1887 <div class="bg-products"> 1888 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1889 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1890 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1891 <path 1892 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
18926 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" 1893 fill="#ffffff" /> 1894 </svg> 1895 1896 </div> 1897 <a href="/products/the-selena-bouquet"> 1898 1899 <div class="product-card-img-container p-0 position-relative"> 1900 1901 <img class="product-card-img" lazy="false" 1902 src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 1903 data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 1904 alt="The Selena Bouquet" height="200" width="200"> 1905 </div> 1906 <div class="card-body product-card-info"> 1907 <h5 class="h5 mb-0"> 1908 The Selena Bouquet 1909 </h5> 1910 <div class="product-card-price"> 1911 1912 <div class="product-price-sale"> 1913 <s class="product-card-price-before card-money">Rp 1914 335.000</s> 1915 <span class="product-card-discount small"> 1916 (-29%) 1917 </span> 1918 </div> 1919 1920 1921 1922 <div class="price-discount"> 1923 <h4 class="product-card-price-after card-money">Rp 1924 235.000</h4> 1925 </div> 1926 1927 1928 1929 1930 1931 </div> 1932 1933 </div> 1934 </a> 1935 </div> 1936 1937 </div> 1938 1939 </div> 1940 1941 1942 1943 <div class="swiper-slide card"> 1944 1945 1946 1947 1948 <div class="products" data-lazy="false"> 1949 <div class="bg-products"> 1950 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1951 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 1952 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1953 <path 1954 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
19546 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" 1955 fill="#ffffff" /> 1956 </svg> 1957 1958 </div> 1959 <a href="/products/the-viola-bouquet"> 1960 1961 <div class="product-card-img-container p-0 position-relative"> 1962 1963 <img class="product-card-img" lazy="false" 1964 src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 1965 data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 1966 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." 1967 height="200" width="200"> 1968 </div> 1969 <div class="card-body product-card-info"> 1970 <h5 class="h5 mb-0"> 1971 The Viola Bouquet 1972 </h5> 1973 <div class="product-card-price"> 1974 1975 <div class="product-price-sale"> 1976 <s class="product-card-price-before card-money">Rp 1977 385.000</s> 1978 <span class="product-card-discount small"> 1979 (-25%) 1980 </span> 1981 </div> 1982 1983 1984 1985 <div class="price-discount"> 1986 <h4 class="product-card-price-after card-money">Rp 1987 285.000</h4> 1988 </div> 1989 1990 1991 1992 1993 1994 </div> 1995 1996 </div> 1997 </a> 1998 </div> 1999 2000 </div> 2001 2002 </div> 2003 2004 2005 2006 <div class="swiper-slide card"> 2007 2008 2009 2010 2011 <div class="products" data-lazy="false"> 2012 <div class="bg-products"> 2013 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 2014 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 2015 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2016 <path 2017 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
20176 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" 2018 fill="#ffffff" /> 2019 </svg> 2020 2021 </div> 2022 <a href="/products/the-minerva-bouquet"> 2023 2024 <div class="product-card-img-container p-0 position-relative"> 2025 2026 <img class="product-card-img" lazy="false" 2027 src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 2028 data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 2029 alt="The Minerva Bouquet" height="200" width="200"> 2030 </div> 2031 <div class="card-body product-card-info"> 2032 <h5 class="h5 mb-0"> 2033 The Minerva Bouquet 2034 </h5> 2035 <div class="product-card-price"> 2036 2037 <div class="product-price-sale"> 2038 <s class="product-card-price-before card-money">Rp 2039 385.000</s> 2040 <span class="product-card-discount small"> 2041 (-25%) 2042 </span> 2043 </div> 2044 2045 2046 2047 <div class="price-discount"> 2048 <h4 class="product-card-price-after card-money">Rp 2049 285.000</h4> 2050 </div> 2051 2052 2053 2054 2055 2056 </div> 2057 2058 </div> 2059 </a> 2060 </div> 2061 2062 </div> 2063 2064 </div> 2065 2066 2067 2068 <div class="swiper-slide card"> 2069 2070 2071 2072 2073 <div class="products" data-lazy="false"> 2074 <div class="bg-products"> 2075 <div class="wishlist-toggle" 2076 data-product-handle="congraduations-bouquet"> 2077 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 2078 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2079 <path 2080 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
20806 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" 2081 fill="#ffffff" /> 2082 </svg> 2083 2084 </div> 2085 <a href="/products/congraduations-bouquet"> 2086 2087 <div class="product-card-img-container p-0 position-relative"> 2088 2089 <img class="product-card-img" lazy="false" 2090 src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 2091 data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 2092 alt="Congraduations Bouquet" height="200" width="200"> 2093 </div> 2094 <div class="card-body product-card-info"> 2095 <h5 class="h5 mb-0"> 2096 Congraduations Bouquet 2097 </h5> 2098 <div class="product-card-price"> 2099 2100 <div class="product-price-sale"> 2101 <s class="product-card-price-before card-money">Rp 2102 380.000</s> 2103 <span class="product-card-discount small"> 2104 (-25%) 2105 </span> 2106 </div> 2107 2108 2109 2110 <div class="price-discount"> 2111 <h4 class="product-card-price-after card-money">Rp 2112 285.000</h4> 2113 </div> 2114 2115 2116 2117 2118 2119 </div> 2120 2121 </div> 2122 </a> 2123 </div> 2124 2125 </div> 2126 2127 </div> 2128 2129 2130 2131 <div class="swiper-slide card"> 2132 2133 2134 2135 2136 <div class="products" data-lazy="false"> 2137 <div class="bg-products"> 2138 <div class="wishlist-toggle" 2139 data-product-handle="grad-gorgeous-bouquet"> 2140 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 2141 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2142 <path 2143 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
21436 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" 2144 fill="#ffffff" /> 2145 </svg> 2146 2147 </div> 2148 <a href="/products/grad-gorgeous-bouquet"> 2149 2150 <div class="product-card-img-container p-0 position-relative"> 2151 2152 <img class="product-card-img" lazy="false" 2153 src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2154 data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2155 alt="Grad & Gorgeous Bouquet" height="200" width="200"> 2156 </div> 2157 <div class="card-body product-card-info"> 2158 <h5 class="h5 mb-0"> 2159 Grad & Gorgeous Bouquet 2160 </h5> 2161 <div class="product-card-price"> 2162 2163 <div class="product-price-sale"> 2164 <s class="product-card-price-before card-money">Rp 2165 380.000</s> 2166 <span class="product-card-discount small"> 2167 (-25%) 2168 </span> 2169 </div> 2170 2171 2172 2173 <div class="price-discount"> 2174 <h4 class="product-card-price-after card-money">Rp 2175 285.000</h4> 2176 </div> 2177 2178 2179 2180 2181 2182 </div> 2183 2184 </div> 2185 </a> 2186 </div> 2187 2188 </div> 2189 2190 </div> 2191 2192 2193 </div> 2194 </div> 2195 2196 </div> 2197 </div> 2198 </div> 2199 2200 <div class="site-overlay" style="display: none"></div> 2201 </div> 2202
2202<script> 2203 2204 var swiper = new Swiper('.popup-recommend', { 2205 slidesPerView: 4, 2206 spaceBetween: 30, 2207 lazy: true, 2208 speed: 300, 2209 breakpoints: { 2210 // when window width is <= 576px 2211 576: { 2212 slidesPerView: 2, 2213 spaceBetween: 10, 2214 freeMode: true, 2215 resistance: true, 2216 resistanceRatio: 0, 2217 freeModeMomentumRatio: 0.45, 2218 freeModeMomentumVelocityRatio: 1.5 2219 }, 2220 768: { 2221 slidesPerView: 2, 2222 spaceBetween: 10 2223 }, 2224 992: { 2225 slidesPerView: 3, 2226 spaceBetween: 20 2227 } 2228 } 2229 }); 2230 2231 const searchContainer = $("#search-popup") 2232 const searchInput = $(".search-popup") 2233 const result_collection = $('.result_collection') 2234 const result_product = $('.result_product') 2235 const resultsearch = $('.resultsearch') 2236 const resultrecommend = $(".group-recommend") 2237 const moreresult = $(".moreresult") 2238 2239 searchInput.keyup(function () { 2240 const input = $(this).val() 2241 moreresult.find("p span").text(` â${input}â`) 2242 if (input.length > 2) { 2243 $(".close-search").show() 2244 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2245 $.ajax({
2246 type: 'GET', 2247 url, 2248 beforeSend: function () { 2249 // setting a timeout 2250 // $(placeholder).addClass('loading'); 2251 }, 2252 success: function (response) { 2253 resultsearch.show() 2254 resultrecommend.hide() 2255 result_collection.html("") 2256 result_product.html("") 2257 const collections = response.resources.results.collections 2258 const products = response.resources.results.products 2259 let collection_length = collections.length 2260 let product_length = products.length 2261 // if(collections.length > 5) { 2262 // collection_length = 5 2263 // } 2264 // if(products.length > 5) { 2265 // product_length = 5 2266 // } 2267 for (let i = 0; i < collection_length; i++) { 2268 const title = collections[i].title 2269 const url = collections[i].url 2270 let html_collection 2271 if (!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2272 html_collection = ` 2273 <li class="item" data-title="${title}"> 2274 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2275 </li> 2276 ` 2277 } 2278 result_collection.append(html_collection) 2279 } 2280 for (let i = 0; i < product_length; i++) { 2281 const title = products[i].title 2282 const url = products[i].url 2283 const image = products[i].featured_image.url 2284 const vendor = products[i].vendor 2285 let html_product 2286 if (vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')) { 2287 html_product = ` 2288 <li class="item" data-vendor="${vendor}"> 2289 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2290 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2291 </a> 2292 </li> 2293 ` 2294 } 2295 result_product.append(html_product) 2296 } 2297 }, 2298 error: function (xhr) { // if error occured 2299 alert("Error occured.please try again"); 2300 }, 2301 complete: function (response) { 2302 // $(placeholder).removeClass('loading'); 2303 }, 2304 dataType: 'JSON' 2305 }); 2306 } else { 2307 result_collection.html("") 2308 result_product.html("") 2309 2310 resultsearch.hide() 2311 resultrecommend.show() 2312 } 2313 }) 2314 2315 moreresult.click(function () { 2316 $("#search-btn").trigger("click"); 2317 }) 2318 2319 $(".close-search").click(function () { 2320 $(this).hide() 2321 searchInput.val("") 2322 searchInput.focus() 2323 resultsearch.hide() 2324 resultrecommend.show() 2325 }) 2326 2327 function setCookie(name, value, days) { 2328 var expires = ""; 2329 if (days) { 2330 var date = new Date(); 2331 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 2332 expires = "; expires=" + date.toUTCString(); 2333 } 2334 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2335 } 2336 function getCookie(name) { 2337 var nameEQ = name + "="; 2338 var ca = document.cookie.split(';'); 2339 for (var i = 0; i < ca.length; i++) { 2340 var c = ca[i];
2341 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 2342 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 2343 } 2344 return null; 2345 } 2346 let last_search_name = [] 2347 let last_search_url = [] 2348 $(".group-recent").hide() 2349 if (getCookie("last_search_name") != null && getCookie("last_search_url") != null) { 2350 if (getCookie("last_search_name") != "" && getCookie("last_search_url") != "") { 2351 $(".group-recent").show() 2352 last_search_name = getCookie("last_search_name"); 2353 last_search_url = getCookie("last_search_url"); 2354 const arrName = last_search_name.substring(1).split(',').reverse() 2355 const arrUrl = last_search_url.substring(1).split(',').reverse() 2356 console.log(arrName, 'Array Name') 2357 console.log(arrUrl, 'Array Url') 2358 let length = arrName.length 2359 if (arrName.length > 5) { 2360 length = 5 2361 } 2362 for (let n = 0; n < length; n++) { 2363 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2364 $(".group-recent ul").append(html2) 2365 } 2366 } 2367 } 2368 console.log(last_search_name, 'Name') 2369 console.log(last_search_url, 'url') 2370 2371 resultsearch.delegate(".item a", "click", function () { 2372 let name = [last_search_name] 2373 let url = [last_search_url] 2374 name.push($(this).attr('data-title')) 2375 url.push($(this).attr('data-url')) 2376 setCookie("last_search_name", name, 7); 2377 setCookie("last_search_url", url, 7); 2378 }) 2379 2380 $(".delete-all-history").click(function () { 2381 setCookie("last_search_name", null, 0); 2382 setCookie("last_search_url", null, 0); 2383 $(".last-search").hide(); 2384 setTimeout(function () { 2385 location.reload(); 2386 }, 500); 2387 }) 2388 2389 $("#search-trigger").click(function () { 2390 search_open() 2391 }) 2392 $(".icon-search-mobile").click(function () { 2393 search_open() 2394 }) 2395 $(".search-header svg").click(function () { 2396 search_close() 2397 }) 2398 $(".icon-key-mobile").click(function () { 2399 search_close() 2400 }) 2401 2402 function search_open() { 2403 $("body").addClass("search-popup-open") 2404 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2405 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2406 $(".search-popup").focus() 2407 $('.popup-recommend')[0].swiper.update(); 2408 } 2409 function search_close() { 2410 $("body").removeClass("search-popup-open") 2411 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2412 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2413 searchInput.val("") 2414 resultsearch.hide() 2415 resultrecommend.show() 2416 } 2417 2418 $(".site-overlay").click(function () { 2419 search_close() 2420 }) 2421 </script>
2421 2422 2423 </div> 2424 </div> 2425 2426 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 2427 <main class="main-content pt-0" role="main"> 2428 2429 <div id="breadcrumbProduct" class="d-none d-lg-block"> 2430 <style> 2431 #breadcrumbProduct { 2432 padding: 20px 0; 2433 } 2434 2435 #breadcrumbProduct ul { 2436 display: flex; 2437 padding: 0; 2438 list-style: none; 2439 margin: 0; 2440 gap: 12px; 2441 } 2442 2443 #breadcrumbProduct ul li { 2444 text-transform: uppercase; 2445 margin: 0; 2446 font-size: 12px; 2447 } 2448 2449 #breadcrumbProduct ul li a { 2450 color: #757575; 2451 } 2452 2453 #breadcrumbProduct ul li svg { 2454 width: 10px; 2455 height: 10px; 2456 padding: 0; 2457 color: #757575; 2458 vertical-align: middle; 2459 } 2460 </style> 2461 <div class="container" style="color: #ffffff;"> 2462 <ul role="navigation" aria-label="breadcrumbs"> 2463 <li><a href="https://belajarpsikologi.com/" 2464 style="color: #ffffff;">AGAM99</a></li> 2465 <li><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="7" height="10"
2466 viewBox="0 0 7 10" fill="none"> 2467 <path 2468 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2469 fill="#757575" /> 2470 </svg></li> 2471 <li><a href="https://belajarpsikologi.com/" 2472 style="color: #ffffff;">Portal Pragmatic Play</a> 2473 </li> 2474 <li><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="7" height="10" 2475 viewBox="0 0 7 10" fill="none"> 2476 <path 2477 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2478 fill="#757575" /> 2479 </svg></li> 2480 <li><a href="https://belajarpsikologi.com/" 2481 style="color: #ffffff;">Perkembangan Harian</a> 2482 </li> 2483 <li><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="7" height="10"
2484 viewBox="0 0 7 10" fill="none"> 2485 <path 2486 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2487 fill="#757575" /> 2488 </svg></li> 2489 <li><a href="https://belajarpsikologi.com/" 2490 style="color: #ffffff;">Informasi Terbaru</a> 2491 </li> 2492 <li><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="7" height="10" 2493 viewBox="0 0 7 10" fill="none"> 2494 <path 2495 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2496 fill="#757575" /> 2497 </svg></li> 2498 <li><a style="color: #ffffff;">AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</a></li> 2499 2500 2501 </ul> 2502 </div> 2503 2504 </div> 2505 2506 2507 <div id="shopify-section-Product" class="shopify-section product-section mt-0"> 2508 <link href="//outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" 2509 rel="stylesheet" type="text/css" media="all" /> 2510 2511 2512 <style> 2513 .bg-card { 2514 background-color: #000000; 2515 } 2516 </style> 2517 2518 <!-- /templates/product.liquid --> 2519 2520 2521 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2522 2523 2524 <div class="product-standing-flower" data-product-type="flowerBoard"> 2525 <meta itemprop="url" content="https://belajarpsikologi.com/"> 2526 <meta itemprop="image" 2527 content="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 2528 2529 2530 2531 <input id="data-sku" type="hidden" value="TSLATGL1563"> 2532 <div class="product-single" 2533 style="background-image: url(https://belajarpsikologi.com/assets/img/pictures-agam99.png); background-attachment: fixed;"> 2534 <div id="product-top" class="container"> 2535 <div class="row bg-card product-sticky" 2536 style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2537 <div id="product-image" class="col-lg-7 text-center"> 2538 <div class="product-image"> 2539 <div class="row no-gutters"> 2540 2541 <div id="product-featured-image" class="row w-100"> 2542 2543 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2544 2545 <div class="swiper-container gallery-thumbs" 2546 style="min-height: 500px"> 2547 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" 2548 id="ProductThumbsx"> 2549 2550 <li class="swiper-slide" data-type="image"> 2551 <a href="files/Blossom-Shine-WM.jpg" 2552 data-standard="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2553 data-image="files/Blossom-Shine-WM.jpg" 2554 data-position="1" class="product-single__thumbnail"> 2555 <img class="lazyload w-100" 2556 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2557 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2558 width="" height=""> 2559 </a> 2560 </li> 2561 2562 2563 2564 2565 <li class="swiper-slide" data-type="image"> 2566 <a href="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2567 data-standard="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2568 data-image="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2569 data-position="2" class="product-single__thumbnail"> 2570 <img class="lazyload w-100" 2571 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2572 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2573 width="" height=""> 2574 </a> 2575 </li> 2576 2577 2578 2579 2580 <li class="swiper-slide" data-type="image"> 2581 <a href="files/Blossom-Shine_3-WM.jpg" 2582 data-standard="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2583 data-image="files/Blossom-Shine_3-WM.jpg" 2584 data-position="3" class="product-single__thumbnail"> 2585 <img class="lazyload w-100" 2586 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2587 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2588 width="" height=""> 2589 </a> 2590 </li> 2591 2592 2593 2594 2595 <li class="swiper-slide" data-type="image"> 2596 <a href="files/Blossom-Shine_4.jpg" 2597 data-standard="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2598 data-image="files/Blossom-Shine_4.jpg" 2599 data-position="4" class="product-single__thumbnail"> 2600 <img class="lazyload w-100" 2601 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2602 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2603 width="" height=""> 2604 </a> 2605 </li> 2606 2607 2608 2609 </ul> 2610 </div> 2611 2612 </div> 2613 2614 <div id="featured-image-product" 2615 class="col-lg-10 col-12 d-none d-lg-block"> 2616 <div class="swiper-container gallery-top"> 2617 <div class="swiper-slide product-single__image"> 2618 2619 <div class="product-single__photos slider slider-for" 2620 id="ProductPhoto"> 2621 2622 2623 <div 2624 class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2625 <a 2626 href="https://belajarpsikologi.com/assets/img/pictures-agam99.png"> 2627 <img src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2628 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2629 id="ProductPhotoImg" class="lazyload"> 2630 2631 </a> 2632 </div> 2633 </div> 2634 2635 </div> 2636 <div class="swiper-slide product-single__video" 2637 style="display: none"> 2638 <video 2639 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2640 playsinline loop muted></video> 2641 </div> 2642 </div> 2643 </div> 2644 </div> 2645 2646 <div id="featured-image-product2" class="col-12 d-lg-none"> 2647 <div class="swiper-container gallery-mobile"> 2648 <ul class="swiper-wrapper"> 2649 <li class="swiper-slide img"> 2650 2651 <img class="swiper-lazy" 2652 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2653 data-src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2654 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2655 width="" height=""> 2656 2657 </li> 2658 2659 2660 <li class="swiper-slide img"> 2661 2662 <img class="swiper-lazy" 2663 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2664 data-src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2665 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2666 width="" height=""> 2667 2668 </li> 2669 2670 2671 <li class="swiper-slide img"> 2672 2673 <img class="swiper-lazy" 2674 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2675 data-src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2676 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2677 width="" height=""> 2678 2679 </li> 2680 2681 2682 <li class="swiper-slide img"> 2683 2684 <img class="swiper-lazy" 2685 src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2686 data-src="https://belajarpsikologi.com/assets/img/pictures-agam99.png" 2687 alt="AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari" 2688 width="" height=""> 2689 2690 </li> 2691 2692 2693 </ul> 2694 2695 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" 2696 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 2697 width="7" height="12" viewBox="0 0 7 12"> 2698 <circle cx="60%" cy="50%" r="12" fill="transparent" /> 2699 <path 2700 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" /> 2701 </svg></div> 2702 <div class="swiper-button-next"><svg 2703 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 2704 width="7" height="10" viewB
2704ox="0 0 7 10" fill="none"> 2705 <path 2706 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2707 fill="#757575" /> 2708 </svg></div> 2709 2710 <!-- Add Pagination --> 2711 <div class="swiper-pagination"></div> 2712 2713 </div> 2714 </div> 2715 2716 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2717 <!-- product video --> 2718 <style> 2719 .c-pdp-product-info { 2720 background-color: #000000 !important; 2721 padding: 12px; 2722 margin: 0; 2723 color: white; 2724 } 2725 2726 .view-video { 2727 display: block; 2728 margin: auto; 2729 padding: 5px 10px; 2730 font-size: 16px; 2731 font-weight: bold; 2732 border: 2px solid #ffffff; 2733 background: #fff; 2734 } 2735 2736 .view-video .icon-play { 2737 fill: #ffffff; 2738 vertical-align: middle; 2739 } 2740 2741 .video-modal { 2742 display: none; 2743 position: fixed; 2744 background: rgba(0, 0, 0, .5); 2745 width: 100%; 2746 height: 100%; 2747 overflow: auto; 2748 z-index: 1; 2749 top: 0; 2750 left: 0; 2751 } 2752 2753 .close-video { 2754 position: absolute; 2755 right: 9px; 2756 top: 8%; 2757 z-index: 2; 2758 padding: 5px; 2759 } 2760 2761 .close-video .icon { 2762 width: 30px; 2763 height: 30px; 2764 } 2765 2766 /*responsive iframe */ 2767 .video-container { 2768 position: relative; 2769 padding-bottom: 48.25%; 2770 padding-top: 35px; 2771 height: 0; 2772 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); 2773 } 2774 2775 .video-container iframe { 2776 position: absolute; 2777 top: 60%; 2778 left: 0; 2779 width: 100%; 2780 height: 100%; 2781 } 2782 2783 .youtube { 2784 background-color: #000; 2785 margin-bottom: 30px; 2786 position: relative; 2787 padding-top: 56.25%; 2788 overflow: hidden; 2789 cursor: pointer; 2790 width: 100%; 2791 } 2792 2793 .swiper-slide .youtube { 2794 max-width: 480px; 2795 } 2796 2797 .youtube img { 2798 width: 100%; 2799 top: -16.82%; 2800 left: 0; 2801 opacity: 0.7; 2802 } 2803 2804 .youtube .play-button { 2805 width: 90px; 2806 height: 60px; 2807 background-color: #333; 2808 box-shadow: 0 0 30px rgba(0, 0, 0, 0.6); 2809 z-index: 1; 2810 opacity: 0.8; 2811 border-radius: 6px; 2812 } 2813 2814 .youtube .play-button:before { 2815 content: ""; 2816 border-style: solid; 2817 border-width: 15px 0 15px 26.0px; 2818 border-color: transparent transparent transparent #fff; 2819 } 2820 2821 .youtube img, 2822 .youtube .play-button { 2823 cursor: pointer; 2824 } 2825 2826 .youtube img, 2827 .youtube iframe, 2828 .youtube .play-button, 2829 .youtube .play-button:before { 2830 position: absolute; 2831 } 2832 2833 .youtube .play-button, 2834 .youtube .play-button:before { 2835 top: 50%; 2836 left: 50%; 2837 transform: translate3d(-50%, -50%, 0); 2838 } 2839 2840 .youtube iframe { 2841 height: 100%; 2842 width: 100%; 2843 top: 0; 2844 left: 0; 2845 } 2846 </style> 2847 2848 2849 </div> 2850 </div> 2851 2852 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2853 2854 </div> 2855 2856
2856<script> 2857 if ($(window).width() < 991) { 2858 var direction = 'horizontal' 2859 } else { 2860 var direction = 'vertical' 2861 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2862 } 2863 var swiper = new Swiper('.gallery-thumbs', { 2864 2865 direction, 2866 slidesPerView: 4.5, 2867 spaceBetween: 12, 2868 navigation: { 2869 nextEl: '.swiper-button-next', 2870 prevEl: '.swiper-button-prev', 2871 } 2872 }); 2873 2874 var swiper = new Swiper('.gallery-mobile', { 2875 //loop: true, 2876 lazy: true, 2877 speed: 300, 2878 resistance: true, 2879 resistanceRatio: 0, 2880 freeModeMomentumRatio: 0.45, 2881 freeModeMomentumVelocityRatio: 1.5, 2882 navigation: { 2883 nextEl: '.swiper-button-next', 2884 prevEl: '.swiper-button-prev', 2885 }, 2886 pagination: { 2887 el: '.swiper-pagination' 2888 }, 2889 useCSS3Transforms: false, 2890 loop: false, 2891 on: { 2892 init: function () { 2893 console.log('swiper initialized'); 2894 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2895 currentVideo.trigger('play'); 2896 }, 2897 }, 2898 }); 2899 2900 /* GET ALL VIDEOS */ 2901 var sliderVideos = $(".swiper-slide video"); 2902 2903 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2904 swiper.on('slideChange', function () { 2905 console.log('slide changed'); 2906 /* stop all videos */ 2907 sliderVideos.each(function (index) { 2908 this.currentTime = 0; 2909 }); 2910 2911 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2912 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2913 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2914 prevVideo.trigger('stop'); 2915 currentVideo.trigger('play'); 2916 }); 2917 2918
2919 $("[data-video]").click(function () { 2920 const file = $(this).data("video") 2921 $(".product-single__video").show() 2922 $(".product-single__image").hide() 2923 $(".product-single__video").find("video").attr("src", file) 2924 $(".product-single__video").find("video")[0].play(); 2925 }) 2926 $("[data-image]").click(function () { 2927 $(".product-single__video").hide() 2928 $(".product-single__image").show() 2929 $(".product-single__video").find("video")[0].pause(); 2930 }) 2931 2932 $("#product-image .swiper-slide").each(function () { 2933 let width = $(this).width() 2934 $(this).height(width) 2935 }) 2936 2937 $(window).resize(function () { 2938 $("#product-image .swiper-slide").each(function () { 2939 let width = $(this).width() 2940 $(this).height(width) 2941 }) 2942 }) 2943 </script>
2943 2944 2945 </div> 2946 <br> 2947 2948 2949 <article class="AGAM99-content"> 2950 2951 <h1>AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</h1> 2952 2953<p> 2954AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja. tujuan utama ini adalah membantu pengunjung memperoleh referensi mengenai informasi terbaru, pembaruan fitur, pengenalan permainan, hingga berbagai informasi yang berkaitan dengan ekosistem Pragmatic tanpa harus mencari dari banyak sumber. Dengan tampilan yang responsif dan navigasi ini dapat diakses melalui komputer, tablet, maupun smartphone tanpa mengurangi kenyamanan saat membaca. 2955</p> 2956 2957<p> 2958Melalui AGAM99, pengunjung dapat menemukan rangkuman mengenai berbagai pembaruan, perubahan fitur, serta informasi terbaru yang berkaitan dengan Portal Pragmatic Play dalam satu halaman yang praktis. Seluruh konten disusun menggunakan bahasa yang ringkas dan mudah dipahami sehingga proses mencari informasi menjadi lebih efisien. Pembaruan dilakukan secara konsisten agar setiap informasi yang tersedia tetap relevan dengan perkembangan terbaru dan memberikan pengalaman membaca yang lebih nyaman. 2959</p> 2960 2961<p> 2962Portal digital terus mengalami pembaruan dari waktu ke waktu, baik dari sisi tampilan, fitur, maupun informasi yang disampaikan kepada pengguna. Oleh karena itu, AGAM99 berupaya menghadirkan rangkuman perkembangan secara berkala agar pengunjung dapat mengetahui perubahan terbaru tanpa harus memantau banyak halaman berbeda. Pembaruan yang dilakukan secara konsisten membantu pembaca memahami perkembangan yang terjadi dari waktu ke waktu sehingga informasi yang diperoleh tetap relevan dan sesuai dengan kondisi terkini. 2963</p> 2964 <div class="cta-wrapper"> 2965 2966 <a href="https://belajarpsikologi.com/" class="btn-main">Gabung & Main 2967 Sekarang</a> 2968 2969 </div> 2970 2971 </article> 2972 <style> 2973 .AGAM99-content { 2974 2975 max-width: 750px; 2976 2977 margin: auto; 2978 2979 padding: 20px; 2980 2981 background: #111; 2982 /* Warna gelap elegan */ 2983 2984 color: #ddd; 2985 2986 border-radius: 12px; 2987 2988 line-height: 1.7; 2989 2990 } 2991 2992 2993 2994 .AGAM99-content h1 { 2995 2996 color: #20B2AA; 2997 /* Warna Gold */ 2998 2999 font-size: 24px; 3000 3001 text-align: center; 3002 3003 margin-bottom: 20px; 3004 3005 } 3006 3007 3008 3009 .AGAM99-content h2 { 3010 3011 color: #20B2AA; 3012 3013 font-size: 20px; 3014 3015 margin-top: 25px; 3016 3017 border-left: 4px solid #20B2AA; 3018 3019 padding-left: 12px; 3020 3021 } 3022 3023 3024 3025 .AGAM99-content h3 { 3026 3027 color: #fff; 3028 3029 font-size: 18px; 3030 3031 margin-top: 20px; 3032 3033 } 3034 3035 3036 3037 .feature-list { 3038 3039 padding-left: 20px; 3040 3041 list-style-type: square; 3042 3043 } 3044 3045 3046 3047 .feature-list li { 3048 3049 margin-bottom: 10px; 3050 3051 } 3052 3053 3054 3055 .cta-wrapper { 3056 3057 text-align: center; 3058 3059 margin-top: 30px; 3060 3061 } 3062 3063 3064 3065 .btn-main { 3066 3067 display: inline-block; 3068 3069 padding: 12px 25px; 3070 3071 background: linear-gradient(45deg, #20B2AA, #20B2AA); 3072 3073 color: #fff; 3074 3075 text-decoration: none; 3076 3077 font-weight: bold; 3078 3079 border-radius: 30px; 3080 3081 transition: 0.3s;
3082 3083 } 3084 3085 3086 3087 .btn-main:hover { 3088 3089 transform: scale(1.05); 3090 3091 box-shadow: 0 5px 15px rgba(46, 139, 87, 1); 3092 3093 } 3094 </style> 3095 3096
3096<script> 3097 $(document).ready(function () { 3098 if ($(".c-pdp-product-info__service li").length == 1) { 3099 $(".c-pdp-product-info__service").addClass("no-bullet"); 3100 $(".c-pdp-product-info__service li").addClass("no-bullets"); 3101 } 3102 }); 3103 </script>
3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 </div> 3117 <div id="product-meta" class="col-lg-5 p-0"> 3118 <div class="product-meta"> 3119 <style> 3120 .product-meta--review { 3121 margin-top: 10px 3122 } 3123 3124 .freeship * { 3125 font-size: 14px !important; 3126 font-style: normal; 3127 } 3128 </style> 3129 <h1 itemprop="name" class="mb-2" 3130 style="color: rgb(255, 255, 255); font-weight: bold;"> 3131 AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</h1> 3132 3133 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 3134 <meta itemprop="priceCurrency" content="IDR"> 3135 3136 <link itemprop="availability" href="https://schema.org/InStock"> 3137
3137<script type="text/javascript" 3138 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 3139 async="async"></script>
3139 3140 3141 3142 3143 3144 <span class="visually-hidden">Translation missing: 3145 en.products.general.regular_price</span> 3146 3147 <span class="visually-hidden">Translation missing: 3148 en.products.general.sale_price</span> 3149 3150 <div class="row no-gutters mb-3"> 3151 <span id="ProductPrice" class="h2 ProductPrice" itemprop="price" 3152 content="835000" style="color: #ffffff;"> 3153 Rp 5.000 3154 </span> 3155 <div class="discount-product-detail"> 3156 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 3157 Rp 50.000 3158 </p> 3159 <span class=" tag-discount"> 3160 3161 3162 <span id="newDiscount" 3163 class="product-tag persentase-discount hide"> 3164 (90%) 3165 </span><br> 3166 3167 </span> 3168 </div> 3169 </div> 3170 3171 <div class="row no-gutters meta-sds"> 3172 <div class="col-12 mb-2 mb-lg-0 stock-info"> 3173 3174 3175 <span id="ProductStock-Product" 3176 class="product-single__stock mb-2 hide"> 3177 3178 3179 3180 3181 Barang dikirim pada 3182 3183 3184 3185 </span> 3186 3187 <style> 3188 .short-desc-desktop { 3189 margin-bottom: 2rem; 3190 color: white; 3191 } 3192 3193 .short-desc ul li:nth-child(n + 4) { 3194 display: none; 3195 } 3196 3197 .short-desc ul li.showList:nth-child(n + 4) { 3198 display: list-item; 3199 } 3200 3201 label.more { 3202 display: none; 3203 } 3204 3205 label.more.showMe { 3206 display: block; 3207 font-size: 12px; 3208 text-transform: uppercase; 3209 font-weight: 700; 3210 cursor: pointer; 3211 } 3212 </style> 3213 3214 <div class="short-desc-desktop d-none d-lg-block"> 3215 <div class="short-desc"> 3216 3217 <p>AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja</p> 3218 </div> 3219 <label class="more">Show More â</label> 3220 </div><br> 3221 3222 3223
3223<script> 3224 var liCount; 3225 $(document).ready(function () { 3226 $(".short-desc ul").each(function () { 3227 liCount = $(this).children("li").length; 3228 if (liCount > 3) { 3229 $(this).parent(".short-desc").next(".more").addClass("showMe"); 3230 } 3231 }); 3232 3233 $(".more").click(function () { 3234 //$(".short-desc").find("li").addClass("showList"); 3235 // $(this).hide(); 3236 $("#product-desc").find("ul").show() 3237 $('html, body').animate({ 3238 scrollTop: $("#product-desc").offset().top - 250 3239 }, 2000); 3240 $("#product-desc").css("height", "auto"); 3241 $("#more_content").remove(); 3242 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 3243 }); 3244 }); 3245 </script>
3245 3246 3247 3248 </div> 3249 </div> 3250 3251 <div id="purchaseProduct"> 3252 3253 3254 3255 3256 <style> 3257 .variant-metafield { 3258 display: block !important; 3259 width: 1px; 3260 padding: 0; 3261 border-color: #fff; 3262 } 3263 3264 .select2-results__option[aria-disabled] { 3265 display: none; 3266 } 3267 3268 .towel-bordir { 3269 width: 100%; 3270 display: flex; 3271 align-items: center; 3272 justify-content: space-around; 3273 } 3274 </style> 3275 3276 3277 3278 3279
3279<script> 3280 3281 3282 </script>
3282 3283 3284 3285 3286 3287 3288 3289 <select name="id[]" id="productSelect" 3290 class="product-single__variants ignore hide hide"> 3291 3292 3293 3294 <option selected="selected" data-sku="TSLATGL1563" 3295 value="44083045826775"> 3296 Default Title 3297 </option> 3298 3299 3300 3301 </select> 3302 3303
3303<script 3304 src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" 3305 type="text/javascript"></script>
3305 3306 3307
3307<script> 3308 $('.size-chart-open-popup').magnificPopup({ 3309 type: 'inline', 3310 midClick: true 3311 }); 3312 </script>
3312 3313 3314 3315 3316 3317 <div class="upload-image-preview"> 3318 3319 3320 3321 3322 3323 <style> 3324 .file-dnd * { 3325 margin: 0; 3326 padding: 0; 3327 box-sizing: border-box; 3328 } 3329 3330 .file-dnd { 3331 width: 100%; 3332 height: 250px; 3333 border: 1px solid #ddd; 3334 border-radius: 10px; 3335 padding: 15px; 3336 display: flex; 3337 flex-direction: column; 3338 gap: 10px; 3339 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 3340 margin: auto; 3341 } 3342 3343 .file-dnd input { 3344 display: none; 3345 } 3346 3347 .file-dnd .before-upload { 3348 border: 1px dashed #888; 3349 flex: 1; 3350 border-radius: 5px; 3351 display: flex; 3352 justify-content: center; 3353 align-items: center; 3354 text-align: center; 3355 cursor: pointer; 3356 } 3357 3358 .file-dnd .before-upload>div { 3359 display: flex; 3360 flex-direction: column; 3361 align-items: center; 3362 gap: 8px; 3363 } 3364 3365 .file-dnd .before-upload>div h4 { 3366 width: 150px; 3367 } 3368 3369 .file-dnd .before-upload>div p { 3370 font-size: 12px !important; 3371 color: #555; 3372 } 3373 3374 .file-dnd.active .before-upload { 3375 border: 1px solid #5750d9; 3376 background-color: #f5f5ff; 3377 } 3378 3379 .file-dnd .after-upload { 3380 position: relative; 3381 display: none; 3382 } 3383 3384 .file-dnd .after-upload img { 3385 width: 100%; 3386 border-radius: 5px; 3387 max-height: 180px; 3388 object-fit: contain; 3389 display: block; 3390 } 3391 3392 .file-dnd .after-upload .clear-btn { 3393 position: absolute; 3394 top: 10px; 3395 right: 10px; 3396 background: rgba(0, 0, 0, 0.5); 3397 width: 15px; 3398 height: 15px; 3399 text-align: center; 3400 line-height: 15px; 3401 border-radius: 50%; 3402 color: #fff; 3403 cursor: pointer; 3404 font-size: 14px; 3405 } 3406 </style> 3407 3408 <div class="file-dnd mb-3" style="display: none"> 3409 <label for="upload-photo">Upload your Photo:</label> 3410 <input type="file" id="upload-photo" accept="image/*"> 3411 <input type="hidden" data-properties="Photo"> 3412 <div class="before-upload"> 3413 <div> 3414 <svg id="surface1" 3415 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 3416 width="33.053" height="41.719" 3417 viewB
3417ox="0 0 33.053 41.719"> 3418 <path id="Path_2149" data-name="Path 2149" 3419 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" 3420 transform="translate(-0.5)" fill="#ababab"> 3421 </path> 3422 <path id="Path_2150" data-name="Path 2150" 3423 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" 3424 transform="translate(-81.947 -369.183)" 3425 fill="#ababab"></path> 3426 <path id="Path_2151" data-name="Path 2151" 3427 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" 3428 transform="translate(-108.776 -156.421)" 3429 fill="#ababab"></path> 3430 </svg> 3431 3432 <h4>Drag & Drop Photo file or Browse</h4> 3433 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3434 </div> 3435 </div> 3436 <div class="after-upload"> 3437 <div class="clear-btn">×</div> 3438 <img src="" width="" height=""> 3439 </div> 3440 </div> 3441
3441<script> 3442 function applyDndFile(el) { 3443 const parent = document.querySelector(".file-dnd") 3444 const beforeUploadEl = el.querySelector(".before-upload") 3445 const afterUploadEl = el.querySelector(".after-upload") 3446 const inputFile = el.querySelector("input[type=file]") 3447 const imagePreview = el.querySelector(".after-upload img") 3448 const clearBtn = el.querySelector(".after-upload .clear-btn") 3449 const inputProps = parent.querySelector("[data-properties]"); 3450 3451 async function upload(name, uri, type) { 3452 try { 3453 const filename = name.split('.')[0] 3454 let formData = new FormData(); 3455 formData.append("file", uri); 3456 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3457 method: "POST", 3458 body: formData 3459 }) 3460 if (response) { 3461 const res = await response.json() 3462 return res 3463 } 3464 } catch (err) { 3465 console.log(err) 3466 } 3467 } 3468 3469 function showImagePreview(img) { 3470 if (img) { 3471 const blobUrl = URL.createObjectURL(img) 3472 imagePreview.src = blobUrl 3473 afterUploadEl.style.display = "block" 3474 beforeUploadEl.style.display = "none" 3475 } 3476 } 3477 3478 beforeUploadEl.addEventListener("click", (e) => { 3479 e.preventDefault() 3480 inputFile.click() 3481 }) 3482 3483 inputFile.addEventListener("change", async (e) => { 3484 e.preventDefault() 3485 showImagePreview(e.target.files[0]) 3486 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3487 inputProps.value = uploadData?.url 3488 }) 3489 3490 clearBtn.addEventListener("click", (e) => { 3491 afterUploadEl.style.display = "none" 3492 beforeUploadEl.style.display = "flex" 3493 inputProps.value = "" 3494 }) 3495 3496 beforeUploadEl.addEventListener("dragover", (e) => { 3497 e.preventDefault() 3498 el.classList.add("active") 3499 }) 3500 3501 beforeUploadEl.addEventListener("dragleave", (e) => { 3502 e.preventDefault() 3503 el.classList.remove("active") 3504 }) 3505 3506 beforeUploadEl.addEventListener("drop", async (e) => { 3507 e.preventDefault() 3508 el.classList.remove("active") 3509 showImagePreview(e.dataTransfer.files[0]) 3510 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3511 console.log(uploadData) 3512 inputProps.value = uploadData?.url 3513 }) 3514 } 3515 3516 applyDndFile(document.querySelector(".file-dnd")) 3517 3518 $(document).ready(function () { 3519 $(".variant-swatch").change(function () { 3520 const v = $(this).val().toLowerCase() 3521 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3522 if (list.some(item => v.includes(item))) return $(".file-dnd").show() 3523 $(".file-dnd").hide() 3524 $(".file-dnd").find("[data-properties]").val("") 3525 $(".after-upload").hide() 3526 $(".before-upload").css("display", "flex") 3527 }) 3528 }) 3529 </script>
3529 3530 3531 </div> 3532 3533 3534 <div class="delivery-city mb-4"> 3535 <a href="https://belajarpsikologi.com/portal/"> 3536 <center><img 3537 src="https://ik.imagekit.io/mvymqtlmn/stock/tombol-daftar-agam99-removebg-preview.png" 3538 alt="logo-daftar" 3539 style="width: 380px; margin-top: -20px;"></center> 3540 </a><br> 3541 <h4 class="fw-600 text-uppercase mb-15" 3542 style="color: #c5c5c5; font-weight: bold;">Daftar Sekarang dan 3543 Nikmati Promo Menarik Dari AGAM99!</h4> 3544 <div class="row justify-content-between m-0"> 3545 <select id="cities" class="form-control select-search" required> 3546 <option value="">Bergabunglah sekarang dan rasakan berbagai manfaat yang ditawarkan AGAM99. Nikmati akses ke berbagai panduan, informasi permainan, serta promo menarik yang bisa memberikan pengalaman bermain yang lebih seru dan menguntungkan.</option> 3547 </select> 3548 </div> 3549 </div> 3550 3551 <style> 3552 @media (max-width: 768px) { 3553 .select2-search__field { 3554 pointer-events: none !important; 3555 } 3556 3557 .select2-search { 3558 display: none !important; 3559 } 3560 } 3561 </style> 3562 3563
3563<script> 3564 $(document).ready(function () { 3565 // Check if mobile 3566 if (window.innerWidth <= 768) { 3567 // When cities select2 opens on mobile, remove focus from search 3568 $('#cities').on('select2:open', function () { 3569 setTimeout(function () { 3570 $('.select2-search__field').blur(); 3571 $('.select2-search__field').prop('readonly', true); 3572 }, 100); 3573 }); 3574 } 3575 }); 3576 </script>
3576 3577 3578 <style> 3579 .icon-img-footer { 3580 width: 80px; 3581 padding: 0px 5px; 3582 } 3583 3584 @media (min-width: 768px) { 3585 .icon-img-footer { 3586 width: 120px; 3587 } 3588 } 3589 3590 @media (min-width: 992px) { 3591 .icon-img-footer { 3592 width: 120px; 3593 } 3594 } 3595 </style> 3596 <style> 3597 :root { 3598 --brand: #20B2AA; 3599 --brand-mid: #20B2AA; 3600 --brand-dark: #000000; 3601 --border: #e5e7eb; 3602 --bg: #fff; 3603 --shadow: 0 6px 15px rgba(0, 0, 0, .08); 3604 } 3605 3606 .app-card { 3607 max-width: 650px; 3608 margin: 25px auto; 3609 background: var(--bg); 3610 border-radius: 14px; 3611 overflow: hidden; 3612 box-shadow: var(--shadow); 3613 border: 1px solid var(--border); 3614 transition: transform .2s, box-shadow .3s; 3615 font-family: system-ui, Arial, sans-serif; 3616 font-size: .92rem; 3617 } 3618 3619 .app-card:hover { 3620 transform: translateY(-2px); 3621 box-shadow: 0 10px 25px rgba(0, 0, 0, .12); 3622 } 3623 3624 .app-header { 3625 padding: 12px 16px; 3626 text-align: center; 3627 background: linear-gradient(135deg, #000000, #5d5d5d, #000000); 3628 color: #fff; 3629 font-weight: 800; 3630 font-size: 1.15rem; 3631 text-shadow: 0 1px 2px rgba(0, 0, 0, .3); 3632 } 3633 3634 .app-table { 3635 width: 100%; 3636 border-collapse: collapse; 3637 } 3638 3639 .app-table th, 3640 .app-table td { 3641 padding: 8px 12px; 3642 vertical-align: middle; 3643 } 3644 3645 .app-table th { 3646 width: 35%; 3647 background: #e7e7e7; 3648 color: #585858; 3649 font-weight: 700; 3650 letter-spacing: .2px; 3651 text-transform: uppercase; 3652 font-size: .85rem; 3653 } 3654 3655 .app-table td { 3656 border-bottom: 1px solid var(--border); 3657 color: #1f1f1f; 3658 font-size: .9rem; 3659 text-align: center; 3660 } 3661 3662 @media (max-width: 640px) { 3663 3664 .app-table, 3665 .app-table tbody, 3666 .app-table tr, 3667 .app-table th, 3668 .app-table td { 3669 display: block; 3670 width: 100%; 3671 } 3672 } 3673 3674 .review-section { 3675 max-width: 850px; 3676 margin: 30px auto; 3677 display: flex; 3678 flex-direction: column; 3679 gap: 18px;
3680 font-family: system-ui, Arial, sans-serif; 3681 } 3682 3683 .review-card { 3684 background: #000000; 3685 padding: 16px 20px; 3686 border-radius: 10px; 3687 border-left: 5px solid #4f4e4e; 3688 box-shadow: 0 3px 6px rgba(0, 0, 0, .05); 3689 transition: all .25s ease-in-out; 3690 } 3691 3692 .review-card:hover { 3693 transform: translateY(-3px); 3694 box-shadow: 0 5px 10px rgba(0, 0, 0, .08); 3695 } 3696 3697 .review-author { 3698 font-weight: 700; 3699 color: var(--brand-dark); 3700 margin-bottom: 4px; 3701 display: flex; 3702 align-items: center; 3703 gap: 6px; 3704 font-size: .92rem; 3705 } 3706 3707 .review-author::before { 3708 content: "ð¤"; 3709 font-size: 1rem; 3710 } 3711 3712 .review-card p { 3713 margin: 0; 3714 color: #d3d3d3; 3715 font-size: .94rem; 3716 } 3717 3718 .review-rating { 3719 margin-left: auto; 3720 font-weight: 700; 3721 } 3722 3723 .stars { 3724 --rating: 5; 3725 --star-size: 1rem; 3726 --star-gap: 2px; 3727 --star-empty: #e5e7eb; 3728 --star-fill: #f4c430; 3729 position: relative; 3730 display: inline-block; 3731 font-size: var(--star-size); 3732 line-height: 1; 3733 letter-spacing: var(--star-gap); 3734 } 3735 3736 .stars::before { 3737 content: "â â â â â "; 3738 color: var(--star-empty); 3739 } 3740 3741 .stars::after { 3742 content: "â â â â â "; 3743 color: var(--star-fill); 3744 position: absolute; 3745 left: 0; 3746 top: 0; 3747 width: calc((var(--rating) / 5) * 100%); 3748 overflow: hidden; 3749 white-space: nowrap; 3750 pointer-events: none; 3751 } 3752 3753 .stars.lg { 3754 --star-size: 1.1rem; 3755 letter-spacing: 3px; 3756 } 3757 3758 .badge { 3759 display: inline-flex; 3760 align-items: center; 3761 gap: 8px; 3762 flex-wrap: wrap; 3763 } 3764 3765 .badge small { 3766 color: #555; 3767 font-weight: 600; 3768 } 3769 </style> 3770 3771 <div class="review-section"> 3772 <div class="review-card"> 3773 <div class="review-author"> 3774 Rendy - Server Cepat
3775 <span class="review-rating stars" style="--rating: 5" 3776 aria-label="Rating 5.0 dari 5"></span> 3777 </div> 3778 <p> 3779 AGAM99 menyajikan informasi yang diperbarui secara konsisten sehingga saya lebih mudah mengikuti perkembangan terbaru dari Portal Pragmatic Play tanpa harus mencari referensi dari banyak sumber. 3780 </p> 3781 </div> 3782 3783 <div class="review-card"> 3784 <div class="review-author"> 3785 Aldo - Tampilan Modern 3786 <span class="review-rating stars" style="--rating: 4.8" 3787 aria-label="Rating 4.8 dari 5"></span> 3788 </div> 3789 <p> 3790 Menurut saya, AGAM99 memiliki penyajian informasi yang terstruktur dengan navigasi yang sederhana. Setiap pembaruan Portal Pragmatic Play ditampilkan secara ringkas sehingga mudah dipahami oleh pengunjung. 3791 </p> 3792 </div> 3793 3794 <div class="review-card"> 3795 <div class="review-author"> 3796 Kevin - Akses Stabil 3797 <span class="review-rating stars" style="--rating: 4.9" 3798 aria-label="Rating 4.9 dari 5"></span> 3799 </div> 3800 <p> 3801 Saya melihat AGAM99 cukup konsisten dalam menyajikan perkembangan Portal Pragmatic Play. Informasi terbaru selalu tersusun dengan rapi sehingga memudahkan pengunjung mengikuti pembaruan setiap waktu. 3802 </p> 3803 </div> 3804 </div> 3805 3806 3807 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3808 <div class="purchaseArea"> 3809 <div class="sectionPurchase sectionPurchaseSpotify"> 3810 <div class="wrapperPurchase"> 3811 <div class="headerPurchase"> 3812 <h3>personalize spotify photo print</h3> 3813 <a class="close-purchase-popup"> 3814 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 3815 width="18" height="18" viewBox="0 0 18 18" 3816 fill="none"> 3817 <path 3818 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" 3819 fill="black"></path> 3820 </svg> 3821 </a> 3822 </div> 3823 <div class="contentPurchase"> 3824 <div class="spotifyAddons"></div> 3825 </div> 3826 3827 <div class="purchase-button btn-addon row m-0" 3828 style="display: none;"> 3829 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3830 <button 3831 class="back-purchase-button back-addon text-uppercase"> 3832 <svg width="15" height="14"
3833 viewBox="0 0 15 14" fill="none" 3834 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 3835 <path 3836 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" 3837 fill="black"></path> 3838 </svg> 3839 <span>Back</span> 3840 </button> 3841 </div> 3842 <div class="col-12 col-lg-10 text-right" 3843 style="display: flex;justify-content: end;gap: 20px;"> 3844 <button 3845 class="btn next-purchase-button next-addon text-uppercase"> 3846 <span>continue without add-ons</span> 3847 </button> 3848 </div> 3849 </div> 3850 </div> 3851 </div> 3852 </div> 3853 </div> 3854 3855 <style> 3856 #PBarNextFrameWrapper { 3857 display: none; 3858 } 3859 3860 #backgroundPopup { 3861 display: none; 3862 position: fixed; 3863 _position: absolute; 3864 height: 100%; 3865 width: 100%; 3866 top: 0; 3867 left: 0; 3868 background: rgb(117 117 117 / 24%); 3869 z-index: 1; 3870 } 3871 3872 .sectionPurchase { 3873 height: 100%; 3874 position: relative; 3875 max-width: 1344px; 3876 background-color: #fff; 3877 padding: 0; 3878 overflow: hidden; 3879 /* Changed from auto to hidden */ 3880 display: flex; 3881 flex-direction: column; 3882 } 3883 3884 .sectionPurchase.purchaseAddonSpotify { 3885 max-width: 1070px !important; 3886 max-height: 765px !important; 3887 } 3888 3889 .sectionPurchaseBoard { 3890 max-width: 872px !important; 3891 max-height: 821px !important; 3892 } 3893 3894 .purchaseAddonSpotify .btn-action { 3895 position: absolute; 3896 bottom: 0; 3897 left: 0; 3898 width: 100%; 3899 display: flex; 3900 gap: 10px; 3901 } 3902 3903 .wrapperPurchase { 3904 position: relative; 3905 height: 100%; 3906 display: flex; 3907 flex-direction: column; 3908 } 3909 3910 /* New styles for scrollable content and sticky button */ 3911 .purchase-content { 3912 flex: 1; 3913 overflow-y: auto; 3914 overflow-x: hidden; 3915 padding: 20px; 3916 } 3917 3918 .purchase-button-wrapper { 3919 position: sticky; 3920 bottom: 0; 3921 background-color: #fff; 3922 border-top: 1px solid #e0e0e0; 3923 padding: 15px 0; 3924 margin-top: auto; 3925 z-index: 10; 3926 } 3927 3928 .purchasePopup { 3929 display: none; 3930 position: fixed; 3931 background: rgb(117 117 117 / 24%); 3932 z-index: 999; 3933 padding: 40px; 3934 font-size: 13px; 3935 top: 0; 3936 left: 0; 3937 width: 100%; 3938 height: 100%; 3939 } 3940 3941 .popupPurchaseClose { 3942 font-size: 14px; 3943 line-height: 14px; 3944 right: 45px; 3945 top: 45px; 3946 position: absolute; 3947 color: #20B2AA; 3948 font-weight: 700; 3949 display: block; 3950 cursor: pointer; 3951 } 3952 3953 .headerPurchase { 3954 margin-bottom: 30px; 3955 display: flex; 3956 justify-content: space-between; 3957 } 3958 3959 .headerPurchase h3 { 3960 font-size: 16px; 3961 text-transform: uppercase; 3962 } 3963 3964 .sectionPurchaseBoard .headerPurchase { 3965 margin-bottom: 15px; 3966 } 3967 3968 .sectionPurchaseBoard .formAddressPurchase { 3969 padding-top: 0;
3970 } 3971 3972 .purchaseArea { 3973 position: relative; 3974 height: 100%; 3975 } 3976 3977 .purchaseArea h4 { 3978 width: 100%; 3979 font-size: 12px; 3980 font-weight: 600; 3981 margin-bottom: 10px; 3982 text-transform: uppercase; 3983 } 3984 3985 .menuPurchase { 3986 margin-bottom: 30px; 3987 } 3988 3989 .menuPurchase ul { 3990 list-style-type: none; 3991 margin: 0; 3992 } 3993 3994 .menuPurchase ul li { 3995 display: inline-block; 3996 border: 1px solid #ffffff; 3997 padding: 5px 20px; 3998 margin-right: 5px; 3999 margin-bottom: 10px; 4000 font-size: 12px; 4001 font-weight: 400; 4002 } 4003 4004 .menuPurchase ul li:hover, 4005 .menuPurchase ul li.selected { 4006 background-color: #ffffff; 4007 color: #ffffff; 4008 } 4009 4010 .contentPurchase h5 { 4011 font-size: 12px; 4012 margin-bottom: 10px; 4013 font-weight: 400; 4014 overflow: hidden; 4015 } 4016 4017 /* Card */ 4018 4019 #itemCards { 4020 max-height: 430px; 4021 overflow: auto; 4022 } 4023 4024 .item-cards { 4025 width: 100%; 4026 } 4027 4028 .item-card.selected { 4029 border: 1px solid #ffffff; 4030 } 4031 4032 .item-card:hover { 4033 border: 1px solid #C4C4C4; 4034 } 4035 4036 .item-cards .item-card { 4037 position: relative; 4038 width: calc(33% - 10px); 4039 max-width: calc(33% - 10px); 4040 flex: 0 0 calc(33% - 10px); 4041 margin-bottom: 20px; 4042 } 4043 4044 .item-cards .item-card label, 4045 .item-addons .item-addon label { 4046 position: absolute; 4047 left: 0; 4048 width: 100%; 4049 height: 100%; 4050 } 4051 4052 .item-cards .item-card .card-image img, 4053 .item-addons .item-addon .card-image img { 4054 display: block; 4055 width: 100%; 4056 } 4057 4058 .item-card .card-meta, 4059 .item-addon .card-meta { 4060 padding: 10px 5px 5px; 4061 } 4062 4063 .item-card.selected .card-meta, 4064 .item-addon.selected .card-meta, 4065 .item-card.selected .card-qty { 4066 background-color: #ffffff; 4067 color: #fff; 4068 visibility: visible !important; 4069 } 4070 4071 .item-card:hover .card-meta, 4072 .item-addon:hover .card-meta, 4073 .item-card:hover .card-qty { 4074 background-color: #C4C4C4; 4075 color: #fff; 4076 visibility: visible !important; 4077 } 4078 4079 .item-cards .item-card p, 4080 .item-addons .item-addon p { 4081 font-size: 12px !important; 4082 margin: 0; 4083 font-weight: 600; 4084 } 4085 4086 .item-card .card-meta input, 4087 .item-addon .card-meta input { 4088 display: none; 4089 } 4090 4091 .item-cards .item-card h5, 4092 .item-addons .item-addon h5 { 4093 text-transform: uppercase; 4094 max-height: 35px; 4095 } 4096 4097 @media (max-width: 768px) { 4098 .item-cards .item-card { 4099 width: calc(50% - 10px
4099); 4100 max-width: calc(50% - 10px); 4101 flex: 0 0 calc(50% - 10px); 4102 margin-bottom: 0; 4103 } 4104 } 4105 4106 .card-qty { 4107 display: flex; 4108 padding: 5px; 4109 visibility: hidden; 4110 background-color: #fff !important; 4111 z-index: 999; 4112 } 4113 4114 .card-qty a { 4115 border-width: 1px; 4116 width: 30%; 4117 cursor: pointer; 4118 text-align: center; 4119 align-self: center; 4120 height: 28px; 4121 display: block; 4122 position: relative; 4123 } 4124 4125 .card-qty a svg { 4126 position: absolute; 4127 top: 50%; 4128 left: 50%; 4129 transform: translate(-50%, -50%); 4130 text-align: center; 4131 } 4132 4133 input.btn-qty { 4134 border-width: 0px; 4135 border-radius: 0; 4136 background-color: #fff; 4137 -webkit-appearance: none; 4138 box-shadow: none !important; 4139 -webkit-box-shadow: none !important; 4140 -moz-box-shadow: none !important; 4141 width: 40%; 4142 border-left: 1px solid #c4c4c4; 4143 border-right: 1px solid #c4c4c4; 4144 padding: 0; 4145 } 4146 4147 .sectionPurchaseBoard #itemAddons .item-card { 4148 width: calc(20% - 15px); 4149 max-width: calc(20% - 15px); 4150 flex: 0 0 calc(20% - 15px); 4151 } 4152 4153 .purchase-button { 4154 width: 100%; 4155 padding: 0; 4156 /* Reset padding as it's now handled by wrapper */ 4157 margin: 0; 4158 } 4159 4160 .sectionPurchaseBoard .purchase-button { 4161 margin-top: 0 !important; 4162 /* Reset margin */ 4163 } 4164 4165 .back-purchase-button, 4166 .back-spotify { 4167 width: 139px; 4168 border: 1px solid; 4169 height: 43px; 4170 } 4171 4172 .purchase-button .btn { 4173 width: 297px; 4174 height: 43px; 4175 background-color: #ffffff; 4176 color: #ffffff; 4177 } 4178 4179 .purchase-button .btn[disabled] { 4180 background-color: #EEEEEE; 4181 } 4182 4183 .back-purchase-button svg, 4184 .back-spotify svg { 4185 align-self: center; 4186 vertical-align: middle; 4187 margin-right: 10px; 4188 } 4189 4190 #purchaseProduct .row .error { 4191 font-size: 12px !important; 4192 color: orange; 4193 margin-top: 5px; 4194 } 4195 4196 .reviewCardPurchase { 4197 max-width: 448px; 4198 float: right; 4199 } 4200 4201 .addonsPurchase .addon-item { 4202 display: flex; 4203 justify-content: space-between; 4204 } 4205 4206 .addon-item * { 4207 align-self: center; 4208 font-size: 12px; 4209 } 4210 4211 .addon-itm-title { 4212 width: 360px; 4213 } 4214 4215 .addon-itm-line-price { 4216 color: #757575; 4217 width: 80px; 4218 justify-content: space-between; 4219 display: flex; 4220 } 4221 4222 .propsAddonSpotify p { 4223 margin: 0; 4224 display: flex; 4225 font-size: 12px !important; 4226 margin-bottom: 5px; 4227 } 4228 4229 .propsAddonSpotify p span:first-child { 4230 text-transform: uppercase; 4231 font-weight: 600; 4232 -ms-flex: 0 0 150px; 4233 flex: 0 0 150px; 4234 max-width: 150px; 4235 } 4236 4237 .addonsPurchase .addons { 4238 max-height: 250px; 4239 overflow: auto; 4240 } 4241 4242 .btn .loading:after { 4243 content: ""; 4244 display: inline-block; 4245 width: 20p
4245x; 4246 height: 20px; 4247 padding: 3px; 4248 aspect-ratio: 1; 4249 border-radius: 50%; 4250 background: #FFFFFF; 4251 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 4252 -webkit-mask: var(--_m); 4253 mask: var(--_m); 4254 -webkit-mask-composite: source-out; 4255 mask-composite: subtract; 4256 animation: l3 1s infinite linear; 4257 margin: auto; 4258 vertical-align: middle; 4259 margin-left: 10px; 4260 } 4261 4262 #qrcode img, 4263 #qrcode canvas { 4264 width: 50px; 4265 position: absolute; 4266 top: 12px; 4267 left: 16px; 4268 } 4269 4270 .t-preview { 4271 position: absolute; 4272 top: 17px; 4273 left: 75px; 4274 } 4275 4276 .t-preview p { 4277 margin: 0; 4278 font-size: 12px !important; 4279 } 4280 4281 .t-preview .h3 { 4282 font-size: 16px !important; 4283 margin-bottom: 5px; 4284 font-weight: 600; 4285 } 4286 4287 .scanCard { 4288 width: 100%; 4289 border: 1px solid; 4290 height: 76px; 4291 background-color: #fff; 4292 } 4293 4294 .scanCard>div>img { 4295 position: absolute; 4296 right: 0; 4297 width: 55px; 4298 } 4299 4300 @keyframes l3 { 4301 100% { 4302 transform: rotate(1turn); 4303 } 4304 } 4305 4306 @media (min-width: 991px) { 4307 .sectionPurchase { 4308 height: 100%; 4309 position: relative; 4310 max-width: 1344px;
4311 background-color: #fff; 4312 top: 50%; 4313 left: 50%; 4314 transform: translate(-50%, -50%); 4315 } 4316 4317 .headerPurchase h3 { 4318 font-size: 20px; 4319 } 4320 4321 .purchaseArea h4 { 4322 font-size: 16px; 4323 } 4324 4325 .menuPurchase ul li { 4326 font-size: 16px; 4327 } 4328 4329 .contentPurchase { 4330 margin-bottom: 30px; 4331 } 4332 4333 .contentPurchase h5 { 4334 font-size: 16px; 4335 } 4336 4337 .item-cards .item-card p, 4338 .item-addons .item-addon p { 4339 font-size: 16px !important; 4340 } 4341 4342 .cards { 4343 float: right; 4344 width: 400px; 4345 } 4346 4347 .item-cards .item-card { 4348 width: calc(25% - 30px); 4349 max-width: calc(25% - 30px); 4350 flex: 0 0 calc(25% - 30px); 4351 } 4352 4353 #itemAddons .item-card { 4354 position: relative; 4355 width: calc(16% - 40px); 4356 max-width: calc(16% - 40px); 4357 flex: 0 0 calc(16% - 40px); 4358 } 4359 4360 .purchase-button-wrapper { 4361 padding: 10px 20px; 4362 } 4363 } 4364 4365 @media (max-width: 1200px) { 4366 .item-cards .item-card { 4367 width: calc(33% - 30px); 4368 max-width: calc(33% - 30px); 4369 flex: 0 0 calc(33% - 30px); 4370 } 4371 } 4372 4373 @media (max-width: 992px) { 4374 .purchasePopup { 4375 padding: 0; 4376 } 4377 4378 .item-cards .item-card h5, 4379 .item-addons .item-addon h5 { 4380 max-height: 30px; 4381 } 4382 4383 .back-purchase-button, 4384 .back-spotify, 4385 .next-purchase-button { 4386 width: 100%; 4387 } 4388 4389 .addon-itm-title { 4390 width: 300px; 4391 } 4392 4393 .addon-itm-line-price { 4394 margin-right: 10px; 4395 } 4396 4397 .t-preview { 4398 top: 10px; 4399 } 4400 4401 .card-qty a { 4402 height: 15px; 4403 } 4404 4405 .purchase-button-wrapper { 4406 padding: 15px; 4407 } 4408 } 4409 4410 @media (max-width: 576px) { 4411 .purchase-button .btn { 4412 width: 100% !important; 4413 } 4414 4415 .purchase-button>.col-12 { 4416 padding-left: 0; 4417 padding-right: 0; 4418 } 4419 } 4420 </style> 4421 4422 4423 <div class="purchasePopup"> 4424 <div class="purchaseArea"> 4425 4426 <div 4427 class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 4428 <div class="wrapperPurchase"> 4429 <div class="purchase-content"> 4430 <div class="headerPurchase"> 4431 <h3 class="text-uppercase"> 4432 4433 customize your flower board 4434 4435 </h3> 4436 <a class="close-purchase-popup"> 4437 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 4438 width="18" height="18" 4439 viewB
4439ox="0 0 18 18" fill="none"> 4440 <path 4441 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" 4442 fill="black" /> 4443 </svg> 4444 </a> 4445 4446 </div> 4447 <div class="contentPurchase"> 4448 <div class="row"> 4449 4450 <div class="col-12"> 4451 4452 4453 <style> 4454 .customize-papan .group-field-1 .input-field { 4455 float: left; 4456 width: 100%; 4457 height: 317px; 4458 background-color: #E5E5EA; 4459 } 4460 4461 .customize-papan .input-field textarea { 4462 width: 100%; 4463 max-width: 421px; 4464 min-height: 150px; 4465 font-weight: 400; 4466 font-size: 16px; 4467 resize: none; 4468 background-color: #E5E5EA; 4469 position: absolute; 4470 top: 50%; 4471 left: 50%; 4472 transform: translate(-50%, -50%); 4473 text-align: center; 4474 color: #ffffff; 4475 border: none; 4476 } 4477 4478 .customize-papan .field-papan.group-field-2 .input-field.field-logo { 4479 height: 90px; 4480 margin: 0; 4481 border-radius: 0; 4482 position: relative; 4483 -ms-flex: 0 0 174px; 4484 flex: 0 0 174px; 4485 max-width: 174px; 4486 } 4487 4488 .customize-papan .btn-upload-papan svg { 4489 width: 21px; 4490 height: 25px; 4491 display: block; 4492 align-self: center; 4493 margin: auto; 4494 margin-bottom: 12px; 4495 } 4496 4497 .svgLogoPapan { 4498 position: absolute; 4499 width: 100%; 4500 top: 50%; 4501 left: 50%; 4502 transform: translate(-50%, -50%); 4503 text-align: center; 4504 } 4505 4506 .svgLogoPapan p { 4507 color: #8E8E93; 4508 margin: 0; 4509 } 4510 4511 .svgLogoPapan p span { 4512 font-size: 12px; 4513 color: #20B2AA; 4514 } 4515 4516 .customize-papan .btn-upload-papan img { 4517 margin: auto; 4518 display: block; 4519 position: absolute; 4520 width: 80px; 4521 top: 50%; 4522 left: 50%; 4523 transform: translate(-50%, -50%); 4524 text-align: center; 4525 } 4526 4527 #suggest-messages { 4528 position: absolute; 4529 bottom: 5px; 4530 left: 5px; 4531 } 4532 4533 #suggest-messages a { 4534 border: 1px solid #979797; 4535 background: #fff; 4536 color: #979797; 4537 border-radius: 3px; 4538 padding: 5px 10px; 4539 font-size: 10px; 4540 font-weight: 600; 4541 display: inline-block; 4542 } 4543 4544 .case-occasion .nice-select:after { 4545 border-bottom: 2px solid #333; 4546 border-right: 2px solid #333; 4547 right: 20px; 4548 top: 42%; 4549 width: 10px; 4550 height: 10px; 4551 } 4552 4553 .customize-papan .input-field input { 4554 font-weight: 600; 4555 font-size: 16px; 4556 width: 100%; 4557 height: 90px; 4558 min-height: 44px !important; 4559 border: none; 4560 background: #E5E5EA; 4561 margin: 0; 4562 border-radius: 0; 4563 text-align: center; 4564 color: #ffffff; 4565 } 4566 4567 .customize-papan .input-field .limit { 4568 position: absolute; 4569 right: 15px; 4570 top: 0; 4571 color: #757575; 4572 } 4573 4574 @media (min-width: 991px) { 4575 .customize-papan:before { 4576 content: ""; 4577 position: absolute; 4578 border: 4px solid #ffffff; 4579 bottom: -50px; 4580 left: 210px; 4581 width: 100px; 4582 display: block; 4583 -ms-transform: rotate(60deg); 4584 -webkit-transform: rotate(60deg); 4585 transform: rotate(-65deg); 4586 } 4587 4588 .customize-papan:after { 4589 content: ""; 4590 position: absolute; 4591 border: 4px solid #ffffff; 4592 bottom: -52px; 4593 right: 240px; 4594 width: 100px; 4595 display: block; 4596 -ms-transform: rotate(-120deg); 4597 -webkit-transform: rotate(70deg); 4598 transform: rotate(70deg); 4599 } 4600 } 4601 </style> 4602 4603 <input type="hidden" 4604 data-properties="penerima" 4605 value="-"> 4606 <div class="customize-papan"> 4607 <div class="container"> 4608 <div 4609 class="field-papan group-field-1 form-group"> 4610 <div class="input-field"> 4611
4611 <textarea 4612 id="kartu-ucapan-papan" 4613 class="mb-0 has-limit" 4614 type="text" 4615 data-properties="ucapan" 4616 placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 4617 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4618 <p class="limit">0/100 4619 </p> 4620 <div 4621 id="suggest-messages"> 4622 <a id="show_note_papan1" 4623 href="#"> 4624 <div class="suggest-message" 4625 id="note_btn_div1"> 4626 <span 4627 class="promo-code-link" 4628 id="note_btn_papan1">AGAM99</span> 4629 </div> 4630 </a> 4631 <a id="show_note_papan2" 4632 href="#"> 4633 <div class="suggest-message" 4634 id="note_btn_div2"> 4635 <span 4636 class="promo-code-link" 4637 id="note_btn_papan2">Portal Pragmatic Play</span> 4638 </div> 4639 </a> 4640 <a id="show_note_papan3" 4641 href="#"> 4642 <div class="suggest-message" 4643 id="note_btn_div3"> 4644 <sp
4644an 4645 class="promo-code-link" 4646 id="note_btn_papan3">Perkembangan Harian</span> 4647 </div> 4648 </a> 4649 </div> 4650 </div> 4651 </div> 4652 <div class="hide"> 4653 <input type="hidden" 4654 value="" 4655 id="note_id_papan1" 4656 name="note_id_papan1" 4657 style="top: 0px;"> 4658 <input type="hidden" 4659 value="" 4660 id="note_btn_id_papan1" 4661 name="note_btn_id_papan1"> 4662 </div> 4663 <div class="hide"> 4664 <input type="hidden" 4665 value="" 4666 id="note_id_papan2" 4667 name="note_id_papan2" 4668 style="top: 0px;"> 4669 <input type="hidden" 4670 value="" 4671 id="note_btn_id_papan2" 4672 name="note_btn_id_papan2"> 4673 </div> 4674 <div class="hide"> 4675 <input type="hidden" 4676 value="" 4677 id="note_id_papan3" 4678 name="note_id_papan3" 4679 style="top: 0px;"> 4680 <input type="hidden" 4681 value="" 4682 id="note_btn_id_papan3" 4683 name="note_btn_id_papan3"> 4684 </div> 4685 <div 4686 class="field-papan group-field-2 form-group"> 4687 4688 <label for="logoPapan" 4689 onclick="" 4690 class="input-field field-logo"> 4691 4692 4693 4694 <div 4695 class="btn-upload-papan w-100"> 4696 <?xml version="1.0" encoding="UTF-8"?> 4697 <img src="" 4698 style="display:none"> 4699 <div 4700 class="svgLogoPapan"> 4701 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 4702 width="22" 4703 height="26" 4704 viewB
4704ox="0 0 22 26" 4705 fill="none"> 4706 <path 4707 d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" 4708 fill="black" /> 4709 </svg> 4710 <p>Upload Logo 4711 <span>*optional</span> 4712 </p> 4713 </div> 4714 </div> 4715 4716 </label> 4717 4718 <input type="hidden" 4719 data-properties="papan-logo" 4720 value=""> 4721 <input type="file" 4722 id="logoPapan" 4723 accept="image/*" 4724 style="position: absolute;width: 1px;height: 1px;padding: 0"> 4725 4726 <div class="input-field"> 4727 <input 4728 class="has-limit sender-name" 4729 type="text" 4730 placeholder="Nama Pengirim" 4731 data-properties="pengirim" 4732 maxlength="35" /> 4733 <p class="limit">0/35 4734 </p> 4735 </div> 4736 4737 </div> 4738 4739 </div> 4740 </div> 4741 </div> 4742 4743 </div> 4744 </div> 4745 4746 </div> 4747 <div class="purchase-button-wrapper"> 4748 <div class="purchase-button btn-card row m-0"> 4749 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4750 4751 </div> 4752 <div 4753 class="btn-next-card col-12 col-lg-10 text-right"> 4754 4755 4756 <button 4757 class="btn next-purchase-button text-uppercase" 4758 disabled> 4759 <sp
4759an>save your flower board</span> 4760 </button> 4761 </div> 4762 </div> 4763 4764 </div> 4765 </div> 4766 </div> 4767 4768 4769 4770 <div class="sectionPurchase sectionPurchaseBoard hide" 4771 data-section="address"> 4772 <div class="wrapperPurchase"> 4773 <div class="purchase-content"> 4774 <div class="headerPurchase"> 4775 <h3> 4776 Complete Your Order 4777 </h3> 4778 <a class="close-purchase-popup"> 4779 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 4780 width="18" height="18" 4781 viewB
4781ox="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 4797 send your heartfelt blooms 4798 straight to their door.</p> 4799 4800 <div 4801 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 4837 class="text-uppercase"> 4838 how you want to 4839 input your address 4840 </h4> 4841 <div 4842 class="form-group row mb-2 mb-lg-4 form-address-upload"> 4843 <div 4844 class="col-6 position-relative"> 4845 <label 4846 class="address-manualy"> 4847 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 4848 width="18" 4849 height="17" 4850 viewB
4850ox="0 0 18 17" 4851 fill="none"> 4852 <path 4853 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
48535 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" 4854 fill="black" /> 4855 </svg> 4856 <span>Input 4857 Address 4858 Manually</span> 4859 </label> 4860 </div> 4861 <div 4862 class="col-6 position-relative"> 4863 <label 4864 for="address-upload" 4865 class="address-upload"> 4866 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 4867 width="12" 4868 height="13" 4869 viewB
4869ox="0 0 12 13" 4870 fill="none"> 4871 <path 4872 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" 4873 fill="black" /> 4874 </svg> 4875 <span>Upload 4876 Address 4877 Picture</span> 4878 </label> 4879 <input 4880 id="address-upload" 4881 type="file" 4882 accept="image/png, image/jpeg" 4883 style="position: absolute; padding: 0;width: 1px;height: 1px"> 4884 <input 4885 type="hidden" 4886 class="props-address-upload" 4887 data-properties="foto-alamat"> 4888 </div> 4889 </div> 4890 <img width="150" 4891 height="" src="" 4892 class="photo-address" 4893 style="display: none;"> 4894 4895 <div 4896 class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4897 <div class="col-12"> 4898 <textarea 4899 id="delivery_address" 4900 data-properties="alamat-penerima" 4901 class="form-control input__field col-12" 4902 placeholder="" 4903 required></textarea> 4904 <label 4905 for="delivery_address" 4906 class="input__label">Delivery 4907 Address<span>*</span></label> 4908 4909 </div> 4910 </div> 4911 <div 4912 class="form-group row mb-2 mb-lg-4 form-address"> 4913 <div 4914 class="col-6 position-relative"> 4915 <input 4916 id="recipient_number" 4917 type="text" 4918 data-properties="telepon-penerima" 4919 class="form-control input__field" 4920 placeholder="" 4921 required> 4922 <label 4923 for="recipient_number" 4924 class="input__label">Recipient 4925 number<span>*</span></label> 4926 </div> 4927 <div 4928 class="col-6 position-relative"> 4929 <input 4930 id="company" 4931 type="text" 4932 data-properties="company" 4933 class="form-control input__field" 4934 placeholder=""> 4935 <label 4936 for="company" 4937 class="input__label">Company 4938 (Optional)</label> 4939 </div> 4940 </div> 4941 <div 4942 class="form-group row mb-2 mb-lg-4 form-address"> 4943 <div 4944 class="col-6 position-relative"> 4945 <input 4946 id="province" 4947 type="text" 4948 class="form-control input__field" 4949 placeholder="" 4950 value="Jakarta" 4951 data-properties="province"> 4952 <label 4953 for="province" 4954 class="input__label">Province</label> 4955 </div> 4956 <div 4957 class="col-6 position-relative"> 4958 <select id="zip" 4959 class="form-control select-search" 4960 required></select> 4961 </div> 4962 </div> 4963 </form> 4964 </div> 4965 </div> 4966 </div> 4967 <div class="addonsPurchase"> 4968 <h4 class="text-uppercase">add-ons 4969 </h4> 4970 <div class="addons"> 4971 <p>No Add-Ons</p> 4972 <!-- 4973 <button class="add-addon"> 4974 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4975 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4976 </svg>
4977 <span>Enhance my moment with Add-ons</span> 4978 </button> 4979 --> 4980 </div> 4981 </div> 4982 </div> 4983 4984 </div> 4985 </div> 4986 4987
4987<script> 4988 document.addEventListener('DOMContentLoaded', function () { 4989 // Detect iOS 4990 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4991 4992 if (isIOS) { 4993 document.querySelector('.formAddressPurchase').classList.add('ios'); 4994 4995 // iOS specific fixes 4996 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4997 4998 inputs.forEach(function (input) { 4999 // Force enable touch events on iOS 5000 input.style.webkitUserSelect = 'text'; 5001 input.style.webkitTouchCallout = 'default'; 5002 input.style.pointerEvents = 'auto'; 5003 input.style.touchAction = 'manipulation'; 5004 5005 // Add explicit touch event listeners for iOS 5006 input.addEventListener('touchstart', function (e) { 5007 e.stopPropagation(); 5008 this.focus(); 5009 }, { passive: false }); 5010 5011 input.addEventListener('touchend', function (e) { 5012 e.preventDefault(); 5013 e.stopPropagation(); 5014 this.focus(); 5015 this.click(); 5016 }, { passive: false }); 5017 5018 // Force focus on tap for iOS 5019 input.addEventListener('click', function (e) { 5020 e.stopPropagation(); 5021 if (document.activeElement !== this) { 5022 this.focus(); 5023 } 5024 }); 5025 }); 5026 5027 // Fix for label overlapping on iOS 5028 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 5029 labels.forEac
5029h(function (label) { 5030 label.style.pointerEvents = 'none'; 5031 label.addEventListener('touchstart', function (e) { 5032 e.preventDefault(); 5033 var input = this.parentNode.querySelector('.input__field'); 5034 if (input) { 5035 input.focus(); 5036 } 5037 }); 5038 }); 5039 } 5040 5041 // Handle input state for all browsers, especially iOS 5042 var inputs = document.querySelectorAll('.input__field'); 5043 5044 inputs.forEach(function (input) { 5045 // Handle input events 5046 input.addEventListener('input', function () { 5047 if (this.value.trim() !== '') { 5048 this.classList.add('has-value'); 5049 } else { 5050 this.classList.remove('has-value'); 5051 } 5052 }); 5053 5054 // Handle focus 5055 input.addEventListener('focus', function () { 5056 this.classList.add('focused'); 5057 // iOS specific: ensure input is visible 5058 if (isIOS) { 5059 setTimeout(function () { 5060 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 5061 }, 300); 5062 } 5063 }); 5064 5065 // Handle blur 5066 input.addEventListener('blur', function () { 5067 this.classList.remove('focused'); 5068 if (this.value.trim() !== '') { 5069 this.classList.add('has-value'); 5070 } else { 5071 this.classList.remove('has-value'); 5072 } 5073 }); 5074 5075 // Initial check for pre-filled values 5076 if (input.value.trim() !== '') { 5077 input.classList.add('has-value'); 5078 } 5079 }); 5080 5081 // Additional iOS fixes 5082 if (isIOS) { 5083 // Prevent iOS Safari from adding default styling 5084 document.addEventListener('touchstart', function () { }, { passive: true });
5085 5086 // Fix viewport issues on iOS 5087 var viewport = document.querySelector('meta[name=viewport]'); 5088 if (viewport) { 5089 viewport.setAttribute('content', 5090 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 5091 ); 5092 } 5093 } 5094 }); 5095 </script>
5095 5096 </div> 5097 <div class="purchase-button-wrapper"> 5098 <div class="purchase-button btn-address row m-0"> 5099 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 5100 5101 <button 5102 class="back-purchase-button back-address text-uppercase"> 5103 <svg width="15" height="14" 5104 viewBox="0 0 15 14" fill="none" 5105 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 5106 <path 5107 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" 5108 fill="black" /> 5109 </svg> 5110 <span>Back</span> 5111 </button> 5112 5113 </div> 5114 <div 5115 class="btn-next-card col-12 col-lg-10 text-right"> 5116 5117 <!-- 5118 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 5119 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 5120 <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"/> 5121 </svg> 5122 <span>Back</span> 5123 </button> 5124 --> 5125 5126 5127 <button id="addtocart-card" 5128 class="btn next-address text-uppercase"> 5129 <span>add to cart</span> 5130 </button> 5131 </div> 5132 </div> 5133 5134 </div> 5135 </div> 5136 </div> 5137 5138 </div> 5139 </div> 5140 <div id="backgroundPopup"></div> 5141 5142 5143 5144 <input data-index="1" type="hidden" id="properties-delivery-date" 5145 name="properties[Delivery Date]" value="-"> 5146 <input data-index="2" type="hidden" id="properties-delivery-time" 5147 name="properties[Delivery Time]" value="-"> 5148 <input data-index="4" type="hidden" id="properties-nama-penerima" 5149 name="properties[Nama Penerima]" value="-"> 5150 <input data-index="5" type="hidden" id="properties-alamat-penerima" 5151 name="properties[Alamat Penerima]" value="-"> 5152 <input data-index="6" type="hidden" id="properties-kodepos" 5153 name="properties[Kodepos]" value="-"> 5154 <input data-index="7" type="hidden" id="properties-telepon-penerima" 5155 name="properties[Telepon Penerima]"> 5156 5157 5158 <input data-index="8" type="hidden" id="properties-kartu-nama-penerima" 5159 name="properties[Kartu Nama Penerima]" value="-"> 5160 5161 <textarea data-index="9" type="hidden" id="properties-kartu-pesan" 5162 name="properties[Kartu Pesan]" style="display: none">-</textarea> 5163 5164 5165 5166 <input data-index="10" type="hidden" id="properties-kartu-nama-pengirim" 5167 name="properties[Kartu Nama Pengirim]" value="-"> 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 <!-- Additional Shipping --> 5187 <input type="hidden" id="properties-kota-pengiriman-province" 5188 name="properties[Province]"> 5189 <input type="hidden" id="properties-kota-pengiriman-country" 5190 name="properties[Country]" value="Indonesia"> 5191 <input type="hidden" id="properties-shipping" 5192 name="properties[Shipping]"> 5193 5194 <input type="hidden" id="properties-time" name="properties[Time]"> 5195 <input type="hidden" id="properties-card" name="properties[Card]"> 5196 <input type="hidden" id="properties-addons" name="properties[Addons]"> 5197 5198 <input type="hidden" id="properties-company" name="properties[Company]" 5199 value=""> 5200
5200<script> 5201 5202 $(document).ready(function () { 5203 5204 var text_max_papan1 = 150; 5205 var msg_text_papan1 = ""; 5206 $('#kartu-ucapan-ucapan').keyup(function () { 5207 var text_length_papan1 = $('#kartu-ucapan-ucapan').val().length; 5208 var msg_text_papan1 = $('#kartu-ucapan-ucapan').val(); 5209 }); 5210 5211 var notes_papan1 = [ 5212 5213 [0, "Happy Wedding (nama & nama)."], [1, "Congratulations lovebirds (nama & nama)."], [2, "Selamat berbahagia (nama & nama)."], [3, "Selamat menempuh hidup baru (nama & nama)."] 5214 5215 ]; 5216 $('#show_note_papan1').click(function (event) { 5217 event.preventDefault(); 5218 var idx_papan1 = parseInt($('#note_id_papan1').val()); 5219 if (isNaN(idx_papan1)) { 5220 idx_papan1 = 0; 5221 } else { 5222 idx_papan1++; 5223 idx_papan1 = idx_papan1 % notes_papan1.length; 5224 } 5225 var note_papan1 = notes_papan1[idx_papan1][1]; 5226 $('#note_id_papan1').val(idx_papan1); 5227 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 5228 $('#msgDelivery').val(note_papan1); 5229 5230 var text_length_papan1 = $('#kartu-ucapan-papan').val().length; 5231 var idx_2_papan1 = parseInt($('#note_btn_id_papan1').val()); 5232 if (isNaN(idx_2_papan1)) { 5233 idx_2_papan1 = 0; 5234 } else { 5235 idx_2_papan1++; 5236 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5237 } 5238 $('#note_btn_id_papan1').val(idx_2_papan1); 5239 //var note_btn=note_btn_text[idx_2][1]; 5240 //$('#note_btn').text(note_btn); 5241 }); 5242 5243 var text_max_papan2 = 150; 5244 var msg_text_papan2 = ""; 5245 $('#kartu-ucapan-ucapan').keyup(function () { 5246 var text_length_papan2 = $('#kartu-ucapan-ucapan').val().length; 5247 var msg_text_papan2 = $('#kartu-ucapan-ucapan').val(); 5248 }); 5249 5250 var notes_papan2 = [ 5251 5252 [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)."] 5253 5254 ]; 5255 $('#show_note_papan2').click(function (event) { 5256 event.preventDefault(); 5257 var idx_papan2 = parseInt($('#note_id_papan2').val()); 5258 if (isNaN(idx_papan2)) { 5259 idx_papan2 = 0; 5260 } else { 5261 idx_papan2++; 5262 idx_papan2 = idx_papan2 % notes_papan2.length; 5263 } 5264 var note_papan2 = notes_papan2[idx_papan2][1]; 5265 $('#note_id_papan2').val(idx_papan2); 5266 $('#kartu-ucapan-
5266papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 5267 $('#msgDelivery').val(note_papan2); 5268 var text_length_papan2 = $('#kartu-ucapan-papan').val().length; 5269 var idx_2_papan2 = parseInt($('#note_btn_id_papan2').val()); 5270 if (isNaN(idx_2_papan2)) { 5271 idx_2_papan2 = 0; 5272 } else { 5273 idx_2_papan2++; 5274 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5275 } 5276 $('#note_btn_id_papan2').val(idx_2_papan2); 5277 //var note_btn=note_btn_text[idx_2][1]; 5278 //$('#note_btn').text(note_btn); 5279 }); 5280 5281 var text_max_papan3 = 150; 5282 var msg_text_papan3 = ""; 5283 $('#kartu-ucapan-ucapan').keyup(function () { 5284 var text_length_papan3 = $('#kartu-ucapan-ucapan').val().length; 5285 var msg_text_papan3 = $('#kartu-ucapan-ucapan').val(); 5286 }); 5287 5288 var notes_papan3 = [ 5289 5290 [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)."] 5291 5292 ]; 5293 $('#show_note_papan3').click(function (event) { 5294 event.preventDefault(); 5295 var idx_papan3 = parseInt($('#note_id_papan3').val()); 5296 if (isNaN(idx_papan3)) { 5297 idx_papan3 = 0; 5298 } else { 5299 idx_papan3++; 5300 idx_papan3 = idx_papan3 % notes_papan3.length; 5301 } 5302 var note_papan3 = notes_papan3[idx_papan3][1]; 5303 $('#note_id_papan3').val(idx_papan3); 5304 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 5305 $('#msgDelivery').val(note_papan3); 5306 var text_length_papan3 = $('#kartu-ucapan-papan').val().length; 5307 var idx_2_papan3 = parseInt($('#note_btn_id_papan3').val()); 5308 if (isNaN(idx_2_papan3)) { 5309 idx_2_papan3 = 0; 5310 } else { 5311 idx_2_papan3++; 5312 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5313 } 5314 $('#note_btn_id_papan3').val(idx_2_papan3); 5315 //var note_btn=note_btn_text[idx_2][1]; 5316 //$('#note_btn').text(note_btn); 5317 }); 5318 5319 var text_max_papan4 = 150; 5320 var msg_text_papan4 = ""; 5321 $('#kartu-ucapan-ucapan').keyup(function () { 5322 var text_length_papan4 = $('#kartu-ucapan-ucapan').val().length; 5323 var msg_text_papan4 = $('#kartu-ucapan-ucapan').val(); 5324 }); 5325 5326 $('#show_note_papan4').click(function (event) { 5327 var notes_papan4 = [ 5328 [0, "Hereâs to youâsteadier, stronger and better every day."], 5329 [1, "Warmest wishes for a speedy recovery!"], 5330 [2, "Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 5331 [3, "Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 5332 ]; 5333 event.preventDefault(); 5334 var idx_papan4 = parseInt($('#note_id_papan4').val()); 5335 console.log(idx_papan4, 'idx_papan4') 5336 if (isNaN(idx_papan4)) { 5337 idx_papan4 = 0; 5338 } else { 5339 idx_papan4++; 5340 idx_papan4 = idx_papan4 % notes_papan4.length; 5341 } 5342 var note_papan4 = notes_papan4[idx_papan4][1]; 5343 $('#note_id_papan4').val(idx_papan4); 5344 $('#kartu-ucapan-
5344papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 5345 console.log(note_papan4, 'note_papan4') 5346 var text_length_papan4 = $('#kartu-ucapan-papan').val().length; 5347 var idx_2_papan4 = parseInt($('#note_btn_id_papan4').val()); 5348 if (isNaN(idx_2_papan4)) { 5349 idx_2_papan4 = 0; 5350 } else { 5351 idx_2_papan4++; 5352 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5353 } 5354 $('#note_btn_id_papan4').val(idx_2_papan4); 5355 }); 5356 5357 /* 5358 $("#jenisPapan").change(function(){ 5359 $( "select option:selected").each(function(){ 5360 if($(this).attr("value")=="Happy Wedding"){ 5361 $("#suggest-messages a").hide(); 5362 $("#show_note_papan1").show(); 5363 $("#kartu-ucapan-papan").val(""); 5364 } 5365 if($(this).attr("value")=="Congratulations"){ 5366 $("#suggest-messages a").hide(); 5367 $("#show_note_papan2").show(); 5368 $("#kartu-ucapan-papan").val(""); 5369 } 5370 if($(this).attr("value")=="Duka Cita"){ 5371 $("#suggest-messages a").hide(); 5372 $("#show_note_papan3").show(); 5373 $("#kartu-ucapan-papan").val(""); 5374 } 5375 }); 5376 }).change(); 5377 */ 5378 5379 5380 5381 5382 5383 $(".variant-metafield").each(function () { 5384 const t = $(this) 5385 const id = t.attr("id") 5386 const target = $(`[data-select=${id}]`) 5387 t.on('select2:selecting', function (e) { 5388 const data = e.params.args.data 5389 target.val(data.text) 5390 }); 5391 }) 5392 }) 5393 </script>
5393 5394 5395 <div id="popupCart"> 5396 <div class="container"> 5397 <div class="wrapperPopupCart"> 5398 <div class="headerPopupCart"> 5399 <div class="d-flex pl-5 pr-5 p-4"> 5400 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 5401 width="16" height="12" viewBox="0 0 16 12" 5402 fill="none"> 5403 <path 5404 d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" 5405 fill="black" /> 5406 </svg> 5407 <span>item added to your cart</span> 5408 </div> 5409 <a class="close-purchase-popup"> 5410 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 5411 width="18" height="18" viewBox="0 0 18 18" 5412 fill="none"> 5413 <path 5414 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" 5415 fill="black" /> 5416 </svg> 5417 </a> 5418 5419 </div> 5420 <div class="contentPopupCart"> 5421 <div class="pl-5 pr-5 p-4"> 5422 <div 5423 class="itemContent row m-0 justify-content-between"> 5424 <div class="col-2 align-self-center"> 5425 5426 <img class="d-block" width="80" 5427 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"> 5428 </div> 5429 <div class="col-10 align-self-center"> 5430 <div class="row pl-3"> 5431 <div class="col-12 col-lg-7"> 5432 <span 5433 class="titleCartPopup text-uppercase">AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari</span> 5434 </div> 5435 <div 5436 class="d-flex justify-content-end col
5436-12 col-lg-5"> 5437 <span 5438 class="deleteCartPopup hide">Delete</span> 5439 <span 5440 class="lineCartPrice align-self-center">Rp 5441 5.000</span> 5442 </div> 5443 </div> 5444 </div> 5445 </div> 5446 <div class="itemProperties"> 5447 5448 <div class="propDeliver"> 5449 <h4>delivery option detail</h4> 5450 <p> 5451 <span>delivery city</span> 5452 <span 5453 class="propDeliveryCity">jakarta</span> 5454 </p> 5455 <p> 5456 <span>delivery date</span> 5457 <span 5458 class="propDeliveryDate">24/03/2025</span> 5459 </p> 5460 <p> 5461 <span>delivery time</span> 5462 <span class="propDeliveryTime">Afternoon 5463 | 13:00 - 18:00</span> 5464 </p> 5465 </div> 5466 <div class="propAddress"> 5467 <h4>delivery option detail</h4> 5468 <p> 5469 <span>RECIPIENT NAME</span> 5470 <span class="propDeliveryName">jane 5471 doe</span> 5472 </p> 5473 <p> 5474 <span>delivery address</span> 5475 <span class="propDeliveryAddress">Jl. 5476 Gatot Subroto No. 25, RT.2/RW.4, 5477 Kuningan Barat, Kecamatan Mampang 5478 Prapatan, Kota Jakarta 5479 Selatan, Daerah Khusus Ibukota 5480 Jakarta 12710, Indonesia</span> 5481 </p> 5482 <p> 5483 <sp
5483an>recipient phone number</span> 5484 <span class="propDeliveryPhone">(+62) 5485 812-7752-3364</span> 5486 </p> 5487 <p> 5488 <span>PROVINCE</span> 5489 <span 5490 class="propDeliveryProv">Jakarta</span> 5491 </p> 5492 <p> 5493 <span>postal code</span> 5494 <span 5495 class="propDeliveryZip">12710</span> 5496 </p> 5497 5498 5499 </div> 5500 5501 </div> 5502 <div class="itemAddonCart"> 5503 <div 5504 class="toggleAddonCart d-flex justify-content-between"> 5505 <h4>add-ons (0)</h4> 5506 <svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 5507 width="5" height="9" viewBox="0 0 5 9" 5508 fill="none"> 5509 <path 5510 d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" 5511 fill="black" /> 5512 </svg> 5513 </div> 5514 <div class="wrapperItemAddonCart"></div> 5515 </div> 5516 5517 </div> 5518 </div> 5519 <div class="footerPopupCart"> 5520 <div class="row m-0 pl-5 pr-5 p-4"> 5521 <a class="btn btnViewCart w-100 text-uppercase text-center" 5522 href="/cart">View Cart</a> 5523 <a class="btn btnViewCheckout w-100 text-uppercase text-center" 5524 href="/checkout"><span>Checkout</span></a> 5525 <a class="btnContinueShopping w-100 text-center" 5526 href="/">Continue shopping</a> 5527 </div> 5528 </div> 5529 </div> 5530 </div> 5531 </div> 5532 5533 5534
5534<script> 5535 const shareButton = document.getElementById('shareButton'); 5536 5537 shareButton.addEventListener('click', () => { 5538 if (navigator.share) { 5539 navigator.share({ 5540 title: "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", 5541 url: "/products/blossom-shine", 5542 text: 'Check out this page!' 5543 }) 5544 .then(() => console.log('Successful share')) 5545 .catch((error) => console.log('Error sharing', error)); 5546 } else { 5547 alert('Web Share API is not supported in this browser.'); 5548 } 5549 }); 5550 5551 // Inventory validation function 5552 function checkInventoryStatus() { 5553 const productSelect = document.getElementById('productSelect'); 5554 const purchaseButton = document.querySelector('#personalizeBtn button'); 5555 5556 if (!productSelect || !purchaseButton) return; 5557 5558 const selectedVariantId = productSelect.value; 5559 5560 // Get variant data from Shopify 5561 fetch(`/products/blossom-shine.js`) 5562 .then(response => response.json()) 5563 .then(product => { 5564 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 5565 5566 if (selectedVariant) { 5567 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 5568 selectedVariant.inventory_management === 'shopify' && 5569 selectedVariant.inventory_policy !== 'continue'; 5570 5571 if (isOutOfStock) { 5572 purchaseButton.disabled = true; 5573 purchaseButton.textContent = 'Out of Stock'; 5574 purchaseButton.setAttribute('data-out-of-stock', 'true'); 5575 purchaseButton.style.backgroundColor = '#cccccc'; 5576 purchaseButton.style.cursor = 'not-allowed'; 5577 } else { 5578 // Check if button was disabled due to other conditions 5579 5580 5581 5582 5583 5584 5585 5586 5587 const isOtherDisabled = false || true || false; 5588 5589 if (!isOtherDisabled) { 5590 purchaseButton.disabled = false; 5591 purchaseButton.textContent = 'customize your flower board'; 5592 purchaseButton.removeAttribute('data-out-of-stock'); 5593 purchaseButton.style.backgroundColor = ''; 5594 purchaseButton.style.cursor = ''; 5595 } 5596 } 5597 } 5598 }) 5599 .catch(error => { 5600 console.error('Error checking inventory:', error); 5601 }); 5602 } 5603 5604 // Check inventory on page load 5605 document.addEventListener('DOMContentLoaded', function () { 5606 checkInventoryStatus();
5607 5608 // Listen for variant changes 5609 const productSelect = document.getElementById('productSelect'); 5610 if (productSelect) { 5611 productSelect.addEventListener('change', checkInventoryStatus); 5612 } 5613 }); 5614 5615 // Prevent form submission if out of stock 5616 document.addEventListener('click', function (e) { 5617 if (e.target.matches('button[data-out-of-stock="true"]')) { 5618 e.preventDefault(); 5619 e.stopPropagation(); 5620 alert('This product is currently out of stock and cannot be purchased.'); 5621 return false; 5622 } 5623 }); 5624 </script>
5624 5625 5626 5627 5628 </div> 5629 5630 </div> 5631 </div> 5632 </div> 5633 </div> 5634 <div id="product-bottom"> 5635 5636 <div class="container"> 5637 5638 5639 5640 5641 5642 <div class="short-desc-mobile d-block d-lg-none mb-3"> 5643 <div class="short-desc"> 5644 <ul> 5645 <li><strong>AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja</strong></li> 5646 </div> 5647 <label class="more-mobile">Show More â</label> 5648 </div> 5649 5650 <style> 5651 .animated-title { 5652 text-align: center; 5653 font-weight: bold; 5654 color: #079c02; 5655 font-size: 28px; 5656 position: relative; 5657 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 5658 } 5659 5660 /* Efek glow / bercahaya hijau */ 5661 @keyframes glow { 5662 0% { 5663 text-shadow: 0 0 5px #079c02; 5664 color: #079c02; 5665 } 5666 5667 50% { 5668 text-shadow: 0 0 20px #00ff55; 5669 color: #12d12b; 5670 } 5671 5672 100% { 5673 text-shadow: 0 0 10px #1bff00; 5674 color: #079c02; 5675 } 5676 } 5677 5678 /* Efek gerakan naik turun */ 5679 @keyframes moveUpDown { 5680 0% { 5681 transform: translateY(0px); 5682 } 5683 5684 50% { 5685 transform: translateY(-5px); 5686 } 5687 5688 100% { 5689 transform: translateY(0px); 5690 } 5691 } 5692 </style> 5693 5694
5694<script type="text/javascript" 5695 src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
5695 5696
5696<script> 5697 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 }); 5698 5699 const productType = $("[data-product-type]").data("product-type") 5700 const productDate = Date.parse(new Date()) 5701 5702 const shop = 'outerbloom1.myshopify.com' 5703 const host = 'https://app.asmaraku.com' 5704 // const host = 'http://localhost:5001' 5705 5706 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 5707 5708 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 5709 5710 $("#properties-time").val(new Date().getTime()) 5711 5712 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5713 5714 if (!isIOS) { 5715 $("#full-date").attr("type", "button") 5716 } 5717 5718 let dateTime = new Date(); 5719 let today = dateTime.getDate(); 5720 let day = dateTime.getDay(); 5721 let hour = dateTime.getHours(); 5722 let min = dateTime.getMinutes(); 5723 let timeOfDay = hour + (min / 100); 5724 5725 async function getFetch(url) { 5726 const response = await fetch(url); 5727 let status = false 5728 let result 5729 if (response.ok) { 5730 status = true 5731 result = await response.json(); 5732 } 5733 return { 5734 status, 5735 data: result 5736 } 5737 } 5738 5739 5740 5741 function setCookie(cname, cvalue, exMins) { 5742 var d = new Date(); 5743 d.setTime(d.getTime() + (exMins * 60 * 1000)); 5744 var expires = "expires=" + d.toUTCString(); 5745 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5746 } 5747 5748 function getCookie(cname) { 5749 let name = cname + "="; 5750 let decodedCookie = decodeURIComponent(document.cookie); 5751 let ca = decodedCookie.split(';'); 5752 for (let i = 0; i < ca.length; i++) { 5753 let c = ca[i]; 5754 while (c.charAt(0) == ' ') { 5755 c = c.substring(1); 5756 } 5757 if (c.indexOf(name) == 0) { 5758 return c.substring(name.length, c.length); 5759 } 5760 } 5761 return ""; 5762 } 5763 5764 async function renderDate() { 5765 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=9233866700552&v=${Date.now()}`); 5766 console.log(dataDate, 'renderDate') 5767 const data = dataDate?.data 5768 const date = data.date 5769 const time = data.time 5770 5771 console.log(date, 'DATE') 5772 5773 const weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 5774 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 5775 const htmlDate = [] 5776 for (let i = 0; i < date.length; i++) { 5777 const full = date[i].date 5778 const d = new Date(date[i].date); 5779 const day = weekday[d.getDay()]; 5780 const dt = d.getDate(); 5781 const mt = monthly[d.getMonth()];
5782 const yr = d.getFullYear(); 5783 const isDate = Boolean(date[i].isEnabled) 5784 const cutoffpagi = date[i].cutoff?.pagi 5785 const cutoffsiang = date[i].cutoff?.siang 5786 const cutoffMalam = date[i].cutoff?.Malam 5787 var html = ` 5788 <button data-id="9233866700552" 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'}> 5789 ${dt === today ? 5790 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 5791 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 5792 } 5793 </button> 5794 ` 5795 htmlDate.push(html) 5796 } 5797 const htmlTime = [] 5798 for (var i = 0; i < time.length; i++) { 5799 const timeText = time[i].text 5800 const timeTime = time[i].time 5801 const timeEnabled = time[i].isEnabled 5802 var html = ` 5803 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 5804 ` 5805 htmlTime.push(html) 5806 } 5807 const deliveryDate = document.getElementById("deliveryDate"); 5808 if (deliveryDate) { 5809 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 5810 $("#deliveryTime").html(htmlTime) 5811 if (productType !== '') { 5812 console.log("clarity event " + productType + ' calendaring') 5813 window.clarity("event", `${productType} calendaringSchedule`) 5814 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 5815 } 5816 } 5817 } 5818 5819 async function getProvince(city) { 5820 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 5821 console.log(province, 'province') 5822 $("#province").val(province) 5823 } 5824 5825 async function renderAddress() { 5826 let current 5827 if (getCookie("location_delivery")) { 5828 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 5829 } 5830 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=9233866700552`); 5831 console.log(address) 5832 const data = address?.data?.city 5833 const htmlAddress = [] 5834 const grouping = [] 5835 for (let i = 0; i < data?.length; i++) { 5836 if (data[i]) { 5837 if (data[i]?.group) { 5838 grouping.push(data[i].group) 5839 } 5840 const price = rupiah.format(data[i]?.rate) 5841 let promo = '(Promo Free Delivery)' 5842 if (data[i]?.name === 'Jakarta - PickUp ASHTA') { 5843 promo = '(at SCBD, Ashta)' 5844 } else if (data[i]?.name === 'Jakarta - PickUp ITC') { 5845 promo = '(at Kuningan, ITC Kuningan)' 5846 } else if (data[i]?.name === 'BSD - PickUp') { 5847 promo = '(at Goldfinch Gading Serpong)' 5848 } else if (data[i]?.name === 'Kota Lainnya') { 5849 promo = '' 5850 } 5851 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>`) 5852 } 5853 } 5854 5855 const deliveryCity = document.getElementById("cities"); 5856 if (deliveryCity) { 5857 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 5858 if (!isIOS) { 5859 $(deliveryCity).select2(); 5860 } 5861 } 5862 } 5863 5864 async function renderZip(v, v2, v3) { 5865 const deliveryZip = document.getElementById("zip"); 5866 if (v === '') { 5867 return 5868 } 5869 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5870 let zip = dataZip?.data?.z
5870ip 5871 console.log(zip) 5872 let htmlZip = [] 5873 for (let i = 0; i < zip?.length; i++) { 5874 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5875 } 5876 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5877 } 5878 5879 renderDate() 5880 renderAddress() 5881 5882 let rupiah = new Intl.NumberFormat('id-ID', { 5883 style: 'currency', 5884 currency: 'IDR', 5885 maximumFractionDigits: 0, 5886 minimumFractionDigits: 0 5887 }); 5888 5889 async function insertCard(data) { 5890 const response = await fetch(`${host}/api/card/new`, { 5891 method: "POST", 5892 headers: { 5893 'Content-Type': 'application/json', 5894 }, 5895 body: data 5896 }) 5897 const result = await response.json() 5898 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5899 $("#greetingCard").attr("data-index", rowIndex) 5900 return result 5901 } 5902 5903 async function updateCard(data) { 5904 const rowIndex = $("#greetingCard").data("index") 5905 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5906 method: "PUT", 5907 headers: { 5908 'Content-Type': 'application/json', 5909 }, 5910 body: data 5911 }) 5912 return response 5913 } 5914 5915 function bytesToSize(bytes) { 5916 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5917 for (var i = 0; i < sizes.length; i++) { 5918 if (bytes <= 1024) { 5919 return bytes + ' ' + sizes[i]; 5920 } else { 5921 bytes = parseFloat(bytes / 1024).toFixed(2) 5922 } 5923 } 5924 return bytes + ' P'; 5925 } 5926 5927 async function uploadMedia(uri, type) { 5928 nameq = $("#properties-nama-penerima").val() 5929 dear = $("#properties-kartu-nama-penerima").val() 5930 card = $("[data-properties=ucapan]").val() 5931 sender = $("#properties-kartu-nama-pengirim").val() 5932 photo = $("#properties-photo").val() 5933 video = $("#properties-video").val() 5934 status = "Product" 5935 5936 const name = qrID 5937 let formData = new FormData(); 5938 formData.append("file", uri); 5939 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5940 method: "POST", 5941 body: formData 5942 }) 5943 const result = await response.json(); 5944 if (result) { 5945 const url = result.url 5946 if (type === 'image/jpeg') { 5947 $("#properties-photo").val(url) 5948 $(".preview-image").show() 5949 $(".remove-image").show() 5950 photo = url 5951 } else { 5952 $("#properties-video").val(url) 5953 $("#label-input-video span").text("Change File") 5954 $(".case-qrcode-preview p").text("Scan here for a secret message") 5955 $(".remove-media").show() 5956 $("#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>`) 5957 $("[for=input-video]").hide() 5958 video = url 5959 } 5960 $(".case-video-preview").show() 5961 $(".steps-card-preview").removeClass("loading") 5962 // updateCard(nameq, dear, card, sender, photo, video, status) 5963 5964 $(".nextBtn").attr("disabled", false) 5965 } 5966 } 5967 5968 function randomString(length, chars) { 5969 var result = ''; 5970 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5971 return result; 5972 } 5973 5974 function getNoteCity(fulldate) { 5975 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5976 const weekday = ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"]; 5977 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 5978 const d = new Date(h_1); 5979 const day = weekday[d.getDay()]; 5980 const dt = d.getDate(); 5981 const mt = monthly[d.getMonth()];
5982 const yr = d.getFullYear(); 5983 const p = $("#cities").parent(".form-group") 5984 } 5985 5986 function disabledSameDay() { 5987 let btnFirst = $("#deliveryDate").find("button:first-child") 5988 let getDay = new Date().getDay(); 5989 5990 5991 5992 if (getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5) { 5993 if (hour >= 14.00) { 5994 btnFirst.attr("disabled", true) 5995 } 5996 } else if (getDay == 6) { 5997 if (hour >= 16.00) { 5998 btnFirst.attr("disabled", true) 5999 } 6000 } else if (getDay == 0) { 6001 if (hour >= 16.00) { 6002 btnFirst.attr("disabled", true) 6003 } 6004 } 6005 6006 6007 } 6008 6009 function disabledays(date) { 6010 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 6011 //if u have to disable a list of day 6012 let removeDays 6013 6014 6015 6016 removeDays = ["2025-2-13", "2025-2-14"]; 6017 6018 if ($.inArray(ymd, removeDays) >= 0) { 6019 return [false]; 6020 } else { 6021 let day = date.getDay(); 6022 if (day == 0 && date.getDate() == 13 && date.getMonth() == 1) { 6023 return [(day == 0), '']; 6024 } 6025 6026 if (day == 0) { 6027 return [(day == 0), '']; 6028 } 6029 6030 6031 return [(day != 0), '']; 6032 } 6033 } 6034 6035 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 6036 /* Written by Deden Fathurahman ([email protected]). */ 6037 (function (factory) { 6038 if (typeof define === "function" && define.amd) { 6039 6040 // AMD. Register as an anonymous module. 6041 define(["../widgets/datepicker"], factory); 6042 } else { 6043 6044 // Browser globals 6045 factory(jQuery.datepicker); 6046 } 6047 }(function (datepicker) { 6048 6049 datepicker.regional.id = { 6050 closeText: "Tutup", 6051 prevText: "<mundur", 6052 nextText: "maju>", 6053 currentText: "Today", 6054 monthNames: ["January", "February", "March", "April", "May", "Juny", 6055 "July", "August", "September", "October", "
6055November", "December"], 6056 monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 6057 "Jul", "Agu", "Sep", "Oct", "Nov", "Dec"], 6058 dayNames: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], 6059 dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 6060 dayNamesMin: ["Mg", "Sn", "Sl", "Rb", "Km", "jm", "Sb"], 6061 weekHeader: "Mg", 6062 dateFormat: "D, dd M", 6063 firstDay: 0, 6064 isRTL: false, 6065 showMonthAfterYear: false, 6066 yearSuffix: "" 6067 }; 6068 datepicker.setDefaults(datepicker.regional.id); 6069 6070 return datepicker.regional.id; 6071 6072 })); 6073 6074 function loadPopup() { 6075 $("#backgroundPopup").fadeIn("slow"); 6076 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 6077 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 6078 if (firstSection.hasClass("purchasePersonalize")) { 6079 if (productType !== '') { 6080 console.log("clarity event " + productType + ' personalize') 6081 window.clarity("event", `${productType} cardPersonalization`) 6082 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 6083 } 6084 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 6085 console.log("clarity event " + productType + ' personalizeBoard') 6086 window.clarity("event", `${productType} personalizeBoard`) 6087 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 6088 } 6089 firstSection.removeClass("hide") 6090 6091 // Auto-trigger addon loading when addon section becomes visible 6092 setTimeout(function () { 6093 const addonSection = $(".purchaseAddon") 6094 if (addonSection.length > 0 && !addonSection.hasClass("hide")) { 6095 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6096 $("[data-addon=upsell-all]").trigger("click") 6097 } 6098 } 6099 }, 200) 6100 } 6101 6102 function disablePopup() { 6103 $("#backgroundPopup").fadeOut("slow"); 6104 $(".purchasePopup").fadeOut("slow"); 6105 $("#popupCart").fadeOut("slow"); 6106 } 6107 6108 function scrollTo(parent, div, dur) { 6109 $(parent).animate({ 6110 scrollTop: $(div).offset().top 6111 }, dur); 6112 } 6113 6114 function loadPopupPersonalize() { 6115 const div = "#purchaseProduct" 6116 const p = "html, body, .product-meta" 6117 $("p.error").remove() 6118 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 6119 const isCity = $("#cities[required]") 6120 const isDate = $("#propDeliveryDate[required]") 6121 const isTime = $("#propDeliveryTime[required]") 6122 // loadPopup() 6123 if (isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 6124 loadPopup() 6125 } 6126 if (isCity.val() == '') { 6127 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 6128 scrollTo(p, div, 500) 6129 } 6130 if (isDate.val() == '') { 6131 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 6132 scrollTo(p, div, 500) 6133 } 6134 if (isTime.val() == '') { 6135 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 6136 scrollTo(p, div, 500) 6137 } 6138 } 6139 6140 function quantityCounter() { 6141 $(document).on("click", ".item-card.selected .q_up", function () { 6142 var C = $(this).attr("data-id"), 6143 S = 6144 parseInt( 6145 $(this) 6146 .siblings(".quantity-cart-" + C) 6147 .val() 6148 ) + 1; 6149 $(this).attr("data-quantity", S), 6150 $(this) 6151 .siblings(".quantity-cart-" + C) 6152 .val(S); 6153 }), 6154 $(document).on("click", ".item-card.selected .q_down", function () { 6155 var C = $(this).attr("data-id"), 6156 S = parseInt( 6157 $(this) 6158 .siblings(".quantity-cart-" + C) 6159 .val() 6160 ); 6161 0 < S && $(this).attr("data-quantity", S - 1), 6162 0 < S && 6163 $(this) 6164 .siblings(".quantity-cart-" + C) 6165 .val(S - 1); 6166 }); 6167 } 6168 6169 quantityCounter() 6170 6171 const itemAddon = $(".item-card").length 6172 const nofree = $(".nofree").length 6173 6174 const upsell = '' 6175 6176 if (nofree === itemAddon) { 6177 // $("#itemAddons").html("<p>No Items available</p>") 6178 } 6179 6180 $("#itemAddons .item-card").each(function (e) { 6181 $("#itemAddons").attr("data-length", e) 6182 }) 6183 6184 $("[data-addon]").click(function () { 6185 6186 6187 6188 const t = $(this) 6189 6190 const data = t.data("addon") 6191 6192 $("[data-addon]").removeClass("selected") 6193 t.addClass("selected") 6194 $.get(`https://outerbloom.com/collections/${data}/products.json`, function (data, status) { 6195 const products = data.products 6196 const html = [] 6197 for (let i = 0; i < products.length; i++) { 6198 const id = products[i].id 6199 const variantId = products[i].variants[0].id 6200 const img = products[i].images[0].src 6201 let img2 = img.split('.jpg')[0] 6202 const title = products[i].title 6203 const price = products[i].variants[0].price 6204 const tags = products[i].tags
6205 const qty = products[i].variants[0].available 6206 let type_upsell = '' 6207 if (tags.includes('upsell-item-standing')) { 6208 type_upsell = 'standing' 6209 } 6210 console.log(type_upsell) 6211 if (type_upsell !== '') { 6212 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}"> 6213 6214 <div class="card-image"> 6215 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 6216 </div> 6217 <div class="card-meta"> 6218 <h5>${title}</h5> 6219 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6220 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 6221 </div> 6222 <div class="card-qty"> 6223 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 6224 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity"> 6225 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 6226 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 6227 </svg></a> 6228 </div> 6229 </div>` 6230 html.push(body) 6231 } 6232 } 6233 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 6234 $("#itemAddons").attr("data-length", products.length) 6235 // $('#itemAddons')[0].swiper.update(); 6236 }); 6237 }) 6238 6239 async function isAddon() { 6240 let ids = [] 6241 $("#itemAddons .item-card.selected").each(function (i, e) { 6242 const id = $(this).data("id") 6243 ids.push(id) 6244 }) 6245 console.log(ids) 6246 return ids 6247 } 6248 6249 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function () { 6250 const t = $(this).parent() 6251 const id = t.data("id") 6252 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 6253 t.toggleClass("selected"); 6254 //$(this).next("input").toggleAttr('name', 'id[]'); 6255 if (t.hasClass('selected')) { 6256 t.find("input").val(1) 6257 t.find("input").attr('name', 'id[]'); 6258 } else { 6259 t.find("input").val(0) 6260 t.find("input").removeAttr('name'); 6261 } 6262 $("#properties-addons").val(addons) 6263 const is = await isAddon() 6264 if (is.length === 0) { 6265 btn.text("continue without add-ons") 6266 return 6267 } 6268 if (is.includes(8835692069079)) { 6269 btn.text("personalize acrylic frame") 6270 } else { 6271 btn.text("Continue") 6272 } 6273 6274 }) 6275 6276 async function myAddon(data) { 6277 const c = $(".addonsPurchase .addons") 6278 let items = [] 6279 6280 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 6281 // if(spotifyAddons.length > 0) { 6282 // $(spotifyAddons).each(function(i, e){ 6283 // const spotifyLink = $(this).find(".spotifyLink").val() 6284 // const spotifySong = $(this).find(".spotifySong").val() 6285 // const spotifyArtist = $(this).find(".spotifyArtist").val() 6286 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 6287 // if(spotifyLink !== '') { 6288 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 6289 // <div class="addon-itm-img"> 6290 // <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"/> 6291 // </div> 6292 // <div class="addon-itm-title">
6293 // <span>[US] Outerbloom Acrylic Frame 4R</span> 6294 // </div> 6295 // <div class="addon-itm-line-total"> 6296 // <span>Rp 99.000</span> 6297 // </div> 6298 // </div> 6299 // <div class="propsAddonSpotify row m-0"> 6300 // <div class="col-12 col-lg-2"></div> 6301 // <div class="col-12 col-lg-10"> 6302 // <p> 6303 // <span>spotify link</span> 6304 // <span class="spotifyLinkAddon">${spotifyLink}</span> 6305 // </p> 6306 // <p> 6307 // <span>uploaded photo</span> 6308 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 6309 // </p> 6310 // <p> 6311 // <span>song / playlist name</span> 6312 // <span class="spotifySongAddon">${spotifySong}</span> 6313 // </p> 6314 // <p> 6315 // <span>artist name</span> 6316 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 6317 // </p> 6318 // </div> 6319 // </div>` 6320 // items.push(spotifyAddon) 6321 // } 6322 // }) 6323 // } 6324 for (let i = 0; i < data.length; i++) { 6325 if (data[i].title !== '[US] Outerbloom Acrylic Frame 4R') { 6326 const img = data[i].image 6327 const title = data[i].title 6328 const qty = data[i].qty 6329 const price = data[i].price 6330 const total = Number(qty) * Number(price) 6331 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 6332 <div class="addon-itm-img"> 6333 <img src="${img}" alt="" width="70"/> 6334 </div> 6335 <div class="addon-itm-title"> 6336 <span>${title}</span> 6337 </div> 6338 <div class="addon-itm-line-price"> 6339 <span>${rupiah.format(price)}</span> 6340 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 6341 </div> 6342 <div class="addon-itm-line-total"> 6343 <span>${rupiah.format(total)}</span> 6344 </div> 6345 </div>` 6346 items.push(addons) 6347 } 6348 } 6349 c.html(items) 6350 const parent = $(".purchaseAddon") 6351 const next = parent.next(".sectionPurchase") 6352 parent.addClass("hide") 6353 next.removeClass("hide") 6354 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 6355 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 6356 } 6357 6358 async function listAddon() { 6359 const data = $("#itemAddons").find(".selected") 6360 let ids = [] 6361 $(data).each(function () { 6362 const id = $(this).data("variant") 6363 const image = $(this).find(".card-image img").attr("src") 6364 const title = $(this).find(".card-meta h5").text()
6365 const qty = $(this).find(".card-qty input").val() 6366 const price = $(this).find(".card-qty input").data("price") 6367 ids.push({ 6368 id: Number(id), 6369 image, 6370 title, 6371 qty, 6372 price 6373 }) 6374 }) 6375 myAddon(ids) 6376 } 6377 6378 async function customSpotify(idx, length, type) { 6379 let isCard = false 6380 6381 let p = $(".purchasePopupSpotify") 6382 const preLink = $(".spotifyLinkFirst").val() 6383 $("[data-index]").hide() 6384 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 6385 p.find(".regulerAddons, .purchase-button").hide() 6386 p.find(".spotifyAddons").show() 6387 6388 const data = await trackUrl(preLink) 6389 6390 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="13" height="11" viewB
6390ox="0 0 13 11" fill="none"> 6391 <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"/> 6392 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://belajarpsikologi.com/assets/img/logo-agam99.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="13" height="11" viewB
6392ox="0 0 13 11" fill="none"> 6393 <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"/> 6394 </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>` 6395 // console.log(html) 6396 6397 $(".spotifyAddons").append(html) 6398 6399 $(`[data-index=${idx}]`).show() 6400 6401 if (preLink !== '') { 6402 $(".btn-action .btn").attr("disabled", false) 6403 } else { 6404 $(".btn-action .btn").attr("disabled", true) 6405 } 6406 6407 return html 6408 6409 } 6410 6411 $(".spotifyLinkFirst").keyup(async function () { 6412 const v = $(this).val() 6413 if (v.includes('spotify:user:spotify')) { 6414 const correct = v.split('user:spotify:')[1] 6415 console.log(correct, 'BNER') 6416 $(this).val(correct) 6417 return 6418 } 6419 if (v.includes("spotify:") || v.includes("https://open.spotify.com/")) { 6420 const data = await trackUrl(v) 6421 if (!data || !data.status) { 6422 $(this).parent().addClass("error") 6423 // $(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>`) 6424 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6425 return 6426 } 6427 $(this).parent().removeClass("error") 6428 // $(this).parent().remove("txt-error") 6429 $("#personalizeBtnSpotify .btn").attr("disabled", false) 6430 } else { 6431 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6432 } 6433 }) 6434 6435 $(".purchaseAddon").delegate(".next-addon", "click", function () { 6436 const parent = $(this).parents(".purchaseAddon") 6437 const next = parent.next(".sectionPurchase") 6438 if (next.hasClass("purchaseAddress")) { 6439 if (productType !== '') { 6440 console.log("clarity event " + productType + ' purchaseDelivery') 6441 window.clarity("event", `${productType} purchaseDelivery`) 6442 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6443 } 6444 } 6445 const data = $("#itemAddons").find(".selected") 6446 const length = $(".quantity-cart-46067682607319").val() 6447 const checked = data.length; 6448 if (checked > 0) { 6449 if (length > 0) { 6450 $(".purchaseAddon").addClass("purchaseAddonSpotify") 6451 customSpotify(1, length, 'addon') 6452 } else { 6453 listAddon() 6454 } 6455 } else { 6456 parent.addClass("hide") 6457 next.removeClass("hide") 6458 } 6459 }) 6460 6461 $("#personalizeBtnSpotify .btn").click(async function () { 6462 const isCity = $("#cities[required]") 6463 const isDate = $("#propDeliveryDate[required]") 6464 if ((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 6465 alert('Please choose Delivery City & Delivery Date') 6466 return 6467 } 6468 const data = await customSpotify(1, 1, 'product') 6469 if (data) { 6470 $("#backgroundPopup").fadeIn("slow"); 6471 $(".purchasePopupSpotify").fadeIn("slow"); 6472 6473 if (productType !== '') { 6474 console.log("clarity event " + productType + ' spotify') 6475 window.clarity("event", `${productType} spotify`) 6476 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6477 } 6478 } 6479 }) 6480 6481 function formatBytes(bytes, decimals = 2) { 6482 if (!+bytes) return '0 Bytes' 6483
6484 const k = 1024 6485 const dm = decimals < 0 ? 0 : decimals 6486 const sizes = ['B', 'KB', 'MB'] 6487 6488 const i = Math.floor(Math.log(bytes) / Math.log(k)) 6489 6490 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 6491 } 6492 6493 async function trackUrl(link) { 6494 try { 6495 let trackId = link.split('/').pop().split('?')[0]; 6496 let type = '' 6497 if (link.includes("spotify:")) { 6498 const uri = link.split('spotify:')[1] 6499 trackId = uri.split(':')[1] 6500 type = uri.split(':')[0] + 's' 6501 } else { 6502 if (link.match('track')) { 6503 type = 'tracks' 6504 } else if (link.match('playlist')) { 6505 type = 'playlists' 6506 } else if (link.match('artist')) { 6507 type = 'artists' 6508 } else if (link.match('album')) { 6509 type = 'albums' 6510 } 6511 } 6512 console.log(`${host}/api/spotify/${type}/${trackId}`) 6513 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 6514 console.log(data, 'DATA') 6515 const song = data?.data?.name 6516 const artist = data?.data?.artist 6517 return { 6518 song, artist, type, trackId, status: data.status 6519 } 6520 } catch (err) { 6521 console.log(err) 6522 } 6523 } 6524 6525 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function () { 6526 const parent = $(this).parents("[data-index]") 6527 const preview = parent.find(".previewImage") 6528 const file = $(this)[0].files[0]; 6529 if (file) { 6530 const reader = new FileReader(); 6531 reader.onload = async function (e) { 6532 parent.find(".uploadResult label").hide() 6533 parent.find(".uploadedResult").remove() 6534 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 6535 <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> 6536 <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;">
6536<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 6537 <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 /> 6538 </svg> 6539 </span></div></div>`) 6540 parent.find(".frameImageUploaded svg").hide() 6541 parent.find(".frameImage").addClass("uploaded") 6542 preview.attr("src", e.target.result); 6543 preview.show(); 6544 let formData = new FormData(); 6545 formData.append("file", file); 6546 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 6547 method: "POST", 6548 body: formData 6549 }) 6550 const result = await response.json(); 6551 if (result) { 6552 parent.find(".resultPhotoSpotify").val(result.url) 6553 } 6554 } 6555 6556 reader.readAsDataURL(file); 6557 } else { 6558 preview.hide(); 6559 } 6560 }); 6561 6562 $(".spotifyAddons").delegate(".uploadResult", "click", function () { 6563 $(this).next("input[type=file]").trigger("click") 6564 }) 6565 6566 $(".spotifyAddons").delegate(".changeUpload", "click", function () { 6567 $(this).parents("input[type=file]").trigger("click") 6568 }) 6569 6570 $(".spotifyAddons").delegate(".removeUpload", "click", function () { 6571 const parent = $(this).parents("[data-index]") 6572 parent.find(".uploadPhotoSpotify").val("") 6573 parent.find(".uploadResult label").show() 6574 parent.find(".uploadedResult").remove() 6575 parent.find(".frameImageUploaded svg").show() 6576 parent.find(".previewImage").hide() 6577 parent.find(".frameImage").removeClass("uploaded") 6578 }) 6579 6580 $(".spotifyAddons").delegate("label.checkbox", "click", function () { 6581 const parent = $(this).parents("[data-index]") 6582 parent.toggleClass("checked") 6583 }) 6584 6585 $(".spotifyAddons").delegate(".
6585spotifyLink", "change", async function () { 6586 const parent = $(this).parents("[data-index]") 6587 const link = $(this).val() 6588 const data = await trackUrl(link) 6589 6590 console.log(data) 6591 6592 if (data.song) { 6593 parent.find(".spotifySong").val(data.song) 6594 parent.find(".spotifyData").find("h3").text(data.song) 6595 } 6596 if (data.artist) { 6597 parent.find(".spotifyArtist").val(data.artist) 6598 parent.find(".spotifyData").find("p").text(data.artist) 6599 } 6600 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 6601 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 6602 if (data.status === true) { 6603 parent.find(".btn-action .btn").attr("disabled", false) 6604 } else { 6605 parent.find(".btn-action .btn").attr("disabled", true) 6606 } 6607 }) 6608 6609 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function () { 6610 const parent = $(this).parents("[data-index]") 6611 const v = $(this).val() 6612 parent.find(".spotifyData h3").text(v) 6613 }) 6614 6615 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function () { 6616 const parent = $(this).parents("[data-index]") 6617 const v = $(this).val() 6618 parent.find(".spotifyData p").text(v) 6619 }) 6620 6621 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function () { 6622 const parent = $(this).parents("[data-index]") 6623 const length = parent.data("length") 6624 const index = parent.data("index") 6625 const indexNext = Number(index) + 1 6626 customSpotify(indexNext, length, 'addon') 6627 }) 6628 6629 6630 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function () { 6631 const parent = $(this).parents(".purchaseAddon") 6632 const next = parent.next(".sectionPurchase") 6633 parent.addClass("hide") 6634 next.removeClass("hide") 6635 next.find(".purchase-button").show() 6636 listAddon() 6637 }) 6638 6639 $(".spotifyAddons").delegate(".back-spotify", "click", async function () { 6640 const t = $(this).parents("[data-index]") 6641 const parent = $(this).parents(".sectionPurchase") 6642 const current = t.data("index") 6643 const prevCurrent = Number(current) - 1 6644 if (current == 1) { 6645 parent.removeClass("purchaseAddonSpotify") 6646 parent.find(".purchase-button").show() 6647 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 6648 $(".spotifyAddons").empty() 6649 $(".regulerAddons").show() 6650 return 6651 } 6652 t.hide() 6653 t.prev("[data-index]").show() 6654 t.remove() 6655 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 6656 }) 6657 6658 $("#personalizeBtn .btn").click(async function () { 6659 loadPopupPersonalize() 6660 }); 6661 6662 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function () { 6663 $(".sectionPurchaseSpotify").hide() 6664 loadPopupPersonalize() 6665 }) 6666 6667 $(".close-purchase-popup").click(function () { 6668 disablePopup(); 6669 }); 6670 $("#backgroundPopup").click(function () { 6671 // disablePopup(); 6672 }); 6673 6674 $("#popupCart .close-purchase-popup").click(function () { 6675 location.reload() 6676 }); 6677 6678 $('#popupCart').on('hide.bs.modal', function (e) { 6679 location.reload() 6680 }) 6681 6682 $(".next-card").click(function () { 6683 const parent = $(this).parents(".sectionPurchase") 6684 const next = parent.next(".sectionPurchase") 6685 parent.addClass("hide") 6686 next.removeClass("hide") 6687 }) 6688 6689 $(".back-purchase-button").click(function () { 6690 const parent = $(this).parents(".sectionPurchase") 6691 const prev = parent.prev(".sectionPurchase") 6692 parent.addClass("hide") 6693 prev.removeClass("hide") 6694 }) 6695 6696 $(document).keypress(function (e) { 6697 if (e.keyCode == 27 && popupStatus == 1) { 6698 disablePopup(); 6699 } 6700 }); 6701 6702 const parentImg = $(".case-img-preview") 6703 const parentVid = $(".case-video-preview") 6704 6705 function readURL(input) { 6706 if (input.files && input.files[0]) { 6707 let reader = new FileReader(); 6708 6709 let type = 'image/jpeg' 6710 const size = input.files[0].size 6711 if (input.files[0].type.match('video/')) { 6712 type = 'video/mp4' 6713 if (size > 15728640) { 6714 alert('File size exceeds maximum limit 15 MB') 6715 return 6716 } 6717 } else { 6718 if (size > 5242880) { 6719 alert('File size exceeds maximum limit 5 MB') 6720 return 6721 } 6722 } 6723 6724 reader.onload = function (e) { 6725 $(".nextBtn").attr("disabled", true) 6726 if (type === 'image/jpeg') { 6727 6728 $('.placeholder-image').hide(); 6729 $('.preview-image').show() 6730 $('.preview-image').attr('src', e.target.result); 6731 6732 } else { 6733 // parentVid.find(".ajax-loader").show(); 6734 $(".steps-card-preview").addClass("loading") 6735 } 6736 } 6737 6738 6739
6740 reader.readAsDataURL(input.files[0]); 6741 } 6742 } 6743 6744 async function readURLPapan(input) { 6745 if (input.files && input.files[0]) { 6746 let reader = new FileReader(); 6747 6748 reader.onload = function (e) { 6749 $('.btn-upload-papan').siblings('label').hide(); 6750 $('.btn-upload-papan img').attr('src', e.target.result); 6751 $('.btn-upload-papan img').show(); 6752 $('.svgLogoPapan').hide(); 6753 } 6754 6755 const type = 'image/jpeg' 6756 const name = `logo-9233866700552-${Date.parse(new Date())}` 6757 6758 let formData = new FormData(); 6759 formData.append("file", input.files[0]); 6760 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6761 method: "POST", 6762 body: formData 6763 }) 6764 const result = await response.json(); 6765 if (result) { 6766 const url = result.url 6767 $("[data-properties=papan-logo]").val(url) 6768 } 6769 6770 reader.readAsDataURL(input.files[0]); 6771 } 6772 } 6773 6774 async function readURLAddress(input) { 6775 console.log(input, 'readURLAddress') 6776 if (input.files && input.files[0]) { 6777 let reader = new FileReader(); 6778 6779 reader.onload = function (e) { 6780 $('.photo-address').attr('src', e.target.result); 6781 $('.photo-address').show(); 6782 } 6783 6784 const type = 'image/jpeg' 6785 const name = input.files[0].name?.split('.')[0] 6786 6787 let formData = new FormData(); 6788 formData.append("file", input.files[0]); 6789 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6790 method: "POST", 6791 body: formData 6792 }) 6793 const result = await response.json(); 6794 6795 reader.readAsDataURL(input.files[0]); 6796 6797 return result 6798 } 6799 } 6800 6801 6802 6803 6804 async function addToCartUang() { 6805 var productAddOnId1 = 42122101162199; 6806 var productAddOnId2 = 42122101194967; 6807 var product_id = 9233866700552 6808 const data = { 6809 items: [ 6810 { 6811 quantity: $("#Quantity-" + productAddOnId1).val(), 6812 id: productAddOnId1, 6813 "properties": { "Time": $("#properties-time").val() } 6814 }, 6815 { 6816 quantity: $("#Quantity-" + productAddOnId2).val(), 6817 id: productAddOnId2, 6818 "properties": { "Time": $("#properties-time").val() } 6819 } 6820 ] 6821 } 6822 await fetch(window.Shopify.routes.root + 'cart/add.js', { 6823 method: 'POST', 6824 headers: { 6825 'Content-Type': 'application/json' 6826 }, 6827 body: JSON.stringify(data) 6828 }) 6829 .then(response => { 6830 console.error('Sukses Buket Uang:', response); 6831 $(".form-flower").submit() 6832 }) 6833 .catch((error) => { 6834 console.error('Error Buket Uang:', error); 6835 $(".form-flower").submit() 6836 }); 6837 } 6838 6839 async function saveCard() { 6840 let isCard = true
6841 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 6842 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 6843 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 6844 const foto = $("#properties-photo").val() 6845 const video = $("#properties-video").val() 6846 const data = JSON.stringify({ 6847 "id": qrID, 6848 "penerima": $("#properties-nama-penerima").val(), 6849 "kartu_penerima": kartu_penerima, 6850 "kartu_ucapan": kartu_ucapan, 6851 "kartu_pengirim": kartu_pengirim, 6852 "foto": foto, 6853 "video": video, 6854 "productId": "9233866700552", 6855 "order_name": "", 6856 "status": "Cart" 6857 }) 6858 6859 6860 } 6861 6862 async function additem(items) { 6863 try { 6864 let formData = items 6865 if (items?.length) { 6866 formData = { 6867 'items': items 6868 }; 6869 } 6870 6871 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6872 method: 'POST', 6873 headers: { 6874 'Content-Type': 'application/json', 6875 'X-Requested-With': 'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6876 }, 6877 body: JSON.stringify(formData) 6878 }) 6879 6880 const data = await add.json(); 6881 return data 6882 } catch (err) { 6883 console.log('Error additem', err) 6884 } 6885 } 6886 6887 async function addons() { 6888 let items = [] 6889 $(".addon-item").each(function () { 6890 const p = $(this) 6891 const props = p.next(".propsAddonSpotify") 6892 const id = $(this).data("id") 6893 const quantity = $(this).data("qty") 6894 const propId = $("#properties-time").val() 6895 let properties = {} 6896 if (id === 46067682607319) { 6897 const link = props.find(".spotifyLinkAddon").text() 6898 const photo = props.find(".spotifyFotoAddon").text() 6899 const song = props.find(".spotifySongAddon").text() 6900 const artist = props.find(".spotifyArtistAddon").text() 6901 properties = { 6902 id: propId, 6903 "Spotify Link": link !== '' ? link : '-', 6904 "Spotify Photo": photo !== '' ? photo : '-', 6905 "Spotify Song": song !== '' ? song : '-', 6906 "Spotify Artist": artist !== '' ? artist : '-', 6907 type: 'addon' 6908 } 6909 } else { 6910 properties = { 6911 "id": propId, 6912 "type": "addon" 6913 } 6914 } 6915 items.push({ 6916 id, 6917 quantity, 6918 properties 6919 }) 6920 }) 6921 return items 6922 } 6923 6924 async function propItems() { 6925 let props = {} 6926 $("[data-properties]").each(function (e) { 6927 let elementType = this.tagName;
6928 const k = $(this).data("properties") 6929 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') { 6930 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6931 if (v !== '') { 6932 props[k] = v?.replace(/[\s\n]/g, ''); 6933 } 6934 } 6935 }) 6936 return props 6937 } 6938 6939 async function showPopupCart(items) { 6940 if (productType !== '') { 6941 console.log("clarity event " + productType + ' completeOrder') 6942 window.clarity("event", `${productType} completeOrder`) 6943 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6944 } 6945 $("#popupCart").show() 6946 6947 $(".propDeliveryCity").text($("#cities").val()) 6948 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6949 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6950 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6951 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6952 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6953 $(".propDeliveryProv").text($("#province").val()) 6954 $(".propDeliveryZip").text($("#zip").val()) 6955 6956 6957 6958 const addons = [] 6959 if (items && items.length > 0) { 6960 for (let i = 1; i < items.length; i++) { 6961 const spotifyLink = items[i].properties['Spotify Link'] 6962 const spotifyPhoto = items[i].properties['Spotify Photo'] 6963 const spotifySong = items[i].properties['Spotify Song'] 6964 const spotifyArtist = items[i].properties['Spotify Artist'] 6965 const price = items[i].price / 100 6966 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6967 <div class="col-12 col-lg-2"></div> 6968 <div class="col-12 col-lg-10"> 6969 <p> 6970 <span>spotify link</span> 6971 <span>${spotifyLink}</span> 6972 </p> 6973 <p> 6974 <span>Upload Photo</span> 6975 <span>${spotifyPhoto}</span> 6976 </p> 6977 <p> 6978 <span>song / playlist name</span> 6979 <span>${spotifySong}</span> 6980 </p> 6981 <p> 6982 <span>artist name</span> 6983 <span>${spotifyArtist}</span> 6984 </p> 6985 </div> 6986 </div>` : ''; 6987 addons.push(`<div class="row m-0">
6988 <div class="imgAddonCart col-2"> 6989 <img 6990 width="43" 6991 src="${items[i].image}" 6992 alt="" 6993 > 6994 </div> 6995 <div class="imgAddonTitlePrice col-10 align-self-center"> 6996 <div class="row justify-content-between m-0"> 6997 <div class="col-12 col-lg-8"> 6998 <h5>${items[i].title}</h5> 6999 </div> 7000 <div class="col-12 col-lg-4 text-lg-right"> 7001 <span>${rupiah.format(price)}</span> 7002 </div> 7003 </div> 7004 </div> 7005 </div>${props}`) 7006 } 7007 } 7008 // console.log(addons) 7009 if (addons.length === 0) { 7010 $(".itemAddonCart").hide() 7011 return 7012 } 7013 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 7014 $(".wrapperItemAddonCart").html(addons) 7015 } 7016 7017 const money = (money) => { 7018 return new Intl.NumberFormat('id-ID', 7019 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 7020 ).format(money); 7021 } 7022 7023 async function showNoteMoney() { 7024 let qty50k = $("[data-properties='Uang 50k']").val() 7025 let qty100k = $("[data-properties='Uang 100k']").val() 7026 const total50k = Number(qty50k) * 50000 7027 const total100k = Number(qty100k) * 100000 7028 const total_all = total50k + total100k 7029 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 7030 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 7031 $(".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://belajarpsikologi.com/" target="_blank" style="text-decoration: underline; color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 7032 } 7033 7034 async function removeImage() { 7035 const data = JSON.stringify({ 7036 "ID": $("#properties-properties-qrId").val(), 7037 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7038 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7039 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7040 "Nama Penerima": $("#properties-nama-penerima").val(), 7041 "Order Number": "", 7042 "Status": "Product", 7043 "Foto": "", 7044 "Media": $("#properties-video").val(), 7045 "Image": "9233866700552" 7046 }) 7047 const remove = updateCard(data) 7048 if (remove) { 7049 $(this).hide() 7050 $("#properties-photo").val("-") 7051 $(".placeholder-image").show() 7052 $(".preview-image").attr("src", "") 7053 } 7054 } 7055 7056 async function removeVideo() { 7057 const data = JSON.stringify({ 7058 "ID": $("#properties-properties-qrId").val(), 7059 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7060 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7061 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7062 "Nama Penerima": $("#properties-nama-penerima").val(), 7063 "Order Number": "", 7064 "Status": "Product", 7065 "Foto": $("#properties-photo").val(), 7066 "Media": "", 7067 "Image": "9233866700552" 7068 }) 7069 const remove = updateCard(data) 7070 if (remove) { 7071 $("#properties-video").val("-") 7072 $(this).find("img").hide() 7073 $(this).hide() 7074 $(this).prev("p").text("Add video to make it more special (optional)") 7075 $("#label-input-video").show() 7076 $("#label-input-video span").text("Upload Video") 7077 $(".case-video-preview p span").remove() 7078 } 7079 } 7080 7081 async function loadItemOccasion(t, occasion) { 7082 const name = occasion?.replace('greeting-card-', '') 7083 $("#kartu-ucapan").val("") 7084 $("[data-occassion]").removeClass("selected") 7085 $("[data-properties=ucapan]").val("") 7086 $("#save-card").attr("disabled", true) 7087 t.addClass("selected") 7088 $("#show_note").attr("data-card-occassion", name) 7089 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function (data, status) { 7090 const products = data.products 7091 const html = [] 7092 for (let i = 0; i < products.length; i++) { 7093 const id = products[i].id 7094 const variantId = products[i].variants[0].id 7095 const img = products[i].images[0].src 7096 const title = products[i].title 7097 const price = products[i].variants[0].price
7098 const qty = products[i].variants[0].inventory_quantity 7099 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 7100 <label for="card-${variantId}"></label> 7101 <div class="card-image"> 7102 <img src="${img}" alt="${title}" width="" height="" /> 7103 </div> 7104 <div class="card-meta text-center"> 7105 <h5>${title}</h5> 7106 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 7107 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 7108 </div> 7109 </div>` 7110 html.push(body) 7111 } 7112 const withoutCard = `<div class="item-card item-without-card"> 7113 <label for="card-0"></label> 7114 <div class="card-image"> 7115 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 7116 </div> 7117 <div class="card-meta text-center"> 7118 <h5>
7118Send without a greeting card</h5> 7119 <input id="card-0" type="radio" name="id" value="" data-price=""> 7120 </div> 7121 </div>` 7122 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 7123 }); 7124 } 7125 7126 $(document).ready(function () { 7127 7128 // Observer to auto-trigger addon loading when addon section becomes visible 7129 const addonObserver = new MutationObserver(function (mutations) { 7130 mutations.forEach(function (mutation) { 7131 const target = $(mutation.target) 7132 if (target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 7133 if (!target.hasClass('hide')) { 7134 // Addon section just became visible, ensure items are loaded 7135 setTimeout(function () { 7136 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7137 console.log("Auto-triggering addon load...") 7138 $("[data-addon=upsell-all]").trigger("click") 7139 } 7140 }, 150) 7141 } 7142 } 7143 }) 7144 }) 7145 7146 // Start observing addon section 7147 const addonSection = document.querySelector('.purchaseAddon') 7148 if (addonSection) { 7149 addonObserver.observe(addonSection, { 7150 attributes: true, 7151 attributeFilter: ['class'] 7152 }) 7153 } 7154 7155 $(".purchasePopup").delegate("#addtocart-card", "click", async function () { 7156 7157 $(this).find("span").addClass("loading") 7158 let isValid = true 7159 $(".formAddressPurchase [required]").each(function () { 7160 const t = $(this) 7161 const input = t.val() 7162 const p = t.parent() 7163 if (input === '') { 7164 p.addClass("error") 7165 isValid = false 7166 } 7167 }) 7168 7169 if (!isValid) { 7170 $(this).find("span").removeClass("loading") 7171 return 7172 } 7173 7174 let items = [] 7175 const mainProps = { 7176 7177 "Delivery Date": $("#propDeliveryDate").val(), 7178 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-', 7179 "Kota Pengiriman": $("#cities").val(), 7180 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-', 7181 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-', 7182 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-', 7183 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-', 7184 7185 7186 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-', 7187 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-', 7188 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-', 7189 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-', 7190 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-', 7191 7192 7193 "Province": $("#province").val() !== '' ? $("#province").val() : '-', 7194 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-', 7195 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-', 7196 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-', 7197 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7198 "type": 'product' 7199 } 7200 const props = await propItems() 7201 properties = { ...mainProps, ...props }; 7202 const id = $("#productSelect").find('option:selected').val() 7203 console.log(id, 'main ID') 7204 const mainItem = { 7205 id: Number(id), 7206 quantity: 1, 7207 properties 7208 } 7209 items.push(mainItem) 7210 const cardId = $("#itemCards").find(".selected input").val() 7211 const cardItem = { 7212 id: Number(cardId), 7213 quantity: 1, 7214 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 7215 } 7216 console.log(cardId, 'cardId') 7217 if (cardId) { 7218 items.push(cardItem) 7219 } 7220 const addon = await addons() 7221 if (addon) { 7222 for (let i = 0;
7222 i < addon.length; i++) { 7223 items.push({ 7224 id: addon[i].id, 7225 quantity: addon[i].quantity, 7226 properties: addon[i].properties 7227 }) 7228 } 7229 } 7230 const addItems = await additem(items) 7231 console.log(addItems.items, 'add items') 7232 if (addItems) { 7233 $(this).find("span").removeClass("loading") 7234 disablePopup() 7235 showPopupCart(addItems.items) 7236 7237 localStorage.setItem("items", JSON.stringify(addItems.items)) 7238 } 7239 }) 7240 7241 $("#addtocart-cart .btn").click(async function () { 7242 const id = $("#productSelect").find('option:selected').val() 7243 const mainProps = { 7244 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7245 type: 'product' 7246 } 7247 const props = await propItems() 7248 const properties = { ...mainProps, ...props }; 7249 const items = { 7250 id: Number(id), 7251 quantity: 1, 7252 properties 7253 } 7254 const addItems = await additem(items) 7255 if (addItems) { 7256 showPopupCart(addItems.items) 7257 localStorage.setItem("items", JSON.stringify(addItems)) 7258 } 7259 }) 7260 7261 $(".formAddressPurchase [required]").change(function () { 7262 const t = $(this) 7263 const p = t.parent() 7264 const v = t.val() 7265 if (v !== '') { 7266 p.removeClass("error") 7267 } 7268 }) 7269 7270 $("#save-card").click(async function () { 7271 const parent = $(this).parents(".sectionPurchase") 7272 const next = parent.next(".sectionPurchase") 7273 $(this).find("span").addClass("loading") 7274 const card = await saveCard() 7275 console.log(card, 'ssaveCCC') 7276 if (card?.status === 200 || card?.status === 201) { 7277 $(".scanCard").removeClass("hide") 7278 $(this).find("span").removeClass("loading") 7279 parent.addClass("hide") 7280 next.removeClass("hide") 7281 if (next.hasClass("purchaseAddon")) { 7282 $("[data-addon=upsell-all]").click() 7283 console.log("clarity event addons") 7284 window.clarity("event", `${productType} add-ons`) 7285 // Ensure addon items are loaded when entering addon popup 7286 setTimeout(function () { 7287 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7288 $("[data-addon=upsell-all]").trigger("click") 7289 } 7290 }, 100) 7291 } 7292 if (next.hasClass("purchaseAddress")) { 7293 $("#zip").select2() 7294 } 7295 } 7296 }) 7297 7298 $("#skip-card").click(async function () { 7299 $("#greetingCard [data-properties]").val("") 7300 $("#properties-photo").val("") 7301 $("#properties-video").val("") 7302 const parent = $(this).parents(".sectionPurchase") 7303 const next = parent.next(".sectionPurchase") 7304 parent.addClass("hide") 7305 next.removeClass("hide") 7306 // $("#itemCards").html("") 7307 removeImage() 7308 removeVideo() 7309 if (next.hasClass("purchaseAddon")) { 7310 $("[data-addon='upsell-all']").click() 7311 console.log("clarity event addons") 7312 window.clarity("event", `${productType} add-ons`) 7313 // Ensure addon items are loaded when entering addon popup 7314 setTimeout(function () { 7315 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7316 $("[data-addon='upsell-all']").trigger("click") 7317 } 7318 }, 100) 7319 } 7320 if (next.hasClass("purchaseAddress")) { 7321 $("#zip").select2() 7322 } 7323 }) 7324 7325 $("#msgCard").click(async function () { 7326 $(this).parent().addClass("loading") 7327 let occasion = $(".selected[data-occassion]").data("occassion") 7328 occasion = occasion?.replace("greeting-card-", "") 7329 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 7330 const d = data?.data 7331 for (let i = 0; i < d.length; i++) { 7332 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 7333 const greeting = d[num]?.Greeting 7334 $(".greetingCard textarea").val(greeting) 7335 $(this).parent().removeClass("loading") 7336 } 7337 $("#save-card").attr("disabled", false) 7338 }) 7339 7340 $(".sectionPurchaseBoard .next-purchase-button").click(function () { 7341 const parent = $(this).parents(".sectionPurchase") 7342 const next = parent.next(".sectionPurchase") 7343 parent.addClass("hide") 7344 next.removeClass("hide") 7345 }) 7346 7347 $("#editCard").click(function () { 7348 $(".custom-card").show() 7349 $(".preview-card").hide() 7350 }) 7351 7352 $("#first_name, #last_name").change(function () { 7353 const v = $(this).val() 7354 const first_name = $("#first_name").val() 7355 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 7356 $("[data-properties=nama-penerima]").val(first_name + last_name) 7357 }) 7358 7359 $("[data-occassion]").click(function () { 7360 const t = $(this) 7361 const p = t.parents(".sectionPurchase") 7362 // $(".greetingCard").addClass("disabled") 7363 const occasion = t.data("occassion") 7364 loadItemOccasion(t, occasion) 7365 }) 7366 7367 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function () { 7368 const id = $(this).parent(".item-card").data("id") 7369 const t = $(this).parent(".item-card") 7370 const target = t.find("input") 7371 const v = $('.item-card input[type="radio"]:checked').val(); 7372 $("#itemCards .item-card").removeClass("selected") 7373 t.addClass("selected") 7374 $("#itemCards .item-card").find("input").attr("name", "") 7375 if (target.length > 0) { 7376 target.attr("name", "id[]") 7377 $("#properties-card").val(id) 7378 $(".greetingCard").removeClass("disabled") 7379 $("#skip-card").attr("disabled", false) 7380 } else { 7381 $("#properties-card").val("") 7382 } 7383 }) 7384 7385 $("#itemCards").delegate(".item-without-card label", "click", function () { 7386 const parent = $(this).parents(".sectionPurchase") 7387 const next = parent.next(".sectionPurchase") 7388 $(".greetingCard").addClass("disabled") 7389 parent.addClass("hide") 7390 next.removeClass("hide") 7391 $("[data-addon=upsell-all]").click() 7392 $("#zip").select2() 7393 }) 7394 7395 $("[data-properties=ucapan]").keyup(function () { 7396 const v = $(this).val() 7397 const p = $(this).parents(".sectionPurchase") 7398 $(".purchaseAddress").find(".greetingCard textarea").val(v) 7399 if (v.length > 3) { 7400 p.find(".next-purchase-button").attr("disabled", false) 7401 } else { 7402 p.find(".next-purchase-button").attr("disabled", true) 7403 } 7404 }) 7405 7406 $("[data-properties=penerima]").keyup(function () { 7407 const v = $(this).val() 7408 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 7409 }) 7410 7411 $("[data-properties=pengirim]").keyup(function () { 7412 const v = $(this).val() 7413 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 7414 }) 7415 7416 $(document).click(function (e) { 7417 7418 if ($(e.target).closest('.wrapperPopupCart').length != 0) return false; 7419 // $('#popupCart').fadeOut('slow'); 7420 // location.reload() 7421 }); 7422 7423 $(".toggleAddonCart").click(function () { 7424 const p = $(this).parent(".itemAddonCart") 7425 p.toggleClass("open") 7426 }) 7427 7428 $(".btnViewCart").click(function () { 7429 window.location.href = "https://outerbloom.com/cart"; 7430 }) 7431 7432 $(".btnViewCheckout").click(async function () { 7433 $(this).find("span").addClass("loading") 7434 let zip = $("#zip").val() 7435 const first_name = $("#first_name").val() 7436 const last_name = $("#last_name").val() 7437 const company = $("#company").val() !== '' ? $("#company").val() : '' 7438 const address1 = $("#delivery_address").val() 7439 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 7440 zip = zip && zip !== '' ? z
7440ip?.split(' - ')[0] : '' 7441 const phone = $("#recipient_number").val() 7442 const city = $("#cities").val() 7443 const province = $("#province").val() 7444 const country = 'Indonesia' 7445 const ver = Date.parse(new Date()) 7446 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}` 7447 7448 const clear = await fetch(`/cart/clear.js`, { method: 'POST' }) 7449 if (clear.status === 200) { 7450 const savedItem = window.localStorage.getItem("items"); 7451 const items = JSON.parse(savedItem) 7452 const addItems = await additem(items) 7453 console.log(addItems, 'new addItems') 7454 if (addItems) { 7455 window.location.href = `https://outerbloom.com/checkout?${params}`; 7456 } 7457 } 7458 }) 7459 7460 $(".btnContinueShopping").click(function () { 7461 window.location.href = "https://outerbloom.com/"; 7462 }) 7463 7464 if (isIOS) { 7465 $(".empty-state-card").click(function () { 7466 $("#input-foto").trigger("click") 7467 }) 7468 $(".btn-upload-image").click(function () { 7469 $("#input-foto").trigger("click") 7470 }) 7471 $("[for=input-video]").click(function () { 7472 $("#input-video").trigger("click") 7473 }) 7474 $(".btn-upload-papan").click(function () { 7475 $("#logoPapan").trigger("click") 7476 }) 7477 } 7478 7479 $("[data-properties]").each(function () { 7480 const select = $(this).parents(".form-group").find("select") 7481 $(this).change(function () { 7482 const name = $(this).data("properties") 7483 const v = $(this).val() 7484 if (name == 'telepon-penerima') { 7485 let phone = v.replace(/[^0-9]/g, '') 7486 $(this).val(phone); 7487 $("#properties-telepon-penerima").val(phone) 7488 $('.iti__search-input').val('-') 7489 } else { 7490 $("#properties-" + name).val(v) 7491 } 7492 }) 7493 select.on("change", function () { 7494 const name = $(this).data("properties") 7495 const v = $(this).val() 7496 $("#properties-" + name).val(v) 7497 }) 7498 }) 7499 7500 $("#show_note").click(function () { 7501 nameq = $("#properties-nama-penerima").val() 7502 dear = $("#properties-kartu-nama-penerima").val() 7503 card = $("[data-properties=ucapan]").val() 7504 sender = $("#properties-kartu-nama-pengirim").val() 7505 photo = $("#properties-photo").val() 7506 video = $("#properties-video").val() 7507 updateCard(nameq, dear, card, sender, photo, video, status) 7508 }) 7509 7510 $(".remove-image").click(function (e) { 7511 e.preventDefault() 7512 $(this).find("img").show() 7513 removeImage() 7514 }) 7515 7516 $(".remove-media").click(function (e) { 7517 e.preventDefault() 7518 $(this).find("img").show() 7519 removeVideo() 7520 }) 7521 7522 7523 7524 $("[data-delivery_method]").click(function (e) { 7525 e.preventDefault() 7526 const t = $(this) 7527 const data = t.data("delivery_method") 7528 $("[data-delivery_method]").removeClass("selected") 7529 t.addClass("selected") 7530 $("#cities").val("") 7531 $("#properties-delivery-date").val("-") 7532 $("#deliveryDate button").removeClass("selected") 7533 $("#full-date").val("Full Calendar â") 7534 $("#propDeliveryDate").val("") 7535 const step3 = $("#step-3") 7536 if (data.match('PickUp')) { 7537 $(".selfpickup-point").show() 7538 step3.find("[data-finished=false]").hide() 7539 $("#panel-4").hide() 7540 step3.find("[data-finished=true]").show() 7541 $("#cities").attr("required", false) 7542 $("#form-group-city").hide() 7543 $("#row-delivery-time").hide() 7544 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 7545 $("#propDeliveryTime").attr("required", false) 7546 // $("#deliveryDate").find("button:first-child").addClass("stop") 7547 $(".form-selfpickup").show() 7548 $(".form-delivery").hide() 7549 $(".form-delivery").find("input, textarea, select").val("") 7550 $(".form-delivery").find("input, textarea, select").attr("required", false) 7551 $("#properties-shipping").val("0") 7552 $("#noteDeliveryDate").hide() 7553 $(".form-delivery .form-control").attr("required", false) 7554 $("#stepNav4").hide() 7555 7556 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 7557 7558 7559 7560 7561 if (timeOfDay >= 16.01) { 7562 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 7563 } 7564 } else { 7565 7566 7567 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 7568 step3.find("[data-finished=false]").show() 7569 $("#panel-4").show() 7570 step3.find("[data-finished=true]").hide() 7571 $("#cities").attr("required", true) 7572 $(".selfpickup-point").hide() 7573 $("#form-group-city").show() 7574 $("#cities").val('').trigger('change'); 7575 $("#properties-kota-pengiriman").val("-") 7576 7577 $("#row-delivery-date, #row-delivery-time").show() 7578 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7579 $("#deliveryDate").find("button").removeClass("stop") 7580 $(".form-selfpickup").hide() 7581 $(".form-delivery").show() 7582 $(".form-delivery").find("input, textarea, select").attr("required", true) 7583 $(".form-delivery [data-
7583properties]").attr("readonly", false) 7584 $("#properties-kodepos").val("-") 7585 $("#properties-alamat-penerima").val("-") 7586 $(".form-delivery .form-control").attr("required", true) 7587 $(this).parents(".setup-content").attr("id", "step-1") 7588 7589 $("#stepNav4").show() 7590 } 7591 }) 7592 7593 $("[name=selfpickup]").click(function () { 7594 const p = $(this).parents(".row-pickup") 7595 const pickupCity = $("input[name='selfpickup']:checked").val(); 7596 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 7597 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 7598 7599 $(".row-pickup").removeClass("selected") 7600 p.addClass("selected") 7601 7602 $("#properties-kota-pengiriman").val(pickupCity) 7603 $("#province").val("Jakarta") 7604 $("#properties-alamat-penerima").val(pickupAddress) 7605 $("#properties-kodepos").val(pickupZip) 7606 }) 7607 7608 $("#cities").change(function (e) { 7609 e.preventDefault() 7610 $(this).parent(".row").find("p.error").remove() 7611 $("#full-date").val("Full Calendar") 7612 $("#deliveryDate, #deliveryDateFull label ").show() 7613 $("#deliveryDateFull").removeClass("filled") 7614 $(".btnChangeDeliveryDate").addClass("hide") 7615 $("#full-date").prop('disabled', false); 7616 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 7617 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 7618 const step3 = $("#step-3") 7619 $("#cityNote").remove() 7620 $("#noteDeliveryDate").hide() 7621 $("#noteDeliveryDate").empty() 7622 let v = $(this).val() 7623 let v2 = $('option:selected', this).attr('data-city'); 7624 let v3 = $('option:selected', this).attr('data-province'); 7625 let price = $('option:selected', this).attr('data-price'); 7626 $("#country").val(v) 7627 $("#properties-kota-pengiriman").val(v) 7628 $("#properties-shipping").val(price) 7629 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 7630 $("#properties-delivery-date, #properties-delivery-time").val("-") 7631 $("#propDeliveryDate, #propDeliveryTime").val("") 7632 let note = $('option:selected', this).attr('data-note'); 7633 if (v === 'Kota Lainnya') { 7634 $("#noteDeliveryDate").show() 7635 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 7636 $("#zip").attr("required", false) 7637 $("#zip").hide() 7638 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 7639 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 7640 $("#row-delivery-date, #row-delivery-time").hide() 7641 $("#properties-shipping").val("") 7642 // $(this).parents(".setup-content").attr("id", "step-2") 7643 7644 } else { 7645 $("#noteDeliveryDate").hide() 7646 $("#zip").attr("required", true) 7647 $("#zip").show() 7648 $("#row-delivery-date, #row-delivery-time").show() 7649 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7650 $("#deliveryDate").find("button").removeClass("stop") 7651 // $(this).parents(".setup-content").attr("id", "step-1") 7652 7653 } 7654 7655 7656 7657 // if(v !== 'Jakarta') { 7658 // $("[data-type=upsell]").hide() 7659 // } else { 7660 // $("[data-type=upsell]").show() 7661 // } 7662 // $('.collection-addons')[0].swiper.update(
7662); 7663 7664 7665 getProvince(v) 7666 $("#zip").html(`<option value="">Choose Postal Code</option>`) 7667 renderZip(v, v2, v3) 7668 7669 disabledSameDay() 7670 7671 7672 if (v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 7673 7674 $("#cardOccasion, #navAddon, .collection-addons").hide() 7675 7676 $("[data-addon=giftcard]").show() 7677 $("[data-addon=giftcard]").click() 7678 $("#itemAddons").show() 7679 $("#flower-step").addClass("nonjadetabek") 7680 } else { 7681 $("#cardOccasion, #navAddon, .collection-addons").show() 7682 $("[data-addon=all]").click() 7683 $("#flower-step").removeClass("nonjadetabek") 7684 } 7685 7686 if (v !== '') { 7687 $("#personalizeBtn .btn").attr("disabled", false) 7688 } else { 7689 $("#personalizeBtn .btn").attr("disabled", true) 7690 } 7691 7692 }) 7693 7694 $("#zip").change(function (e) { 7695 let v = $(this).val() 7696 var city = $("#cities").find('option:selected'); 7697 $("#properties-kodepos").val(v) 7698 if (city === 'Kota Lainnya') { 7699 $(this).attr("required", true) 7700 $("#recipient-address").val("") 7701 } 7702 }) 7703 7704 7705 var minDate = +7 7706 7707 7708 7709 $("#full-date").datepicker({ 7710 minDate, 7711 dateFormat: 'Mdd_yy', //Nop22_2021, 7712 7713 beforeShowDay: disabledays, 7714 7715 onSelect: function (date) { 7716 $("#deliveryDate, #deliveryDateFull label ").hide() 7717 $("#deliveryDateFull").addClass("filled") 7718 $(".btnChangeDeliveryDate").removeClass("hide") 7719 $("#full-date").prop('disabled', true); 7720 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_' + date); 7721 $(".date-full").addClass("selected") 7722 $(".date-single, .calendar-group").removeClass("selected") 7723 $("#propDeliveryTime").val('') 7724 $("#properties-delivery-time").val('-') 7725 $(".time-single").removeClass("selected") 7726 7727 7728 } 7729 }); 7730 7731 $(".btnChangeDeliveryDate").click(function () { 7732 $("#deliveryDate, #deliveryDateFull label ").show() 7733 $("#deliveryDateFull").removeClass("filled") 7734 $(".btnChangeDeliveryDate").addClass("hide") 7735 $("#full-date").prop('disabled', false); 7736 }) 7737 7738 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function (e) { 7739 e.preventDefault() 7740 $(this).parents("#row-delivery-date").find("p.error").remove() 7741 const fulldate = $(this).data("fulldate") 7742 const day = $(this).data("day") 7743 const date = $(this).data("date")
7744 const month = $(this).data("month") 7745 const year = $(this).data("year") 7746 const off_pagi = $(this).data("offpagi") 7747 const off_siang = $(this).data("offsiang") 7748 const off_Malam = $(this).data("offMalam") 7749 $(".calendarbutton").removeClass("selected") 7750 $(this).addClass("selected") 7751 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7752 $("#propDeliveryTime").val('') 7753 $("#properties-delivery-time").val('-') 7754 $(".calendarbutton2").removeClass("selected") 7755 $("#full-date").val("Full Calendar") 7756 7757 7758 if (off_pagi && timeOfDay > off_pagi) { 7759 $("[data-time=Morning]").attr("disabled", true) 7760 } else { 7761 $("[data-time=Morning]").attr("disabled", false) 7762 } 7763 if (off_siang && timeOfDay > off_siang) { 7764 $("[data-time=Afternoon]").attr("disabled", true) 7765 } else { 7766 $("[data-time=Afternoon]").attr("disabled", false) 7767 } 7768 7769 7770 7771 }) 7772 7773 if (today === 14 && timeOfDay > 17.00) { 7774 $("#deliveryDate button:first-child").attr("disabled", true) 7775 } 7776 7777 $("#deliveryTime").delegate(".calendarbutton2", "click", function (e) { 7778 e.preventDefault() 7779 const time = $(this).data("time") 7780 const date = $("#propDeliveryDate").val() 7781 if (date == '') { 7782 return alert('Silakan pilih tanggal terlebih dahulu') 7783 } 7784 $(".calendarbutton2").removeClass("selected") 7785 $(this).addClass("selected") 7786 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_', '')}_${time}`) 7787 }) 7788 7789 $('textarea.has-limit, input.has-limit').keyup(function () { 7790 max = this.getAttribute("maxlength"); 7791 let len = $(this).val().length; 7792 let limit = $(this).siblings(".limit"); 7793 if (len > max) { 7794 alert('you have reached the limit'); 7795 } else { 7796 limit.text(`${len}/${max}`); 7797 } 7798 }); 7799 7800 $("#button-action-step .btn").click(function () { 7801 $(this).find("span").text("Processing..."); 7802 }); 7803 7804 $(".finishBtn").on('click', function () { 7805 $(this).addClass("is-adding"); 7806 // $(this).click(); 7807 }); 7808 7809 $('.setup-panel .nav-item a.btn-success').trigger('click'); 7810 7811 $("#button-action .btn").click(function () { 7812 $("#flower-step").addClass("block"); 7813 $("#button-action").hide(); 7814 }); 7815 7816 $(".close-how-order").click(function () { 7817 $("#flower-step").removeClass("block"); 7818 $("#button-action").show(); 7819 }); 7820 7821 $("#input-foto, #input-video").change(function (e) { 7822 readURL(this); 7823 }); 7824 7825 $("#logoPapan").change(function () { 7826 readURLPapan(this); 7827 }); 7828 7829 $("#address-upload").change(async function () { 7830 const upload_address = await readURLAddress(this) 7831 if (upload_address) { 7832 const url = upload_address.url 7833 $(".props-address-upload").val(url) 7834 $(".form-address").addClass("address-uploaded") 7835 $(".form-address-upload").addClass("uploaded") 7836 7837 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 7838 } 7839 }) 7840 7841 $(".address-manualy").click(function () { 7842 $(".form-address-upload").removeClass("uploaded"); 7843 $(".photo-address").hide(); 7844 $(".form-address").removeClass("address-uploaded") 7845 $("#formAddressPurchase").find(".form-control").attr("required", true) 7846 }); 7847 7848 $(".case-video-preview").delegate(".replace-video", "click", function () { 7849 $("#input-video").trigger("click") 7850 }) 7851 7852 $('.date-single').click(function (e) { 7853 e.preventDefault(); 7854 $('.date-single').removeClass('selected'); 7855 $('#full-date').removeClass('selected'); 7856 $(this).addClass('selected'); 7857 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 7858 }); 7859 $('#full-date').click(function (e) { 7860 e.preventDefault(); 7861 $('.date-single').removeClass('selected'); 7862 $(this).addClass('selected'); 7863 }); 7864 7865 // $("tr").each(function(){ 7866 // if($(this).text().match('SKU')) { 7867 // $(".sku-product").html($(this).parents("table").html()) 7868 // } 7869 // }) 7870 7871 $("#product-image").scroll(function () { 7872 $(".desc-add").each(function () { 7873 const img = $(this).find("img") 7874 const src = img.data("src") 7875 img.attr("src", src) 7876 }) 7877 }) 7878 7879 $(".product-fixed").hide() 7880 7881 let target = $("#personalizeBtn") 7882 7883 7884 $(".product-meta").scroll(function () { 7885 if ($(window).scrollTop() >= target.offset().top) { 7886 $(".product-fixed").addClass("show") 7887 } else { 7888 $(".product-fixed").removeClass("show") 7889 } 7890 }); 7891 7892 $(window).scroll(function () { 7893 if ($(window).scrollTop() >= target.offset().top) { 7894 $(".product-fixed").addClass("show") 7895 } else { 7896 $(".product-fixed").removeClass("show") 7897 } 7898 }); 7899 }); 7900 </script>
7900 7901 7902
7902<script> 7903 // 7904 </script>
7904 7905 7906
7906<script> 7907 $(document).ready(function () { 7908 $('table tr td').each(function () { 7909 var texto = $(this).text(); 7910 var nextto = $(this).next("td"); 7911 var sku = $("#data-sku").val() 7912 if (texto == 'SKU') { 7913 nextto.text(sku) 7914 } 7915 }); 7916 7917 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7918 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7919 $("#tab-questions").text("Pertanyaan"); 7920 7921 $(".freeship .icon").click(function () { 7922 $(".fs-content").slideToggle(); 7923 $(this).parents(".freeship").toggleClass("expand"); 7924 }); 7925 7926 var $easyzoom = $('.easyzoom').easyZoom(); 7927 // Setup thumbnails example 7928 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 7929 $('.thumbnails').on('click', 'a', function (e) { 7930 var $this = $(this); 7931 e.preventDefault(); 7932 // Use EasyZoom's `swap` method 7933 api1.swap($this.data('standard'), $this.attr('href')); 7934 }); 7935 7936 $('#playerID').click(function () { 7937 var videoURL = $('#VdoID').attr('src'), 7938 dataplay = $('#VdoID').attr('data-play'); 7939 7940 //for check autoplay 7941 //if not set autoplay=1 7942 if (dataplay == 0) { 7943 $('#VdoID').attr('src', videoURL + '?autoplay=1'); 7944 $('#VdoID').attr('data-play', 1); 7945 } 7946 else { 7947 var videoURL = $('#VdoID').attr('src'); 7948 videoURL = videoURL.replace("?autoplay=1", ""); 7949 $('#VdoID').prop('src', ''); 7950 $('#VdoID').prop('src', videoURL); 7951 7952 $('#VdoID').attr('data-play', 0); 7953 } 7954 7955 }); 7956 7957 $(".product-photo-thumb-video").click(function (e) { 7958 e.preventDefault(); 7959 7960 var newEmbed = $(this).attr('href'); 7961 $("#featured-image-product").addClass("img-video"); 7962 $("#ProductPhotoImg").hide(); 7963 $("#featured-image-product .video").show(); 7964 $("#featured-image-product iframe").attr('src', newEmbed); 7965 $("#VdoID")[0].src += "&autoplay=1"; 7966 }); 7967 $(".product-single__thumbnail").click(function (evt) { 7968 evt.preventDefault(); 7969 $("#featured-image-product").removeClass("img-video"); 7970 $("#ProductPhotoImg").show(); 7971 $("#featured-image-product .video").hide(); 7972 $("#featured-image-product iframe").attr('src', ''); 7973 }); 7974 7975 if ($('#product-meta .short-desc > div').length >= 1) { 7976 //console.log('div detected') 7977 var replacer = $('#product-meta .short-desc > div').contents(); 7978 $('#product-meta .short-desc > div').replaceWith(replacer); 7979 7980 var cAssured = $('.c-assured').detach(); 7981 cAssured.insertAfter('.meta-sds .stock-info'); 7982 } 7983 7984 7985 7986 $(".heading-toggle").
7986click(function () { 7987 $(this).parent().toggleClass("open") 7988 7989 }); 7990 }); 7991 </script>
7991 7992 7993 7994
7994<script type="application/json" id="ProductJson-Product"> 7995 7996 {"id":9233866700552,"title":"AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja"} 7997 </script>
7997 7998 7999
7999<script type="application/json" id="VariantJson-Product"> 8000 [ 8001 8002 { 8003 "incoming": false, 8004 "next_incoming_date": null 8005 } 8006 8007 ] 8008 </script>
8008 8009 8010 8011 8012 8013 </div> 8014 8015 8016
8016<script 8017 src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" 8018 type="text/javascript"></script>
8018 8019 <style> 8020 .stamped-review-header-title, 8021 .stamped-review-header .author, 8022 .stamped-review-content-body, 8023 .stamped-sort-select, 8024 .stamped-review-header .verified-badge[data-type=buyer]:after, 8025 .stamped-review-header-byline, 8026 .stamped-review-reply-body { 8027 font-size: 14px !important; 8028 font-family: 'Barlow', sans-serif !important; 8029 } 8030 8031 .stamped-review { 8032 margin-bottom: 0; 8033 } 8034 8035 .stamped-review-body { 8036 padding-left: 65px; 8037 } 8038 8039 .stamped-review:first-child { 8040 padding-top: 25px; 8041 } 8042 8043 .stamped-review-content { 8044 clear: none; 8045 } 8046 8047 .stamped-review-reply { 8048 margin: 15px 0 0 65px; 8049 background: #f2f2f2; 8050 border-left: none; 8051 } 8052 8053 .stamped-review-reply-body { 8054 padding-left: 65px; 8055 } 8056 8057 .stamped-review-header .author { 8058 text-transform: capitalize; 8059 } 8060 8061 .stamped-questions .stamped-review-content { 8062 padding-left: 65px; 8063 } 8064 8065 .stamped-pagination { 8066 margin: 20px 0 0; 8067 } 8068 8069 .stamped-pagination li { 8070 position: initial !important; 8071 display: inline-block; 8072 position: relative; 8073 vertical-align: middle; 8074 text-decoration: none; 8075 -webkit-tap-highlight-color: transparent; 8076 -webkit-box-flex: 0; 8077 -moz-box-flex: 0; 8078 -ms-flex: 0 0 auto; 8079 flex: 0 0 auto; 8080 -webkit-user-select: none; 8081 -moz-user-select: none; 8082 -ms-user-select: none; 8083 user-select: none; 8084 background: 0 0; 8085 text-transform: none; 8086 color: #33373D; 8087 font-weight: 400; 8088 -webkit-transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8089 transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8090 border: 1px solid #ccc; 8091 border-right: none; 8092 margin-bottom: 0; 8093 } 8094 8095 .stamped-pagination li a { 8096 color: #121212; 8097 padding: 13px 18px; 8098 vertical-align: middle; 8099 display: block; 8100 } 8101 8102 .stamped-pagination li.active a { 8103 background-color: #ddd; 8104 font-weight: 400; 8105 } 8106 8107 .stamped-pagination li:hover a { 8108 background: #ddd; 8109 } 8110 8111 .stamped-pagination .next { 8112 border-right: 1px solid #ccc; 8113 } 8114 8115 .stamped-pagination li:first-child { 8116 border-top-left-radius: 5px; 8117 border-bottom-left-radius: 5px; 8118 } 8119 8120 .stamped-pagination li:last-child { 8121 border-top-right-radius: 5px; 8122 border-bottom-right-radius: 5px; 8123 } 8124 8125 #stamped-pagination-question span.page { 8126 display: inline-block; 8127 border: 1px solid #ccc; 8128 width: 47px; 8129 } 8130 8131 #stamped-pagination-question span { 8132 font-size: 14px; 8133 } 8134 8135 #stamped-pagination-question .page.active { 8136 padding: 12px; 8137 font-weight: 400; 8138 background: #ddd; 8139 } 8140 8141 #stamped-pagination-question a, 8142 #stamped-pagination-question .page.active { 8143 color: #121212; 8144 padding: 13px 18px; 8145 vertical-align: middle; 8146 display: inline-block; 8147 } 8148 8149 .stamped-pagination-deco { 8150 color: #121212; 8151 padding: 13px 18px; 8152 width: 47px; 8153 vertical-align: middle; 8154 display: inline-block; 8155 border: 1px solid #ccc; 8156 padding: 12px; 8157 } 8158 8159 .stamped-pagination-prev, 8160 .stamped-pagination-next { 8161 position: inherit; 8162 } 8163 8164 .stamped-pagination-prev a, 8165 .stamped-pagination-next a { 8166 width: auto !important; 8167 border: 1px solid #ccc; 8168 } 8169 8170 @media (max-width: 480px) { 8171 .stamped-review-reply { 8172 margin-left: 0 !important; 8173 } 8174 8175 select.stamped-sort-select { 8176 font-size: 13px !important; 8177 } 8178 } 8179 8180 #product-reviews .stamped-summary-ratings, 8181 #product-reviews .stamped-summary-actions, 8182 .stamped-content { 8183 display: block !important; 8184 } 8185 </style> 8186
8186<script> 8187 var selectCallback = function (variant, selector) { 8188 timber.productPage({ 8189 money_format: "Rp {{amount_no_decimals}}", 8190 variant: variant, 8191 selector: selector 8192 }); 8193 }; 8194 8195 jQuery(function ($) { 8196 new Shopify.OptionSelectors('productSelect', { 8197 product: 8198 8199 8200 8201 8202 8203 { "id": 9233866700552, "title": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", "handle": "blossom-shine", "description": "\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja" }, 8204 onVariantSelected: selectCallback, 8205 enableHistoryState: true 8206 }); 8207 8208 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 8209 8210 8211 // Hide selectors if we only have 1 variant and its title contains 'Default'. 8212 8213 $('.selector-wrapper').hide(); 8214 8215 }); 8216 </script>
8216 8217 8218 8219 8220
8220<script type="application/ld+json"> 8221 { 8222 "@context": "http://schema.org", 8223 "@type": "Product", 8224 "offers": { 8225 "@type": "Offer", 8226 "availability":"https://schema.org/InStock", 8227 "price": 835000, 8228 "priceValidUntil": "05-10-2025", 8229 "priceCurrency": "IDR", 8230 "url": "https://belajarpsikologi.com/" 8231 }, 8232 "brand": { 8233 "@type": "Brand", 8234 "name": "Outerbloom Florist" 8235 }, 8236 "sku": "9233866700552", 8237 "gtin13": "Jawa", 8238 "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", 8239 "description": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", 8240 "category": "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", 8241 "url": "https://belajarpsikologi.com/", 8242 "image": { 8243 "@type": "ImageObject", 8244 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8245 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8246 "name": "AGAM99 | Mengikuti Perkembangan Portal Pragmatic Play Setiap Hari", 8247 "width": 1024, 8248 "height": 1024 8249 } 8250 } 8251 </script>
8251 8252 8253 8254 8255 8256 8257
8257<script id="bss-ltap-hide-price" type="text/javascript"> 8258 !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) })) }
8258)), 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) } };
8258 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) }
8258 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) }
8258 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
8258d-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");
8258 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
8258s"), 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
8258--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
8258opify.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
8258List, .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) }
8258 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;
8258 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();
8258 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() }]); 8259 </script>
8259 8260 8261 </main> 8262 8263 <div id="shopify-section-newsletter" class="shopify-section"><br> 8264 <style> 8265 #shopify-section-newsletter { 8266 background: url(https://belajarpsikologi.com/assets/img/pictures-agam99.png); 8267 background-attachment: fixed; 8268 margin-bottom: 0; 8269 } 8270 8271 input:-webkit-autofill, 8272 input:-webkit-autofill:hover, 8273 input:-webkit-autofill:active, 8274 input:-webkit-autofill:focus { 8275 -webkit-box-shadow: 0 0 0 50px white inset; 8276 -webkit-text-fill-color: #ffffff; 8277 } 8278 8279 .section-newsletter { 8280 max-width: 800px; 8281 margin: auto; 8282 padding: 50px 0; 8283 } 8284 8285 .section-newsletter h2 { 8286 font-weight: 700; 8287 font-size: 24px; 8288 } 8289 8290 .section-newsletter input[type="email"] { 8291 width: 100%; 8292 text-align: center; 8293 border: none; 8294 border-bottom: 1px solid #ffffff; 8295 font-size: 16px; 8296 color: #757575; 8297 background-color: #eeeeee; 8298 } 8299 8300 .section-newsletter .row label { 8301 font-size: 14px; 8302 cursor: pointer; 8303 } 8304 8305 .section-newsletter .radio-inline input { 8306 width: auto; 8307 } 8308 8309 .section-newsletter .btn { 8310 width: 130px; 8311 border: 1px solid #ffffff; 8312 box-shadow: none; 8313 font-size: 16px; 8314 font-weight: 500; 8315 text-transform: uppercase; 8316 } 8317 8318 .section-newsletter form { 8319 margin: 30px 0 60px; 8320 } 8321 8322 .section-newsletter input[type="radio"] { 8323 position: absolute; 8324 width: 1px; 8325 height: 1px; 8326 } 8327 8328 .section-newsletter [type="radio"]:checked+label, 8329 .section-newsletter [type="radio"]:not(:checked)+label { 8330 position: relative; 8331 padding-left: 28px; 8332 cursor: pointer; 8333 line-height: 20px; 8334 display: inline-block; 8335 color: #666; 8336 } 8337 8338 .section-newsletter [type="radio"]:checked+label:before, 8339 .section-newsletter [type="radio"]:not(:checked)+label:before { 8340 content: ''; 8341 position: absolute; 8342 left: 0; 8343 top: 0; 8344 width: 18px; 8345 height: 18px; 8346 border: 1px solid #ddd; 8347 border-radius: 100%; 8348 background: #fff; 8349 } 8350 8351 .section-newsletter [type="radio"]:checked+label:after, 8352 .section-newsletter [type="radio"]:not(:checked)+label:after { 8353 content: ''; 8354 width: 12px; 8355 height: 12px; 8356 background: #ffffff; 8357 position: absolute; 8358 top: 3px; 8359 left: 3px; 8360 border-radius: 100%; 8361 -webkit-transition: all 0.2s ease; 8362 transition: all 0.2s ease; 8363 } 8364 8365 .section-newsletter [type="radio"]:not(:checked)+label:after { 8366 opacity: 0; 8367 -webkit-transform: scale(0); 8368 transform: scale(0); 8369 } 8370 8371 .opt-newsletter { 8372 display: none; 8373 } 8374 8375 .footer-newsletter p, 8376 .footer-newsletter p a { 8377 color: #757575; 8378 } 8379 8380 @media (max-width:991px) { 8381 .section-newsletter h2 { 8382 font-size: 32px; 8383 } 8384 8385 .section-newsletter input { 8386 width: 300px; 8387 font-size: 14px; 8388 } 8389 8390 .section-newsletter { 8391 padding: 50px 20px; 8392 } 8393 } 8394 8395 @media (max-width: 480px) { 8396 .section-newsletter input[type="email"] { 8397 font-size: 16px; 8398 } 8399 } 8400 </style> 8401 <style> 8402 .icon-img-footer { 8403 width: 80px; 8404 padding: 0px 5px; 8405 } 8406 8407 @media (min-width: 768px) { 8408 .icon-img-footer { 8409 width: 120px; 8410 } 8411 } 8412 8413 @media (min-width: 992px) { 8414 .icon-img-footer { 8415 width: 120px; 8416 } 8417 } 8418 8419 .button-login-daftar { 8420 display: grid; 8421 grid-template-columns: repeat(2, 1fr); 8422 font-weight: 700; 8423 } 8424 8425 .button-login-daftar a { 8426 text-align: center; 8427 } 8428 8429 .login, 8430 .register { 8431 color: #000000; 8432 padding: 15px 10px; 8433 font-size: 23px; 8434 } 8435 8436 .login, 8437 .login-button { 8438 background: linear-gradient(to bottom, #001c47 0%, #20B2AA 50%, #001c47 100%); 8439 border: 2px solid #ffffff; 8440 } 8441 8442 .register, 8443 .register-button { 8444 background: linear-gradient(to bottom, #001c47 0%, #20B2AA 50%, #001c47 100%); 8445 border: 2px solid #ffffff; 8446 } 8447 </style> 8448 8449 <!-- wp:html --> 8450
8450<script> 8451 document.addEventListener('DOMContentLoaded', 8452 function () { 8453 const faqItems = document.querySelectorAll('.faq-item'); 8454 faqItems.forEach(item => { 8455 const question = item.querySelector('.faq-question'); 8456 question.addEventListener('click', 8457 () => { 8458 const isActive = item.classList.contains('active'); 8459 faqItems.forEach(otherItem => { otherItem.classList.remove('active') }); 8460 if (!isActive) { item.classList.add('active') } 8461 }) 8462 }) 8463 }); 8464 </script>
8464 8465 8466 8467 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 8468 </div> 8469 <div class="faq-section"> 8470 <h2>FAQ AGAM99</h2> 8471 <div class="faq-container"> 8472 8473 <div class="faq-item"> 8474 <button class="faq-question"> 8475 Apa itu AGAM99? 8476 <span></span> 8477 </button> 8478 <div class="faq-answer"> 8479 <p> 8480 AGAM99 merangkum berbagai pembaruan yang berkaitan dengan Portal Pragmatic Play melalui halaman yang diperbarui secara berkala agar pengunjung dapat mengikuti perubahan terbaru dengan lebih praktis. 8481 </p> 8482 </div> 8483 </div> 8484 8485 <div class="faq-item"> 8486 <button class="faq-question"> 8487 Informasi apa saja yang dapat ditemukan melalui AGAM99? 8488 <span></span> 8489 </button> 8490 <div class="faq-answer"> 8491 <p> 8492 Pengunjung dapat menemukan rangkuman perkembangan harian, pembahasan fitur, perubahan tampilan, serta topik terbaru yang berkaitan dengan Portal Pragmatic Play. 8493 </p> 8494 </div> 8495 </div> 8496 8497 <div class="faq-item"> 8498 <button class="faq-question"> 8499 Apakah pembahasan di AGAM99 mudah dipahami oleh pengunjung baru? 8500 <span></span> 8501 </button> 8502 <div class="faq-answer"> 8503 <p> 8504 Ya, AGAM99 menyajikan setiap pembahasan menggunakan bahasa yang ringkas dan terstruktur sehingga tetap mudah dipahami oleh pengunjung baru maupun pembaca rutin. 8505 </p> 8506 </div> 8507 </div> 8508 8509 <div class="faq-item"> 8510 <button class="faq-question"> 8511 Kapan waktu terbaik untuk melihat pembaruan di AGAM99? 8512 <span></span> 8513 </button> 8514 <div class="faq-answer"> 8515 <p> 8516 Pengunjung dapat membuka AGAM99 kapan saja karena halaman dirancang untuk menampilkan pembaruan secara berkala dan dapat diakses melalui berbagai perangkat. 8517 </p> 8518 </div> 8519 </div> 8520 8521 <div class="faq-item"> 8522 <button class="faq-question"> 8523 Apakah AGAM99 hanya membahas satu jenis pembaruan? 8524 <span></span> 8525 </button> 8526 <div class="faq-answer"> 8527 <p> 8528 Tidak. AGAM99 membahas beragam perkembangan yang masih berkaitan dengan Portal Pragmatic Play, mulai dari perubahan fitur, tampilan, hingga rangkuman topik yang sedang diperbarui. 8529 </p> 8530 </div> 8531 </div> 8532 </div> 8533 8534 </div> 8535 8536 </div> 8537 8538 8539 <div class="overlay overlay-cart"></div> 8540 <div id="CartDrawer" class="drawer drawer--right"> 8541 <div class="drawer__header pl-2 pr-2"> 8542 <div class="drawer__icon-cart display-table-cell"> 8543 <a href="/cart" class=""> 8544 <svg class="icon icon-cart" version="1.1" 8545 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="32" height="32"
8546 viewBox="0 0 32 32"> 8547 <path fill="#fff" 8548 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"> 8549 </path> 8550 <path fill="#fff" 8551 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"> 8552 </path> 8553 <path fill="#fff" 8554 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"> 8555 </path> 8556 <path fill="#000" 8557 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"> 8558 </path> 8559 <path fill="#fff" 8560 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"> 8561 </path> 8562 <path fill="#fff" 8563 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"> 8564 </path> 8565 <path fill="#fff" 8566 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"> 8567 </path> 8568 <path fill="#fff" 8569 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"> 8570 </path> 8571 </svg> 8572 </a> 8573 </div> 8574 <div class="drawer__title h4">Keranjang Belanja</div> 8575 <div class="drawer__close js-drawer-close"> 8576 <button type="button"> 8577 <svg class="icon icon-close" version="1.1" 8578 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="32" height="32"
8579 viewBox="0 0 32 32"> 8580 <title>icon-close</title> 8581 <path 8582 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"> 8583 </path> 8584 </svg> 8585 </button> 8586 </div> 8587 </div> 8588 <div id="CartContainer" class="p-2"></div> 8589 </div> 8590 8591
8591<script> 8592 8593 </script>
8593 8594
8594<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" 8595 defer></script>
8595 8596 <!-- /snippets/ajax-cart-template.liquid --> 8597 8598
8598<script id="CartTemplate" type="text/template"> 8599 8600 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 8601 <div class="ajaxcart__inner" {{ cart.item_count }}> 8602 {{#items}} 8603 <div class="ajaxcart__product"> 8604 <div class="ajaxcart__row" data-line="{{line}}"> 8605 <div class="grid"> 8606 <div class="grid__item one-quarter"> 8607 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 8608 </div> 8609 <div class="grid__item three-quarters"> 8610 <p class="d-block mb-3"> 8611 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 8612 {{#if variation}} 8613 <span class="ajaxcart__product-meta p">{{variation}}</span> 8614 {{/if}} 8615 {{#properties}} 8616 {{#each this}} 8617 {{#if this}} 8618 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 8619 {{/if}} 8620 {{/each}} 8621 {{/properties}} 8622 8623 </p> 8624 <div class="grid--full display-table"> 8625 <div class="grid__item display-table-cell one-half"> 8626 <div class="ajaxcart__qty"> 8627 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 8628 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 8629 <span class="visually-hidden">Kurangi jumlah barang</span> 8630 </button> 8631 <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]*"> 8632 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 8633 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 8634 <span class="visually-hidden">Tambahkan jumlah barang</span> 8635 </button> 8636 </div> 8637 </div> 8638 <div class="grid__item display-table-cell one-half text-right"> 8639 {{#if discountsApplied}} 8640 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 8641 <br><span class="h4">{{{linePrice}}}</span> 8642 {{else}} 8643 <span class="h4">{{{linePrice}}}</span> 8644 {{/if}} 8645 </div> 8646 </div> 8647 {{#if discountsApplied}} 8648 <div class="grid--full display-table"> 8649 <div class="grid__item text-right"> 8650 {{#each discounts}} 8651 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 8652 {{/each}} 8653 </div> 8654 </div> 8655 {{/if}} 8656 </div> 8657 </div> 8658 </div> 8659 </div> 8660 </div> 8661 </div> 8662 {{/items}} 8663 </div> 8664 <div class="ajaxcart__footer"> 8665 <div class="grid--full cart-subtotal py-2"> 8666 <p>Subtotal</p> 8667 <h3 class="primary">{{{totalPrice}}}</h3> 8668 {{#if totalCartDiscount}} 8669 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 8670 {{/if}} 8671 </div> 8672 8673 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 8674 8675 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 8676 </div> 8677 </form> 8678 8679 </script>
8679 8680
8680<script id="AjaxQty" type="text/template"> 8681 8682 <div class="ajaxcart__qty"> 8683 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 8684 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"> 8685 <title>icon-minus</title> 8686 <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> 8687 </svg> 8688 <span class="visually-hidden">Kurangi jumlah barang</span> 8689 </button> 8690 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 8691 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 8692 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 8693 <span class="visually-hidden">Tambahkan jumlah barang</span> 8694 </button> 8695 </div> 8696 8697 </script>
8697 8698
8698<script id="JsQty" type="text/template"> 8699 8700 <div class="js-qty mx-auto mt-2"> 8701 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 8702 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 8703 <span class="visually-hidden">Kurangi jumlah barang</span> 8704 </button> 8705 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 8706 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 8707 <svg version="1.1" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 8708 <span class="visually-hidden">Tambahkan jumlah barang</span> 8709 </button> 8710 </div> 8711 8712 </script>
8712 8713 8714 <style> 8715 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 8716 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 8717 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button { 8718 display: none; 8719 } 8720 8721 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 8722 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 8723 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 8724 pointer-events: none; 8725 opacity: 0.5; 8726 } 8727 8728 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 8729 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 8730 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 8731 pointer-events: none; 8732 } 8733 </style> 8734
8734<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" 8735 defer></script>
8735 8736
8736<script> 8737 jQuery(function ($) { 8738 ajaxCart.init({ 8739 formSelector: '#AddToCartForm', 8740 cartContainer: '#CartContainer', 8741 addToCartSelector: '#AddToCartXX', 8742 cartCountSelector: '#CartCount, #CartCount2', 8743 cartCostSelector: '#CartCost', 8744 moneyFormat: "Rp {{amount_no_decimals}}" 8745 }); 8746 }); 8747 8748 jQuery(document.body).on('afterCartLoad.ajaxCart', function (evt, cart) { 8749 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 8750 timber.RightDrawer.open(); 8751 }); 8752 </script>
8752 8753 8754 8755 8756 8757 <style> 8758 /** Search AutoComplete **/ 8759 .resultsearch .ui-menu-item[data-cat="Collection"], 8760 .resultsearch .ui-menu-item[data-cat="Collection"] { 8761 display: none; 8762 } 8763 8764 .resultsearch .ui-widget.ui-widget-content { 8765 width: 100%; 8766 top: 48px; 8767 border: none; 8768 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 8769 } 8770 8771 .resultsearch .ui-menu-item { 8772 text-align: left; 8773 } 8774 8775 .resultsearch .ui-menu-item>a, 8776 .resultsearch .ui-menu-item>span { 8777 display: inline-block; 8778 width: 100%; 8779 font-size: 16px; 8780 } 8781 8782 .resultsearch .ui-menu-item img { 8783 vertical-align: middle; 8784 } 8785 8786 .resultsearch .ui-menu-item a[data-cat="Collection"] img { 8787 display: none; 8788 } 8789 8790 .resultsearch .ui-menu .ui-state-focus, 8791 .resultsearch .ui-menu .ui-state-active { 8792 margin: 0; 8793 } 8794 8795 .ui-state-active, 8796 .ui-widget-content .ui-state-active { 8797 background: #f2f2f2; 8798 border: none; 8799 color: #ffffff; 8800 } 8801 8802 .resultsearch .ui-menu-item>a, 8803 .resultsearch .ui-menu-item>span { 8804 display: inline-block; 8805 width: 100%; 8806 font-size: 13px; 8807 } 8808 8809 .resultsearch .ui-menu-item a[data-cat="Produk"] img { 8810 margin-right: 10px; 8811 } 8812 8813 .resultsearch .ui-menu-item a[data-cat="Produk"] .price { 8814 float: right; 8815 padding: 15px 0; 8816 } 8817 8818 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before { 8819 content: "Product Populer"; 8820 font-size: 13px; 8821 padding: 5px; 8822 margin: 5px 0; 8823 background: #f2f2f2; 8824 width: 100%; 8825 display: block; 8826 color: #ffffff; 8827 } 8828 8829 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span { 8830 display: none; 8831 } 8832 8833 .ui-state-active { 8834 border: none !important; 8835 background-color: #fafafa !important; 8836 color: #000 !important; 8837 } 8838 8839 .ui-menu-item a[data-cat="Collection"] { 8840 padding: 5px 12px; 8841 } 8842 8843 .ui-menu .ui-menu-item { 8844 line-height: normal; 8845 } 8846 </style> 8847
8847<script> 8848 $(window).load(function () { 8849 8850 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; } 8851 8852 $.widget("custom.catcomplete", $.ui.autocomplete, { 8853 _renderMenu: function (ul, items) { 8854 // have search reults split up in categories 8855 var that = this, 8856 currentCategory = ""; 8857 $.each(items, function (index, item) { 8858 if (item.category != currentCategory) { 8859 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 8860 currentCategory = item.category; 8861 } 8862 that._renderItemData(ul, item); 8863 }); 8864 } 8865 }); 8866 8867 // higlight searched for term 8868 $.ui.autocomplete.prototype._renderItem = function (ul, item) { 8869 var term = this.element.val(), 8870 html = item.label.replace(term, "<b>$&</b>"); 8871 return $("<li>") 8872 .append(format(item)) 8873 .appendTo(ul); 8874 }; 8875 8876 8877 var data = [ 8878 { 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
8878wborn-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
8878akaman", 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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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
8878dal", 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: " " }
8878, { 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-
8878hampers", 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
8878o-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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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: " " }
8878, { 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: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " }, { label: "AGAM99 ikuti perkembagnan terbaru portal Pragmatic Play bersama kami serta dapatkan info paling terbaru secara rutin dengan penyajian jelas, ringkas, dan mudah diakses kapan saja 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
8878: " " }, { 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: " " }, { 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: " " }
8878, { 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
8878dal", 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: " " }, 8879 { 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" }
8879, { 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" }
8879, { 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" } 8880 ]; 8881 8882 8883 $(".header-input-search").catcomplete({ 8884 appendTo: ".searchResult", source: function (request, response) { 8885 var results = $.ui.autocomplete.filter(data, request.term); 8886 var predicate = function () { 8887 var counter = { Collection: 0, Produk: 0 }; 8888 var fn = function (item) { counter[item.category] += 1; return (counter[item.category] <= 5); } 8889 return fn 8890 }(); 8891 response(results.filter(predicate)); 8892 }, 8893 minLength: 1, 8894 //results are clickable 8895 select: function (event, ui) { window.location = ui.item.url; } 8896 }); 8897 $(".header-input-search2").catcomplete({ 8898 appendTo: ".searchResult2", 8899 source: function (request, response) { 8900 var results = $.ui.autocomplete.filter(data, request.term); 8901 var predicate = function () { 8902 var counter = { Collection: 0, Produk: 0 }; 8903 var fn = function (item) { 8904 counter[item.category] += 1; 8905 return (counter[item.category] <= 5); 8906 } 8907 return fn 8908 }(); 8909 response(results.filter(predicate)); 8910 }, 8911 minLength: 1, 8912 //results are clickable 8913 select: function (event, ui) { 8914 window.location = ui.item.url; 8915 } 8916 }); 8917 }); 8918 </script>
8918 8919 8920
8920<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
8920 8921
8921<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
8921 8922 8923
8923<script> 8924 (function () { 8925 var youtube = document.querySelectorAll(".youtube"); 8926 for (var i = 0; i < youtube.length; i++) { 8927 var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault_1x.jpg"; 8928 var datasource = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault.jpg"; 8929 var image = new Image(); 8930 image.src = source; 8931 image.setAttribute("data-src", datasource); 8932 image.classList.add("swiper-lazy"); 8933 image.addEventListener("load", function () { 8934 youtube[i].appendChild(image); 8935 }(i)); 8936 youtube[i].addEventListener("click", function () { 8937 var iframe = document.createElement("iframe"); 8938 iframe.setAttribute("width", "480"); 8939 iframe.setAttribute("height", "480"); 8940 iframe.setAttribute("frameborder", "0"); 8941 iframe.setAttribute("allowfullscreen", ""); 8942 iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset.embed + "?rel=0&showinfo=0&autoplay=1"); 8943 this.innerHTML = ""; 8944 this.appendChild(iframe); 8945 }); 8946 }; 8947 8948 })(); 8949 8950 /* Lazy Load */ 8951 const mainLazyLoad = new LazyLoad({ threshold: 400 }); 8952 $(document).ready(function () { 8953 8954 $("selectxxx").addClass("needsclick"); 8955 FastClick.attach(document.body); 8956 8957 var $customSelects = $('.select-search'); 8958 $customSelects.select2({ 8959 templateResult: function (result, container) { 8960 if (!result.id) { 8961 return result.text; 8962 } 8963 container.className += ' needsclick'; 8964 return result.text; 8965 } 8966 }); 8967 $customSelects.each(function (index, el) { $(el).data('select2').$container.find('*').addClass('needsclick'); }); 8968 $(document).on('select2:open', () => { 8969 document.querySelector('.select2-search__field').focus(); 8970 }); 8971 8972 8973 $(".overlay").click(function () { 8974 $(".js-drawer-close").click(); 8975 }); 8976 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function () { 8977 $("html").toggleClass("nav_open"); 8978 }); 8979 8980 $('.swatch-element label').on('click', function () { 8981 var srcImg = $(this).data('src'); 8982 $('#thumb-image-product .product-single__thumbnail').each(function () { 8983 if ($(this).attr("href") == srcImg) { 8984 $(this).trigger('click'); 8985 } 8986 }); 8987 }); 8988 var defaultValue = $(".swatch input:checked").val() 8989 8990 $('#purchaseProduct .swatch [type=radio]').change(function () { 8991 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 8992 var optionValue = $(this).val(); 8993 console.log(optionIndex, optionValue) 8994 var value = parseInt(optionValue.split(' ')[0]) 8995 $(this) 8996 .closest('#purchaseProduct') 8997 .find('.single-option-selector') 8998 .eq(optionIndex) 8999 .val(optionValue) 9000 .trigger('change'); 9001 9002 }); 9003 9004 }); 9005 $(document).ready(function () { 9006 $(".nav-search a").click(function (e) { 9007 e.preventDefault(); 9008 $(".icon-navsearch").toggle(); 9009 $(".icon-navclose").toggle(); 9010 $(".site-nav__item > .site-nav__link").toggle(); 9011 $(".open-search").toggle(); 9012 $(".open-search input").focus(); 9013 }); 9014 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839
9014651752652420' alt='Logo Best Price Guarantee'>"); 9015 if ($(window).width() < 768) { 9016 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9017 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9018 $(".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'>"); 9019 } else { 9020 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9021 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9022 $(".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'>"); 9023 } 9024 $(".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'>"); 9025 $(".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'>"); 9026 }); 9027 </script>
9027 9028 9029 9030 9031 9032 9033 9034 9035
9035<script type="text/javascript"> 9036 var wishlistpage = 0; 9037 9038 var quickShop_money_format = "<span class='money'>" + "Rp {{amount_no_decimals}}" + "</span>"; 9039 </script>
9039 9040 9041 <!-- Remove duplicate wishlist.js reference --> 9042 <style> 9043 .fade { 9044 opacity: 0; 9045 -webkit-transition: opacity .15s linear; 9046 -o-transition: opacity .15s linear; 9047 transition: opacity .15s linear 9048 } 9049 9050 .modal { 9051 position: fixed; 9052 top: 0; 9053 right: 0; 9054 bottom: 0; 9055 left: 0; 9056 z-index: 999999; 9057 display: none; 9058 overflow: hidden; 9059 -webkit-overflow-scrolling: touch; 9060 outline: 0 9061 } 9062 9063 .fade.in { 9064 opacity: 1 9065 } 9066 9067 .modal-open .modal { 9068 overflow-x: hidden; 9069 overflow-y: auto; 9070 z-index: 999999; 9071 background-color: rgba(0, 0, 0, .3) 9072 } 9073 9074 .modal-dialog { 9075 position: relative; 9076 width: auto; 9077 margin: 10px 9078 } 9079 9080 .wishlist-model .modal-dialog { 9081 width: 700px 9082 } 9083 9084 .modal.fade .modal-dialog { 9085 -webkit-transition: -webkit-transform .3s ease-out; 9086 -o-transition: -o-transform .3s ease-out; 9087 transition: transform .3s ease-out; 9088 -webkit-transform: translate(0, -25%); 9089 -ms-transform: translate(0, -25%); 9090 -o-transform: translate(0, -25%); 9091 transform: translate(0, -25%) 9092 } 9093 9094 .modal.in .modal-dialog { 9095 -webkit-transform: translate(0, 0); 9096 -ms-transform: translate(0, 0); 9097 -o-transform: translate(0, 0); 9098 transform: translate(0, 0) 9099 } 9100
9101 .modal-content { 9102 position: relative; 9103 background-color: #fff; 9104 -webkit-background-clip: padding-box; 9105 background-clip: padding-box; 9106 border: 1px solid #999; 9107 border: 1px solid rgba(0, 0, 0, .2); 9108 outline: 0; 9109 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); 9110 box-shadow: 0 3px 9px rgba(0, 0, 0, .5) 9111 } 9112 9113 .wishlist-model .modal-content {} 9114 9115 .wishlist-model .modal-header { 9116 min-height: 0; 9117 padding: 0; 9118 border-bottom: 0 9119 } 9120 9121 .close { 9122 float: right; 9123 font-size: 21px; 9124 font-weight: 700; 9125 line-height: 1; 9126 color: #000; 9127 text-shadow: 0 1px 0 #121212; 9128 filter: alpha(opacity=20); 9129 opacity: .2 9130 } 9131 9132 button.close { 9133 -webkit-appearance: none; 9134 padding: 0; 9135 cursor: pointer; 9136 background: 0 0; 9137 border: 0 9138 } 9139
9140 .modal-header .close { 9141 margin-top: -2px 9142 } 9143 9144 .wishlist-model .close { 9145 position: absolute; 9146 top: -10px; 9147 right: -10px; 9148 background: #fff; 9149 opacity: 1; 9150 width: 30px; 9151 height: 30px; 9152 font-size: 15px; 9153 border-radius: 50%; 9154 z-index: 10; 9155 box-shadow: 0 1px 4px 0 #121212 9156 } 9157 9158 .wishlist-model .close .icon-close { 9159 width: 25px; 9160 height: 25px 9161 } 9162 9163 .modal-body { 9164 position: relative; 9165 padding: 15px 9166 } 9167 9168 .wishlist-model .modal-body { 9169 padding: 0 30px; 9170 display: flex 9171 } 9172 9173 .wishlist-model .wishlist-left { 9174 width: 66.67%; 9175 border-right: 1px solid #ccc; 9176 padding: 30px 0 9177 } 9178 9179 .wishlist-model .wishlist-note { 9180 position: relative; 9181 display: inline-block; 9182 margin-bottom: 20px; 9183 margin-left: 35px; 9184 border-bottom: 1px solid #121212; 9185 color: #121212 9186 } 9187 9188 .wishlist-model .wishlist-note a { 9189 color: #ffffff; 9190 } 9191 9192 .wishlist-model .wishlist-note .cirle { 9193 position: absolute; 9194 top: -4px; 9195 left: -35px; 9196 width: 25px; 9197 height: 25px; 9198 color: #fff; 9199 background: #121212; 9200 line-height: 25px; 9201 border-radius: 50%; 9202 text-align: center 9203 } 9204 9205 .wishlist-model .wishlist-note svg { 9206 fill: #fff 9207 } 9208 9209 .wishlist-model .wishlist-note .cirle .icon-check { 9210 vertical-align: middle 9211 } 9212 9213 .wishlist-model .product-left { 9214 width: 33.33%; 9215 float: left; 9216 margin-right: 30px 9217 } 9218 9219 .wishlist-model .wishlist-image { 9220 overflow: hidden 9221 } 9222 9223 .wishlist-model .wishlist-image img { 9224 transition: all .3s linear 9225 } 9226 9227 .wishlist-model .wishlist-name { 9228 padding: 0; 9229 margin-bottom: 10px 9230 } 9231 9232 .wishlist-model .wishlist-name a { 9233 color: #ffffff; 9234 } 9235 9236 .wishlist-model .wishlist-price { 9237 margin-bottom: 10px 9238 } 9239 9240 .wishlist-model .wishlist-price .price { 9241 font-weight: 700; 9242 margin-right: 10px; 9243 font-size: 15px 9244 } 9245 9246 .wishlist-model .wishlist-price .price_compare { 9247 color: #ccc 9248 } 9249 9250 .wishlist-model .wishlist-right { 9251 width: 33.33%; 9252 padding: 30px 0; 9253 padding-left: 30px 9254 } 9255 9256 .wishlist-model .btn-quick-shop { 9257 width: 100%; 9258 border-color: #121212; 9259 background: #fff; 9260 color: #121212; 9261 padding: 0 30px; 9262 transition: all .2s linear; 9263 height: 36px; 9264 margin-bottom: 10px; 9265 text-transform: uppercase 9266 } 9267 9268 .wishlist-model .btn-cta { 9269 width: 100%; 9270 font-size: 1em; 9271 border-color: #ffffff; 9272 background: #ffffff; 9273 color: #fff; 9274 padding: 0; 9275 transition: all .2s linear; 9276 height: 36px; 9277 line-height: 36px; 9278 margin-bottom: 10px 9279 } 9280 9281 .wishlist-model .quantity-content { 9282 text-align: center 9283 } 9284 9285 .wishlist-model .quantity-content input { 9286 outline: none; 9287 text-align: center; 9288 font-weight: 600; 9289 border: 1px solid #121212 9290 } 9291 9292 .wishlist-model .quantity-content button { 9293 border-color: #121212 9294 } 9295 9296 @media (min-width:768px) {
9297 .modal-dialog { 9298 width: 600px; 9299 margin: 30px auto 9300 } 9301 9302 .modal-content { 9303 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); 9304 box-shadow: 0 5px 15px rgba(0, 0, 0, .5) 9305 } 9306 } 9307 </style> 9308 9309 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 9310 <div class="modal-dialog" role="document"> 9311 <div class="modal-content"> 9312 <div class="modal-body">Your Wishlist is empty!</div> 9313 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 9314 aria-hidden="true">×</span></button> 9315 </div> 9316 </div> 9317 </div> 9318 9319 <div class="wishlist-model"> 9320 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 9321 <div class="modal-dialog white-modal"> 9322 <div class="modal-content"> 9323 <div class="modal-header"> 9324 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 9325 <svg class="icon icon-close" version="1.1" 9326 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="32" 9327 height="32" viewBox="0 0 32 32"> 9328 <title>icon-close</title> 9329 <path 9330 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"> 9331 </path> 9332 </svg> 9333 </button> 9334 </div> 9335 <div class="modal-body"> 9336 <div class="wishlist-left"> 9337 <div class="wishlist-note"> 9338 <span class="cirle"><svg version="1.1" 9339 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="32" 9340 height="32" viewBox="0 0 32 32"> 9341 <title>icon-check</title> 9342 <path 9343 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"> 9344 </path> 9345 </svg></span> 9346 Product added to <a href="/pages/wish-list">Wishlist</a> 9347 </div> 9348 <div class="wishlist-product"> 9349 <div class="product-left"> 9350 <div class="wishlist-image"></div> 9351 </div> 9352 <div class="product-right"> 9353 <div class="wishlist-name"></div> 9354 <div class="wishlist-price"></div> 9355 </div> 9356 </div> 9357 </div> 9358 <div class="wishlist-right"> 9359 <div class="wishlist-cart"> 9360 <form action="/cart/add" method="post" class="variants-form variants" 9361 id="AddToCartForm" enctype="multipart/form-data"> 9362 <div class="others-bottom"> 9363 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 9364 <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
9365 <span id="AddToCartText" class="">Beli Sekarang</span> 9366 </button> 9367 </div> 9368 <div id="wishlist-variants-container" class="variants-wrapper"></div> 9369 <div class="quantity-content"> 9370 <label>QTY</label> 9371 <input type="number" size="5" class="" name="quantity" value="1" /> 9372 </div> 9373 </form> 9374 </div> 9375 </div> 9376 </div> 9377 </div> 9378 </div> 9379 </div> 9380 </div> 9381 9382 9383 <style> 9384 .stamped-badge[data-rating="0.0"] { 9385 display: none !Important; 9386 } 9387 9388 div[data-load-type="continue"] ul.stamped-pagination li.next a, 9389 div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 9390 border-radius: 0px; 9391 } 9392 9393 .stamped-review-body { 9394 padding-left: 0px !important; 9395 } 9396 9397 #product-reviews .stamped-header:after { 9398 display: none !Important; 9399 } 9400 9401 #stamped-main-widget .stamped-container, 9402 .stamped-badge-caption, 9403 #stamped-reviews-widget { 9404 font-family: inherit !important; 9405 } 9406 </style> 9407 9408 9409 9410 <div id='stamped-rewards-init' class='stamped-rewards-init' data-key-public=''></div> 9411 9412
9412<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" 9413 defer></script>
9413 9414 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 9415
9415<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" 9416 defer></script>
9416 9417 9418
9418<script> 9419 function myInit() { StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 9420 </script>
9420 9421
9421<script async onload="myInit()" type="text/javascript" 9422 src="https://cdn1.stamped.io/files/widget.min.js"></script>
9422 9423 <style> 9424 .jss59 { 9425 background-color: rgba(0, 0, 0, 0.6); 9426 } 9427 9428 .MuiBackdrop-root { 9429 top: 0; 9430 left: 0; 9431 right: 0; 9432 bottom: 0; 9433 display: flex; 9434 z-index: -1; 9435 position: fixed; 9436 align-items: center; 9437 justify-content: center; 9438 background-color: rgba(0, 0, 0, 0.5); 9439 -webkit-tap-highlight-color: transparent; 9440 } 9441 9442 .MuiDialog-scrollPaper { 9443 display: flex; 9444 align-items: center; 9445 justify-content: center; 9446 } 9447 9448 .MuiDialog-container { 9449 height: 100%; 9450 outline: 0; 9451 } 9452 9453 .MuiPaper-elevation24 { 9454 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); 9455 } 9456 9457 .MuiDialog-paper { 9458 margin: 32px; 9459 position: relative; 9460 overflow-y: auto; 9461 } 9462 9463 .MuiDialog-paperScrollPaper { 9464 display: flex; 9465 max-height: calc(100% - 64px); 9466 flex-direction: column; 9467 } 9468 9469 .MuiDialog-paperWidthSm { 9470 max-width: 600px; 9471 } 9472 9473 #location-lock-dialog { 9474 top: 20%; 9475 left: 0; 9476 right: 0; 9477 width: 30%; 9478 margin: 0px auto; 9479 display: block; 9480 padding: 30px; 9481 z-index: 99999; 9482 position: fixed; 9483 font-size: 14px; 9484 background: rgb(0, 0, 0); 9485 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 9486 text-align: center; 9487 font-family: Roboto, Arial, sans-serif; 9488 line-height: 1; 9489 border-radius: 8px; 9490 -webkit-font-smoothing: subpixel-antialiased; 9491 } 9492 9493 .MuiButtonBase-root { 9494 color: inherit; 9495 border: 0; 9496 cursor: pointer; 9497 margin: 0; 9498 display: inline-flex; 9499 outline: 0; 9500 padding: 0; 9501 position: relative; 9502 align-items: center; 9503 user-select: none; 9504 border-radius: 0; 9505 vertical-align: middle; 9506 -moz-appearance: none; 9507 justify-content: center; 9508 text-decoration: none; 9509 background-color: transparent; 9510 -webkit-appearance: none; 9511 -webkit-tap-highlight-color: transparent; 9512 } 9513 9514 .MuiIconButton-root { 9515 flex: 0 0 auto; 9516 color: rgba(0, 0, 0, 0.54); 9517 padding: 12px; 9518 overflow: visible; 9519 font-size: 1.5rem; 9520 text-align: center; 9521 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9522 border-radius: 50%; 9523 } 9524 9525 .MuiIconButton-label { 9526 width: 100%; 9527 display: flex; 9528 align-items: inherit; 9529 justify-content: inherit; 9530 } 9531 9532 .MuiSvgIcon-root { 9533 fill: currentColor; 9534 width: 1em; 9535 height: 1em; 9536 display: inline-block; 9537 font-size: 1.5rem; 9538 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9539 flex-shrink: 0; 9540 user-select: none; 9541 } 9542 9543 .MuiTouchRipple-root { 9544 top: 0; 9545 left: 0; 9546 right: 0; 9547 bottom: 0; 9548 z-index: 0; 9549 overflow: hidden; 9550 position: absolute; 9551 border-radius: inherit; 9552 pointer-events: none; 9553 } 9554 9555 .jss36 { 9556 color: #222222; 9557 font-size: 24px; 9558 font-family: Roboto, Arial, sans-serif; 9559 font-weight: 500; 9560 } 9561 9562 .jss37 { 9563 color: #555555; 9564 padding: 10px 0px 0px; 9565 font-size: 14px; 9566 } 9567 9568 .MuiFormGroup-root { 9569 display: flex; 9570 flex-wrap: wrap; 9571 flex-direction: column; 9572 } 9573 9574 .MuiFormGroup-row { 9575 flex-direction: row; 9576 } 9577 9578 .jss63 { 9579 width: 85%; 9580 margin: 15px auto; 9581 display: flex; 9582 padding: 11px 0px 0px; 9583 justify-content: space-evenly; 9584 } 9585
9586 .MuiFormControlLabel-root { 9587 cursor: pointer; 9588 display: inline-flex; 9589 align-items: center; 9590 margin-left: -11px; 9591 margin-right: 16px; 9592 vertical-align: middle; 9593 -webkit-tap-highlight-color: transparent; 9594 } 9595 9596 .jss70 { 9597 margin: 0; 9598 } 9599 9600 .MuiButtonBase-root { 9601 color: inherit; 9602 border: 0; 9603 cursor: pointer; 9604 margin: 0; 9605 display: inline-flex; 9606 outline: 0; 9607 padding: 0; 9608 position: relative; 9609 align-items: center; 9610 user-select: none; 9611 border-radius: 0; 9612 vertical-align: middle; 9613 -moz-appearance: none; 9614 justify-content: center; 9615 text-decoration: none; 9616 background-color: transparent; 9617 -webkit-appearance: none; 9618 -webkit-tap-highlight-color: transparent; 9619 } 9620 9621 .MuiIconButton-root { 9622 flex: 0 0 auto; 9623 color: rgba(0, 0, 0, 0.54); 9624 padding: 12px; 9625 overflow: visible; 9626 font-size: 1.5rem; 9627 text-align: center; 9628 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9629 border-radius: 50%; 9630 } 9631 9632 .MuiIconButton-colorSecondary { 9633 color: #20B2AA; 9634 } 9635 9636 .jss71 { 9637 padding: 9px; 9638 } 9639 9640 .MuiRadio-root { 9641 color: rgba(0, 0, 0, 0.54); 9642 } 9643 9644 .jss64 { 9645 padding: 2px; 9646 } 9647 9648 .MuiRadio-colorSecondary.Mui-checked { 9649 color: #20B2AA; 9650 } 9651 9652 .MuiIconButton-label { 9653 width: 100%; 9654 display: flex; 9655 align-items: inherit; 9656 justify-content: inherit; 9657 } 9658 9659 .MuiTypography-root { 9660 margin: 0; 9661 } 9662 9663 .MuiTypography-body1 { 9664 font-size: 18px; 9665 font-family: Roboto, sans-serif; 9666 font-weight: 400; 9667 line-height: 1.5; 9668 } 9669 9670 .location-popup_area-block__sp9Ws { 9671 display: -moz-box; 9672 display: flex; 9673 -moz-box-orient: vertical; 9674 -moz-box-direction: normal; 9675 flex-direction: column; 9676 -moz-box-pack: center; 9677 justify-content: center; 9678 position: relative; 9679 margin: 10px 10% 0; 9680 } 9681 9682 .location-popup_pin-search-box__3l5mJ { 9683 width: 100%; 9684 display: -moz-box; 9685 display: flex; 9686 -moz-box-align: center; 9687 align-items: center; 9688 } 9689 9690 .location-popup_place-icon-city__1XAX5, 9691 .location-popup_place-icon__jSG0Q { 9692 position: absolute; 9693 z-index: 999; 9694 } 9695 9696 .location-popup_place-icon__jSG0Q { 9697 color: #ffffff; 9698 padding-left: 8px; 9699 } 9700 9701 .location-popup_place-icon__jSG0Q svg { 9702 width: 18px; 9703 height: 18px; 9704 } 9705 9706 .location-popup_cancel-icon__FHujU { 9707 color: #fff; 9708 right: 10px; 9709 width: 16px; 9710 cursor: pointer; 9711 height: 16px; 9712 display: none; 9713 padding: 5px; 9714 position: absolute; 9715 background: #999; 9716 text-align: center; 9717 border-radius: 50%; 9718 } 9719 9720 .location-popup_pin-search-box__3l5mJ>div>select { 9721 /* -webkit-box-shadow: 0 0 10px #ffffff; 9722 box-shadow: 0 0 10px #ffffff; */ 9723 text-transform: capitalize; 9724 border: 1px solid #ffffff; 9725 color: #ffffff; 9726 width: 100%; 9727 margin: 0; 9728 display: -moz-box; 9729 display: flex;
9730 padding: 0 30px; 9731 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9732 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9733 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 9734 font-size: 16px; 9735 border-radius: 4px; 9736 height: 44px; 9737 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 9738 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 9739 } 9740 9741 .MuiButtonBase-root { 9742 color: inherit; 9743 border: 0; 9744 cursor: pointer; 9745 margin: 0; 9746 display: inline-flex; 9747 outline: 0; 9748 padding: 0; 9749 position: relative; 9750 align-items: center; 9751 user-select: none; 9752 border-radius: 0; 9753 vertical-align: middle; 9754 -moz-appearance: none; 9755 justify-content: center; 9756 text-decoration: none; 9757 background-color: transparent; 9758 -webkit-appearance: none; 9759 -webkit-tap-highlight-color: transparent; 9760 } 9761 9762 .MuiButton-root { 9763 color: rgba(0, 0, 0, 0.87); 9764 padding: 6px 16px; 9765 font-size: 0.875rem; 9766 min-width: 64px; 9767 box-sizing: border-box; 9768 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; 9769 font-family: Roboto, sans-serif; 9770 font-weight: 500; 9771 line-height: 1.75; 9772 border-radius: 4px; 9773 text-transform: uppercase; 9774 } 9775 9776 .MuiButton-contained { 9777 color: rgba(0, 0, 0, 0.87); 9778 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); 9779 background-color: #e0e0e0; 9780 } 9781 9782 .MuiButtonBase-root.Mui-disabled { 9783 cursor: default; 9784 pointer-events: none; 9785 } 9786 9787 .MuiButton-label { 9788 width: 100%; 9789 display: inherit; 9790 align-items: inherit; 9791 justify-content: inherit; 9792 } 9793 9794 .cartButton_login_content__2j1f7 { 9795 display: -moz-box; 9796 display: flex; 9797 text-align: center; 9798 z-index: 9; 9799 font-size: 18px; 9800 font-weight: 500; 9801 color: #fff; 9802 } 9803 9804 .jss35 { 9805 top: 5px; 9806 right: 5px; 9807 padding: 4px; 9808 position: absolute; 9809 border-radius: 50%; 9810 } 9811 9812 .jss67 { 9813 cursor: pointer; 9814 font-size: 15px; 9815 line-height: 1.3; 9816 padding-left: 5px; 9817 } 9818 9819 .jss69 { 9820 color: #222222; 9821 } 9822 9823 .jss80 { 9824 color: #fff; 9825 width: 100%; 9826 height: 52px; 9827 padding: 11px 16px; 9828 font-size: 18px; 9829 min-width: 88px; 9830 min-height: 36px; 9831 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; 9832 font-weight: 500; 9833 line-weight: 1em; 9834 border-radius: 4px; 9835 text-transform: uppercase; 9836 background-color: #E87325; 9837 } 9838 9839 @media (min-width: 991px) { 9840 .cartButton_login_content__2j1f7 { 9841 font-weight: 500; 9842 } 9843 } 9844 9845 @media (max-width: 992px) { 9846 #location-lock-dialog { 9847 width: 100%; 9848 top: auto; 9849 bottom: 0; 9850 padding-left: 0; 9851 padding-right: 0; 9852 } 9853 9854 .MuiFormGroup-row { 9855 display: block 9856 } 9857 9858 .MuiIconButton-label input { 9859 margin: 0; 9860 } 9861 } 9862 </style> 9863 <div role="presentation" class="MuiDialog-root jss34" 9864 style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 9865 <div class="MuiBackdrop-root" aria-hidden="true" 9866 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 9867 <div tabindex="0" data-test="sentinelStart"></div> 9868 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" 9869 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 9870 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" 9871 role="dialog"> 9872 <div class="jss31 undefined" id="location-lock-dialog"> 9873 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" 9874 tabindex="0" type="button" aria-label="close">
9875 <span class="MuiIconButton-label"> 9876 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 9877 <path 9878 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"> 9879 </path> 9880 </svg> 9881 </span> 9882 <span class="MuiTouchRipple-root"></span> 9883 </button> 9884 <div> 9885 <div class="jss36">Select Delivery Location</div> 9886 <div class="jss37">Select a delivery location to see product availability</div> 9887 </div> 9888 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 9889 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 9890 <span 9891 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" 9892 aria-disabled="false"> 9893 <span class="MuiIconButton-label"> 9894 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" 9895 checked="" name="location"> 9896 <span class="jss41"></span> 9897 </span> 9898 <span class="MuiTouchRipple-root"></span> 9899 </span> 9900 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 9901 <span class="jss67 jss69">Jabodetabek</span> 9902 </span> 9903 </label> 9904 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 9905 <span 9906 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" 9907 aria-disabled="false"> 9908 <span class="MuiIconButton-label"> 9909 <input id="non-jabodetabek" class="jss49" type="radio" 9910 value="Outside Jabodetabek" name="location"> 9911 <span class="jss40"></span> 9912 </span> 9913 <span class="MuiTouchRipple-root"></span> 9914 </span> 9915 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 9916 <span class="jss67 jss68">Outside Jabodetabek</span> 9917 </span> 9918 </label> 9919 </div> 9920 <div> 9921 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 9922 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 9923 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 9924 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" 9925 aria-hidden="true" style="font-size:16px"> 9926 <path 9927 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"> 9928 </path> 9929 </svg> 9930 </div> 9931 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 9932 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 9933 </div> 9934 <div style="width: 100%;"> 9935 <select id="choose-location" class="form-control"> 9936 <option value="">Choose Location</option> 9937 <option value="jakarta">Jakarta</option> 9938 <option value="bogor">Bogor</option> 9939 <option value="depok">Depok</option> 9940 <option value="tangerang">Tangerang</option> 9941 <option value="bekasi">Bekasi</option> 9942 </select> 9943 </div> 9944 </div> 9945 </div> 9946 </div> 9947 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" 9948 type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" 9949 data-testid="location-lock-submit" 9950 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;" 9951 data-content="">
9952 <span class="MuiButton-label"> 9953 <span class=""></span> 9954 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" 9955 style="font-weight: 500;" data-content="">Continue Shopping</span> 9956 </span> 9957 </button> 9958 </div> 9959 </div> 9960 </div> 9961 <div tabindex="0" data-test="sentinelEnd"></div> 9962 </div> 9963 9964
9964<script> 9965 const jabodetabek = [ 9966 { 9967 "code": "jakarta", 9968 "city": "jakarta", 9969 "zip": [] 9970 }, 9971 { 9972 "code": "bogor", 9973 "city": "bogor", 9974 "zip": [] 9975 }, 9976 { 9977 "code": "depok", 9978 "city": "depok", 9979 "zip": [] 9980 }, 9981 { 9982 "code": "tangerang", 9983 "city": "tangerang", 9984 "zip": [] 9985 }, 9986 { 9987 "code": "bekasi", 9988 "city": "bekasi", 9989 "zip": [] 9990 } 9991 ] 9992 let cityNonJabodetabek = [ 9993 9994 9995 9996 "pengiriman_aceh", 9997 9998 9999 10000 10001 10002 "pengiriman_ambon", 10003 10004 10005 10006 10007 10008 "pengiriman_atambua", 10009 10010 10011 10012 10013 10014 "pengiriman_badung", 10015 10016 10017 10018 10019 10020 "pengiriman_bali", 10021 10022 10023 10024 10025 10026 "pengiriman_balikpapan", 10027 10028 10029 10030 10031 10032 "pengiriman_bandar lampung", 10033 10034 10035 10036 10037 10038 "pengiriman_bandung", 10039 10040 10041 10042 10043 10044 "pengiriman_bandung barat", 10045 10046 10047 10048 10049 10050 "pengiriman_banjarmasin", 10051 10052 10053 10054 10055 10056 "pengiriman_banyumas", 10057 10058 10059 10060 10061 10062 "pengiriman_banyuwangi", 10063 10064 10065 10066 10067 10068 "pengiriman_batam", 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 "pengiriman_biak", 10079 10080 10081 10082 10083 10084 "pengiriman_binjai", 10085 10086 10087 10088 10089 10090 "pengiriman_blitar", 10091 10092 10093 10094 10095 10096 "pengiriman_blora", 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 "pengiriman_bojonegoro", 10107 10108 10109 10110 10111 10112 "pengiriman_boyolali", 10113 10114 10115 10116 10117 10118 "pengiriman_bukittinggi", 10119 10120 10121 10122 10123 10124 "pengiriman_buleleng", 10125 10126 10127 10128 10129 10130 "pengiriman_ciamis", 10131 10132 10133 10134 10135 10136 "pengiriman_cianjur", 10137 10138 10139 10140 10141 10142 "pengiriman_cibinong", 10143 10144 10145 10146 10147 10148 "pengiriman_cikarang", 10149 10150 10151 10152 10153 10154 "pengiriman_cikupa", 10155 10156 10157 10158 10159 10160 "pengiriman_cilacap", 10161 10162 10163 10164 10165 10166 "pengiriman_cileunyi", 10167 10168 10169 10170 10171 10172 "pengiriman_cimahi", 10173 10174 10175 10176 10177 10178 "pengiriman_cirebon", 10179 10180 10181 10182 10183 10184 "pengiriman_ciwidey", 10185 10186 10187 10188 10189 10190 "pengiriman_deli serdang", 10191 10192 10193 10194 10195 10196 "pengiriman_demak", 10197 10198 10199 10200 10201 10202 "pengiriman_denpasar", 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 "pengiriman_garut", 10213 10214 10215 10216 10217 10218 "pengiriman_gianyar", 10219 10220 10221 10222 10223 10224 "pengiriman_gresik", 10225 10226 10227 10228 10229 10230 "pengiriman_gunung kidul", 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 "pengiriman_jambi", 10241 10242 10243 10244 10245 10246 "pengiriman_jayapura", 10247 10248 10249 10250 10251 10252 "pengiriman_jember", 10253 10254 10255 10256 10257 10258 "pengiriman_jepara", 10259 10260 10261 10262 10263 10264 "pengiriman_jombang", 10265 10266 10267 10268 10269 10270 "pengiriman_karanganyar", 10271 10272 10273 10274 10275 10276 "pengiriman_karawang", 10277 10278 10279 10280 10281 10282 "pengiriman_karo", 10283 10284 10285 10286 10287 10288 "pengiriman_kebumen", 10289 10290 10291 10292 10293 10294 "pengiriman_kediri", 10295 10296 10297 10298 10299 10300 "pengiriman_keerom", 10301 10302 10303 10304 10305 10306 "pengiriman_kendal", 10307 10308 10309 10310 10311 10312 "pengiriman_klaten", 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 "pengiriman_kudus", 10323 10324 10325 10326 10327 10328 "pengiriman_kupang", 10329 10330 10331 10332 10333 10334 "pengiriman_lainnya", 10335 10336 10337 10338 10339 10340 "pengiriman_lamongan", 10341 10342 10343 10344 10345 10346 "pengiriman_lampung", 10347 10348 10349 10350 10351 10352 "pengiriman_lampung barat", 10353 10354 10355 10356 10357 10358 "pengiriman_lembang", 10359 10360 10361 10362 10363 10364 "pengiriman_lombok", 10365 10366 10367 10368 10369 10370 "pengiriman_lumajang", 10371 10372 10373 10374 10375 10376 "pengiriman_madiun", 10377 10378 10379 10380 10381 10382 "pengiriman_magelang", 10383 10384 10385 10386 10387 10388 "pengiriman_majalengka", 10389 10390 10391 10392 10393 10394 "pengiriman_makassar", 10395 10396 10397 10398 10399 10400 "pengiriman_malang", 10401 10402 10403 10404 10405 10406 "pengiriman_manado", 10407 10408 10409 10410 10411 10412 "pengiriman_medan", 10413 10414 10415 10416 10417 10418 "pengiriman_mengwi", 10419 10420 10421 10422 10423 10424 "pengiriman_mojokerto", 10425 10426 10427 10428 10429 10430 "pengiriman_nganjuk", 10431 10432 10433 10434 10435 10436 "pengiriman_ngawi", 10437 10438 10439 10440 10441 10442 "pengiriman_padang", 10443 10444 10445 10446 10447 10448 "pengiriman_palembang", 10449 10450 10451 10452 10453 10454 "pengiriman_pasuruan", 10455 10456 10457 10458 10459 10460 "pengiriman_pati", 10461 10462 10463 10464 10465 10466 "pengiriman_pekalongan", 10467 10468 10469 10470 10471 10472 "pengiriman_pekanbaru", 10473 10474 10475 10476 10477 10478 "pengiriman_pemalang", 10479 10480 10481 10482 10483 10484 "pengiriman_ponorogo", 10485 10486 10487 10488 10489 10490 "pengiriman_pontianak", 10491 10492 10493 10494 10495 10496 "pengiriman_probolinggo", 10497 10498 10499 10500 10501 10502 "pengiriman_purbalingga", 10503 10504 10505 10506 10507 10508 "pengiriman_purwakarta", 10509 10510 10511 10512 10513 10514 "pengiriman_purwokerto", 10515 10516 10517 10518 10519 10520 "pengiriman_rembang", 10521 10522 10523 10524 10525 10526 "pengiriman_riau", 10527 10528 10529 10530 10531 10532 "pengiriman_salatiga", 10533 10534 10535 10536 10537 10538 "pengiriman_samarinda", 10539 10540 10541 10542 10543 10544 "pengiriman_semarang", 10545 10546 10547 10548 10549 10550 "pengiriman_sentani", 10551 10552 10553 10554 10555 10556 "pengiriman_serang", 10557 10558 10559 10560 10561 10562 "pengiriman_sidoarjo", 10563 10564 10565 10566 10567 10568 "pengiriman_singkawang", 10569 10570 10571 10572 10573 10574 "pengiriman_sragen", 10575 10576 10577 10578 10579 10580 "pengiriman_subang", 10581 10582 10583 10584 10585 10586 "pengiriman_sukabumi", 10587 10588 10589 10590 10591 10592 "pengiriman_sumbawa", 10593 10594 10595 10596 10597 10598 "pengiriman_surabaya", 10599 10600 10601 10602 10603 10604 "pengiriman_surakarta solo", 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 "pengiriman_tasikmalaya", 10615 10616 10617 10618 10619 10620 "pengiriman_tegal", 10621 10622 10623 10624 10625 10626 "pengiriman_timika", 10627 10628 10629 10630 10631 10632 "pengiriman_wamena", 10633 10634 10635 10636 10637 10638 "pengiriman_wiyung", 10639 10640 10641 10642 10643 10644 "pengiriman_wonokromo", 10645 10646 10647 10648 10649 10650 "pengiriman_yogyakarta", 10651 10652 10653 10654 10655 10656 10657 ] 10658 console.log(cityNonJabodetabek) 10659 let non_jabodetabek = [] 10660 for (var i = 0; i < cityNonJabodetabek.length; i++) { 10661 const obj = { 10662 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ', '-'), 10663 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ', '-'), 10664 "zip": [] 10665 } 10666 non_jabodetabek.push(obj) 10667 } 10668 let current_location = getCookie("location_delivery") 10669 $("[name=location]").change(function () { 10670 let v = $(this).val() 10671 let option = [] 10672 if (v == 'Jabodetabek') { 10673 for (var i = 0; i < jabodetabek.length; i++) { 10674 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 10675 option.push(jabodetabekHtml) 10676 } 10677 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10678 } else { 10679 for (var i = 0; i < non_jabodetabek.length; i++) { 10680 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 10681 option.push(nonjabodetabekHtml) 10682 } 10683 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10684 } 10685 }) 10686 10687 $("#location-lock-submit").click(function (e) { 10688 let select = $("#choose-location") 10689 let value = select.val().toLowerCase() 10690 console.log(value) 10691 if (select.val() == "") { 10692 return alert("Choose Your Location") 10693 e.preventDefault() 10694 }
10695 setCookie("location_delivery", value, 1000000); 10696 10697 location.reload(); 10698 10699 }) 10700 10701 $("#close-popup-delivery").click(function () { 10702 $(".MuiDialog-root").hide() 10703 if (!current_location) { 10704 setCookie("location_delivery", "jakarta", 1000000); 10705 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 10706 } 10707 }) 10708 $("#loc_delivery, #loc_delivery_mobile").click(function () { 10709 $(".MuiDialog-root").show() 10710 }) 10711 10712 10713 if (!current_location) { 10714 10715 } else { 10716 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 10717 console.log(current_location) 10718 $("#choose-location").each(function () { 10719 if (current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi') { 10720 $("#jabodetabek").trigger("click") 10721 } else { 10722 $("#non-jabodetabek").trigger("click") 10723 } 10724 $("#choose-location").find("option[value=" + current_location + "]").attr("selected", "selected") 10725 }) 10726 } 10727 10728 // 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'){ 10729 // $("#timeMalam").attr("disabled", false) 10730 // } else { 10731 // $("#timeMalam").attr("disabled", true) 10732 // } 10733 10734 if (current_location && current_location != 'jakarta') { 10735 $("#self-pickup").attr("disabled", true) 10736 } 10737 10738 function setCookie(name, value, days) { 10739 var expires = ""; 10740 if (days) { 10741 var date = new Date(); 10742 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 10743 expires = "; expires=" + date.toUTCString(); 10744 } 10745 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 10746 } 10747 function getCookie(name) { 10748 var nameEQ = name + "="; 10749 var ca = document.cookie.split(';'); 10750 for (var i = 0; i < ca.length; i++) { 10751 var c = ca[i]; 10752 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 10753 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 10754 } 10755 return null; 10756 } 10757 </script>
10757 10758 <!-- One Tap --> 10759
10759<script> 10760 console.log("Outerbloom..."); 10761 </script>
10761 10762 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 10763 10764 10765 10766 10767 10768 10769 10770 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 10771
10771<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10771 10772
10772<script> 10773 const widgetConfig = { 10774 id: "clz7897za002cz7otleaz0d3d", 10775 showQuickResponse: false, 10776 quickResponsesData: [], 10777 themeColor: "#ffffff", 10778 widgetText: "", 10779 radiusType: "circle", 10780 widgetIconType: "whatsapp", 10781 position: "right", 10782 storeLogo: "", 10783 storeName: "Outerbloom", 10784 storeDescription: "", 10785 size: "small", 10786 showCard: false, 10787 widgetColorType: "solid", 10788 widgetColor1: "#008069", 10789 widgetColor2: "#008069", 10790 social: { 10791 socialOrders: ["instagram", "tiktok", "facebook", "x", "youtube", "linkedin", "email"], 10792 values: { 10793 instagram: { 10794 enabled: false, 10795 value: "", 10796 }, 10797 facebook: { 10798 enabled: false, 10799 value: "", 10800 }, 10801 email: { 10802 enabled: false, 10803 value: "", 10804 }, 10805 x: { 10806 enabled: false, 10807 value: "", 10808 }, 10809 tiktok: { 10810 enabled: false, 10811 value: "", 10812 }, 10813 linkedin: { 10814 enabled: false, 10815 value: "", 10816 }, 10817 youtube: { 10818 enabled: false, 10819 value: "", 10820 }, 10821 }, 10822 }, 10823 }; 10824 10825 function initializeWidget() { 10826 if (typeof BBBWidget !== 'undefined') { 10827 BBBWidget.init(widgetConfig); 10828 } else { 10829 setTimeout(initializeWidget, 100); 10830 } 10831 } 10832 10833 initializeWidget();</script>
10833 10834 10835 10836 </div> 10837 <div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 10838 10839 10840 <div style="position: fixed; bottom: 0; right: 0"></div> 10841 10842
10842<script> 10843 console.info("bitlogin extension version: v2.5.7"); 10844 10845 const googleScript = document.createElement("script"); 10846 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 10847 document.head.append(googleScript); 10848 10849 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 10850 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 10851 10852 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" } }; 10853 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 }]; 10854 const redirectUrl = appearance.redirectLink; 10855 10856 let locationCacheSet = false; 10857 let errorLocation = false; 10858 let oneTapSet = false; 10859 10860 let bitloginCache = { 10861 appearance: appearance, 10862 config: config 10863 }; 10864 10865 let isInitializing = false; 10866 const queue = []; 10867 10868 // Add CSS for the popup 10869 const popupStyles = document.createElement('style'); 10870 popupStyles.textContent = ` 10871 /* Styles for login popup */ 10872 .bitlogin-popup-overlay { 10873 position: fixed; 10874 top: 0; 10875 left: 0; 10876 width: 100%; 10877 height: 100%; 10878 background: rgba(0, 0, 0, 0.45); 10879 backdrop-filter: blur(4px); 10880 display: flex; 10881 align-items: center; 10882 justify-content: center; 10883 opacity: 0; 10884 transition: opacity 0.3s ease-in-out; 10885 z-index: 999999; 10886 } 10887 10888 .bitlogin-popup-overlay.visible { 10889 opacity: 1;
10890 } 10891 10892 .bitlogin-popup { 10893 background: #FFFFFF; 10894 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 10895 border-radius: 16px; 10896 width: 100%; 10897 max-width: 560px; 10898 display: flex; 10899 overflow: hidden; 10900 position: relative; 10901 opacity: 0; 10902 transform: translateY(20px) scale(0.98); 10903 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 10904 } 10905 10906 .bitlogin-popup.visible { 10907 opacity: 1; 10908 transform: translateY(0) scale(1); 10909 } 10910 10911 .bitlogin-popup-with-image { 10912 max-width: 640px; 10913 } 10914 10915 .bitlogin-popup-right-image { 10916 flex-direction: row-reverse; 10917 } 10918 10919 .bitlogin-popup-image { 10920 object-fit: cover; 10921 width: 50%; 10922 height: auto; 10923 } 10924 10925 .bitlogin-popup-content { 10926 padding: 32px; 10927 position: relative; 10928 width: 50%; 10929 } 10930 10931 .bitlogin-popup-close { 10932 position: absolute; 10933 top: 16px; 10934 right: 16px; 10935 background: white; 10936 border: none; 10937 width: 30px; 10938 height: 30px; 10939 display: flex; 10940 align-items: center; 10941 justify-content: center; 10942 cursor: pointer; 10943 transition: background-color 0.2s; 10944 color: inherit; 10945 padding: 0; 10946 } 10947 10948 .bitlogin-popup-close:hover { 10949 background-color: #e5e5e5; 10950 } 10951 10952 .bitlogin-popup-buttons { 10953 display: flex; 10954 flex-direction: column; 10955 gap: 12px; 10956 margin-top: 24px; 10957 } 10958 10959 /* Button styles within popup - override width for popup buttons */ 10960 .bitlogin-popup-buttons #google-login, 10961 .bitlogin-popup-buttons #facebook-login, 10962 .bitlogin-popup-buttons #apple-login, 10963 .bitlogin-popup-buttons #whatsapp-login, 10964 .bitlogin-popup-buttons #microsoft-login, 10965 .bitlogin-popup-buttons #twitter-login, 10966 .bitlogin-popup-buttons #amazon-login, 10967 .bitlogin-popup-buttons #instagram-login, 10968 .bitlogin-popup-buttons #magic-link-login, 10969 .bitlogin-popup-buttons #mobile-app-login { 10970 width: 100% !important; 10971 font-family: inherit !important; 10972 } 10973 10974 .bitlogin-popup-footer { 10975 margin-top: 32px; 10976 text-align: center; 10977 font-size: 14px; 10978 opacity: 0.6; 10979 } 10980 10981 /* Modern Typography */ 10982 .bitlogin-popup h2 { 10983 margin-top: 12px; 10984 font-size: 21px !important; 10985 line-height: 1.2 !important; 10986 font-weight: 700 !important; 10987 letter-spacing: -0.02em !important; 10988 margin-bottom: 16px !important; 10989 } 10990 10991 .bitlogin-popup-header { 10992 position: relative; 10993 margin-bottom: 24px; 10994 } 10995 10996 /* Modern gradient accent */ 10997 .bitlogin-popup-content > div { 10998 font-size: 16px !important; 10999 line-height: 1.2 !important; 11000 opacity: 0.85 !important; 11001 } 11002 11003 /* Enhanced button interactions */ 11004 .bitlogin-popup-buttons button { 11005 position: relative; 11006 overflow: hidden; 11007 } 11008 11009 @keyframes ripple { 11010 0% { 11011 transform: scale(0, 0); 11012 opacity: 0.5; 11013 } 11014 100% { 11015 transform: scale(100, 100); 11016 opacity: 0; 11017 } 11018 } 11019 11020 /* Responsive adjustments */ 11021 @media (max-width: 640px) { 11022 .bitlogin-popup { 11023 max-width: 90%; 11024 width: 90%; 11025 margin: 0 16px; 11026 } 11027 11028 .bitlogin-popup-with-image { 11029 flex-direction: column !important; 11030 } 11031 11032 .bitlogin-popup-image { 11033 width: 100%; 11034 height: 180px; 11035 } 11036 11037 .bitlogin-popup-content { 11038 padding: 24px; 11039 } 11040 11041 .bitlogin-popup h2 { 11042 font-size: 24px !important; 11043 } 11044 } 11045 `; 11046 11047 document.head.appendChild(popupStyles); 11048 11049 // Add fonts link for different font options 11050 const fontsLink = document.createElement('link'); 11051 fontsLink.rel = 'stylesheet'; 11052 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'; 11053 document.head.appendChild(fontsLink); 11054 11055 (async () => { 11056 try { 11057 let host = window.location.host; 11058 if (host === "admin.shopify.com") { 11059 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 11060 } 11061 11062 const urlSearchParams = new URLSearchParams(window.location.search); 11063 const checkoutUrl = urlSearchParams.get("checkout_url"); 11064 11065 async function init({ inputRef, index }) { 11066 if (isInitializing) { 11067 queue.push(() => init({ inputRef, index })); 11068 return; 11069 } 11070 11071 isInitializing = true; 11072 11073 try { 11074 let bitLoginSectionRoot = document.querySelector( 11075 `.bitlogin-root[data-index="${index}"]` 11076 ); 11077 11078 const formRef = inputRef?.closest( 11079 "form:not([action='/account/recover'])" 11080 ); 11081 11082 if (formRef && !bitLoginSectionRoot) { 11083 await getLocation(); 11084 11085 bitLoginSectionRoot = document.createElement(`div`); 11086 11087 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 11088 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 11089 11090 updateAppearance({ 11091 formRef, 11092 rootRef: bitLoginSectionRoot, 11093 host, 11094 }); 11095 } 11096 } catch (err) { 11097 console.error(`error while initiating bitlogin extensions`, err); 11098 } finally { 11099 // Release the lock 11100 isInitializing = false; 11101 11102 // Check if there are pending items in the queue 11103 if (queue.length > 0) { 11104 // Process the next function in the queue 11105 const nextFunction = queue.shift(); 11106 nextFunction(); 11107 } 11108 } 11109 } 11110 11111 function initAll() { 11112 return new Promise((resolve, reject) => { 11113 setTimeout(async () => { 11114 const inputRefs = document.querySelectorAll( 11115 'input[name="customer[email]"]' 11116 ); 11117 11118 for (let i = 0; i < inputRefs.length; i++) { 11119 const currentInputRef = inputRefs[i]; 11120 const isVisible = isElementVisible(currentInputRef); 11121 11122 if (isVisible) { 11123 await init({ inputRef: currentInputRef, index: i }); 11124 } 11125 } 11126 11127 resolve("ok"); 11128 }, 100); 11129 }); 11130 } 11131 11132 const observer = new MutationObserver((mutationsList) => { 11133 for (let mutation of mutationsList) { 11134 initAll(); 11135 } 11136 }); 11137 11138 observer.observe(document.body, { 11139 childList: true, 11140 subtree: true, 11141 attributes: true, 11142 }); 11143 11144 initAll(); 11145 11146 if (appearance.googleOneTap) { 11147 setupOneTap({ host, checkoutUrl }); 11148 } 11149 11150 // Initialize popup 11151 await initPopup(host); 11152 } catch (error) { 11153 console.error("Error initializing BitLogin:", error); 11154 } 11155 })(); 11156 11157 async function initPopup(host) { 11158 // Check if user is already logged in using Liquid checks properly 11159 const isLoggedIn = false || 11160 document.querySelector('.customer-logout-link') || 11161 document.querySelector('.account-link') || 11162 window.location.pathname.includes('/account'); 11163 11164 if (isLoggedIn) { 11165 return; // User is logged in, don't show popup 11166 } 11167 11168 try { 11169 // Fetch the popup configuration 11170 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 11171 .then(res => res.json()) 11172 .catch(err => { 11173 console.error('Error fetching popup configuration:', err); 11174 return null; 11175 }); 11176 11177 if (!popupConfig || !popupConfig.enabled) { 11178 return;
11178 // Don't show popup if disabled or config not found 11179 } 11180 11181 // Create popup after 10 seconds 11182 setTimeout(() => { 11183 // Check if user is still on the page and still not logged in 11184 if (document.visibilityState === 'visible') { 11185 // Additional check in case user logged in during the 10 second wait 11186 const currentlyLoggedIn = false || 11187 document.querySelector('.customer-logout-link') || 11188 document.querySelector('.account-link'); 11189 11190 if (!currentlyLoggedIn) { 11191 createLoginPopup(popupConfig, host); 11192 } 11193 } 11194 }, 10000); 11195 } catch (error) { 11196 console.error('Error initializing popup:', error); 11197 } 11198 } 11199 11200 function createLoginPopup(popupConfig, host) { 11201 // Font mapping 11202 const fontFamilyMap = { 11203 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 11204 montserrat: 'Montserrat, sans-serif', 11205 roboto: 'Roboto, sans-serif', 11206 open_sans: 'Open Sans, sans-serif', 11207 noto_sans: 'Noto Sans, sans-serif', 11208 lato: 'Lato, sans-serif', 11209 poppins: 'Poppins, sans-serif', 11210 quicksand: 'Quicksand, sans-serif', 11211 raleway: 'Raleway, sans-serif', 11212 pt_sans: 'PT Sans, sans-serif', 11213 oswald: 'Oswald, sans-serif', 11214 }; 11215 11216 // Create overlay 11217 const overlay = document.createElement('div'); 11218 overlay.className = 'bitlogin-popup-overlay'; 11219 11220 // Create popup container with appropriate styling 11221 const popup = document.createElement('div'); 11222 popup.className = 'bitlogin-popup'; 11223 11224 if (popupConfig.layout === 'default') { 11225 popup.style.maxWidth = '400px'; 11226 } 11227 11228 // Function to close the popup 11229 const closePopup = () => { 11230 overlay.classList.remove('visible'); 11231 popup.classList.remove('visible'); 11232 setTimeout(() => { 11233 if (document.body.contains(overlay)) { 11234 document.body.removeChild(overlay); 11235 } 11236 }, 300); 11237 }; 11238 11239 // Add click handler to the overlay to close when clicking outside 11240 overlay.addEventListener('click', (event) => { 11241 // Close only if clicking directly on the overlay, not its children 11242 if (event.target === overlay) { 11243 closePopup(); 11244 } 11245 }); 11246 11247 // Add escape key handler to close popup 11248 document.addEventListener('keydown', (event) => { 11249 if (event.key === 'Escape' && document.body.contains(overlay)) { 11250 closePopup(); 11251 } 11252 }); 11253 11254 // Create layout with image if specified 11255 let contentWrapper; 11256 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 11257 popup.classList.add('bitlogin-popup-with-image'); 11258 11259 if (popupConfig.layout === 'right') { 11260 popup.classList.add('bitlogin-popup-right-image'); 11261 } 11262 11263 // Add image 11264 const image = document.createElement('img'); 11265 image.className = 'bitlogin-popup-image'; 11266 image.src = popupConfig.popupImage; 11267 image.alt = 'Login'; 11268 image.loading = 'lazy'; 11269 popup.appendChild(image); 11270 11271 // Create content container 11272 contentWrapper = document.createElement('div'); 11273 contentWrapper.className = 'bitlogin-popup-content'; 11274 11275 if (popupConfig.layout === 'right') { 11276 const closeButton = document.createElement('button'); 11277 closeButton.className = 'bitlogin-popup-close'; 11278 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 11279 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11280 </svg>`; 11281 closeButton.setAttribute('aria-label', 'Close'); 11282 closeButton.onclick = closePopup; 11283 11284 popup.appendChild(closeButton); 11285 } 11286 } else { 11287 contentWrapper = document.createElement('div'); 11288 contentWrapper.className = 'bitlogin-popup-content'; 11289 contentWrapper.style.width = '100%'; 11290 } 11291 11292 // Set background style 11293 if (popupConfig.backgroundTheme === 'gradient') { 11294 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 11295 } else { 11296 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 11297 } 11298 11299 // Apply font family 11300 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 11301 11302 if (popupConfig.layout !== 'right') { 11303 const closeButton = document.createElement('button'); 11304 closeButton.className = 'bitlogin-popup-close'; 11305 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 11306 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11307 </svg>`; 11308 closeButton.setAttribute('aria-label', 'Close'); 11309 closeButton.onclick = closePopup; 11310 11311 contentWrapper.appendChild(closeButton); 11312 } 11313 11314 // Add heading with subtle animation effect 11315 const header = document.createElement('div'); 11316 header.className = 'bitlogin-popup-header'; 11317 11318 const heading = document.createElement('h2'); 11319 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11319its'; 11320 heading.style.color = popupConfig.fontColor; 11321 header.appendChild(heading); 11322 11323 // Add body text with improved formatting 11324 const bodyText = document.createElement('div'); 11325 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 11326 bodyText.style.color = popupConfig.fontColor; 11327 header.appendChild(bodyText); 11328 11329 contentWrapper.appendChild(header); 11330 11331 // Create buttons container with modern styling 11332 const buttonsContainer = document.createElement('div'); 11333 buttonsContainer.className = 'bitlogin-popup-buttons'; 11334 11335 // Add social buttons 11336 const providerLabels = { 11337 'GOOGLE': 'Continue with Google', 11338 'FACEBOOK': 'Continue with Facebook', 11339 'APPLE': 'Continue with Apple', 11340 'WHATSAPP': 'Continue with WhatsApp', 11341 'MAGIC_LINK': 'Continue with Email', 11342 }; 11343 11344 // Add first login provider button 11345 if (popupConfig.loginProvider1 !== 'NONE') { 11346 const buttonConfig = { 11347 theme: popupConfig.colorScheme || 'match', 11348 customColor: popupConfig.textColor, 11349 format: 'contentFlex', 11350 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 11351 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11352 style: popupConfig.style || 'rounded', 11353 size: popupConfig.size || 'medium', 11354 colorScheme: popupConfig.colorScheme || 'match', 11355 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11356 textColor: popupConfig.textColor || '#FFFFFF', 11357 outlineColor: popupConfig.outlineColor || '#3B82F6', 11358 host: host 11359 }; 11360 11361 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 11362 11363 // Handle click event - this overrides the default click handler in createSocialLoginButton 11364 button1.onclick = () => { 11365 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 11366 closePopup(); 11367 }; 11368 11369 buttonsContainer.appendChild(button1); 11370 } 11371 11372 // Add second login provider button if enabled 11373 if (popupConfig.loginProvider2 !== 'NONE') { 11374 const buttonConfig = { 11375 theme: popupConfig.colorScheme || 'match', 11376 customColor: popupConfig.textColor, 11377 format: 'contentFlex', 11378 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 11379 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11380 style: popupConfig.style || 'rounded', 11381 size: popupConfig.size || 'medium', 11382 colorScheme: popupConfig.colorScheme || 'match', 11383 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11384 textColor: popupConfig.textColor || '#FFFFFF', 11385 outlineColor: popupConfig.outlineColor || '#3B82F6', 11386 host: host 11387 }; 11388 11389 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 11390 11391 // Handle click event - this overrides the default click handler in createSocialLoginButton 11392 button2.onclick = () => { 11393 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 11394 closePopup(); 11395 }; 11396 11397 buttonsContainer.appendChild(button2); 11398 } 11399 11400 contentWrapper.appendChild(buttonsContainer); 11401 11402 // Append content to popup 11403 popup.appendChild(contentWrapper); 11404 11405 // Append popup to overlay
11406 overlay.appendChild(popup); 11407 11408 // Append overlay to body 11409 document.body.appendChild(overlay); 11410 11411 // Trigger animation with slight delay for better perceived performance 11412 setTimeout(() => { 11413 overlay.classList.add('visible'); 11414 setTimeout(() => { 11415 popup.classList.add('visible'); 11416 }, 50); 11417 }, 10); 11418 } 11419 11420 window.addEventListener("load", () => { 11421 window.addEventListener("message", (event) => { 11422 const receivedData = event.data; 11423 11424 if (receivedData.type === "authorize") { 11425 post( 11426 JSON.parse( 11427 JSON.stringify({ 11428 "customer[email]": receivedData.email, 11429 "customer[password]": receivedData.password, 11430 form_type: "customer_login", 11431 utf8: "â", 11432 return_url: redirectUrl, 11433 }) 11434 ) 11435 ); 11436 } else if (receivedData.type === "rejected") { 11437 if (receivedData.reason === "customer_account_disabled") { 11438 showAlert( 11439 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 11440 ); 11441 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 11442 showAlert( 11443 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 11444 ); 11445 } else if (receivedData.reason === "customer_exist_email_not_set") { 11446 showAlert( 11447 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 11448 ); 11449 } 11450 } 11451 11452 if (receivedData.type === "customer_authenticated") { 11453 // Dispatch a custom event that merchants can listen for to implement their custom logic 11454 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 11455 detail: { 11456 provider: receivedData.provider, 11457 customer: receivedData.customer, 11458 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 11459 } 11460 }); 11461 11462 // Dispatch the event on the window object so merchants can listen for it 11463 window.dispatchEvent(customerAuthEvent); 11464 11465 } 11466 }); 11467 }); 11468 11469 // Reusable functions for social login buttons 11470 function createSocialLoginButton(provider, config = {}) { 11471 const { 11472 theme = 'match', 11473 customColor = null, 11474 format = 'contentFlex', 11475 buttonText = null, 11476 hasShadow = true, 11477 style = 'rounded', 11478 size = 'medium', 11479 colorScheme = 'match', 11480 backgroundColor = '#3B82F6', 11481 textColor = '#FFFFFF', 11482 outlineColor = '#3B82F6', 11483 rootRef = null, 11484 host = null 11485 } = config; 11486 11487 // Create button element with appropriate ID and attributes 11488 const button = document.createElement('button'); 11489 button.id = `${provider.toLowerCase()}-login`; 11490 button.type = 'button'; 11491 11492 // Set the inner SVG based on provider 11493 switch (provider.toUpperCase()) { 11494 case 'GOOGLE': 11495 button.innerHTML = googleLoginIcon(theme, customColor); 11496 break; 11497 case 'FACEBOOK': 11498 button.innerHTML = facebookLoginIcon(theme, customColor); 11499 break; 11500 case 'APPLE': 11501 button.innerHTML = appleLoginIcon(theme, customColor); 11502 break; 11503 case 'WHATSAPP': 11504 button.innerHTML = whatsappLoginIcon(theme, customColor); 11505 break; 11506 case 'MICROSOFT': 11507 button.innerHTML = microsoftLoginIcon(theme, customColor); 11508 break; 11509 case 'TWITTER': 11510 button.innerHTML = twitterLoginIcon(theme, customColor); 11511 break; 11512 case 'AMAZON': 11513 button.innerHTML = amazonLoginIcon(theme, customColor); 11514 break; 11515 case 'INSTAGRAM': 11516 button.innerHTML = instagramLoginIcon(theme, customColor); 11517 break; 11518 case 'MAGIC_LINK': 11519 button.innerHTML = magicLinkLoginIcon(theme, customColor); 11520 break; 11521 case 'MOBILE_APP':
11522 button.innerHTML = mobileAppLoginIcon(theme, customColor); 11523 break; 11524 case 'LINKEDIN': 11525 button.innerHTML = linkedinLoginIcon(theme, customColor); 11526 break; 11527 } 11528 11529 // Add text if format isn't icon-only and buttonText is provided 11530 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 11531 button.innerHTML += `<p>${buttonText}</p>`; 11532 } 11533 11534 // Apply styling 11535 // Shadow 11536 if (hasShadow) { 11537 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 11538 button.style["box-shadow"] = shadowProperties; 11539 } 11540 11541 // Border radius 11542 const radiusProperties = 11543 style === "rounded" 11544 ? "8px" 11545 : style === "square" 11546 ? "0px" 11547 : style === "fullRounded" 11548 ? format === "wrapperFlexContainerOnlyLogo" 11549 ? "50%" 11550 : "50px" 11551 : undefined; 11552 button.style["border-radius"] = radiusProperties; 11553 11554 // Size 11555 const sizeProperties = 11556 size === "medium" 11557 ? "12px" 11558 : size === "small" 11559 ? "8px" 11560 : size === "large" 11561 ? "16px" 11562 : "8px"; 11563 11564 button.style["padding-block"] = sizeProperties; 11565 11566 // Format styling 11567 if (format) { 11568 if ( 11569 format === "contentFlexReverse" || 11570 format === "contentFlexCenterReverse" 11571 ) { 11572 const flexDir = `row-reverse`; 11573 button.style["flex-direction"] = flexDir; 11574 } 11575 11576 if ( 11577 format === "contentFlexCenter" || 11578 format === "contentFlexCenterReverse" 11579 ) { 11580 const justifyContent = `center`; 11581 button.style["justify-content"] = justifyContent; 11582 } else if ( 11583 format === "contentFlex" || 11584 format === "contentFlexReverse" 11585 ) { 11586 const buttonTextElement = button.querySelector("p"); 11587 if (buttonTextElement) { 11588 buttonTextElement.style["flex-grow"] = 1; 11589 buttonTextElement.style["text-align"] = "center"; 11590 } 11591 } 11592 11593 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 11594 rootRef.style["flex-direction"] = "row"; 11595 rootRef.style["gap"] = "8px"; 11596 rootRef.style["display"] = "flex"; 11597 rootRef.style["flex-wrap"] = "wrap"; 11598 11599 const sizeMapping = { 11600 small: "52px", 11601 medium: "62px", 11602 large: "72px", 11603 }; 11604 const buttonSize = sizeMapping[size] || "52px"; 11605 11606 button.style["margin"] = 0; 11607 button.style["width"] = buttonSize; 11608 button.style["height"] = buttonSize; 11609 button.style["display"] = "flex"; 11610 button.style["align-items"] = "center"; 11611 button.style["justify-content"] = "center"; 11612 11613 const svgElement = button.querySelector("svg"); 11614 if (svgElement) { 11615 svgElement.style["flex"] = "none"; 11616 } 11617 } 11618 } 11619 11620 // Color scheme styling 11621 if (colorScheme === "black") { 11622 button.classList.add("scheme-black"); 11623 } else if (colorScheme === "white") { 11624 button.classList.add("scheme-white"); 11625 } else if (colorScheme === "custom") { 11626 button.style["background-color"] = backgroundColor; 11627 button.style["color"] = textColor; 11628 button.style["border-color"] = outlineColor; 11629 11630 const darkenColor = (color, percentage) => { 11631 const value = parseInt(color.slice(1), 16); 11632 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 11633 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 11634 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 11635 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 11636 }; 11637 11638 button.addEventListener("mouseover", () => { 11639 button.style["background-color"] = darkenColor
11639(backgroundColor, 0.2); 11640 }); 11641 button.addEventListener("mouseout", () => { 11642 button.style["background-color"] = backgroundColor; 11643 }); 11644 } else if (colorScheme === "match") { 11645 button.classList.add("scheme-match"); 11646 } else if (colorScheme === "matchOutline") { 11647 button.classList.add("scheme-match-outline"); 11648 } 11649 11650 // Add click event listener if host is provided 11651 if (host) { 11652 button.addEventListener("click", () => 11653 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 11654 ); 11655 } 11656 11657 return button; 11658 } 11659 11660 function setupSocialLoginButtons(config, rootRef, data, host) { 11661 // Clear any existing content 11662 rootRef.innerHTML = ''; 11663 11664 const sortedEnabledProviders = config 11665 .filter(c => c.enabledWeb) 11666 .sort((a, b) => a.position - b.position); 11667 11668 sortedEnabledProviders.forEach(provider => { 11669 const key = provider.provider; 11670 const lowerKey = key.toLowerCase(); 11671 11672 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 11673 ? (lowerKey === 'twitter' 11674 ? data.buttonList.twitter.replace('Twitter', 'X') 11675 : data.buttonList[lowerKey]) 11676 : null; 11677 11678 const button = createSocialLoginButton(key, { 11679 theme: data.colorScheme || 'match', 11680 customColor: data.textColor, 11681 format: data.format, 11682 buttonText: buttonText, 11683 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 11684 style: data.style, 11685 size: data.size, 11686 colorScheme: data.colorScheme, 11687 backgroundColor: data.backgroundColor, 11688 textColor: data.textColor, 11689 outlineColor: data.outlineColor, 11690 rootRef: rootRef, 11691 host: host 11692 }); 11693 11694 rootRef.appendChild(button); 11695 }); 11696 11697 return rootRef; 11698 } 11699 11700 function updateAppearance({ formRef, rootRef, host }) { 11701 if (!formRef) return; 11702 11703 const data = bitloginCache.appearance || { 11704 style: "square", 11705 hasShadow: false, 11706 colorScheme: "match", 11707 backgroundColor: "#FFFFFF", 11708 outlineColor: "#000000", 11709 textColor: "#000000", 11710 position: "bottom", 11711 hideDivider: "false", 11712 dividerText: "OR", 11713 size: "small", 11714 format: "contentFlex", 11715 language: "en", 11716 buttonText: "Continue with", 11717 redirectLink: "/account", 11718 googleOneTap: true, 11719 googleOneTapBanner: true, 11720 customerTag: "bitLogin", 11721 redirectOneTapDesktop: null, 11722 redirectOneTapMobile: null, 11723 buttonList: { 11724 google: "Continue with Google", 11725 facebook: "Continue with Facebook", 11726 apple: "Continue with Apple", 11727 whatsapp: "Continue with WhatsApp", 11728 microsoft: "Continue with Microsoft", 11729 twitter: "Continue with X", 11730 amazon: "Continue with Amazon", 11731 instagram: "Continue with Instagram", 11732 magic_link: "Continue with Magic Link", 11733 mobile_app: "Continue with Mobile App", 11734 linkedin: "Continue with LinkedIn", 11735 }, 11736 }; 11737 11738 // Use the new setupSocialLoginButtons function to create and configure all buttons 11739 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 11740 11741 let divider; 11742 11743 if (!data.hideDivider) { 11744 divider = document.createElement("div"); 11745 const dividerStyle = "text-align:center;margin-block:16px"; 11746 divider.setAttribute("style", dividerStyle); 11747 divider.innerHTML = data.dividerText; 11748 } 11749 11750 if (data.position === "bottom") { 11751 if (divider) { 11752 formRef.appendChild(divider); 11753 } 11754 formRef.appendChild(rootRef); 11755 } else if (data.position === "top") { 11756 if (divider) { 11757 formRef.prepend(divider); 11758 } 11759 formRef.prepend(rootRef); 11760 } 11761 } 11762 11763 11764 async function onClickSocialLogin({ provider, host }) { 11765 const rand = Math.random().toString(); 11766 11767 const locationQueryString = bitloginCache.location 11768 ? `&${objectToQueryString(bitloginCache.location)}` 11769 : ""; 11770 11771 const width = 800; 11772 const height = 600; 11773 const left = (window.screen.width / 2) - (width / 2); 11774 const top = (window.screen.height / 2) - (height / 2) - 50; 11775 11776 if (provider === 'whatsapp') { 11777 window.open( 11778 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 11779 "mywindow", 11780 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11781 ); 11782 } else { 11783 window.open( 11784 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 11785 "mywindow", 11786 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11787 ); 11788 } 11789 } 11790 11791 function objectToQueryString(obj) { 11792 return Object.keys(obj) 11793 .map((key) => { 11794 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 11795 }) 11796 .join("&"); 11797 } 11798 11799 async function getLocation() { 11800 if (locationCacheSet) return; 11801 11802 try { 11803 const response = await fetch("https://ipapi.co/json/"); 11804 11805 if (!response.ok) { 11806 console.error(`error retrieving location...`, response.status); 11807 errorLocation = true; 11808 } else { 11809 const data = await response.json(); 11810 11811 const { city, region, country_name, country_code } = data; 11812 11813 const formattedLocationData = { 11814 city, 11815 region, 11816 country_name, 11817 country_code, 11818 }; 11819 11820 bitloginCache.location = formattedLocationData; 11821 locationCacheSet = true; 11822 errorLocation = false; 11823 } 11824 } catch (err) { 11825 console.error(`error fetching location`, err); 11826 errorLocation = true; 11827 } 11828 } 11829 11830 function post(params) { 11831 // The rest of this code assumes you are not using a library. 11832 // It can be made less verbose if you use one. 11833 const form = document.createElement("form"); 11834 form.method = "post"; 11835 form.action = `/account/login`; 11836 form.acceptCharset = "UTF-8"; 11837 form.setAttribute("data-login-with-shop-sign-in", "true"); 11838 form.setAttribute("novalidate", "novalidate"); 11839 11840 for (const key in params) { 11841 if (params.hasOwnProperty(key)) { 11842 const hiddenField = document.createElement("input"); 11843 hiddenField.type = "hidden"; 11844 hiddenField.name = key; 11845 hiddenField.value = params[key]; 11846 11847 form.appendChild(hiddenField); 11848 } 11849 } 11850 11851 document.body.appendChild(form); 11852 form.submit(); 11853 } 11854 11855 async function setupOneTap({ host, checkoutUrl }) { 11856 if (oneTapSet) return; 11857 11858 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 11859 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 11860 11861 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 11862 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 11863 11864 const currentPath = window.location.pathname.toLowerCase(); 11865 const currentUrl = window.location.href.toLowerCase(); 11866 11867 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 11868 switch (value) { 11869 case 'home': 11870 return currentPath === '/'; 11871 case 'product': 11872 return currentPath.startsWith('/products/'); 11873 case 'collections': 11874 return currentPath.startsWith('/collections'); 11875 case 'cart': 11876 return currentPath === '/cart'; 11877 case 'checkout': 11878 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 11879 case 'thank_you': 11880 return currentPath.includes('/thank_you'); 11881 case 'account': 11882 return currentPath.startsWith('/account'); 11883 case 'pages': 11884 return currentPath.startsWith('/pages'); 11885 case 'blogs': 11886 return currentPath === '/blogs' || currentPath === '/blogs/news'; 11887 case 'blog_post': 11888 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 11889 default: 11890 return false; 11891 } 11892 }); 11893 11894 if (shouldHideGoogleOneTap) return; 11895 11896 const oneTapClientId = bitloginCache.config.find( 11897 (config) => config.provider === "GOOGLE" 11898 )?.clientId; 11899 11900 const isLoggedIn = false; 11901 11902 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 11903 const googleOneTapButton = document.createElement("div"); 11904 googleOneTapButton.setAttribute("id", "g_id_onload"); 11905 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 11906 googleOneTapButton.setAttribute("data-context", "signin"); 11907 googleOneTapButton.setAttribute( 11908 "data-callback", 11909 "handleGoogleOneTapResponse" 11910 ); 11911 googleOneTapButton.setAttribute("data-itp_support", "true"); 11912 11913 const googleOneTapScript = document.createElement("script"); 11914 11915 googleOneTapScript.innerHTML += ` 11916 function handleGoogleOneTapResponse(response) { 11917 if (response.credential) { 11918 const idToken = response.credential; 11919 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 11920 method: 'POST', 11921 headers: { 'Content-Type': 'application/json' }, 11922 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 11923 }).then(response => { 11924 response.json().then((data) => { 11925 post( 11926 JSON.parse( 11927 JSON.stringify({ 11928 "customer[email]": data.email, 11929 "customer[password]": data.password, 11930 form_type: "customer_login", 11931 utf8: "â", 11932 return_url: redirectUrl, 11933 }) 11934 ) 11935 ); 11936 }); 11937 }).catch(error => { 11938 console.error('Error occurred:', error); 11939 }); 11940 } else { 11941 console.error('No credential available'); 11942 } 11943 } 11944 `; 11945 11946 document.body.append(googleOneTapButton); 11947 document.body.append(googleOneTapScript); 11948 } 11949 11950 oneTapSet = true; 11951 } 11952 11953 const googleLoginIcon = ( 11954 theme, 11955 customColor 11956 ) => ` 11957 ${theme === "match" || theme === "matchOutline" || theme === "custom" 11958 ? `<svg 11959 xmlns='https://belajarpsikologi.com/assets/img/logo-agam99.png' 11960 xmlns:v='https://vecta.io/nano' 11961 width='24' 11962 height='24'
11963 viewBox='0 0 186.69 190.5' 11964 > 11965 <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" 11966 }"/><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" 11967 }"/><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" 11968 }"/><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" 11969 }" clip-path="none" mask="none"/></g> 11970 </svg>` 11971 : `<svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 11972 <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" 11973 }"/> 11974 <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" 11975 }"/> 11976 <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" 11977 }"/> 11978 <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" 11979 }"/> 11980 </svg>` 11981 }`; 11982 11983 const appleLoginIcon = ( 11984 theme, 11985 customColor 11986 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 11987 <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" 11988 ? customColor 11989 : theme === "match" || theme === "black" 11990 ? "white" 11991 : "black" 11992 }"/> 11993 </svg>`; 11994 11995 const facebookLoginIcon = ( 11996 theme, 11997 customColor 11998 ) => ` 11999 ${theme === "match" || theme === "matchOutline" || theme === "custom" 12000 ? `<svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="25" viewB
12000ox="0 0 24 25" fill="none"> 12001 <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" 12002 }"/> 12003 <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" 12004 }"/> 12005 </svg>` 12006 : `<svg xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 12007 <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" 12008 }"/> 12009 <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" 12010 }"/> 12011 </svg>` 12012 }`; 12013 12014 const whatsappLoginIcon = ( 12015 theme, 12016 customColor 12017 ) => `<svg 12018 viewBox="0 0 24 24" 12019 fill="none" 12020 width="24" 12021 height="25" 12022 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12023 > 12024 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 12025 <g 12026 id="SVGRepo_tracerCarrier" 12027 stroke-linecap="round" 12028 stroke-linejoin="round" 12029 ></g> 12030 <g id="SVGRepo_iconCarrier"> 12031 <path 12032 fill-rule="evenodd" 12033 clip-rule="evenodd" 12034 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" 12035 fill="${theme === "match" || theme === "black" 12036 ? "#ffffff" 12037 : theme === "white" 12038 ? "#000000" 12039 : theme === "matchOutline" 12040 ? "#25d366" 12041 : customColor 12042 }" 12043 ></path> 12044 </g> 12045 </svg>`; 12046 12047 const microsoftLoginIcon = ( 12048 theme, 12049 customColor 12050 ) => `<svg 12051 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12052 width="25" 12053 height="25" 12054 viewBox="0 0 48 48"> 12055 <path fill="${theme === "match" || theme == "matchOutline" 12056 ? "#ff5722" 12057 : theme === "black" 12058 ? "#ffffff" 12059 : theme === "white" 12060 ? "#000000" 12061 : customColor 12062 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 12063 <path 12064 fill="${theme === "match" || theme == "matchOutline" 12065 ? "#4caf50" 12066 : theme === "black" 12067 ? "#ffffff" 12068 : theme === "white" 12069 ? "#000000" 12070 : customColor 12071 }" 12072 d="M26 6H42V22H26z" 12073 transform="rotate(-180 34 14)"></path> 12074 <path 12075 fill="${theme === "match" || theme == "matchOutline" 12076 ? "#ffc107" 12077 : theme === "black" 12078 ? "#ffffff" 12079 : theme === "white" 12080 ? "#000000" 12081 : customColor 12082 }" 12083 d="M26 26H42V42H26z" 12084 transform="rotate(-180 34 34)"></path> 12085 <path fill="${theme === "match" || theme == "matchOutline" 12086 ? "#03a9f4" 12087 : theme === "black" 12088 ? "#ffffff" 12089 : theme === "white" 12090 ? "#000000" 12091 : customColor 12092 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 12093 </svg>`; 12094 12095 const twitterLoginIcon = ( 12096 theme, 12097 customColor 12098 ) => `<svg 12099 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12100 width="25" 12101 height="25" 12102 viewBox="0 0 48 48"> 12103 <polygon fill="${theme === "match" || theme === "black" 12104 ? "#ffffff" 12105 : theme === "matchOutline" || theme === "white" 12106 ? "#000000" 12107 : customColor 12108 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 12109 <polygon 12110 fill="${theme === "match" || theme === "black" 12111 ? "#000000" 12112 : theme === "matchOutline" || theme === "white" 12113 ? "#ffffff" 12114 : customColor 12115 }" 12116 fill-rule="evenodd" 12117 points="31.143,41 7.82,7 16.777,7 40.1,41" 12118 clip-rule="evenodd"></polygon> 12119 <path 12120 fill="${theme === "match" || theme === "black" 12121 ? "#ffffff" 12122 : theme === "matchOutline" || theme === "white" 12123 ? "#000000" 12124 : customColor 12125 }" 12126 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 12127 </svg>`; 12128 12129 const amazonLoginIcon = (theme, customColor) => ` 12130 <svg 12131 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12132 x="0px" 12133 y="0px" 12134 width="25" 12135 height="25"
12136 viewBox="0 0 50 50" 12137 > 12138 <path 12139 fill="${theme === "black" 12140 ? "#ffffff" 12141 : theme === "matchOutline" 12142 ? "#FF9900" 12143 : theme === "white" || theme === "match" 12144 ? "#000000" 12145 : customColor 12146 }" 12147 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" 12148 ></path> 12149 </svg>`; 12150 12151 const instagramLoginIcon = (theme, customColor) => ` 12152 <svg 12153 width="25" 12154 height="25" 12155 viewBox="0 0 25 24" 12156 fill="none" 12157 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png"> 12158 <path 12159 fill-rule="evenodd" 12160 clip-rule="evenodd" 12161 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.
1216164321C8.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" 12162 fill="url(#paint0_radial_378_3535)" /> 12163 <path 12164 fill-rule="evenodd" 12165 clip-rule="evenodd" 12166 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" 12167 fill="url(#paint0_radial_378_3535)" /> 12168 <path 12169 fill-rule="evenodd" 12170 clip-rule="evenodd" 12171 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.
1217164321C8.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" 12172 fill="url(#paint0_radial_378_3535)" /> 12173 <path 12174 fill-rule="evenodd" 12175 clip-rule="evenodd" 12176 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" 12177 fill="url(#paint1_radial_378_3535)" /> 12178 <defs> 12179 <radialGradient 12180 id="paint0_radial_378_3535" 12181 cx="0" 12182 cy="0" 12183 r="1" 12184 gradientUnits="userSpaceOnUse" 12185 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 12186 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 12187 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 12188 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 12189 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 12190 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 12191 </radialGradient> 12192 <radialGradient 12193 id="paint1_radial_378_3535" 12194 cx="0" 12195 cy="0" 12196 r="1" 12197 gradientUnits="userSpaceOnUse" 12198 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 12199 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 12200 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 12201 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 12202 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 12203 </radialGradient> 12204 </defs> 12205 </svg>`; 12206 12207 const magicLinkLoginIcon = (theme, customColor) => ` 12208 <svg 12209 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12210 width="25" 12211 height="25" 12212 fill="none"
12213 viewBox="0 0 25 25" 12214 > 12215 <path 12216 fill="${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 12217 }" 12218 fillRule="evenodd" 12219 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" 12220 clipRule="evenodd" 12221 ></path> 12222 </svg>`; 12223 12224 const mobileAppLoginIcon = (theme, customColor) => ` 12225 <svg 12226 width="20" 12227 height="24" 12228 viewBox="0 0 12 16" 12229 fill="none" 12230 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12231 > 12232 <path 12233 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" 12234 fill=${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 12235 } 12236 /> 12237 </svg> 12238 `; 12239 12240 const linkedinLoginIcon = (theme, customColor) => ` 12241 <svg 12242 xmlns="https://belajarpsikologi.com/assets/img/logo-agam99.png" 12243 width="25" 12244 height="24" 12245 viewBox="0 0 25 24" 12246 fill="none" 12247 > 12248 <path 12249 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" 12250 fill=${theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 12251 } 12252 /> 12253 </svg> 12254 `; 12255 12256 function isElementVisible(element) { 12257 return ( 12258 document.body.contains(element) && 12259 getComputedStyle(element).display !== "none" && 12260 getComputedStyle(element).visibility !== "hidden" && 12261 getComputedStyle(element).opacity !== "0" && 12262 !element.hasAttribute("hidden") && 12263 !isAncestorHidden(element) 12264 ); 12265 } 12266 12267 function isAncestorHidden(element) { 12268 let parent = element.parentElement; 12269 while (parent) { 12270 if ( 12271 getComputedStyle(parent).display === "none" || 12272 getComputedStyle(parent).visibility === "hidden" || 12273 getComputedStyle(parent).opacity === "0" || 12274 parent.hasAttribute("hidden") 12275 ) { 12276 return true; 12277 } 12278 parent = parent.parentElement; 12279 } 12280 return false; 12281 } 12282 12283 function showAlert(message) { 12284 const alertBox = document.createElement("div"); 12285 alertBox.textContent = message; 12286 alertBox.style.position = "fixed"; 12287 alertBox.style.top = "20px"; 12288 alertBox.style.right = "-300px"; // Start off-screen 12289 alertBox.style.backgroundColor = "#000000"; // Black background 12290 alertBox.style.color = "#ffffff"; // White text 12291 alertBox.style.padding = "15px"; 12292 alertBox.style.borderRadius = "8px"; 12293 alertBox.style.zIndex = "1000"; 12294 alertBox.style.transition = 12295 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 12296 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 12297 12298 document.body.appendChild(alertBox); 12299 12300 // Slide in 12301 requestAnimationFrame(() => { 12302 alertBox.style.right = "20px"; // Move into view 12303 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 12304 }); 12305 12306 // Slide out and remove the alert after a few seconds 12307 setTimeout(() => { 12308 alertBox.style.opacity = "0"; // Fade out 12309 alertBox.style.right = "-300px"; // Move out of view 12310 12311 // Wait for the transition to finish before removing the element 12312 setTimeout(() => { 12313 document.body.removeChild(alertBox); 12314 }, 500); // Match this duration with the exit transition duration 12315 }, 3000); 12316 } 12317 </script>
12317 12318 12319 <style> 12320/* Container Utama dengan Efek Glassmorphism */ 12321.AGAM99-footer { 12322 display: flex; 12323 justify-content: space-around; 12324 align-items: center; 12325 position: fixed; 12326 bottom: 0; 12327 left: 0; 12328 right: 0; 12329 height: 70px; 12330 12331 background: rgba(32, 178, 170, 0.18); 12332 12333 backdrop-filter: blur(12px); 12334 -webkit-backdrop-filter: blur(12px); 12335 12336 border-top: 2px solid #20B2AA; 12337 12338 box-shadow: 12339 0 -5px 20px rgba(32, 178, 170, 0.45), 12340 0 0 35px rgba(32, 178, 170, 0.25); 12341 12342 z-index: 999; 12343 padding: 0 10px; 12344 border-radius: 20px 20px 0 0; 12345} 12346 12347/* LINK */ 12348.AGAM99-footer a { 12349 flex: 1; 12350 text-decoration: none; 12351 display: flex; 12352 flex-direction: column; 12353 align-items: center; 12354 justify-content: center; 12355 12356 color: #ffffff; 12357 12358 font-family: 'Segoe UI', Roboto, sans-serif; 12359 font-size: 11px; 12360 font-weight: 600; 12361 12362 transition: all 0.3s ease; 12363 12364 position: relative; 12365} 12366 12367/* ICON */ 12368.AGAM99-footer img { 12369 width: 28px; 12370 height: 28px; 12371 margin-bottom: 4px; 12372 12373 transition: 12374 transform 0.3s ease, 12375 filter 0.3s ease; 12376} 12377 12378/* HOVER */ 12379.AGAM99-footer a:hover img { 12380 12381 transform: translateY(-5px); 12382 12383 filter: 12384 drop-shadow(0 0 8px #20B2AA) 12385 drop-shadow(0 0 15px rgba(32, 178, 170, 0.8)); 12386} 12387 12388.AGAM99-footer a:hover { 12389 color: #7ffdf5; 12390} 12391 12392/* BUTTON TENGAH */ 12393.AGAM99-footer a.main-btn { 12394 transform: translateY(-15px); 12395} 12396 12397/* ICON BULAT */ 12398.AGAM99-footer a.main-btn .icon-bg { 12399 12400 background: 12401 linear-gradient( 12402 135deg, 12403 #20B2AA 0%, 12404 #2ecdc4 35%, 12405 #20B2AA 70%, 12406 #168f88 100% 12407 ); 12408 12409 padding: 12px; 12410 12411 border-radius: 50%; 12412 12413 box-shadow: 12414 0 5px 18px rgba(32, 178, 170, 0.6), 12415 0 0 30px rgba(32, 178, 170, 0.35); 12416 12417 display: flex;
12418 align-items: center; 12419 justify-content: center; 12420 12421 border: 3px solid rgba(255,255,255,0.15); 12422} 12423 12424/* ICON PUTIH */ 12425.AGAM99-footer a.main-btn img { 12426 width: 32px; 12427 height: 32px; 12428 margin-bottom: 0; 12429 12430 filter: brightness(0) invert(1); 12431} 12432 12433/* TEXT MAIN */ 12434.AGAM99-footer a.main-btn span { 12435 12436 margin-top: 8px; 12437 12438 color: #b8fffb; 12439 12440 text-shadow: 12441 0 2px 6px rgba(0,0,0,0.45); 12442} 12443 12444/* ANIMASI PULSE */ 12445@keyframes pulse-gold { 12446 12447 0% { 12448 box-shadow: 12449 0 0 0 0 rgba(32, 178, 170, 0.7); 12450 } 12451 12452 70% { 12453 box-shadow: 12454 0 0 0 16px rgba(32, 178, 170, 0); 12455 } 12456 12457 100% { 12458 box-shadow: 12459 0 0 0 0 rgba(32, 178, 170, 0); 12460 } 12461} 12462 12463.AGAM99-footer a.main-btn .icon-bg { 12464 animation: pulse-gold 2s infinite; 12465} 12466 12467/* LABEL */ 12468.AGAM99-footer a span { 12469 letter-spacing: 0.5px; 12470 text-transform: uppercase; 12471} 12472</style> 12473 12474 <div class="AGAM99-footer"> 12475 <a href="https://belajarpsikologi.com/portal/" rel="nofollow noopener" target="_blank"> 12476 <img src="https://belajarpsikologi.com/assets/img/favicon-agam99.png" alt="PROMOSI"> 12477 <span>Promo</span> 12478 </a> 12479 12480 <a href="https://belajarpsikologi.com/portal/" rel="nofollow noopener" target="_blank"> 12481 <img src="https://belajarpsikologi.com/assets/img/favicon-agam99.png" alt="LOGIN"> 12482 <span>Login</span> 12483 </a> 12484 12485 <a href="https://belajarpsikologi.com/portal/" rel="nofollow noopener" target="_blank" class="main-btn"> 12486 <div class="icon-bg"> 12487 <img src="https://belajarpsikologi.com/assets/img/favicon-agam99.png" alt="DAFTAR"> 12488 </div> 12489 <span>Daftar</span> 12490 </a> 12491 12492 <a href="https://belajarpsikologi.com/portal/" rel="nofollow noopener" target="_blank"> 12493 <img src="https://belajarpsikologi.com/assets/img/favicon-agam99.png" alt="ALTERNATIF"> 12494 <span>Link</span> 12495 </a> 12496 12497 <a href="https://belajarpsikologi.com/portal/" rel="nofollow noopener" target="_blank"> 12498 <img src="https://belajarpsikologi.com/assets/img/favicon-agam99.png" alt="LIVE CHAT"> 12499 <span>Chat</span> 12500 </a> 12501 </div> 12502 </div> 12503
12503<script defer 12504 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12505 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12506 data-cf-beacon='{"version":"2024.11.0","token":"1496c6c168314d5ba25fec5ffebcba92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12507 crossorigin="anonymous"></script>
12507 12508
12508<script defer 12509 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12510 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12511 data-cf-beacon='{"version":"2024.11.0","token":"35c0090c7d544a5ebd6cb76e1773c81a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12512 crossorigin="anonymous"></script>
12512 12513
12513<script defer 12514 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12515 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12516 data-cf-beacon='{"version":"2024.11.0","token":"1ee2ccbada1c4a408938a31140cbccef","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12517 crossorigin="anonymous"></script>
12517 12518
12518<script defer 12519 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12520 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12521 data-cf-beacon='{"version":"2024.11.0","token":"5f80b552d3d14bd6a988a79c643c3b0f","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12522 crossorigin="anonymous"></script>
12522 12523
12523<script defer 12524 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12525 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12526 data-cf-beacon='{"version":"2024.11.0","token":"bd4a1bdaab4c445d80d2d23ed1efd4a1","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12527 crossorigin="anonymous"></script>
12527 12528
12528<script defer 12529 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12530 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12531 data-cf-beacon='{"version":"2024.11.0","token":"edfb0824af1e46b399d8da29cbae45fe","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12532 crossorigin="anonymous"></script>
12532 12533
12533<script defer 12534 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12535 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12536 data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12537 crossorigin="anonymous"></script>
12537 12538
12538<script defer 12539 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12540 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12541 data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12542 crossorigin="anonymous"></script>
12542 12543
12543<script defer 12544 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12545 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12546 data-cf-beacon='{"version":"2024.11.0","token":"00ec4b968a6f46e6b9a3954d71b62338","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12547 crossorigin="anonymous"></script>
vendor: 2 bytes, line 12547
12547
12548<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"e9fa6ee7a956478c9260adc596ae5e3f","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12548
12548
12549<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"b3571c9c8e964a0b87f7410731d879d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12549
12549
12550<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"8a161c9d808046f597e555fcb331504c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12550
12550
12551<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"8a161c9d808046f597e555fcb331504c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12551
12551
12552<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"cd190fd1c31a404ba33bdc7cbac79ebf","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12552
12552
12553<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5146e2d0e8914e8e85dba4622f2ef3d5","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12553
12553
12554<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"d4d63fef5b6d483b975cec1494ee1eda","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12554
12554
12555<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"863c606ddc624572a8a866eaa8c4235a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12555
12555
12556<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"5845ac4f5a4446329bfc504af039cf5e","r":1,"spa":2}' crossorigin="anonymous"></script>
12556 12557</body> 12558 12559</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.