1 2<!-- Dimy was here ada dimy jangan lari --> 3<!doctype html> 4<html class="no-js"> 5 6<head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <meta name="rating" content="general" /> 12 <meta name="geo.region" content="id_ID" /> 13 <meta name="geo.country" content="id" /> 14 <meta name="language" content="Id-ID" /> 15 <meta name="distribution" content="global" /> 16 <meta name="geo.placename" content="Indonesia" /> 17 <meta name="author" content="SARANAJITU" /> 18 <meta name="publisher" content="SARANAJITU" /> 19 <meta property="og:type" content="website" /> 20 <meta property="og:locale" content="id_ID" /> 21 <meta property="og:locale:alternate" content="en_ID" /> 22 <link rel="icon" type="image/x-icon" 23 href="https://i.gyazo.com/bb22121e4023539ea5e7f043cb6d60e3.png"> 24 <!-- Title and description --> 25 <title>SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia</title> 26 <meta name="description" 27 content="Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif."> 28 <meta name="keywords" 29 content="SARANAJITU, login SARANAJITU, situs toto togel, toto online, togel online, prediksi bandar macau, bandar macau verified, link alternatif SARANAJITU, situs togel terpercaya, pasaran macau, prediksi togel hari ini, togel 4D, bandar toto online, login toto online, togel macau terpercaya, situs prediksi togel, result macau, togel modern, agen toto online, togel terpercaya"> 30 <link rel="canonical" href="https://www.overgossip.com/"> 31 <link rel="amphtml" href="https://overgossip.b-cdn.net/index.html" /> 32 <!-- /snippets/social-meta-tags.liquid --> 33 <link rel="alternate" hreflang="id-id" href="https://overgossip.b-cdn.net/index.html" /> 34 <link rel="alternate" href="https://overgossip.b-cdn.net/index.html" /> 35 <link rel="alternate" hreflang="id" href="https://overgossip.b-cdn.net/index.html" /> 36 <link rel="alternate" hreflang="en" href="https://overgossip.b-cdn.net/index.html" /> 37 <meta property="og:type" content="SARANAJITU"> 38 <meta property="og:title" 39 content="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia"> 40 <meta property="og:image" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 41 <meta property="og:image:secure_url" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 42 <meta property="og:image" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 43 <meta property="og:image:secure_url" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 44 <meta property="og:image" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 45 <meta property="og:image:secure_url" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 46 <meta property="og:description" 47 content="Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif."> 48 <meta property="og:price:amount" content="5,000-,"> 49 <meta property="og:price:currency" content="IDR"> 50 <meta property="og:url" content="https://www.overgossip.com/"> 51 <meta property="og:site_name" content="SARANAJITU"> 52 <meta name="twitter:site" content="@SARANAJITU"> 53 <meta name="twitter:card" content="summary"> 54 <meta name="twitter:title" 55 content="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia"> 56 <meta name="twitter:description" 57 content="Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif."> 58 <meta name="twitter:image" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 59 <meta name="twitter:image:width" content="600"> 60 <meta name="twitter:image:height" content="600"> 61 <link rel="shortcut icon" href="https://i.gyazo.com/bb22121e4023539ea5e7f043cb6d60e3.png" 62 type="image/png"> 63 <meta name="theme-color" content="#212121"> 64 <style type="text/css"> 65 @font-face { 66 font-family: Source Sans Pro; 67 font-style: normal; 68 font-weight: 300; 69 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek-ext/300/normal.woff2); 70 unicode-range: U+1F00-1FFF; 71 font-display: swap; 72 } 73 74 @font-face { 75 font-family: Source Sans Pro; 76 font-style: normal; 77 font-weight: 300; 78 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic-ext/300/normal.woff2); 79 unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 80 font-display: swap; 81 } 82 83 @font-face { 84 font-family: Source Sans Pro; 85 font-style: normal; 86 font-weight: 300; 87 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin/300/normal.woff2); 88 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 89 font-display: swap; 90 } 91 92 @font-face { 93 font-family: Source Sans Pro; 94 font-style: normal; 95 font-weight: 300; 96 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic/300/normal.woff2); 97 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 98 font-display: swap; 99 } 100 101 @font-face { 102 font-family: Source Sans Pro; 103 font-style: normal; 104 font-weight: 300; 105 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek/300/normal.woff2); 106 unicode-range: U+0370-03FF; 107 font-display: swap; 108 } 109 110 @font-face { 111 font-family: Source Sans Pro; 112 font-style: normal; 113 font-weight: 300; 114 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin-ext/300/normal.woff2); 115 unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 116 font-display: swap; 117 } 118 119 @font-face { 120 font-family: Source Sans Pro; 121 font-style: normal; 122 font-weight: 300; 123 src: url(/cf-fonts/s/source-sans-pro/5.0.11/vietnamese/300/normal.woff2); 124 unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 125 font-display: swap; 126 } 127 128 @font-face { 129 font-family: Source Sans Pro; 130 font-style: normal; 131 font-weight: 400; 132 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic/400/normal.woff2); 133 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 134 font-display: swap; 135 } 136 137 @font-face { 138 font-family: Source Sans Pro; 139 font-style: normal; 140 font-weight: 400; 141 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek/400/normal.woff2); 142 unicode-range: U+0370-03FF; 143 font-display: swap; 144 } 145 146 @font-face { 147 font-family: Source Sans Pro; 148 font-style: normal; 149 font-weight: 400; 150 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic-ext/400/normal.woff2); 151 unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 152 font-display: swap; 153 } 154 155 @font-face { 156 font-family: Source Sans Pro; 157 font-style: normal; 158 font-weight: 400; 159 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek-ext/400/normal.woff2); 160 unicode-range: U+1F00-1FFF; 161 font-display: swap; 162 } 163 164 @font-face { 165 font-family: Source Sans Pro; 166 font-style: normal; 167 font-weight: 400; 168 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin-ext/400/normal.woff2); 169 unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 170 font-display: swap; 171 } 172 173 @font-face { 174 font-family: Source Sans Pro; 175 font-style: normal; 176 font-weight: 400; 177 src: url(/cf-fonts/s/source-sans-pro/5.0.11/vietnamese/400/normal.woff2); 178 unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 179 font-display: swap; 180 } 181 182 @font-face { 183 font-family: Source Sans Pro; 184 font-style: normal; 185 font-weight: 400; 186 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin/400/normal.woff2); 187 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 188 font-display: swap; 189 } 190 191 @font-face { 192 font-family: Source Sans Pro; 193 font-style: normal; 194 font-weight: 600; 195 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin-ext/600/normal.woff2); 196 unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 197 font-display: swap; 198 } 199 200 @font-face { 201 font-family: Source Sans Pro; 202 font-style: normal; 203 font-weight: 600; 204 src: url(/cf-fonts/s/source-sans-pro/5.0.11/vietnamese/600/normal.woff2); 205 unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 206 font-display: swap; 207 } 208 209 @font-face { 210 font-family: Source Sans Pro; 211 font-style: normal; 212 font-weight: 600; 213 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic-ext/600/normal.woff2); 214 unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 215 font-display: swap; 216 } 217 218 @font-face { 219 font-family: Source Sans Pro; 220 font-style: normal; 221 font-weight: 600; 222 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek/600/normal.woff2); 223 unicode-range: U+0370-03FF; 224 font-display: swap; 225 } 226 227 @font-face { 228 font-family: Source Sans Pro; 229 font-style: normal; 230 font-weight: 600; 231 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek-ext/600/normal.woff2); 232 unicode-range: U+1F00-1FFF; 233 font-display: swap; 234 } 235 236 @font-face { 237 font-family: Source Sans Pro; 238 font-style: normal; 239 font-weight: 600; 240 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic/600/normal.woff2); 241 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 242 font-display: swap; 243 } 244 245 @font-face { 246 font-family: Source Sans Pro; 247 font-style: normal; 248 font-weight: 600; 249 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin/600/normal.woff2); 250 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 251 font-display: swap; 252 } 253 254 @font-face { 255 font-family: Source Sans Pro; 256 font-style: normal; 257 font-weight: 700; 258 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin/700/normal.woff2); 259 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 260 font-display: swap; 261 } 262 263 @font-face { 264 font-family: Source Sans Pro; 265 font-style: normal; 266 font-weight: 700; 267 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek-ext/700/normal.woff2); 268 unicode-range: U+1F00-1FFF; 269 font-display: swap; 270 } 271 272 @font-face { 273 font-family: Source Sans Pro; 274 font-style: normal; 275 font-weight: 700; 276 src: url(/cf-fonts/s/source-sans-pro/5.0.11/vietnamese/700/normal.woff2); 277 unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 278 font-display: swap; 279 } 280 281 @font-face { 282 font-family: Source Sans Pro; 283 font-style: normal; 284 font-weight: 700; 285 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic-ext/700/normal.woff2); 286 unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 287 font-display: swap; 288 } 289 290 @font-face { 291 font-family: Source Sans Pro; 292 font-style: normal; 293 font-weight: 700; 294 src: url(/cf-fonts/s/source-sans-pro/5.0.11/latin-ext/700/normal.woff2); 295 unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 296 font-display: swap; 297 } 298 299 @font-face { 300 font-family: Source Sans Pro; 301 font-style: normal; 302 font-weight: 700; 303 src: url(/cf-fonts/s/source-sans-pro/5.0.11/cyrillic/700/normal.woff2); 304 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 305 font-display: swap; 306 } 307 308 @font-face { 309 font-family: Source Sans Pro; 310 font-style: normal; 311 font-weight: 700; 312 src: url(/cf-fonts/s/source-sans-pro/5.0.11/greek/700/normal.woff2); 313 unicode-range: U+0370-03FF; 314 font-display: swap; 315 } 316 </style> 317 <link href="https://outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" 318 rel="stylesheet" type="text/css" media="all" /> 319 <link rel="stylesheet" 320 href="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201"> 321
321<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer 322 type="text/javascript"></script>
322 323
323<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 324 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 325 crossorigin="anonymous" referrerpolicy="no-referrer" defer type="text/javascript"></script>
325 326
326<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async" 327 type="text/javascript"></script>
327 328
328<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer 329 type="text/javascript"></script>
329<!-- Facebook Pixel Code --> 330
330<script type="text/javascript">
vendor: 607 bytes, lines 330-342
330 331 !function (f, b, e, v, n, t, s) { 332 if (f.fbq) return; n = f.fbq = function () { 333 n.callMethod ? 334 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 335 }; 336 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 337 n.queue = []; t = b.createElement(e); t.async = !0; 338 t.src = v; s = b.getElementsByTagName(e)[0]; 339 s.parentNode.insertBefore(t, s) 340 }(window, document, 'script', 341 'https://connect.facebook.net/en_US/fbevents.js'); 342 fbq('init', '
342718640257950371
vendor: 44 bytes, lines 342-344
342'); 343 fbq('track', 'PageView'); 344
344</script>
344 345 <noscript><img height="1" width="1" style="display:none" 346 src="https://www.facebook.com/tr?id=718640257950371&ev=PageView&noscript=1"></noscript> 347 <!-- End Facebook Pixel Code --> 348 349 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 350 <!-- 351 Global site tag (gtag.js) - Google Analytics --
vendor: 75 bytes, lines 351-352
351 352 <script async src="https://www.googletagmanager.com/gtag/js?id=
352G-X26HYP4083
vendor: 23 bytes, lines 352-353
352"></script> 353
353<script> 354
vendor: 170 bytes, lines 354-358
354window.dataLayer = window.dataLayer || []; 355 function gtag(){dataLayer.push(arguments);} 356 gtag('js', new Date()); 357 358 gtag('config', '
358G-X26HYP4083
vendor: 15 bytes, lines 358-359
358'); 359
359</script>
359 360 <!-- Global site tag (gtag.js) - Google Analytics 361 --> 362 363 <div class="button-login-daftar"> 364 <a class="login" href="https://overgossip.b-cdn.net/index.html" rel="nofollow noreferrer" style="color: white;"> 365 LOGIN 366 </a> 367 <a class="register" href="https://overgossip.b-cdn.net/index.html" rel="nofollow noreferrer" style="color: white;"> 368 DAFTAR 369 </a> 370 </div> 371 372
372<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer type="text/javascript"></script>
372 373 374 <!-- Bing UET --> 375
375<script type="text/javascript"> 376 (function (w, d, t, r, u) { 377 var f, n, i; 378 w[u] = w[u] || [], f = function () { 379 var o = { ti: "343051754", tm: "shpfy_ui", enableAutoSpaTracking: true }; 380 o.q = w[u], w[u] = new UET(o), w[u].push("pageLoad") 381 }, 382 n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function () { 383 var s = this.readyState; 384 s && s !== "loaded" && s !== "complete" || (f(), n.onload = n.onreadystatechange = null) 385 }, 386 i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i) 387 }) 388 (window, document, "script", "//bat.bing.com/bat.js", "uetq"); 389 </script>
389 390
390<script type="text/javascript"> 391 window.uetq = window.uetq || []; 392 window.uetq.push('event', '', { "revenue_value": 0, "currency": "IDR" }); 393 </script>
393 394 <!-- End Bing UET --> 395 396 <!-- Microsoft Clarity --> 397
397<script type="text/javascript"> 398 (function (c, l, a, r, i, t, y) { 399 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }; 400 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i; 401 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 402 })(window, document, "clarity", "script", "h7rbxqry9k"); 403 </script>
403 404 <!-- End Microsoft Clarity --> 405 406 407 <link href="https://outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" 408 rel="stylesheet" type="text/css" media="all" /> 409 410 <link href="https://outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" 411 rel="stylesheet" type="text/css" media="all" /> 412 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 413 414
414<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" 415 crossorigin="anonymous" type="text/javascript"></script>
415 416
416<script src="https://outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" 417 type="text/javascript"></script>
417 418
418<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js" type="text/javascript"></script>
418 419
419<script 420 type="text/javascript">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
420 421 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 422 <link rel="alternate" type="application/json+oembed" href="https://www.overgossip.com/.oembed"> 423
423<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID" type="text/javascript"></script>
423 424
424<script id="shopify-features" 425 type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
425 426
426<script type="text/javascript">var Shopify = Shopify || {}; 427 Shopify.shop = "outerbloom1.myshopify.com"; 428 Shopify.locale = "en"; 429 Shopify.currency = { "active": "IDR", "rate": "1.0" }; 430 Shopify.country = "ID"; 431 Shopify.theme = { "name": "web-outerbloom-shopify\/main", "id": 153139282135, "schema_name": null, "schema_version": null, "theme_store_id": null, "role": "main" }; 432 Shopify.theme.handle = "null"; 433 Shopify.theme.style = { "id": null, "handle": null }; 434 Shopify.cdnHost = "outerbloom.com/cdn"; 435 Shopify.routes = Shopify.routes || {}; 436 Shopify.routes.root = "/";</script>
436 437
437<script type="module">!function (o) { (o.Shopify = o.Shopify || {}).modules = !0 }(window);</script>
437 438
438<script 439 type="text/javascript">!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>
439 440
440<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
440 441
441<script defer="defer" async="async" src="https://outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 442" type="text/javascript"></script>
442 443
443<script type="text/javascript">(function () { 444 var isLoaded = false; 445 function asyncLoad() { 446 if (isLoaded) return; 447 isLoaded = true; 448 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"]; 449 for (var i = 0; i < urls.length; i++) { 450 var s = document.createElement('script'); 451 s.type = 'text/javascript'; 452 s.async = true; 453 s.src = urls[i]; 454 var x = document.getElementsByTagName('script')[0]; 455 x.parentNode.insertBefore(s, x); 456 } 457 }; 458 if (window.attachEvent) { 459 window.attachEvent('onload', asyncLoad); 460 } else { 461 window.addEventListener('load', asyncLoad, false); 462 } 463 })();</script>
463 464
464<script id="__st" 465 type="text/javascript">var __st = { "a": 15896833, "offset": 25200, "reqid": "78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675", "pageurl": "outerbloom.com\/products\/blossom-shine", "u": "381e6a1da038", "p": "product", "rtyp": "product", "rid": 8144957800663 };</script>
465 466
466<script type="text/javascript">window.ShopifyPaypalV4VisibilityTracking = true;</script>
466 467 468
468<script id="captcha-bootstrap" 469 type="text/javascript">!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
469] = 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>
469 470 471 472 473 474
474<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" 475 data-source-attribution="shopify.loadfeatures" defer="defer" 476 src="https://outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" 477 crossorigin="anonymous" type="text/javascript"></script>
477 478
478<script data-source-attribution="shopify.dynamic_checkout.dynamic.init" type="text/javascript">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) } }; 479 </script>
479 480
480<script data-source-attribution="shopify.dynamic_checkout.buyer_consent" type="text/javascript"> 481 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); 482 </script>
482 483
483<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap" type="text/javascript">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 }) } })); 484 </script>
484 485 486
486<script 487 type="text/javascript">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
487 488 <!-- /snippets/oldIE-js.liquid --> 489 490 491 <!--[if lt IE 9]>
492<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
vendor: 2 bytes, line 492
492
493<script src="https://outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
493 494<link href="https://outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 495<link href="https://outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
496<script src="https://outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
496 497<![endif]--> 498 499 500 501 502 503 <link 504 href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" 505 rel="stylesheet" type="text/css" media="all"> 506 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 507
507<script 508 type="text/javascript">(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>
508 509
509<script id="web-pixels-manager-setup" 510 type="text/javascript">(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);
510 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": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "vendor": "Outerbloom Florist", "id": "8144957800663", "untranslatedTitle": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "url": "\/products\/blossom-shine", "type": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif." }, "id": "44083045826775", "image": { "src": "\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426" }, "sku": "OBVSTF6810", "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\":\"SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"}
510,\"sku\":\"OBVSTF6810\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]" });</script>
510 511
511<script type="text/javascript"> 512 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 513 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 514 window.ShopifyAnalytics.meta.currency = 'IDR'; 515 var meta = { 516 "product": { 517 "id": 8144957800663, "gid": "gid:\/\/shopify\/Product\/8144957800663", "vendor": "Outerbloom Florist", "type": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", "variants": [{ 518 "id": 44083045826775, "price": 1000000 519 , "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "public_title": null, "sku": "OBVSTF6810" 520 }], "remote": false 521 }, "page": { "pageType": "product", "resourceType": "product", "resourceId": 8144957800663 } 522 }; 523 for (var attr in meta) { 524 window.ShopifyAnalytics.meta[attr] = meta[attr]; 525 } 526 </script>
526 527
527<script class="analytics" type="text/javascript"> 528 (function () { 529 var customDocumentWrite = function (content) { 530 var jquery = null; 531 532 if (window.jQuery) { 533 jquery = window.jQuery; 534 } else if (window.Checkout && window.Checkout.$) { 535 jquery = window.Checkout.$; 536 } 537 538 if (jquery) { 539 jquery('body').append(content); 540 } 541 }; 542 543 var hasLoggedConversion = function (token) { 544 if (token) { 545 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 546 } 547 return false; 548 } 549 550 var setCookieIfConversion = function (token) { 551 if (token) { 552 var twoMonthsFromNow = new Date(Date.now()); 553 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 554 555 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 556 } 557 } 558 559 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 560 if (trekkie.integrations) { 561 return; 562 } 563 trekkie.methods = [ 564 'identify', 565 'page', 566 'ready', 567 'track', 568 'trackForm', 569 'trackLink' 570 ]; 571 trekkie.factory = function (method) { 572 return function () { 573 var args = Array.prototype.slice.call(arguments); 574 args.unshift(method); 575 trekkie.push(args); 576 return trekkie; 577 }; 578 }; 579 for (var i = 0; i < trekkie.methods.length; i++) { 580 var key = trekkie.methods[i]; 581 trekkie[key] = trekkie.factory(key); 582 } 583 trekkie.load = function (config) { 584 trekkie.config = config || {}; 585 trekkie.config.initialDocumentCookie = document.cookie; 586 var first = document.getElementsByTagName('script')[0]; 587 var script = document.createElement('script'); 588 script.type = 'text/javascript'; 589 script.onerror = function (e) { 590 var scriptFallback = document.createElement('script'); 591 scriptFallback.type = 'text/javascript'; 592 scriptFallback.onerror = function (error) { 593 var Monorail = { 594 produce: function produce(monorailDomain, schemaId, payload) { 595 var currentMs = new Date().getTime(); 596 var event = { 597 schema_id: schemaId, 598 payload: payload, 599 metadata: { 600 event_created_at_ms: currentMs, 601 event_sent_at_ms: currentMs 602 } 603 }; 604 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 605 }, 606 sendRequest: function sendRequest(endpointUrl, payload) { 607 // Try the sendBeacon API 608 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 609 var blobData = new window.Blob([payload], { 610 type: 'text/plain' 611 }); 612 613 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 614 return true; 615 } // sendBeacon was not successful 616 617 } // XHR beacon 618 619 var xhr = new XMLHttpRequest(); 620 621 try { 622 xhr.open('POST', endpointUrl); 623 xhr.setRequestHeader('Content-Type', 'text/plain'); 624 xhr.send(payload); 625 } catch (e) { 626 console.log(e); 627 } 628 629 return false; 630 }, 631 isIos12: function isIos12() { 632 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 633 } 634 }; 635 Monorail.produce('monorail-edge.shopifysvc.com', 636 'trekkie_storefront_load_errors/1.1', 637 { 638 shop_id: 15896833, 639 theme_id: 153139282135, 640 app_name: "storefront", 641 context_url: window.location.href, 642 source_url: "https://outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js" 643 }); 644 645 }; 646 scriptFallback.async = true; 647 scriptFallback.src = 'https://outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 648 first.parentNode.insertBefore(scriptFallback, first); 649 }; 650 script.async = true; 651 script.src = 'https://outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 652 first.parentNode.insertBefore(script, first); 653 }; 654 trekkie.load( 655 { "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 } } 656 ); 657 658 var loaded = false; 659 trekkie.ready(function () { 660 if (loaded) return; 661 loaded = true; 662 663 window.ShopifyAnalytics.lib = window.trekkie; 664 665 var originalDocumentWrite = document.write; 666 document.write = customDocumentWrite; 667 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch (error) { }; 668 document.write = originalDocumentWrite; 669 670 window.ShopifyAnalytics.lib.page(null, { "pageType": "product", "resourceType": "product", "resourceId": 8144957800663, "shopifyEmitted": true });
671 672 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 673 var token = match ? match[1] : undefined; 674 if (!hasLoggedConversion(token)) { 675 setCookieIfConversion(token); 676 window.ShopifyAnalytics.lib.track("Viewed Product", { "currency": "IDR", "variantId": 44083045826775, "productId": 8144957800663, "productGid": "gid:\/\/shopify\/Product\/8144957800663", "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "price": "835000.00", "sku": "OBVSTF6810", "brand": "Outerbloom Florist", "variant": null, "category": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", "nonInteraction": true, "remote": false }, undefined, undefined, { "shopifyEmitted": true }); 677 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1", { "currency": "IDR", "variantId": 44083045826775, "productId": 8144957800663, "productGid": "gid:\/\/shopify\/Product\/8144957800663", "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "price": "835000.00", "sku": "OBVSTF6810", "brand": "Outerbloom Florist", "variant": null, "category": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", "nonInteraction": true, "remote": false, "referer": "https:\/\/outerbloom.com\/products\/blossom-shine" }); 678 } 679 }); 680 681 682 var eventsListenerScript = document.createElement('script'); 683 eventsListenerScript.async = true; 684 eventsListenerScript.src = "https://outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 685 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 686 687 })();</script>
687 688
688<script type="text/javascript"> 689 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 690 window.ga = function ga() { 691 (window.ga.q = window.ga.q || []).push(arguments); 692 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 693 window.Shopify.analytics.publish("ga_stub_called", {}, { sendTo: "google_osp_migration" }); 694 } 695 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."); 696 }; 697 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 698 window.Shopify.analytics.publish("ga_stub_initialized", {}, { sendTo: "google_osp_migration" }); 699 } 700 } 701 </script>
701 702
702<script defer src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 703 data-application="storefront-renderer" data-shop-id="15896833" data-render-region="gcp-asia-southeast1" 704 data-page-type="product" data-theme-instance-id="153139282135" data-theme-name="" data-theme-version="" 705 data-monorail-region="shop_domain" data-resource-timing-sampling-rate="10" data-shs="true" 706 data-shs-beacon="true" data-shs-export-with-fetch="true" data-shs-logs-sample-rate="1" 707 type="text/javascript"></script>
707 708</head> 709 710<body data-template="product" id="blossom-shine" class="template-product template-product"> 711 <!-- Google Tag Manager (noscript) -->
vendor: 73 bytes, lines 711-712
711 712 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
712GTM-MF9VVZX
vendor: 101 bytes, lines 712-714
712" height="0" width="0" 713 style="display:none;visibility:hidden"></iframe></noscript> 714
714<!-- End Google Tag Manager (noscript) --> 715 716 717 718 <div class="header-wrapper"> 719 720 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 721 722 <style> 723 #notification { 724 z-index: 99; 725 width: 100%; 726 transition: top 0.2s ease-in-out; 727 } 728 729 #notification.promo-up { 730 top: -48px !important; 731 } 732 733 .promo-bg { 734 width: 100%; 735 padding: 6px 0; 736 737 background: linear-gradient(to bottom, 738 #000000 0%, 739 #8b0000 20%, 740 #ff0000 50%, 741 #8b0000 80%, 742 #000000 100%); 743 744 border-top: 1px solid #ff0000; 745 border-bottom: 1px solid #ff0000; 746 747 box-shadow: 748 0 0 15px rgba(255, 0, 0, .8), 749 0 0 30px rgba(255, 0, 0, .6), 750 0 0 50px rgba(255, 50, 50, .4); 751 752 position: relative; 753 overflow: hidden; 754 } 755 756 /* Efek kaca kiri ke kanan */ 757 .promo-bg::before { 758 content: ""; 759 position: absolute; 760 top: 0; 761 left: -120%; 762 width: 40%; 763 height: 100%; 764 765 background: linear-gradient(90deg, 766 transparent, 767 rgba(255, 255, 255, .35), 768 transparent); 769 770 transform: skewX(-25deg); 771 animation: promoGlass 2.5s linear infinite; 772 } 773 774 /* Glow hidup */ 775 .promo-bg { 776 animation: promoGlow 2s ease-in-out infinite; 777 } 778 779 @keyframes promoGlass { 780 100% { 781 left: 150%; 782 } 783 } 784 785 @keyframes promoGlow { 786 787 0%, 788 100% { 789 box-shadow: 790 0 0 15px rgba(255, 0, 0, .8), 791 0 0 30px rgba(255, 0, 0, .6), 792 0 0 50px rgba(255, 0, 0, .4); 793 } 794 795 50% { 796 box-shadow: 797 0 0 25px rgba(255, 50, 50, 1), 798 0 0 45px rgba(255, 50, 50, .9), 799 0 0 70px rgba(255, 50, 50, .7); 800 } 801 } 802 803 .notification__message p { 804 margin: 0; 805 color: #000000; 806 font-size: 14px !important; 807 } 808 809 .notification__message p a { 810 text-decoration: underline; 811 color: #ffffff; 812 } 813 814 @media (max-width: 991px) { 815 .notification__message p { 816 font-size: 14px !important; 817 } 818 } 819 </style> 820 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 821 <div id="notification" class="promo-down promo-bg pl-2 pr-2" 822 data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 823 <div class="page-width notification__inner "> 824 825 826 <div class="notification__message text-center"> 827 <p><a href="https://www.overgossip.com/" title="SARANAJITU">SARANAJITU - Link Login & Daftar 828 Game Petualangan Digital No Satu</a></p> 829 </div> 830 </div> 831 </div> 832 833 834 835 836 </div> 837 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"> 838 <link href="https://outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" 839 rel="stylesheet" type="text/css" media="all" /> 840 841 842 <header style="background: radial-gradient(circle, 843#000000 25%, 844#220000 50%, 845#660000 75%, 846#ff0000 100%); 847border-bottom:1px solid #ff0000; 848box-shadow:0 0 20px rgba(255,0,0,.7); 849"> 850 <div class="container"> 851 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 852 <a href="https://www.overgossip.com/"> 853 <img src="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 854 alt="log-SARANAJITU" style="width: 190px;"></a> 855 <link href="https://i.gyazo.com/bb22121e4023539ea5e7f043cb6d60e3.png" 856 rel="shortcut icon" type="image/x-icon" /> 857 <div id="menu-hamburger" class="d-lg-none"> 858 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"
859 width="16" height="10" viewBox="0 0 16 10" fill="none"> 860 <path 861 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" 862 fill="#212121" /> 863 </svg> 864 865 <a href="/"><svg 866 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"
867 viewBox="0 0 854 78.29"> 868 <g id="Layer_2" data-name="Layer 2"> 869 <g id="Layer_1-2" data-name="Layer 1"> 870 <path 871 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"> 872 </path> 873 <path 874 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"> 875 </path> 876 <path 877 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"> 878 </path> 879 <path 880 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"> 881 </path> 882 <path 883 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"> 884 </path> 885 <path 886 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"> 887 </path> 888 <path 889 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"> 890 </path> 891 <path 892 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"> 893 </path> 894 <path 895 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"> 896 </path> 897 <path 898 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"> 899 </path> 900 </g> 901 </g> 902 </svg> 903 </a> 904 </div> 905 906 <div class="header-icon-right header-icons col-3"> 907 <div class="icon icon-account-header d-none d-lg-block"> 908 <a href="https://www.overgossip.com/"> 909 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 910 width="20" height="21" viewBox="0 0 20 21" fill="none"> 911 <path 912 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" 913 stroke="#212121" stroke-linecap="round" /> 914 <path 915 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" 916 stroke="#212121" stroke-linecap="round" /> 917 </svg> 918 919 </a> 920 </div> 921 <div class="icon icon-wishlist-header"> 922 <a href="https://www.overgossip.com/"> 923 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 924 width="24" height="21" viewBox="0 0 24 21" fill="none"> 925 <path 926 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
9266 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" 927 fill="#212121" /> 928 </svg> 929 930 <span class="wishlist-count d-none">0</span> 931 </a> 932 </div> 933 <div class="icon icon-cart-header"> 934 <a href="https://www.overgossip.com/"> 935 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 936 width="22" height="21" viewBox="0 0 22 21" fill="none"> 937 <path 938 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" 939 stroke="#212121" stroke-linecap="round" /> 940 <path 941 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" 942 stroke="#212121" /> 943 </svg> 944 945 </a> 946 </div> 947 </div> 948 </div> 949 </div> 950 </header> 951 952 <nav class="nav-header" style=" 953background: 954linear-gradient( 955180deg, 956#000000 0%, 957#1a0000 15%, 958#ff0000 50%, 959#1a0000 85%, 960#000000 100% 961); 962 963border-top:1px solid #ff4444; 964border-bottom:1px solid #ff4444; 965 966box-shadow: 9670 0 15px #ff0000, 9680 0 30px #ff0000, 9690 0 60px rgba(255,0,0,.8); 970 971"> 972 <div class="nav-account-mobile row m-0 d-lg-none"> 973 <div class="col-6 welcome-cust p-0"> 974 975 <h1 class="logo"> 976 <a href="https://www.overgossip.com/"> 977 <img src="https://kilat.digital/images/2025/10/25/1c08f83fd38feb25f75bc498de72be69.gif" 978 alt="SARANAJITU" style="max-height:60px;"> 979 </a> 980 </h1> 981 982 983 </div> 984 985 <div class="col-6 login-register text-right p-0"> 986 <a href="https://overgossip.b-cdn.net/index.html">Log In</a> | <a 987 href="https://overgossip.b-cdn.net/index.html">Sign 988 Up</a> 989 </div> 990 </div> 991 <ul class="nav-menu container"> 992 993 <li class="nav-menu container"> 994 <a href="https://www.overgossip.com/"> 995 <span style="color: #ffffff;">SARANAJITU</span> 996 997 998 <li class=" nav-menu container"> 999 <a href="https://www.overgossip.com/">
1000 <span style="color: #ffffff;">SITUS TOTO</span> 1001 1002 1003 <li class=" nav-menu container"> 1004 <a href="https://www.overgossip.com/"> 1005 <span style="color: #ffffff;">TOTO TOGEL</span> 1006 1007 <li class=" nav-menu container"> 1008 <a href="https://www.overgossip.com/"> 1009 <span style="color: #ffffff;">SARANAJITU LOGIN</span> 1010 1011 <li class=" nav-menu container"> 1012 <a href="https://www.overgossip.com/"> 1013 <span style="color: #ffffff;">LINK ALTERNATIF SARANAJITU</span> 1014 1015 <li class=" nav-menu container"> 1016 <a href="https://www.overgossip.com/"> 1017 <span style="color: #ffffff;">PREDIKSI MACAU</span> 1018 1019 <div class="overlay-nav"> 1020 <!-- Mobile Close Button in Overlay --> 1021 <button id="nav-close" class="nav-close-btn d-lg-none"> 1022 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 1023 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 1024 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" 1025 stroke-linecap="round" stroke-linejoin="round" /> 1026 </svg> 1027 </button> 1028 </div> 1029 1030
1030<script type="text/javascript"> 1031 if ($(window).width() < 992) { 1032 // Level 1 menu accordion (main menu items) 1033 $(".nav-menu .nav-menu container > a").click(function (e) { 1034 e.preventDefault() 1035 const parentLi = $(this).parent() 1036 const isCurrentlyOpen = parentLi.hasClass("menu-open") 1037 1038 // Close all other open menus (accordion behavior) 1039 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 1040 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 1041 1042 // Toggle current menu 1043 if (isCurrentlyOpen) { 1044 parentLi.removeClass("menu-open") 1045 $(this).next(".megamenu").slideUp() 1046 } else { 1047 parentLi.addClass("menu-open") 1048 $(this).next(".megamenu").slideDown() 1049 } 1050 }) 1051 1052 // Level 2 menu accordion (submenu items with grandchildren) 1053 $(document).on('click', '.dropdown-menu .has-submenu > a', function (e) { 1054 e.preventDefault() 1055 const parentLi = $(this).parent() 1056 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 1057 const grandchild = $(this).next(".grandchild") 1058 1059 // Close all other open submenus in the same dropdown (accordion behavior) 1060 parentLi.siblings('.has-submenu').removeClass("submenu-open") 1061 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 1062 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 1063 1064 // Toggle current submenu 1065 if (isCurrentlyOpen) { 1066 parentLi.removeClass("submenu-open") 1067 grandchild.slideUp() 1068 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 1069 } else { 1070 parentLi.addClass("submenu-open") 1071 grandchild.slideDown() 1072 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 1073 } 1074 }) 1075 1076 $("#menu-hamburger").click(function (e) { 1077 e.preventDefault() 1078 $("body").toggleClass("nav_open") 1079 }) 1080 1081 // Handle close button click 1082 $("#nav-close").click(function (e) { 1083 e.preventDefault() 1084 $("body").removeClass("nav_open") 1085 // Close all open menus when close button is clicked 1086 $(".nav-menu .nav-menu container").removeClass("menu-open") 1087 $(".nav-menu .megamenu").slideUp() 1088 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 1089 $(".dropdown-menu .grandchild").slide
1089Up() 1090 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 1091 }) 1092 } 1093 1094 $(".overlay-nav").click(function (e) { 1095 e.preventDefault() 1096 $("body").removeClass("nav_open") 1097 // Close all open menus when overlay is clicked 1098 $(".nav-menu .nav-menu container").removeClass("menu-open") 1099 $(".nav-menu .megamenu").slideUp() 1100 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 1101 $(".dropdown-menu .grandchild").slideUp() 1102 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 1103 }) 1104 </script>
1104 1105 1106 1107 </div> 1108 1109 <div id="shopify-section-search-popup" class="shopify-section m-0"> 1110 <style> 1111 #search-trigger { 1112 cursor: pointer; 1113 } 1114 1115 #search-popup { 1116 display: none; 1117 position: fixed; 1118 left: 0; 1119 width: 100%; 1120 top: 0; 1121 height: 100%; 1122 justify-content: center; 1123 z-index: 9999; 1124 background: rgb(196 196 196 / 30%); 1125 } 1126 1127 #search-input { 1128 align-self: center; 1129 width: 100%; 1130 height: 80px; 1131 position: absolute; 1132 top: 0; 1133 border-bottom: 0.5px solid #A3A3A3; 1134 background-color: #fff; 1135 } 1136 1137 #search-input * { 1138 align-self: center; 1139 } 1140 1141 #search-type { 1142 width: 100%; 1143 border: none; 1144 padding-right: 20px; 1145 padding-left: 20px; 1146 font-size: 16px; 1147 color: #757575; 1148 } 1149 1150 #search-btn { 1151 font-size: 16px; 1152 font-weight: 500; 1153 } 1154 1155 #search-result { 1156 min-height: 490px; 1157 width: 100%; 1158 padding-top: 80px; 1159 } 1160 1161 #search-result .container { 1162 background-color: #fff; 1163 padding: 20px 40px; 1164 } 1165 1166 body.search-popup-open { 1167 /* .search-popup-open */ 1168 overflow: hidden; 1169 } 1170 1171 .search-popup-open #loc_delivery { 1172 display: none 1173 } 1174 1175 .search-header svg { 1176 display: none; 1177 cursor: pointer; 1178 } 1179 1180 .wrapper-search-popup { 1181 max-height: calc(100vh - 150px); 1182 overflow-y: auto; 1183 overflow-x: hidden; 1184 } 1185 1186 .group-recommend { 1187 padding: 20px 40px; 1188 } 1189 1190 .resultsearch { 1191 display: none; 1192 } 1193 1194 .results { 1195 padding: 20px 40px 1196 } 1197 1198 .resultsearch label { 1199 font-weight: 600; 1200 padding-bottom: 20px; 1201 display: block; 1202 margin-bottom: 20px; 1203 border-bottom: 1px solid #AAAAAA; 1204 } 1205 1206 ul.result_product { 1207 max-height: 300px; 1208 overflow: auto; 1209 } 1210 1211 .group-promotion ul { 1212 margin: 0; 1213 } 1214 1215 .group-promotion li { 1216 list-style: none; 1217 margin-bottom: 12px; 1218 } 1219 1220 .group-promotion li a { 1221 color: inherit; 1222 } 1223 1224 .group-recent { 1225 position: relative; 1226 padding: 20px 40px; 1227 } 1228 1229 .group-recent ul { 1230 margin: 0; 1231 } 1232 1233 .group-recent li { 1234 list-style: none; 1235 display: inline-block; 1236 margin-right: 60px; 1237 } 1238 1239 .group-recent li a { 1240 color: inherit; 1241 } 1242 1243 .last-search svg { 1244 width: 20px; 1245 vertical-align: middle; 1246 } 1247 1248 ul.last-search a { 1249 vertical-align: middle; 1250 padding: 0 10px; 1251 } 1252 1253 ul.last-search li span { 1254 cursor: pointer; 1255 } 1256 1257 .delete-all-history { 1258 position: absolute; 1259 top: 25px; 1260 right: 40px; 1261 text-decoration: underline; 1262 color: #e11d1d; 1263 cursor: pointer; 1264 font-size: 12px; 1265 } 1266 1267 form.search.search-modal__form { 1268 position: relative; 1269 } 1270 1271 button.search__button svg { 1272 width: 25px; 1273 color: #495057; 1274 fill: #757582; 1275 } 1276 1277 button.search__button.field__button { 1278 position: absolute; 1279 top: 50%; 1280 margin-top: -12px; 1281 } 1282 1283 .close-search { 1284 display: none; 1285 position: absolute; 1286 right: 65px; 1287 top: 10px; 1288 cursor: pointer; 1289 } 1290 1291 .site-overlay { 1292 position: fixed; 1293 top: 0; 1294 width: 100vw; 1295 height: 100vh; 1296 z-index: 1000; 1297 background: #0000005c; 1298 visibility: hidden; 1299 opacity: 0; 1300 pointer-events: none; 1301 transition: all .3s linear; 1302 display: block !important; 1303 } 1304 1305 .search-popup-open .site-overlay { 1306 opacity: 1;
1307 visibility: visible; 1308 pointer-events: all; 1309 z-index: -1; 1310 cursor: pointer; 1311 } 1312 1313 @media (min-width: 991px) { 1314 .group-recent ul { 1315 column-count: 3; 1316 } 1317 1318 .group-promotion li a { 1319 font-size: 12px; 1320 font-weight: 400; 1321 } 1322 1323 .group-recent li a { 1324 font-size: 12px; 1325 font-weight: 400; 1326 } 1327 } 1328 1329 .moreresult { 1330 padding: 10px 40px; 1331 border-top: 1px solid #AAAAAA; 1332 } 1333 1334 .moreresult * { 1335 align-self: center; 1336 } 1337 1338 .moreresult p { 1339 margin: 0; 1340 font-size: 12px !important; 1341 } 1342 1343 .moreresult svg { 1344 width: 13px; 1345 } 1346 1347 @media (max-width: 992px) { 1348 .icon-key-mobile { 1349 height: auto !important; 1350 width: 10px !important; 1351 } 1352 1353 body.grid-view.search-popup-open .products { 1354 -ms-flex: 0 0 100% !important; 1355 flex: 0 0 100% !important; 1356 max-width: 100% !important; 1357 } 1358 1359 button.search__button svg { 1360 width: 20px; 1361 } 1362 1363 #search-result { 1364 padding-left: 0; 1365 padding-right: 0; 1366 } 1367 1368 #search-result { 1369 padding-top: 55px; 1370 } 1371 1372 #search-input { 1373 height: 55px; 1374 } 1375 1376 .group-recommend { 1377 padding: 20px; 1378 } 1379 1380 #search-input .container { 1381 padding: 0 20px; 1382 } 1383 1384 #search-type { 1385 font-size: 14px; 1386 } 1387 1388 #search-btn { 1389 font-size: 12px; 1390 text-decoration: underline; 1391 } 1392 1393 .results { 1394 padding: 20px; 1395 } 1396 1397 .group-recommend h3 { 1398 font-size: 16px; 1399 } 1400 1401 .products .card-body { 1402 padding: 8px 0px 10px; 1403 } 1404 1405 .moreresult { 1406 padding: 10px 20px; 1407 } 1408 } 1409 </style> 1410 <style type="text/css"> 1411 div.advertisement-placeholder { 1412 text-align: center; 1413 padding-bottom: 20px; 1414 display: flex; 1415 flex-direction: column; 1416 justify-content: center; 1417 } 1418 1419 div.advertisement-text p { 1420 margin: 0; 1421 font-family: Open Sans; 1422 font-style: normal; 1423 font-weight: normal; 1424 font-size: 10px; 1425 line-height: 20px; 1426 color: #999999; 1427 } 1428 1429 div.advertisement-banner { 1430 margin: 0px auto; 1431 } 1432 1433 div#div-gpt-ad-billboard-placeholder { 1434 width: 996px; 1435 margin: 0 auto; 1436 background: #F5F5F5; 1437 padding-bottom: unset !important; 1438 min-height: 200px; 1439 } 1440 1441 div#div-gpt-ad-lb-placeholder { 1442 background: #F5F5F5; 1443 padding-bottom: unset !important; 1444 min-height: 280px; 1445 } 1446 1447 .faq-section { 1448 max-width: 1200px; 1449 margin: 50px auto; 1450 padding: 40px 20px; 1451 position: relative 1452 } 1453 1454 .faq-section::before { 1455 content: ""; 1456 position: absolute; 1457 top: 0; 1458 left: 50%; 1459 transform: translateX(-50%); 1460 width: 80%; 1461 height: 2px; 1462 background: linear-gradient(90deg, transparent, #000000, transparent) 1463 } 1464 1465 .faq-section h2 { 1466 text-align: center; 1467 font-size: 34px; 1468 font-weight: 700; 1469 margin-bottom: 50px; 1470 background: linear-gradient(135deg, #ffffff, #ffffff, #ffffff); 1471 -webkit-background-clip: text; 1472 -webkit-text-fill-color: transparent; 1473 background-clip: text; 1474 font-family: "Poppins", sans-serif; 1475 letter-spacing: 1px 1476 } 1477 1478 .faq-container { 1479 display: flex; 1480 flex-direction: column; 1481 gap: 25px 1482 } 1483 1484 .faq-item { 1485 background: linear-gradient(to bottom, 1486 #000000 0%, 1487 #3b0000 20%, 1488 #ff0000 50%, 1489 #3b0000 80%, 1490 #000000 100%); 1491 1492 border: 1px solid #ffcc00; 1493 border-radius: 20px; 1494 overflow: hidden; 1495 1496 transition: all .4s ease; 1497 1498 box-shadow: 1499 0 0 10px rgba(255, 0, 0, .8), 1500 0 0 20px rgba(255, 0, 0, .7), 1501 0 0 40px rgba(255, 0, 0, .5), 1502 inset 0 0 10px rgba(255, 80, 80, .2); 1503 1504 position: relative; 1505 } 1506 1507 /* Efek kaca kiri ke kanan */ 1508 .faq-item::before { 1509 content: ''; 1510 position: absolute; 1511 top: 0; 1512 left: -120%; 1513 width: 40%; 1514 height: 100%; 1515 1516 background: linear-gradient(90deg, 1517 transparent, 1518 rgba(255, 255, 255, .25), 1519 transparent); 1520 1521 transform: skewX(-25deg); 1522 animation: faqGlass 3s linear infinite; 1523 } 1524 1525 .faq-item:hover { 1526 border-color: #ffcc00; 1527 1528 transform: translateX(10px); 1529 1530 box-shadow: 1531 0 0 15px rgba(255, 0, 0, .9), 1532 0 0 30px rgba(255, 0, 0, .8), 1533 0 0 60px rgba(255, 0, 0, .6), 1534 0 0 10px rgba(255, 204, 0, .4); 1535 } 1536 1537 @keyframes faqGlass { 1538 100% { 1539 left: 150%; 1540 } 1541 } 1542 1543 .faq-question { 1544 width: 100%; 1545 padding: 28px 35px; 1546 background: transparent; 1547 color: #ffffff; 1548 font-size: 18px; 1549 font-weight: 600; 1550 text-align: left; 1551 border: none; 1552 cursor: pointer; 1553 display: flex; 1554 justify-content: space-between; 1555 align-items: center; 1556 font-family: "Poppins", sans-serif; 1557 transition: all .3s ease 1558 } 1559 1560 .faq-question:hover { 1561 color: #ffffff 1562 } 1563 1564 .faq-question::after { 1565 content: '+'; 1566 font-size: 32px; 1567 font-weight: 300; 1568 transition: all .4s ease; 1569 color: #ffffff; 1570 width: 40px; 1571 height: 40px; 1572 display: flex; 1573 align-items: center; 1574 justify-content: center; 1575 border: 2px solid #000000; 1576 border-radius: 50%; 1577 background: rgba(253, 228, 4, 0.1) 1578 } 1579 1580 .faq-item.active .faq-question::after { 1581 transform: rotate(135deg); 1582 background: linear-gradient(135deg, #000000, #000000); 1583 color: #ffffff; 1584 border-color: transparent 1585 } 1586 1587 .faq-answer { 1588 max-height: 0; 1589 overflow: hidden; 1590 transition: max-height .5s ease, padding .5s ease; 1591 background: linear-gradient(180deg, rgba(253, 228, 4, 0.05), transparent); 1592 padding: 0 35px 1593 } 1594 1595 .faq-item.active .faq-answer { 1596 max-height: 800px; 1597 padding: 30px 35px; 1598 border-top: 1px solid rgba(253, 228, 4, 0.3) 1599 } 1600 1601 .faq-answer p {
1602 color: #e0e0e0; 1603 font-size: 16px; 1604 line-height: 2; 1605 margin: 0; 1606 font-family: "Poppins", sans-serif 1607 } 1608 1609 @media (max-width:768px) { 1610 1611 .faq-section { 1612 padding: 30px 15px 1613 } 1614 1615 .faq-section h2 { 1616 font-size: 26px 1617 } 1618 1619 .faq-question { 1620 font-size: 16px; 1621 padding: 22px 25px 1622 } 1623 1624 .faq-question::after { 1625 width: 35px; 1626 height: 35px; 1627 font-size: 28px 1628 } 1629 1630 .faq-answer { 1631 padding: 0 25px 1632 } 1633 1634 .faq-item.active .faq-answer { 1635 padding: 25px 1636 } 1637 1638 .faq-item:hover { 1639 transform: translateX(5px) 1640 } 1641 } 1642 </style> 1643 <div id="search-popup"> 1644 <div id="search-input" class="row"> 1645 <div class="container w-100"> 1646 <form action="/search" method="get" role="search" 1647 class="search search-modal__form d-flex justify-content-between"> 1648 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1649 width="20" height="20" viewBox="0 0 20 20" fill="none"> 1650 <path 1651 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" 1652 fill="#212121" /> 1653 </svg> 1654 1655 <input type="hidden" name="type" value="product"> 1656 <input type="text" id="search-type" name="q" class="search-popup" 1657 placeholder="Gifts that linger: Uncover treasures for cherished moments."> 1658 <div class="close-search"><svg 1659 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1660 width="18" height="18" viewBox="0 0 18 18" fill="none"> 1661 <path 1662 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
166212.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" 1663 fill="#757575" /> 1664 </svg> 1665 </div> 1666 <button id="search-btn">Search</button> 1667 </form> 1668 </div> 1669 </div> 1670 <div id="search-result" class="container m-auto"> 1671 <div class="container p-0"> 1672 <div class="group-promotion"> 1673 <div class="resultsearch"> 1674 <div class="row results"> 1675 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1676 <label>SUGGESTIONS</label> 1677 <ul class="result_collection"></ul> 1678 </div> 1679 <div class="col-12 col-lg-6"> 1680 <label>PRODUCTS</label> 1681 <ul class="result_product"></ul> 1682 </div> 1683 </div> 1684 <div class="d-flex justify-content-between moreresult m-0"> 1685 <p>Search for<span></span></p> 1686 <svg version="1.1" 1687 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1688 width="32" height="32" viewBox="0 0 32 32"> 1689 <title>icon-arrow-right</title> 1690 <path 1691 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"> 1692 </path> 1693 </svg> 1694 </div> 1695 </div> 1696 </div> 1697 <div class="group-recent hide"> 1698 <h3>RECENT SEARCH</h3> 1699 <span class="delete-all-history">Hapus riwayat</span> 1700 <ul class="last-search"></ul> 1701 </div> 1702 <div class="group-recommend"> 1703 <h3>YOU MAY ALSO LIKE</h3> 1704 1705 1706 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1707 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1708 1709 1710 <div class="swiper-slide card"> 1711 1712 1713 1714 1715 <div class="products" data-lazy="false"> 1716 <div class="bg-products"> 1717 <div class="wishlist-toggle" 1718 data-product-handle="mid-autumn-of-love-mooncake"> 1719 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1720 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1721 <path 1722 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
17226 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" 1723 fill="#212121" /> 1724 </svg> 1725 1726 </div> 1727 <a href="/products/mid-autumn-of-love-mooncake"> 1728 1729 <div class="product-card-img-container p-0 position-relative"> 1730 1731 <img class="product-card-img" lazy="false" 1732 src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1733 data-src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" 1734 alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1735 </div> 1736 <div class="card-body product-card-info"> 1737 <h5 class="h5 mb-0"> 1738 Mid Autumn of Love Mooncake 1739 </h5> 1740 <div class="product-card-price"> 1741 1742 <div class="product-price-sale"> 1743 <s class="product-card-price-before card-money">Rp 1744 588.000</s> 1745 <span class="product-card-discount small"> 1746 (-40%) 1747 </span> 1748 </div> 1749 1750 1751 1752 <div class="price-discount"> 1753 <h4 class="product-card-price-after card-money">Rp 1754 348.000</h4> 1755 </div> 1756 1757 1758 1759 1760 1761 </div> 1762 1763 </div> 1764 </a> 1765 </div> 1766 1767 </div> 1768 1769 </div> 1770 1771 1772 1773 <div class="swiper-slide card"> 1774 1775 1776 1777 1778 <div class="products" data-lazy="false"> 1779 <div class="bg-products"> 1780 <div class="wishlist-toggle" 1781 data-product-handle="mid-autumn-of-joy-mooncake"> 1782 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1783 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1784 <path 1785 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
17856 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" 1786 fill="#212121" /> 1787 </svg> 1788 1789 </div> 1790 <a href="/products/mid-autumn-of-joy-mooncake"> 1791 1792 <div class="product-card-img-container p-0 position-relative"> 1793 1794 <img class="product-card-img" lazy="false" 1795 src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1796 data-src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" 1797 alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1798 </div> 1799 <div class="card-body product-card-info"> 1800 <h5 class="h5 mb-0"> 1801 Mid Autumn of Joy Mooncake 1802 </h5> 1803 <div class="product-card-price"> 1804 1805 <div class="product-price-sale"> 1806 <s class="product-card-price-before card-money">Rp 1807 888.000</s> 1808 <span class="product-card-discount small"> 1809 (-33%) 1810 </span> 1811 </div> 1812 1813 1814 1815 <div class="price-discount"> 1816 <h4 class="product-card-price-after card-money">Rp 1817 588.000</h4> 1818 </div> 1819 1820 1821 1822 1823 1824 </div> 1825 1826 </div> 1827 </a> 1828 </div> 1829 1830 </div> 1831 1832 </div> 1833 1834 1835 1836 <div class="swiper-slide card"> 1837 1838 1839 1840 1841 <div class="products" data-lazy="false"> 1842 <div class="bg-products"> 1843 <div class="wishlist-toggle" 1844 data-product-handle="mid-autumn-of-fortune-mooncake"> 1845 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1846 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1847 <path 1848 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
18486 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" 1849 fill="#212121" /> 1850 </svg> 1851 1852 </div> 1853 <a href="/products/mid-autumn-of-fortune-mooncake"> 1854 1855 <div class="product-card-img-container p-0 position-relative"> 1856 1857 <img class="product-card-img" lazy="false" 1858 src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1859 data-src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" 1860 alt="Mid Autumn of Fortune Mooncake" height="200" 1861 width="200"> 1862 </div> 1863 <div class="card-body product-card-info"> 1864 <h5 class="h5 mb-0"> 1865 Mid Autumn of Fortune Mooncake 1866 </h5> 1867 <div class="product-card-price"> 1868 1869 <div class="product-price-sale"> 1870 <s class="product-card-price-before card-money">Rp 1871 1.188.000</s> 1872 <span class="product-card-discount small"> 1873 (-33%) 1874 </span> 1875 </div> 1876 1877 1878 1879 <div class="price-discount"> 1880 <h4 class="product-card-price-after card-money">Rp 1881 788.000</h4> 1882 </div> 1883 1884 1885 1886 1887 1888 </div> 1889 1890 </div> 1891 </a> 1892 </div> 1893 1894 </div> 1895 1896 </div> 1897 1898 1899 1900 <div class="swiper-slide card"> 1901 1902 1903 1904 1905 <div class="products" data-lazy="false"> 1906 <div class="bg-products"> 1907 <div class="wishlist-toggle" 1908 data-product-handle="mid-autumn-festival-mooncake"> 1909 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1910 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1911 <path 1912 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
19126 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" 1913 fill="#212121" /> 1914 </svg> 1915 1916 </div> 1917 <a href="/products/mid-autumn-festival-mooncake"> 1918 1919 <div class="product-card-img-container p-0 position-relative"> 1920 1921 <img class="product-card-img" lazy="false" 1922 src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1923 data-src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" 1924 alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1925 </div> 1926 <div class="card-body product-card-info"> 1927 <h5 class="h5 mb-0"> 1928 Mid Autumn Festival Mooncake 1929 </h5> 1930 <div class="product-card-price"> 1931 1932 <div class="product-price-sale"> 1933 <s class="product-card-price-before card-money">Rp 1934 1.288.000</s> 1935 <span class="product-card-discount small"> 1936 (-23%) 1937 </span> 1938 </div> 1939 1940 1941 1942 <div class="price-discount"> 1943 <h4 class="product-card-price-after card-money">Rp 1944 988.000</h4> 1945 </div> 1946 1947 1948 1949 1950 1951 </div> 1952 1953 </div> 1954 </a> 1955 </div> 1956 1957 </div> 1958 1959 </div> 1960 1961 1962 1963 <div class="swiper-slide card"> 1964 1965 1966 1967 1968 <div class="products" data-lazy="false"> 1969 <div class="bg-products"> 1970 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1971 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 1972 width="24" height="21" viewBox="0 0 24 21" fill="none"> 1973 <path 1974 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
19746 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" 1975 fill="#212121" /> 1976 </svg> 1977 1978 </div> 1979 <a href="/products/the-jade-bouquet"> 1980 1981 <div class="product-card-img-container p-0 position-relative"> 1982 1983 <img class="product-card-img" lazy="false" 1984 src="https://outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1985 data-src="https://outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" 1986 alt="The Jade Bouquet" height="200" width="200"> 1987 </div> 1988 <div class="card-body product-card-info"> 1989 <h5 class="h5 mb-0"> 1990 The Jade Bouquet 1991 </h5> 1992 <div class="product-card-price"> 1993 1994 <div class="product-price-sale"> 1995 <s class="product-card-price-before card-money">Rp 1996 435.000</s> 1997 <span class="product-card-discount small"> 1998 (-34%) 1999 </span> 2000 </div> 2001 2002 2003 2004 <div class="price-discount"> 2005 <h4 class="product-card-price-after card-money">Rp 2006 285.000</h4> 2007 </div> 2008 2009 2010 2011 2012 2013 </div> 2014 2015 </div> 2016 </a> 2017 </div> 2018 2019 </div> 2020 2021 </div> 2022 2023 2024 2025 <div class="swiper-slide card"> 2026 2027 2028 2029 2030 <div class="products" data-lazy="false"> 2031 <div class="bg-products"> 2032 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 2033 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2034 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2035 <path 2036 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
20366 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" 2037 fill="#212121" /> 2038 </svg> 2039 2040 </div> 2041 <a href="/products/the-selena-bouquet"> 2042 2043 <div class="product-card-img-container p-0 position-relative"> 2044 2045 <img class="product-card-img" lazy="false" 2046 src="https://outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 2047 data-src="https://outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" 2048 alt="The Selena Bouquet" height="200" width="200"> 2049 </div> 2050 <div class="card-body product-card-info"> 2051 <h5 class="h5 mb-0"> 2052 The Selena Bouquet 2053 </h5> 2054 <div class="product-card-price"> 2055 2056 <div class="product-price-sale"> 2057 <s class="product-card-price-before card-money">Rp 2058 335.000</s> 2059 <span class="product-card-discount small"> 2060 (-29%) 2061 </span> 2062 </div> 2063 2064 2065 2066 <div class="price-discount"> 2067 <h4 class="product-card-price-after card-money">Rp 2068 235.000</h4> 2069 </div> 2070 2071 2072 2073 2074 2075 </div> 2076 2077 </div> 2078 </a> 2079 </div> 2080 2081 </div> 2082 2083 </div> 2084 2085 2086 2087 <div class="swiper-slide card"> 2088 2089 2090 2091 2092 <div class="products" data-lazy="false"> 2093 <div class="bg-products"> 2094 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 2095 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2096 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2097 <path 2098 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
20986 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" 2099 fill="#212121" /> 2100 </svg> 2101 2102 </div> 2103 <a href="/products/the-viola-bouquet"> 2104 2105 <div class="product-card-img-container p-0 position-relative"> 2106 2107 <img class="product-card-img" lazy="false" 2108 src="https://outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 2109 data-src="https://outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" 2110 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." 2111 height="200" width="200"> 2112 </div> 2113 <div class="card-body product-card-info"> 2114 <h5 class="h5 mb-0"> 2115 The Viola Bouquet 2116 </h5> 2117 <div class="product-card-price"> 2118 2119 <div class="product-price-sale"> 2120 <s class="product-card-price-before card-money">Rp 2121 385.000</s> 2122 <span class="product-card-discount small"> 2123 (-25%) 2124 </span> 2125 </div> 2126 2127 2128 2129 <div class="price-discount"> 2130 <h4 class="product-card-price-after card-money">Rp 2131 285.000</h4> 2132 </div> 2133 2134 2135 2136 2137 2138 </div> 2139 2140 </div> 2141 </a> 2142 </div> 2143 2144 </div> 2145 2146 </div> 2147 2148 2149 2150 <div class="swiper-slide card"> 2151 2152 2153 2154 2155 <div class="products" data-lazy="false"> 2156 <div class="bg-products"> 2157 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 2158 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2159 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2160 <path 2161 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
21616 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" 2162 fill="#212121" /> 2163 </svg> 2164 2165 </div> 2166 <a href="/products/the-minerva-bouquet"> 2167 2168 <div class="product-card-img-container p-0 position-relative"> 2169 2170 <img class="product-card-img" lazy="false" 2171 src="https://outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 2172 data-src="https://outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" 2173 alt="The Minerva Bouquet" height="200" width="200"> 2174 </div> 2175 <div class="card-body product-card-info"> 2176 <h5 class="h5 mb-0"> 2177 The Minerva Bouquet 2178 </h5> 2179 <div class="product-card-price"> 2180 2181 <div class="product-price-sale"> 2182 <s class="product-card-price-before card-money">Rp 2183 385.000</s> 2184 <span class="product-card-discount small"> 2185 (-25%) 2186 </span> 2187 </div> 2188 2189 2190 2191 <div class="price-discount"> 2192 <h4 class="product-card-price-after card-money">Rp 2193 285.000</h4> 2194 </div> 2195 2196 2197 2198 2199 2200 </div> 2201 2202 </div> 2203 </a> 2204 </div> 2205 2206 </div> 2207 2208 </div> 2209 2210 2211 2212 <div class="swiper-slide card"> 2213 2214 2215 2216 2217 <div class="products" data-lazy="false"> 2218 <div class="bg-products"> 2219 <div class="wishlist-toggle" 2220 data-product-handle="congraduations-bouquet"> 2221 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2222 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2223 <path 2224 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
22246 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" 2225 fill="#212121" /> 2226 </svg> 2227 2228 </div> 2229 <a href="/products/congraduations-bouquet"> 2230 2231 <div class="product-card-img-container p-0 position-relative"> 2232 2233 <img class="product-card-img" lazy="false" 2234 src="https://outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 2235 data-src="https://outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" 2236 alt="Congraduations Bouquet" height="200" width="200"> 2237 </div> 2238 <div class="card-body product-card-info"> 2239 <h5 class="h5 mb-0"> 2240 Congraduations Bouquet 2241 </h5> 2242 <div class="product-card-price"> 2243 2244 <div class="product-price-sale"> 2245 <s class="product-card-price-before card-money">Rp 2246 380.000</s> 2247 <span class="product-card-discount small"> 2248 (-25%) 2249 </span> 2250 </div> 2251 2252 2253 2254 <div class="price-discount"> 2255 <h4 class="product-card-price-after card-money">Rp 2256 285.000</h4> 2257 </div> 2258 2259 2260 2261 2262 2263 </div> 2264 2265 </div> 2266 </a> 2267 </div> 2268 2269 </div> 2270 2271 </div> 2272 2273 2274 2275 <div class="swiper-slide card"> 2276 2277 2278 2279 2280 <div class="products" data-lazy="false"> 2281 <div class="bg-products"> 2282 <div class="wishlist-toggle" 2283 data-product-handle="grad-gorgeous-bouquet"> 2284 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2285 width="24" height="21" viewBox="0 0 24 21" fill="none"> 2286 <path 2287 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
22876 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" 2288 fill="#212121" /> 2289 </svg> 2290 2291 </div> 2292 <a href="/products/grad-gorgeous-bouquet"> 2293 2294 <div class="product-card-img-container p-0 position-relative"> 2295 2296 <img class="product-card-img" lazy="false" 2297 src="https://outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2298 data-src="https://outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" 2299 alt="Grad & Gorgeous Bouquet" height="200" width="200"> 2300 </div> 2301 <div class="card-body product-card-info"> 2302 <h5 class="h5 mb-0"> 2303 Grad & Gorgeous Bouquet 2304 </h5> 2305 <div class="product-card-price"> 2306 2307 <div class="product-price-sale"> 2308 <s class="product-card-price-before card-money">Rp 2309 380.000</s> 2310 <span class="product-card-discount small"> 2311 (-25%) 2312 </span> 2313 </div> 2314 2315 2316 2317 <div class="price-discount"> 2318 <h4 class="product-card-price-after card-money">Rp 2319 285.000</h4> 2320 </div> 2321 2322 2323 2324 2325 2326 </div> 2327 2328 </div> 2329 </a> 2330 </div> 2331 2332 </div> 2333 2334 </div> 2335 2336 2337 </div> 2338 </div> 2339 2340 </div> 2341 </div> 2342 </div> 2343 2344 <div class="site-overlay" style="display: none"></div> 2345 </div> 2346
2346<script type="text/javascript"> 2347 2348 var swiper = new Swiper('.popup-recommend', { 2349 slidesPerView: 4, 2350 spaceBetween: 30, 2351 lazy: true, 2352 speed: 300, 2353 breakpoints: { 2354 // when window width is <= 576px 2355 576: { 2356 slidesPerView: 2, 2357 spaceBetween: 10, 2358 freeMode: true, 2359 resistance: true, 2360 resistanceRatio: 0, 2361 freeModeMomentumRatio: 0.45, 2362 freeModeMomentumVelocityRatio: 1.5 2363 }, 2364 768: { 2365 slidesPerView: 2, 2366 spaceBetween: 10 2367 }, 2368 992: { 2369 slidesPerView: 3, 2370 spaceBetween: 20 2371 } 2372 } 2373 }); 2374 2375 const searchContainer = $("#search-popup") 2376 const searchInput = $(".search-popup") 2377 const result_collection = $('.result_collection') 2378 const result_product = $('.result_product') 2379 const resultsearch = $('.resultsearch') 2380 const resultrecommend = $(".group-recommend") 2381 const moreresult = $(".moreresult") 2382 2383 searchInput.keyup(function () { 2384 const input = $(this).val() 2385 moreresult.find("p span").text(` â${input}â`) 2386 if (input.length > 2) { 2387 $(".close-search").show() 2388 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2389 $.ajax({
2390 type: 'GET', 2391 url, 2392 beforeSend: function () { 2393 // setting a timeout 2394 // $(placeholder).addClass('loading'); 2395 }, 2396 success: function (response) { 2397 resultsearch.show() 2398 resultrecommend.hide() 2399 result_collection.html("") 2400 result_product.html("") 2401 const collections = response.resources.results.collections 2402 const products = response.resources.results.products 2403 let collection_length = collections.length 2404 let product_length = products.length 2405 // if(collections.length > 5) { 2406 // collection_length = 5 2407 // } 2408 // if(products.length > 5) { 2409 // product_length = 5 2410 // } 2411 for (let i = 0; i < collection_length; i++) { 2412 const title = collections[i].title 2413 const url = collections[i].url 2414 let html_collection 2415 if (!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2416 html_collection = ` 2417 <li class="item" data-title="${title}"> 2418 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2419 </li> 2420 ` 2421 } 2422 result_collection.append(html_collection) 2423 } 2424 for (let i = 0; i < product_length; i++) { 2425 const title = products[i].title 2426 const url = products[i].url 2427 const image = products[i].featured_image.url 2428 const vendor = products[i].vendor 2429 let html_product 2430 if (vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')) { 2431 html_product = ` 2432 <li class="item" data-vendor="${vendor}"> 2433 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2434 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2435 </a> 2436 </li> 2437 ` 2438 } 2439 result_product.append(html_product) 2440 } 2441 }, 2442 error: function (xhr) { // if error occured 2443 alert("Error occured.please try again"); 2444 }, 2445 complete: function (response) { 2446 // $(placeholder).removeClass('loading'); 2447 }, 2448 dataType: 'JSON' 2449 }); 2450 } else { 2451 result_collection.html("") 2452 result_product.html("") 2453 2454 resultsearch.hide() 2455 resultrecommend.show() 2456 } 2457 }) 2458 2459 moreresult.click(function () { 2460 $("#search-btn").trigger("click"); 2461 }) 2462 2463 $(".close-search").click(function () { 2464 $(this).hide() 2465 searchInput.val("") 2466 searchInput.focus() 2467 resultsearch.hide() 2468 resultrecommend.show() 2469 }) 2470 2471 function setCookie(name, value, days) { 2472 var expires = ""; 2473 if (days) { 2474 var date = new Date(); 2475 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 2476 expires = "; expires=" + date.toUTCString(); 2477 } 2478 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2479 } 2480 function getCookie(name) { 2481 var nameEQ = name + "="; 2482 var ca = document.cookie.split(';'); 2483 for (var i = 0; i < ca.length; i++) { 2484 var c = ca[i];
2485 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 2486 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 2487 } 2488 return null; 2489 } 2490 let last_search_name = [] 2491 let last_search_url = [] 2492 $(".group-recent").hide() 2493 if (getCookie("last_search_name") != null && getCookie("last_search_url") != null) { 2494 if (getCookie("last_search_name") != "" && getCookie("last_search_url") != "") { 2495 $(".group-recent").show() 2496 last_search_name = getCookie("last_search_name"); 2497 last_search_url = getCookie("last_search_url"); 2498 const arrName = last_search_name.substring(1).split(',').reverse() 2499 const arrUrl = last_search_url.substring(1).split(',').reverse() 2500 console.log(arrName, 'Array Name') 2501 console.log(arrUrl, 'Array Url') 2502 let length = arrName.length 2503 if (arrName.length > 5) { 2504 length = 5 2505 } 2506 for (let n = 0; n < length; n++) { 2507 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2508 $(".group-recent ul").append(html2) 2509 } 2510 } 2511 } 2512 console.log(last_search_name, 'Name') 2513 console.log(last_search_url, 'url') 2514 2515 resultsearch.delegate(".item a", "click", function () { 2516 let name = [last_search_name] 2517 let url = [last_search_url] 2518 name.push($(this).attr('data-title')) 2519 url.push($(this).attr('data-url')) 2520 setCookie("last_search_name", name, 7); 2521 setCookie("last_search_url", url, 7); 2522 }) 2523 2524 $(".delete-all-history").click(function () { 2525 setCookie("last_search_name", null, 0); 2526 setCookie("last_search_url", null, 0); 2527 $(".last-search").hide(); 2528 setTimeout(function () { 2529 location.reload(); 2530 }, 500); 2531 }) 2532 2533 $("#search-trigger").click(function () { 2534 search_open() 2535 }) 2536 $(".icon-search-mobile").click(function () { 2537 search_open() 2538 }) 2539 $(".search-header svg").click(function () { 2540 search_close() 2541 }) 2542 $(".icon-key-mobile").click(function () { 2543 search_close() 2544 }) 2545 2546 function search_open() { 2547 $("body").addClass("search-popup-open") 2548 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2549 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2550 $(".search-popup").focus() 2551 $('.popup-recommend')[0].swiper.update(); 2552 } 2553 function search_close() { 2554 $("body").removeClass("search-popup-open") 2555 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2556 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2557 searchInput.val("") 2558 resultsearch.hide() 2559 resultrecommend.show() 2560 } 2561 2562 $(".site-overlay").click(function () { 2563 search_close() 2564 }) 2565 </script>
2565 2566 2567 </div> 2568 </div> 2569 2570 <div id="PageContainer" class="is-moved-by-drawerx" style=" 2571 background: 2572 radial-gradient( 2573 circle, 2574 #000000 25%, 2575 #1a0000 45%, 2576 #550000 70%, 2577 #a00000 90%, 2578 #ff0000 100%); 2579 2580 border-top:1px solid #ffcc00; 2581 2582 box-shadow: 2583 inset 0 0 60px rgba(255,0,0,.2), 2584 0 0 20px rgba(255,0,0,.4), 2585 0 0 40px rgba(255,0,0,.2); 2586"> 2587 <main class="main-content pt-0" role="main"> 2588 2589 <div id="breadcrumbProduct" class="d-none d-lg-block"> 2590 <style> 2591 #breadcrumbProduct { 2592 padding: 20px 0; 2593 } 2594 2595 #breadcrumbProduct ul { 2596 display: flex; 2597 padding: 0; 2598 list-style: none; 2599 margin: 0; 2600 gap: 12px; 2601 } 2602 2603 #breadcrumbProduct ul li { 2604 text-transform: uppercase; 2605 margin: 0; 2606 font-size: 12px; 2607 } 2608 2609 #breadcrumbProduct ul li a { 2610 color: #ffffff; 2611 } 2612 2613 #breadcrumbProduct ul li svg { 2614 width: 10px; 2615 height: 10px; 2616 padding: 0; 2617 color: #ffffff; 2618 vertical-align: middle; 2619 } 2620 </style> 2621 <div class="container" style="color: #ffffff;"> 2622 <ul role="navigation" aria-label="breadcrumbs"> 2623 <li><a href="https://www.overgossip.com/" style="color: #ffd000;">SARANAJITU</a></li> 2624 <li><svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 2625 width="7" height="10" viewBox="0 0 7 10" fill="none"> 2626 <path 2627 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 2628 fill="#757575" /> 2629 </svg></li> 2630 <li>SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia</li> 2631 2632 </ul> 2633 </div> 2634 2635 </div> 2636 2637
2637<script type="application/ld+json"> 2638{ 2639 "@context": "https://schema.org", 2640 "@type": "BreadcrumbList", 2641 "itemListElement": [ 2642 { 2643 "@type": "ListItem", 2644 "position": 1, 2645 "name": "SARANAJITU", 2646 "item": "https://www.overgossip.com/" 2647 }, 2648 { 2649 "@type": "ListItem", 2650 "position": 2, 2651 "name": "SARANAJITU LOGIN", 2652 "item": "https://www.overgossip.com/" 2653 }, 2654 { 2655 "@type": "ListItem", 2656 "position": 3, 2657 "name": "LINK SARANAJITU", 2658 "item": "https://www.overgossip.com/" 2659 }, 2660 { 2661 "@type": "ListItem", 2662 "position": 4, 2663 "name": "SITUS TOTO", 2664 "item": "https://www.overgossip.com/" 2665 }, 2666 { 2667 "@type": "ListItem", 2668 "position": 5, 2669 "name": "TOTO TOGEL", 2670 "item": "https://www.overgossip.com/" 2671 }, 2672 { 2673 "@type": "ListItem", 2674 "position": 6, 2675 "name": "PREDIKSI MACAU", 2676 "item": "https://www.overgossip.com/" 2677 }, 2678 { 2679 "@type": "ListItem", 2680 "position": 7, 2681 "name": "SITUS TOTO TOGEL", 2682 "item": "https://www.overgossip.com/" 2683 }, 2684 { 2685 "@type": "ListItem", 2686 "position": 8, 2687 "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 2688 "item": "https://www.overgossip.com/" 2689 } 2690 ] 2691} 2692</script>
2692 2693 2694
2694<script type="application/ld+json"> 2695{ 2696 "@context": "https://schema.org", 2697 "@type": "WebPage", 2698 "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 2699 "url": "https://www.overgossip.com/", 2700 "mainEntity": { 2701 "@type": "Product", 2702 "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 2703 "image": [ 2704 "https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 2705 ], 2706 "brand": { 2707 "@type": "Brand", 2708 "name": "SARANAJITU" 2709 }, 2710 "aggregateRating": { 2711 "@type": "AggregateRating", 2712 "ratingValue": "4.9", 2713 "reviewCount": "57" 2714 }, 2715 "review": [ 2716 { 2717 "@type": "Review", 2718 "author": { 2719 "@type": "Person", 2720 "name": "Rendy" 2721 }, 2722 "datePublished": "2026-05-24", 2723 "name": "Akses Login Sangat Cepat", 2724 "reviewBody": "Saya sangat terbantu dengan akses login yang cepat dan stabil di SARANAJITU. Halaman dapat dibuka dengan lancar baik melalui smartphone maupun desktop tanpa kendala berarti.", 2725 "reviewRating": { 2726 "@type": "Rating", 2727 "ratingValue": "5", 2728 "bestRating": "5" 2729 } 2730 }, 2731 { 2732 "@type": "Review", 2733 "author": { 2734 "@type": "Person", 2735 "name": "Bagas" 2736 }, 2737 "datePublished": "2026-05-25", 2738 "name": "Navigasi Mudah Digunakan", 2739 "reviewBody": "Tampilan situs sangat rapi dan mudah dipahami. Semua menu tersusun dengan baik sehingga saya bisa menemukan informasi yang dibutuhkan dengan lebih cepat.", 2740 "reviewRating": { 2741 "@type": "Rating", 2742 "ratingValue": "4.9", 2743 "bestRating": "5" 2744 } 2745 }, 2746 { 2747 "@type": "Review", 2748 "author": { 2749 "@type": "Person", 2750 "name": "Dika" 2751 }, 2752 "datePublished": "2026-05-26", 2753 "name": "Prediksi Bandar Macau Informatif", 2754 "reviewBody": "Fitur Prediksi Bandar Macau Verified menjadi salah satu bagian yang paling saya sukai karena informasinya diperbarui secara berkala dan disajikan dengan format yang mudah dipantau.", 2755 "reviewRating": { 2756 "@type": "Rating", 2757 "ratingValue": "5", 2758 "bestRating": "5" 2759 } 2760 }, 2761 { 2762 "@type": "Review", 2763 "author": { 2764 "@type": "Person", 2765 "name": "Andra" 2766 }, 2767 "datePublished": "2026-05-27", 2768 "name": "Link Alternatif Selalu Aktif", 2769 "reviewBody": "Ketika link utama mengalami kendala, saya masih bisa mengakses layanan melalui link alternatif yang tersedia. Hal ini membuat pengalaman penggunaan menjadi lebih nyaman.", 2770 "reviewRating": { 2771 "@type": "Rating", 2772 "ratingValue": "4.8", 2773 "bestRating": "5" 2774 } 2775 }, 2776 { 2777 "@type": "Review", 2778 "author": { 2779 "@type": "Person", 2780 "name": "Fajar" 2781 }, 2782 "datePublished": "2026-05-28", 2783 "name": "Pengalaman Mobile Friendly", 2784 "reviewBody": "SARANAJITU sangat nyaman digunakan melalui perangkat mobile. Halaman ringan, responsif, dan seluruh fitur dapat diakses dengan mudah tanpa mengurangi kenyamanan pengguna.", 2785 "reviewRating": { 2786 "@type": "Rating", 2787 "ratingValue": "5", 2788 "bestRating": "5" 2789 } 2790 } 2791 ] 2792 } 2793} 2794</script>
2794 2795 2796
2796<script type="application/ld+json"> 2797{ 2798 "@context": "https://schema.org", 2799 "@type": "FAQPage", 2800 "mainEntity": [ 2801 { 2802 "@type": "Question", 2803 "name": "Apa itu SARANAJITU?", 2804 "acceptedAnswer": { 2805 "@type": "Answer", 2806 "text": "SARANAJITU merupakan platform yang menyediakan akses login dan daftar untuk berbagai pasaran toto togel online dengan sistem yang cepat, stabil, dan mudah diakses oleh pengguna dari berbagai perangkat." 2807 } 2808 }, 2809 { 2810 "@type": "Question", 2811 "name": "Bagaimana cara login ke SARANAJITU?", 2812 "acceptedAnswer": { 2813 "@type": "Answer", 2814 "text": "Pengguna dapat mengakses halaman login melalui link resmi maupun link alternatif terbaru yang tersedia. Setelah memasukkan username dan password yang valid, sistem akan mengarahkan pengguna ke seluruh fitur yang tersedia." 2815 } 2816 }, 2817 { 2818 "@type": "Question", 2819 "name": "Apa yang dimaksud dengan Prediksi Bandar Macau Verified?", 2820 "acceptedAnswer": { 2821 "@type": "Answer", 2822 "text": "Prediksi Bandar Macau Verified merupakan informasi prediksi yang banyak dicari oleh pengguna untuk mengikuti perkembangan pasaran Macau. Informasi tersebut diperbarui secara berkala agar lebih mudah dipantau setiap harinya." 2823 } 2824 }, 2825 { 2826 "@type": "Question", 2827 "name": "Apakah SARANAJITU dapat diakses melalui smartphone?", 2828 "acceptedAnswer": { 2829 "@type": "Answer", 2830 "text": "Ya, SARANAJITU telah dioptimalkan untuk berbagai perangkat, termasuk smartphone, tablet, dan desktop. Tampilan yang responsif membuat pengguna tetap nyaman saat mengakses seluruh fitur yang tersedia." 2831 } 2832 }, 2833 { 2834 "@type": "Question", 2835 "name": "Mengapa banyak pengguna memilih SARANAJITU?", 2836 "acceptedAnswer": { 2837 "@type": "Answer", 2838 "text": "Banyak pengguna memilih SARANAJITU karena menawarkan akses yang cepat, link alternatif yang selalu diperbarui, fitur prediksi yang informatif, serta pengalaman penggunaan yang nyaman dengan navigasi yang mudah dipahami." 2839 } 2840 } 2841 ] 2842} 2843</script>
2843 2844 2845 2846
2846<script type="application/ld+json"> 2847{ 2848 "@context": "https://schema.org", 2849 "@type": "Organization", 2850 "name": "SARANAJITU", 2851 "url": "https://www.overgossip.com/", 2852 "logo": "https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif", 2853 "sameAs": [ 2854 "https://www.facebook.com/SARANAJITUresmi", 2855 "https://twitter.com/SARANAJITUresmi", 2856 "https://www.instagram.com/SARANAJITUresmi" 2857 ], 2858 "contactPoint": { 2859 "@type": "ContactPoint", 2860 "telephone": "+62-877-4911-8073", 2861 "contactType": "customer support", 2862 "areaServed": "ID", 2863 "availableLanguage": ["Indonesian", "English"] 2864 } 2865} 2866</script>
2866 2867 2868
2868<script type="application/ld+json"> 2869{ 2870 "@context": "https://schema.org", 2871 "@type": "VideoObject", 2872 "name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 2873 "description": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", 2874 "thumbnailUrl": [ 2875 "https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg", 2876 "https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 2877 ], 2878 "uploadDate": "2024-09-28T04:19:10-04:00", 2879 "duration": "DS584", 2880 "contentUrl": "https://www.overgossip.com/" 2881} 2882</script>
2882 2883 2884
2884<script type="application/ld+json"> 2885{ 2886 "@context": "https://schema.org", 2887 "@graph": [ 2888 { 2889 "@type": "Organization", 2890 "@id": "https://www.overgossip.com/", 2891 "name": "SARANAJITU", 2892 "url": "https://www.overgossip.com/", 2893 "logo": "https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 2894 }, 2895 { 2896 "@type": "WebSite", 2897 "@id": "https://www.overgossip.com/", 2898 "url": "https://www.overgossip.com/", 2899 "name": "SARANAJITU", 2900 "publisher": { "@id": "https://www.overgossip.com/" }, 2901 "inLanguage": "id-ID", 2902 "potentialAction": { 2903 "@type": "SearchAction", 2904 "target": "https://www.overgossip.com/", 2905 "query-input": "required name=search_term_string" 2906 } 2907 }, 2908 { 2909 "@type": "SoftwareApplication", 2910 "@id": "https://www.overgossip.com/", 2911 "name": "SARANAJITU", 2912 "applicationCategory": "GameApplication", 2913 "operatingSystem": "Android, iOS, Windows", 2914 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2915 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2916 } 2917 ] 2918} 2919</script>
2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 <div id="shopify-section-Product" class="shopify-section product-section mt-0"> 2939 <link href="https://outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" 2940 rel="stylesheet" type="text/css" media="all" /> 2941 2942 2943 2944 <style> 2945 .bg-card { 2946 background: radial-gradient(circle at center, 2947 #000000 25%, 2948 #1a0000 45%, 2949 #4d0000 70%, 2950 #8b0000 90%, 2951 #ff0000 100%); 2952 2953 border: 1px solid rgba(255, 180, 0, .6); 2954 2955 box-shadow: 2956 0 0 10px rgba(255, 0, 0, .8), 2957 0 0 20px rgba(255, 0, 0, .7), 2958 0 0 40px rgba(255, 0, 0, .5), 2959 inset 0 0 15px rgba(255, 80, 80, .25), 2960 inset 0 0 5px rgba(255, 204, 0, .2); 2961 2962 border-radius: 12px; 2963 } 2964 </style> 2965 2966 <!-- /templates/product.liquid --> 2967 2968 2969 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2970 2971 2972 <div class="product-standing-flower" data-product-type="flowerBoard"> 2973 <meta itemprop="url" content="https://www.overgossip.com/"> 2974 <meta itemprop="image" content="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 2975 2976 2977 2978 <input id="data-sku" type="hidden" value="OBVSTF6810"> 2979 <div class="product-single" style=" 2980 background: radial-gradient(circle, #000000 35%, #220000 60%, #ffffff 85%, #ff0000 100%); 2981"> 2982 2983 <div id="product-top" class="container"> 2984 2985 <div class="row bg-card product-sticky" style=" 2986 background: linear-gradient( 2987 to bottom, 2988 #000000 0%, 2989 #3b0000 20%, 2990 #ff0000 50%, 2991 #3b0000 80%, 2992 #000000 100%); 2993 2994 padding:20px 25px; 2995 border-radius:10px; 2996 2997 border:1px solid #ff0000; 2998 2999 box-shadow: 3000 0 0 10px rgba(255,0,0,.9), 3001 0 0 20px rgba(255,0,0,.8), 3002 0 0 40px rgba(255,0,0,.7), 3003 inset 0 0 15px rgba(255,80,80,.4); 3004 "> 3005 <div id="product-image" class="col-lg-7 text-center"> 3006 <div class="product-image"> 3007 <div class="row no-gutters"> 3008 3009 <div id="product-featured-image" class="row w-100"> 3010 3011 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 3012 3013 <div class="swiper-container gallery-thumbs" 3014 style="min-height: 500px"> 3015 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" 3016 id="ProductThumbsx"> 3017 3018 <li class="swiper-slide" data-type="image"> 3019 <a href="files/Blossom-Shine-WM.jpg" 3020 data-standard="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3021 data-image="files/Blossom-Shine-WM.jpg" 3022 data-position="1" class="product-single__thumbnail"> 3023 <img class="lazyload w-100" 3024 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3025 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3026 width="" height=""> 3027 </a> 3028 </li> 3029 3030 3031 3032 3033 <li class="swiper-slide" data-type="image"> 3034 <a href="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3035 data-standard="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3036 data-image="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3037 data-position="2" class="product-single__thumbnail"> 3038 <img class="lazyload w-100" 3039 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3040 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3041 width="" height=""> 3042 </a> 3043 </li> 3044 3045 3046 3047 3048 <li class="swiper-slide" data-type="image"> 3049 <a href="files/Blossom-Shine_3-WM.jpg" 3050 data-standard="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3051 data-image="files/Blossom-Shine_3-WM.jpg" 3052 data-position="3" class="product-single__thumbnail"> 3053 <img class="lazyload w-100" 3054 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3055 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3056 width="" height=""> 3057 </a> 3058 </li> 3059 3060 3061 3062 3063 <li class="swiper-slide" data-type="image"> 3064 <a href="files/Blossom-Shine_4.jpg" 3065 data-standard="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3066 data-image="files/Blossom-Shine_4.jpg" 3067 data-position="4" class="product-single__thumbnail"> 3068 <img class="lazyload w-100" 3069 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3070 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3071 width="" height=""> 3072 </a> 3073 </li> 3074 3075 3076 3077 </ul> 3078 </div> 3079 3080 </div> 3081 3082 <div id="featured-image-product" 3083 class="col-lg-10 col-12 d-none d-lg-block"> 3084 <div class="swiper-container gallery-top"> 3085 <div class="swiper-slide product-single__image"> 3086 3087 <div class="product-single__photos slider slider-for" 3088 id="ProductPhoto"> 3089 3090 3091 <div 3092 class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 3093 <a 3094 href="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg"> 3095 <img src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3096 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3097 id="ProductPhotoImg" class="lazyload"> 3098 3099 </a> 3100 </div> 3101 </div> 3102 3103 </div> 3104 <div class="swiper-slide product-single__video" 3105 style="display: none"> 3106 <video 3107 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 3108 playsinline loop muted></video> 3109 </div> 3110 </div> 3111 </div> 3112 </div> 3113 3114 <div id="featured-image-product2" class="col-12 d-lg-none"> 3115 <div class="swiper-container gallery-mobile"> 3116 <ul class="swiper-wrapper"> 3117 <li class="swiper-slide img"> 3118 3119 <img class="swiper-lazy" 3120 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3121 data-src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3122 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3123 width="" height=""> 3124 3125 </li> 3126 3127 3128 <li class="swiper-slide img"> 3129 3130 <img class="swiper-lazy" 3131 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3132 data-src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3133 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3134 width="" height=""> 3135 3136 </li> 3137 3138 3139 <li class="swiper-slide img"> 3140 3141 <img class="swiper-lazy" 3142 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3143 data-src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3144 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3145 width="" height=""> 3146 3147 </li> 3148 3149 3150 <li class="swiper-slide img"> 3151 3152 <img class="swiper-lazy" 3153 src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3154 data-src="https://i.gyazo.com/beb370367af393bd3ab1d32cc572da8b.jpg" 3155 alt="SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia" 3156 width="" height=""> 3157 3158 </li> 3159 3160 3161 </ul> 3162 3163 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" 3164 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 3165 width="7" height="12" viewBox="0 0 7 12"> 3166 <circle cx="60%" cy="50%" r="12" fill="transparent" /> 3167 <path 3168 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" /> 3169 </svg></div> 3170 <div class="swiper-button-next"><svg 3171 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 3172 width="7" height="10" viewB
3172ox="0 0 7 10" fill="none"> 3173 <path 3174 d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" 3175 fill="#757575" /> 3176 </svg></div> 3177 3178 <!-- Add Pagination --> 3179 <div class="swiper-pagination"></div> 3180 3181 </div> 3182 </div> 3183 3184 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 3185 <!-- product video --> 3186 <style> 3187 .view-video { 3188 display: block; 3189 margin: auto; 3190 padding: 5px 10px; 3191 font-size: 16px; 3192 font-weight: bold; 3193 border: 2px solid #212121; 3194 background: #fff; 3195 } 3196 3197 .view-video .icon-play { 3198 fill: #212121; 3199 vertical-align: middle; 3200 } 3201 3202 .video-modal { 3203 display: none; 3204 position: fixed; 3205 background: rgba(0, 0, 0, .5); 3206 width: 100%; 3207 height: 100%; 3208 overflow: auto; 3209 z-index: 1; 3210 top: 0; 3211 left: 0; 3212 } 3213 3214 .close-video { 3215 position: absolute; 3216 right: 9px; 3217 top: 8%; 3218 z-index: 2; 3219 padding: 5px; 3220 } 3221 3222 .close-video .icon { 3223 width: 30px; 3224 height: 30px; 3225 } 3226 3227 /*responsive iframe */ 3228 .video-container { 3229 position: relative; 3230 padding-bottom: 48.25%; 3231 padding-top: 35px; 3232 height: 0; 3233 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); 3234 } 3235 3236 .video-container iframe { 3237 position: absolute; 3238 top: 60%; 3239 left: 0; 3240 width: 100%; 3241 height: 100%; 3242 } 3243 3244 .youtube { 3245 background-color: #000; 3246 margin-bottom: 30px; 3247 position: relative; 3248 padding-top: 56.25%; 3249 overflow: hidden; 3250 cursor: pointer; 3251 width: 100%; 3252 } 3253 3254 .swiper-slide .youtube { 3255 max-width: 480px; 3256 } 3257 3258 .youtube img { 3259 width: 100%; 3260 top: -16.82%; 3261 left: 0; 3262 opacity: 0.7; 3263 } 3264 3265 .youtube .play-button { 3266 width: 90px; 3267 height: 60px; 3268 background-color: #333; 3269 box-shadow: 0 0 30px rgba(0, 0, 0, 0.6); 3270 z-index: 1; 3271 opacity: 0.8; 3272 border-radius: 6px; 3273 } 3274 3275 .youtube .play-button:before { 3276 content: ""; 3277 border-style: solid; 3278 border-width: 15px 0 15px 26.0px; 3279 border-color: transparent transparent transparent #fff; 3280 } 3281 3282 .youtube img, 3283 .youtube .play-button { 3284 cursor: pointer; 3285 } 3286 3287 .youtube img, 3288 .youtube iframe, 3289 .youtube .play-button, 3290 .youtube .play-button:before { 3291 position: absolute; 3292 } 3293 3294 .youtube .play-button, 3295 .youtube .play-button:before { 3296 top: 50%; 3297 left: 50%; 3298 transform: translate3d(-50%, -50%, 0); 3299 } 3300 3301 .youtube iframe { 3302 height: 100%; 3303 width: 100%; 3304 top: 0; 3305 left: 0; 3306 } 3307 </style> 3308 3309 3310 </div> 3311 </div> 3312 3313 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 3314 3315 </div> 3316 3317
3317<script type="text/javascript"> 3318 if ($(window).width() < 991) { 3319 var direction = 'horizontal' 3320 } else { 3321 var direction = 'vertical' 3322 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 3323 } 3324 var swiper = new Swiper('.gallery-thumbs', { 3325 3326 direction, 3327 slidesPerView: 4.5, 3328 spaceBetween: 12, 3329 navigation: { 3330 nextEl: '.swiper-button-next', 3331 prevEl: '.swiper-button-prev', 3332 } 3333 }); 3334 3335 var swiper = new Swiper('.gallery-mobile', { 3336 //loop: true, 3337 lazy: true, 3338 speed: 300, 3339 resistance: true, 3340 resistanceRatio: 0, 3341 freeModeMomentumRatio: 0.45, 3342 freeModeMomentumVelocityRatio: 1.5, 3343 navigation: { 3344 nextEl: '.swiper-button-next', 3345 prevEl: '.swiper-button-prev', 3346 }, 3347 pagination: { 3348 el: '.swiper-pagination' 3349 }, 3350 useCSS3Transforms: false, 3351 loop: false, 3352 on: { 3353 init: function () { 3354 console.log('swiper initialized'); 3355 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 3356 currentVideo.trigger('play'); 3357 }, 3358 }, 3359 }); 3360 3361 /* GET ALL VIDEOS */ 3362 var sliderVideos = $(".swiper-slide video"); 3363 3364 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 3365 swiper.on('slideChange', function () { 3366 console.log('slide changed'); 3367 /* stop all videos */ 3368 sliderVideos.each(function (index) { 3369 this.currentTime = 0; 3370 }); 3371 3372 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 3373 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 3374 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 3375 prevVideo.trigger('stop'); 3376 currentVideo.trigger('play'); 3377 }); 3378 3379
3380 $("[data-video]").click(function () { 3381 const file = $(this).data("video") 3382 $(".product-single__video").show() 3383 $(".product-single__image").hide() 3384 $(".product-single__video").find("video").attr("src", file) 3385 $(".product-single__video").find("video")[0].play(); 3386 }) 3387 $("[data-image]").click(function () { 3388 $(".product-single__video").hide() 3389 $(".product-single__image").show() 3390 $(".product-single__video").find("video")[0].pause(); 3391 }) 3392 3393 $("#product-image .swiper-slide").each(function () { 3394 let width = $(this).width() 3395 $(this).height(width) 3396 }) 3397 3398 $(window).resize(function () { 3399 $("#product-image .swiper-slide").each(function () { 3400 let width = $(this).width() 3401 $(this).height(width) 3402 }) 3403 }) 3404 </script>
3404 3405 3406 </div> 3407 3408 3409 <div class="grid__item_product-info mb-3"> 3410 <div class="c-pdp-product-info"> 3411 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 3412 3413 <li>SARANAJITU merupakan link login dan daftar situs toto togel 3414 terpercaya yang menghadirkan fitur prediksi Bandar Macau Verified, 3415 akses cepat, layanan profesional, serta berbagai pasaran populer 3416 untuk pengalaman bermain yang nyaman setiap hari.</li> 3417 3418 3419 3420 3421 </ul> 3422 </div> 3423 </div> 3424 3425 3426 3427 3428 3429 <style> 3430 .c-pdp-product-info__service--active { 3431 font-family: 'Poppins', 'Orbitron', Arial, sans-serif; 3432 font-size: 13px; 3433 line-height: 1.7; 3434 padding: 18px 22px; 3435 text-align: left; 3436 max-width: 650px; 3437 margin: 18px auto; 3438 color: #fff; 3439 position: relative; 3440 overflow: hidden; 3441 3442 background: 3443 linear-gradient(135deg, 3444 rgba(0, 0, 0, .96) 0%, 3445 rgba(45, 0, 0, .95) 45%, 3446 rgba(110, 0, 0, .95) 100%); 3447 3448 border: 1px solid #ffcc00; 3449 border-radius: 18px; 3450 3451 box-shadow: 3452 0 0 12px rgba(255, 0, 0, .8), 3453 0 0 28px rgba(255, 0, 0, .55), 3454 inset 0 0 18px rgba(255, 80, 80, .22); 3455 } 3456 3457 .c-pdp-product-info__service--active::before { 3458 content: ""; 3459 position: absolute; 3460 top: 0; 3461 left: -120%; 3462 width: 55%; 3463 height: 100%; 3464 background: linear-gradient(90deg, 3465 transparent, 3466 rgba(255, 255, 255, .28), 3467 transparent); 3468 transform: skewX(-25deg); 3469 animation: alexisGlass 3s linear infinite; 3470 pointer-events: none; 3471 } 3472 3473 .c-pdp-product-info__service--active li { 3474 list-style: none; 3475 position: relative; 3476 padding-left: 22px; 3477 margin-bottom: 8px; 3478 color: #f5f5f5; 3479 text-shadow: 0 0 6px rgba(255, 0, 0, .45); 3480 } 3481 3482 .c-pdp-product-info__service--active li::before { 3483 content: "â"; 3484 position: absolute; 3485 left: 0; 3486 top: 0; 3487 color: #ffcc00; 3488 text-shadow: 3489 0 0 8px #ff0000, 3490 0 0 12px #ffcc00; 3491 font-size: 11px; 3492 } 3493 3494 .c-pdp-product-info { 3495 background: 3496 radial-gradient(circle at top, 3497 rgba(255, 0, 0, .35) 0%, 3498 rgba(65, 0, 0, .9) 45%, 3499 #050000 100%); 3500 padding: 18px; 3501 margin: 0; 3502 border-top: 1px solid rgba(255, 204, 0, .7); 3503 border-bottom: 1px solid rgba(255, 0, 0, .8); 3504 box-shadow: 3505 inset 0 0 35px rgba(255, 0, 0, .25), 3506 0 0 25px rgba(255, 0, 0, .35); 3507 } 3508 3509 .freeship em { 3510 font-family: 'Poppins', Arial, sans-serif; 3511 font-style: italic; 3512 font-size: 13px !important; 3513 color: #ffdf70; 3514 text-shadow: 0 0 8px rgba(255, 0, 0, .8); 3515 letter-spacing: .3px; 3516 } 3517 3518 @keyframes alexisGlass { 3519 100% { 3520 left: 150%; 3521 } 3522 } 3523 </style> 3524 3525
3525<script type="text/javascript"> 3526 $(document).ready(function () { 3527 if ($(".c-pdp-product-info__service li").length == 1) { 3528 $(".c-pdp-product-info__service").addClass("no-bullet"); 3529 $(".c-pdp-product-info__service li").addClass("no-bullets"); 3530 } 3531 }); 3532 </script>
3532 3533 </div> 3534 <div id="product-meta" class="col-lg-5 p-0"> 3535 <div class="product-meta"> 3536 <style> 3537 .product-meta--review { 3538 margin-top: 10px 3539 } 3540 3541 .freeship * { 3542 font-size: 14px !important; 3543 font-style: normal; 3544 } 3545 </style> 3546 <h1 itemprop="name" class="mb-2" style="color: #ffffff; font-weight: bold;"> 3547 SARANAJITU = Petualangan Games Digital No#1 Viral Sosial Media 3548 Resmi Tersedia</h1> 3549 3550 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 3551 <meta itemprop="priceCurrency" content="IDR"> 3552 3553 <link itemprop="availability" href="https://schema.org/InStock"> 3554
3554<script type="text/javascript" 3555 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 3556 async="async"></script>
3556 3557 3558 3559 3560 3561 <span class="visually-hidden">Translation missing: 3562 en.products.general.regular_price</span> 3563 3564 <span class="visually-hidden">Translation missing: 3565 en.products.general.sale_price</span> 3566 3567 <div class="row no-gutters mb-3"> 3568 <span id="ProductPrice" class="h2 ProductPrice" itemprop="price" 3569 content="835000" style="color: #ffffff;"> 3570 Rp 5.000 </span> 3571 <div class="discount-product-detail"> 3572 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 3573 Rp 50.000 3574 </p> 3575 <span class=" tag-discount"> 3576 3577 3578 <span id="newDiscount" 3579 class="product-tag persentase-discount hide"> 3580 (90%) 3581 </span><br> 3582 3583 </span> 3584 </div> 3585 </div> 3586 3587 <div class="row no-gutters meta-sds"> 3588 <div class="col-12 mb-2 mb-lg-0 stock-info"> 3589 3590 3591 <span id="ProductStock-Product" 3592 class="product-single__stock mb-2 hide"> 3593 3594 3595 3596 3597 Barang dikirim pada 3598 3599 3600 3601 </span> 3602 3603 <style> 3604 .short-desc-desktop { 3605 margin-bottom: 108px; 3606 color: rgb(255, 255, 255); 3607 text-align: justify; 3608 } 3609 3610 .short-desc ul li:nth-child(n + 4) { 3611 display: none; 3612 } 3613 3614 .short-desc ul li.showList:nth-child(n + 4) { 3615 display: list-item; 3616 } 3617 3618 label.more { 3619 display: none; 3620 } 3621 3622 label.more.showMe { 3623 display: block; 3624 font-size: 12px; 3625 text-transform: uppercase; 3626 font-weight: 700; 3627 cursor: pointer; 3628 } 3629 </style> 3630 3631 <div class="short-desc-desktop d-none d-lg-block"> 3632 <div class="short-desc"> 3633 3634 <p> 3635 SARANAJITU hadir sebagai infrastruktur digital utama yang menyediakan tautan masuk (login) serta 3636 pendaftaran situs toto togel terpercaya. Dirancang khusus untuk memfasilitasi kebutuhan para 3637 pencinta pasaran angka online, platform ini mengintegrasikan sistem yang sangat responsif 3638 didukung arsitektur teknologi modern. Kombinasi tersebut memastikan proses autentikasi akun 3639 berjalan dalam hitungan detik, sekaligus menyajikan pengalaman bermain yang adaptif dan nyaman 3640 saat diakses melalui berbagai perangkat pilihan Anda (komputer, tablet, maupun smartphone). 3641 </p> 3642 <p> 3643 Salah satu pilar informasi yang menjadi fasilitas favorit bagi para pengguna di platform kami adalah 3644 ketersediaan fitur Prediksi Bandar Macau Verified. Layanan data ini disusun secara sistematis untuk 3645 menyajikan referensi analisis yang akurat setiap harinya. Melalui fitur ini, para pemain dapat dengan 3646 mudah mengikuti dinamika serta rekam jejak perkembangan pasaran populer secara akurat untuk 3647 mendukung ketepatan strategi penempatan angka mereka. 3648 </p> 3649 </div> 3650 <label class="more">Show More â</label> 3651 </div><br> 3652 3653 3654
3654<script type="text/javascript"> 3655 var liCount; 3656 $(document).ready(function () { 3657 $(".short-desc ul").each(function () { 3658 liCount = $(this).children("li").length; 3659 if (liCount > 3) { 3660 $(this).parent(".short-desc").next(".more").addClass("showMe"); 3661 } 3662 }); 3663 3664 $(".more").click(function () { 3665 //$(".short-desc").find("li").addClass("showList"); 3666 // $(this).hide(); 3667 $("#product-desc").find("ul").show() 3668 $('html, body').animate({ 3669 scrollTop: $("#product-desc").offset().top - 250 3670 }, 2000); 3671 $("#product-desc").css("height", "auto"); 3672 $("#more_content").remove(); 3673 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 3674 }); 3675 }); 3676 </script>
3676 3677 3678 3679 </div> 3680 </div> 3681 3682 <div id="purchaseProduct"> 3683 3684 3685 3686 3687 <style> 3688 .variant-metafield { 3689 display: block !important; 3690 width: 1px; 3691 padding: 0; 3692 border-color: #fff; 3693 } 3694 3695 .select2-results__option[aria-disabled] { 3696 display: none; 3697 } 3698 3699 .towel-bordir { 3700 width: 100%; 3701 display: flex; 3702 align-items: center; 3703 justify-content: space-around; 3704 } 3705 </style> 3706 3707 3708 3709 3710
3710<script type="text/javascript"> 3711 3712 3713 </script>
3713 3714 3715 3716 3717 3718 3719 3720 <select name="id[]" id="productSelect" 3721 class="product-single__variants ignore hide hide"> 3722 3723 3724 3725 <option selected="selected" data-sku="OBVSTF6810" 3726 value="44083045826775"> 3727 Default Title 3728 </option> 3729 3730 3731 3732 </select> 3733 3734
3734<script 3735 src="https://outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" 3736 type="text/javascript"></script>
3736 3737 3738
3738<script type="text/javascript"> 3739 $('.size-chart-open-popup').magnificPopup({ 3740 type: 'inline', 3741 midClick: true 3742 }); 3743 </script>
3743 3744 3745 3746 3747 3748 <div class="upload-image-preview"> 3749 3750 3751 3752 3753 3754 <style> 3755 .file-dnd * { 3756 margin: 0; 3757 padding: 0; 3758 box-sizing: border-box; 3759 } 3760 3761 .file-dnd { 3762 width: 100%; 3763 height: 250px; 3764 border: 1px solid #ddd; 3765 border-radius: 10px; 3766 padding: 15px; 3767 display: flex; 3768 flex-direction: column; 3769 gap: 10px; 3770 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 3771 margin: auto; 3772 } 3773 3774 .file-dnd input { 3775 display: none; 3776 } 3777 3778 .file-dnd .before-upload { 3779 border: 1px dashed #888; 3780 flex: 1; 3781 border-radius: 5px; 3782 display: flex; 3783 justify-content: center; 3784 align-items: center; 3785 text-align: center; 3786 cursor: pointer; 3787 } 3788 3789 .file-dnd .before-upload>div { 3790 display: flex; 3791 flex-direction: column; 3792 align-items: center; 3793 gap: 8px; 3794 } 3795 3796 .file-dnd .before-upload>div h4 { 3797 width: 150px; 3798 } 3799 3800 .file-dnd .before-upload>div p { 3801 font-size: 12px !important; 3802 color: #555; 3803 } 3804 3805 .file-dnd.active .before-upload { 3806 border: 1px solid #5750d9; 3807 background-color: #f5f5ff; 3808 } 3809 3810 .file-dnd .after-upload { 3811 position: relative; 3812 display: none; 3813 } 3814 3815 .file-dnd .after-upload img { 3816 width: 100%; 3817 border-radius: 5px; 3818 max-height: 180px; 3819 object-fit: contain; 3820 display: block; 3821 } 3822 3823 .file-dnd .after-upload .clear-btn { 3824 position: absolute; 3825 top: 10px; 3826 right: 10px; 3827 background: rgba(0, 0, 0, 0.5); 3828 width: 15px; 3829 height: 15px; 3830 text-align: center; 3831 line-height: 15px; 3832 border-radius: 50%; 3833 color: #fff; 3834 cursor: pointer; 3835 font-size: 14px; 3836 } 3837 </style> 3838 3839 <div class="file-dnd mb-3" style="display: none"> 3840 <label for="upload-photo">Upload your Photo:</label> 3841 <input type="file" id="upload-photo" accept="image/*"> 3842 <input type="hidden" data-properties="Photo"> 3843 <div class="before-upload"> 3844 <div> 3845 <svg id="surface1" 3846 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 3847 width="33.053" height="41.719" 3848 viewB
3848ox="0 0 33.053 41.719"> 3849 <path id="Path_2149" data-name="Path 2149" 3850 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" 3851 transform="translate(-0.5)" fill="#ababab"> 3852 </path> 3853 <path id="Path_2150" data-name="Path 2150" 3854 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" 3855 transform="translate(-81.947 -369.183)" 3856 fill="#ababab"></path> 3857 <path id="Path_2151" data-name="Path 2151" 3858 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" 3859 transform="translate(-108.776 -156.421)" 3860 fill="#ababab"></path> 3861 </svg> 3862 3863 <h4>Drag & Drop Photo file or Browse</h4> 3864 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3865 </div> 3866 </div> 3867 <div class="after-upload"> 3868 <div class="clear-btn">×</div> 3869 <img src="" width="" height=""> 3870 </div> 3871 </div> 3872
3872<script type="text/javascript"> 3873 function applyDndFile(el) { 3874 const parent = document.querySelector(".file-dnd") 3875 const beforeUploadEl = el.querySelector(".before-upload") 3876 const afterUploadEl = el.querySelector(".after-upload") 3877 const inputFile = el.querySelector("input[type=file]") 3878 const imagePreview = el.querySelector(".after-upload img") 3879 const clearBtn = el.querySelector(".after-upload .clear-btn") 3880 const inputProps = parent.querySelector("[data-properties]"); 3881 3882 async function upload(name, uri, type) { 3883 try { 3884 const filename = name.split('.')[0] 3885 let formData = new FormData(); 3886 formData.append("file", uri); 3887 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3888 method: "POST", 3889 body: formData 3890 }) 3891 if (response) { 3892 const res = await response.json() 3893 return res 3894 } 3895 } catch (err) { 3896 console.log(err) 3897 } 3898 } 3899 3900 function showImagePreview(img) { 3901 if (img) { 3902 const blobUrl = URL.createObjectURL(img) 3903 imagePreview.src = blobUrl 3904 afterUploadEl.style.display = "block" 3905 beforeUploadEl.style.display = "none" 3906 } 3907 } 3908 3909 beforeUploadEl.addEventListener("click", (e) => { 3910 e.preventDefault() 3911 inputFile.click() 3912 }) 3913 3914 inputFile.addEventListener("change", async (e) => { 3915 e.preventDefault() 3916 showImagePreview(e.target.files[0]) 3917 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3918 inputProps.value = uploadData?.url 3919 }) 3920 3921 clearBtn.addEventListener("click", (e) => { 3922 afterUploadEl.style.display = "none" 3923 beforeUploadEl.style.display = "flex" 3924 inputProps.value = "" 3925 }) 3926 3927 beforeUploadEl.addEventListener("dragover", (e) => { 3928 e.preventDefault() 3929 el.classList.add("active") 3930 }) 3931 3932 beforeUploadEl.addEventListener("dragleave", (e) => { 3933 e.preventDefault() 3934 el.classList.remove("active") 3935 }) 3936 3937 beforeUploadEl.addEventListener("drop", async (e) => { 3938 e.preventDefault() 3939 el.classList.remove("active") 3940 showImagePreview(e.dataTransfer.files[0]) 3941 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3942 console.log(uploadData) 3943 inputProps.value = uploadData?.url 3944 }) 3945 } 3946 3947 applyDndFile(document.querySelector(".file-dnd")) 3948 3949 $(document).ready(function () { 3950 $(".variant-swatch").change(function () { 3951 const v = $(this).val().toLowerCase() 3952 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3953 if (list.some(item => v.includes(item))) return $(".file-dnd").show() 3954 $(".file-dnd").hide() 3955 $(".file-dnd").find("[data-properties]").val("") 3956 $(".after-upload").hide() 3957 $(".before-upload").css("display", "flex") 3958 }) 3959 }) 3960 </script>
3960 3961 3962 </div> 3963 3964 <div class="delivery-city mb-4"> 3965 <h4 class="fw-600 text-uppercase mb-15" style=" 3966color:#ffffff; 3967text-align:center; 3968font-family:'Orbitron','Poppins',sans-serif; 3969font-weight:700; 3970letter-spacing:2px; 3971 3972text-shadow: 39730 0 5px #ffcc00, 39740 0 10px #ffcc00, 39750 0 20px #ff9900, 39760 0 30px #ff6600; 3977 3978background:linear-gradient( 397990deg, 3980#ffffff 0%, 3981#ffd700 50%, 3982#ffffff 100% 3983); 3984 3985-webkit-background-clip:text; 3986-webkit-text-fill-color:transparent; 3987background-clip:text; 3988 3989position:relative; 3990"> 3991 </h4> 3992 <h4 class="fw-600 text-uppercase mb-15" style="color: #ffffff;text-align: center; text-shadow: 39930 0 5px #ff0000, 39940 0 10px #ff0000, 39950 0 20px #ff6600, 39960 0 30px #ffcc00;"><i>- SEO 3997 A7x â¢-</i> 3998 </h4> 3999 </div> 4000 4001 <style> 4002 @media (max-width: 768px) { 4003 .select2-search__field { 4004 pointer-events: none !important; 4005 4006 } 4007 4008 .select2-search { 4009 display: none !important; 4010 } 4011 } 4012 </style> 4013 4014
4014<script type="text/javascript"> 4015 $(document).ready(function () { 4016 // Check if mobile 4017 if (window.innerWidth <= 768) { 4018 // When cities select2 opens on mobile, remove focus from search 4019 $('#cities').on('select2:open', function () { 4020 setTimeout(function () { 4021 $('.select2-search__field').blur(); 4022 $('.select2-search__field').prop('readonly', true); 4023 }, 100); 4024 }); 4025 } 4026 }); 4027 </script>
4027 4028 4029 <style> 4030 .icon-img-footer { 4031 width: 80px; 4032 padding: 0px 5px; 4033 } 4034 4035 @media (min-width: 768px) { 4036 .icon-img-footer { 4037 width: 120px; 4038 } 4039 } 4040 4041 @media (min-width: 992px) { 4042 .icon-img-footer { 4043 width: 120px; 4044 } 4045 } 4046 </style> 4047 4048 </div> 4049 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 4050 <div class="purchaseArea"> 4051 <div class="sectionPurchase sectionPurchaseSpotify"> 4052 <div class="wrapperPurchase"> 4053 <div class="headerPurchase"> 4054 <h3>personalize spotify photo print</h3> 4055 <a class="close-purchase-popup"> 4056 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 4057 width="18" height="18" viewBox="0 0 18 18" 4058 fill="none"> 4059 <path 4060 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" 4061 fill="black"></path> 4062 </svg> 4063 </a> 4064 </div> 4065 <div class="contentPurchase"> 4066 <div class="spotifyAddons"></div> 4067 </div> 4068 4069 <div class="purchase-button btn-addon row m-0" 4070 style="display: none;"> 4071 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4072 <button 4073 class="back-purchase-button back-addon text-uppercase"> 4074 <svg width="15" height="14" viewBox="0 0 15 14" 4075 fill="none" 4076 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 4077 <path 4078 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" 4079 fill="black"></path> 4080 </svg> 4081 <sp
4081an>Back</span> 4082 </button> 4083 </div> 4084 <div class="col-12 col-lg-10 text-right" 4085 style="display: flex;justify-content: end;gap: 20px;"> 4086 <button 4087 class="btn next-purchase-button next-addon text-uppercase"> 4088 <span>continue without add-ons</span> 4089 </button> 4090 </div> 4091 </div> 4092 </div> 4093 </div> 4094 </div> 4095 </div> 4096 4097 <style> 4098 #PBarNextFrameWrapper { 4099 display: none; 4100 } 4101 4102 #backgroundPopup { 4103 display: none; 4104 position: fixed; 4105 _position: absolute; 4106 height: 100%; 4107 width: 100%; 4108 top: 0; 4109 left: 0; 4110 background: rgb(117 117 117 / 24%); 4111 z-index: 1; 4112 } 4113 4114 .sectionPurchase { 4115 height: 100%; 4116 position: relative; 4117 max-width: 1344px; 4118 background-color: #fff; 4119 padding: 0; 4120 overflow: hidden; 4121 /* Changed from auto to hidden */ 4122 display: flex; 4123 flex-direction: column; 4124 } 4125 4126 .sectionPurchase.purchaseAddonSpotify { 4127 max-width: 1070px !important; 4128 max-height: 765px !important; 4129 } 4130 4131 .sectionPurchaseBoard { 4132 max-width: 872px !important; 4133 max-height: 821px !important; 4134 } 4135 4136 .purchaseAddonSpotify .btn-action { 4137 position: absolute; 4138 bottom: 0; 4139 left: 0; 4140 width: 100%; 4141 display: flex; 4142 gap: 10px; 4143 } 4144 4145 .wrapperPurchase { 4146 position: relative; 4147 height: 100%; 4148 display: flex; 4149 flex-direction: column; 4150 } 4151 4152 /* New styles for scrollable content and sticky button */ 4153 .purchase-content { 4154 flex: 1; 4155 overflow-y: auto; 4156 overflow-x: hidden; 4157 padding: 20px; 4158 } 4159 4160 .purchase-button-wrapper { 4161 position: sticky; 4162 bottom: 0; 4163 background-color: #fff; 4164 border-top: 1px solid #e0e0e0; 4165 padding: 15px 0; 4166 margin-top: auto; 4167 z-index: 10; 4168 } 4169 4170 .purchasePopup { 4171 display: none; 4172 position: fixed; 4173 background: rgb(117 117 117 / 24%); 4174 z-index: 999; 4175 padding: 40px; 4176 font-size: 13px; 4177 top: 0; 4178 left: 0; 4179 width: 100%; 4180 height: 100%; 4181 } 4182 4183 .popupPurchaseClose { 4184 font-size: 14px; 4185 line-height: 14px; 4186 right: 45px; 4187 top: 45px; 4188 position: absolute; 4189 color: #6fa5fd; 4190 font-weight: 700; 4191 display: block; 4192 cursor: pointer; 4193 } 4194 4195 .headerPurchase { 4196 margin-bottom: 30px; 4197 display: flex; 4198 justify-content: space-between; 4199 } 4200 4201 .headerPurchase h3 { 4202 font-size: 16px; 4203 text-transform: uppercase; 4204 } 4205 4206 .sectionPurchaseBoard .headerPurchase { 4207 margin-bottom: 15px; 4208 } 4209 4210 .sectionPurchaseBoard .formAddressPurchase { 4211 padding-top: 0;
4212 } 4213 4214 .purchaseArea { 4215 position: relative; 4216 height: 100%; 4217 } 4218 4219 .purchaseArea h4 { 4220 width: 100%; 4221 font-size: 12px; 4222 font-weight: 600; 4223 margin-bottom: 10px; 4224 text-transform: uppercase; 4225 } 4226 4227 .menuPurchase { 4228 margin-bottom: 30px; 4229 } 4230 4231 .menuPurchase ul { 4232 list-style-type: none; 4233 margin: 0; 4234 } 4235 4236 4237 .menuPurchase ul li { 4238 display: inline-block; 4239 border: 1px solid #212121; 4240 padding: 5px 20px; 4241 margin-right: 5px; 4242 margin-bottom: 10px; 4243 font-size: 12px; 4244 font-weight: 400; 4245 } 4246 4247 .menuPurchase ul li:hover, 4248 .menuPurchase ul li.selected { 4249 background-color: #ffffff; 4250 color: #ffffff; 4251 } 4252 4253 .contentPurchase h5 { 4254 font-size: 12px; 4255 margin-bottom: 10px; 4256 font-weight: 400; 4257 overflow: hidden; 4258 } 4259 4260 /* Card */ 4261 4262 #itemCards { 4263 max-height: 430px; 4264 overflow: auto; 4265 } 4266 4267 .item-cards { 4268 width: 100%; 4269 } 4270 4271 .item-card.selected { 4272 border: 1px solid #212121; 4273 } 4274 4275 .item-card:hover { 4276 border: 1px solid #C4C4C4; 4277 } 4278 4279 .item-cards .item-card { 4280 position: relative; 4281 width: calc(33% - 10px); 4282 max-width: calc(33% - 10px); 4283 flex: 0 0 calc(33% - 10px); 4284 margin-bottom: 20px; 4285 } 4286 4287 .item-cards .item-card label, 4288 .item-addons .item-addon label { 4289 position: absolute; 4290 left: 0; 4291 width: 100%; 4292 height: 100%; 4293 } 4294 4295 .item-cards .item-card .card-image img, 4296 .item-addons .item-addon .card-image img { 4297 display: block; 4298 width: 100%; 4299 } 4300 4301 .item-card .card-meta, 4302 .item-addon .card-meta { 4303 padding: 10px 5px 5px; 4304 } 4305 4306 .item-card.selected .card-meta, 4307 .item-addon.selected .card-meta, 4308 .item-card.selected .card-qty { 4309 background-color: #212121; 4310 color: #fff; 4311 visibility: visible !important; 4312 } 4313 4314 .item-card:hover .card-meta, 4315 .item-addon:hover .card-meta, 4316 .item-card:hover .card-qty { 4317 background-color: #C4C4C4; 4318 color: #fff; 4319 visibility: visible !important; 4320 } 4321 4322 .item-cards .item-card p, 4323 .item-addons .item-addon p { 4324 font-size: 12px !important; 4325 margin: 0; 4326 font-weight: 600; 4327 } 4328 4329 .item-card .card-meta input, 4330 .item-addon .card-meta input { 4331 display: none; 4332 } 4333 4334 .item-cards .item-card h5, 4335 .item-addons .item-addon h5 { 4336 text-transform: uppercase; 4337 max-height: 35px; 4338 } 4339 4340 @media (max-width: 768px) { 4341 .item-cards .item-card { 4342 width: calc(50% - 10px
4342); 4343 max-width: calc(50% - 10px); 4344 flex: 0 0 calc(50% - 10px); 4345 margin-bottom: 0; 4346 } 4347 } 4348 4349 .card-qty { 4350 display: flex; 4351 padding: 5px; 4352 visibility: hidden; 4353 background-color: #fff !important; 4354 z-index: 999; 4355 } 4356 4357 .card-qty a { 4358 border-width: 1px; 4359 width: 30%; 4360 cursor: pointer; 4361 text-align: center; 4362 align-self: center; 4363 height: 28px; 4364 display: block; 4365 position: relative; 4366 } 4367 4368 .card-qty a svg { 4369 position: absolute; 4370 top: 50%; 4371 left: 50%; 4372 transform: translate(-50%, -50%); 4373 text-align: center; 4374 } 4375 4376 input.btn-qty { 4377 border-width: 0px; 4378 border-radius: 0; 4379 background-color: #fff; 4380 -webkit-appearance: none; 4381 box-shadow: none !important; 4382 -webkit-box-shadow: none !important; 4383 -moz-box-shadow: none !important; 4384 width: 40%; 4385 border-left: 1px solid #c4c4c4; 4386 border-right: 1px solid #c4c4c4; 4387 padding: 0; 4388 } 4389 4390 .sectionPurchaseBoard #itemAddons .item-card { 4391 width: calc(20% - 15px); 4392 max-width: calc(20% - 15px); 4393 flex: 0 0 calc(20% - 15px); 4394 } 4395 4396 .purchase-button { 4397 width: 100%; 4398 padding: 0; 4399 /* Reset padding as it's now handled by wrapper */ 4400 margin: 0; 4401 } 4402 4403 .sectionPurchaseBoard .purchase-button { 4404 margin-top: 0 !important; 4405 /* Reset margin */ 4406 } 4407 4408 .back-purchase-button, 4409 .back-spotify { 4410 width: 139px; 4411 border: 1px solid; 4412 height: 43px; 4413 } 4414 4415 .purchase-button .btn { 4416 width: 297px; 4417 height: 43px; 4418 background-color: #212121; 4419 color: #000000; 4420 } 4421 4422 .purchase-button .btn[disabled] { 4423 background-color: #EEEEEE; 4424 } 4425 4426 .back-purchase-button svg, 4427 .back-spotify svg { 4428 align-self: center; 4429 vertical-align: middle; 4430 margin-right: 10px; 4431 } 4432 4433 #purchaseProduct .row .error { 4434 font-size: 12px !important; 4435 color: orange; 4436 margin-top: 5px; 4437 } 4438 4439 .reviewCardPurchase { 4440 max-width: 448px; 4441 float: right; 4442 } 4443 4444 .addonsPurchase .addon-item { 4445 display: flex; 4446 justify-content: space-between; 4447 } 4448 4449 .addon-item * { 4450 align-self: center; 4451 font-size: 12px; 4452 } 4453 4454 .addon-itm-title { 4455 width: 360px; 4456 } 4457 4458 .addon-itm-line-price { 4459 color: #757575; 4460 width: 80px; 4461 justify-content: space-between; 4462 display: flex; 4463 } 4464 4465 .propsAddonSpotify p { 4466 margin: 0; 4467 display: flex; 4468 font-size: 12px !important; 4469 margin-bottom: 5px; 4470 } 4471 4472 .propsAddonSpotify p span:first-child { 4473 text-transform: uppercase; 4474 font-weight: 600; 4475 -ms-flex: 0 0 150px; 4476 flex: 0 0 150px; 4477 max-width: 150px; 4478 } 4479 4480 .addonsPurchase .addons { 4481 max-height: 250px; 4482 overflow: auto; 4483 } 4484 4485 .btn .loading:after { 4486 content: ""; 4487 display: inline-block;
4488 width: 20px; 4489 height: 20px; 4490 padding: 3px; 4491 aspect-ratio: 1; 4492 border-radius: 50%; 4493 background: #000000; 4494 --_m: conic-gradient(#0000 10%, #212121), linear-gradient(#212121 0 0) content-box; 4495 -webkit-mask: var(--_m); 4496 mask: var(--_m); 4497 -webkit-mask-composite: source-out; 4498 mask-composite: subtract; 4499 animation: l3 1s infinite linear; 4500 margin: auto; 4501 vertical-align: middle; 4502 margin-left: 10px; 4503 } 4504 4505 #qrcode img, 4506 #qrcode canvas { 4507 width: 50px; 4508 position: absolute; 4509 top: 12px; 4510 left: 16px; 4511 } 4512 4513 .t-preview { 4514 position: absolute; 4515 top: 17px; 4516 left: 75px; 4517 } 4518 4519 .t-preview p { 4520 margin: 0; 4521 font-size: 12px !important; 4522 } 4523 4524 .t-preview .h3 { 4525 font-size: 16px !important; 4526 margin-bottom: 5px; 4527 font-weight: 600; 4528 } 4529 4530 .scanCard { 4531 width: 100%; 4532 border: 1px solid; 4533 height: 76px; 4534 background-color: #fff; 4535 } 4536 4537 .scanCard>div>img { 4538 position: absolute; 4539 right: 0; 4540 width: 55px; 4541 } 4542 4543 @keyframes l3 { 4544 100% { 4545 transform: rotate(1turn); 4546 } 4547 } 4548 4549 @media (min-width: 991px) { 4550 .sectionPurchase { 4551 height: 100%; 4552 position: relative; 4553 max-width: 1344px; 4554 background-color: #fff; 4555 top: 50%; 4556 left: 50%; 4557 transform: translate(-50%, -50%); 4558 } 4559 4560 .headerPurchase h3 { 4561 font-size: 20px; 4562 } 4563 4564 .purchaseArea h4 { 4565 font-size: 16px; 4566 } 4567 4568 .menuPurchase ul li { 4569 font-size: 16px; 4570 } 4571 4572 .contentPurchase { 4573 margin-bottom: 30px; 4574 } 4575 4576 .contentPurchase h5 { 4577 font-size: 16px; 4578 } 4579 4580 .item-cards .item-card p, 4581 .item-addons .item-addon p { 4582 font-size: 16px !important; 4583 } 4584 4585 .cards { 4586 float: right; 4587 width: 400px; 4588 } 4589 4590 .item-cards .item-card { 4591 width: calc(25% - 30px); 4592 max-width: calc(25% - 30px); 4593 flex: 0 0 calc(25% - 30px); 4594 } 4595 4596 #itemAddons .item-card { 4597 position: relative; 4598 width: calc(16% - 40px); 4599 max-width: calc(16% - 40px); 4600 flex: 0 0 calc(16% - 40px); 4601 } 4602 4603 .purchase-button-wrapper { 4604 padding: 10px 20px; 4605 } 4606 } 4607 4608 @media (max-width: 1200px) { 4609 .item-cards .item-card { 4610 width: calc(33% - 30px); 4611 max-width: calc(33% - 30px); 4612 flex: 0 0 calc(33% - 30px); 4613 } 4614 } 4615 4616 @media (max-width: 992px) { 4617 .purchasePopup { 4618 padding: 0; 4619 } 4620 4621 .item-cards .item-card h5, 4622 .item-addons .item-addon h5 { 4623 max-height: 30px; 4624 } 4625 4626 .back-purchase-button, 4627 .back-spotify, 4628 .next-purchase-button { 4629 width: 100%; 4630 } 4631 4632 .addon-itm-title { 4633 width: 300px; 4634 } 4635 4636 .addon-itm-line-price { 4637 margin-right: 10px; 4638 } 4639 4640 .t-preview { 4641 top: 10px; 4642 } 4643 4644 .card-qty a { 4645 height: 15px; 4646 } 4647 4648 .purchase-button-wrapper { 4649 padding: 15px; 4650 } 4651 } 4652 4653 @media (max-width: 576px) { 4654 .purchase-button .btn { 4655 width: 100% !important; 4656 } 4657 4658 .purchase-button>.col-12 { 4659 padding-left: 0; 4660 padding-right: 0; 4661 } 4662 } 4663 4664 .header-container.row.justify-content-between.pl-lg-0.pr-lg-0 { 4665 background: black; 4666 } 4667 4668 @med 4669 </style> 4670 4671 4672 <div class="purchasePopup"> 4673 <div class="purchaseArea"> 4674 4675 <div 4676 class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 4677 <div class="wrapperPurchase"> 4678 <div class="purchase-content"> 4679 <div class="headerPurchase"> 4680 <h3 class="text-uppercase"> 4681 4682 customize your flower board 4683 4684 </h3> 4685 <a class="close-purchase-popup"> 4686 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 4687 width="18" height="18" viewBox="0 0 18 18" 4688 fill="none"> 4689 <path 4690 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" 4691 fill="black" /> 4692 </svg> 4693 </a> 4694 4695 </div> 4696 <div class="contentPurchase"> 4697 <div class="row"> 4698 4699 <div class="col-12"> 4700 4701 4702 <style> 4703 .customize-papan .group-field-1 .input-field { 4704 float: left; 4705 width: 100%; 4706 height: 317px; 4707 background-color: #E5E5EA; 4708 } 4709 4710 .customize-papan .input-field textarea { 4711 width: 100%; 4712 max-width: 421px; 4713 min-height: 150px; 4714 font-weight: 400; 4715 font-size: 16px; 4716 resize: none; 4717 background-color: #E5E5EA; 4718 position: absolute; 4719 top: 50%; 4720 left: 50%; 4721 transform: translate(-50%, -50%); 4722 text-align: center; 4723 color: #212121; 4724 border: none; 4725 } 4726 4727 .customize-papan .field-papan.group-field-2 .input-field.field-logo { 4728 height: 90px; 4729 margin: 0; 4730 border-radius: 0; 4731 position: relative; 4732 -ms-flex: 0 0 174px; 4733 flex: 0 0 174px; 4734 max-width: 174px; 4735 } 4736 4737 .customize-papan .btn-upload-papan svg { 4738
4738 width: 21px; 4739 height: 25px; 4740 display: block; 4741 align-self: center; 4742 margin: auto; 4743 margin-bottom: 12px; 4744 } 4745 4746 .svgLogoPapan { 4747 position: absolute; 4748 width: 100%; 4749 top: 50%; 4750 left: 50%; 4751 transform: translate(-50%, -50%); 4752 text-align: center; 4753 } 4754 4755 .svgLogoPapan p { 4756 color: #8E8E93; 4757 margin: 0; 4758 } 4759 4760 .svgLogoPapan p span { 4761 font-size: 12px; 4762 color: #FF0E00; 4763 } 4764 4765 .customize-papan .btn-upload-papan img { 4766 margin: auto; 4767 display: block; 4768 position: absolute; 4769 width: 80px; 4770 top: 50%; 4771 left: 50%; 4772 transform: translate(-50%, -50%); 4773 text-align: center; 4774 } 4775 4776 #suggest-messages { 4777 position: absolute; 4778 bottom: 5px; 4779 left: 5px; 4780 } 4781 4782 #suggest-messages a { 4783 border: 1px solid #979797; 4784 background: #fff; 4785 color: #979797; 4786 border-radius: 3px; 4787 padding: 5px 10px; 4788 font-size: 10px; 4789 font-weight: 600; 4790 display: inline-block; 4791 } 4792 4793 .case-occasion .nice-select:after { 4794 border-bottom: 2px solid #333; 4795 border-right: 2px solid #333; 4796 right: 20px; 4797 top: 42%; 4798 width: 10px; 4799 height: 10px; 4800 } 4801 4802 .customize-papan .input-field input { 4803 font-weight: 600; 4804 font-size: 16px; 4805 width: 100%; 4806 height: 90px; 4807 min-height: 44px !important; 4808 border: none; 4809 background: #E5E5EA; 4810 margin: 0; 4811 border-radius: 0; 4812 text-align: center; 4813 color: #212121; 4814 } 4815 4816 .customize-papan .input-field .limit { 4817 position: absolute; 4818 right: 15px; 4819 top: 0; 4820 color: #757575; 4821 } 4822 4823 @media (min-width: 991px) { 4824 .customize-papan:before { 4825 content: ""; 4826 position: absolute; 4827 border: 4px solid #212121; 4828 bottom: -50px; 4829 left: 210px; 4830 width: 100px; 4831 display: block; 4832 -ms-transform: rotate(60deg); 4833 -webkit-transform: rotate(60deg); 4834 transform: rotate(-65deg); 4835 } 4836 4837 .customize-papan:after { 4838 content: ""; 4839 position: absolute; 4840 border: 4px solid #212121; 4841 bottom: -52px; 4842 right: 240px; 4843 width: 100px; 4844 display: block; 4845 -ms-transform: rotate(-120deg); 4846 -webkit-transform: rotate(70deg); 4847 transform: rotate(70deg); 4848 } 4849 } 4850 </style> 4851 4852 <input type="hidden" 4853 data-properties="penerima" value="-"> 4854 <div class="customize-papan"> 4855 <div class="container"> 4856 <div 4857 class="field-papan group-field-1 form-group"> 4858 <div class="input-field"> 4859 <textarea 4860 id="kartu-ucapan-
4860papan" 4861 class="mb-0 has-limit" 4862 type="text" 4863 data-properties="ucapan" 4864 placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 4865(Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4866 <p class="limit">0/100</p> 4867 <div id="suggest-messages"> 4868 <a id="show_note_papan1" 4869 href="#"> 4870 <div class="suggest-message" 4871 id="note_btn_div1"> 4872 <span 4873 class="promo-code-link" 4874 id="note_btn_papan1">Contoh 4875 Kata 4876 WEDDING</span> 4877 </div> 4878 </a> 4879 <a id="show_note_papan2" 4880 href="#"> 4881 <div class="suggest-message" 4882 id="note_btn_div2"> 4883 <span 4884 class="promo-code-link" 4885 id="note_btn_papan2">Contoh 4886 Kata 4887 SELAMAT</span> 4888 </div> 4889 </a> 4890 <a id="show_note_papan3" 4891 href="#"> 4892 <div class="suggest-message" 4893 id="note_btn_div3"> 4894 <sp
4894an 4895 class="promo-code-link" 4896 id="note_btn_papan3">Contoh 4897 Kata DUKA 4898 CITA</span> 4899 </div> 4900 </a> 4901 </div> 4902 </div> 4903 </div> 4904 <div class="hide"> 4905 <input type="hidden" value="" 4906 id="note_id_papan1" 4907 name="note_id_papan1" 4908 style="top: 0px;"> 4909 <input type="hidden" value="" 4910 id="note_btn_id_papan1" 4911 name="note_btn_id_papan1"> 4912 </div> 4913 <div class="hide"> 4914 <input type="hidden" value="" 4915 id="note_id_papan2" 4916 name="note_id_papan2" 4917 style="top: 0px;"> 4918 <input type="hidden" value="" 4919 id="note_btn_id_papan2" 4920 name="note_btn_id_papan2"> 4921 </div> 4922 <div class="hide"> 4923 <input type="hidden" value="" 4924 id="note_id_papan3" 4925 name="note_id_papan3" 4926 style="top: 0px;"> 4927 <input type="hidden" value="" 4928 id="note_btn_id_papan3" 4929 name="note_btn_id_papan3"> 4930 </div> 4931 <div 4932 class="field-papan group-field-2 form-group"> 4933 4934 <label for="logoPapan" 4935 onclick="if (!window.__cfRLUnblockHandlers) return false; " 4936 class="input-field field-logo" 4937 data-cf-modified-6ecfe15fd8defacc6a3ac2c7-=""> 4938 4939 4940 4941 <div 4942 class="btn-upload-papan w-100"> 4943 <?xml version="1.0" encoding="UTF-8"?> 4944 <img src="" 4945 style="display:none"> 4946 <div 4947 class="svgLogoPapan"> 4948 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 4949 width="22" 4950 height="26" 4951 viewB
4951ox="0 0 22 26" 4952 fill="none"> 4953 <path 4954 d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" 4955 fill="black" /> 4956 </svg> 4957 <p>Upload Logo 4958 <span>*optional</span> 4959 </p> 4960 </div> 4961 </div> 4962 4963 </label> 4964 4965 <input type="hidden" 4966 data-properties="papan-logo" 4967 value=""> 4968 <input type="file" 4969 id="logoPapan" 4970 accept="image/*" 4971 style="position: absolute;width: 1px;height: 1px;padding: 0"> 4972 4973 <div class="input-field"> 4974 <input 4975 class="has-limit sender-name" 4976 type="text" 4977 placeholder="Nama Pengirim" 4978 data-properties="pengirim" 4979 maxlength="35" /> 4980 <p class="limit">0/35</p> 4981 </div> 4982 4983 </div> 4984 4985 </div> 4986 </div> 4987 </div> 4988 4989 </div> 4990 </div> 4991 4992 </div> 4993 <div class="purchase-button-wrapper"> 4994 <div class="purchase-button btn-card row m-0"> 4995 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4996 4997 </div> 4998 <div 4999 class="btn-next-card col-12 col-lg-10 text-right"> 5000 5001 5002 <button 5003 class="btn next-purchase-button text-uppercase" 5004 disabled> 5005 <sp
5005an>save your flower board</span> 5006 </button> 5007 </div> 5008 </div> 5009 5010 </div> 5011 </div> 5012 </div> 5013 5014 5015 5016 <div class="sectionPurchase sectionPurchaseBoard hide" 5017 data-section="address"> 5018 <div class="wrapperPurchase"> 5019 <div class="purchase-content"> 5020 <div class="headerPurchase"> 5021 <h3> 5022 Complete Your Order 5023 </h3> 5024 <a class="close-purchase-popup"> 5025 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5026 width="18" height="18" viewBox="0 0 18 18" 5027 fill="none"> 5028 <path 5029 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" 5030 fill="black" /> 5031 </svg> 5032 </a> 5033 5034 </div> 5035 <div class="contentPurchase"> 5036 <div class="row"> 5037 <div class="col-12 position-relative"> 5038 <div class="addressPurchase"> 5039 5040 <h4 class="text-uppercase">recipient 5041 delivery address</h4> 5042 <p>Share the delivery address to send 5043 your heartfelt blooms straight to 5044 their door.</p> 5045 5046 <div class="formAddressPurchase row"> 5047 <div class="col-12"> 5048 <form> 5049 <div 5050 class="form-group row mb-2 mb-lg-4"> 5051 <div 5052 class="col-6 position-relative"> 5053 <input 5054 id="first_name" 5055 type="text" 5056 class="form-control input__field" 5057 placeholder="" 5058 required> 5059 <label 5060 for="first_name" 5061 class="input__label">First 5062 Name<span>*</span></label> 5063 </div> 5064 <div 5065 class="col-6 position-relative"> 5066 <input 5067 id="last_name" 5068 type="text" 5069 class="form-control input__field" 5070 placeholder="" 5071 required> 5072 <label 5073 for="last_name" 5074 class="input__label">Last 5075 Name<span>*</span></label> 5076 </div> 5077 <input type="hidden" 5078 data-properties="nama-penerima"> 5079 </div> 5080 5081 <h4 class="text-uppercase"> 5082 how you want to input 5083 your address</h4> 5084 <div 5085 class="form-group row mb-2 mb-lg-4 form-address-upload"> 5086 <div 5087 class="col-6 position-relative"> 5088 <label 5089 class="address-manualy"> 5090 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5091 width="18" 5092 height="17" 5093 viewB
5093ox="0 0 18 17" 5094 fill="none"> 5095 <path 5096 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
50965 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" 5097 fill="black" /> 5098 </svg> 5099 <span>Input 5100 Address 5101 Manually</span> 5102 </label> 5103 </div> 5104 <div 5105 class="col-6 position-relative"> 5106 <label 5107 for="address-upload" 5108 class="address-upload"> 5109 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5110 width="12" 5111 height="13" 5112 viewB
5112ox="0 0 12 13" 5113 fill="none"> 5114 <path 5115 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" 5116 fill="black" /> 5117 </svg> 5118 <span>Upload 5119 Address 5120 Picture</span> 5121 </label> 5122 <input 5123 id="address-upload" 5124 type="file" 5125 accept="image/png, image/jpeg" 5126 style="position: absolute; padding: 0;width: 1px;height: 1px"> 5127 <input type="hidden" 5128 class="props-address-upload" 5129 data-properties="foto-alamat"> 5130 </div> 5131 </div> 5132 <img width="150" height="" 5133 src="" 5134 class="photo-address" 5135 style="display: none;"> 5136 5137 <div 5138 class="form-group row position-relative mb-2 mb-lg-4 form-address"> 5139 <div class="col-12"> 5140 <textarea 5141 id="delivery_address" 5142 data-properties="alamat-penerima" 5143 class="form-control input__field col-12" 5144 placeholder="" 5145 required></textarea> 5146 <label 5147 for="delivery_address" 5148 class="input__label">Delivery 5149 Address<span>*</span></label> 5150 5151 </div> 5152 </div> 5153 <div 5154 class="form-group row mb-2 mb-lg-4 form-address"> 5155 <div 5156 class="col-6 position-relative"> 5157 <input 5158 id="recipient_number" 5159 type="text" 5160 data-properties="telepon-penerima" 5161 class="form-control input__field" 5162 placeholder="" 5163 required> 5164 <label 5165 for="recipient_number" 5166 class="input__label">Recipient 5167 number<span>*</span></label> 5168 </div> 5169 <div 5170 class="col-6 position-relative"> 5171 <input id="company" 5172 type="text" 5173 data-properties="company" 5174 class="form-control input__field" 5175 placeholder=""> 5176 <label for="company" 5177 class="input__label">Company 5178 (Optional)</label> 5179 </div> 5180 </div> 5181 <div 5182 class="form-group row mb-2 mb-lg-4 form-address"> 5183 <div 5184 class="col-6 position-relative"> 5185 <input id="province" 5186 type="text" 5187 class="form-control input__field" 5188 placeholder="" 5189 value="Jakarta" 5190 data-properties="province"> 5191 <label 5192 for="province" 5193 class="input__label">Province</label> 5194 </div> 5195 <div 5196 class="col-6 position-relative"> 5197 <select id="zip" 5198 class="form-control select-search" 5199 required></select> 5200 </div> 5201 </div> 5202 </form> 5203 </div> 5204 </div> 5205 </div> 5206 <div class="addonsPurchase"> 5207 <h4 class="text-uppercase">add-ons</h4> 5208 <div class="addons"> 5209 <p>No Add-Ons</p> 5210 <!-- 5211 <button class="add-addon"> 5212 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 5213 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 5214 </svg>
5215 <span>Enhance my moment with Add-ons</span> 5216 </button> 5217 --> 5218 </div> 5219 </div> 5220 </div> 5221 5222 </div> 5223 </div> 5224 5225
5225<script type="text/javascript"> 5226 document.addEventListener('DOMContentLoaded', function () { 5227 // Detect iOS 5228 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 5229 5230 if (isIOS) { 5231 document.querySelector('.formAddressPurchase').classList.add('ios'); 5232 5233 // iOS specific fixes 5234 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 5235 5236 inputs.forEach(function (input) { 5237 // Force enable touch events on iOS 5238 input.style.webkitUserSelect = 'text'; 5239 input.style.webkitTouchCallout = 'default'; 5240 input.style.pointerEvents = 'auto'; 5241 input.style.touchAction = 'manipulation'; 5242 5243 // Add explicit touch event listeners for iOS 5244 input.addEventListener('touchstart', function (e) { 5245 e.stopPropagation(); 5246 this.focus(); 5247 }, { passive: false }); 5248 5249 input.addEventListener('touchend', function (e) { 5250 e.preventDefault(); 5251 e.stopPropagation(); 5252 this.focus(); 5253 this.click(); 5254 }, { passive: false }); 5255 5256 // Force focus on tap for iOS 5257 input.addEventListener('click', function (e) { 5258 e.stopPropagation(); 5259 if (document.activeElement !== this) { 5260 this.focus(); 5261 } 5262 }); 5263 }); 5264 5265 // Fix for label overlapping on iOS 5266 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 5267 labels.forEach(function (label) { 5268 label.style.pointerEvents = 'none'; 5269 label.addEventListener('touchstart', function (e) { 5270 e.preventDefault(); 5271 var input = this.parentNode.querySelector('.input__field'); 5272 if (input) { 5273 input.focus(); 5274 } 5275 }); 5276 }); 5277 } 5278 5279 // Handle input state for all browsers, especially iOS 5280 var inputs = document.querySelectorAll('.input__field'); 5281 5282 inputs.forEac
5282h(function (input) { 5283 // Handle input events 5284 input.addEventListener('input', function () { 5285 if (this.value.trim() !== '') { 5286 this.classList.add('has-value'); 5287 } else { 5288 this.classList.remove('has-value'); 5289 } 5290 }); 5291 5292 // Handle focus 5293 input.addEventListener('focus', function () { 5294 this.classList.add('focused'); 5295 // iOS specific: ensure input is visible 5296 if (isIOS) { 5297 setTimeout(function () { 5298 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 5299 }, 300); 5300 } 5301 }); 5302 5303 // Handle blur 5304 input.addEventListener('blur', function () { 5305 this.classList.remove('focused'); 5306 if (this.value.trim() !== '') { 5307 this.classList.add('has-value'); 5308 } else { 5309 this.classList.remove('has-value'); 5310 } 5311 }); 5312 5313 // Initial check for pre-filled values 5314 if (input.value.trim() !== '') { 5315 input.classList.add('has-value'); 5316 } 5317 }); 5318 5319 // Additional iOS fixes 5320 if (isIOS) { 5321 // Prevent iOS Safari from adding default styling 5322 document.addEventListener('touchstart', function () { }, { passive: true }); 5323 5324 // Fix viewport issues on iOS 5325 var viewport = document.querySelector('meta[name=viewport]'); 5326 if (viewport) { 5327 viewport.setAttribute('content', 5328 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 5329 ); 5330 } 5331 } 5332 }); 5333 </script>
5333 5334 </div> 5335 <div class="purchase-button-wrapper"> 5336 <div class="purchase-button btn-address row m-0"> 5337 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 5338 5339 <button 5340 class="back-purchase-button back-address text-uppercase"> 5341 <svg width="15" height="14" 5342 viewBox="0 0 15 14" fill="none" 5343 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 5344 <path 5345 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" 5346 fill="black" /> 5347 </svg> 5348 <span>Back</span> 5349 </button> 5350 5351 </div> 5352 <div 5353 class="btn-next-card col-12 col-lg-10 text-right"> 5354 5355 <!-- 5356 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 5357 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 5358 <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"/> 5359 </svg> 5360 <span>Back</span> 5361 </button> 5362 --> 5363 5364 5365 <button id="addtocart-card" 5366 class="btn next-address text-uppercase"> 5367 <span>add to cart</span> 5368 </button> 5369 </div> 5370 </div> 5371 5372 </div> 5373 </div> 5374 </div> 5375 5376 </div> 5377 </div> 5378 <div id="backgroundPopup"></div> 5379 5380 5381 5382 <input data-index="1" type="hidden" id="properties-delivery-date" 5383 name="properties[Delivery Date]" value="-"> 5384 <input data-index="2" type="hidden" id="properties-delivery-time" 5385 name="properties[Delivery Time]" value="-"> 5386 <input data-index="4" type="hidden" id="properties-nama-penerima" 5387 name="properties[Nama Penerima]" value="-"> 5388 <input data-index="5" type="hidden" id="properties-alamat-penerima" 5389 name="properties[Alamat Penerima]" value="-"> 5390 <input data-index="6" type="hidden" id="properties-kodepos" 5391 name="properties[Kodepos]" value="-"> 5392 <input data-index="7" type="hidden" id="properties-telepon-penerima" 5393 name="properties[Telepon Penerima]"> 5394 5395 5396 <input data-index="8" type="hidden" id="properties-kartu-nama-penerima" 5397 name="properties[Kartu Nama Penerima]" value="-"> 5398 5399 <textarea data-index="9" type="hidden" id="properties-kartu-pesan" 5400 name="properties[Kartu Pesan]" style="display: none">-</textarea> 5401 5402 5403 5404 <input data-index="10" type="hidden" id="properties-kartu-nama-pengirim" 5405 name="properties[Kartu Nama Pengirim]" value="-"> 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 <!-- Additional Shipping --> 5425 <input type="hidden" id="properties-kota-pengiriman-province" 5426 name="properties[Province]"> 5427 <input type="hidden" id="properties-kota-pengiriman-country" 5428 name="properties[Country]" value="Indonesia"> 5429 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 5430 5431 <input type="hidden" id="properties-time" name="properties[Time]"> 5432 <input type="hidden" id="properties-card" name="properties[Card]"> 5433 <input type="hidden" id="properties-addons" name="properties[Addons]"> 5434 5435 <input type="hidden" id="properties-company" name="properties[Company]" 5436 value=""> 5437
5437<script type="text/javascript"> 5438 5439 $(document).ready(function () { 5440 5441 var text_max_papan1 = 150; 5442 var msg_text_papan1 = ""; 5443 $('#kartu-ucapan-ucapan').keyup(function () { 5444 var text_length_papan1 = $('#kartu-ucapan-ucapan').val().length; 5445 var msg_text_papan1 = $('#kartu-ucapan-ucapan').val(); 5446 }); 5447 5448 var notes_papan1 = [ 5449 5450 [0, "Happy Wedding (nama & nama)."], [1, "Congratulations lovebirds (nama & nama)."], [2, "Selamat berbahagia (nama & nama)."], [3, "Selamat menempuh hidup baru (nama & nama)."] 5451 5452 ]; 5453 $('#show_note_papan1').click(function (event) { 5454 event.preventDefault(); 5455 var idx_papan1 = parseInt($('#note_id_papan1').val()); 5456 if (isNaN(idx_papan1)) { 5457 idx_papan1 = 0; 5458 } else { 5459 idx_papan1++; 5460 idx_papan1 = idx_papan1 % notes_papan1.length; 5461 } 5462 var note_papan1 = notes_papan1[idx_papan1][1]; 5463 $('#note_id_papan1').val(idx_papan1); 5464 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 5465 $('#msgDelivery').val(note_papan1); 5466 5467 var text_length_papan1 = $('#kartu-ucapan-papan').val().length; 5468 var idx_2_papan1 = parseInt($('#note_btn_id_papan1').val()); 5469 if (isNaN(idx_2_papan1)) { 5470 idx_2_papan1 = 0; 5471 } else { 5472 idx_2_papan1++; 5473 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5474 } 5475 $('#note_btn_id_papan1').val(idx_2_papan1); 5476 //var note_btn=note_btn_text[idx_2][1]; 5477 //$('#note_btn').text(note_btn); 5478 }); 5479 5480 var text_max_papan2 = 150; 5481 var msg_text_papan2 = ""; 5482 $('#kartu-ucapan-ucapan').keyup(function () { 5483 var text_length_papan2 = $('#kartu-ucapan-ucapan').val().length; 5484 var msg_text_papan2 = $('#kartu-ucapan-ucapan').val(); 5485 }); 5486 5487 var notes_papan2 = [ 5488 5489 [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)."] 5490 5491 ]; 5492 $('#show_note_papan2').click(function (event) { 5493 event.preventDefault(); 5494 var idx_papan2 = parseInt($('#note_id_papan2').val()); 5495 if (isNaN(idx_papan2)) { 5496 idx_papan2 = 0; 5497 } else { 5498 idx_papan2++; 5499 idx_papan2 = idx_papan2 % notes_papan2.length; 5500 } 5501 var note_papan2 = notes_papan2[idx_papan2][1]; 5502 $('#note_id_papan2').val(idx_papan2); 5503 $('#kartu-ucapan-
5503papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 5504 $('#msgDelivery').val(note_papan2); 5505 var text_length_papan2 = $('#kartu-ucapan-papan').val().length; 5506 var idx_2_papan2 = parseInt($('#note_btn_id_papan2').val()); 5507 if (isNaN(idx_2_papan2)) { 5508 idx_2_papan2 = 0; 5509 } else { 5510 idx_2_papan2++; 5511 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5512 } 5513 $('#note_btn_id_papan2').val(idx_2_papan2); 5514 //var note_btn=note_btn_text[idx_2][1]; 5515 //$('#note_btn').text(note_btn); 5516 }); 5517 5518 var text_max_papan3 = 150; 5519 var msg_text_papan3 = ""; 5520 $('#kartu-ucapan-ucapan').keyup(function () { 5521 var text_length_papan3 = $('#kartu-ucapan-ucapan').val().length; 5522 var msg_text_papan3 = $('#kartu-ucapan-ucapan').val(); 5523 }); 5524 5525 var notes_papan3 = [ 5526 5527 [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)."] 5528 5529 ]; 5530 $('#show_note_papan3').click(function (event) { 5531 event.preventDefault(); 5532 var idx_papan3 = parseInt($('#note_id_papan3').val()); 5533 if (isNaN(idx_papan3)) { 5534 idx_papan3 = 0; 5535 } else { 5536 idx_papan3++; 5537 idx_papan3 = idx_papan3 % notes_papan3.length; 5538 } 5539 var note_papan3 = notes_papan3[idx_papan3][1]; 5540 $('#note_id_papan3').val(idx_papan3); 5541 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 5542 $('#msgDelivery').val(note_papan3); 5543 var text_length_papan3 = $('#kartu-ucapan-papan').val().length; 5544 var idx_2_papan3 = parseInt($('#note_btn_id_papan3').val()); 5545 if (isNaN(idx_2_papan3)) { 5546 idx_2_papan3 = 0; 5547 } else { 5548 idx_2_papan3++; 5549 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5550 } 5551 $('#note_btn_id_papan3').val(idx_2_papan3); 5552 //var note_btn=note_btn_text[idx_2][1]; 5553 //$('#note_btn').text(note_btn); 5554 }); 5555 5556 var text_max_papan4 = 150; 5557 var msg_text_papan4 = ""; 5558 $('#kartu-ucapan-ucapan').keyup(function () { 5559 var text_length_papan4 = $('#kartu-ucapan-ucapan').val().length; 5560 var msg_text_papan4 = $('#kartu-ucapan-ucapan').val(); 5561 }); 5562 5563 $('#show_note_papan4').click(function (event) { 5564 var notes_papan4 = [ 5565 [0, "Hereâs to youâsteadier, stronger and better every day."], 5566 [1, "Warmest wishes for a speedy recovery!"], 5567 [2, "Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 5568 [3, "Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 5569 ]; 5570 event.preventDefault(); 5571 var idx_papan4 = parseInt($('#note_id_papan4').val()); 5572 console.log(idx_papan4, 'idx_papan4') 5573 if (isNaN(idx_papan4)) { 5574 idx_papan4 = 0; 5575 } else { 5576 idx_papan4++; 5577 idx_papan4 = idx_papan4 % notes_papan4.length; 5578 } 5579 var note_papan4 = notes_papan4[idx_papan4][1]; 5580 $('#note_id_papan4').val(idx_papan4); 5581 $('#kartu-ucapan-
5581papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 5582 console.log(note_papan4, 'note_papan4') 5583 var text_length_papan4 = $('#kartu-ucapan-papan').val().length; 5584 var idx_2_papan4 = parseInt($('#note_btn_id_papan4').val()); 5585 if (isNaN(idx_2_papan4)) { 5586 idx_2_papan4 = 0; 5587 } else { 5588 idx_2_papan4++; 5589 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 5590 } 5591 $('#note_btn_id_papan4').val(idx_2_papan4); 5592 }); 5593 5594 /* 5595 $("#jenisPapan").change(function(){ 5596 $( "select option:selected").each(function(){ 5597 if($(this).attr("value")=="Happy Wedding"){ 5598 $("#suggest-messages a").hide(); 5599 $("#show_note_papan1").show(); 5600 $("#kartu-ucapan-papan").val(""); 5601 } 5602 if($(this).attr("value")=="Congratulations"){ 5603 $("#suggest-messages a").hide(); 5604 $("#show_note_papan2").show(); 5605 $("#kartu-ucapan-papan").val(""); 5606 } 5607 if($(this).attr("value")=="Duka Cita"){ 5608 $("#suggest-messages a").hide(); 5609 $("#show_note_papan3").show(); 5610 $("#kartu-ucapan-papan").val(""); 5611 } 5612 }); 5613 }).change(); 5614 */ 5615 5616 5617 5618 5619 5620 $(".variant-metafield").each(function () { 5621 const t = $(this) 5622 const id = t.attr("id") 5623 const target = $(`[data-select=${id}]`) 5624 t.on('select2:selecting', function (e) { 5625 const data = e.params.args.data 5626 target.val(data.text) 5627 }); 5628 }) 5629 }) 5630 </script>
5630 5631 5632 <div id="popupCart"> 5633 <div class="container"> 5634 <div class="wrapperPopupCart"> 5635 <div class="headerPopupCart"> 5636 <div class="d-flex pl-5 pr-5 p-4"> 5637 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5638 width="16" height="12" viewBox="0 0 16 12" 5639 fill="none"> 5640 <path 5641 d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" 5642 fill="black" /> 5643 </svg> 5644 <span>item added to your cart</span> 5645 </div> 5646 <a class="close-purchase-popup"> 5647 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5648 width="18" height="18" viewBox="0 0 18 18" 5649 fill="none"> 5650 <path 5651 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" 5652 fill="black" /> 5653 </svg> 5654 </a> 5655 5656 </div> 5657 <div class="contentPopupCart"> 5658 <div class="pl-5 pr-5 p-4"> 5659 <div 5660 class="itemContent row m-0 justify-content-between"> 5661 <div class="col-2 align-self-center"> 5662 5663 <img class="d-block" width="80" 5664 src="https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"> 5665 </div> 5666 <div class="col-10 align-self-center"> 5667 <div class="row pl-3"> 5668 <div class="col-12 col-lg-7"> 5669 <span 5670 class="titleCartPopup text-uppercase">SARANAJITU: 5671 Info Terkini Seputar Petualangan 5672 Game Digital Resmi</span> 5673 </div> 5674 <div 5675 class="d-flex justify-content-end col
5675-12 col-lg-5"> 5676 <span 5677 class="deleteCartPopup hide">Delete</span> 5678 <span 5679 class="lineCartPrice align-self-center">Rp 5680 5.000</span> 5681 </div> 5682 </div> 5683 </div> 5684 </div> 5685 <div class="itemProperties"> 5686 5687 <div class="propDeliver"> 5688 <h4>delivery option detail</h4> 5689 <p> 5690 <span>delivery city</span> 5691 <span 5692 class="propDeliveryCity">jakarta</span> 5693 </p> 5694 <p> 5695 <span>delivery date</span> 5696 <span 5697 class="propDeliveryDate">24/03/2025</span> 5698 </p> 5699 <p> 5700 <span>delivery time</span> 5701 <span class="propDeliveryTime">Afternoon | 5702 13:00 - 18:00</span> 5703 </p> 5704 </div> 5705 <div class="propAddress"> 5706 <h4>delivery option detail</h4> 5707 <p> 5708 <span>RECIPIENT NAME</span> 5709 <span class="propDeliveryName">jane 5710 doe</span> 5711 </p> 5712 <p> 5713 <span>delivery address</span> 5714 <span class="propDeliveryAddress">Jl. Gatot 5715 Subroto No. 25, RT.2/RW.4, Kuningan 5716 Barat, Kecamatan Mampang Prapatan, Kota 5717 Jakarta 5718 Selatan, Daerah Khusus Ibukota Jakarta 5719 12710, Indonesia</span> 5720 </p> 5721 <p> 5722 <sp
5722an>recipient phone number</span> 5723 <span class="propDeliveryPhone">(+62) 5724 812-3456-7890</span> 5725 </p> 5726 <p> 5727 <span>PROVINCE</span> 5728 <span 5729 class="propDeliveryProv">Jakarta</span> 5730 </p> 5731 <p> 5732 <span>postal code</span> 5733 <span class="propDeliveryZip">12710</span> 5734 </p> 5735 5736 5737 </div> 5738 5739 </div> 5740 <div class="itemAddonCart"> 5741 <div 5742 class="toggleAddonCart d-flex justify-content-between"> 5743 <h4>add-ons (0)</h4> 5744 <svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 5745 width="5" height="9" viewBox="0 0 5 9" 5746 fill="none"> 5747 <path 5748 d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" 5749 fill="black" /> 5750 </svg> 5751 </div> 5752 <div class="wrapperItemAddonCart"></div> 5753 </div> 5754 5755 </div> 5756 </div> 5757 <div class="footerPopupCart"> 5758 <div class="row m-0 pl-5 pr-5 p-4"> 5759 <a class="btn btnViewCart w-100 text-uppercase text-center" 5760 href="/cart">View Cart</a> 5761 <a class="btn btnViewCheckout w-100 text-uppercase text-center" 5762 href="/checkout"><span>Checkout</span></a> 5763 <a class="btnContinueShopping w-100 text-center" 5764 href="/">Continue shopping</a> 5765 </div> 5766 </div> 5767 </div> 5768 </div> 5769 </div> 5770 5771 5772
5772<script type="text/javascript"> 5773 const shareButton = document.getElementById('shareButton'); 5774 5775 shareButton.addEventListener('click', () => { 5776 if (navigator.share) { 5777 navigator.share({ 5778 title: "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 5779 url: "/products/blossom-shine", 5780 text: 'Check out this page!' 5781 }) 5782 .then(() => console.log('Successful share')) 5783 .catch((error) => console.log('Error sharing', error)); 5784 } else { 5785 alert('Web Share API is not supported in this browser.'); 5786 } 5787 }); 5788 5789 // Inventory validation function 5790 function checkInventoryStatus() { 5791 const productSelect = document.getElementById('productSelect'); 5792 const purchaseButton = document.querySelector('#personalizeBtn button'); 5793 5794 if (!productSelect || !purchaseButton) return; 5795 5796 const selectedVariantId = productSelect.value; 5797 5798 // Get variant data from Shopify 5799 fetch(`/products/blossom-shine.js`) 5800 .then(response => response.json()) 5801 .then(product => { 5802 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 5803 5804 if (selectedVariant) { 5805 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 5806 selectedVariant.inventory_management === 'shopify' && 5807 selectedVariant.inventory_policy !== 'continue'; 5808 5809 if (isOutOfStock) { 5810 purchaseButton.disabled = true; 5811 purchaseButton.textContent = 'Out of Stock'; 5812 purchaseButton.setAttribute('data-out-of-stock', 'true'); 5813 purchaseButton.style.backgroundColor = '#cccccc'; 5814 purchaseButton.style.cursor = 'not-allowed'; 5815 } else { 5816 // Check if button was disabled due to other conditions 5817 5818 5819 5820 5821 5822 5823 5824 5825 const isOtherDisabled = false || true || false; 5826 5827 if (!isOtherDisabled) { 5828 purchaseButton.disabled = false; 5829 purchaseButton.textContent = 'customize your flower board'; 5830 purchaseButton.removeAttribute('data-out-of-stock'); 5831 purchaseButton.style.backgroundColor = ''; 5832 purchaseButton.style.cursor = ''; 5833 } 5834 } 5835 } 5836 }) 5837 .catch(error => { 5838 console.error('Error checking inventory:', error); 5839 }); 5840 } 5841 5842 // Check inventory on page load 5843 document.addEventListener('DOMContentLoaded', function () { 5844 checkInventoryStatus();
5845 5846 // Listen for variant changes 5847 const productSelect = document.getElementById('productSelect'); 5848 if (productSelect) { 5849 productSelect.addEventListener('change', checkInventoryStatus); 5850 } 5851 }); 5852 5853 // Prevent form submission if out of stock 5854 document.addEventListener('click', function (e) { 5855 if (e.target.matches('button[data-out-of-stock="true"]')) { 5856 e.preventDefault(); 5857 e.stopPropagation(); 5858 alert('This product is currently out of stock and cannot be purchased.'); 5859 return false; 5860 } 5861 }); 5862 </script>
5862 5863 5864 5865 5866 </div> 5867 5868 </div> 5869 </div> 5870 </div> 5871 </div> 5872 <div id="product-bottom"> 5873 5874 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 5875 <div class="container"> 5876 5877 5878 5879 5880 5881 <div class="short-desc-mobile d-block d-lg-none mb-3"> 5882 <div class="short-desc" style="color: white;"> 5883 <ul> 5884 <li><strong>SARANAJITU merupakan link login dan daftar situs toto togel 5885 terpercaya yang menghadirkan fitur prediksi Bandar Macau 5886 Verified, akses cepat, layanan profesional, serta berbagai 5887 pasaran populer untuk pengalaman bermain yang nyaman setiap 5888 hari.</strong> 5889 </li> 5890 </div> 5891 <label class="more-mobile">Show More â</label> 5892 </div> 5893 5894 <style> 5895 .animated-title { 5896 text-align: center; 5897 font-weight: bold; 5898 color: #079c02; 5899 font-size: 28px; 5900 position: relative; 5901 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 5902 } 5903 5904 /* Efek glow / bercahaya hijau */ 5905 @keyframes glow { 5906 0% { 5907 text-shadow: 0 0 5px #079c02; 5908 color: #079c02; 5909 } 5910 5911 50% { 5912 text-shadow: 0 0 20px #00ff55; 5913 color: #12d12b; 5914 } 5915 5916 100% { 5917 text-shadow: 0 0 10px #1bff00; 5918 color: #079c02; 5919 } 5920 } 5921 5922 /* Efek gerakan naik turun */ 5923 @keyframes moveUpDown { 5924 0% { 5925 transform: translateY(0px); 5926 } 5927 5928 50% { 5929 transform: translateY(-5px); 5930 } 5931 5932 100% { 5933 transform: translateY(0px); 5934 } 5935 } 5936 </style> 5937 5938 5939
5939<script type="text/javascript" 5940 src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
5940 5941
5941<script type="text/javascript"> 5942 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 }); 5943 5944 const productType = $("[data-product-type]").data("product-type") 5945 const productDate = Date.parse(new Date()) 5946 5947 const shop = 'outerbloom1.myshopify.com' 5948 const host = 'https://app.asmaraku.com' 5949 // const host = 'http://localhost:5001' 5950 5951 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 5952 5953 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 5954 5955 $("#properties-time").val(new Date().getTime()) 5956 5957 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5958 5959 if (!isIOS) { 5960 $("#full-date").attr("type", "button") 5961 } 5962 5963 let dateTime = new Date(); 5964 let today = dateTime.getDate(); 5965 let day = dateTime.getDay(); 5966 let hour = dateTime.getHours(); 5967 let min = dateTime.getMinutes(); 5968 let timeOfDay = hour + (min / 100); 5969 5970 async function getFetch(url) { 5971 const response = await fetch(url); 5972 let status = false 5973 let result 5974 if (response.ok) { 5975 status = true 5976 result = await response.json(); 5977 } 5978 return { 5979 status, 5980 data: result 5981 } 5982 } 5983 5984 5985 5986 function setCookie(cname, cvalue, exMins) { 5987 var d = new Date(); 5988 d.setTime(d.getTime() + (exMins * 60 * 1000)); 5989 var expires = "expires=" + d.toUTCString(); 5990 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5991 } 5992 5993 function getCookie(cname) { 5994 let name = cname + "="; 5995 let decodedCookie = decodeURIComponent(document.cookie); 5996 let ca = decodedCookie.split(';'); 5997 for (let i = 0; i < ca.length; i++) { 5998 let c = ca[i]; 5999 while (c.charAt(0) == ' ') { 6000 c = c.substring(1); 6001 } 6002 if (c.indexOf(name) == 0) { 6003 return c.substring(name.length, c.length); 6004 } 6005 } 6006 return ""; 6007 } 6008 6009 async function renderDate() { 6010 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 6011 console.log(dataDate, 'renderDate') 6012 const data = dataDate?.data 6013 const date = data.date 6014 const time = data.time 6015 6016 console.log(date, 'DATE') 6017 6018 const weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 6019 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 6020 const htmlDate = [] 6021 for (let i = 0; i < date.length; i++) { 6022 const full = date[i].date 6023 const d = new Date(date[i].date); 6024 const day = weekday[d.getDay()]; 6025 const dt = d.getDate(); 6026 const mt = monthly[d.getMonth()];
6027 const yr = d.getFullYear(); 6028 const isDate = Boolean(date[i].isEnabled) 6029 const cutoffpagi = date[i].cutoff?.pagi 6030 const cutoffsiang = date[i].cutoff?.siang 6031 const cutoffMalam = date[i].cutoff?.Malam 6032 var html = ` 6033 <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}> 6034 ${dt === today ? 6035 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 6036 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 6037 } 6038 </button> 6039 ` 6040 htmlDate.push(html) 6041 } 6042 const htmlTime = [] 6043 for (var i = 0; i < time.length; i++) { 6044 const timeText = time[i].text 6045 const timeTime = time[i].time 6046 const timeEnabled = time[i].isEnabled 6047 var html = ` 6048 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 6049 ` 6050 htmlTime.push(html) 6051 } 6052 const deliveryDate = document.getElementById("deliveryDate"); 6053 if (deliveryDate) { 6054 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 6055 $("#deliveryTime").html(htmlTime) 6056 if (productType !== '') { 6057 console.log("clarity event " + productType + ' calendaring') 6058 window.clarity("event", `${productType} calendaringSchedule`) 6059 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 6060 } 6061 } 6062 } 6063 6064 async function getProvince(city) { 6065 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 6066 console.log(province, 'province') 6067 $("#province").val(province) 6068 } 6069 6070 async function renderAddress() { 6071 let current 6072 if (getCookie("location_delivery")) { 6073 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 6074 } 6075 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 6076 console.log(address) 6077 const data = address?.data?.city 6078 const htmlAddress = [] 6079 const grouping = [] 6080 for (let i = 0; i < data?.length; i++) { 6081 if (data[i]) { 6082 if (data[i]?.group) { 6083 grouping.push(data[i].group) 6084 } 6085 const price = rupiah.format(data[i]?.rate) 6086 let promo = '(Promo Free Delivery)' 6087 if (data[i]?.name === 'Jakarta - PickUp ASHTA') { 6088 promo = '(at SCBD, Ashta)' 6089 } else if (data[i]?.name === 'Jakarta - PickUp ITC') { 6090 promo = '(at Kuningan, ITC Kuningan)' 6091 } else if (data[i]?.name === 'BSD - PickUp') { 6092 promo = '(at Goldfinch Gading Serpong)' 6093 } else if (data[i]?.name === 'Kota Lainnya') { 6094 promo = '' 6095 } 6096 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>`) 6097 } 6098 } 6099 6100 const deliveryCity = document.getElementById("cities"); 6101 if (deliveryCity) { 6102 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 6103 if (!isIOS) { 6104 $(deliveryCity).select2(); 6105 } 6106 } 6107 } 6108 6109 async function renderZip(v, v2, v3) { 6110 const deliveryZip = document.getElementById("zip"); 6111 if (v === '') { 6112 return 6113 } 6114 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 6115 let zip = dataZip?.data?.z
6115ip 6116 console.log(zip) 6117 let htmlZip = [] 6118 for (let i = 0; i < zip?.length; i++) { 6119 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 6120 } 6121 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 6122 } 6123 6124 renderDate() 6125 renderAddress() 6126 6127 let rupiah = new Intl.NumberFormat('id-ID', { 6128 style: 'currency', 6129 currency: 'IDR', 6130 maximumFractionDigits: 0, 6131 minimumFractionDigits: 0 6132 }); 6133 6134 async function insertCard(data) { 6135 const response = await fetch(`${host}/api/card/new`, { 6136 method: "POST", 6137 headers: { 6138 'Content-Type': 'application/json', 6139 }, 6140 body: data 6141 }) 6142 const result = await response.json() 6143 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 6144 $("#greetingCard").attr("data-index", rowIndex) 6145 return result 6146 } 6147 6148 async function updateCard(data) { 6149 const rowIndex = $("#greetingCard").data("index") 6150 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 6151 method: "PUT", 6152 headers: { 6153 'Content-Type': 'application/json', 6154 }, 6155 body: data 6156 }) 6157 return response 6158 } 6159 6160 function bytesToSize(bytes) { 6161 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 6162 for (var i = 0; i < sizes.length; i++) { 6163 if (bytes <= 1024) { 6164 return bytes + ' ' + sizes[i]; 6165 } else { 6166 bytes = parseFloat(bytes / 1024).toFixed(2) 6167 } 6168 } 6169 return bytes + ' P'; 6170 } 6171 6172 async function uploadMedia(uri, type) { 6173 nameq = $("#properties-nama-penerima").val() 6174 dear = $("#properties-kartu-nama-penerima").val() 6175 card = $("[data-properties=ucapan]").val() 6176 sender = $("#properties-kartu-nama-pengirim").val() 6177 photo = $("#properties-photo").val() 6178 video = $("#properties-video").val() 6179 status = "Product" 6180 6181 const name = qrID 6182 let formData = new FormData(); 6183 formData.append("file", uri); 6184 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6185 method: "POST", 6186 body: formData 6187 }) 6188 const result = await response.json(); 6189 if (result) { 6190 const url = result.url 6191 if (type === 'image/jpeg') { 6192 $("#properties-photo").val(url) 6193 $(".preview-image").show() 6194 $(".remove-image").show() 6195 photo = url 6196 } else { 6197 $("#properties-video").val(url) 6198 $("#label-input-video span").text("Change File") 6199 $(".case-qrcode-preview p").text("Scan here for a secret message") 6200 $(".remove-media").show() 6201 $("#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>`) 6202 $("[for=input-video]").hide() 6203 video = url 6204 } 6205 $(".case-video-preview").show() 6206 $(".steps-card-preview").removeClass("loading") 6207 // updateCard(nameq, dear, card, sender, photo, video, status) 6208 6209 $(".nextBtn").attr("disabled", false) 6210 } 6211 } 6212 6213 function randomString(length, chars) { 6214 var result = ''; 6215 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 6216 return result; 6217 } 6218 6219 function getNoteCity(fulldate) { 6220 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 6221 const weekday = ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"]; 6222 const monthly = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 6223 const d = new Date(h_1); 6224 const day = weekday[d.getDay()]; 6225 const dt = d.getDate(); 6226 const mt = monthly[d.getMonth()];
6227 const yr = d.getFullYear(); 6228 const p = $("#cities").parent(".form-group") 6229 } 6230 6231 function disabledSameDay() { 6232 let btnFirst = $("#deliveryDate").find("button:first-child") 6233 let getDay = new Date().getDay(); 6234 6235 6236 6237 if (getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5) { 6238 if (hour >= 14.00) { 6239 btnFirst.attr("disabled", true) 6240 } 6241 } else if (getDay == 6) { 6242 if (hour >= 16.00) { 6243 btnFirst.attr("disabled", true) 6244 } 6245 } else if (getDay == 0) { 6246 if (hour >= 16.00) { 6247 btnFirst.attr("disabled", true) 6248 } 6249 } 6250 6251 6252 } 6253 6254 function disabledays(date) { 6255 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 6256 //if u have to disable a list of day 6257 let removeDays 6258 6259 6260 6261 removeDays = ["2025-2-13", "2025-2-14"]; 6262 6263 if ($.inArray(ymd, removeDays) >= 0) { 6264 return [false]; 6265 } else { 6266 let day = date.getDay(); 6267 if (day == 0 && date.getDate() == 13 && date.getMonth() == 1) { 6268 return [(day == 0), '']; 6269 } 6270 6271 if (day == 0) { 6272 return [(day == 0), '']; 6273 } 6274 6275 6276 return [(day != 0), '']; 6277 } 6278 } 6279 6280 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 6281 /* Written by Deden Fathurahman ([email protected]). */ 6282 (function (factory) { 6283 if (typeof define === "function" && define.amd) { 6284 6285 // AMD. Register as an anonymous module. 6286 define(["../widgets/datepicker"], factory); 6287 } else { 6288 6289 // Browser globals 6290 factory(jQuery.datepicker); 6291 } 6292 }(function (datepicker) { 6293 6294 datepicker.regional.id = { 6295 closeText: "Tutup", 6296 prevText: "<mundur", 6297 nextText: "maju>", 6298 currentText: "Today", 6299 monthNames: ["January", "February", "March", "April", "May", "Juny", 6300 "July", "August", "September", "October", "
6300November", "December"], 6301 monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 6302 "Jul", "Agu", "Sep", "Oct", "Nov", "Dec"], 6303 dayNames: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], 6304 dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 6305 dayNamesMin: ["Mg", "Sn", "Sl", "Rb", "Km", "jm", "Sb"], 6306 weekHeader: "Mg", 6307 dateFormat: "D, dd M", 6308 firstDay: 0, 6309 isRTL: false, 6310 showMonthAfterYear: false, 6311 yearSuffix: "" 6312 }; 6313 datepicker.setDefaults(datepicker.regional.id); 6314 6315 return datepicker.regional.id; 6316 6317 })); 6318 6319 function loadPopup() { 6320 $("#backgroundPopup").fadeIn("slow"); 6321 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 6322 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 6323 if (firstSection.hasClass("purchasePersonalize")) { 6324 if (productType !== '') { 6325 console.log("clarity event " + productType + ' personalize') 6326 window.clarity("event", `${productType} cardPersonalization`) 6327 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 6328 } 6329 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 6330 console.log("clarity event " + productType + ' personalizeBoard') 6331 window.clarity("event", `${productType} personalizeBoard`) 6332 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 6333 } 6334 firstSection.removeClass("hide") 6335 6336 // Auto-trigger addon loading when addon section becomes visible 6337 setTimeout(function () { 6338 const addonSection = $(".purchaseAddon") 6339 if (addonSection.length > 0 && !addonSection.hasClass("hide")) { 6340 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6341 $("[data-addon=upsell-all]").trigger("click") 6342 } 6343 } 6344 }, 200) 6345 } 6346 6347 function disablePopup() { 6348 $("#backgroundPopup").fadeOut("slow"); 6349 $(".purchasePopup").fadeOut("slow"); 6350 $("#popupCart").fadeOut("slow"); 6351 } 6352 6353 function scrollTo(parent, div, dur) { 6354 $(parent).animate({ 6355 scrollTop: $(div).offset().top 6356 }, dur); 6357 } 6358 6359 function loadPopupPersonalize() { 6360 const div = "#purchaseProduct" 6361 const p = "html, body, .product-meta" 6362 $("p.error").remove() 6363 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 6364 const isCity = $("#cities[required]") 6365 const isDate = $("#propDeliveryDate[required]") 6366 const isTime = $("#propDeliveryTime[required]") 6367 // loadPopup() 6368 if (isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 6369 loadPopup() 6370 } 6371 if (isCity.val() == '') { 6372 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 6373 scrollTo(p, div, 500) 6374 } 6375 if (isDate.val() == '') { 6376 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 6377 scrollTo(p, div, 500) 6378 } 6379 if (isTime.val() == '') { 6380 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 6381 scrollTo(p, div, 500) 6382 } 6383 } 6384 6385 function quantityCounter() { 6386 $(document).on("click", ".item-card.selected .q_up", function () { 6387 var C = $(this).attr("data-id"), 6388 S = 6389 parseInt( 6390 $(this) 6391 .siblings(".quantity-cart-" + C) 6392 .val() 6393 ) + 1; 6394 $(this).attr("data-quantity", S), 6395 $(this) 6396 .siblings(".quantity-cart-" + C) 6397 .val(S); 6398 }), 6399 $(document).on("click", ".item-card.selected .q_down", function () { 6400 var C = $(this).attr("data-id"), 6401 S = parseInt( 6402 $(this) 6403 .siblings(".quantity-cart-" + C) 6404 .val() 6405 ); 6406 0 < S && $(this).attr("data-quantity", S - 1), 6407 0 < S && 6408 $(this) 6409 .siblings(".quantity-cart-" + C) 6410 .val(S - 1); 6411 }); 6412 } 6413 6414 quantityCounter() 6415 6416 const itemAddon = $(".item-card").length 6417 const nofree = $(".nofree").length 6418 6419 const upsell = '' 6420 6421 if (nofree === itemAddon) { 6422 // $("#itemAddons").html("<p>No Items available</p>") 6423 } 6424 6425 $("#itemAddons .item-card").each(function (e) { 6426 $("#itemAddons").attr("data-length", e) 6427 }) 6428 6429 $("[data-addon]").click(function () { 6430 6431 6432 6433 const t = $(this) 6434 6435 const data = t.data("addon") 6436 6437 $("[data-addon]").removeClass("selected") 6438 t.addClass("selected") 6439 $.get(`https://outerbloom.com/collections/${data}/products.json`, function (data, status) { 6440 const products = data.products 6441 const html = [] 6442 for (let i = 0; i < products.length; i++) { 6443 const id = products[i].id 6444 const variantId = products[i].variants[0].id 6445 const img = products[i].images[0].src 6446 let img2 = img.split('.jpg')[0] 6447 const title = products[i].title 6448 const price = products[i].variants[0].price 6449 const tags = products[i].tags
6450 const qty = products[i].variants[0].available 6451 let type_upsell = '' 6452 if (tags.includes('upsell-item-standing')) { 6453 type_upsell = 'standing' 6454 } 6455 console.log(type_upsell) 6456 if (type_upsell !== '') { 6457 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}"> 6458 6459 <div class="card-image"> 6460 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 6461 </div> 6462 <div class="card-meta"> 6463 <h5>${title}</h5> 6464 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6465 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 6466 </div> 6467 <div class="card-qty"> 6468 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 6469 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity"> 6470 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 6471<path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 6472</svg></a> 6473 </div> 6474 </div>` 6475 html.push(body) 6476 } 6477 } 6478 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 6479 $("#itemAddons").attr("data-length", products.length) 6480 // $('#itemAddons')[0].swiper.update(); 6481 }); 6482 }) 6483 6484 async function isAddon() { 6485 let ids = [] 6486 $("#itemAddons .item-card.selected").each(function (i, e) { 6487 const id = $(this).data("id") 6488 ids.push(id) 6489 }) 6490 console.log(ids) 6491 return ids 6492 } 6493 6494 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function () { 6495 const t = $(this).parent() 6496 const id = t.data("id") 6497 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 6498 t.toggleClass("selected"); 6499 //$(this).next("input").toggleAttr('name', 'id[]'); 6500 if (t.hasClass('selected')) { 6501 t.find("input").val(1) 6502 t.find("input").attr('name', 'id[]'); 6503 } else { 6504 t.find("input").val(0) 6505 t.find("input").removeAttr('name'); 6506 } 6507 $("#properties-addons").val(addons) 6508 const is = await isAddon() 6509 if (is.length === 0) { 6510 btn.text("continue without add-ons") 6511 return 6512 } 6513 if (is.includes(8835692069079)) { 6514 btn.text("personalize acrylic frame") 6515 } else { 6516 btn.text("Continue") 6517 } 6518 6519 }) 6520 6521 async function myAddon(data) { 6522 const c = $(".addonsPurchase .addons") 6523 let items = [] 6524 6525 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 6526 // if(spotifyAddons.length > 0) { 6527 // $(spotifyAddons).each(function(i, e){ 6528 // const spotifyLink = $(this).find(".spotifyLink").val() 6529 // const spotifySong = $(this).find(".spotifySong").val() 6530 // const spotifyArtist = $(this).find(".spotifyArtist").val() 6531 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 6532 // if(spotifyLink !== '') { 6533 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 6534 // <div class="addon-itm-img"> 6535 // <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"/> 6536 // </div> 6537 // <div class="addon-itm-title">
6538 // <span>[US] Outerbloom Acrylic Frame 4R</span> 6539 // </div> 6540 // <div class="addon-itm-line-total"> 6541 // <span>Rp 99.000</span> 6542 // </div> 6543 // </div> 6544 // <div class="propsAddonSpotify row m-0"> 6545 // <div class="col-12 col-lg-2"></div> 6546 // <div class="col-12 col-lg-10"> 6547 // <p> 6548 // <span>spotify link</span> 6549 // <span class="spotifyLinkAddon">${spotifyLink}</span> 6550 // </p> 6551 // <p> 6552 // <span>uploaded photo</span> 6553 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 6554 // </p> 6555 // <p> 6556 // <span>song / playlist name</span> 6557 // <span class="spotifySongAddon">${spotifySong}</span> 6558 // </p> 6559 // <p> 6560 // <span>artist name</span> 6561 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 6562 // </p> 6563 // </div> 6564 // </div>` 6565 // items.push(spotifyAddon) 6566 // } 6567 // }) 6568 // } 6569 for (let i = 0; i < data.length; i++) { 6570 if (data[i].title !== '[US] Outerbloom Acrylic Frame 4R') { 6571 const img = data[i].image 6572 const title = data[i].title 6573 const qty = data[i].qty 6574 const price = data[i].price 6575 const total = Number(qty) * Number(price) 6576 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 6577 <div class="addon-itm-img"> 6578 <img src="${img}" alt="" width="70"/> 6579 </div> 6580 <div class="addon-itm-title"> 6581 <span>${title}</span> 6582 </div> 6583 <div class="addon-itm-line-price"> 6584 <span>${rupiah.format(price)}</span> 6585 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 6586 </div> 6587 <div class="addon-itm-line-total"> 6588 <span>${rupiah.format(total)}</span> 6589 </div> 6590 </div>` 6591 items.push(addons) 6592 } 6593 } 6594 c.html(items) 6595 const parent = $(".purchaseAddon") 6596 const next = parent.next(".sectionPurchase") 6597 parent.addClass("hide") 6598 next.removeClass("hide") 6599 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 6600 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 6601 } 6602 6603 async function listAddon() { 6604 const data = $("#itemAddons").find(".selected") 6605 let ids = [] 6606 $(data).each(function () { 6607 const id = $(this).data("variant") 6608 const image = $(this).find(".card-image img").attr("src") 6609 const title = $(this).find(".card-meta h5").text()
6610 const qty = $(this).find(".card-qty input").val() 6611 const price = $(this).find(".card-qty input").data("price") 6612 ids.push({ 6613 id: Number(id), 6614 image, 6615 title, 6616 qty, 6617 price 6618 }) 6619 }) 6620 myAddon(ids) 6621 } 6622 6623 async function customSpotify(idx, length, type) { 6624 let isCard = false 6625 6626 let p = $(".purchasePopupSpotify") 6627 const preLink = $(".spotifyLinkFirst").val() 6628 $("[data-index]").hide() 6629 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 6630 p.find(".regulerAddons, .purchase-button").hide() 6631 p.find(".spotifyAddons").show() 6632 6633 const data = await trackUrl(preLink) 6634 6635 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://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="13" height="11" viewB
6635ox="0 0 13 11" fill="none"> 6636<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"/> 6637</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://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="13" height="11" viewB
6637ox="0 0 13 11" fill="none"> 6638<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"/> 6639</svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="https://outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/000000/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 6640 // console.log(html) 6641 6642 $(".spotifyAddons").append(html) 6643 6644 $(`[data-index=${idx}]`).show() 6645 6646 if (preLink !== '') { 6647 $(".btn-action .btn").attr("disabled", false) 6648 } else { 6649 $(".btn-action .btn").attr("disabled", true) 6650 } 6651 6652 return html 6653 6654 } 6655 6656 $(".spotifyLinkFirst").keyup(async function () { 6657 const v = $(this).val() 6658 if (v.includes('spotify:user:spotify')) { 6659 const correct = v.split('user:spotify:')[1] 6660 console.log(correct, 'BNER') 6661 $(this).val(correct) 6662 return 6663 } 6664 if (v.includes("spotify:") || v.includes("https://open.spotify.com/")) { 6665 const data = await trackUrl(v) 6666 if (!data || !data.status) { 6667 $(this).parent().addClass("error") 6668 // $(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>`) 6669 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6670 return 6671 } 6672 $(this).parent().removeClass("error") 6673 // $(this).parent().remove("txt-error") 6674 $("#personalizeBtnSpotify .btn").attr("disabled", false) 6675 } else { 6676 $("#personalizeBtnSpotify .btn").attr("disabled", true) 6677 } 6678 }) 6679 6680 $(".purchaseAddon").delegate(".next-addon", "click", function () { 6681 const parent = $(this).parents(".purchaseAddon") 6682 const next = parent.next(".sectionPurchase") 6683 if (next.hasClass("purchaseAddress")) { 6684 if (productType !== '') { 6685 console.log("clarity event " + productType + ' purchaseDelivery') 6686 window.clarity("event", `${productType} purchaseDelivery`) 6687 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6688 } 6689 } 6690 const data = $("#itemAddons").find(".selected") 6691 const length = $(".quantity-cart-46067682607319").val() 6692 const checked = data.length; 6693 if (checked > 0) { 6694 if (length > 0) { 6695 $(".purchaseAddon").addClass("purchaseAddonSpotify") 6696 customSpotify(1, length, 'addon') 6697 } else { 6698 listAddon() 6699 } 6700 } else { 6701 parent.addClass("hide") 6702 next.removeClass("hide") 6703 } 6704 }) 6705 6706 $("#personalizeBtnSpotify .btn").click(async function () { 6707 const isCity = $("#cities[required]") 6708 const isDate = $("#propDeliveryDate[required]") 6709 if ((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 6710 alert('Please choose Delivery City & Delivery Date') 6711 return 6712 } 6713 const data = await customSpotify(1, 1, 'product') 6714 if (data) { 6715 $("#backgroundPopup").fadeIn("slow"); 6716 $(".purchasePopupSpotify").fadeIn("slow"); 6717 6718 if (productType !== '') { 6719 console.log("clarity event " + productType + ' spotify') 6720 window.clarity("event", `${productType} spotify`) 6721 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 6722 } 6723 } 6724 }) 6725 6726 function formatBytes(bytes, decimals = 2) { 6727 if (!+bytes) return '0 Bytes' 6728
6729 const k = 1024 6730 const dm = decimals < 0 ? 0 : decimals 6731 const sizes = ['B', 'KB', 'MB'] 6732 6733 const i = Math.floor(Math.log(bytes) / Math.log(k)) 6734 6735 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 6736 } 6737 6738 async function trackUrl(link) { 6739 try { 6740 let trackId = link.split('/').pop().split('?')[0]; 6741 let type = '' 6742 if (link.includes("spotify:")) { 6743 const uri = link.split('spotify:')[1] 6744 trackId = uri.split(':')[1] 6745 type = uri.split(':')[0] + 's' 6746 } else { 6747 if (link.match('track')) { 6748 type = 'tracks' 6749 } else if (link.match('playlist')) { 6750 type = 'playlists' 6751 } else if (link.match('artist')) { 6752 type = 'artists' 6753 } else if (link.match('album')) { 6754 type = 'albums' 6755 } 6756 } 6757 console.log(`${host}/api/spotify/${type}/${trackId}`) 6758 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 6759 console.log(data, 'DATA') 6760 const song = data?.data?.name 6761 const artist = data?.data?.artist 6762 return { 6763 song, artist, type, trackId, status: data.status 6764 } 6765 } catch (err) { 6766 console.log(err) 6767 } 6768 } 6769 6770 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function () { 6771 const parent = $(this).parents("[data-index]") 6772 const preview = parent.find(".previewImage") 6773 const file = $(this)[0].files[0]; 6774 if (file) { 6775 const reader = new FileReader(); 6776 reader.onload = async function (e) { 6777 parent.find(".uploadResult label").hide() 6778 parent.find(".uploadedResult").remove() 6779 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 6780 <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> 6781 <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;">
6781<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 6782 <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 /> 6783</svg> 6784</span></div></div>`) 6785 parent.find(".frameImageUploaded svg").hide() 6786 parent.find(".frameImage").addClass("uploaded") 6787 preview.attr("src", e.target.result); 6788 preview.show(); 6789 let formData = new FormData(); 6790 formData.append("file", file); 6791 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 6792 method: "POST", 6793 body: formData 6794 }) 6795 const result = await response.json(); 6796 if (result) { 6797 parent.find(".resultPhotoSpotify").val(result.url) 6798 } 6799 } 6800 6801 reader.readAsDataURL(file); 6802 } else { 6803 preview.hide(); 6804 } 6805 }); 6806 6807 $(".spotifyAddons").delegate(".uploadResult", "click", function () { 6808 $(this).next("input[type=file]").trigger("click") 6809 }) 6810 6811 $(".spotifyAddons").delegate(".changeUpload", "click", function () { 6812 $(this).parents("input[type=file]").trigger("click") 6813 }) 6814 6815 $(".spotifyAddons").delegate(".removeUpload", "click", function () { 6816 const parent = $(this).parents("[data-index]") 6817 parent.find(".uploadPhotoSpotify").val("") 6818 parent.find(".uploadResult label").show() 6819 parent.find(".uploadedResult").remove() 6820 parent.find(".frameImageUploaded svg").show() 6821 parent.find(".previewImage").hide() 6822 parent.find(".frameImage").removeClass("uploaded") 6823 }) 6824 6825 $(".spotifyAddons").delegate("label.checkbox", "click", function () { 6826 const parent = $(this).parents("[data-index]") 6827 parent.toggleClass("checked") 6828 }) 6829 6830 $(".spotifyAddons").delegate(".
6830spotifyLink", "change", async function () { 6831 const parent = $(this).parents("[data-index]") 6832 const link = $(this).val() 6833 const data = await trackUrl(link) 6834 6835 console.log(data) 6836 6837 if (data.song) { 6838 parent.find(".spotifySong").val(data.song) 6839 parent.find(".spotifyData").find("h3").text(data.song) 6840 } 6841 if (data.artist) { 6842 parent.find(".spotifyArtist").val(data.artist) 6843 parent.find(".spotifyData").find("p").text(data.artist) 6844 } 6845 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/000000/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 6846 // https://scannables.scdn.co/uri/plain/png/000000/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 6847 if (data.status === true) { 6848 parent.find(".btn-action .btn").attr("disabled", false) 6849 } else { 6850 parent.find(".btn-action .btn").attr("disabled", true) 6851 } 6852 }) 6853 6854 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function () { 6855 const parent = $(this).parents("[data-index]") 6856 const v = $(this).val() 6857 parent.find(".spotifyData h3").text(v) 6858 }) 6859 6860 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function () { 6861 const parent = $(this).parents("[data-index]") 6862 const v = $(this).val() 6863 parent.find(".spotifyData p").text(v) 6864 }) 6865 6866 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function () { 6867 const parent = $(this).parents("[data-index]") 6868 const length = parent.data("length") 6869 const index = parent.data("index") 6870 const indexNext = Number(index) + 1 6871 customSpotify(indexNext, length, 'addon') 6872 }) 6873 6874 6875 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function () { 6876 const parent = $(this).parents(".purchaseAddon") 6877 const next = parent.next(".sectionPurchase") 6878 parent.addClass("hide") 6879 next.removeClass("hide") 6880 next.find(".purchase-button").show() 6881 listAddon() 6882 }) 6883 6884 $(".spotifyAddons").delegate(".back-spotify", "click", async function () { 6885 const t = $(this).parents("[data-index]") 6886 const parent = $(this).parents(".sectionPurchase") 6887 const current = t.data("index") 6888 const prevCurrent = Number(current) - 1 6889 if (current == 1) { 6890 parent.removeClass("purchaseAddonSpotify") 6891 parent.find(".purchase-button").show() 6892 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 6893 $(".spotifyAddons").empty() 6894 $(".regulerAddons").show() 6895 return 6896 } 6897 t.hide() 6898 t.prev("[data-index]").show() 6899 t.remove() 6900 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 6901 }) 6902 6903 $("#personalizeBtn .btn").click(async function () { 6904 loadPopupPersonalize() 6905 }); 6906 6907 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function () { 6908 $(".sectionPurchaseSpotify").hide() 6909 loadPopupPersonalize() 6910 }) 6911 6912 $(".close-purchase-popup").click(function () { 6913 disablePopup(); 6914 }); 6915 $("#backgroundPopup").click(function () { 6916 // disablePopup(); 6917 }); 6918 6919 $("#popupCart .close-purchase-popup").click(function () { 6920 location.reload() 6921 }); 6922 6923 $('#popupCart').on('hide.bs.modal', function (e) { 6924 location.reload() 6925 }) 6926 6927 $(".next-card").click(function () { 6928 const parent = $(this).parents(".sectionPurchase") 6929 const next = parent.next(".sectionPurchase") 6930 parent.addClass("hide") 6931 next.removeClass("hide") 6932 }) 6933 6934 $(".back-purchase-button").click(function () { 6935 const parent = $(this).parents(".sectionPurchase") 6936 const prev = parent.prev(".sectionPurchase") 6937 parent.addClass("hide") 6938 prev.removeClass("hide") 6939 }) 6940 6941 $(document).keypress(function (e) { 6942 if (e.keyCode == 27 && popupStatus == 1) { 6943 disablePopup(); 6944 } 6945 }); 6946 6947 const parentImg = $(".case-img-preview") 6948 const parentVid = $(".case-video-preview") 6949 6950 function readURL(input) { 6951 if (input.files && input.files[0]) { 6952 let reader = new FileReader(); 6953 6954 let type = 'image/jpeg' 6955 const size = input.files[0].size 6956 if (input.files[0].type.match('video/')) { 6957 type = 'video/mp4' 6958 if (size > 15728640) { 6959 alert('File size exceeds maximum limit 15 MB') 6960 return 6961 } 6962 } else { 6963 if (size > 5242880) { 6964 alert('File size exceeds maximum limit 5 MB') 6965 return 6966 } 6967 } 6968 6969 reader.onload = function (e) { 6970 $(".nextBtn").attr("disabled", true) 6971 if (type === 'image/jpeg') { 6972 6973 $('.placeholder-image').hide(); 6974 $('.preview-image').show() 6975 $('.preview-image').attr('src', e.target.result); 6976 6977 } else { 6978 // parentVid.find(".ajax-loader").show(); 6979 $(".steps-card-preview").addClass("loading") 6980 } 6981 } 6982 6983 6984
6985 reader.readAsDataURL(input.files[0]); 6986 } 6987 } 6988 6989 async function readURLPapan(input) { 6990 if (input.files && input.files[0]) { 6991 let reader = new FileReader(); 6992 6993 reader.onload = function (e) { 6994 $('.btn-upload-papan').siblings('label').hide(); 6995 $('.btn-upload-papan img').attr('src', e.target.result); 6996 $('.btn-upload-papan img').show(); 6997 $('.svgLogoPapan').hide(); 6998 } 6999 7000 const type = 'image/jpeg' 7001 const name = `logo-8144957800663-${Date.parse(new Date())}` 7002 7003 let formData = new FormData(); 7004 formData.append("file", input.files[0]); 7005 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 7006 method: "POST", 7007 body: formData 7008 }) 7009 const result = await response.json(); 7010 if (result) { 7011 const url = result.url 7012 $("[data-properties=papan-logo]").val(url) 7013 } 7014 7015 reader.readAsDataURL(input.files[0]); 7016 } 7017 } 7018 7019 async function readURLAddress(input) { 7020 console.log(input, 'readURLAddress') 7021 if (input.files && input.files[0]) { 7022 let reader = new FileReader(); 7023 7024 reader.onload = function (e) { 7025 $('.photo-address').attr('src', e.target.result); 7026 $('.photo-address').show(); 7027 } 7028 7029 const type = 'image/jpeg' 7030 const name = input.files[0].name?.split('.')[0] 7031 7032 let formData = new FormData(); 7033 formData.append("file", input.files[0]); 7034 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 7035 method: "POST", 7036 body: formData 7037 }) 7038 const result = await response.json(); 7039 7040 reader.readAsDataURL(input.files[0]); 7041 7042 return result 7043 } 7044 } 7045 7046 7047 7048 7049 async function addToCartUang() { 7050 var productAddOnId1 = 42122101162199; 7051 var productAddOnId2 = 42122101194967; 7052 var product_id = 8144957800663 7053 const data = { 7054 items: [ 7055 { 7056 quantity: $("#Quantity-" + productAddOnId1).val(), 7057 id: productAddOnId1, 7058 "properties": { "Time": $("#properties-time").val() } 7059 }, 7060 { 7061 quantity: $("#Quantity-" + productAddOnId2).val(), 7062 id: productAddOnId2, 7063 "properties": { "Time": $("#properties-time").val() } 7064 } 7065 ] 7066 } 7067 await fetch(window.Shopify.routes.root + 'cart/add.js', { 7068 method: 'POST', 7069 headers: { 7070 'Content-Type': 'application/json' 7071 }, 7072 body: JSON.stringify(data) 7073 }) 7074 .then(response => { 7075 console.error('Sukses Buket Uang:', response); 7076 $(".form-flower").submit() 7077 }) 7078 .catch((error) => { 7079 console.error('Error Buket Uang:', error); 7080 $(".form-flower").submit() 7081 }); 7082 } 7083 7084 async function saveCard() { 7085 let isCard = true
7086 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 7087 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 7088 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 7089 const foto = $("#properties-photo").val() 7090 const video = $("#properties-video").val() 7091 const data = JSON.stringify({ 7092 "id": qrID, 7093 "penerima": $("#properties-nama-penerima").val(), 7094 "kartu_penerima": kartu_penerima, 7095 "kartu_ucapan": kartu_ucapan, 7096 "kartu_pengirim": kartu_pengirim, 7097 "foto": foto, 7098 "video": video, 7099 "productId": "8144957800663", 7100 "order_name": "", 7101 "status": "Cart" 7102 }) 7103 7104 7105 } 7106 7107 async function additem(items) { 7108 try { 7109 let formData = items 7110 if (items?.length) { 7111 formData = { 7112 'items': items 7113 }; 7114 } 7115 7116 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 7117 method: 'POST', 7118 headers: { 7119 'Content-Type': 'application/json', 7120 'X-Requested-With': 'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 7121 }, 7122 body: JSON.stringify(formData) 7123 }) 7124 7125 const data = await add.json(); 7126 return data 7127 } catch (err) { 7128 console.log('Error additem', err) 7129 } 7130 } 7131 7132 async function addons() { 7133 let items = [] 7134 $(".addon-item").each(function () { 7135 const p = $(this) 7136 const props = p.next(".propsAddonSpotify") 7137 const id = $(this).data("id") 7138 const quantity = $(this).data("qty") 7139 const propId = $("#properties-time").val() 7140 let properties = {} 7141 if (id === 46067682607319) { 7142 const link = props.find(".spotifyLinkAddon").text() 7143 const photo = props.find(".spotifyFotoAddon").text() 7144 const song = props.find(".spotifySongAddon").text() 7145 const artist = props.find(".spotifyArtistAddon").text() 7146 properties = { 7147 id: propId, 7148 "Spotify Link": link !== '' ? link : '-', 7149 "Spotify Photo": photo !== '' ? photo : '-', 7150 "Spotify Song": song !== '' ? song : '-', 7151 "Spotify Artist": artist !== '' ? artist : '-', 7152 type: 'addon' 7153 } 7154 } else { 7155 properties = { 7156 "id": propId, 7157 "type": "addon" 7158 } 7159 } 7160 items.push({ 7161 id, 7162 quantity, 7163 properties 7164 }) 7165 }) 7166 return items 7167 } 7168 7169 async function propItems() { 7170 let props = {} 7171 $("[data-properties]").each(function (e) { 7172 let elementType = this.tagName;
7173 const k = $(this).data("properties") 7174 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') { 7175 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 7176 if (v !== '') { 7177 props[k] = v?.replace(/[\s\n]/g, ''); 7178 } 7179 } 7180 }) 7181 return props 7182 } 7183 7184 async function showPopupCart(items) { 7185 if (productType !== '') { 7186 console.log("clarity event " + productType + ' completeOrder') 7187 window.clarity("event", `${productType} completeOrder`) 7188 // window.clarity("set", productType, `completeOrder - ${productDate}`) 7189 } 7190 $("#popupCart").show() 7191 7192 $(".propDeliveryCity").text($("#cities").val()) 7193 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 7194 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 7195 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 7196 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 7197 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 7198 $(".propDeliveryProv").text($("#province").val()) 7199 $(".propDeliveryZip").text($("#zip").val()) 7200 7201 7202 7203 const addons = [] 7204 if (items && items.length > 0) { 7205 for (let i = 1; i < items.length; i++) { 7206 const spotifyLink = items[i].properties['Spotify Link'] 7207 const spotifyPhoto = items[i].properties['Spotify Photo'] 7208 const spotifySong = items[i].properties['Spotify Song'] 7209 const spotifyArtist = items[i].properties['Spotify Artist'] 7210 const price = items[i].price / 100 7211 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 7212 <div class="col-12 col-lg-2"></div> 7213 <div class="col-12 col-lg-10"> 7214 <p> 7215 <span>spotify link</span> 7216 <span>${spotifyLink}</span> 7217 </p> 7218 <p> 7219 <span>Upload Photo</span> 7220 <span>${spotifyPhoto}</span> 7221 </p> 7222 <p> 7223 <span>song / playlist name</span> 7224 <span>${spotifySong}</span> 7225 </p> 7226 <p> 7227 <span>artist name</span> 7228 <span>${spotifyArtist}</span> 7229 </p> 7230 </div> 7231 </div>` : ''; 7232 addons.push(`<div class="row m-0">
7233 <div class="imgAddonCart col-2"> 7234 <img 7235 width="43" 7236 src="${items[i].image}" 7237 alt="" 7238 > 7239 </div> 7240 <div class="imgAddonTitlePrice col-10 align-self-center"> 7241 <div class="row justify-content-between m-0"> 7242 <div class="col-12 col-lg-8"> 7243 <h5>${items[i].title}</h5> 7244 </div> 7245 <div class="col-12 col-lg-4 text-lg-right"> 7246 <span>${rupiah.format(price)}</span> 7247 </div> 7248 </div> 7249 </div> 7250 </div>${props}`) 7251 } 7252 } 7253 // console.log(addons) 7254 if (addons.length === 0) { 7255 $(".itemAddonCart").hide() 7256 return 7257 } 7258 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 7259 $(".wrapperItemAddonCart").html(addons) 7260 } 7261 7262 const money = (money) => { 7263 return new Intl.NumberFormat('id-ID', 7264 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 7265 ).format(money); 7266 } 7267 7268 async function showNoteMoney() { 7269 let qty50k = $("[data-properties='Uang 50k']").val() 7270 let qty100k = $("[data-properties='Uang 100k']").val() 7271 const total50k = Number(qty50k) * 50000 7272 const total100k = Number(qty100k) * 100000 7273 const total_all = total50k + total100k 7274 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 7275 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 7276 $(".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://overgossip.b-cdn.net/index.html" target="_blank" style="text-decoration: underline; color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 7277 } 7278 7279 async function removeImage() { 7280 const data = JSON.stringify({ 7281 "ID": $("#properties-properties-qrId").val(), 7282 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7283 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7284 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7285 "Nama Penerima": $("#properties-nama-penerima").val(), 7286 "Order Number": "", 7287 "Status": "Product", 7288 "Foto": "", 7289 "Media": $("#properties-video").val(), 7290 "Image": "8144957800663" 7291 }) 7292 const remove = updateCard(data) 7293 if (remove) { 7294 $(this).hide() 7295 $("#properties-photo").val("-") 7296 $(".placeholder-image").show() 7297 $(".preview-image").attr("src", "") 7298 } 7299 } 7300 7301 async function removeVideo() { 7302 const data = JSON.stringify({ 7303 "ID": $("#properties-properties-qrId").val(), 7304 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 7305 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 7306 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 7307 "Nama Penerima": $("#properties-nama-penerima").val(), 7308 "Order Number": "", 7309 "Status": "Product", 7310 "Foto": $("#properties-photo").val(), 7311 "Media": "", 7312 "Image": "8144957800663" 7313 }) 7314 const remove = updateCard(data) 7315 if (remove) { 7316 $("#properties-video").val("-") 7317 $(this).find("img").hide() 7318 $(this).hide() 7319 $(this).prev("p").text("Add video to make it more special (optional)") 7320 $("#label-input-video").show() 7321 $("#label-input-video span").text("Upload Video") 7322 $(".case-video-preview p span").remove() 7323 } 7324 } 7325 7326 async function loadItemOccasion(t, occasion) { 7327 const name = occasion?.replace('greeting-card-', '') 7328 $("#kartu-ucapan").val("") 7329 $("[data-occassion]").removeClass("selected") 7330 $("[data-properties=ucapan]").val("") 7331 $("#save-card").attr("disabled", true) 7332 t.addClass("selected") 7333 $("#show_note").attr("data-card-occassion", name) 7334 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function (data, status) { 7335 const products = data.products 7336 const html = [] 7337 for (let i = 0; i < products.length; i++) { 7338 const id = products[i].id 7339 const variantId = products[i].variants[0].id 7340 const img = products[i].images[0].src 7341 const title = products[i].title 7342 const price = products[i].variants[0].price
7343 const qty = products[i].variants[0].inventory_quantity 7344 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 7345 <label for="card-${variantId}"></label> 7346 <div class="card-image"> 7347 <img src="${img}" alt="${title}" width="" height="" /> 7348 </div> 7349 <div class="card-meta text-center"> 7350 <h5>${title}</h5> 7351 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 7352 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 7353 </div> 7354 </div>` 7355 html.push(body) 7356 } 7357 const withoutCard = `<div class="item-card item-without-card"> 7358 <label for="card-0"></label> 7359 <div class="card-image"> 7360 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 7361 </div> 7362 <div class="card-meta text-center"> 7363 <h5>
7363Send without a greeting card</h5> 7364 <input id="card-0" type="radio" name="id" value="" data-price=""> 7365 </div> 7366 </div>` 7367 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 7368 }); 7369 } 7370 7371 $(document).ready(function () { 7372 7373 // Observer to auto-trigger addon loading when addon section becomes visible 7374 const addonObserver = new MutationObserver(function (mutations) { 7375 mutations.forEach(function (mutation) { 7376 const target = $(mutation.target) 7377 if (target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 7378 if (!target.hasClass('hide')) { 7379 // Addon section just became visible, ensure items are loaded 7380 setTimeout(function () { 7381 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7382 console.log("Auto-triggering addon load...") 7383 $("[data-addon=upsell-all]").trigger("click") 7384 } 7385 }, 150) 7386 } 7387 } 7388 }) 7389 }) 7390 7391 // Start observing addon section 7392 const addonSection = document.querySelector('.purchaseAddon') 7393 if (addonSection) { 7394 addonObserver.observe(addonSection, { 7395 attributes: true, 7396 attributeFilter: ['class'] 7397 }) 7398 } 7399 7400 $(".purchasePopup").delegate("#addtocart-card", "click", async function () { 7401 7402 $(this).find("span").addClass("loading") 7403 let isValid = true 7404 $(".formAddressPurchase [required]").each(function () { 7405 const t = $(this) 7406 const input = t.val() 7407 const p = t.parent() 7408 if (input === '') { 7409 p.addClass("error") 7410 isValid = false 7411 } 7412 }) 7413 7414 if (!isValid) { 7415 $(this).find("span").removeClass("loading") 7416 return 7417 } 7418 7419 let items = [] 7420 const mainProps = { 7421 7422 "Delivery Date": $("#propDeliveryDate").val(), 7423 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-', 7424 "Kota Pengiriman": $("#cities").val(), 7425 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-', 7426 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-', 7427 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-', 7428 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-', 7429 7430 7431 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-', 7432 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-', 7433 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-', 7434 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-', 7435 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-', 7436 7437 7438 "Province": $("#province").val() !== '' ? $("#province").val() : '-', 7439 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-', 7440 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-', 7441 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-', 7442 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7443 "type": 'product' 7444 } 7445 const props = await propItems() 7446 properties = { ...mainProps, ...props }; 7447 const id = $("#productSelect").find('option:selected').val() 7448 console.log(id, 'main ID') 7449 const mainItem = { 7450 id: Number(id), 7451 quantity: 1, 7452 properties 7453 } 7454 items.push(mainItem) 7455 const cardId = $("#itemCards").find(".selected input").val() 7456 const cardItem = { 7457 id: Number(cardId), 7458 quantity: 1, 7459 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 7460 } 7461 console.log(cardId, 'cardId') 7462 if (cardId) { 7463 items.push(cardItem) 7464 } 7465 const addon = await addons() 7466 if (addon) { 7467 for (let i = 0;
7467 i < addon.length; i++) { 7468 items.push({ 7469 id: addon[i].id, 7470 quantity: addon[i].quantity, 7471 properties: addon[i].properties 7472 }) 7473 } 7474 } 7475 const addItems = await additem(items) 7476 console.log(addItems.items, 'add items') 7477 if (addItems) { 7478 $(this).find("span").removeClass("loading") 7479 disablePopup() 7480 showPopupCart(addItems.items) 7481 7482 localStorage.setItem("items", JSON.stringify(addItems.items)) 7483 } 7484 }) 7485 7486 $("#addtocart-cart .btn").click(async function () { 7487 const id = $("#productSelect").find('option:selected').val() 7488 const mainProps = { 7489 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 7490 type: 'product' 7491 } 7492 const props = await propItems() 7493 const properties = { ...mainProps, ...props }; 7494 const items = { 7495 id: Number(id), 7496 quantity: 1, 7497 properties 7498 } 7499 const addItems = await additem(items) 7500 if (addItems) { 7501 showPopupCart(addItems.items) 7502 localStorage.setItem("items", JSON.stringify(addItems)) 7503 } 7504 }) 7505 7506 $(".formAddressPurchase [required]").change(function () { 7507 const t = $(this) 7508 const p = t.parent() 7509 const v = t.val() 7510 if (v !== '') { 7511 p.removeClass("error") 7512 } 7513 }) 7514 7515 $("#save-card").click(async function () { 7516 const parent = $(this).parents(".sectionPurchase") 7517 const next = parent.next(".sectionPurchase") 7518 $(this).find("span").addClass("loading") 7519 const card = await saveCard() 7520 console.log(card, 'ssaveCCC') 7521 if (card?.status === 200 || card?.status === 201) { 7522 $(".scanCard").removeClass("hide") 7523 $(this).find("span").removeClass("loading") 7524 parent.addClass("hide") 7525 next.removeClass("hide") 7526 if (next.hasClass("purchaseAddon")) { 7527 $("[data-addon=upsell-all]").click() 7528 console.log("clarity event addons") 7529 window.clarity("event", `${productType} add-ons`) 7530 // Ensure addon items are loaded when entering addon popup 7531 setTimeout(function () { 7532 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7533 $("[data-addon=upsell-all]").trigger("click") 7534 } 7535 }, 100) 7536 } 7537 if (next.hasClass("purchaseAddress")) { 7538 $("#zip").select2() 7539 } 7540 } 7541 }) 7542 7543 $("#skip-card").click(async function () { 7544 $("#greetingCard [data-properties]").val("") 7545 $("#properties-photo").val("") 7546 $("#properties-video").val("") 7547 const parent = $(this).parents(".sectionPurchase") 7548 const next = parent.next(".sectionPurchase") 7549 parent.addClass("hide") 7550 next.removeClass("hide") 7551 // $("#itemCards").html("") 7552 removeImage() 7553 removeVideo() 7554 if (next.hasClass("purchaseAddon")) { 7555 $("[data-addon='upsell-all']").click() 7556 console.log("clarity event addons") 7557 window.clarity("event", `${productType} add-ons`) 7558 // Ensure addon items are loaded when entering addon popup 7559 setTimeout(function () { 7560 if ($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 7561 $("[data-addon='upsell-all']").trigger("click") 7562 } 7563 }, 100) 7564 } 7565 if (next.hasClass("purchaseAddress")) { 7566 $("#zip").select2() 7567 } 7568 }) 7569 7570 $("#msgCard").click(async function () { 7571 $(this).parent().addClass("loading") 7572 let occasion = $(".selected[data-occassion]").data("occassion") 7573 occasion = occasion?.replace("greeting-card-", "") 7574 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 7575 const d = data?.data 7576 for (let i = 0; i < d.length; i++) { 7577 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 7578 const greeting = d[num]?.Greeting 7579 $(".greetingCard textarea").val(greeting) 7580 $(this).parent().removeClass("loading") 7581 } 7582 $("#save-card").attr("disabled", false) 7583 }) 7584 7585 $(".sectionPurchaseBoard .next-purchase-button").click(function () { 7586 const parent = $(this).parents(".sectionPurchase") 7587 const next = parent.next(".sectionPurchase") 7588 parent.addClass("hide") 7589 next.removeClass("hide") 7590 }) 7591 7592 $("#editCard").click(function () { 7593 $(".custom-card").show() 7594 $(".preview-card").hide() 7595 }) 7596 7597 $("#first_name, #last_name").change(function () { 7598 const v = $(this).val() 7599 const first_name = $("#first_name").val() 7600 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 7601 $("[data-properties=nama-penerima]").val(first_name + last_name) 7602 }) 7603 7604 $("[data-occassion]").click(function () { 7605 const t = $(this) 7606 const p = t.parents(".sectionPurchase") 7607 // $(".greetingCard").addClass("disabled") 7608 const occasion = t.data("occassion") 7609 loadItemOccasion(t, occasion) 7610 }) 7611 7612 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function () { 7613 const id = $(this).parent(".item-card").data("id") 7614 const t = $(this).parent(".item-card") 7615 const target = t.find("input") 7616 const v = $('.item-card input[type="radio"]:checked').val(); 7617 $("#itemCards .item-card").removeClass("selected") 7618 t.addClass("selected") 7619 $("#itemCards .item-card").find("input").attr("name", "") 7620 if (target.length > 0) { 7621 target.attr("name", "id[]") 7622 $("#properties-card").val(id) 7623 $(".greetingCard").removeClass("disabled") 7624 $("#skip-card").attr("disabled", false) 7625 } else { 7626 $("#properties-card").val("") 7627 } 7628 }) 7629 7630 $("#itemCards").delegate(".item-without-card label", "click", function () { 7631 const parent = $(this).parents(".sectionPurchase") 7632 const next = parent.next(".sectionPurchase") 7633 $(".greetingCard").addClass("disabled") 7634 parent.addClass("hide") 7635 next.removeClass("hide") 7636 $("[data-addon=upsell-all]").click() 7637 $("#zip").select2() 7638 }) 7639 7640 $("[data-properties=ucapan]").keyup(function () { 7641 const v = $(this).val() 7642 const p = $(this).parents(".sectionPurchase") 7643 $(".purchaseAddress").find(".greetingCard textarea").val(v) 7644 if (v.length > 3) { 7645 p.find(".next-purchase-button").attr("disabled", false) 7646 } else { 7647 p.find(".next-purchase-button").attr("disabled", true) 7648 } 7649 }) 7650 7651 $("[data-properties=penerima]").keyup(function () { 7652 const v = $(this).val() 7653 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 7654 }) 7655 7656 $("[data-properties=pengirim]").keyup(function () { 7657 const v = $(this).val() 7658 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 7659 }) 7660 7661 $(document).click(function (e) { 7662 7663 if ($(e.target).closest('.wrapperPopupCart').length != 0) return false; 7664 // $('#popupCart').fadeOut('slow'); 7665 // location.reload() 7666 }); 7667 7668 $(".toggleAddonCart").click(function () { 7669 const p = $(this).parent(".itemAddonCart") 7670 p.toggleClass("open") 7671 }) 7672 7673 $(".btnViewCart").click(function () { 7674 window.location.href = "https://outerbloom.com/cart"; 7675 }) 7676 7677 $(".btnViewCheckout").click(async function () { 7678 $(this).find("span").addClass("loading") 7679 let zip = $("#zip").val() 7680 const first_name = $("#first_name").val() 7681 const last_name = $("#last_name").val() 7682 const company = $("#company").val() !== '' ? $("#company").val() : '' 7683 const address1 = $("#delivery_address").val() 7684 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 7685 zip = zip && zip !== '' ? z
7685ip?.split(' - ')[0] : '' 7686 const phone = $("#recipient_number").val() 7687 const city = $("#cities").val() 7688 const province = $("#province").val() 7689 const country = 'Indonesia' 7690 const ver = Date.parse(new Date()) 7691 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}` 7692 7693 const clear = await fetch(`/cart/clear.js`, { method: 'POST' }) 7694 if (clear.status === 200) { 7695 const savedItem = window.localStorage.getItem("items"); 7696 const items = JSON.parse(savedItem) 7697 const addItems = await additem(items) 7698 console.log(addItems, 'new addItems') 7699 if (addItems) { 7700 window.location.href = `https://outerbloom.com/checkout?${params}`; 7701 } 7702 } 7703 }) 7704 7705 $(".btnContinueShopping").click(function () { 7706 window.location.href = "https://outerbloom.com/"; 7707 }) 7708 7709 if (isIOS) { 7710 $(".empty-state-card").click(function () { 7711 $("#input-foto").trigger("click") 7712 }) 7713 $(".btn-upload-image").click(function () { 7714 $("#input-foto").trigger("click") 7715 }) 7716 $("[for=input-video]").click(function () { 7717 $("#input-video").trigger("click") 7718 }) 7719 $(".btn-upload-papan").click(function () { 7720 $("#logoPapan").trigger("click") 7721 }) 7722 } 7723 7724 $("[data-properties]").each(function () { 7725 const select = $(this).parents(".form-group").find("select") 7726 $(this).change(function () { 7727 const name = $(this).data("properties") 7728 const v = $(this).val() 7729 if (name == 'telepon-penerima') { 7730 let phone = v.replace(/[^0-9]/g, '') 7731 $(this).val(phone); 7732 $("#properties-telepon-penerima").val(phone) 7733 $('.iti__search-input').val('-') 7734 } else { 7735 $("#properties-" + name).val(v) 7736 } 7737 }) 7738 select.on("change", function () { 7739 const name = $(this).data("properties") 7740 const v = $(this).val() 7741 $("#properties-" + name).val(v) 7742 }) 7743 }) 7744 7745 $("#show_note").click(function () { 7746 nameq = $("#properties-nama-penerima").val() 7747 dear = $("#properties-kartu-nama-penerima").val() 7748 card = $("[data-properties=ucapan]").val() 7749 sender = $("#properties-kartu-nama-pengirim").val() 7750 photo = $("#properties-photo").val() 7751 video = $("#properties-video").val() 7752 updateCard(nameq, dear, card, sender, photo, video, status) 7753 }) 7754 7755 $(".remove-image").click(function (e) { 7756 e.preventDefault() 7757 $(this).find("img").show() 7758 removeImage() 7759 }) 7760 7761 $(".remove-media").click(function (e) { 7762 e.preventDefault() 7763 $(this).find("img").show() 7764 removeVideo() 7765 }) 7766 7767 7768 7769 $("[data-delivery_method]").click(function (e) { 7770 e.preventDefault() 7771 const t = $(this) 7772 const data = t.data("delivery_method") 7773 $("[data-delivery_method]").removeClass("selected") 7774 t.addClass("selected") 7775 $("#cities").val("") 7776 $("#properties-delivery-date").val("-") 7777 $("#deliveryDate button").removeClass("selected") 7778 $("#full-date").val("Full Calendar â") 7779 $("#propDeliveryDate").val("") 7780 const step3 = $("#step-3") 7781 if (data.match('PickUp')) { 7782 $(".selfpickup-point").show() 7783 step3.find("[data-finished=false]").hide() 7784 $("#panel-4").hide() 7785 step3.find("[data-finished=true]").show() 7786 $("#cities").attr("required", false) 7787 $("#form-group-city").hide() 7788 $("#row-delivery-time").hide() 7789 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 7790 $("#propDeliveryTime").attr("required", false) 7791 // $("#deliveryDate").find("button:first-child").addClass("stop") 7792 $(".form-selfpickup").show() 7793 $(".form-delivery").hide() 7794 $(".form-delivery").find("input, textarea, select").val("") 7795 $(".form-delivery").find("input, textarea, select").attr("required", false) 7796 $("#properties-shipping").val("0") 7797 $("#noteDeliveryDate").hide() 7798 $(".form-delivery .form-control").attr("required", false) 7799 $("#stepNav4").hide() 7800 7801 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 7802 7803 7804 7805 if (timeOfDay >= 16.01) { 7806 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 7807 } 7808 } else { 7809 7810 7811 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 7812 step3.find("[data-finished=false]").show() 7813 $("#panel-4").show() 7814 step3.find("[data-finished=true]").hide() 7815 $("#cities").attr("required", true) 7816 $(".selfpickup-point").hide() 7817 $("#form-group-city").show() 7818 $("#cities").val('').trigger('change'); 7819 $("#properties-kota-pengiriman").val("-") 7820 7821 $("#row-delivery-date, #row-delivery-time").show() 7822 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7823 $("#deliveryDate").find("button").removeClass("stop") 7824 $(".form-selfpickup").hide() 7825 $(".form-delivery").show() 7826 $(".form-delivery").find("input, textarea, select").attr("required", true) 7827 $(".form-delivery [data-
7827properties]").attr("readonly", false) 7828 $("#properties-kodepos").val("-") 7829 $("#properties-alamat-penerima").val("-") 7830 $(".form-delivery .form-control").attr("required", true) 7831 $(this).parents(".setup-content").attr("id", "step-1") 7832 7833 $("#stepNav4").show() 7834 } 7835 }) 7836 7837 $("[name=selfpickup]").click(function () { 7838 const p = $(this).parents(".row-pickup") 7839 const pickupCity = $("input[name='selfpickup']:checked").val(); 7840 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 7841 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 7842 7843 $(".row-pickup").removeClass("selected") 7844 p.addClass("selected") 7845 7846 $("#properties-kota-pengiriman").val(pickupCity) 7847 $("#province").val("Jakarta") 7848 $("#properties-alamat-penerima").val(pickupAddress) 7849 $("#properties-kodepos").val(pickupZip) 7850 }) 7851 7852 $("#cities").change(function (e) { 7853 e.preventDefault() 7854 $(this).parent(".row").find("p.error").remove() 7855 $("#full-date").val("Full Calendar") 7856 $("#deliveryDate, #deliveryDateFull label ").show() 7857 $("#deliveryDateFull").removeClass("filled") 7858 $(".btnChangeDeliveryDate").addClass("hide") 7859 $("#full-date").prop('disabled', false); 7860 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 7861 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 7862 const step3 = $("#step-3") 7863 $("#cityNote").remove() 7864 $("#noteDeliveryDate").hide() 7865 $("#noteDeliveryDate").empty() 7866 let v = $(this).val() 7867 let v2 = $('option:selected', this).attr('data-city'); 7868 let v3 = $('option:selected', this).attr('data-province'); 7869 let price = $('option:selected', this).attr('data-price'); 7870 $("#country").val(v) 7871 $("#properties-kota-pengiriman").val(v) 7872 $("#properties-shipping").val(price) 7873 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 7874 $("#properties-delivery-date, #properties-delivery-time").val("-") 7875 $("#propDeliveryDate, #propDeliveryTime").val("") 7876 let note = $('option:selected', this).attr('data-note'); 7877 if (v === 'Kota Lainnya') { 7878 $("#noteDeliveryDate").show() 7879 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 7880 $("#zip").attr("required", false) 7881 $("#zip").hide() 7882 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 7883 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 7884 $("#row-delivery-date, #row-delivery-time").hide() 7885 $("#properties-shipping").val("") 7886 // $(this).parents(".setup-content").attr("id", "step-2") 7887 7888 } else { 7889 $("#noteDeliveryDate").hide() 7890 $("#zip").attr("required", true) 7891 $("#zip").show() 7892 $("#row-delivery-date, #row-delivery-time").show() 7893 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 7894 $("#deliveryDate").find("button").removeClass("stop") 7895 // $(this).parents(".setup-content").attr("id", "step-1") 7896 7897 } 7898 7899 7900 7901 // if(v !== 'Jakarta') { 7902 // $("[data-type=upsell]").hide() 7903 // } else { 7904 // $("[data-type=upsell]").show() 7905 // } 7906 // $('.collection-addons')[0].swiper.update(
7906); 7907 7908 7909 getProvince(v) 7910 $("#zip").html(`<option value="">Choose Postal Code</option>`) 7911 renderZip(v, v2, v3) 7912 7913 disabledSameDay() 7914 7915 7916 if (v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 7917 7918 $("#cardOccasion, #navAddon, .collection-addons").hide() 7919 7920 $("[data-addon=giftcard]").show() 7921 $("[data-addon=giftcard]").click() 7922 $("#itemAddons").show() 7923 $("#flower-step").addClass("nonjadetabek") 7924 } else { 7925 $("#cardOccasion, #navAddon, .collection-addons").show() 7926 $("[data-addon=all]").click() 7927 $("#flower-step").removeClass("nonjadetabek") 7928 } 7929 7930 if (v !== '') { 7931 $("#personalizeBtn .btn").attr("disabled", false) 7932 } else { 7933 $("#personalizeBtn .btn").attr("disabled", true) 7934 } 7935 7936 }) 7937 7938 $("#zip").change(function (e) { 7939 let v = $(this).val() 7940 var city = $("#cities").find('option:selected'); 7941 $("#properties-kodepos").val(v) 7942 if (city === 'Kota Lainnya') { 7943 $(this).attr("required", true) 7944 $("#recipient-address").val("") 7945 } 7946 }) 7947 7948 7949 var minDate = +7 7950 7951 7952 7953 $("#full-date").datepicker({ 7954 minDate, 7955 dateFormat: 'Mdd_yy', //Nop22_2021, 7956 7957 beforeShowDay: disabledays, 7958 7959 onSelect: function (date) { 7960 $("#deliveryDate, #deliveryDateFull label ").hide() 7961 $("#deliveryDateFull").addClass("filled") 7962 $(".btnChangeDeliveryDate").removeClass("hide") 7963 $("#full-date").prop('disabled', true); 7964 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_' + date); 7965 $(".date-full").addClass("selected") 7966 $(".date-single, .calendar-group").removeClass("selected") 7967 $("#propDeliveryTime").val('') 7968 $("#properties-delivery-time").val('-') 7969 $(".time-single").removeClass("selected") 7970 7971 7972 } 7973 }); 7974 7975 $(".btnChangeDeliveryDate").click(function () { 7976 $("#deliveryDate, #deliveryDateFull label ").show() 7977 $("#deliveryDateFull").removeClass("filled") 7978 $(".btnChangeDeliveryDate").addClass("hide") 7979 $("#full-date").prop('disabled', false); 7980 }) 7981 7982 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function (e) { 7983 e.preventDefault() 7984 $(this).parents("#row-delivery-date").find("p.error").remove() 7985 const fulldate = $(this).data("fulldate") 7986 const day = $(this).data("day") 7987 const date = $(this).data("date")
7988 const month = $(this).data("month") 7989 const year = $(this).data("year") 7990 const off_pagi = $(this).data("offpagi") 7991 const off_siang = $(this).data("offsiang") 7992 const off_Malam = $(this).data("offMalam") 7993 $(".calendarbutton").removeClass("selected") 7994 $(this).addClass("selected") 7995 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7996 $("#propDeliveryTime").val('') 7997 $("#properties-delivery-time").val('-') 7998 $(".calendarbutton2").removeClass("selected") 7999 $("#full-date").val("Full Calendar") 8000 8001 8002 if (off_pagi && timeOfDay > off_pagi) { 8003 $("[data-time=Morning]").attr("disabled", true) 8004 } else { 8005 $("[data-time=Morning]").attr("disabled", false) 8006 } 8007 if (off_siang && timeOfDay > off_siang) { 8008 $("[data-time=Afternoon]").attr("disabled", true) 8009 } else { 8010 $("[data-time=Afternoon]").attr("disabled", false) 8011 } 8012 8013 8014 8015 }) 8016 8017 if (today === 14 && timeOfDay > 17.00) { 8018 $("#deliveryDate button:first-child").attr("disabled", true) 8019 } 8020 8021 $("#deliveryTime").delegate(".calendarbutton2", "click", function (e) { 8022 e.preventDefault() 8023 const time = $(this).data("time") 8024 const date = $("#propDeliveryDate").val() 8025 if (date == '') { 8026 return alert('Silakan pilih tanggal terlebih dahulu') 8027 } 8028 $(".calendarbutton2").removeClass("selected") 8029 $(this).addClass("selected") 8030 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_', '')}_${time}`) 8031 }) 8032 8033 $('textarea.has-limit, input.has-limit').keyup(function () { 8034 max = this.getAttribute("maxlength"); 8035 let len = $(this).val().length; 8036 let limit = $(this).siblings(".limit"); 8037 if (len > max) { 8038 alert('you have reached the limit'); 8039 } else { 8040 limit.text(`${len}/${max}`); 8041 } 8042 }); 8043 8044 $("#button-action-step .btn").click(function () { 8045 $(this).find("span").text("Processing..."); 8046 }); 8047 8048 $(".finishBtn").on('click', function () { 8049 $(this).addClass("is-adding"); 8050 // $(this).click(); 8051 }); 8052 8053 $('.setup-panel .nav-item a.btn-success').trigger('click'); 8054 8055 $("#button-action .btn").click(function () { 8056 $("#flower-step").addClass("block"); 8057 $("#button-action").hide(); 8058 }); 8059 8060 $(".close-how-order").click(function () { 8061 $("#flower-step").removeClass("block"); 8062 $("#button-action").show(); 8063 }); 8064 8065 $("#input-foto, #input-video").change(function (e) { 8066 readURL(this); 8067 }); 8068 8069 $("#logoPapan").change(function () { 8070 readURLPapan(this); 8071 }); 8072 8073 $("#address-upload").change(async function () { 8074 const upload_address = await readURLAddress(this) 8075 if (upload_address) { 8076 const url = upload_address.url 8077 $(".props-address-upload").val(url) 8078 $(".form-address").addClass("address-uploaded") 8079 $(".form-address-upload").addClass("uploaded") 8080 8081 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 8082 } 8083 }) 8084 8085 $(".address-manualy").click(function () { 8086 $(".form-address-upload").removeClass("uploaded"); 8087 $(".photo-address").hide(); 8088 $(".form-address").removeClass("address-uploaded") 8089 $("#formAddressPurchase").find(".form-control").attr("required", true) 8090 }); 8091 8092 $(".case-video-preview").delegate(".replace-video", "click", function () { 8093 $("#input-video").trigger("click") 8094 }) 8095 8096 $('.date-single').click(function (e) { 8097 e.preventDefault(); 8098 $('.date-single').removeClass('selected'); 8099 $('#full-date').removeClass('selected'); 8100 $(this).addClass('selected'); 8101 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 8102 }); 8103 $('#full-date').click(function (e) { 8104 e.preventDefault(); 8105 $('.date-single').removeClass('selected'); 8106 $(this).addClass('selected'); 8107 }); 8108 8109 // $("tr").each(function(){ 8110 // if($(this).text().match('SKU')) { 8111 // $(".sku-product").html($(this).parents("table").html()) 8112 // } 8113 // }) 8114 8115 $("#product-image").scroll(function () { 8116 $(".desc-add").each(function () { 8117 const img = $(this).find("img") 8118 const src = img.data("src") 8119 img.attr("src", src) 8120 }) 8121 }) 8122 8123 $(".product-fixed").hide() 8124 8125 let target = $("#personalizeBtn") 8126 8127 8128 $(".product-meta").scroll(function () { 8129 if ($(window).scrollTop() >= target.offset().top) { 8130 $(".product-fixed").addClass("show") 8131 } else { 8132 $(".product-fixed").removeClass("show") 8133 } 8134 }); 8135 8136 $(window).scroll(function () { 8137 if ($(window).scrollTop() >= target.offset().top) { 8138 $(".product-fixed").addClass("show") 8139 } else { 8140 $(".product-fixed").removeClass("show") 8141 } 8142 }); 8143 }); 8144 </script>
8144 8145 8146 8147 8148
8148<script type="text/javascript"> 8149 $(document).ready(function () { 8150 $('table tr td').each(function () { 8151 var texto = $(this).text(); 8152 var nextto = $(this).next("td"); 8153 var sku = $("#data-sku").val() 8154 if (texto == 'SKU') { 8155 nextto.text(sku) 8156 } 8157 }); 8158 8159 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 8160 $(".stamped-summary-actions-newreview").text("Tulis Review"); 8161 $("#tab-questions").text("Pertanyaan"); 8162 8163 $(".freeship .icon").click(function () { 8164 $(".fs-content").slideToggle(); 8165 $(this).parents(".freeship").toggleClass("expand"); 8166 }); 8167 8168 var $easyzoom = $('.easyzoom').easyZoom(); 8169 // Setup thumbnails example 8170 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 8171 $('.thumbnails').on('click', 'a', function (e) { 8172 var $this = $(this); 8173 e.preventDefault(); 8174 // Use EasyZoom's `swap` method 8175 api1.swap($this.data('standard'), $this.attr('href')); 8176 }); 8177 8178 $('#playerID').click(function () { 8179 var videoURL = $('#VdoID').attr('src'), 8180 dataplay = $('#VdoID').attr('data-play'); 8181 8182 //for check autoplay 8183 //if not set autoplay=1 8184 if (dataplay == 0) { 8185 $('#VdoID').attr('src', videoURL + '?autoplay=1'); 8186 $('#VdoID').attr('data-play', 1); 8187 } 8188 else { 8189 var videoURL = $('#VdoID').attr('src'); 8190 videoURL = videoURL.replace("?autoplay=1", ""); 8191 $('#VdoID').prop('src', ''); 8192 $('#VdoID').prop('src', videoURL); 8193 8194 $('#VdoID').attr('data-play', 0); 8195 } 8196 8197 }); 8198 8199 $(".product-photo-thumb-video").click(function (e) { 8200 e.preventDefault(); 8201 8202 var newEmbed = $(this).attr('href'); 8203 $("#featured-image-product").addClass("img-video"); 8204 $("#ProductPhotoImg").hide(); 8205 $("#featured-image-product .video").show(); 8206 $("#featured-image-product iframe").attr('src', newEmbed); 8207 $("#VdoID")[0].src += "&autoplay=1"; 8208 }); 8209 $(".product-single__thumbnail").click(function (evt) { 8210 evt.preventDefault(); 8211 $("#featured-image-product").removeClass("img-video"); 8212 $("#ProductPhotoImg").show(); 8213 $("#featured-image-product .video").hide(); 8214 $("#featured-image-product iframe").attr('src', ''); 8215 }); 8216 8217 if ($('#product-meta .short-desc > div').length >= 1) { 8218 //console.log('div detected') 8219 var replacer = $('#product-meta .short-desc > div').contents(); 8220 $('#product-meta .short-desc > div').replaceWith(replacer); 8221 8222 var cAssured = $('.c-assured').detach(); 8223 cAssured.insertAfter('.meta-sds .stock-info'); 8224 } 8225 8226 8227 8228 $(".heading-toggle").
8228click(function () { 8229 $(this).parent().toggleClass("open") 8230 8231 }); 8232 }); 8233 </script>
8233 8234 8235 8236
8236<script type="application/json" id="ProductJson-Product"> 8237 8238 {"id":8144957800663,"title":"SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSaranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif."} 8239 </script>
8239 8240 8241
8241<script type="application/json" id="VariantJson-Product"> 8242 [ 8243 8244 { 8245 "incoming": false, 8246 "next_incoming_date": null 8247 } 8248 8249 ] 8250 </script>
8250 8251 8252 8253 8254 8255 </div> 8256 8257 8258
8258<script 8259 src="https://outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" 8260 type="text/javascript"></script>
8260 8261 <style> 8262 .stamped-review-header-title, 8263 .stamped-review-header .author, 8264 .stamped-review-content-body, 8265 .stamped-sort-select, 8266 .stamped-review-header .verified-badge[data-type=buyer]:after, 8267 .stamped-review-header-byline, 8268 .stamped-review-reply-body { 8269 font-size: 14px !important; 8270 font-family: 'Barlow', sans-serif !important; 8271 } 8272 8273 .stamped-review { 8274 margin-bottom: 0; 8275 } 8276 8277 .stamped-review-body { 8278 padding-left: 65px; 8279 } 8280 8281 .stamped-review:first-child { 8282 padding-top: 25px; 8283 } 8284 8285 .stamped-review-content { 8286 clear: none; 8287 } 8288 8289 .stamped-review-reply { 8290 margin: 15px 0 0 65px; 8291 background: #f2f2f2; 8292 border-left: none; 8293 } 8294 8295 .stamped-review-reply-body { 8296 padding-left: 65px; 8297 } 8298 8299 .stamped-review-header .author { 8300 text-transform: capitalize; 8301 } 8302 8303 .stamped-questions .stamped-review-content { 8304 padding-left: 65px; 8305 } 8306 8307 .stamped-pagination { 8308 margin: 20px 0 0; 8309 } 8310 8311 .stamped-pagination li { 8312 position: initial !important; 8313 display: inline-block; 8314 position: relative; 8315 vertical-align: middle; 8316 text-decoration: none; 8317 -webkit-tap-highlight-color: transparent; 8318 -webkit-box-flex: 0; 8319 -moz-box-flex: 0; 8320 -ms-flex: 0 0 auto; 8321 flex: 0 0 auto; 8322 -webkit-user-select: none; 8323 -moz-user-select: none; 8324 -ms-user-select: none; 8325 user-select: none; 8326 background: 0 0; 8327 text-transform: none; 8328 color: #33373D; 8329 font-weight: 400; 8330 -webkit-transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8331 transition: background .1s ease, box-shadow .1s ease, color .1s ease; 8332 border: 1px solid #ccc; 8333 border-right: none; 8334 margin-bottom: 0; 8335 } 8336 8337 .stamped-pagination li a { 8338 color: #121212; 8339 padding: 13px 18px; 8340 vertical-align: middle; 8341 display: block; 8342 } 8343 8344 .stamped-pagination li.active a { 8345 background-color: #ddd; 8346 font-weight: 400; 8347 } 8348 8349 .stamped-pagination li:hover a { 8350 background: #ddd; 8351 } 8352 8353 .stamped-pagination .next { 8354 border-right: 1px solid #ccc; 8355 } 8356 8357 .stamped-pagination li:first-child { 8358 border-top-left-radius: 5px; 8359 border-bottom-left-radius: 5px; 8360 } 8361 8362 .stamped-pagination li:last-child { 8363 border-top-right-radius: 5px; 8364 border-bottom-right-radius: 5px; 8365 } 8366 8367 #stamped-pagination-question span.page { 8368 display: inline-block; 8369 border: 1px solid #ccc; 8370 width: 47px; 8371 } 8372 8373 #stamped-pagination-question span { 8374 font-size: 14px; 8375 } 8376 8377 #stamped-pagination-question .page.active { 8378 padding: 12px; 8379 font-weight: 400; 8380 background: #ddd; 8381 } 8382 8383 #stamped-pagination-question a, 8384 #stamped-pagination-question .page.active { 8385 color: #121212; 8386 padding: 13px 18px; 8387 vertical-align: middle; 8388 display: inline-block; 8389 } 8390 8391 .stamped-pagination-deco { 8392 color: #121212; 8393 padding: 13px 18px; 8394 width: 47px; 8395 vertical-align: middle; 8396 display: inline-block; 8397 border: 1px solid #ccc; 8398 padding: 12px; 8399 } 8400 8401 .stamped-pagination-prev, 8402 .stamped-pagination-next { 8403 position: inherit; 8404 } 8405 8406 .stamped-pagination-prev a, 8407 .stamped-pagination-next a { 8408 width: auto !important; 8409 border: 1px solid #ccc; 8410 } 8411 8412 @media (max-width: 480px) { 8413 .stamped-review-reply { 8414 margin-left: 0 !important; 8415 } 8416 8417 select.stamped-sort-select { 8418 font-size: 13px !important; 8419 } 8420 } 8421 8422 #product-reviews .stamped-summary-ratings, 8423 #product-reviews .stamped-summary-actions, 8424 .stamped-content { 8425 display: block !important; 8426 } 8427 </style> 8428
8428<script type="text/javascript"> 8429 var selectCallback = function (variant, selector) { 8430 timber.productPage({ 8431 money_format: "Rp {{amount_no_decimals}}", 8432 variant: variant, 8433 selector: selector 8434 }); 8435 }; 8436 8437 jQuery(function ($) { 8438 new Shopify.OptionSelectors('productSelect', { 8439 product: 8440 8441 8442 8443 8444 8445 { "id": 8144957800663, "title": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", "handle": "blossom-shine", "description": "\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSaranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif." }, 8446 onVariantSelected: selectCallback, 8447 enableHistoryState: true 8448 }); 8449 8450 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 8451 8452 8453 // Hide selectors if we only have 1 variant and its title contains 'Default'. 8454 8455 $('.selector-wrapper').hide(); 8456 8457 }); 8458 </script>
8458 8459 8460 8461 8462
8462<script type="application/ld+json"> 8463 { 8464 "@context": "http://schema.org", 8465 "@type": "Product", 8466"offers": { 8467"@type": "Offer", 8468"availability":"https://schema.org/InStock", 8469"price": 835000, 8470"priceValidUntil": "05-10-2025", 8471"priceCurrency": "IDR", 8472"url": "https://www.overgossip.com/" 8473}, 8474"brand": { 8475"@type": "Brand", 8476"name": "Outerbloom Florist" 8477}, 8478"sku": "8144957800663", 8479"gtin13": "Jawa", 8480"name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 8481"description": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", 8482"category": "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", 8483"url": "https://www.overgossip.com/", 8484"image": { 8485"@type": "ImageObject", 8486"url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8487"image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 8488"name": "SARANAJITU = Petualangan Games Digital No Satu Viral Sosial Media Resmi Tersedia", 8489"width": 1024, 8490"height": 1024 8491} 8492 } 8493 </script>
8493 8494 8495 8496 8497 8498 8499
8499<script id="bss-ltap-hide-price" type="text/javascript"> 8500 !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) })) }
8500)), 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) } };
8500 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) }
8500 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) }
8500 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
8500d-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");
8500 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
8500s"), 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
8500--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
8500opify.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
8500List, .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) }
8500 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;
8500 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();
8500 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() }]); 8501 </script>
8501 8502 8503 </main> 8504 8505 <div id="shopify-section-newsletter" class="shopify-section"><br> 8506 <style> 8507 #shopify-section-newsletter { 8508 background: radial-gradient(circle, 8509 #000000 30%, 8510 #2a0000 55%, 8511 #7a0000 80%, 8512 #ff0000 100%); 8513 8514 margin-bottom: 0; 8515 8516 border-top: 1px solid #ffcc00; 8517 8518 box-shadow: 8519 0 0 15px rgba(255, 0, 0, .8), 8520 0 0 35px rgba(255, 0, 0, .7), 8521 0 0 15px rgba(255, 204, 0, .4); 8522 } 8523 8524 input:-webkit-autofill, 8525 input:-webkit-autofill:hover, 8526 input:-webkit-autofill:active, 8527 input:-webkit-autofill:focus { 8528 -webkit-box-shadow: 0 0 0 50px white inset; 8529 -webkit-text-fill-color: #212121; 8530 } 8531 8532 .section-newsletter { 8533 max-width: 800px; 8534 margin: auto; 8535 padding: 50px 0; 8536 } 8537 8538 .section-newsletter h2 { 8539 font-weight: 700; 8540 font-size: 24px; 8541 } 8542 8543 .section-newsletter input[type="email"] { 8544 width: 100%; 8545 text-align: center; 8546 border: none; 8547 border-bottom: 1px solid #212121; 8548 font-size: 16px; 8549 color: #757575; 8550 background-color: #eeeeee; 8551 } 8552 8553 .section-newsletter .row label { 8554 font-size: 14px; 8555 cursor: pointer; 8556 } 8557 8558 .section-newsletter .radio-inline input { 8559 width: auto; 8560 } 8561 8562 .section-newsletter .btn { 8563 width: 130px; 8564 border: 1px solid #212121; 8565 box-shadow: none; 8566 font-size: 16px; 8567 font-weight: 500; 8568 text-transform: uppercase; 8569 } 8570 8571 .section-newsletter form { 8572 margin: 30px 0 60px; 8573 } 8574 8575 .section-newsletter input[type="radio"] { 8576 position: absolute; 8577 width: 1px; 8578 height: 1px; 8579 } 8580 8581 .section-newsletter [type="radio"]:checked+label, 8582 .section-newsletter [type="radio"]:not(:checked)+label { 8583 position: relative; 8584 padding-left: 28px; 8585 cursor: pointer; 8586 line-height: 20px; 8587 display: inline-block; 8588 color: #666; 8589 } 8590 8591 .section-newsletter [type="radio"]:checked+label:before, 8592 .section-newsletter [type="radio"]:not(:checked)+label:before { 8593 content: ''; 8594 position: absolute; 8595 left: 0; 8596 top: 0; 8597 width: 18px; 8598 height: 18px; 8599 border: 1px solid #ddd; 8600 border-radius: 100%; 8601 background: #fff; 8602 } 8603 8604 .section-newsletter [type="radio"]:checked+label:after, 8605 .section-newsletter [type="radio"]:not(:checked)+label:after { 8606 content: ''; 8607 width: 12px; 8608 height: 12px; 8609 background: #212121; 8610 position: absolute; 8611 top: 3px; 8612 left: 3px; 8613 border-radius: 100%; 8614 -webkit-transition: all 0.2s ease; 8615 transition: all 0.2s ease; 8616 } 8617 8618 .section-newsletter [type="radio"]:not(:checked)+label:after { 8619 opacity: 0; 8620 -webkit-transform: scale(0); 8621 transform: scale(0); 8622 } 8623 8624 .opt-newsletter { 8625 display: none; 8626 } 8627 8628 .footer-newsletter p, 8629 .footer-newsletter p a { 8630 color: #757575; 8631 } 8632 8633 @media (max-width:991px) { 8634 .section-newsletter h2 { 8635 font-size: 32px; 8636 } 8637 8638 .section-newsletter input { 8639 width: 300px; 8640 font-size: 14px; 8641 } 8642 8643 .section-newsletter { 8644 padding: 50px 20px; 8645 } 8646 } 8647 8648 @media (max-width: 480px) { 8649 .section-newsletter input[type="email"] { 8650 font-size: 16px; 8651 } 8652 } 8653 </style> 8654 <style> 8655 .icon-img-footer { 8656 width: 80px; 8657 padding: 0px 5px; 8658 } 8659 8660 @media (min-width: 768px) { 8661 .icon-img-footer { 8662 width: 120px; 8663 } 8664 } 8665 8666 @media (min-width: 992px) { 8667 .icon-img-footer { 8668 width: 120px; 8669 } 8670 } 8671 8672 .button-login-daftar { 8673 display: grid; 8674 grid-template-columns: repeat(2, 1fr); 8675 font-weight: 700; 8676 } 8677 8678 .button-login-daftar a { 8679 text-align: center; 8680 } 8681 8682 .login, 8683 .register { 8684 color: #fff; 8685 padding: 15px 10px; 8686 font-size: 23px; 8687 } 8688 8689 .login, 8690 .login-button, 8691 .register, 8692 .register-button { 8693 position: relative; 8694 overflow: hidden; 8695 background: linear-gradient(to bottom, 8696 #5a0000 0%, 8697 #ff1a1a 50%, 8698 #5a0000 100%); 8699 border: 2px solid #ff0000; 8700 border-radius: 12px; 8701 color: #fff; 8702 font-weight: 700; 8703 text-shadow: 0 0 8px rgba(255, 0, 0, .8); 8704 box-shadow: 8705 0 0 10px rgba(255, 0, 0, .8), 8706 0 0 20px rgba(255, 0, 0, .6), 8707 inset 0 0 10px rgba(255, 80, 80, .4); 8708 } 8709 8710 /* BORDER RGB BLING-BILING */ 8711 .login::before, 8712 .login-button::before, 8713 .register::before, 8714 .register-button::before { 8715 content: ""; 8716 position: absolute; 8717 inset: -2px; 8718 border-radius: 12px; 8719 padding: 2px; 8720 background: linear-gradient(90deg, 8721 #ff0000, 8722 #ff8800, 8723 #ffff00, 8724 #ff0000, 8725 #ff0066, 8726 #ff0000); 8727 background-size: 400% 400%; 8728 animation: rgbBorder 3s linear infinite; 8729 8730 -webkit-mask: 8731 linear-gradient(#fff 0 0) content-box, 8732 linear-gradient(#fff 0 0); 8733 -webkit-mask-composite: xor; 8734 mask-composite: exclude; 8735 8736 pointer-events: none; 8737 } 8738 8739 /* EFEK KACA KIRI KE KANAN */ 8740 .login::after, 8741 .login-button::after, 8742 .register::after, 8743 .register-button::after { 8744 content: ""; 8745 position: absolute; 8746 top: 0; 8747 left: -120%; 8748 width: 60%; 8749 height: 100%; 8750 background: linear-gradient(90deg, 8751 transparent, 8752 rgba(255, 255, 255, .45), 8753 transparent); 8754 transform: skewX(-25deg); 8755 animation: glassMove 2.5s linear infinite; 8756 } 8757 8758 @keyframes glassMove { 8759 100% { 8760 left: 160%; 8761 } 8762 } 8763 8764 @keyframes rgbBorder { 8765 0% { 8766 background-position: 0% 50%; 8767 filter: drop-shadow(0 0 6px #ff0000); 8768 } 8769 8770 50% { 8771 background-position: 100% 50%; 8772 filter: drop-shadow(0 0 12px #ff8800); 8773 } 8774 8775 100% { 8776 background-position: 200% 50%; 8777 filter: drop-shadow(0 0 6px #ff0000); 8778 } 8779 } 8780 </style> 8781 8782 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 8783 </div> 8784 8785 <div class="faq-section"> 8786 <h2>FAQ Seputar SARANAJITU</h2> 8787 8788 <div class="faq-container"> 8789 8790 <div class="faq-item"> 8791 <div class="faq-question">Apa itu SARANAJITU?</div> 8792 <div class="faq-answer"> 8793 <p> 8794 SARANAJITU merupakan platform yang menyediakan akses login dan daftar untuk berbagai 8795 pasaran toto 8796 togel online dengan sistem yang cepat, stabil, dan mudah diakses oleh pengguna dari 8797 berbagai 8798 perangkat. 8799 </p> 8800 </div> 8801 </div> 8802 8803 <div class="faq-item"> 8804 <div class="faq-question">Bagaimana cara login ke SARANAJITU?</div> 8805 <div class="faq-answer"> 8806 <p> 8807 Pengguna dapat mengakses halaman login melalui link resmi maupun link alternatif terbaru 8808 yang 8809 tersedia. Setelah memasukkan username dan password yang valid, sistem akan mengarahkan 8810 pengguna ke 8811 seluruh fitur yang tersedia. 8812 </p> 8813 </div> 8814 </div> 8815 8816 <div class="faq-item"> 8817 <div class="faq-question">Apa yang dimaksud dengan Prediksi Bandar Macau Verified?</div> 8818 <div class="faq-answer"> 8819 <p> 8820 Prediksi Bandar Macau Verified merupakan informasi prediksi yang banyak dicari oleh 8821 pengguna untuk 8822 mengikuti perkembangan pasaran Macau. Informasi tersebut diperbarui secara berkala agar 8823 lebih mudah 8824 dipantau setiap harinya. 8825 </p> 8826 </div> 8827 </div> 8828 8829 <div class="faq-item"> 8830 <div class="faq-question">Apakah SARANAJITU dapat diakses melalui smartphone?</div> 8831 <div class="faq-answer"> 8832 <p> 8833 Ya, SARANAJITU telah dioptimalkan untuk berbagai perangkat, termasuk smartphone, 8834 tablet, dan 8835 desktop. Tampilan yang responsif membuat pengguna tetap nyaman saat mengakses seluruh 8836 fitur yang 8837 tersedia. 8838 </p> 8839 </div> 8840 </div> 8841 8842 <div class="faq-item"> 8843 <div class="faq-question">Mengapa banyak pengguna memilih SARANAJITU?</div> 8844 <div class="faq-answer"> 8845 <p> 8846 Banyak pengguna memilih SARANAJITU karena menawarkan akses yang cepat, link alternatif 8847 yang selalu 8848 diperbarui, fitur prediksi yang informatif, serta pengalaman penggunaan yang nyaman 8849 dengan navigasi 8850 yang mudah dipahami. 8851 </p> 8852 </div> 8853 </div> 8854 8855 </div> 8856 </div> 8857
8857<script> 8858 document.querySelectorAll('.faq-question').forEach(q => { 8859 q.addEventListener('click', () => { 8860 const item = q.closest('.faq-item'); 8861 item.classList.toggle('active'); 8862 }); 8863 }); 8864 </script>
8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 <div class="overlay overlay-cart"></div> 8881 <div id="CartDrawer" class="drawer drawer--right"> 8882 <div class="drawer__header pl-2 pr-2"> 8883 <div class="drawer__icon-cart display-table-cell"> 8884 <a href="/cart" class=""> 8885 <svg class="icon icon-cart" version="1.1" 8886 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 8887 width="32" height="32" viewBox="0 0 32 32"> 8888 <path fill="#fff" 8889 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"> 8890 </path> 8891 <path fill="#fff" 8892 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"> 8893 </path> 8894 <path fill="#fff" 8895 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"> 8896 </path> 8897 <path fill="#000" 8898 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"> 8899 </path> 8900 <path fill="#fff" 8901 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"> 8902 </path> 8903 <path fill="#fff" 8904 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"> 8905 </path> 8906 <path fill="#fff" 8907 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"> 8908 </path> 8909 <path fill="#fff" 8910 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"> 8911 </path> 8912 </svg> 8913 </a> 8914 </div> 8915 <div class="drawer__title h4">Keranjang Belanja</div> 8916 <div class="drawer__close js-drawer-close"> 8917 <button type="button"> 8918 <svg class="icon icon-close" version="1.1" 8919 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 8920 width="32" height="32" viewBox="0 0 32 32"> 8921 <title>icon-close</title> 8922 <path 8923 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"> 8924 </path> 8925 </svg> 8926 </button> 8927 </div> 8928 </div> 8929 <div id="CartContainer" class="p-2"></div> 8930 </div> 8931 8932
8932<script type="text/javascript"> 8933 8934 </script>
8934 8935
8935<script src="https://outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer 8936 type="text/javascript"></script>
8936 8937 <!-- /snippets/ajax-cart-template.liquid --> 8938 8939
8939<script id="CartTemplate" type="text/template"> 8940 8941 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 8942 <div class="ajaxcart__inner" {{ cart.item_count }}> 8943 {{#items}} 8944 <div class="ajaxcart__product"> 8945 <div class="ajaxcart__row" data-line="{{line}}"> 8946 <div class="grid"> 8947 <div class="grid__item one-quarter"> 8948 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 8949 </div> 8950 <div class="grid__item three-quarters"> 8951 <p class="d-block mb-3"> 8952 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 8953 {{#if variation}} 8954 <span class="ajaxcart__product-meta p">{{variation}}</span> 8955 {{/if}} 8956 {{#properties}} 8957 {{#each this}} 8958 {{#if this}} 8959 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 8960 {{/if}} 8961 {{/each}} 8962 {{/properties}} 8963 8964 </p> 8965 <div class="grid--full display-table"> 8966 <div class="grid__item display-table-cell one-half"> 8967 <div class="ajaxcart__qty"> 8968 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 8969 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 8970 <span class="visually-hidden">Kurangi jumlah barang</span> 8971 </button> 8972 <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]*"> 8973 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 8974 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 8975 <span class="visually-hidden">Tambahkan jumlah barang</span> 8976 </button> 8977 </div> 8978 </div> 8979 <div class="grid__item display-table-cell one-half text-right"> 8980 {{#if discountsApplied}} 8981 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 8982 <br><span class="h4">{{{linePrice}}}</span> 8983 {{else}} 8984 <span class="h4">{{{linePrice}}}</span> 8985 {{/if}} 8986 </div> 8987 </div> 8988 {{#if discountsApplied}} 8989 <div class="grid--full display-table"> 8990 <div class="grid__item text-right"> 8991 {{#each discounts}} 8992 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 8993 {{/each}} 8994 </div> 8995 </div> 8996 {{/if}} 8997 </div> 8998 </div> 8999 </div> 9000 </div> 9001 </div> 9002 </div> 9003 {{/items}} 9004 </div> 9005 <div class="ajaxcart__footer"> 9006 <div class="grid--full cart-subtotal py-2"> 9007 <p>Subtotal</p> 9008 <h3 class="primary">{{{totalPrice}}}</h3> 9009 {{#if totalCartDiscount}} 9010 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 9011 {{/if}} 9012 </div> 9013 9014 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 9015 9016 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 9017 </div> 9018 </form> 9019
9020 </script>
9020 9021
9021<script id="AjaxQty" type="text/template"> 9022 9023 <div class="ajaxcart__qty"> 9024 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 9025 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"> 9026 <title>icon-minus</title> 9027 <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> 9028 </svg> 9029 <span class="visually-hidden">Kurangi jumlah barang</span> 9030 </button> 9031 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 9032 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 9033 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 9034 <span class="visually-hidden">Tambahkan jumlah barang</span> 9035 </button> 9036 </div> 9037 9038 </script>
9038 9039
9039<script id="JsQty" type="text/template"> 9040 9041 <div class="js-qty mx-auto mt-2"> 9042 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 9043 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 9044 <span class="visually-hidden">Kurangi jumlah barang</span> 9045 </button> 9046 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 9047 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 9048 <svg version="1.1" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 9049 <span class="visually-hidden">Tambahkan jumlah barang</span> 9050 </button> 9051 </div> 9052 9053 </script>
9053 9054 9055 <style> 9056 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 9057 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 9058 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button { 9059 display: none; 9060 } 9061 9062 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 9063 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 9064 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 9065 pointer-events: none; 9066 opacity: 0.5; 9067 } 9068 9069 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 9070 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 9071 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input { 9072 pointer-events: none; 9073 } 9074 </style> 9075
9075<script src="https://outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer 9076 type="text/javascript"></script>
9076 9077
9077<script type="text/javascript"> 9078 jQuery(function ($) { 9079 ajaxCart.init({ 9080 formSelector: '#AddToCartForm', 9081 cartContainer: '#CartContainer', 9082 addToCartSelector: '#AddToCartXX', 9083 cartCountSelector: '#CartCount, #CartCount2', 9084 cartCostSelector: '#CartCost', 9085 moneyFormat: "Rp {{amount_no_decimals}}" 9086 }); 9087 }); 9088 9089 jQuery(document.body).on('afterCartLoad.ajaxCart', function (evt, cart) { 9090 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 9091 timber.RightDrawer.open(); 9092 }); 9093 </script>
9093 9094 9095 9096 9097 9098 <style> 9099 /** Search AutoComplete **/ 9100 .resultsearch .ui-menu-item[data-cat="Collection"], 9101 .resultsearch .ui-menu-item[data-cat="Collection"] { 9102 display: none; 9103 } 9104 9105 .resultsearch .ui-widget.ui-widget-content { 9106 width: 100%; 9107 top: 48px; 9108 border: none; 9109 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 9110 } 9111 9112 .resultsearch .ui-menu-item { 9113 text-align: left; 9114 } 9115 9116 .resultsearch .ui-menu-item>a, 9117 .resultsearch .ui-menu-item>span { 9118 display: inline-block; 9119 width: 100%; 9120 font-size: 16px; 9121 } 9122 9123 .resultsearch .ui-menu-item img { 9124 vertical-align: middle; 9125 } 9126 9127 .resultsearch .ui-menu-item a[data-cat="Collection"] img { 9128 display: none; 9129 } 9130 9131 .resultsearch .ui-menu .ui-state-focus, 9132 .resultsearch .ui-menu .ui-state-active { 9133 margin: 0; 9134 } 9135 9136 .ui-state-active, 9137 .ui-widget-content .ui-state-active { 9138 background: #f2f2f2; 9139 border: none; 9140 color: #212121; 9141 } 9142 9143 .resultsearch .ui-menu-item>a, 9144 .resultsearch .ui-menu-item>span { 9145 display: inline-block; 9146 width: 100%; 9147 font-size: 13px; 9148 } 9149 9150 .resultsearch .ui-menu-item a[data-cat="Produk"] img { 9151 margin-right: 10px; 9152 } 9153 9154 .resultsearch .ui-menu-item a[data-cat="Produk"] .price { 9155 float: right; 9156 padding: 15px 0; 9157 } 9158 9159 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before { 9160 content: "Product Populer"; 9161 font-size: 13px; 9162 padding: 5px; 9163 margin: 5px 0; 9164 background: #f2f2f2; 9165 width: 100%; 9166 display: block; 9167 color: #212121; 9168 } 9169 9170 .ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span { 9171 display: none; 9172 } 9173 9174 .ui-state-active { 9175 border: none !important; 9176 background-color: #fafafa !important; 9177 color: #000 !important; 9178 } 9179 9180 .ui-menu-item a[data-cat="Collection"] { 9181 padding: 5px 12px; 9182 } 9183 9184 .ui-menu .ui-menu-item { 9185 line-height: normal; 9186 } 9187 </style> 9188
9188<script> 9189 $(window).on("load", function () { 9190 9191 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; } 9192 9193 $.widget("custom.catcomplete", $.ui.autocomplete, { 9194 _renderMenu: function (ul, items) { 9195 // have search reults split up in categories 9196 var that = this, 9197 currentCategory = ""; 9198 $.each(items, function (index, item) { 9199 if (item.category != currentCategory) { 9200 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 9201 currentCategory = item.category; 9202 } 9203 that._renderItemData(ul, item); 9204 }); 9205 } 9206 }); 9207 9208 // higlight searched for term 9209 $.ui.autocomplete.prototype._renderItem = function (ul, item) { 9210 var term = this.element.val(), 9211 html = item.label.replace(term, "<b>$&</b>"); 9212 return $("<li>") 9213 .append(format(item)) 9214 .appendTo(ul); 9215 }; 9216 9217 9218 var data = [ 9219 { 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
9219wborn-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
9219akaman", 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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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
9219dal", 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: " " }
9219, { 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-
9219hampers", 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
9219o-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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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: " " }
9219, { 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: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " }, { label: "Saranajituu dirancang dengan teknologi canggih menyajikan ekosistem bermain yang sangat mewah dan responsif, interaksi 24 jam tersedia dan penuh tantangan kompetitif. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " }, { label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " }, { label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " }, { label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " }, { label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " }, { label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " }, { label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " }, { label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " }, { label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " }, { label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " }, { label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " }, { label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " }, { label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " }, { label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " }, { label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " }, { label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " }, { label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " }, { label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " }, { label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " }, { label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " }, { label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " }, { label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " }, { label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " }, { label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " }, { label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " }, { label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " }, { label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " }, { label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " }, { label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " }, { label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " }, { label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " }, { label: "Tok
9219o 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: " " }
9219, { 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
9219dal", 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: " " }, 9220 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "https://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: "https://outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" }, { label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" }, { label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "https://outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" }, { label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" }, { label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" }, { label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "https://outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
9220, { label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "https://outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" }, { label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "https://outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" }, { label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "https://outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" }, { label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" }, { label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" }, { label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" }, { label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "https://outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" }, { label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "https://outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" }, { label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "https://outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" }, { label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" }, { label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" }, { label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" }, { label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" }, { label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "https://outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" }, { label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "https://outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" }, { label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" }, { label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" }, { label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "https://outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" }, { label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "https://outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" }, { label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" }, { label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "https://outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
9220, { label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" }, { label: "sincerely", category: "Produk", url: "/products/sincerely", images: "https://outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" }, { label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" }, { label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" }, { label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "https://outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" }, { label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "https://outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" }, { label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" }, { label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "https://outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" }, { label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "https://outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" }, { label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" }, { label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "https://outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" }, { label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" }, { label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 9221 ]; 9222 9223 9224 $(".header-input-search").catcomplete({ 9225 appendTo: ".searchResult", source: function (request, response) { 9226 var results = $.ui.autocomplete.filter(data, request.term); 9227 var predicate = function () { 9228 var counter = { Collection: 0, Produk: 0 }; 9229 var fn = function (item) { counter[item.category] += 1; return (counter[item.category] <= 5); } 9230 return fn 9231 }(); 9232 response(results.filter(predicate)); 9233 }, 9234 minLength: 1, 9235 //results are clickable 9236 select: function (event, ui) { window.location = ui.item.url; } 9237 }); 9238 $(".header-input-search2").catcomplete({ 9239 appendTo: ".searchResult2", 9240 source: function (request, response) { 9241 var results = $.ui.autocomplete.filter(data, request.term); 9242 var predicate = function () { 9243 var counter = { Collection: 0, Produk: 0 }; 9244 var fn = function (item) { 9245 counter[item.category] += 1; 9246 return (counter[item.category] <= 5); 9247 } 9248 return fn 9249 }(); 9250 response(results.filter(predicate)); 9251 }, 9252 minLength: 1, 9253 //results are clickable 9254 select: function (event, ui) { 9255 window.location = ui.item.url; 9256 } 9257 }); 9258 }); 9259 </script>
9259 9260 9261
9261<script src="https://outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer 9262 type="text/javascript"></script>
9262 9263
9263<script src="https://outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer 9264 type="text/javascript"></script>
9264 9265 9266
9266<script> 9267 $(window).on("load", function () { 9268 var youtube = document.querySelectorAll(".youtube"); 9269 for (var i = 0; i < youtube.length; i++) { 9270 var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault_1x.jpg"; 9271 var datasource = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/sddefault.jpg"; 9272 var image = new Image(); 9273 image.src = source; 9274 image.setAttribute("data-src", datasource); 9275 image.classList.add("swiper-lazy"); 9276 image.addEventListener("load", function () { 9277 youtube[i].appendChild(image); 9278 }(i)); 9279 youtube[i].addEventListener("click", function () { 9280 var iframe = document.createElement("iframe"); 9281 iframe.setAttribute("width", "480"); 9282 iframe.setAttribute("height", "480"); 9283 iframe.setAttribute("frameborder", "0"); 9284 iframe.setAttribute("allowfullscreen", ""); 9285 iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset.embed + "?rel=0&showinfo=0&autoplay=1"); 9286 this.innerHTML = ""; 9287 this.appendChild(iframe); 9288 }); 9289 }; 9290 9291 })(); 9292 9293 /* Lazy Load */ 9294 const mainLazyLoad = new LazyLoad({ threshold: 400 }); 9295 $(document).ready(function () { 9296 9297 $("selectxxx").addClass("needsclick"); 9298 FastClick.attach(document.body); 9299 9300 var $customSelects = $('.select-search'); 9301 $customSelects.select2({ 9302 templateResult: function (result, container) { 9303 if (!result.id) { 9304 return result.text; 9305 } 9306 container.className += ' needsclick'; 9307 return result.text; 9308 } 9309 }); 9310 $customSelects.each(function (index, el) { $(el).data('select2').$container.find('*').addClass('needsclick'); }); 9311 $(document).on('select2:open', () => { 9312 document.querySelector('.select2-search__field').focus(); 9313 }); 9314 9315 9316 $(".overlay").click(function () { 9317 $(".js-drawer-close").click(); 9318 }); 9319 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function () { 9320 $("html").toggleClass("nav_open"); 9321 }); 9322 9323 $('.swatch-element label').on('click', function () { 9324 var srcImg = $(this).data('src'); 9325 $('#thumb-image-product .product-single__thumbnail').each(function () { 9326 if ($(this).attr("href") == srcImg) { 9327 $(this).trigger('click'); 9328 } 9329 }); 9330 }); 9331 var defaultValue = $(".swatch input:checked").val() 9332 9333 $('#purchaseProduct .swatch [type=radio]').change(function () { 9334 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 9335 var optionValue = $(this).val(); 9336 console.log(optionIndex, optionValue) 9337 var value = parseInt(optionValue.split(' ')[0]) 9338 $(this) 9339 .closest('#purchaseProduct') 9340 .find('.single-option-selector') 9341 .eq(optionIndex) 9342 .val(optionValue) 9343 .trigger('change'); 9344 9345 }); 9346 9347 }); 9348 $(document).ready(function () { 9349 $(".nav-search a").click(function (e) { 9350 e.preventDefault(); 9351 $(".icon-navsearch").toggle(); 9352 $(".icon-navclose").toggle(); 9353 $(".site-nav__item > .site-nav__link").toggle(); 9354 $(".open-search").toggle(); 9355 $(".open-search input").focus(); 9356 }); 9357 $(".best-price-guarantee").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839
9357651752652420' alt='Logo Best Price Guarantee'>"); 9358 if ($(window).width() < 768) { 9359 $(".bg-products .label-tag.valentine").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9360 $(".bg-products .label-tag.cny").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9361 $(".bg-products .label-tag.free-valentine").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 9362 } else { 9363 $(".bg-products .label-tag.valentine").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 9364 $(".bg-products .label-tag.cny").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 9365 $(".bg-products .label-tag.free-valentine").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 9366 } 9367 $(".bg-products .label-tag.free-cookies").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>"); 9368 $(".bg-products .label-tag.mothersday").html("<img src='https://outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=171373711354766377891752652419' alt='Icon Mothers day'>"); 9369 }); 9370 </script>
9370 9371 9372 9373 <!-- Remove duplicate wishlist.js reference --> 9374 <style> 9375 .fade { 9376 opacity: 0; 9377 -webkit-transition: opacity .15s linear; 9378 -o-transition: opacity .15s linear; 9379 transition: opacity .15s linear 9380 } 9381 9382 .modal { 9383 position: fixed; 9384 top: 0; 9385 right: 0; 9386 bottom: 0; 9387 left: 0; 9388 z-index: 999999; 9389 display: none; 9390 overflow: hidden; 9391 -webkit-overflow-scrolling: touch; 9392 outline: 0 9393 } 9394 9395 .fade.in { 9396 opacity: 1 9397 } 9398 9399 .modal-open .modal { 9400 overflow-x: hidden; 9401 overflow-y: auto; 9402 z-index: 999999; 9403 background-color: rgba(0, 0, 0, .3) 9404 } 9405
9406 .modal-dialog { 9407 position: relative; 9408 width: auto; 9409 margin: 10px 9410 } 9411 9412 .wishlist-model .modal-dialog { 9413 width: 700px 9414 } 9415 9416 .modal.fade .modal-dialog { 9417 -webkit-transition: -webkit-transform .3s ease-out; 9418 -o-transition: -o-transform .3s ease-out; 9419 transition: transform .3s ease-out; 9420 -webkit-transform: translate(0, -25%); 9421 -ms-transform: translate(0, -25%); 9422 -o-transform: translate(0, -25%); 9423 transform: translate(0, -25%) 9424 } 9425 9426 .modal.in .modal-dialog { 9427 -webkit-transform: translate(0, 0); 9428 -ms-transform: translate(0, 0); 9429 -o-transform: translate(0, 0); 9430 transform: translate(0, 0) 9431 } 9432 9433 .modal
9433-content { 9434 position: relative; 9435 background-color: #fff; 9436 -webkit-background-clip: padding-box; 9437 background-clip: padding-box; 9438 border: 1px solid #999; 9439 border: 1px solid rgba(0, 0, 0, .2); 9440 outline: 0; 9441 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); 9442 box-shadow: 0 3px 9px rgba(0, 0, 0, .5) 9443 } 9444 9445 .wishlist-model .modal-content {} 9446 9447 .wishlist-model .modal-header { 9448 min-height: 0; 9449 padding: 0; 9450 border-bottom: 0 9451 } 9452 9453 .close { 9454 float: right; 9455 font-size: 21px; 9456 font-weight: 700; 9457 line-height: 1; 9458 color: #000; 9459 text-shadow: 0 1px 0 #121212; 9460 filter: alpha(opacity=20); 9461 opacity: .2 9462 } 9463 9464 button.close { 9465 -webkit-appearance: none; 9466 padding: 0; 9467 cursor: pointer; 9468 background: 0 0; 9469 border: 0 9470 } 9471
9472 .modal-header .close { 9473 margin-top: -2px 9474 } 9475 9476 .wishlist-model .close { 9477 position: absolute; 9478 top: -10px; 9479 right: -10px; 9480 background: #fff; 9481 opacity: 1; 9482 width: 30px; 9483 height: 30px; 9484 font-size: 15px; 9485 border-radius: 50%; 9486 z-index: 10; 9487 box-shadow: 0 1px 4px 0 #121212 9488 } 9489 9490 .wishlist-model .close .icon-close { 9491 width: 25px; 9492 height: 25px 9493 } 9494 9495 .modal-body { 9496 position: relative; 9497 padding: 15px 9498 } 9499 9500 .wishlist-model .modal-body { 9501 padding: 0 30px; 9502 display: flex 9503 } 9504 9505 .wishlist-model .wishlist-left { 9506 width: 66.67%; 9507 border-right: 1px solid #ccc; 9508 padding: 30px 0 9509 } 9510 9511 .wishlist-model .wishlist-note { 9512 position: relative; 9513 display: inline-block; 9514 margin-bottom: 20px; 9515 margin-left: 35px; 9516 border-bottom: 1px solid #121212; 9517 color: #121212 9518 } 9519 9520 .wishlist-model .wishlist-note a { 9521 color: #212121; 9522 } 9523 9524 .wishlist-model .wishlist-note .cirle { 9525 position: absolute; 9526 top: -4px; 9527 left: -35px; 9528 width: 25px; 9529 height: 25px; 9530 color: #fff; 9531 background: #121212; 9532 line-height: 25px; 9533 border-radius: 50%; 9534 text-align: center 9535 } 9536 9537 .wishlist-model .wishlist-note svg { 9538 fill: #fff 9539 } 9540 9541 .wishlist-model .wishlist-note .cirle .icon-check { 9542 vertical-align: middle 9543 } 9544 9545 .wishlist-model .product-left { 9546 width: 33.33%; 9547 float: left; 9548 margin-right: 30px 9549 } 9550 9551 .wishlist-model .wishlist-image { 9552 overflow: hidden 9553 } 9554 9555 .wishlist-model .wishlist-image img { 9556 transition: all .3s linear 9557 } 9558 9559 .wishlist-model .wishlist-name { 9560 padding: 0; 9561 margin-bottom: 10px 9562 } 9563 9564 .wishlist-model .wishlist-name a { 9565 color: #212121; 9566 } 9567 9568 .wishlist-model .wishlist-price { 9569 margin-bottom: 10px 9570 } 9571 9572 .wishlist-model .wishlist-price .price { 9573 font-weight: 700; 9574 margin-right: 10px; 9575 font-size: 15px 9576 } 9577 9578 .wishlist-model .wishlist-price .price_compare { 9579 color: #ccc 9580 } 9581 9582 .wishlist-model .wishlist-right { 9583 width: 33.33%; 9584 padding: 30px 0; 9585 padding-left: 30px 9586 } 9587 9588 .wishlist-model .btn-quick-shop { 9589 width: 100%; 9590 border-color: #121212; 9591 background: #fff; 9592 color: #121212; 9593 padding: 0 30px; 9594 transition: all .2s linear; 9595 height: 36px; 9596 margin-bottom: 10px; 9597 text-transform: uppercase 9598 } 9599 9600 .wishlist-model .btn-cta { 9601 width: 100%; 9602 font-size: 1em; 9603 border-color: #212121; 9604 background: #212121; 9605 color: #fff; 9606 padding: 0; 9607 transition: all .2s linear; 9608 height: 36px; 9609 line-height: 36px; 9610 margin-bottom: 10px 9611 } 9612 9613 .wishlist-model .quantity-content { 9614 text-align: center 9615 } 9616 9617 .wishlist-model .quantity-content input { 9618 outline: none; 9619 text-align: center; 9620 font-weight: 600; 9621 border: 1px solid #121212 9622 } 9623 9624 .wishlist-model .quantity-content button { 9625 border-color: #121212 9626 } 9627 9628 @media (min-width:768px) {
9629 .modal-dialog { 9630 width: 600px; 9631 margin: 30px auto 9632 } 9633 9634 .modal-content { 9635 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); 9636 box-shadow: 0 5px 15px rgba(0, 0, 0, .5) 9637 } 9638 } 9639 </style> 9640 9641 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 9642 <div class="modal-dialog" role="document"> 9643 <div class="modal-content"> 9644 <div class="modal-body">Your Wishlist is empty!</div> 9645 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 9646 aria-hidden="true">×</span></button> 9647 </div> 9648 </div> 9649 </div> 9650 9651 <div class="wishlist-model"> 9652 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 9653 <div class="modal-dialog white-modal"> 9654 <div class="modal-content"> 9655 <div class="modal-header"> 9656 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 9657 <svg class="icon icon-close" version="1.1" 9658 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 9659 width="32" height="32" viewBox="0 0 32 32"> 9660 <title>icon-close</title> 9661 <path 9662 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"> 9663 </path> 9664 </svg> 9665 </button> 9666 </div> 9667 <div class="modal-body"> 9668 <div class="wishlist-left"> 9669 <div class="wishlist-note"> 9670 <span class="cirle"><svg version="1.1" 9671 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 9672 width="32" height="32" viewBox="0 0 32 32"> 9673 <title>icon-check</title> 9674 <path 9675 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"> 9676 </path> 9677 </svg></span> 9678 Product added to <a href="/pages/wish-list">Wishlist</a> 9679 </div> 9680 <div class="wishlist-product"> 9681 <div class="product-left"> 9682 <div class="wishlist-image"></div> 9683 </div> 9684 <div class="product-right"> 9685 <div class="wishlist-name"></div> 9686 <div class="wishlist-price"></div> 9687 </div> 9688 </div> 9689 </div> 9690 <div class="wishlist-right"> 9691 <div class="wishlist-cart"> 9692 <form action="/cart/add" method="post" class="variants-form variants" 9693 id="AddToCartForm" enctype="multipart/form-data"> 9694 <div class="others-bottom"> 9695 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 9696 <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
9697 <span id="AddToCartText" class="">Beli Sekarang</span> 9698 </button> 9699 </div> 9700 <div id="wishlist-variants-container" class="variants-wrapper"></div> 9701 <div class="quantity-content"> 9702 <label>QTY</label> 9703 <input type="number" size="5" class="" name="quantity" value="1" /> 9704 </div> 9705 </form> 9706 </div> 9707 </div> 9708 </div> 9709 </div> 9710 </div> 9711 </div> 9712 </div> 9713 9714 9715 <style> 9716 .stamped-badge[data-rating="0.0"] { 9717 display: none !Important; 9718 } 9719 9720 div[data-load-type="continue"] ul.stamped-pagination li.next a, 9721 div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 9722 border-radius: 0px; 9723 } 9724 9725 .stamped-review-body { 9726 padding-left: 0px !important; 9727 } 9728 9729 #product-reviews .stamped-header:after { 9730 display: none !Important; 9731 } 9732 9733 #stamped-main-widget .stamped-container, 9734 .stamped-badge-caption, 9735 #stamped-reviews-widget { 9736 font-family: inherit !important; 9737 } 9738 </style> 9739 9740 9741 9742 <div id='stamped-rewards-init' class='stamped-rewards-init' data-key-public=''></div> 9743 9744
9744<script src="https://outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" 9745 defer type="text/javascript"></script>
9745 9746 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 9747
9747<script src="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer 9748 type="text/javascript"></script>
9748 9749 9750
9750<script type="text/javascript"> 9751 function myInit() { StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 9752 </script>
9752 9753
9753<script async onload="myInit()" type="text/javascript" 9754 src="https://cdn1.stamped.io/files/widget.min.js"></script>
9754 9755 <style> 9756 .jss59 { 9757 background-color: rgba(0, 0, 0, 0.6); 9758 } 9759 9760 .MuiBackdrop-root { 9761 top: 0; 9762 left: 0; 9763 right: 0; 9764 bottom: 0; 9765 display: flex; 9766 z-index: -1; 9767 position: fixed; 9768 align-items: center; 9769 justify-content: center; 9770 background-color: rgba(0, 0, 0, 0.5); 9771 -webkit-tap-highlight-color: transparent; 9772 } 9773 9774 .MuiDialog-scrollPaper { 9775 display: flex; 9776 align-items: center; 9777 justify-content: center; 9778 } 9779 9780 .MuiDialog-container { 9781 height: 100%; 9782 outline: 0; 9783 } 9784 9785 .MuiPaper-elevation24 { 9786 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); 9787 } 9788 9789 .MuiDialog-paper { 9790 margin: 32px; 9791 position: relative; 9792 overflow-y: auto; 9793 } 9794 9795 .MuiDialog-paperScrollPaper { 9796 display: flex; 9797 max-height: calc(100% - 64px); 9798 flex-direction: column; 9799 } 9800 9801 .MuiDialog-paperWidthSm { 9802 max-width: 600px; 9803 } 9804 9805 #location-lock-dialog { 9806 top: 20%; 9807 left: 0; 9808 right: 0; 9809 width: 30%; 9810 margin: 0px auto; 9811 display: block; 9812 padding: 30px; 9813 z-index: 99999; 9814 position: fixed; 9815 font-size: 14px; 9816 background: rgb(0, 0, 0); 9817 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 9818 text-align: center; 9819 font-family: Roboto, Arial, sans-serif; 9820 line-height: 1; 9821 border-radius: 8px; 9822 -webkit-font-smoothing: subpixel-antialiased; 9823 } 9824 9825 .MuiButtonBase-root { 9826 color: inherit; 9827 border: 0; 9828 cursor: pointer; 9829 margin: 0; 9830 display: inline-flex; 9831 outline: 0; 9832 padding: 0; 9833 position: relative; 9834 align-items: center; 9835 user-select: none; 9836 border-radius: 0; 9837 vertical-align: middle; 9838 -moz-appearance: none; 9839 justify-content: center; 9840 text-decoration: none; 9841 background-color: transparent; 9842 -webkit-appearance: none; 9843 -webkit-tap-highlight-color: transparent; 9844 } 9845 9846 .MuiIconButton-root { 9847 flex: 0 0 auto; 9848 color: rgba(0, 0, 0, 0.54); 9849 padding: 12px; 9850 overflow: visible; 9851 font-size: 1.5rem; 9852 text-align: center; 9853 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9854 border-radius: 50%; 9855 } 9856 9857 .MuiIconButton-label { 9858 width: 100%; 9859 display: flex; 9860 align-items: inherit; 9861 justify-content: inherit; 9862 } 9863 9864 .MuiSvgIcon-root { 9865 fill: currentColor; 9866 width: 1em; 9867 height: 1em; 9868 display: inline-block; 9869 font-size: 1.5rem; 9870 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9871 flex-shrink: 0; 9872 user-select: none; 9873 } 9874 9875 .MuiTouchRipple-root { 9876 top: 0; 9877 left: 0; 9878 right: 0; 9879 bottom: 0; 9880 z-index: 0; 9881 overflow: hidden; 9882 position: absolute; 9883 border-radius: inherit; 9884 pointer-events: none; 9885 } 9886 9887 .jss36 { 9888 color: #222222; 9889 font-size: 24px; 9890 font-family: Roboto, Arial, sans-serif; 9891 font-weight: 500; 9892 } 9893 9894 .jss37 { 9895 color: #555555; 9896 padding: 10px 0px 0px; 9897 font-size: 14px; 9898 } 9899 9900 .MuiFormGroup-root { 9901 display: flex; 9902 flex-wrap: wrap; 9903 flex-direction: column; 9904 } 9905 9906 .MuiFormGroup-row { 9907 flex-direction: row; 9908 } 9909 9910 .jss63 { 9911 width: 85%; 9912 margin: 15px auto; 9913 display: flex; 9914 padding: 11px 0px 0px; 9915 justify-content: space-evenly; 9916 } 9917
9918 .MuiFormControlLabel-root { 9919 cursor: pointer; 9920 display: inline-flex; 9921 align-items: center; 9922 margin-left: -11px; 9923 margin-right: 16px; 9924 vertical-align: middle; 9925 -webkit-tap-highlight-color: transparent; 9926 } 9927 9928 .jss70 { 9929 margin: 0; 9930 } 9931 9932 .MuiButtonBase-root { 9933 color: inherit; 9934 border: 0; 9935 cursor: pointer; 9936 margin: 0; 9937 display: inline-flex; 9938 outline: 0; 9939 padding: 0; 9940 position: relative; 9941 align-items: center; 9942 user-select: none; 9943 border-radius: 0; 9944 vertical-align: middle; 9945 -moz-appearance: none; 9946 justify-content: center; 9947 text-decoration: none; 9948 background-color: transparent; 9949 -webkit-appearance: none; 9950 -webkit-tap-highlight-color: transparent; 9951 } 9952 9953 .MuiIconButton-root { 9954 flex: 0 0 auto; 9955 color: rgba(0, 0, 0, 0.54); 9956 padding: 12px; 9957 overflow: visible; 9958 font-size: 1.5rem; 9959 text-align: center; 9960 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 9961 border-radius: 50%; 9962 } 9963 9964 .MuiIconButton-colorSecondary { 9965 color: #f50057; 9966 } 9967 9968 .jss71 { 9969 padding: 9px; 9970 } 9971 9972 .MuiRadio-root { 9973 color: rgba(0, 0, 0, 0.54); 9974 } 9975 9976 .jss64 { 9977 padding: 2px; 9978 } 9979 9980 .MuiRadio-colorSecondary.Mui-checked { 9981 color: #f50057; 9982 } 9983 9984 .MuiIconButton-label { 9985 width: 100%; 9986 display: flex; 9987 align-items: inherit; 9988 justify-content: inherit; 9989 } 9990 9991 .MuiTypography-root { 9992 margin: 0; 9993 } 9994 9995 .MuiTypography-body1 { 9996 font-size: 18px; 9997 font-family: Roboto, sans-serif; 9998 font-weight: 400; 9999 line-height: 1.5; 10000 } 10001 10002 .location-popup_area-block__sp9Ws { 10003 display: -moz-box; 10004 display: flex; 10005 -moz-box-orient: vertical; 10006 -moz-box-direction: normal; 10007 flex-direction: column; 10008 -moz-box-pack: center; 10009 justify-content: center; 10010 position: relative; 10011 margin: 10px 10% 0; 10012 } 10013 10014 .location-popup_pin-search-box__3l5mJ { 10015 width: 100%; 10016 display: -moz-box; 10017 display: flex; 10018 -moz-box-align: center; 10019 align-items: center; 10020 } 10021 10022 .location-popup_place-icon-city__1XAX5, 10023 .location-popup_place-icon__jSG0Q { 10024 position: absolute; 10025 z-index: 999; 10026 } 10027 10028 .location-popup_place-icon__jSG0Q { 10029 color: #212121; 10030 padding-left: 8px; 10031 } 10032 10033 .location-popup_place-icon__jSG0Q svg { 10034 width: 18px; 10035 height: 18px; 10036 } 10037 10038 .location-popup_cancel-icon__FHujU { 10039 color: #fff; 10040 right: 10px; 10041 width: 16px; 10042 cursor: pointer; 10043 height: 16px; 10044 display: none; 10045 padding: 5px; 10046 position: absolute; 10047 background: #999; 10048 text-align: center; 10049 border-radius: 50%; 10050 } 10051 10052 .location-popup_pin-search-box__3l5mJ>div>select { 10053 /* -webkit-box-shadow: 0 0 10px #212121; 10054 box-shadow: 0 0 10px #212121; */ 10055 text-transform: capitalize; 10056 border: 1px solid #212121; 10057 color: #212121; 10058 width: 100%; 10059 margin: 0; 10060 display: -moz-box; 10061 display: flex;
10062 padding: 0 30px; 10063 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10064 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10065 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 10066 font-size: 16px; 10067 border-radius: 4px; 10068 height: 44px; 10069 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 10070 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 10071 } 10072 10073 .MuiButtonBase-root { 10074 color: inherit; 10075 border: 0; 10076 cursor: pointer; 10077 margin: 0; 10078 display: inline-flex; 10079 outline: 0; 10080 padding: 0; 10081 position: relative; 10082 align-items: center; 10083 user-select: none; 10084 border-radius: 0; 10085 vertical-align: middle; 10086 -moz-appearance: none; 10087 justify-content: center; 10088 text-decoration: none; 10089 background-color: transparent; 10090 -webkit-appearance: none; 10091 -webkit-tap-highlight-color: transparent; 10092 } 10093 10094 .MuiButton-root { 10095 color: rgba(0, 0, 0, 0.87); 10096 padding: 6px 16px; 10097 font-size: 0.875rem; 10098 min-width: 64px; 10099 box-sizing: border-box; 10100 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; 10101 font-family: Roboto, sans-serif; 10102 font-weight: 500; 10103 line-height: 1.75; 10104 border-radius: 4px; 10105 text-transform: uppercase; 10106 } 10107 10108 .MuiButton-contained { 10109 color: rgba(0, 0, 0, 0.87); 10110 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); 10111 background-color: #e0e0e0; 10112 } 10113 10114 .MuiButtonBase-root.Mui-disabled { 10115 cursor: default; 10116 pointer-events: none; 10117 } 10118 10119 .MuiButton-label { 10120 width: 100%; 10121 display: inherit; 10122 align-items: inherit; 10123 justify-content: inherit; 10124 } 10125 10126 .cartButton_login_content__2j1f7 { 10127 display: -moz-box; 10128 display: flex; 10129 text-align: center; 10130 z-index: 9; 10131 font-size: 18px; 10132 font-weight: 500; 10133 color: #fff; 10134 } 10135 10136 .jss35 { 10137 top: 5px; 10138 right: 5px; 10139 padding: 4px; 10140 position: absolute; 10141 border-radius: 50%; 10142 } 10143 10144 .jss67 { 10145 cursor: pointer; 10146 font-size: 15px; 10147 line-height: 1.3; 10148 padding-left: 5px; 10149 } 10150 10151 .jss69 { 10152 color: #222222; 10153 } 10154 10155 .jss80 { 10156 color: #fff; 10157 width: 100%; 10158 height: 52px; 10159 padding: 11px 16px; 10160 font-size: 18px; 10161 min-width: 88px; 10162 min-height: 36px; 10163 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; 10164 font-weight: 500; 10165 line-weight: 1em; 10166 border-radius: 4px; 10167 text-transform: uppercase; 10168 background-color: #E87325; 10169 } 10170 10171 @media (min-width: 991px) { 10172 .cartButton_login_content__2j1f7 { 10173 font-weight: 500; 10174 } 10175 } 10176 10177 @media (max-width: 992px) { 10178 #location-lock-dialog { 10179 width: 100%; 10180 top: auto; 10181 bottom: 0; 10182 padding-left: 0; 10183 padding-right: 0; 10184 } 10185 10186 .MuiFormGroup-row { 10187 display: block 10188 } 10189 10190 .MuiIconButton-label input { 10191 margin: 0; 10192 } 10193 } 10194 </style> 10195 <div role="presentation" class="MuiDialog-root jss34" 10196 style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 10197 <div class="MuiBackdrop-root" aria-hidden="true" 10198 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 10199 <div tabindex="0" data-test="sentinelStart"></div> 10200 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" 10201 style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 10202 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" 10203 role="dialog"> 10204 <div class="jss31 undefined" id="location-lock-dialog"> 10205 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" 10206 tabindex="0" type="button" aria-label="close">
10207 <span class="MuiIconButton-label"> 10208 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" 10209 aria-hidden="true"> 10210 <path 10211 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"> 10212 </path> 10213 </svg> 10214 </span> 10215 <span class="MuiTouchRipple-root"></span> 10216 </button> 10217 <div> 10218 <div class="jss36">Select Delivery Location</div> 10219 <div class="jss37">Select a delivery location to see product availability</div> 10220 </div> 10221 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 10222 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 10223 <span 10224 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" 10225 aria-disabled="false"> 10226 <span class="MuiIconButton-label"> 10227 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" 10228 checked="" name="location"> 10229 <span class="jss41"></span> 10230 </span> 10231 <span class="MuiTouchRipple-root"></span> 10232 </span> 10233 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 10234 <span class="jss67 jss69">Jabodetabek</span> 10235 </span> 10236 </label> 10237 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 10238 <span 10239 class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" 10240 aria-disabled="false"> 10241 <span class="MuiIconButton-label"> 10242 <input id="non-jabodetabek" class="jss49" type="radio" 10243 value="Outside Jabodetabek" name="location"> 10244 <span class="jss40"></span> 10245 </span> 10246 <span class="MuiTouchRipple-root"></span> 10247 </span> 10248 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 10249 <span class="jss67 jss68">Outside Jabodetabek</span> 10250 </span> 10251 </label> 10252 </div> 10253 <div> 10254 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 10255 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 10256 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 10257 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" 10258 aria-hidden="true" style="font-size:16px"> 10259 <path 10260 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"> 10261 </path> 10262 </svg> 10263 </div> 10264 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 10265 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 10266 </div> 10267 <div style="width: 100%;"> 10268 <select id="choose-location" class="form-control"> 10269 <option value="">Choose Location</option> 10270 <option value="jakarta">Jakarta</option> 10271 <option value="bogor">Bogor</option> 10272 <option value="depok">Depok</option> 10273 <option value="tangerang">Tangerang</option> 10274 <option value="bekasi">Bekasi</option> 10275 </select> 10276 </div> 10277 </div> 10278 </div> 10279 </div> 10280 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" 10281 type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" 10282 data-testid="location-lock-submit" 10283 style="background-color: #212121; 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;" 10284 data-content="">
10285 <span class="MuiButton-label"> 10286 <span class=""></span> 10287 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" 10288 style="font-weight: 500;" data-content="">Continue Shopping</span> 10289 </span> 10290 </button> 10291 </div> 10292 </div> 10293 </div> 10294 <div tabindex="0" data-test="sentinelEnd"></div> 10295 </div> 10296 10297
10297<script type="text/javascript"> 10298 const jabodetabek = [ 10299 { 10300 "code": "jakarta", 10301 "city": "jakarta", 10302 "zip": [] 10303 }, 10304 { 10305 "code": "bogor", 10306 "city": "bogor", 10307 "zip": [] 10308 }, 10309 { 10310 "code": "depok", 10311 "city": "depok", 10312 "zip": [] 10313 }, 10314 { 10315 "code": "tangerang", 10316 "city": "tangerang", 10317 "zip": [] 10318 }, 10319 { 10320 10321 "code": "bekasi", 10322 "city": "bekasi", 10323 "zip": [] 10324 } 10325 ] 10326 let cityNonJabodetabek = [ 10327 "pengiriman_bandung barat", 10328 10329 10330 10331 10332 "pengiriman_banjarmasin", 10333 10334 10335 10336 10337 10338 "pengiriman_banyumas", 10339 10340 10341 10342 10343 10344 "pengiriman_banyuwangi", 10345 10346 10347 10348 10349 10350 "pengiriman_batam", 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 "pengiriman_biak", 10361 10362 10363 10364 10365 10366 "pengiriman_binjai", 10367 10368 10369 10370 10371 10372 "pengiriman_blitar", 10373 10374 10375 10376 10377 10378 "pengiriman_blora", 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 "pengiriman_bojonegoro", 10389 10390 10391 10392 10393 10394 "pengiriman_boyolali", 10395 10396 10397 10398 10399 10400 "pengiriman_bukittinggi", 10401 10402 10403 10404 10405 10406 "pengiriman_buleleng", 10407 10408 10409 10410 10411 10412 "pengiriman_ciamis", 10413 10414 10415 10416 10417 10418 "pengiriman_cianjur", 10419 10420 10421 10422 10423 10424 "pengiriman_cibinong", 10425 10426 10427 10428 10429 10430 "pengiriman_cikarang", 10431 10432 10433 10434 10435 10436 "pengiriman_cikupa", 10437 10438 10439 10440 10441 10442 "pengiriman_cilacap", 10443 10444 10445 10446 10447 10448 "pengiriman_cileunyi", 10449 10450 10451 10452 10453 10454 "pengiriman_cimahi", 10455 10456 10457 10458 10459 10460 "pengiriman_cirebon", 10461 10462 10463 10464 10465 10466 "pengiriman_ciwidey", 10467 10468 10469 10470 10471 10472 "pengiriman_deli serdang", 10473 10474 10475 10476 10477 10478 "pengiriman_demak", 10479 10480 10481 10482 10483 10484 "pengiriman_denpasar", 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 "pengiriman_garut", 10495 10496 10497 10498 10499 10500 "pengiriman_gianyar", 10501 10502 10503 10504 10505 10506 "pengiriman_gresik", 10507 10508 10509 10510 10511 10512 "pengiriman_gunung kidul", 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 "pengiriman_jambi", 10523 10524 10525 10526 10527 10528 "pengiriman_jayapura", 10529 10530 10531 10532 10533 10534 "pengiriman_jember", 10535 10536 10537 10538 10539 10540 "pengiriman_jepara", 10541 10542 10543 10544 10545 10546 "pengiriman_jombang", 10547 10548 10549 10550 10551 10552 "pengiriman_karanganyar", 10553 10554 10555 10556 10557 10558 "pengiriman_karawang", 10559 10560 10561 10562 10563 10564 "pengiriman_karo", 10565 10566 10567 10568 10569 10570 "pengiriman_kebumen", 10571 10572 10573 10574 10575 10576 "pengiriman_kediri", 10577 10578 10579 10580 10581 10582 "pengiriman_keerom", 10583 10584 10585 10586 10587 10588 "pengiriman_kendal", 10589 10590 10591 10592 10593 10594 "pengiriman_klaten", 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 "pengiriman_kudus", 10605 10606 10607 10608 10609 10610 "pengiriman_kupang", 10611 10612 10613 10614 10615 10616 "pengiriman_lainnya", 10617 10618 10619 10620 10621 10622 "pengiriman_lamongan", 10623 10624 10625 10626 10627 10628 "pengiriman_lampung", 10629 10630 10631 10632 10633 10634 "pengiriman_lampung barat", 10635 10636 10637 10638 10639 10640 "pengiriman_lembang", 10641 10642 10643 10644 10645 10646 "pengiriman_lombok", 10647 10648 10649 10650 10651 10652 "pengiriman_lumajang", 10653 10654 10655 10656 10657 10658 "pengiriman_madiun", 10659 10660 10661 10662 10663 10664 "pengiriman_magelang", 10665 10666 10667 10668 10669 10670 "pengiriman_majalengka", 10671 10672 10673 10674 10675 10676 "pengiriman_makassar", 10677 10678 10679 10680 10681 10682 "pengiriman_malang", 10683 10684 10685 10686 10687 10688 "pengiriman_manado", 10689 10690 10691 10692 10693 10694 "pengiriman_medan", 10695 10696 10697 10698 10699 10700 "pengiriman_mengwi", 10701 10702 10703 10704 10705 10706 "pengiriman_mojokerto", 10707 10708 10709 10710 10711 10712 "pengiriman_nganjuk", 10713 10714 10715 10716 10717 10718 "pengiriman_ngawi", 10719 10720 10721 10722 10723 10724 "pengiriman_padang", 10725 10726 10727 10728 10729 10730 "pengiriman_palembang", 10731 10732 10733 10734 10735 10736 "pengiriman_pasuruan", 10737 10738 10739 10740 10741 10742 "pengiriman_pati", 10743 10744 10745 10746 10747 10748 "pengiriman_pekalongan", 10749 10750 10751 10752 10753 10754 "pengiriman_pekanbaru", 10755 10756 10757 10758 10759 10760 "pengiriman_pemalang", 10761 10762 10763 10764 10765 10766 "pengiriman_ponorogo", 10767 10768 10769 10770 10771 10772 "pengiriman_pontianak", 10773 10774 10775 10776 10777 10778 "pengiriman_probolinggo", 10779 10780 10781 10782 10783 10784 "pengiriman_purbalingga", 10785 10786 10787 10788 10789 10790 "pengiriman_purwakarta", 10791 10792 10793 10794 10795 10796 "pengiriman_purwokerto", 10797 10798 10799 10800 10801 10802 10803 "pengiriman_rembang", 10804 10805 10806 10807 10808 10809 "pengiriman_riau", 10810 10811 10812 10813 10814 10815 "pengiriman_salatiga", 10816 10817 10818 10819 10820 10821 "pengiriman_samarinda", 10822 10823 10824 10825 10826 10827 "pengiriman_semarang", 10828 10829 10830 10831 10832 10833 "pengiriman_sentani", 10834 10835 10836 10837 10838 10839 "pengiriman_serang", 10840 10841 10842 10843 10844 10845 "pengiriman_sidoarjo", 10846 10847 10848 10849 10850 10851 "pengiriman_singkawang", 10852 10853 10854 10855 10856 10857 "pengiriman_sragen", 10858 10859 10860 10861 10862 10863 "pengiriman_subang", 10864 10865 10866 10867 10868 10869 "pengiriman_sukabumi", 10870 10871 10872 10873 10874 10875 "pengiriman_sumbawa", 10876 10877 10878 10879 10880 10881 "pengiriman_surabaya", 10882 10883 10884 10885 10886 10887 "pengiriman_surakarta solo", 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 "pengiriman_tasikmalaya", 10898 10899 10900 10901 10902 10903 "pengiriman_tegal", 10904 10905 10906 10907 10908 10909 "pengiriman_timika", 10910 10911 10912 10913 10914 10915 "pengiriman_wamena", 10916 10917 10918 10919 10920 10921 "pengiriman_wiyung", 10922 10923 10924 10925 10926 10927 "pengiriman_wonokromo", 10928 10929 10930 10931 10932 10933 "pengiriman_yogyakarta", 10934 ] 10935 console.log(cityNonJabodetabek) 10936 let non_jabodetabek = [] 10937 for (var i = 0; i < cityNonJabodetabek.length; i++) { 10938 const obj = { 10939 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ', '-'), 10940 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ', '-'), 10941 "zip": [] 10942 } 10943 non_jabodetabek.push(obj) 10944 } 10945 let current_location = getCookie("location_delivery") 10946 $("[name=location]").change(function () { 10947 let v = $(this).val() 10948 let option = [] 10949 if (v == 'Jabodetabek') { 10950 for (var i = 0; i < jabodetabek.length; i++) { 10951 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 10952 option.push(jabodetabekHtml) 10953 } 10954 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10955 } else { 10956 for (var i = 0; i < non_jabodetabek.length; i++) { 10957 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 10958 option.push(nonjabodetabekHtml) 10959 } 10960 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10961 } 10962 }) 10963 10964 $("#location-lock-submit").click(function (e) { 10965 let select = $("#choose-location") 10966 let value = select.val().toLowerCase() 10967 console.log(value) 10968 if (select.val() == "") { 10969 return alert("Choose Your Location") 10970 e.preventDefault() 10971 }
10972 setCookie("location_delivery", value, 1000000); 10973 10974 location.reload(); 10975 10976 }) 10977 10978 $("#close-popup-delivery").click(function () { 10979 $(".MuiDialog-root").hide() 10980 if (!current_location) { 10981 setCookie("location_delivery", "jakarta", 1000000); 10982 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 10983 } 10984 }) 10985 $("#loc_delivery, #loc_delivery_mobile").click(function () { 10986 $(".MuiDialog-root").show() 10987 }) 10988 10989 10990 if (!current_location) { 10991 10992 } else { 10993 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 10994 console.log(current_location) 10995 $("#choose-location").each(function () { 10996 if (current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi') { 10997 $("#jabodetabek").trigger("click") 10998 } else { 10999 $("#non-jabodetabek").trigger("click") 11000 } 11001 $("#choose-location").find("option[value=" + current_location + "]").attr("selected", "selected") 11002 }) 11003 } 11004 11005 // 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'){ 11006 // $("#timeMalam").attr("disabled", false) 11007 // } else { 11008 // $("#timeMalam").attr("disabled", true) 11009 // } 11010 11011 if (current_location && current_location != 'jakarta') { 11012 $("#self-pickup").attr("disabled", true) 11013 } 11014 11015 function setCookie(name, value, days) { 11016 var expires = ""; 11017 if (days) { 11018 var date = new Date(); 11019 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 11020 expires = "; expires=" + date.toUTCString(); 11021 } 11022 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 11023 } 11024 function getCookie(name) { 11025 var nameEQ = name + "="; 11026 var ca = document.cookie.split(';'); 11027 for (var i = 0; i < ca.length; i++) { 11028 var c = ca[i]; 11029 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 11030 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 11031 } 11032 return null; 11033 } 11034 </script>
11034 11035 <!-- One Tap --> 11036
11036<script type="text/javascript"> 11037 console.log("Outerbloom..."); 11038 </script>
11038 11039 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 11040 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 11041
11041<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer 11042 type="text/javascript"></script>
11042 11043
11043<script type="text/javascript"> 11044 const widgetConfig = { 11045 id: "clz7897za002cz7otleaz0d3d", 11046 showQuickResponse: false, 11047 quickResponsesData: [], 11048 themeColor: "#212121", 11049 widgetText: "", 11050 radiusType: "circle", 11051 widgetIconType: "whatsapp", 11052 position: "right", 11053 storeLogo: "", 11054 storeName: "Outerbloom", 11055 storeDescription: "", 11056 size: "small", 11057 showCard: false, 11058 widgetColorType: "solid", 11059 widgetColor1: "#008069", 11060 widgetColor2: "#008069", 11061 social: { 11062 socialOrders: ["instagram", "tiktok", "facebook", "x", "youtube", "linkedin", "email"], 11063 values: { 11064 instagram: { 11065 enabled: false, 11066 value: "", 11067 }, 11068 facebook: { 11069 enabled: false, 11070 value: "", 11071 }, 11072 email: { 11073 enabled: false, 11074 value: "", 11075 }, 11076 x: { 11077 enabled: false, 11078 value: "", 11079 }, 11080 tiktok: { 11081 enabled: false, 11082 value: "", 11083 }, 11084 linkedin: { 11085 enabled: false, 11086 value: "", 11087 }, 11088 youtube: { 11089 enabled: false, 11090 value: "", 11091 }, 11092 }, 11093 }, 11094 }; 11095 11096 function initializeWidget() { 11097 if (typeof BBBWidget !== 'undefined') { 11098 BBBWidget.init(widgetConfig); 11099 } else { 11100 setTimeout(initializeWidget, 100); 11101 } 11102 } 11103 11104 initializeWidget();</script>
11104 11105 11106 11107 </div> 11108 <div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 11109 11110 11111 <div style="position: fixed; bottom: 0; right: 0"></div> 11112 11113
11113<script type="text/javascript"> 11114 console.info("bitlogin extension version: v2.5.7"); 11115 11116 const googleScript = document.createElement("script"); 11117 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 11118 document.head.append(googleScript); 11119 11120 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 11121 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 11122 11123 const appearance = { "style": "square", "hasShadow": true, "domain": "outerbloom1.myshopify.com", "colorScheme": "match", "backgroundColor": "#000000", "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" } }; 11124 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 }]; 11125 const redirectUrl = appearance.redirectLink; 11126 11127 let locationCacheSet = false; 11128 let errorLocation = false; 11129 let oneTapSet = false; 11130 11131 let bitloginCache = { 11132 appearance: appearance, 11133 config: config 11134 }; 11135 11136 let isInitializing = false; 11137 const queue = []; 11138 11139 // Add CSS for the popup 11140 const popupStyles = document.createElement('style'); 11141 popupStyles.textContent = ` 11142 /* Styles for login popup */ 11143 .bitlogin-popup-overlay { 11144 position: fixed; 11145 top: 0; 11146 left: 0; 11147 width: 100%; 11148 height: 100%; 11149 background: rgba(0, 0, 0, 0.45); 11150 backdrop-filter: blur(4px); 11151 display: flex;
11152 align-items: center; 11153 justify-content: center; 11154 opacity: 0; 11155 transition: opacity 0.3s ease-in-out; 11156 z-index: 999999; 11157 } 11158 11159 .bitlogin-popup-overlay.visible { 11160 opacity: 1; 11161 } 11162 11163 .bitlogin-popup { 11164 background: #000000; 11165 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 11166 border-radius: 16px; 11167 width: 100%; 11168 max-width: 560px; 11169 display: flex; 11170 overflow: hidden; 11171 position: relative; 11172 opacity: 0; 11173 transform: translateY(20px) scale(0.98); 11174 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 11175 } 11176 11177 .bitlogin-popup.visible { 11178 opacity: 1; 11179 transform: translateY(0) scale(1); 11180 } 11181 11182 .bitlogin-popup-with-image { 11183 max-width: 640px; 11184 } 11185 11186 .bitlogin-popup-right-image { 11187 flex-direction: row-reverse; 11188 } 11189 11190 .bitlogin-popup-image { 11191 object-fit: cover; 11192 width: 50%; 11193 height: auto; 11194 } 11195 11196 .bitlogin-popup-content { 11197 padding: 32px; 11198 position: relative; 11199 width: 50%; 11200 } 11201 11202 .bitlogin-popup-close { 11203 position: absolute; 11204 top: 16px; 11205 right: 16px; 11206 background: white; 11207 border: none; 11208 width: 30px; 11209 height: 30px; 11210 display: flex;
11211 align-items: center; 11212 justify-content: center; 11213 cursor: pointer; 11214 transition: background-color 0.2s; 11215 color: inherit; 11216 padding: 0; 11217 } 11218 11219 .bitlogin-popup-close:hover { 11220 background-color: #e5e5e5; 11221 } 11222 11223 .bitlogin-popup-buttons { 11224 display: flex; 11225 flex-direction: column; 11226 gap: 12px; 11227 margin-top: 24px; 11228 } 11229 11230 /* Button styles within popup - override width for popup buttons */ 11231 .bitlogin-popup-buttons #google-login, 11232 .bitlogin-popup-buttons #facebook-login, 11233 .bitlogin-popup-buttons #apple-login, 11234 .bitlogin-popup-buttons #whatsapp-login, 11235 .bitlogin-popup-buttons #microsoft-login, 11236 .bitlogin-popup-buttons #twitter-login, 11237 .bitlogin-popup-buttons #amazon-login, 11238 .bitlogin-popup-buttons #instagram-login, 11239 .bitlogin-popup-buttons #magic-link-login, 11240 .bitlogin-popup-buttons #mobile-app-login { 11241 width: 100% !important; 11242 font-family: inherit !important; 11243 } 11244 11245 .bitlogin-popup-footer { 11246 margin-top: 32px; 11247 text-align: center; 11248 font-size: 14px; 11249 opacity: 0.6; 11250 } 11251 11252 /* Modern Typography */ 11253 .bitlogin-popup h2 { 11254 margin-top: 12px; 11255 font-size: 21px !important; 11256 line-height: 1.2 !important; 11257 font-weight: 700 !important; 11258 letter-spacing: -0.02em !important; 11259 margin-bottom: 16px !important; 11260 } 11261 11262 .bitlogin-popup-header { 11263 position: relative; 11264 margin-bottom: 24px; 11265 } 11266 11267 /* Modern gradient accent */ 11268 .bitlogin-popup-content > div { 11269 font-size: 16px !important; 11270 line-height: 1.2 !important; 11271 opacity: 0.85 !important; 11272 } 11273 11274 /* Enhanced button interactions */ 11275 .bitlogin-popup-buttons button { 11276 position: relative; 11277 overflow: hidden; 11278 } 11279 11280 @keyframes ripple { 11281 0% { 11282 transform: scale(0, 0); 11283 opacity: 0.5; 11284 } 11285 100% { 11286 transform: scale(100, 100); 11287 opacity: 0; 11288 } 11289 } 11290 11291 /* Responsive adjustments */ 11292 @media (max-width: 640px) { 11293 .bitlogin-popup { 11294 max-width: 90%; 11295 width: 90%; 11296 margin: 0 16px; 11297 } 11298 11299 .bitlogin-popup-with-image { 11300 flex-direction: column !important; 11301 } 11302 11303 .bitlogin-popup-image { 11304 width: 100%; 11305 height: 180px; 11306 } 11307 11308 .bitlogin-popup-content { 11309 padding: 24px; 11310 } 11311 11312 .bitlogin-popup h2 { 11313 font-size: 24px !important; 11314 } 11315 } 11316`; 11317 11318 document.head.appendChild(popupStyles); 11319 11320 // Add fonts link for different font options 11321 const fontsLink = document.createElement('link'); 11322 fontsLink.rel = 'stylesheet'; 11323 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'; 11324 document.head.appendChild(fontsLink); 11325 11326 (async () => { 11327 try { 11328 let host = window.location.host; 11329 if (host === "admin.shopify.com") { 11330 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 11331 } 11332 11333 const urlSearchParams = new URLSearchParams(window.location.search); 11334 const checkoutUrl = urlSearchParams.get("checkout_url"); 11335 11336 async function init({ inputRef, index }) { 11337 if (isInitializing) { 11338 queue.push(() => init({ inputRef, index })); 11339 return; 11340 } 11341 11342 isInitializing = true; 11343 11344 try { 11345 let bitLoginSectionRoot = document.querySelector( 11346 `.bitlogin-root[data-index="${index}"]` 11347 ); 11348 11349 const formRef = inputRef?.closest( 11350 "form:not([action='/account/recover'])" 11351 ); 11352 11353 if (formRef && !bitLoginSectionRoot) { 11354 await getLocation(); 11355 11356 bitLoginSectionRoot = document.createElement(`div`); 11357 11358 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 11359 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 11360 11361 updateAppearance({ 11362 formRef, 11363 rootRef: bitLoginSectionRoot, 11364 host, 11365 }); 11366 } 11367 } catch (err) { 11368 console.error(`error while initiating bitlogin extensions`, err); 11369 } finally { 11370 // Release the lock 11371 isInitializing = false; 11372 11373 // Check if there are pending items in the queue 11374 if (queue.length > 0) { 11375 // Process the next function in the queue 11376 const nextFunction = queue.shift(); 11377 nextFunction(); 11378 } 11379 } 11380 } 11381 11382 function initAll() { 11383 return new Promise((resolve, reject) => { 11384 setTimeout(async () => { 11385 const inputRefs = document.querySelectorAll( 11386 'input[name="customer[email]"]' 11387 ); 11388 11389 for (let i = 0; i < inputRefs.length; i++) { 11390 const currentInputRef = inputRefs[i]; 11391 const isVisible = isElementVisible(currentInputRef); 11392 11393 if (isVisible) { 11394 await init({ inputRef: currentInputRef, index: i }); 11395 } 11396 } 11397 11398 resolve("ok"); 11399 }, 100); 11400 }); 11401 } 11402 11403 const observer = new MutationObserver((mutationsList) => { 11404 for (let mutation of mutationsList) { 11405 initAll(); 11406 } 11407 }); 11408 11409 observer.observe(document.body, { 11410 childList: true, 11411 subtree: true, 11412 attributes: true, 11413 }); 11414 11415 initAll(); 11416 11417 if (appearance.googleOneTap) { 11418 setupOneTap({ host, checkoutUrl }); 11419 } 11420 11421 // Initialize popup 11422 await initPopup(host); 11423 } catch (error) { 11424 console.error("Error initializing BitLogin:", error); 11425 } 11426 })(); 11427 11428 async function initPopup(host) { 11429 // Check if user is already logged in using Liquid checks properly 11430 const isLoggedIn = false || 11431 document.querySelector('.customer-logout-link') || 11432 document.querySelector('.account-link') || 11433 window.location.pathname.includes('/account'); 11434 11435 if (isLoggedIn) { 11436 return; // User is logged in, don't show popup 11437 } 11438 11439 try { 11440 // Fetch the popup configuration 11441 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 11442 .then(res => res.json()) 11443 .catch(err => { 11444 console.error('Error fetching popup configuration:', err); 11445 return null; 11446 }); 11447 11448 if (!popupConfig || !popupConfig.enabled) { 11449 return;
11449 // Don't show popup if disabled or config not found 11450 } 11451 11452 // Create popup after 10 seconds 11453 setTimeout(() => { 11454 // Check if user is still on the page and still not logged in 11455 if (document.visibilityState === 'visible') { 11456 // Additional check in case user logged in during the 10 second wait 11457 const currentlyLoggedIn = false || 11458 document.querySelector('.customer-logout-link') || 11459 document.querySelector('.account-link'); 11460 11461 if (!currentlyLoggedIn) { 11462 createLoginPopup(popupConfig, host); 11463 } 11464 } 11465 }, 10000); 11466 } catch (error) { 11467 console.error('Error initializing popup:', error); 11468 } 11469 } 11470 11471 function createLoginPopup(popupConfig, host) { 11472 // Font mapping 11473 const fontFamilyMap = { 11474 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 11475 montserrat: 'Montserrat, sans-serif', 11476 roboto: 'Roboto, sans-serif', 11477 open_sans: 'Open Sans, sans-serif', 11478 noto_sans: 'Noto Sans, sans-serif', 11479 lato: 'Lato, sans-serif', 11480 poppins: 'Poppins, sans-serif', 11481 quicksand: 'Quicksand, sans-serif', 11482 raleway: 'Raleway, sans-serif', 11483 pt_sans: 'PT Sans, sans-serif', 11484 oswald: 'Oswald, sans-serif', 11485 }; 11486 11487 // Create overlay 11488 const overlay = document.createElement('div'); 11489 overlay.className = 'bitlogin-popup-overlay'; 11490 11491 // Create popup container with appropriate styling 11492 const popup = document.createElement('div'); 11493 popup.className = 'bitlogin-popup'; 11494 11495 if (popupConfig.layout === 'default') { 11496 popup.style.maxWidth = '400px'; 11497 } 11498 11499 // Function to close the popup 11500 const closePopup = () => { 11501 overlay.classList.remove('visible'); 11502 popup.classList.remove('visible'); 11503 setTimeout(() => { 11504 if (document.body.contains(overlay)) { 11505 document.body.removeChild(overlay); 11506 } 11507 }, 300); 11508 }; 11509 11510 // Add click handler to the overlay to close when clicking outside 11511 overlay.addEventListener('click', (event) => { 11512 // Close only if clicking directly on the overlay, not its children 11513 if (event.target === overlay) { 11514 closePopup(); 11515 } 11516 }); 11517 11518 // Add escape key handler to close popup 11519 document.addEventListener('keydown', (event) => { 11520 if (event.key === 'Escape' && document.body.contains(overlay)) { 11521 closePopup(); 11522 } 11523 }); 11524 11525 // Create layout with image if specified 11526 let contentWrapper; 11527 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 11528 popup.classList.add('bitlogin-popup-with-image'); 11529 11530 if (popupConfig.layout === 'right') { 11531 popup.classList.add('bitlogin-popup-right-image'); 11532 } 11533 11534 // Add image 11535 const image = document.createElement('img'); 11536 image.className = 'bitlogin-popup-image'; 11537 image.src = popupConfig.popupImage; 11538 image.alt = 'Login'; 11539 image.loading = 'lazy'; 11540 popup.appendChild(image); 11541 11542 // Create content container 11543 contentWrapper = document.createElement('div'); 11544 contentWrapper.className = 'bitlogin-popup-content'; 11545 11546 if (popupConfig.layout === 'right') { 11547 const closeButton = document.createElement('button'); 11548 closeButton.className = 'bitlogin-popup-close'; 11549 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 11550 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11551 </svg>`; 11552 closeButton.setAttribute('aria-label', 'Close'); 11553 closeButton.onclick = closePopup; 11554 11555 popup.appendChild(closeButton); 11556 } 11557 } else { 11558 contentWrapper = document.createElement('div'); 11559 contentWrapper.className = 'bitlogin-popup-content'; 11560 contentWrapper.style.width = '100%'; 11561 } 11562 11563 // Set background style 11564 if (popupConfig.backgroundTheme === 'gradient') { 11565 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 11566 } else { 11567 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 11568 } 11569 11570 // Apply font family 11571 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 11572 11573 if (popupConfig.layout !== 'right') { 11574 const closeButton = document.createElement('button'); 11575 closeButton.className = 'bitlogin-popup-close'; 11576 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 11577 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11578 </svg>`; 11579 closeButton.setAttribute('aria-label', 'Close'); 11580 closeButton.onclick = closePopup; 11581 11582 contentWrapper.appendChild(closeButton); 11583 } 11584 11585 // Add heading with subtle animation effect 11586 const header = document.createElement('div'); 11587 header.className = 'bitlogin-popup-header'; 11588 11589 const heading = document.createElement('h2'); 11590 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11590its'; 11591 heading.style.color = popupConfig.fontColor; 11592 header.appendChild(heading); 11593 11594 // Add body text with improved formatting 11595 const bodyText = document.createElement('div'); 11596 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 11597 bodyText.style.color = popupConfig.fontColor; 11598 header.appendChild(bodyText); 11599 11600 contentWrapper.appendChild(header); 11601 11602 // Create buttons container with modern styling 11603 const buttonsContainer = document.createElement('div'); 11604 buttonsContainer.className = 'bitlogin-popup-buttons'; 11605 11606 // Add social buttons 11607 const providerLabels = { 11608 'GOOGLE': 'Continue with Google', 11609 'FACEBOOK': 'Continue with Facebook', 11610 'APPLE': 'Continue with Apple', 11611 'WHATSAPP': 'Continue with WhatsApp', 11612 'MAGIC_LINK': 'Continue with Email', 11613 }; 11614 11615 // Add first login provider button 11616 if (popupConfig.loginProvider1 !== 'NONE') { 11617 const buttonConfig = { 11618 theme: popupConfig.colorScheme || 'match', 11619 customColor: popupConfig.textColor, 11620 format: 'contentFlex', 11621 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 11622 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11623 style: popupConfig.style || 'rounded', 11624 size: popupConfig.size || 'medium', 11625 colorScheme: popupConfig.colorScheme || 'match', 11626 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11627 textColor: popupConfig.textColor || '#000000', 11628 outlineColor: popupConfig.outlineColor || '#3B82F6', 11629 host: host 11630 }; 11631 11632 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 11633 11634 // Handle click event - this overrides the default click handler in createSocialLoginButton 11635 button1.onclick = () => { 11636 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 11637 closePopup(); 11638 }; 11639 11640 buttonsContainer.appendChild(button1); 11641 } 11642 11643 // Add second login provider button if enabled 11644 if (popupConfig.loginProvider2 !== 'NONE') { 11645 const buttonConfig = { 11646 theme: popupConfig.colorScheme || 'match', 11647 customColor: popupConfig.textColor, 11648 format: 'contentFlex', 11649 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 11650 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11651 style: popupConfig.style || 'rounded', 11652 size: popupConfig.size || 'medium', 11653 colorScheme: popupConfig.colorScheme || 'match', 11654 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11655 textColor: popupConfig.textColor || '#000000', 11656 outlineColor: popupConfig.outlineColor || '#3B82F6', 11657 host: host 11658 }; 11659 11660 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 11661 11662 // Handle click event - this overrides the default click handler in createSocialLoginButton 11663 button2.onclick = () => { 11664 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 11665 closePopup(); 11666 }; 11667 11668 buttonsContainer.appendChild(button2); 11669 } 11670 11671 contentWrapper.appendChild(buttonsContainer); 11672 11673 // Append content to popup 11674 popup.appendChild(contentWrapper); 11675 11676 // Append popup to overlay
11677 overlay.appendChild(popup); 11678 11679 // Append overlay to body 11680 document.body.appendChild(overlay); 11681 11682 // Trigger animation with slight delay for better perceived performance 11683 setTimeout(() => { 11684 overlay.classList.add('visible'); 11685 setTimeout(() => { 11686 popup.classList.add('visible'); 11687 }, 50); 11688 }, 10); 11689 } 11690 11691 window.addEventListener("load", () => { 11692 window.addEventListener("message", (event) => { 11693 const receivedData = event.data; 11694 11695 if (receivedData.type === "authorize") { 11696 post( 11697 JSON.parse( 11698 JSON.stringify({ 11699 "customer[email]": receivedData.email, 11700 "customer[password]": receivedData.password, 11701 form_type: "customer_login", 11702 utf8: "â", 11703 return_url: redirectUrl, 11704 }) 11705 ) 11706 ); 11707 } else if (receivedData.type === "rejected") { 11708 if (receivedData.reason === "customer_account_disabled") { 11709 showAlert( 11710 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 11711 ); 11712 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 11713 showAlert( 11714 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 11715 ); 11716 } else if (receivedData.reason === "customer_exist_email_not_set") { 11717 showAlert( 11718 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 11719 ); 11720 } 11721 } 11722 11723 if (receivedData.type === "customer_authenticated") { 11724 // Dispatch a custom event that merchants can listen for to implement their custom logic 11725 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 11726 detail: { 11727 provider: receivedData.provider, 11728 customer: receivedData.customer, 11729 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 11730 } 11731 }); 11732 11733 // Dispatch the event on the window object so merchants can listen for it 11734 window.dispatchEvent(customerAuthEvent); 11735 11736 } 11737 }); 11738 }); 11739 11740 // Reusable functions for social login buttons 11741 function createSocialLoginButton(provider, config = {}) { 11742 const { 11743 theme = 'match', 11744 customColor = null, 11745 format = 'contentFlex', 11746 buttonText = null, 11747 hasShadow = true, 11748 style = 'rounded', 11749 size = 'medium', 11750 colorScheme = 'match', 11751 backgroundColor = '#3B82F6', 11752 textColor = '#000000', 11753 outlineColor = '#3B82F6', 11754 rootRef = null, 11755 host = null 11756 } = config; 11757 11758 // Create button element with appropriate ID and attributes 11759 const button = document.createElement('button'); 11760 button.id = `${provider.toLowerCase()}-login`; 11761 button.type = 'button'; 11762 11763 // Set the inner SVG based on provider 11764 switch (provider.toUpperCase()) { 11765 case 'GOOGLE': 11766 button.innerHTML = googleLoginIcon(theme, customColor); 11767 break; 11768 case 'FACEBOOK': 11769 button.innerHTML = facebookLoginIcon(theme, customColor); 11770 break; 11771 case 'APPLE': 11772 button.innerHTML = appleLoginIcon(theme, customColor); 11773 break; 11774 case 'WHATSAPP': 11775 button.innerHTML = whatsappLoginIcon(theme, customColor); 11776 break; 11777 case 'MICROSOFT': 11778 button.innerHTML = microsoftLoginIcon(theme, customColor); 11779 break; 11780 case 'TWITTER': 11781 button.innerHTML = twitterLoginIcon(theme, customColor); 11782 break; 11783 case 'AMAZON': 11784 button.innerHTML = amazonLoginIcon(theme, customColor); 11785 break; 11786 case 'INSTAGRAM': 11787 button.innerHTML = instagramLoginIcon(theme, customColor); 11788 break; 11789 case 'MAGIC_LINK': 11790 button.innerHTML = magicLinkLoginIcon(theme, customColor); 11791 break; 11792 case 'MOBILE_APP':
11793 button.innerHTML = mobileAppLoginIcon(theme, customColor); 11794 break; 11795 case 'LINKEDIN': 11796 button.innerHTML = linkedinLoginIcon(theme, customColor); 11797 break; 11798 } 11799 11800 // Add text if format isn't icon-only and buttonText is provided 11801 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 11802 button.innerHTML += `<p>${buttonText}</p>`; 11803 } 11804 11805 // Apply styling 11806 // Shadow 11807 if (hasShadow) { 11808 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 11809 button.style["box-shadow"] = shadowProperties; 11810 } 11811 11812 // Border radius 11813 const radiusProperties = 11814 style === "rounded" 11815 ? "8px" 11816 : style === "square" 11817 ? "0px" 11818 : style === "fullRounded" 11819 ? format === "wrapperFlexContainerOnlyLogo" 11820 ? "50%" 11821 : "50px" 11822 : undefined; 11823 button.style["border-radius"] = radiusProperties; 11824 11825 // Size 11826 const sizeProperties = 11827 size === "medium" 11828 ? "12px" 11829 : size === "small" 11830 ? "8px" 11831 : size === "large" 11832 ? "16px" 11833 : "8px"; 11834 11835 button.style["padding-block"] = sizeProperties; 11836 11837 // Format styling 11838 if (format) { 11839 if ( 11840 format === "contentFlexReverse" || 11841 format === "contentFlexCenterReverse" 11842 ) { 11843 const flexDir = `row-reverse`; 11844 button.style["flex-direction"] = flexDir; 11845 } 11846 11847 if ( 11848 format === "contentFlexCenter" || 11849 format === "contentFlexCenterReverse" 11850 ) { 11851 const justifyContent = `center`; 11852 button.style["justify-content"] = justifyContent; 11853 } else if ( 11854 format === "contentFlex" || 11855 format === "contentFlexReverse" 11856 ) { 11857 const buttonTextElement = button.querySelector("p"); 11858 if (buttonTextElement) { 11859 buttonTextElement.style["flex-grow"] = 1; 11860 buttonTextElement.style["text-align"] = "center"; 11861 } 11862 } 11863 11864 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 11865 rootRef.style["flex-direction"] = "row"; 11866 rootRef.style["gap"] = "8px"; 11867 rootRef.style["display"] = "flex"; 11868 rootRef.style["flex-wrap"] = "wrap"; 11869 11870 const sizeMapping = { 11871 small: "52px", 11872 medium: "62px", 11873 large: "72px", 11874 }; 11875 const buttonSize = sizeMapping[size] || "52px"; 11876 11877 button.style["margin"] = 0;
11878 button.style["width"] = buttonSize; 11879 button.style["height"] = buttonSize; 11880 button.style["display"] = "flex"; 11881 button.style["align-items"] = "center"; 11882 button.style["justify-content"] = "center"; 11883 11884 const svgElement = button.querySelector("svg"); 11885 if (svgElement) { 11886 svgElement.style["flex"] = "none"; 11887 } 11888 } 11889 } 11890 11891 // Color scheme styling 11892 if (colorScheme === "black") { 11893 button.classList.add("scheme-black"); 11894 } else if (colorScheme === "white") { 11895 button.classList.add("scheme-white"); 11896 } else if (colorScheme === "custom") { 11897 button.style["background-color"] = backgroundColor; 11898 button.style["color"] = textColor; 11899 button.style["border-color"] = outlineColor; 11900 11901 const darkenColor = (color, percentage) => { 11902 const value = parseInt(color.slice(1), 16); 11903 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 11904 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 11905 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 11906 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 11907 }; 11908 11909 button.addEventListener("mouseover", () => { 11910 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 11911 }); 11912 button.addEventListener("mouseout", () => { 11913 button.style["background-color"] = backgroundColor; 11914 }); 11915 } else if (colorScheme === "match") { 11916 button.classList.add("scheme-match"); 11917 } else if (colorScheme === "matchOutline") { 11918 button.classList.add("scheme-match-outline"); 11919 } 11920 11921 // Add click event listener if host is provided 11922 if (host) { 11923 button.addEventListener("click", () => 11924 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 11925 ); 11926 } 11927 11928 return button; 11929 } 11930 11931 function setupSocialLoginButtons(config, rootRef, data, host) { 11932 // Clear any existing content 11933 rootRef.innerHTML = ''; 11934 11935 const sortedEnabledProviders = config 11936 .filter(c => c.enabledWeb) 11937 .sort((a, b) => a.position - b.position); 11938 11939 sortedEnabledProviders.forEach(provider => { 11940 const key = provider.provider; 11941 const lowerKey = key.toLowerCase(); 11942 11943 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 11944 ? (lowerKey === 'twitter' 11945 ? data.buttonList.twitter.replace('Twitter', 'X') 11946 : data.buttonList[lowerKey]) 11947 : null; 11948 11949 const button = createSocialLoginButton(key, { 11950 theme: data.colorScheme || 'match', 11951 customColor: data.textColor, 11952 format: data.format, 11953 buttonText: buttonText, 11954 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 11955 style: data.style, 11956 size: data.size, 11957 colorScheme: data.colorScheme, 11958 backgroundColor: data.backgroundColor, 11959 textColor: data.textColor, 11960 outlineColor: data.outlineColor, 11961 rootRef: rootRef, 11962 host: host 11963 }); 11964 11965 rootRef.appendChild(button); 11966 }); 11967 11968 return rootRef; 11969 } 11970 11971 function updateAppearance({ formRef, rootRef, host }) { 11972 if (!formRef) return; 11973 11974 const data = bitloginCache.appearance || { 11975 style: "square", 11976 hasShadow: false, 11977 colorScheme: "match", 11978 backgroundColor: "#000000", 11979 outlineColor: "#000000", 11980 textColor: "#000000", 11981 position: "bottom", 11982 hideDivider: "false", 11983 dividerText: "OR", 11984 size: "small", 11985 format: "contentFlex", 11986 language: "en", 11987 buttonText: "Continue with", 11988 redirectLink: "/account",
11989 googleOneTap: true, 11990 googleOneTapBanner: true, 11991 customerTag: "bitLogin", 11992 redirectOneTapDesktop: null, 11993 redirectOneTapMobile: null, 11994 buttonList: { 11995 google: "Continue with Google", 11996 facebook: "Continue with Facebook", 11997 apple: "Continue with Apple", 11998 whatsapp: "Continue with WhatsApp", 11999 microsoft: "Continue with Microsoft", 12000 twitter: "Continue with X", 12001 amazon: "Continue with Amazon", 12002 instagram: "Continue with Instagram", 12003 magic_link: "Continue with Magic Link", 12004 mobile_app: "Continue with Mobile App", 12005 linkedin: "Continue with LinkedIn", 12006 }, 12007 }; 12008 12009 // Use the new setupSocialLoginButtons function to create and configure all buttons 12010 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 12011 12012 let divider; 12013 12014 if (!data.hideDivider) { 12015 divider = document.createElement("div"); 12016 const dividerStyle = "text-align:center;margin-block:16px"; 12017 divider.setAttribute("style", dividerStyle); 12018 divider.innerHTML = data.dividerText; 12019 } 12020 12021 if (data.position === "bottom") { 12022 if (divider) { 12023 formRef.appendChild(divider); 12024 } 12025 formRef.appendChild(rootRef); 12026 } else if (data.position === "top") { 12027 if (divider) { 12028 formRef.prepend(divider); 12029 } 12030 formRef.prepend(rootRef); 12031 } 12032 } 12033 12034 12035 async function onClickSocialLogin({ provider, host }) { 12036 const rand = Math.random().toString(); 12037 12038 const locationQueryString = bitloginCache.location 12039 ? `&${objectToQueryString(bitloginCache.location)}` 12040 : ""; 12041 12042 const width = 800; 12043 const height = 600; 12044 const left = (window.screen.width / 2) - (width / 2); 12045 const top = (window.screen.height / 2) - (height / 2) - 50; 12046 12047 if (provider === 'whatsapp') { 12048 window.open( 12049 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 12050 "mywindow", 12051 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 12052 ); 12053 } else { 12054 window.open( 12055 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 12056 "mywindow", 12057 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 12058 ); 12059 } 12060 } 12061 12062 function objectToQueryString(obj) { 12063 return Object.keys(obj) 12064 .map((key) => { 12065 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 12066 }) 12067 .join("&"); 12068 } 12069 12070 async function getLocation() { 12071 if (locationCacheSet) return; 12072 12073 try { 12074 const response = await fetch("https://ipapi.co/json/"); 12075 12076 if (!response.ok) { 12077 console.error(`error retrieving location...`, response.status); 12078 errorLocation = true; 12079 } else { 12080 const data = await response.json(); 12081 12082 const { city, region, country_name, country_code } = data; 12083 12084 const formattedLocationData = { 12085 city, 12086 region, 12087 country_name, 12088 country_code, 12089 }; 12090 12091 bitloginCache.location = formattedLocationData; 12092 locationCacheSet = true; 12093 errorLocation = false; 12094 } 12095 } catch (err) { 12096 console.error(`error fetching location`, err); 12097 errorLocation = true; 12098 } 12099 } 12100 12101 function post(params) { 12102 // The rest of this code assumes you are not using a library. 12103 // It can be made less verbose if you use one. 12104 const form = document.createElement("form"); 12105 form.method = "post"; 12106 form.action = `/account/login`; 12107 form.acceptCharset = "UTF-8"; 12108 form.setAttribute("data-login-with-shop-sign-in", "true"); 12109 form.setAttribute("novalidate", "novalidate"); 12110 12111 for (const key in params) { 12112 if (params.hasOwnProperty(key)) { 12113 const hiddenField = document.createElement("input"); 12114 hiddenField.type = "hidden"; 12115 hiddenField.name = key; 12116 hiddenField.value = params[key]; 12117 12118 form.appendChild(hiddenField); 12119 } 12120 } 12121 12122 document.body.appendChild(form); 12123 form.submit(); 12124 } 12125 12126 async function setupOneTap({ host, checkoutUrl }) { 12127 if (oneTapSet) return; 12128 12129 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 12130 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 12131 12132 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 12133 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 12134 12135 const currentPath = window.location.pathname.toLowerCase(); 12136 const currentUrl = window.location.href.toLowerCase(); 12137 12138 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 12139 switch (value) { 12140 case 'home': 12141 return currentPath === '/'; 12142 case 'product': 12143 return currentPath.startsWith('/products/'); 12144 case 'collections': 12145 return currentPath.startsWith('/collections'); 12146 case 'cart': 12147 return currentPath === '/cart'; 12148 case 'checkout': 12149 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 12150 case 'thank_you': 12151 return currentPath.includes('/thank_you'); 12152 case 'account': 12153 return currentPath.startsWith('/account'); 12154 case 'pages': 12155 return currentPath.startsWith('/pages'); 12156 case 'blogs': 12157 return currentPath === '/blogs' || currentPath === '/blogs/news'; 12158 case 'blog_post': 12159 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 12160 default: 12161 return false; 12162 } 12163 }); 12164 12165 if (shouldHideGoogleOneTap) return; 12166 12167 const oneTapClientId = bitloginCache.config.find( 12168 (config) => config.provider === "GOOGLE" 12169 )?.clientId; 12170 12171 const isLoggedIn = false; 12172 12173 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 12174 const googleOneTapButton = document.createElement("div"); 12175 googleOneTapButton.setAttribute("id", "g_id_onload"); 12176 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 12177 googleOneTapButton.setAttribute("data-context", "signin"); 12178 googleOneTapButton.setAttribute( 12179 "data-callback", 12180 "handleGoogleOneTapResponse" 12181 ); 12182 googleOneTapButton.setAttribute("data-itp_support", "true"); 12183 12184 const googleOneTapScript = document.createElement("script"); 12185 12186 googleOneTapScript.innerHTML += ` 12187 function handleGoogleOneTapResponse(response) { 12188 if (response.credential) { 12189 const idToken = response.credential; 12190 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 12191 method: 'POST', 12192 headers: { 'Content-Type': 'application/json' }, 12193 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 12194 }).then(response => { 12195 response.json().then((data) => { 12196 post( 12197 JSON.parse( 12198 JSON.stringify({ 12199 "customer[email]": data.email, 12200 "customer[password]": data.password, 12201 form_type: "customer_login", 12202 utf8: "â", 12203 return_url: redirectUrl, 12204 }) 12205 ) 12206 ); 12207 }); 12208 }).catch(error => { 12209 console.error('Error occurred:', error); 12210 }); 12211 } else { 12212 console.error('No credential available'); 12213 } 12214 } 12215 `; 12216 12217 document.body.append(googleOneTapButton); 12218 document.body.append(googleOneTapScript); 12219 } 12220 12221 oneTapSet = true; 12222 } 12223 12224 const googleLoginIcon = ( 12225 theme, 12226 customColor 12227 ) => ` 12228${theme === "match" || theme === "matchOutline" || theme === "custom" 12229 ? `<svg 12230 xmlns='https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif' 12231 xmlns:v='https://vecta.io/nano' 12232 width='24' 12233 height='24'
12234 viewBox='0 0 186.69 190.5' 12235 > 12236 <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" 12237 }"/><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" 12238 }"/><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" 12239 }"/><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" 12240 }" clip-path="none" mask="none"/></g> 12241 </svg>` 12242 : `<svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 12243<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" 12244 }"/> 12245<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" 12246 }"/> 12247<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" 12248 }"/> 12249<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" 12250 }"/> 12251</svg>` 12252 }`; 12253 12254 const appleLoginIcon = ( 12255 theme, 12256 customColor 12257 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 12258<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" 12259 ? customColor 12260 : theme === "match" || theme === "black" 12261 ? "white" 12262 : "black" 12263 }"/> 12264</svg>`; 12265 12266 const facebookLoginIcon = ( 12267 theme, 12268 customColor 12269 ) => ` 12270${theme === "match" || theme === "matchOutline" || theme === "custom" 12271 ? `<svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="25" viewB
12271ox="0 0 24 25" fill="none"> 12272 <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" 12273 }"/> 12274 <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" 12275 }"/> 12276 </svg>` 12277 : `<svg xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 12278<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" 12279 }"/> 12280<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" 12281 }"/> 12282</svg>` 12283 }`; 12284 12285 const whatsappLoginIcon = ( 12286 theme, 12287 customColor 12288 ) => `<svg 12289 viewBox="0 0 24 24" 12290 fill="none" 12291 width="24" 12292 height="25" 12293 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12294> 12295 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 12296 <g 12297 id="SVGRepo_tracerCarrier" 12298 stroke-linecap="round" 12299 stroke-linejoin="round" 12300 ></g> 12301 <g id="SVGRepo_iconCarrier"> 12302 <path 12303 fill-rule="evenodd" 12304 clip-rule="evenodd" 12305 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" 12306 fill="${theme === "match" || theme === "black" 12307 ? "#000000" 12308 : theme === "white" 12309 ? "#000000" 12310 : theme === "matchOutline" 12311 ? "#25d366" 12312 : customColor 12313 }" 12314 ></path> 12315 </g> 12316</svg>`; 12317 12318 const microsoftLoginIcon = ( 12319 theme, 12320 customColor 12321 ) => `<svg 12322xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12323width="25" 12324height="25" 12325viewBox="0 0 48 48"> 12326<path fill="${theme === "match" || theme == "matchOutline" 12327 ? "#ff5722" 12328 : theme === "black" 12329 ? "#000000" 12330 : theme === "white" 12331 ? "#000000" 12332 : customColor 12333 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 12334<path 12335 fill="${theme === "match" || theme == "matchOutline" 12336 ? "#4caf50" 12337 : theme === "black" 12338 ? "#000000" 12339 : theme === "white" 12340 ? "#000000" 12341 : customColor 12342 }" 12343 d="M26 6H42V22H26z" 12344 transform="rotate(-180 34 14)"></path> 12345<path 12346 fill="${theme === "match" || theme == "matchOutline" 12347 ? "#ffc107" 12348 : theme === "black" 12349 ? "#000000" 12350 : theme === "white" 12351 ? "#000000" 12352 : customColor 12353 }" 12354 d="M26 26H42V42H26z" 12355 transform="rotate(-180 34 34)"></path> 12356<path fill="${theme === "match" || theme == "matchOutline" 12357 ? "#03a9f4" 12358 : theme === "black" 12359 ? "#000000" 12360 : theme === "white" 12361 ? "#000000" 12362 : customColor 12363 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 12364</svg>`; 12365 12366 const twitterLoginIcon = ( 12367 theme, 12368 customColor 12369 ) => `<svg 12370xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12371width="25" 12372height="25" 12373viewBox="0 0 48 48"> 12374<polygon fill="${theme === "match" || theme === "black" 12375 ? "#000000" 12376 : theme === "matchOutline" || theme === "white" 12377 ? "#000000" 12378 : customColor 12379 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 12380<polygon 12381 fill="${theme === "match" || theme === "black" 12382 ? "#000000" 12383 : theme === "matchOutline" || theme === "white" 12384 ? "#000000" 12385 : customColor 12386 }" 12387 fill-rule="evenodd" 12388 points="31.143,41 7.82,7 16.777,7 40.1,41" 12389 clip-rule="evenodd"></polygon> 12390<path 12391 fill="${theme === "match" || theme === "black" 12392 ? "#000000" 12393 : theme === "matchOutline" || theme === "white" 12394 ? "#000000" 12395 : customColor 12396 }" 12397 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 12398</svg>`; 12399 12400 const amazonLoginIcon = (theme, customColor) => ` 12401 <svg 12402 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12403 x="0px" 12404 y="0px" 12405 width="25" 12406 height="25"
12407 viewBox="0 0 50 50" 12408 > 12409 <path 12410 fill="${theme === "black" 12411 ? "#000000" 12412 : theme === "matchOutline" 12413 ? "#FF9900" 12414 : theme === "white" || theme === "match" 12415 ? "#000000" 12416 : customColor 12417 }" 12418 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" 12419 ></path> 12420 </svg>`; 12421 12422 const instagramLoginIcon = (theme, customColor) => ` 12423 <svg 12424 width="25" 12425 height="25" 12426 viewBox="0 0 25 24" 12427 fill="none" 12428 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif"> 12429 <path 12430 fill-rule="evenodd" 12431 clip-rule="evenodd" 12432 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.
1243264321C8.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" 12433 fill="url(#paint0_radial_378_3535)" /> 12434 <path 12435 fill-rule="evenodd" 12436 clip-rule="evenodd" 12437 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" 12438 fill="url(#paint0_radial_378_3535)" /> 12439 <path 12440 fill-rule="evenodd" 12441 clip-rule="evenodd" 12442 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.
1244264321C8.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" 12443 fill="url(#paint0_radial_378_3535)" /> 12444 <path 12445 fill-rule="evenodd" 12446 clip-rule="evenodd" 12447 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" 12448 fill="url(#paint1_radial_378_3535)" /> 12449 <defs> 12450 <radialGradient 12451 id="paint0_radial_378_3535" 12452 cx="0" 12453 cy="0" 12454 r="1" 12455 gradientUnits="userSpaceOnUse" 12456 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 12457 <stop offset="0.24392" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 12458 <stop offset="0.436673" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 12459 <stop offset="0.688476" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 12460 <stop offset="0.776787" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 12461 <stop offset="0.893155" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 12462 </radialGradient> 12463 <radialGradient 12464 id="paint1_radial_378_3535" 12465 cx="0" 12466 cy="0" 12467 r="1" 12468 gradientUnits="userSpaceOnUse" 12469 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 12470 <stop stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 12471 <stop offset="0.484375" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 12472 <stop offset="0.734375" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 12473 <stop offset="1" stop-color="${theme === 'black' ? '#000000' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 12474 </radialGradient> 12475 </defs> 12476 </svg>`; 12477 12478 const magicLinkLoginIcon = (theme, customColor) => ` 12479 <svg 12480 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12481 width="25" 12482 height="25" 12483 fill="none"
12484 viewBox="0 0 25 25" 12485 > 12486 <path 12487 fill="${theme === 'match' || theme === 'black' ? '#000000' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 12488 }" 12489 fillRule="evenodd" 12490 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" 12491 clipRule="evenodd" 12492 ></path> 12493 </svg>`; 12494 12495 const mobileAppLoginIcon = (theme, customColor) => ` 12496 <svg 12497 width="20" 12498 height="24" 12499 viewBox="0 0 12 16" 12500 fill="none" 12501 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12502 > 12503 <path 12504 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" 12505 fill=${theme === 'match' || theme === 'black' ? '#000000' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 12506 } 12507 /> 12508 </svg> 12509`; 12510 12511 const linkedinLoginIcon = (theme, customColor) => ` 12512 <svg 12513 xmlns="https://i.gyazo.com/f83b90eae83ed7ef6dc3c4367064d6f0.gif" 12514 width="25" 12515 height="24" 12516 viewBox="0 0 25 24" 12517 fill="none" 12518 > 12519 <path 12520 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" 12521 fill=${theme === 'match' || theme === 'black' ? '#000000' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 12522 } 12523 /> 12524 </svg> 12525`; 12526 12527 function isElementVisible(element) { 12528 return ( 12529 document.body.contains(element) && 12530 getComputedStyle(element).display !== "none" && 12531 getComputedStyle(element).visibility !== "hidden" && 12532 getComputedStyle(element).opacity !== "0" && 12533 !element.hasAttribute("hidden") && 12534 !isAncestorHidden(element) 12535 ); 12536 } 12537 12538 function isAncestorHidden(element) { 12539 let parent = element.parentElement; 12540 while (parent) { 12541 if ( 12542 getComputedStyle(parent).display === "none" || 12543 getComputedStyle(parent).visibility === "hidden" || 12544 getComputedStyle(parent).opacity === "0" || 12545 parent.hasAttribute("hidden") 12546 ) { 12547 return true; 12548 } 12549 parent = parent.parentElement; 12550 } 12551 return false; 12552 } 12553 12554 function showAlert(message) { 12555 const alertBox = document.createElement("div"); 12556 alertBox.textContent = message; 12557 alertBox.style.position = "fixed"; 12558 alertBox.style.top = "20px"; 12559 alertBox.style.right = "-300px"; // Start off-screen 12560 alertBox.style.backgroundColor = "#000000"; // Black background 12561 alertBox.style.color = "#000000"; // White text 12562 alertBox.style.padding = "15px"; 12563 alertBox.style.borderRadius = "8px"; 12564 alertBox.style.zIndex = "1000"; 12565 alertBox.style.transition = 12566 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 12567 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 12568 12569 document.body.appendChild(alertBox); 12570 12571 // Slide in 12572 requestAnimationFrame(() => { 12573 alertBox.style.right = "20px"; // Move into view 12574 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 12575 }); 12576 12577 // Slide out and remove the alert after a few seconds 12578 setTimeout(() => { 12579 alertBox.style.opacity = "0"; // Fade out 12580 alertBox.style.right = "-300px"; // Move out of view 12581 12582 // Wait for the transition to finish before removing the element 12583 setTimeout(() => { 12584 document.body.removeChild(alertBox); 12585 }, 500); // Match this duration with the exit transition duration 12586 }, 3000); 12587 } 12588 </script>
12588 12589 12590 <!-- ====== SVG SPRITE (taruh sekali dekat <body>) ====== --> 12591 <svg xmlns="http://www.w3.org/2000/svg" style="display:none"> 12592 <!-- Promo (star) --> 12593 <symbol id="icon-promo" viewBox="0 0 24 24"> 12594 <path d="M12 3l2.7 5.5L21 9l-4.5 4.2L17.4 21 12 17.9 6.6 21l.9-7.8L3 9l6.3-.5L12 3z" 12595 fill="currentColor" /> 12596 </symbol> 12597 <!-- Login (door + arrow) --> 12598 <symbol id="icon-login" viewBox="0 0 24 24"> 12599 <path d="M4 3h10v18H4z" fill="none" stroke="currentColor" stroke-width="2" 12600 stroke-linejoin="round" /> 12601 <path d="M14 12h7m0 0-3-3m3 3-3 3" fill="none" stroke="currentColor" stroke-width="2" 12602 stroke-linecap="round" stroke-linejoin="round" /> 12603 </symbol> 12604 <!-- Daftar (user + plus) --> 12605 <symbol id="icon-daftar" viewBox="0 0 24 24"> 12606 <circle cx="10" cy="8" r="3.5" fill="none" stroke="currentColor" stroke-width="2" /> 12607 <path d="M3.5 20a6.5 6.5 0 0 1 13 0" fill="none" stroke="currentColor" stroke-width="2" 12608 stroke-linecap="round" /> 12609 <path d="M18.5 8.5v6m-3-3h6" fill="none" stroke="currentColor" stroke-width="2" 12610 stroke-linecap="round" /> 12611 </symbol> 12612 <!-- Alternatif (chain link) --> 12613 <symbol id="icon-link" viewBox="0 0 24 24"> 12614 <path d="M9.5 14.5 7 17a4 4 0 0 1-5.7 0 4 4 0 0 1 0-5.7l3-3a4 4 0 0 1 5.7 0" fill="none" 12615 stroke="currentColor" stroke-width="2" stroke-linecap="round" /> 12616 <path d="M14.5 9.5 17 7a4 4 0 1 1 5.7 5.7l-3 3a4 4 0 0 1-5.7 0" fill="none" 12617 stroke="currentColor" stroke-width="2" stroke-linecap="round" /> 12618 <path d="M8.5 12h7" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" /> 12619 </symbol> 12620 <!-- Live Chat (bubble) --> 12621 <symbol id="icon-chat" viewBox="0 0 24 24"> 12622 <path d="M4 5h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z" 12623 fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" /> 12624 <circle cx="9" cy="11" r="1.2" fill="currentColor" /> 12625 <circle cx="12" cy="11" r="1.2" fill="currentColor" /> 12626 <circle cx="15" cy="11" r="1.2" fill="currentColor" /> 12627 </symbol> 12628 </svg> 12629 <footer class="alexis-footer"> 12630 12631 12632 </div> 12633 <style> 12634 .alexis-footer { 12635 position: fixed; 12636 bottom: 0; 12637 left: 0; 12638 width: 100%; 12639 z-index: 9999; 12640 12641 padding: 15px 10px; 12642 12643 background: 12644 linear-gradient(180deg, 12645 rgba(0, 0, 0, .95) 0%, 12646 rgba(45, 0, 0, .98) 40%, 12647 rgba(120, 0, 0, 1) 100%); 12648 12649 border-top: 2px solid #ff0000; 12650 12651 box-shadow: 12652 0 -5px 20px rgba(255, 0, 0, .8), 12653 0 -10px 40px rgba(255, 0, 0, .4); 12654 12655 backdrop-filter: blur(12px); 12656 } 12657 12658 .footer-glow { 12659 position: absolute; 12660 top: 0; 12661 left: 0; 12662 width: 100%; 12663 height: 2px; 12664 12665 background: 12666 linear-gradient(90deg, 12667 transparent, 12668 #ff0000, 12669 #ffcc00, 12670 #ff0000, 12671 transparent); 12672 12673 animation: footerLine 3s linear infinite; 12674 } 12675 12676 .footer-buttons { 12677 display: flex; 12678 gap: 12px; 12679 justify-content: center; 12680 align-items: center; 12681 } 12682 12683 .footer-btn { 12684 position: relative; 12685 overflow: hidden; 12686 12687 width: 32%; 12688 height: 54px; 12689 12690 display: flex; 12691 align-items: center; 12692 justify-content: center; 12693 12694 border-radius: 50px; 12695 12696 font-family: 'Orbitron', sans-serif; 12697 font-weight: 700; 12698 font-size: 15px; 12699 text-decoration: none; 12700 12701 transition: .3s; 12702 12703 color: #fff; 12704 12705 text-shadow: 12706 0 0 10px rgba(255, 255, 255, .5); 12707 } 12708 12709 .footer-btn::before { 12710 content: ''; 12711 position: absolute; 12712 top: 0; 12713 left: -120%; 12714 width: 60%; 12715 height: 100%; 12716 12717 background: 12718 linear-gradient(90deg, 12719 transparent, 12720 rgba(255, 255, 255, .4), 12721 transparent); 12722 12723 transform: skewX(-25deg); 12724 12725 animation: glassMove 2.5s linear infinite; 12726 } 12727 12728 .login-btn { 12729 background: 12730 linear-gradient(180deg, 12731 #250000, 12732 #ff0000, 12733 #700000); 12734 12735 border: 2px solid #ff3333; 12736 12737 box-shadow: 12738 0 0 15px #ff0000, 12739 0 0 30px rgba(255, 0, 0, .6); 12740 } 12741 12742 .register-btn { 12743 background: 12744 linear-gradient(180deg, 12745 #2d1a00, 12746 #ffcc00, 12747 #8f4e00); 12748 12749 color: #111; 12750 12751 border: 2px solid #ffe066; 12752 12753 box-shadow: 12754 0 0 15px #ffcc00, 12755 0 0 30px rgba(255, 204, 0, .5); 12756 } 12757 12758 .promo-btn { 12759 background: 12760 linear-gradient(180deg, 12761 #250000, 12762 #ff3300, 12763 #700000); 12764 12765 border: 2px solid #ff5500; 12766 12767 box-shadow: 12768 0 0 15px #ff3300, 12769 0 0 30px rgba(255, 51, 0, .6); 12770 } 12771 12772 .footer-btn:hover { 12773 transform: translateY(-4px) scale(1.03); 12774 } 12775 12776 @keyframes glassMove { 12777 100% { 12778 left: 160%; 12779 } 12780 } 12781 12782 @keyframes footerLine { 12783 100% { 12784 background-position: 300px; 12785 } 12786 } 12787 </style> 12788 12789 </footer> 12790 </div> 12791
12791<script defer 12792 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12793 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12794 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}}' 12795 crossorigin="anonymous" type="text/javascript"></script>
12795 12796
12796<script defer 12797 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12798 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12799 data-cf-beacon='{"version":"2024.11.0","token":"be60e1baae39417a8012179a84840884","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12800 crossorigin="anonymous" type="text/javascript"></script>
vendor: 187 bytes, lines 12800-12803
12800 12801 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" 12802 data-cf-settings="6ecfe15fd8defacc6a3ac2c7-|49" defer></script> 12803
12803<script defer 12804 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12805 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12806 data-cf-beacon='{"version":"2024.11.0","token":"889154dc92924aaeb96dacda435adada","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12807 crossorigin="anonymous"></script>
12807 12808
12808<script defer 12809 src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" 12810 integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 12811 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}}' 12812 crossorigin="anonymous"></script>
12812 12813
12813<script defer 12814 src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" 12815 integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 12816 data-cf-beacon='{"version":"2024.11.0","token":"7576ac00f81342fcae1d48b6e285957e","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' 12817 crossorigin="anonymous"></script>
vendor: 2 bytes, line 12817
12817
12818<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":"06d93a91da674812aee148397d619053","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12818 12819</body> 12820 12821</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.