1 2<!DOCTYPE html> 3<html lang=ar dir=rtl> 4<head> 5 6 <base href="https://brandfull.com" target="_top"> 7 <link rel="dns-prefetch" href="https://brandfull.com" /> 8 <link rel="preconnect" href="https://cdn.brandfull.com"> 9 <link rel="preconnect" href="https://cdn.brandfull.com" crossorigin> 10 <link rel="dns-prefetch" href="https://cdn.brandfull.com"> 11 <link rel="preconnect" href="https://brandfullsapi.azurewebsites.net" crossorigin> 12 13 <link rel="preload" fetchpriority="high" as="image" href="https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Big&format=webp" imagesrcset="https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Thumb&format=webp 320w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Small&format=webp 400w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Medium&format=webp 700w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Large&format=webp 1024w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=XLarge&format=webp 1280w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Big&format=webp 1500w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Wide&format=webp 1920w" imagesizes="100vw"> 14 15 16 <title>Ø¨Ø±Ø§ÙØ¯ÙÙ- Ù ÙØµØ© ÙØ¨Ùع ÙØ´Ø±Ø§Ø¡ اÙ٠تعÙÙØ§Øª Ø§ÙØ´Ø®ØµÙØ© اÙÙØ§Ø®Ø±Ø© - Ø¨Ø±Ø§ÙØ¯ÙÙ</title> 17 <meta charset="utf-8"> 18 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 19 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 20 <meta http-equiv="content-language" content="ar"> 21 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=5, shrink-to-fit=no" /> 22 23 <meta name="robots" content="index,follow"> 24 <meta name="googlebot" content="index,follow"> 25 26 <!-- Loading JS & CSS --> 27
27<script>!function(){var o=EventTarget.prototype.addEventListener;EventTarget.prototype.addEventListener=function(e,t,n){"touchstart"!==e&&"touchmove"!==e&&"wheel"!==e||("object"!=typeof n&&(n={capture:!!n}),n.passive=!0),o.call(this,e,t,n)}}();</script>
27 28 29 <link rel="stylesheet" href="/site-Ar.min.css?v=639260136226636726"> 30<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Light.woff2" as="font" fetchpriority="low" crossorigin="anonymous"> 31<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Regular.woff2" as="font" crossorigin="anonymous"> 32<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Bold.woff2" as="font" crossorigin="anonymous"> 33<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons-sub.woff2?v=1" as="font" fetchpriority="low" crossorigin="anonymous"> 34<style> 35 36 37@font-face { 38 font-family: 'IBMPlexSansArabic'; 39 font-style: normal; 40 font-weight: 300; 41 src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Light.woff2) format('woff2'); 42 font-display: swap; 43} 44 45@font-face { 46 font-family: 'IBMPlexSansArabic'; 47 font-style: normal; 48 font-weight: 400; 49 src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Regular.woff2) format('woff2'); 50 font-display: swap; 51} 52 53@font-face { 54 font-family: 'IBMPlexSansArabic'; 55 font-style: normal; 56 font-weight: 700; 57 src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Bold.woff2) format('woff2'); 58 font-display: swap; 59} 60 61 62 63@font-face { 64 font-family: "cartzilla-icons"; 65 src: url(https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons.woff2?v=6) format("woff2"); 66 font-weight: normal; 67 font-style: normal; 68 font-display: block; 69} 70 71@font-face { 72 font-family: "cartzilla-icons"; 73 src: url(https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons-sub.woff2?v=1) format("woff2"); 74 font-weight: normal; 75 font-style: normal; 76 font-display: block; 77 unicode-range: U+E902,U+E903,U+E904,U+E906,U+E908,U+E90A,U+E90C,U+E90F,U+E910,U+E912,U+E914,U+E916,U+E918,U+E919,U+E91A,U+E91B,U+E91C,U+E91D,U+E91F,U+E920,U+E921,U+E922,U+E923,U+E926,U+E928,U+E929,U+E92C,U+E92D,U+E92F,U+E933,U+E937,U+E938,U+E939,U+E93B,U+E93F,U+E940,U+E944,U+E945,U+E946,U+E947,U+E948,U+E94A,U+E94C,U+E94D,U+E952,U+E953,U+E954,U+E956,U+E957,U+E959,U+E95A,U+E95D,U+E95E,U+E963,U+E964,U+E965,U+E969,U+E96A,U+E96B,U+E96E,U+E970,U+E972,U+E974,U+E97A,U+E97F,U+E980,U+E982,U+E983,U+E985,U+E986,U+E987,U+E98A,U+E98B,U+E98C,U+E98D,U+E98F,U+E991,U+E994,U+E99C,U+E99F,U+E9A6,U+E9AA,U+E9AB,U+E9AE,U+E9BE,U+E9BF,U+E9C1,U+E9C3,U+E9D5,U+E9DA,U+E9DB,U+E9DD,U+E9DF,U+E9E0,U+E9E1,U+E9E2,U+E9E4,U+E9E5,U+E9E6; 78} 79 80@font-face { 81 font-family: "cartzilla-icons"; 82 src: url(data:font/woff2;base64,d09GMgABAAAAAA7YAAsAAAAAGQgAAA6KAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgSwRCAqrNKQCATYCJAMqCyoABCAFgRAHIBtpFFGUj1YN4OeB7ciNNa7Y8fpdT0YrmhkhyewP/DZ7RArzW19BPiIWKRysgsgd2Fg4XamThTfcias2cNHWospcpXKtXhXOla7VgRS7q740EAw4G0GKDdbZ/6T4SJ7ouzB4UtsP3qDJNbkOuvJgpbZrtQ0sksuddi/x4SkFJVSlAv9vLbW7QVL3ogAtCZeoxKGOsHHzJ7fvzb9N2oXQXBiP567MLqogbIWaKwEJ1TpUFbqKhDI1QtTWqM2CptBZ8p65IUZqZQyYtPES+69e0lsAAuEzbhOQAPA1+McAsFE/PtwzUOJo0GpDQFR5id6/CW2+toMEhuzOOA+dV1S8SsBgT8fp2UTYxfnAo18T3kv0Ur2IN9Ab5uV5VV6DN9vr9C7yrvJWe/d4u71/+3wUv3p13qy/MT2EfkL70T70Ofoveg+9jZ5H69BtaDW6GnWio1AZ4OACKMT5fLRjg1WBMjmJsruLpvl0uPXyRMABBUhAzqYBHgk3kg4SgQRWCB4YNowRGqzPLplE1DNRKo3DjCbSGFIOQqPR6f6I/6hYTigWEBoYTg7zHzYsSMi47iWax2TM/SLTb5gfh6OURccIdNJIZOPP/E1UxlaeQuM8D1FDyjIAYF0I+w+i2gBbbET9bMUoAb4nHnU+eYSIlga3Ged5CSd4s6lxscYYyZTu4RD5JfG5AWJizYBfoPVwYCzw6o7Mb/gZ0R0ieW3LVNoaw8W6oapkmwPkElIHJQAV+2u4swKUZKRr6bAd762SfrkX7LZH87Ihdq/3zZpXa1+8XgfW/+3sKBW+WoBFK1gKVf99tWJAmAObqF+IjDCyr5pZ0pvqm60lGYHMEuVf7uHlvpOuCzc0iObsZa2hH6ivnHomjdINwwq9O8uzHQruXVMnUXuxS9Zz6E+SjaF0f+ATHs6v7RjEuh/Jtf6VRLPidEu+mkH0Zq6YbgNVZ1oLtewLIoCloJwwTkHdaeRVjZ5UIcBDPOGZkAGqObOeDiOev+RfSIF3XRwZqzUUe0XDBYTR855arIkvSad7DcMSX6xyZVMzvFMJu0HQpo3ciyRJdHFGTcDaA7Ui1XqHP1xskGvJCKw7WCfTbS8j2co9CFflnpdRVL2vmiWar0WjmduD3FuzH74aSDGmsn1QXpRyvfwC1dC98mTLbfFoSeQ69d+Hz7ZJf91BxM61s8XC333XM/mOXoVp3kO5Ja0ytlkB+FlBXIsdpZWoPNtWrOeuUiro4YbFqL/ZPRkuh5sQIOxQECw/hRF2VfE0z6/4dZ/Gc4aU++JJKXpCMAATjMUujUie2Su9pNB9TQy9WGW0T3j6HbmSLaQq5/Pf21as9yF6OZNPVih2Na9UuuEnLPda865y01lxGqgFgZcGxshc7qHlvpv8vLUVlRFdPPtVb9tbhV2VZ4CR17ipsid/JxtJ4ItXHbUbRMQcDK6lw4jak+FS/QUCpMAT2eyNyb0WHDCVgO/X766+rnaJP3WnZddb5H7+KaeO8SoVQCIQxVL8uoZc6l9JlJ8IfqVoCdr25ocZq+nVXDFd1XdXe1oLtV4Ivpge
82kwA4FNS/6q90/bviOl+naXEtnhVsHjuwJyt5psaf5hkn+7GWGdb7wxe75HwexcQ1nmtnkxlI7s2JXCfAGD8SRvhXkSsFR2h/V4/QKdVbQxzTAxLBGMecRs3+cateHjFVUD0zetxKSxr+M8guUZt+I5pP4y1jJ+0GVarQYQC3yRyvYIQ4dsItM/TBH0CBj0Weqs88VlBg6xWxJ/rzQLggQFUy/sx4GsoyQEoPjz7XnvjciZS/88UFxgRDwhojjDLBaCo0nWF02xBM3cyhGZPpCsygs4ixQOlM2ApjviVy2e72hXPyZjoRe4jRb5AMBWy4aiiJw5yBZX2SEmK9mgMMwZEMUlL0Zk7mu07ehU5Ry97AtX6WaVec7+DVzHt63B91cnS4fCTi1UdPBGMu/l6sajweJhxPWr7CFD1h1r97XVVARbqhdgJJLnWHh8YgGhfTpd6/V5EsrQC672z1nKbF49JOQX5GjmCJr6sEv0jLZ1MtS1qmMm2lvR869bXEDB66kRWjKRiN07z74vPs7ADVqt2TZD7jO0BE7Yhq7Oh8IV3icg+vZo77p1u4s0L57yXxtSO0Y0mr2TArGJ6rBWN72DVuSIaDsmgrdZgQJvVyrhHClb29JF/NXG/oUXRh07RsL6uC4+j3CGAZD6lnRH1h8e/TVpttm0pzxJvhNWQuFrQijl3juiKB3R6L0nJZDHOJAwDlYQRereYb7YwFc0xmIl47RQUwZpYou0GsTbLrlSEOFdunSOo1YFUqsSSaJzpi3Bw5cTmCykqBazocIcuZmDN3cdh2hrqMfOCKPTHyNl0ucSfa7ZXEFN0ru82D8Q+Sj6RbA7HJCJ/v3xk6v2GyGOhQPOY/Nv4AcKv11qke/IcHvAMD2RE3U8fM4X4XhMA/GAEoYabhBF2MNMlYwFjN8N1d9niK8GmRIp35s7Ocs8tfVoG5LxxLN4C+XZxyI+wRETYbc3OysIJHgOTW0+jSpcsglse2seUFsHgRuvCMnyoLfNxZErssW5+Wrp33q/n41p935DpgTNIZvuf3CGtLe+4E1do9WQYfTIixGvlyo2ESEKF1tnCLaLkq92kL1/K7Ryc0ptssLA/ysf5p4iQrboqll6+HeqrEEzrHVmMqOvZd0Pd5N7sZzO6bxTcV00fTw82pqSnysQHz31rfruc8FocPUqV29oyG1SyWgb//5tYti51weIer4C4A+BbLN2/+lcWSy1ns37ZslmfUX1iEtvZiy35ZpTY3V3utjR0njI49z4NQ/u8bTQ5qCObCWFgh5vNSDGK1hE6eK16FXBdW9OlKwJPjRqe4PbDciQQvNtWiBoOlteFQq6DJJ2hXr/rDp48/3tuDtHH60D3bNHawXYwZpw/XxfwQOi0kf1A8+NYo8AhN5MuOqyzfOzspHbiiOLtZUd73/xZxln/3C+//KJn1eWiB0f/OpSwHW8NWE8z/lBTvDzp4QZj34H70Lht2+LIws7098Z9p05uSX7+W5bz/f+7hJQ00tmz6Dz/ENa3fPvPJz4LCK1dGN+D1G8NUtlk7tn++06D79rZoevdDrdq/ZJVtRvMpig5Z/nXvQPy0b7/T7ycZ21uyZ948D5JvlZ5Nm3oFYTICnsBuXuvT6LT6be6DBwEuHdrm1ug0+qHtzWx/Gu3XVVteEfGEsN/aT6zf6fvFWXeivT3ULJoxUjNuoGBkbFKlWaDZQ6rla167l1SsUY/TjJNGjY7CVOPU48vX1tf7R+hJO4vFmipzEgDE78an7MJppxMALM3NOQYtEUktu21mmdm1RNwfcxuLFOcllZPeisVvSeVJeWLknI0dSaM2SZzOu93d9q7u2xAxyelLakh6qjKnDvupQ+YpxqCllmyulZktMJHPvlw6SSlzXt4MY+yujUgZp+xmD1bIK8MWc5AHDwb6ZZ5qT667sanHg7kwAKjmqOf19DTpG12XXTqI79gf1BhkNOkdy+uS3utBwQTEgnFo4EifSFD0W8empIwt+S2daHBXhyADU7S5072eksl2p97fGuQUpnTQGetq1i+uriavJ2srMQsMN6ImOr35qXv8kWQG8d0XbB1AEjONkMhIhq5//3nBTRgOOBiR4Bh6auXyA5BA5stfajzxIG88g882HVfL3cIwBRoDer3eGl5NY+So8+GmMy25eZ8GTKZnn/ykljOQy8odeGYMDACgQ2QfY503z3pvKZNrNPJnUuVD8+o2Pooax58+nT9OAQBw5+e3bKwUq2YdxtA7j+8wFPVeAJDlKaPTwf1YAmV2EqdwS2NpLqD74B3y9toH4I8/cFqLEAU5T/JQrBA3zHJgHms6V1/smjbN9U7PLrJWW2167jsovzhcv84MHTUoeUfWchjJV3EN8hXt/UtGGviGJSN8t86tNHDzTWkjx0/IyJhgRYKZXETNZHMnaJSGycQ3o7ljHBIsKvkTuCF2OS0xeezb+32YTlQmEpr7UvGG7+k7ZY/SZZJT0q1pY8fJTSn5q1li3mPe+CkT/zCNo2K205iv6OLTxqS1W4osbT7XBD6t8srlSUkh6MSJKGli0uUrI0bkiO8iSXLIJLmCEePx1F87Gh9/7Gr9ccUgSVePJR+99pzpfX0zJLKRt4AIB1I1VWRUUiBCSVXa1EP9ZJlkxnn8tauzdGKNSFOCpCMXLZuv1yNWF+muXYMxQW1dErVa2oXYECUuz0c6eSYWKUB+bcZOQGh1St2okhUrUYmXO3NLXbt4NRVGdvmyMoQfyxQSDArmNbyKigcAlJbmvvz8gtJh5AWxtq7OHhNGU86yx2XHllfE5cTaHVreMoGJyjDlLOGqwGF/eEVFrHtPDmTPppiso0er/4exDu4gpUEkrPmqL2L+hEye5ebznRZcW6bItf5LblzsL79Md3K/LHOJcBmRFtjO+Q6ffM+4Lbqo6as68rNuxqRv2rqqXnbfkFlUFusmj4gVExThhhmrPBQyk0wJLa8BuVxmjQl897aqeNmbLPuF/E19in0FtgBizN3VsKXrOF+AGY7XGLgCgYF7rJZrEPBPUL/XBQy3UIo5ifwAYjg7nBjAT+QUU6fodN9TU3R+L/yMmZKykC5WKh1LpqfqdNu7WqiL40csUCqNEdwMpXJmBD/eLtmbH/i0sbE3kB3Y23ji18D8fdK7VCTUh4b6QhHWD5I46fcfNftlKHoRGkxqfQUAvrYok9BW4vtzrhBud8XgiH22EdbxpyQMbs5nL7rGaFJf0xhUt7pxAHfJfu4/zXn+499S/R7aJv+xkY264Rt83yra/+cHVMADjCJA3yKADuU9ZDdzaR4cERCHxWCcCVBk84cvGRKAALi/pXC1fjEehgF3Z4JtZ6IUkwAFiU4W+QyYBk5YAIugCObckEFpdLEZUAzzoARSIB8K4evCnZBO6Hz0Io/vnAdfQDzIgQAXAAA=) format("woff2"); 83 font-weight: normal; 84 font-style: normal; 85 font-display: block; 86 unicode-range: U+E904,U+E908,U+E910,U+E912,U+E918,U+E920,U+E940,U+E944,U+E945,U+E946,U+E959,U+E95A,U+E972,U+E97A,U+E982,U+E98D,U+E99F,U+E9DB,U+E9E4; 87} 88 89 90 91@font-face { 92 font-family: "digital"; 93 src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/digital-7.woff2) format('woff2'); 94 font-weight: normal; 95 font-style: normal; 96 font-display: swap; 97}</style> 98 <link rel="preload" href="https://cdn.brandfull.com/script.min.js?v=639260136226636726" as="script" fetchpriority="high"> 99 100 <link rel="preload" href="https://cdn.brandfull.com/InitData.ar.js?v=639260136446764345" as="script"> 101 <style> 102 .cart-drawer{position:fixed;top:0;right:0;width:380px;max-width:92vw;
102height:100vh;transform:translateX(var(--cart-hide-tx,100%));visibility:hidden} 103 [dir="rtl"] .cart-drawer{right:auto;left:0} 104 [dir="rtl"]{--cart-hide-tx:-100%} 105 .filter-drawer{position:fixed;top:0;left:0;width:340px;max-width:88vw;transform:translateX(var(--filter-hide-tx,-100%));visibility:hidden} 106 [dir="rtl"] .filter-drawer{left:auto;right:0} 107 [dir="rtl"]{--filter-hide-tx:100%} 108 .modal{display:none} 109 .seo-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} 110 </style> 111 <!-- ios support --> 112 <meta name="mobile-web-app-capable" content="yes" /> 113 <meta name="apple-mobile-web-app-capable" content="yes" /> 114 <meta name="application-name" content="PWA Workshop" /> 115 <meta name="apple-mobile-web-app-title" content="PWA Workshop" /> 116 <meta name="msapplication-starturl" content="/" /> 117 <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.brandfull.com/Media/BrandFull/apple-touch-icon.png?version=639260136446764345"> 118 <meta name="apple-mobile-web-app-status-bar" content="#34200C" /> 119 <meta name="msapplication-TileColor" content="#34200C" /> 120 <meta name="theme-color" content="#34200C" /> 121 122 <!-- Favicon Icon --> 123 <link rel="icon" type="image/x-icon" href="https://cdn.brandfull.com/Media/BrandFull/favicon.png?version=639260136446764345" /> 124 <link rel="icon" type="image/png" sizes="32x32" href="https://cdn.brandfull.com/Media/BrandFull/favicon-32x32.png?version=639260136446764345"> 125 <link rel="mask-icon" href="https://cdn.brandfull.com/Media/BrandFull/safari-pinned-tab.svg?version=639260136446764345" color="#5bbad5"> 126 <link rel="shortcut icon" href="https://cdn.brandfull.com/Media/BrandFull/safari-pinned-tab.svg?version=639260136446764345" color="#5bbad5"> 127 128 <!--====== Required meta tags ======--> 129 130 131 132 133<meta name="title" content="Ø§ÙØ³Ø¹ÙØ¯ÙØ© | اÙÙ ÙØ¶Ø© ÙØ§ÙØ±ÙØ§ÙÙØ©"> 134<meta name="description" content="Ù ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹Ùا٠ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ ÙÙ Ø¹Ù ÙØ§Ø¦Ùا Ù Ù Ø§ÙØ¨Ùع ٠باشرة ٠٠خزائÙÙÙ ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© ٠٠اÙÙÙÙ Ø© اÙ٠اÙÙØ© ÙÙØ¹Ùاصر اÙÙ Ø®Ø²ÙØ©."> 135<meta name="keywords" content="Ø¨Ø±Ø§ÙØ¯ÙÙ , Ù Ø§Ø±ÙØ§Øª, اÙÙØ§Ø®Ø±Ø©, Ù ÙØ§Ø¨Ø³ اÙ٠ص٠٠Ù٠اÙÙ Ø³ØªØ¹Ù ÙØ©, Ø£Ø²ÙØ§Ø¡, ساعات, ØÙائب ÙØ¯, Ø£ØØ°ÙØ©, ٠جÙÙØ±Ø§Øª, عتÙÙ, ÙØ³Ø§Ø¡, رجاÙ, Ù Ø³ØªØ¹Ù ÙØ©, إعادة Ø¨ÙØ¹, عبر Ø§ÙØ¥ÙØªØ±ÙØª"> 136 137<meta itemprop="name" content="Ø§ÙØ³Ø¹ÙØ¯ÙØ© | اÙÙ ÙØ¶Ø© ÙØ§ÙØ±ÙØ§ÙÙØ©"> 138<meta itemprop="description" content="Ù ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹Ùا٠ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ ÙÙ Ø¹Ù ÙØ§Ø¦Ùا Ù Ù Ø§ÙØ¨Ùع ٠باشرة ٠٠خزائÙÙÙ ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© ٠٠اÙÙÙÙ Ø© اÙ٠اÙÙØ© ÙÙØ¹Ùاصر اÙÙ Ø®Ø²ÙØ©."> 139<meta itemprop="image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345"> 140 141<meta property="og:url" content="https://brandfull.com/ar-sa/"> 142 143 144<meta property="og:title" content="Ø§ÙØ³Ø¹ÙØ¯ÙØ© | اÙÙ ÙØ¶Ø© ÙØ§ÙØ±ÙØ§ÙÙØ©"> 145<meta property="og:description" content="Ù ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹Ùا٠ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ ÙÙ Ø¹Ù ÙØ§Ø¦Ùا Ù Ù Ø§ÙØ¨Ùع ٠باشرة ٠٠خزائÙÙÙ ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© ٠٠اÙÙÙÙ Ø© اÙ٠اÙÙØ© ÙÙØ¹Ùاصر اÙÙ Ø®Ø²ÙØ©."> 146<meta property="og:type" content="website"> 147<meta property="og:image" itemprop="image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345"> 148 149<meta name="twitter:card" content="summary_large_image"> 150<meta name="twitter:title" content="Ø§ÙØ³Ø¹ÙØ¯ÙØ© | اÙÙ ÙØ¶Ø© ÙØ§ÙØ±ÙØ§ÙÙØ©"> 151<meta name="twitter:description" content="Ù ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹Ùا٠ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ ÙÙ Ø¹Ù ÙØ§Ø¦Ùا Ù Ù Ø§ÙØ¨Ùع ٠باشرة ٠٠خزائÙÙÙ ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© ٠٠اÙÙÙÙ Ø© اÙ٠اÙÙØ© ÙÙØ¹Ùاصر اÙÙ Ø®Ø²ÙØ©."> 152<meta name="twitter:creator" content="Brandfull"> 153<meta name="twitter:image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345"> 154 155 156 157<link rel="canonical" href="https://brandfull.com/ar-sa/"/> 158 159 160 161 162 163
164<script type="application/javascript"> 165 var m_loadIndex = 0; 166 var m_listScript = []; 167 168 // GTM's snippet used to create this at head-parse time; it is deferred now (see the 169 // <template id="UI_headScript"> injector at the bottom of this file), and 170 // Tools/Deferred/ThirdParty.js -- the only other place that declares the name -- is fetched 171 // on idle. Anything touching bare `dataLayer` before either arrives throws a ReferenceError, 172 // and a Portal-authored blob does exactly that from inside a doLoadScript callback, which 173 // fires long before both. Seed the array here: GTM's own `w[l] = w[l] || []` adopts THIS 174 // array, so events pushed before gtm.js loads are still replayed rather than lost. 175 // Safe against every later writer -- `var dataLayer;` in ThirdParty.js keeps the existing 176 // value (a var redeclaration of a live global does not reset it), and doSetThirdParty only 177 // assigns when its argument is non-null. 178 window.dataLayer = window.dataLayer || []; 179 180 // On the CDN with every other script the app loads -- scriptPage.min.js, scriptGallery.min.js, 181 // Handlers/Pages/*.js, Tools/Deferred/ThirdParty.js. /InitData.js is the single exception and 182 // has to stay: it is generated per language and company by our own HostController. 183 // 184 // It MUST stay in step with the <link rel=preload as=script> in both themes' _Layout: 185 // doGetVersionedUrl appends the same ?v= the preload carries, so the two URLs match byte for 186 // byte and the preloaded bytes are the ones that run. Point one at the CDN and the other at this 187 // origin and the bundle is simply downloaded twice. Neither carries crossorigin, so both are 188 // no-cors fetches and the preload is reused -- adding it to one alone would split them again. 189 // 190 // m_CDNUrl is empty on any build that serves its own assets, so this is "/script.min.js" 191 // unchanged in local dev, and doCheckOwnAsset answers true either way (leading '/', or the 192 // m_cdnBase prefix), which is what keeps the ?v= and the async-and-first placement. 193 var defaultScript = "https://cdn.brandfull.com/script.min.js"; 194 var m_isEnumReady = false; 195 196 // The whole-site blobs -- the category tree, the company and country lists, the enum translation 197 // dictionary -- served as one cacheable file by HostController instead of being inlined into 198 // every HTML response (~280 KB of a 784 KB page, the category tree alone 270 KB of it). 199 // 200 // On the CDN like every other script, even though this one is an MVC route rather than a file -- 201 // so is scriptPage.min.js, which has always been served from there. The response is a pure 202 // function of (lang, v): HostController composes it from statics keyed on nothing else, and the 203 // action drops the Set-Cookie headers the middleware seeds, which is what a CDN refuses to cache 204 // against. 205 // 206 // The language is in the URL because a script element sends no custom headers, so the `lang` 207 // header the rest of the app rides on is not available to it - and it is a PATH segment rather 208 // than ?lang= so that a CDN cannot cache one language and serve it to every visitor. See 209 // SettingManager.doGetInitDataPath, which the preload in _Layout builds from too. 210 // 211 // ?v= is written here rather than left to doGetVersionedUrl, and it is m_version -- the API's 212 // data version -- because this file IS API data: the category tree, the company and country 213 // lists, the enum translations. An /AutoRefresh that changes them without a redeploy has to 214 // change this url, and the build token would not move. doGetVersionedUrl sees the v= and adds 215 // nothing, so this stays byte-identical to the preload in _Layout, which spells it the same way. 216 var m_initDataUrl = "https://cdn.brandfull.com/InitData.ar.js?v=639260136446764345"; 217 218 // Where the fold is, straight from the value doGenerateContentfull (called in _LayoutPreload) 219 // used to pick which div templates to inline and which image to preload. One number, one 220 // definition (SettingManager.m_foldHeight). The client no longer walks the fold to decide which 221 // sections reserve a height -- every un-hydrated section holds the same 320px floor -- but the 222 // value is still read by the div loader, so it stays emitted here. 223 var m_foldHeight = 700; 224 225 // event.persisted == restored from the back/forward cache: the whole page came back frozen from 226 // memory, so nothing re-ran and m_currentCart still holds whatever it held when the visitor left. 227 // This used to call document.location.reload(), which fixed the staleness by throwing away the 228 // free instant restore -- re-downloading script.min.js, re-binding every Knockout template and 229 // re-issuing the div-section calls, on every single back navigation. 230 // doInitDataPageCart() re-fetches just the cart (CartService.GetInitData) and repopulates 231 // m_currentCart, which is what the header badge, the drawer and the totals all read. Its default 232 // arguments (reloadPage = false, url = '') mean it never navigates or reloads. 233 window.addEventListener('pageshow', function(event) { 234 if (!event.persisted) 235 return; 236 // Guard: the handler is created in the doLoadScript callback below. A restore always implies a 237 // fully-initialised page, but a restore racing a failed script load would otherwise throw here. 238 if (typeof m_handlerSession == "object" && m_handlerSession != null) 239 m_handlerSession.doInitDataPageCart(); 240 });
241 242 function doLoadReady(url) { 243 var item = m_listScript.find(item => item._url == url); 244 if (item._isLoaded == false) 245 { 246 item._isLoaded = true; 247 doRunOnReady(url, true); 248 } 249 } 250 251 var m_cdnBase = "https://cdn.brandfull.com"; 252 253 // The BUILD's token (SettingManager.m_assetVersion), not the API's data version. It buys nothing 254 // here to spend a thought on which: the bundles this versions ship with the binary, and the one 255 // url that is API data -- /InitData.js -- carries its own ?v= already, which doGetVersionedUrl 256 // leaves alone. Read the comment on SettingManager.m_assetVersion for why the two were split: 257 // versioning script.min.js with a number the API owns meant a front-only deploy re-served the 258 // same immutable url, and visitors ran an old bundle behind new markup. 259 var m_assetVersion = "639260136226636726"; 260 261 // Free-shipping teaser sentences, whole rather than assembled from labels. The teaser used to be 262 // built in the view out of "You already have" + a number + "off your shipping" + ..., and the 263 // translation service sees each fragment alone: "off your shipping" came back as the imperative 264 // "Ø§ÙØ²Ù Ù Ù Ø´ØÙÙ" ("get off your shipment"), and the Arabic sentence read as nonsense. One label per 265 // sentence gives the translator the whole clause and lets it place the number itself, which RTL 266 // needs. Substitution is doGetShipmentTeaserMessage in Handler_Session. Json.Serialize, not bare 267 // quotes: these strings are machine-translated and may legitimately contain a quote. 268 var m_textShipmentTeaserSaved = "\u0644\u0642\u062F \u0648\u0641\u0631\u062A {0} {1} \u0645\u0646 \u062A\u0643\u0644\u0641\u0629 \u0627\u0644\u0634\u062D\u0646"; 269 var m_textShipmentTeaserDiscount = "\u0644\u062F\u064A\u0643 \u0628\u0627\u0644\u0641\u0639\u0644 \u062E\u0635\u0645 \u0634\u062D\u0646"; 270 var m_textShipmentTeaserTopUp = "\u0623\u0636\u0641 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 {0} {1} \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0634\u062D\u0646 \u0645\u062C\u0627\u0646\u064A"; 271 272 // Is this one of our own assets, as opposed to a third-party SDK? 273 // 274 // The old test was `url.indexOf('@SettingManager.m_CDNUrl') == -1`. m_CDNUrl is an empty 275 // string whenever the app serves its own assets (local dev, and any deployment without a 276 // separate CDN host) -- and "anything".indexOf("") is 0, never -1. Every URL therefore 277 // looked like ours, which mattered because the branches below both version the URL and 278 // choose defer-vs-async from this answer. 279 // A root-relative URL is same-origin by definition, and it is answered before the CDN test: 280 // /InitData.js is served by our own HostController, never by the CDN host, so with a CDN 281 // configured the old form called it third-party -- which skipped the ?v= cache-bust that is the 282 // only thing invalidating it across deploys. 283 function doCheckOwnAsset(url) { 284 if (url.charAt(0) === '/') 285 return true; 286 return m_cdnBase ? url.indexOf(m_cdnBase) === 0 : false; 287 } 288 289 // Cache-bust our own assets so a deploy is actually picked up, and never touch a 290 // third-party URL: several already carry a query string (Google Maps key/callback, 291 // MISPay authorize, Checkout.com), and a second "?" makes them malformed. 292 function doGetVersionedUrl(url) { 293 if (!doCheckOwnAsset(url)) 294 return url; 295 296 // Already versioned by the server -- /InitData.js, which is API data and so carries 297 // m_version rather than the build token. Appending a second v= here would both make it a 298 // different url from the <link rel=preload> in _Layout (two downloads of the same file) and 299 // hand the server two values for one parameter. 300 if (url.indexOf('?v=') !== -1 || url.indexOf('&v=') !== -1) 301 return url; 302 303 return url + (url.indexOf('?') === -1 ? '?' : '&') + 'v=' + m_assetVersion; 304 } 305 306 function doLoadScript(callBack, url = defaultScript, isModule = false) { 307 var item = m_listScript.find(item => item._url == url); 308 if (!item) { 309 item = { _isReady: false, _url: url, _callBack: [callBack], _isLoaded: false }; 310 m_listScript.push(item); 311 312 var script = document.createElement("script"); 313 if (typeof callBack == "function" && !isModule) 314 script.type = "application/javascript"; 315 else { 316 script.type = "module"; 317 script.innerText = (callBack + "").replace("URL", url); 318 } 319 script.src = doGetVersionedUrl(url); 320 321 //script.defer = true; 322 script.charset = "utf-8"; 323 script.addEventListener('load', function () { 324 doLoadReady(url); 325 }); 326 327 script.onerror = function () { 328 item._isError = true; 329 console.log("Error loading " + url); 330 // Never leave the queue standing behind a script that is not coming. doRunOnReady 331 // steps over errored items when it picks the head, but nothing else would wake it, 332 // and for /InitData.js this is also what releases doSetEnumManager's fallback. 333 doRunOnReady(url, true); 334 }; 335 336 try { 337 // Third-party SDKs are deferred and appended; ours are async and put first so 338 // they start downloading as early as possible. 339 if (!doCheckOwnAsset(url)) 340 { 341 script.defer = true; 342 document.head.appendChild(script); 343 } 344 else{ 345 script.async = true; 346 var head = document.getElementsByTagName("head")[0]; 347 head.insertBefore(script, head.firstChild); 348 } 349 } catch (error) { 350 //once load before 351 console.log(error); 352 setTimeout(doRunOnReady, 1000, url, true); 353 return false; 354 } 355 } 356 else if (item._isReady === true) { 357 // Synchronous, because the script this callback waited for has already loaded. That is
358 // exactly the state an ajax view swap runs in: doHtmlSetInner evaluates the swapped-in 359 // page's inline block, it calls doLoadScript for a bundle that is already _isReady, and 360 // the callback runs right here, inside that eval. doLoadViewAjax now compares 361 // X-Asset-Version against m_assetVersion and navigates instead of swapping, so a skew 362 // introduced by the RESPONSE no longer reaches this line -- see doRunCallBack below for 363 // what still does. 364 if (typeof callBack == "function") 365 doRunCallBack(callBack); 366 } 367 else { 368 item._callBack.push(callBack); 369 } 370 } 371 372 // Run one page callback, and treat a missing symbol as a bundle that cannot serve this markup. 373 // 374 // A ReferenceError out of a page's own callback -- "doFinishPaintEarly is not defined", 375 // "doSetHandlerPageScroller is not defined" -- is never a typo in the view: those calls sit INSIDE a 376 // doLoadScript callback, so the bundle demonstrably arrived. It means the bundle that arrived is 377 // an OLD build. A tab held open across a deploy keeps the script.min.js it loaded then, and an 378 // ajax swap pulls markup from the server as it is NOW; ?v= cannot repair that, because the swap 379 // never re-loads the bundle and the old one is already parsed. A stale or failed 380 // Handlers/Pages/*.js throws the identical error and is fixed by the identical answer. 381 // 382 // Second line of defence since doLoadViewAjax gained its X-Asset-Version check, which stops the 383 // skew before anything is swapped. What still lands here is what no response header can see: a 384 // stale or failed Handlers/Pages/*.js, a bundle the CDN served old under a current ?v=, and the 385 // one navigation per build doClaimBuildNavigation lets through so a mixed fleet cannot ping-pong. 386 // 387 // The answer is to stop and let the browser fetch the document properly: the new document carries 388 // a new m_assetVersion, and every ?v= in it then points at the matching build. 389 // 390 // Keyed on m_assetVersion so it cannot loop -- the flag records the build we already reloaded 391 // for, so a genuine bug in the current build reloads once and then stops. A storage failure 392 // (Safari private mode) means no flag can be kept, so it does not reload at all. 393 function doReloadOnceForBuild() { 394 try { 395 if (sessionStorage.getItem('bundleReload') == m_assetVersion) 396 return false; 397 sessionStorage.setItem('bundleReload', m_assetVersion); 398 } 399 catch (storageError) { return false; } 400 window.location.reload(); 401 return true; 402 } 403 404 function doRunCallBack(callBack) { 405 try { 406 callBack(); 407 } 408 catch (error) { 409 console.log(error); 410 if (!(error instanceof ReferenceError)) 411 return; 412 doReloadOnceForBuild(); 413 } 414 } 415 416 // /InitData.js carries the 111 enums, m_jsonTranslate and the three jsonList* blobs. It is 417 // fetched, not inlined, so it can fail -- and if it does, every one of those globals is missing 418 // and nothing on the page would ever run. Deliberately keyed on _isError and not on a timeout, 419 // so a slow file is waited for rather than given up on. 420 function doCheckInitDataFailed() { 421 var item = m_listScript.find(item => item._url == m_initDataUrl); 422 return item ? item._isError === true : false; 423 } 424 425 function doSetEnumManager(url) { 426 // TranslateEnum used to arrive with script.min.js and only m_jsonTranslate came from 427 // /InitData.js. The enums moved there too, so both tests now answer the same question -- 428 // "has /InitData.js landed" -- and are asked together. Neither says anything about the 429 // bundle any more; that is what the doApplyTranslations test further down is for. 430 // 431 // Not here yet -> "not yet". Gone for good -> RELOAD, once per build, on the same 432 // sessionStorage guard doRunCallBack uses. Standing empty objects up is no longer a 433 // degraded-but-working page the way it was when the enums were in the bundle: every page on 434 // the site has a binding that reads one, so an empty stand-in trades one failed request for 435 // a page of failed bindings. A reload is the only thing that can actually fix it, and the 436 // guard is what stops it looping. 437 // 438 // If the reload has already been spent on this build (or sessionStorage is unavailable, as 439 // in Safari private mode), fall through to the old behaviour: empty lists, keys for labels,
440 // no category menu. Worse than it was, but still a page. 441 if (typeof TranslateEnum != "object" || typeof m_jsonTranslate != "object") { 442 if (!doCheckInitDataFailed()) 443 return false; 444 if (doReloadOnceForBuild()) 445 return false; 446 447 if (typeof TranslateEnum == "undefined") TranslateEnum = {}; 448 if (typeof m_jsonTranslate != "object") m_jsonTranslate = {}; 449 if (typeof jsonListCategory == "undefined") jsonListCategory = []; 450 if (typeof jsonListCompany == "undefined") jsonListCompany = []; 451 if (typeof jsonListCountry == "undefined") jsonListCountry = []; 452 } 453 454 // Comes from _LayoutScriptTail at the foot of the document. Same "not yet" answer as the 455 // tests above: doRunOnReady waits on DOMContentLoaded, which is the instant it comes into 456 // being. 457 // 458 // Never write a literal body tag in a comment inside an inline script. doLoadViewAjax 459 // pulls a full-page ajax response apart by searching the TEXT for one, so a mention in 460 // the head matches 20 KB before the real element and the rest of this script gets 461 // written into the page as visible text. That shipped. Ajax.ts no longer scans for it, 462 // but the phrasing here stays deliberate. 463 // doApplyTranslations comes from script.min.js (Tools/Enums.ts). Nothing above tests for the 464 // bundle any more: TranslateEnum moved to /InitData.js with the other 110 enums, so the 465 // TranslateEnum test now proves /InitData.js landed and says nothing about the bundle. Without 466 // this, /InitData.js winning the race against the bundle threw 467 // "doApplyTranslations is not defined" out of the try below on every such load. 468 if (typeof doApplyTranslations != "function" || typeof doApplySettingByCompany != "function") 469 return false; 470 471 try { 472 doApplyTranslations(m_jsonTranslate); 473 doApplySettingByCompany(); 474 } catch (error) {console.log(error); return false;} 475 476 m_isEnumReady = true; 477 return true; 478 } 479 480 481 // Nothing may run before the document has finished parsing, and the two things that gate a 482 // callback resolve on their own events: doApplySettingByCompany appears when the parser reaches 483 // _LayoutScriptTail, and TranslateEnum / m_jsonTranslate appear when script.min.js and 484 // /InitData.js load. So this is entirely event-driven -- there is no timer left in it. 485 // 486 // It used to be setTimeout(..., sleepTime) with sleepTime += 50 on every miss -- 50, 100, 150, 487 // 200 -- and the escalated value was then carried into the readyState test and into the 488 // queue-order test, where scriptPage.min.js polled behind script.min.js on its own growing timer. 489 // Dead latency sitting in front of doSetSetting, i.e. in front of the page's bind, and the page 490 // gate charges every millisecond of it to LCP. 491 // 492 // The `url` argument is now only a hint about WHY we were woken. What actually runs is decided by 493 // walking the queue from its head, which is what makes the ordering safe no matter which script 494 // wins the race: whoever arrives last finds everything before it already loaded and drains the 495 // lot. Draining only `url` would deadlock -- the head could be ready with nobody left to notice. 496 function doRunOnReady(url, byscript = false) { 497 if (document.readyState === "loading") { 498 document.addEventListener('DOMContentLoaded', function () { doRunOnReady(url, byscript); }, { once: true }); 499 return ; 500 } 501 502 // Still missing a dependency. Do NOT schedule a retry: every one of them arrives on a load 503 // event that calls straight back in here. 504 if(m_isEnumReady == false && !doSetEnumManager(url)) 505 return ; 506 507 try { 508 //console.log("ByScript " + byscript + ", " + url + " "+document.readyState) 509 for (;;) { 510 // The head of the queue: the first script still owing its callbacks. One that failed 511 // to load is stepped over rather than left at the head -- it is never becoming ready, 512 // and leaving it there would wedge everything behind it. 513 var item = m_listScript.find(x => x._isReady == false && x._isError != true); 514 515 // Nothing waiting, or the head has not arrived yet -- and callbacks run in request 516 // order, so anything behind it waits for its load event. 517 if (!item || item._isLoaded != true) 518 return ; 519 520 while (item._callBack.length != 0) { 521 var callBack = item._callBack.shift(); 522 // Detached by setTimeout, so the try around this loop never sees what the 523 // callback throws -- doRunCallBack is the only thing that can. 524 if (typeof callBack == "function") 525 setTimeout(doRunCallBack, 0, callBack); 526 } 527 528 item._isReady = true; 529 //console.log("ByScript " + item._url + " is passed") 530 } 531 }catch (error) { 532 console.log(error); 533 } 534 } 535 536</script>
536 537 538
538<script> 539 function doGetBrowserName() { 540 var nAgt = navigator.userAgent; 541 var browserName = navigator.appName; 542 var nameOffset, verOffset; 543 544 if ((verOffset = nAgt.indexOf("OPR/")) != -1) 545 browserName = "Opera"; 546 else if ((verOffset = nAgt.indexOf("Opera")) != -1) 547 browserName = "Opera"; 548 else if ((verOffset = nAgt.indexOf("MSIE")) != -1) 549 browserName = "Microsoft Internet Explorer"; 550 else if ((verOffset = nAgt.indexOf("Chrome")) != -1) 551 browserName = "Chrome"; 552 else if ((verOffset = nAgt.indexOf("Safari")) != -1) 553 browserName = "Safari"; 554 else if ((verOffset = nAgt.indexOf("Firefox")) != -1) 555 browserName = "Firefox"; 556 else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < 557 (verOffset = nAgt.lastIndexOf('/'))) { 558 browserName = nAgt.substring(nameOffset, verOffset); 559 if (browserName.toLowerCase() == browserName.toUpperCase()) 560 browserName = navigator.appName; 561 } 562 return browserName; 563 } 564 565 function doGetSystemInfo() { 566 var browserName = doGetBrowserName(); 567 var nav = navigator || {}; 568 var scr = (typeof screen != "undefined") ? screen : {}; 569 var data = decodeURI(window.location.href) + "#" + browserName + "#" + nav.platform + "#" 570 + "\nUA: " + nav.userAgent 571 + "\nViewport: " + window.innerWidth + "x" + window.innerHeight + " @" + (window.devicePixelRatio || 1) + "x" 572 + "\nScreen: " + (scr.width || "?") + "x" + (scr.height || "?") 573 + "\nLang: " + (nav.language || "?") + " | Online: " + nav.onLine + " | Mem: " + (nav.deviceMemory ? nav.deviceMemory + "GB" : "?") 574 + "\nReferrer: " + document.referrer; 575 return data; 576 } 577 578 // Client-side dedupe. The hash identifies the *fault*, not the visit: page URLs, 579 // line/col and cache-busting query strings are deliberately left out, so the same 580 // error raised on 500 product pages collapses to one hash and is posted once. 581 // Kept in localStorage so it also survives reloads and in-app-browser page hops -- 582 // repeat visits from the same device stop re-posting a fault we already have. 583 var m_sentHash = {}; // this page load; still works when storage is blocked 584 var m_hashKey = "errHash", m_hashMax = 100; 585 586 function doGetStackSignature(stack) { 587 var lines = ("" + stack).split("\n"), out = [], i, m; 588 for (i = 0; i < lines.length && out.length < 5; i++) { // 5 frames: deep recursion collapses 589 m = lines[i].match(/^\s*at\s+([^\s(]+)/) // Chrome/Edge: " at doFoo (url:1:2)" 590 || lines[i].match(/^\s*([^\s@]+)@/); // Safari/Firefox: "doFoo@url:1:2" 591 if (m && m[1]) 592 out.push(m[1]); 593 } 594 return out.join(">"); 595 } 596 597 function doGetHash(text) { 598 var h = 0x811c9dc5; // FNV-1a, 32-bit 599 for (var i = 0; i < text.length; i++) { 600 h ^= text.charCodeAt(i); 601 h = (h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24))) >>> 0; 602 } 603 return h.toString(36); 604 } 605 606 // true = already reported, skip. Marks as seen on first call. 607 function doCheckSentBefore(hash) { 608 if (m_sentHash[hash] === true) 609 return true; 610 m_sentHash[hash] = true; 611 var list = []; 612 try { list = (localStorage.getItem(m_hashKey) || "").split(","); } catch (e) { } 613 if (list.indexOf(hash) != -1) 614 return true; 615 list.push(hash); 616 if (list.length > m_hashMax) // bounded ring, oldest hashes fall off 617 list = list.slice(list.length - m_hashMax); 618 try { localStorage.setItem(m_hashKey, list.join(",")); } catch (e) { } 619 return false; 620 } 621 622 function doReportError(kind, message, source, lineno, colno, error) { 623 var msgStr = (message == null) ? "" : ("" + message); 624 if (msgStr == "Script error." || msgStr.indexOf("_AutofillCallbackHandler") != -1) 625 return; 626 // Third-party noise, not our code -> ignore. Six families: 627 // 1. In-app browsers (Meta/IG/FB/Snapchat) inject native bridges that throw in non-native webviews. 628 // 2. Android/iOS WebView bridge objects get torn down on navigation ("Java object is gone"). 629 // 3. Injected analytics (GTM Custom HTML tags) throw from their own host, not ours. 630 // 4. Browser reader-mode shims (Brave/Firefox iOS inject window.__firefox__) throw before .reader exists. 631 // 5. MS Office/Outlook link-handler bridge rejects on a torn-down object id, on pages opened from email. 632 // 6. TikTok/Bytedance webview (musical_ly UA, FalconTag) injects its own script that handshakes 633 // with a parent iframe bridge that doesn't exist in the ad-preview dialog. 634 var stackStr = (error && error.stack) ? ("" + error.stack) : ""; 635 var noise = [ 636 "window.webkit.messageHandlers", // iOS webkit bridge (Meta/IG/FB) 637 "WebJSBridge", // Snapchat bridge 638 "sendDataToNative",
639 "sendPageShowMessage", 640 "Java object is gone", // Android WebView bridge torn down (IG keyboard/nav loggers) 641 "googletagmanager.com", // GTM Custom HTML tags 642 "__firefox__", // Brave/Firefox iOS reader-mode injection 643 "Object Not Found Matching Id:", // MS Office/Outlook bridge, e.g. "...Id:6, MethodName:update, ParamCount:4" 644 "iframeBridge", // TikTok FalconTag handshake into a parent bridge that isn't there 645 "user-script:" // frames from webview-injected scripts (TikTok/Bytedance); ours are https:// URLs 646 ]; 647 var haystack = msgStr + "\n" + stackStr + "\n" + (source == null ? "" : source); 648 for (var i = 0; i < noise.length; i++) 649 if (haystack.indexOf(noise[i]) != -1) 650 return; 651 // In-app browsers run injected scripts under a private "<name>js://" URL scheme 652 // (iabjs:// = Instagram). Our own code only ever runs from http(s):// -> any *js:// frame is theirs. 653 if (/[a-z0-9_]+js:\/\//i.test(stackStr)) 654 return; 655 // ServiceWorker registration failing to *fetch the script* (AbortError) = in-app browsers / 656 // blocked-storage contexts that can't install a SW. Benign, non-actionable. Deliberately narrow: 657 // real breakage (bad HTTP 404, SecurityError, parse error) has a different message and still logs. 658 if (msgStr.indexOf("Failed to register a ServiceWorker") != -1 && msgStr.indexOf("fetching the script") != -1) 659 return; 660 // Benign network/fetch-abort promise rejections (flaky mobile networks, in-app browsers, 661 // navigation aborting an in-flight request, blocked third-party trackers). No stack, not 662 // actionable. Scoped to promise rejections so real TypeErrors in our code still log. 663 if (kind == "promise" && (msgStr == "Load failed" 664 || msgStr.indexOf("Failed to fetch") != -1 665 || msgStr.indexOf("NetworkError") != -1 666 || msgStr.indexOf("network connection was lost") != -1 667 || msgStr.indexOf("cancelled") != -1 668 || msgStr.indexOf("appears to be offline") != -1)) 669 return; 670 // Benign browser notice, not an exception: an observer callback resized things again, so the 671 // browser deferred the remaining notifications to the next frame. Comes from third-party 672 // swiper/animation code, has no stack, and nothing breaks. Both wordings ("loop limit exceeded" 673 // = Chrome, "loop completed with undelivered notifications" = Safari/Chrome) are the same event. 674 if (msgStr.indexOf("ResizeObserver loop") != -1) 675 return; 676 var parameters = {}; 677 try { 678 var name = (error && error.name) ? error.name : ""; 679 var realMsg = (error && error.message) ? error.message : msgStr; 680 var stack = (error && error.stack) ? error.stack : "(no stack available)"; 681 parameters["_exceptionMessage"] = "[" + kind + "] " + (name ? name + ": " : "") + realMsg; 682 parameters["_methodName"] = source + " -- Row N° " + lineno + " Col N° " + colno; 683 parameters["_exception"] = doGetSystemInfo() + "\n\n" + stack; 684 685 686 if (typeof doSendAjax == "function") { 687 var hash = doGetHash(kind + "|" + name + "|" + realMsg + "|" + doGetStackSignature(stack)); 688 if (!doCheckSentBefore(hash)) 689 doSendAjax(RequestCode.SystemService.SaveExceptionJS, ko.toJSON(parameters), null, null); 690 } 691 } 692 catch (e) { console.log(e); } 693 } 694 695 window.onerror = function doErrorHandler(message, source, lineno, colno, error) { 696 doReportError("onerror", message, source, lineno, colno, error); 697 return true; 698 }; 699 700 window.addEventListener('unhandledrejection', function (e) { 701 var reason = e ? e.reason : null; 702 var msg = (reason && reason.message) ? reason.message : ("" + reason); 703 doReportError("promise", msg, 704 (reason && reason.fileName) || "", 705 (reason && reason.lineNumber) || 0, 706 (reason && reason.columnNumber) || 0, 707 reason); 708 }); 709 </script>
vendor: 2 bytes, line 709
709
710<script type="application/javascript"> 711 m_isCrawlByBot = 'True' == 'True'; 712 713 window.addEventListener('resize', function() 714 { 715 if(typeof m_handlerLayout != "object" || m_handlerLayout == null) 716 return; 717 718 if(typeof m_handlerLayout.m_isViewMobile == "function") 719 m_handlerLayout.m_isViewMobile('False' == 'True' || window.innerWidth < 768); 720 721 if(typeof m_handlerLayout.m_isMenuMobile == "function") 722 m_handlerLayout.m_isMenuMobile(window.innerWidth < 992); 723 }); 724 725 726 window.doOpenCropper = function (handler, folder, item) {} 727 728 // Requested FIRST, so it sits at the head of m_listScript and no page callback can run before its 729 // globals exist -- doSetEnumManager reads m_jsonTranslate, and the callback below reads all three 730 // jsonList* blobs. It carries no callback of its own; being in the queue is the whole point. 731 // It is a parallel fetch, not a serial one: it goes out alongside script.min.js, and the bundle is 732 // the bigger of the two. 733 doLoadScript(function () { }, m_initDataUrl); 734 735 doLoadScript(function () { 736 m_version = '639260136446764345'; 737 doSetSetting('https://brandfullsapi.azurewebsites.net', 'ar', 'sa', 'https://cdn.brandfull.com', 'BrandFull', "", "{\u0022_bundleSelectPercentage\u0022:40,\u0022_addCartQuantityLimit\u0022:\u0022100\u0022,\u0022_showObjectHtml\u0022:true,\u0022_showObjectExtras\u0022:true,\u0022_showObjectIsReturnable\u0022:true,\u0022_showObjectCounter\u0022:true,\u0022_showObjectDeliveryTime\u0022:false,\u0022_returnPolicyDays\u0022:\u00227\u0022,\u0022_returnPolicyFees\u0022:0,\u0022_returnPolicyMethod\u0022:0,\u0022_returnPolicyRefundType\u0022:0,\u0022_returnPolicyCountry\u0022:\u0022SA\u0022,\u0022_isBarCodeOptional\u0022:true,\u0022_allowPriceSaleAbovePriceRegulare\u0022:true}"); 738 739 740 if (doGetParamFromURL('Cookies') == "delete") 741 { 742 doSetCookie('cart', null, 1); 743 doGetSessionID(); 744 745 doRemoveURLParam("Cookies"); 746 } 747 748 m_handlerSession = new Handler_Session(); 749 m_handlerSession.doInitData(jsonListCompany, jsonListCountry); 750 doSetHandlerSession(m_handlerSession); 751 m_handlerLayout = new Handler_Layout(); 752 m_handlerLayout.m_isViewMobile('False' == 'True' || window.innerWidth < 768); 753 m_handlerLayout.doInitData(jsonListCategory); 754 m_handlerLayout.m_currentCategoryShortName('Home'); 755 m_handlerLayout.m_search(""); 756 doSetHandlerLayout(m_handlerLayout); 757 758 759 }); 760 761 // scriptPage.min.js -- bootstrap.bundle plus the Google-Maps position helper -- is NOT requested 762 // here any more. It was, on every page, with the empty callback this comment replaced: nothing 763 // waited on it, so 82 KB was parsed and compiled on the main thread ahead of the page's bind for 764 // no reader. Its entire consumer surface is interaction-driven: bootstrap.Modal (Tools/Html.ts), 765 // bootstrap.Collapse (Handler_PageCheckout), doGetCurrentPosition, and the data-api attributes in 766 // the markup -- dropdown, collapse, tab, dismiss. None of it runs at load. 767 // 768 // Defined here rather than in the bundle because callers reach it from inline script. 769 var m_pageScriptUrl = "https://cdn.brandfull.com/scriptPage.min.js"; 770 771 function doLoadPageScript(callBack = function () { }) { 772 doLoadScript(callBack, m_pageScriptUrl); 773 } 774 775 // Google Maps, requested once per document rather than once per view. 776 // 777 // doLoadScript dedupes by exact url string, and five views asked for Maps with four different 778 // strings -- two callback names (doInitMap, doInitGoogleMap), and Page_CreateSupport on 779 // maps.google.com rather than maps.googleapis.com, without libraries=places. Ajax navigation 780 // never reloads the document, so visiting two of those pages in one session appended two script 781 // tags for the same library: "You have included the Google Maps JavaScript API multiple times", 782 // followed by the custom elements it registers being defined twice 783 // (Element with name "gmp-internal-dialog" already defined). 784 // 785 // So: one url, and one name for Google to call. Pages hand their own initializer to 786 // doLoadGoogleMaps instead of naming it in a query string. Note the initializer
786s are read at 787 // call time, which is what keeps Page_About and Page_CreateSupport from fighting over the 788 // window.doInitGoogleMap they both define -- each view's inline block re-runs on its own ajax 789 // swap, so the one queued is always the current page's. 790 var m_googleMapUrl = "https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyBELKgTURcJMCbnFgFY4aizo0dbwokRqU4&callback=doGoogleMapsReady&loading=async&language=ar"; 791 var m_isGoogleMapsReady = false; 792 var m_listGoogleMapsReady = []; 793 794 // The single name in the url above. Global because Google resolves it off window. 795 function doGoogleMapsReady() { 796 m_isGoogleMapsReady = true; 797 while (m_listGoogleMapsReady.length > 0) 798 doRunCallBack(m_listGoogleMapsReady.shift()); 799 } 800 801 function doLoadGoogleMaps(callBack = function () { }) { 802 // scriptPage.min.js first: every page initializer this fans out to reaches into 803 // _Js/GoogleMapGetCurrentLocation.js -- doInitMap is defined there outright, and 804 // Page_About / Page_CreateSupport push into the `markers` array it declares. 805 doLoadPageScript(function () { 806 if (m_isGoogleMapsReady) { 807 doRunCallBack(callBack); 808 return; 809 } 810 811 m_listGoogleMapsReady.push(callBack); 812 doLoadScript(function () { }, m_googleMapUrl); 813 }); 814 } 815 816 // Bootstrap installs its data-api listeners on document when it evaluates, so a click that lands 817 // before the file does is a click that does nothing. Hence arming on the earliest signals a real 818 // visitor produces -- hover and scroll both precede the first tap far more often than not -- and 819 // not merely on the click itself. Capture phase so a stopPropagation somewhere cannot hide them. 820 // 821 // The load-event fallback is for the visitor who reads without touching anything. It is behind 822 // `load` on purpose: an idle callback armed any earlier competes with the page's own bind for the 823 // main thread, which is the cost this whole change exists to remove. 824 (function () { 825 var isArmed = false; 826 827 function doArmPageScript() { 828 if (isArmed) 829 return; 830 isArmed = true; 831 doLoadPageScript(); 832 } 833 834 var listEvent = ['pointerover', 'pointerdown', 'touchstart', 'keydown', 'scroll']; 835 for (var i = 0; i < listEvent.length; i++) 836 window.addEventListener(listEvent[i], doArmPageScript, { capture: true, once: true, passive: true }); 837 838 window.addEventListener('load', function () { 839 if (typeof window.requestIdleCallback == "function") 840 window.requestIdleCallback(doArmPageScript, { timeout: 3000 }); 841 else 842 setTimeout(doArmPageScript, 1000); 843 }); 844 })(); 845 846 // The Portal's head hook -- GTM, and through GTM's Custom HTML tags the Facebook, Snapchat and 847 // TikTok pixels -- injected on the same signals as scriptPage.min.js instead of parsed inline. 848 // 849 // It used to sit below this script as raw markup, which meant every visitor parsed, compiled and 850 // EXECUTED a tag manager plus three pixels before the browser had seen a single byte of <body>. 851 // Measured on the Blends home page: TBT 1,700ms, FCP 3.3s, and three rounds of asset trimming 852 // ahead of this moved FCP by 0.1s because none of them touched the thing actually holding the 853 // main thread. The error-swallow list at the top of this file already names googletagmanager.com 854 // and the Snapchat WebJSBridge -- the cost was known, only its timing was not. 855 // 856 // A <template> because its content is INERT: the parser builds the nodes but runs no script and 857 // fetches no src, which is the whole point. innerHTML would have been inert too, but only by 858 // accident and only for scripts -- an <img> in the blob would still have been fetched. 859 (function () { 860 var isArmed = false; 861 var isInjected = false; 862 863 function doInjectHeadScript() { 864 if (isInjected) 865 return; 866 isInjected = true; 867 868 var holder = document.getElementById('UI_headScript'); 869 if (!holder) 870 return; 871 872 var fragment = holder.content.cloneNode(true); 873 var listNode = Array.prototype.slice.call(fragment.childNodes); 874 875 for (var i = 0; i < listNode.length; i++) { 876 var node = listNode[i]; 877 878 // A
878<script> moved out of a template stays inert -- "already started" is not the 879 // flag, but a parser-inserted script that was never executed will not execute on 880 // insertion either. It has to be re-created as a fresh element. 881 if (node.nodeName == 'SCRIPT') { 882 var script = document.createElement('script'); 883 for (var a = 0; a < node.attributes.length; a++) 884 script.setAttribute(node.attributes[a].name, node.attributes[a].value); 885 script.text = node.text; 886 887 // async=false on a DYNAMICALLY created script means "in-order", not "blocking": 888 // externals then execute in insertion order relative to each other. GTM's inline 889 // snippet seeds window.dataLayer and must run before gtm.js reads it, and the 890 // default async=true would have let that race. 891 if (script.src) 892 script.async = false; 893 894 document.head.appendChild(script); 895 } 896 else 897 document.head.appendChild(node); 898 } 899 } 900 901 function doArmHeadScript() { 902 if (isArmed) 903 return; 904 isArmed = true; 905 906 // The blob calls doSetThirdParty (see Tools/ThirdPartyDefer.ts, which stubs that name 907 // for exactly this reason). The stub ships in script.min.js, which is fetched async, so 908 // waiting on its ready callback is what guarantees the call lands somewhere. In the old 909 // inline arrangement it did not: the blob ran at parse time, well before the bundle. 910 if (typeof window.doSetThirdParty == "function") { 911 doInjectHeadScript(); 912 return; 913 } 914 915 doLoadScript(doInjectHeadScript); 916 917 // Backstop, because a callback registered on script.min.js never fires if that bundle 918 // errors -- and "the bundle failed" must not also mean "no analytics for that visit". 919 // doInjectHeadScript is idempotent, so whichever path arrives first wins. 920 setTimeout(doInjectHeadScript, 4000); 921 } 922 923 var listHeadEvent = ['pointerover', 'pointerdown', 'touchstart', 'keydown', 'scroll']; 924 for (var h = 0; h < listHeadEvent.length; h++) 925 window.addEventListener(listHeadEvent[h], doArmHeadScript, { capture: true, once: true, passive: true }); 926 927 // WHEN the blob runs, and the reason it is not simply "on load, then idle" any more. 928 // 929 // Measured on the Blends home page: the tag manager and the pixels it injects through its 930 // Custom HTML tags cost 2,217 ms of main-thread CPU -- more than every first-party script 931 // on the page put together (1,944 ms). Five Google containers alone are 1,204 ms of that, 932 // then Facebook 417, Clarity 252, TikTok 137, Pinterest 110, Snapchat 97. 933 // 934 // The old trigger was `load` plus requestIdleCallback(timeout 3000). Both fire while the 935 // page is still doing its own work: `load` only means subresources finished, not that the 936 // bind and the div hydration have, and a 3-second timeout fires whether or not an idle slot 937 // ever appeared. So 2.2 seconds of vendor script landed on a main thread that was still 938 // building the page. 939 // 940 // "Stable" is defined here as the browser itself defines it -- no long task for a 941 // continuous stretch -- rather than as a delay someone picked. Every long task pushes the 942 // decision back; when the page finally goes quiet for m_headQuietMs the blob goes in on the 943 // next idle slot. That is the same shape as TTI with a shorter quiet window, which is the 944 // point: analytics should start as soon as the page has actually settled, not at a fixed 945 // time that is too early on a slow device and too late on a fast one. 946 // 947 // Interaction still wins outright, above: a visitor who is already touching the page has a 948 // usable page by definition, and their session is the one most worth recording. 949 var m_headQuietMs = 2000; // continuous no-long-task stretch that counts as settled 950 var m_headCapMs = 10000; // hard backstop -- see below 951 var m_headQuietTimer = null; 952 953 function doDelayHeadScript() { 954 clearTimeout(m_headQuietTimer); 955 m_headQuietTimer = setTimeout(function () { 956 if (typeof window.requestIdleCallback == "function") 957 window.requestIdleCallback(doArmHeadScript, { timeout: 2000 }); 958 else 959 doArmHeadScript(); 960 }, m_headQuietMs); 961 } 962 963 window.addEventListener('load', function () { 964 // A main thread that never goes quiet -- a slow device, a runaway third-party, a tab 965 // that stays busy -- must not mean no analytics at all for that visit. This fires 966 // regardless; doArmHeadScript is idempotent, so whichever path gets there first wins. 967 setTimeout(doArmHeadScript, m_headCapMs); 968 969 // longtask is Chromium-only. Where it is missing (Safari, Firefox) there is nothing to 970 // observe, so the quiet timer simply runs once from load and behaves like the old 971 // fixed delay -- degraded to the previous behaviour, not to no behaviour. 972 try { 973 if (typeof PerformanceObserver == "function" 974 && PerformanceObserver.supportedEntryTypes 975 && PerformanceObserver.supportedEntryTypes.indexOf('longtask') != -1) { 976 new PerformanceObserver(function () { 977 if (!isArmed) 978 doDelayHeadScript(); // still busy -- restart the quiet window 979 }).observe({ type: 'longtask', buffered: false }); 980 } 981 } 982 catch (error) { console.log(error); } 983 984 doDelayHeadScript(); 985 }); 986 })(); 987 988</script>
vendor: 2 bytes, line 988
988
989<script> 990 (function () { 991 // The reference file is NOT a stylesheet -- it opens with an HTML comment header and 992 // wraps the payload in <style>, exactly as the Portal field must. So it cannot be a 993 // <link>: the header would be a parse error and the tags are not CSS. Fetch it and 994 // hand the browser the same string @Html.Raw would have emitted. 995 var url = 'https://brandfull.com/Themes/Cartzilla/_Css/BrandFull/StyleCss_Script.reference.css?version=639260136446764345'; 996 997 fetch(url, { cache: 'no-store' }) 998 .then(function (response) { 999 if (!response.ok) 1000 throw new Error('StyleCss_Script.reference.css -> HTTP ' + response.status); 1001 1002 return response.text(); 1003 }) 1004 .then(function (text) { 1005 // Take what is BETWEEN the tags. Assigning the raw text to innerHTML would put a 1006 // literal <style> inside a <style>, which parses as nothing at all. 1007 var match = /<style[^>]*>([\s\S]*?)<\/style>/i.exec(text); 1008 if (!match) { 1009 console.warn('[StyleCss_Script test] no <style> block in ' + url); 1010 return; 1011 } 1012 1013 // Appended to <head> AFTER the site bundle link, so a :root here outranks the 1014 // same :root in StyleApp.css -- the same seam the Portal value occupies. 1015 var style = document.createElement('style'); 1016 style.id = 'UI_styleCssScriptTest'; 1017 style.textContent = match[1]; 1018 document.head.appendChild(style); 1019 }) 1020 .catch(function (error) { console.warn('[StyleCss_Script test] ' + error.message); }); 1021 })(); 1022</script>
1022 1023<template id="UI_headScript"> 1024<!-- Google Tag Manager -->
1025<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true;j.src="https://shn.brandfull.com/cjbruxijtzaj.js?"+i;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','ezx8gtx3=AwVHMz4kVSU%2BKzA3PSU0UxxcSFpbTxwbVwMIFQQNHgAGDVQXBQQ%3D');</script>
1025 1026<!-- End Google Tag Manager --> 1027 1028</template> 1029 1030</head> 1031 1032<body id="UI_body" style="overflow-y: clip;" class="noPadding"> 1033 1034 1035 1036 1037 1038 1039 <h1 class="seo-hidden">Ø¨Ø±Ø§ÙØ¯ÙÙ- Ù ÙØµØ© ÙØ¨Ùع ÙØ´Ø±Ø§Ø¡ اÙ٠تعÙÙØ§Øª Ø§ÙØ´Ø®ØµÙØ© اÙÙØ§Ø®Ø±Ø©</h1> 1040 <h2 class="seo-hidden">Ù ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹Ùا٠ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ ÙÙ Ø¹Ù ÙØ§Ø¦Ùا Ù Ù Ø§ÙØ¨Ùع ٠باشرة ٠٠خزائÙÙÙ ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© ٠٠اÙÙÙÙ Ø© اÙ٠اÙÙØ© ÙÙØ¹Ùاصر اÙÙ Ø®Ø²ÙØ©.</h2> 1041 1042
1042<script type="application/ld+json"> 1043 { 1044 "@context": "https://schema.org", 1045 "@type": "OnlineStore", 1046 "name": "Brandfull", 1047 "alternateName": "Brandfull", 1048 "description": "At Brandfull we believe in second chances and the thrill of discovering hidden treasures. Our journey began with a simple idea: to bring new life into pre-loved items while offering our customers unique finds that resonate with their individuality.", 1049 "knowsLanguage": "AR,EN", 1050 "sameAs": [ 1051 "https://www.facebook.com/brandfullCom/", 1052 "https://twitter.com/brandful_l", 1053 "https://www.instagram.com/brandfull_ksa/", 1054 "https://api.whatsapp.com/send?phone=966592905003", 1055 "https://www.snapchat.com/add/brandful_l" 1056 ], 1057 "url": "https://brandfull.com", 1058 "logo": "https://brandfull.com/_Image/favicon.png","hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","applicableCountry":"SA","returnPolicyCategory":"https://schema.org/MerchantReturnFiniteReturnWindow","merchantReturnDays":7,"returnMethod":"https://schema.org/ReturnByMail","returnFees":"https://schema.org/FreeReturn","refundType":"https://schema.org/FullRefund"} 1059 } 1060 </script>
1060 1061 1062
1062<script type="application/ld+json"> 1063 { 1064 "@context": "https://schema.org", 1065 "@type": "ContactPoint", 1066 "@contactType": "Customer Service", 1067 "availableLanguage": "AR,EN", 1068 "email": "[email protected]", 1069 "telephone": "966592905003" 1070 } 1071 </script>
1071 1072
1072<script type="application/ld+json"> 1073 { 1074 "@context": "https://schema.org", 1075 "@type": "WebSite", 1076 "name": "WebSite Brandfull", 1077 "url": "https://brandfull.com", 1078 "potentialAction": [ 1079 { 1080 "@type": "SearchAction", 1081 "target": "https:/brandfull.com/Shop/search?q={search_term_string}", 1082 "query-input": "required name=search_term_string" 1083 } 1084 ] 1085 } 1086 </script>
1086 1087 1088 1089 <!-- Home Popup Section --> 1090 <!-- End Screen Load Popup Section --> 1091 <!-- START HEADER --> 1092 1093 1094 1095
1096<script type="application/javascript"> 1097 1098 window.doClosePopUp = function () { 1099 document.querySelectorAll('.dropdown-menu.show').forEach(function (option) { 1100 option.classList.remove('show'); 1101 }); 1102 document.querySelectorAll('.dropdown-menu.hide').forEach(function (option) { 1103 option.classList.remove('hide'); 1104 }); 1105 } 1106 1107 window.doShowQuickPopup = function (id, isFocus) { 1108 if (isFocus == true) 1109 m_handlerLayout.doGetQuickFilter(); 1110 else 1111 setTimeout(function () { 1112 m_handlerLayout.m_showQuickPopUp(false); 1113 }, 250) 1114 } 1115 1116 window.doJSClickSearch = function (){ 1117 var searchSection = document.querySelector('#UI_searchSection'); 1118 if(searchSection.classList.contains('show')) 1119 searchSection.classList.remove('show'); 1120 else 1121 searchSection.classList.add('show'); 1122 1123 var searchIcon = document.querySelector('#UI_searchIcon'); 1124 if(searchIcon.classList.contains('ci-search')){ 1125 searchIcon.classList.remove('ci-search'); 1126 searchIcon.classList.add('ci-close'); 1127 } 1128 else{ 1129 searchIcon.classList.remove('ci-close'); 1130 searchIcon.classList.add('ci-search'); 1131 } 1132 } 1133 doLoadScript(function () { 1134 if (!ko.dataFor(document.getElementById('UI_headerSession'))) { 1135 ko.applyBindings(m_handlerSession, document.getElementById("UI_headerSession")); 1136 } 1137 1138 if (!ko.dataFor(document.getElementById('UI_LayoutHeader'))) { 1139 ko.applyBindings(m_handlerLayout, document.getElementById("UI_LayoutHeader")); 1140 ko.applyBindings(m_handlerLayout, document.getElementById("UI_preLoader")); 1141 } 1142 1143 var navBar = document.getElementById("UI_menuNavBar"); 1144 if (navBar) navBar.style.visibility = "visible"; 1145 var searchPopup = document.getElementById("UI_searchQuickPopup"); 1146 if (searchPopup) searchPopup.style.visibility = "visible"; 1147 var layoutHeader = document.getElementById("UI_LayoutHeader"); 1148 if (layoutHeader) layoutHeader.style.visibility = "visible"; 1149 // After applyBindings above, so every marked block already carries the inline display its 1150 // binding gave it and nothing flashes as the gate lifts. 1151 if (layoutHeader) layoutHeader.classList.remove("ko-pending"); 1152 1153 doJsDropdownSelect(); 1154 1155 }); 1156 1157</script>
1157 1158 1159 1160<header id="UI_LayoutHeader" class="bg-light shadow-sm fixHeightHeader ko-pending"> 1161 1162 <div id="UI_menuQuick" class="topbar topbar-dark bg-darker py-sm-1 py-md-0"> 1163 <div class="container"> 1164 <div class="topbar-text dropdown d-md-none"> 1165 <a class="topbar-link dropdown-toggle" href="#" data-bs-toggle="dropdown">Ø±ÙØ§Ø¨Ø· Ù ÙÙØ¯Ø©</a> 1166 <ul class="dropdown-menu"> 1167 <li> 1168 <a class="dropdown-item textAlignAuto" enable-href="false" href="/Support"><i class="ci-support text-muted me-2-Auto"></i>Ø§ØªØµÙ Ø¨ÙØ§</a> 1169 </li> 1170 <li> 1171 <a class="dropdown-item textAlignAuto" href="#" target="_blank" enable-href="true" data-bind="attr:{href:m_handlerSession.m_currentCompany._whatsappLink}" rel="noreferrer"> 1172 <i class="ci-whatsapp text-muted me-2-Auto"></i>ÙØ§ØªØ³ اب 1173 </a> 1174 </li> 1175 </ul> 1176 </div> 1177 <div class="topbar-text text-nowrap d-none d-md-inline-block"> 1178 <a class="topbar-link" enable-href="false" href="/Support"><i class="ci-support me-2-Auto"></i>Ø§ØªØµÙ Ø¨ÙØ§</a> 1179 <!-- ko if: !doCheckEmptyData(m_handlerSession.m_currentCompany._whatsappLink()) --> 1180 <a class="btn-social bs-light bs-whatsapp me-1-Auto mb-1" href="#" enable-href="true" data-bind="attr:{href:m_handlerSession.m_currentCompany._whatsappLink}" target="_blank" rel="noreferrer" aria-label="Share WhatsApp"> 1181 <i class="ci-whatsapp font-size-14"></i> 1182 </a> 1183 <!-- /ko --> 1184 </div> 1185 1186 <slotHeader class="bf-announceSlot"></slotHeader> 1187 1188 <div class="text-nowrap"> 1189 <div class="topbar-text dropdown disable-autohide"> 1190 <a class="topbar-link dropdown-toggle" href="#" data-bs-toggle="dropdown"> 1191 <span class="px-1" data-bind="text: doGetCulture()=='ar'? 'عربÙ':'English'"></span> 1192 <span class="px-1">/</span><span class="px-1" data-bind="text: m_handlerSession.m_currentCurrency._code"></span> 1193 </a> 1194 1195 <ul class="dropdown-menu dropdown-menu-end"> 1196 <!-- ko if: m_handlerSession.m_currentCompany._currences().length > 1 --> 1197 <li class="dropdown-item"> 1198 <select class="form-select form-select-sm" style=" padding: 5px;" data-bind="value: m_handlerSession.m_currentCurrency._code, options: m_handlerSession.m_currentCompany._currences, optionsText: '_code', optionsValue: '_code'"> 1199 </select> 1200 </li> 1201 <!-- /ko --> 1202 <!-- ko if: m_handlerSession.m_listCompany().length > 1 --> 1203 <li class="dropdown-item"> 1204 <div class="fs-sm fw-medium mb-1 w-100 textAlignAuto">Ø¨ÙØ¯</div> 1205 <select class="form-select" style=" padding: 5px;" data-bind="value: m_handlerSession.m_currentCompany._id, options: m_handlerSession.m_listCompany, optionsText: '_countryName', optionsValue: '_id'"> 1206 </select> 1207 </li> 1208 <!-- /ko --> 1209 <li> 1210 <button class="dropdown-item d-flex align-items-center font-size-10" onclick="m_handlerSession.doSetCulture('ar')"> 1211 <span class="langImage me-2-Auto" data-bind="style:{'background-position-x': doGetlangImage('ar')}" style="background-image: url(https://cdn.brandfull.com/Media/BrandFull/images.png?version=639260136446764345)"></span> 1212 <span>عربÙ</span> 1213 </button> 1214 </li> 1215 <li> 1216 <button class="dropdown-item d-flex align-items-center font-size-10" onclick="m_handlerSession.doSetCulture('en')">
1217 <span class="langImage me-2-Auto" data-bind="style:{'background-position-x': doGetlangImage('en')}" style="background-image: url(https://cdn.brandfull.com/Media/BrandFull/images.png?version=639260136446764345)"></span> 1218 <span>English</span> 1219 </button> 1220 </li> 1221 </ul> 1222 </div> 1223 </div> 1224 </div> 1225 </div> 1226 <div class="navbar-sticky bg-light pt-1"> 1227 <div class="navbar navbar-expand-lg navbar-light py-0"> 1228 <div class="container bf-headerRow"> 1229 <div id="UI_searchSection" class="input-group widthSearch mt-sm-2 collapse"> 1230 <div class="input-group d-lg-flex m-0 "> 1231 <input autocomplete="off" class="form-control focus-black m_search" type="text" data-bind="value: m_search" onfocusin="doShowQuickPopup('UI_searchQuickPopup', true)" onfocusout="doShowQuickPopup('UI_searchQuickPopup', false)" placeholder="Ø§ÙØ¨ØØ« Ø¹Ù Ø§ÙØ¹Ùا٠ة Ø§ÙØªØ¬Ø§Ø±ÙØ©" /> 1232 <div class="m_searchIcons position-absolute top-50 translate-middle-y text-muted"> 1233 <i class="ci-camera pointer" data-bind="click: window.doOpenCropper.bind($root, $root, GlobalSettingTranslateEnum.PathObjectPicture, m_currentPicture)"></i> 1234 <i class="ci-search pointer" data-bind="click: $root.doSearchByWord.bind($root)"></i> 1235 </div> 1236 </div> 1237 1238 1239 1240<div id="UI_searchQuickPopup" data-koPending class="quickPopUp border rounded-1 p-3 mt-md-n1 bg-white" data-bind="visible:m_showQuickPopUp()"> 1241 1242 <!-- ko if: m_listQuickFilterCategory().length != 0 --> 1243 <b class="font-size-10 fw-bolder mt-2 mb-1 text-accent">ÙØ¦Ø§Øª Ù ÙØ¶ÙØ© ÙØ¯ÙÙÙ </b> 1244 <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterCategory"> 1245 <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: doLoadMenuLink.bind($root, doGetLinkQuickFilter($data._value())) , attr:{href: doGetLinkQuickFilter($data._value()) }"> 1246 <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()"> 1247 </div> 1248 </a> 1249 </div> 1250 <!-- /ko --> 1251 <!-- ko if: m_listQuickFilterColor().length != 0 --> 1252 <b class="font-size-10 fw-bolder mt-3 mb-1 text-accent ">اÙÙÙ٠ذات شعبÙÙ</b> 1253 <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterColor"> 1254 <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: m_handlerLayout.doSetSearch.bind($root, $data._name()), attr:{href: doGetLinkQuickFilter($data._name()) }"> 1255 <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()"> 1256 </div> 1257 </a> 1258 </div> 1259 <!-- /ko --> 1260 <!-- ko if: m_listQuickFilterTag().length != 0 --> 1261 <b class="font-size-10 fw-bolder mt-3 mb-1 text-accent">اÙÙ Ø§Ø±ÙØ§Øª Ø§ÙØ£Ùثر Ø´Ø¹Ø¨ÙØ©</b> 1262 <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterTag"> 1263 <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: m_handlerLayout.doSetSearch.bind($root, $data._name()), attr:{href: doGetLinkQuickFilter($data._name()) }"> 1264 <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()"> 1265 </div> 1266 </a> 1267 </div> 1268 <!-- /ko --> 1269 1270</div> 1271 1272 </div> 1273 <div class="bf-headerRow-lead"> 1274 <a class="navbar-tool d-lg-none" href="/#UI_menuSection" aria-label="menu" name="menu" onclick="doClosePo
1274pUp()" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="UI_menuSection"> 1275 <span class="navbar-tool-icon-box"><i class="navbar-toggler-icon mt-1"></i></span> 1276 </a> 1277 </div> 1278 <div class="bf-headerRow-brand"> 1279 <a class="navbar-brand textAlignAuto" href="https://brandfull.com" enable-href="true"> 1280 <img class="headerBrandLogo" style="--logo-width: 125px; --logo-height: 41px;" fetchpriority="high" decoding="async" src="https://cdn.brandfull.com/Media/BrandFull/headerDesktopLogo_ar.png?format=webp&size=Thumb&version=639260136446764345" width="905" height="297" alt="AltLogo" title="Ø§ÙØ¹ÙÙØ§ÙØ§ÙØ´Ø¹Ø§Ø±" /> 1281 </a> 1282 </div> 1283 <!-- ko stopBinding: true --> 1284 <div id="UI_headerSession" class="navbar-toolbar d-flex flex-shrink-0 align-items-center bf-headerRow-trail"> 1285 1286 <!-- ko if: doCheckUUID(m_currentUser._id()) --> 1287 <a name="Favorites" aria-label="Favorites" class="navbar-tool-icon-box dropdown-toggle flipAuto d-lg-block d-md-none d-sm-none" enable-href="false" href="/Account/Favorites"> 1288 <i class="navbar-tool-icon ci-heart" style="width: 45px;"></i> 1289 </a> 1290 <div class="navbar-tool dropdown pointer d-lg-flex d-md-none d-sm-none" data-bind="visible: doCheckUUID(m_currentUser._id())" onmouseenter="doPrepareAdvertisement()"> 1291 <span class="navbar-tool-icon-box dropdown-toggle flipAuto" onclick="doOpenAdvertisement()"> 1292 <span class="navbar-tool-label flipAuto" data-bind="text: m_countAdvertisement() > 99 ? '99+' : m_countAdvertisement()"></span> 1293 <i class="navbar-tool-icon ci-bell" style="width: 45px;"></i> 1294 </span> 1295 <div id="UI_menuWebAdvertisement" class="dropdown-menu dropdown-menu-end textAlignAuto"> 1296 <div class="widget widget-cart px-3 pt-2 pb-0"> 1297 <div class="d-flex align-items-center justify-content-between"> 1298 <!-- ko if: !m_handlerLayout.m_isViewMobile() --> 1299 <div class="col-md-10"> 1300 <!-- ko if: m_enableNotifGrant() --> 1301 <button id="UI_notifGrant" class="btn d-flex align-content-between align-items-center font-size-10 p-1 " onclick="doGetPermissionNotification()"> 1302 <i class="ci-settings me-2-Auto font-size-14 "></i> 1303 <span class="form-check-label elide text-black fw-bolder heartbeat" for="UI_agreeWebPush"> 1304 ابÙÙ٠عÙÙ Ø§Ø·ÙØ§Ø¹ 1305 </span> 1306 </button> 1307 <!-- /ko --> 1308 <!-- ko if: m_enableNotifDenied() --> 1309 <div id="UI_notifDenied" class="d-flex align-content-between align-items-center font-size-10 p-1 "> 1310 <i class="ci-announcement me-2-Auto font-size-14 fw-bolder"></i> 1311 <span class="form-check-label elide text-danger fw-bolder heartbeat"> 1312 Ø§ÙØ¥Ø´Ø¹Ø§Ø±Ø§Øª Ù ØØ¬Ùبة. شغÙÙØ§ Ù٠إعدادات اÙÙ ØªØµÙØ ÙØªØØµÙ عÙÙ ØªÙØ¨ÙÙØ§Øª. 1313 </span> 1314 </div> 1315 <!-- /ko --> 1316 1317 </div> 1318 <!-- /ko --> 1319 </div> 1320 1321 <div id="UI_notificationList" data-simplebar data-simplebar-auto-hide="false" style="overflow-x: hidden;max-height: 21rem;" data-bind="visible: m_listAdvertisement().length!=0, foreach: { data: m_showAdvertisement() ? m_listAdvertisement() : [] }"> 1322 <div class="border-bottom py-1 me-3-Auto d-flex justify-content-between border-danger" style=" border-bottom-style: dotted !important;" data-bs-dismiss=""> 1323 <label class="form-text elide w-75 pointer" data-bind="click: $root.doSetTaged.bind($root, $data, true), text:$data._subject()"></label> 1324 <b class="form-check-label textAlignReverse font-size-10 d-inline-block mb-n2 fw-light" data-bind="click: $root.doSetTaged.bind($root, $data, true), text: doCalcDateDifference(doCastFromUTC($data._dateCreate()))"></b> 1325 </div> 1326</div> 1327 1328 </div> 1329 </div> 1330 </div> 1331 1332 1333 <!-- /ko --> 1334 <div id="UI_userSession" class="navbar-tool dropdown pointer d-lg-flex d-md-none d-sm-none">
1335 <span class="navbar-tool-icon-box " onclick="doOpenProfile()"> 1336 <i class="navbar-tool-icon ci-user "></i> 1337 </span> 1338 1339 <span class=" d-none d-lg-flex" style="padding-left:unset; max-width: 75px;" href="#"> 1340 <!-- ko if: doCheckUUID(m_currentUser._id()) --> 1341 <small class="elide text-black" data-bind="text: m_currentUser._name()"></small> 1342 <!-- /ko --> 1343 <!-- ko if: !doCheckUUID(m_currentUser._id()) --> 1344 <small class="elide text-black">ØØ³Ø§Ø¨</small> 1345 <!-- /ko --> 1346 </span> 1347 <!-- Session dropdown--> 1348 <!-- ko if: doCheckUUID(m_currentUser._id()) --> 1349 <div class="dropdown-menu dropdown-menu-end"> 1350 <div class="widget widget-cart px-3 pt-2 pb-3 textAlignAuto"> 1351 <!-- ko if: doCheckUUID(m_currentUser._id()) --> 1352 <div class="fs-sm fw-medium mb-1">ØØ³Ø§Ø¨</div> 1353 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Profile"> 1354 <i class="ci-user opacity-60 me-2-Auto"></i>اÙÙ ÙÙ Ø§ÙØ´Ø®ØµÙ 1355 </a> 1356 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Invoices"> 1357 <i class="ci-basket opacity-60 me-2-Auto"></i>اÙÙÙØ§ØªÙر 1358 </a> 1359 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Supports"> 1360 <i class="ci-help opacity-60 me-2-Auto"></i>ØªØ°Ø§ÙØ± 1361 </a> 1362 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Messages"> 1363 <i class="ci-message opacity-60 me-2-Auto"></i>رسائ٠1364 </a> 1365 1366 <div class="dropdown-divider"></div> 1367 <a class="dropdown-item d-flex align-items-center py-1" href="#" enable-href="false" data-bind="click: $root.doLogOut.bind($root, '/Account/LogOff?Value=https%3A%2F%2Fbrandfull.com%2F')"> 1368 <i class="ci-sign-out opacity-60 me-2-Auto"></i>تسجÙÙ Ø§ÙØ®Ø±Ùج 1369 </a> 1370 <!-- /ko --> 1371 </div> 1372 </div> 1373 <!-- /ko --> 1374 </div> 1375 1376 <a href="#" aria-label="Ø¨ØØ«" name="Search" class="navbar-tool-icon-box dropdown-toggle flipAuto" enable-href="false" onclick="doJSClickSearch()"> 1377 <i id="UI_searchIcon" class="navbar-tool-icon ci-search animate-target" style="width: 45px;"></i> 1378 </a> 1379 <div id="UI_shopNav" class="navbar-tool pointer" onclick="m_handlerSession.doOpenCartDrawer();"> 1380 <span class="navbar-tool-icon-box flipAuto"> 1381 <span class="navbar-tool-label flipAuto" data-bind="text: doGetCartCount()"></span> 1382 <i class="navbar-tool-icon bold ci-card-bag"></i> 1383 </span> 1384 <span class="d-flex flex-column d-none d-md-flex ps-2-Auto"> 1385 <small class="font-size-10 text-black">Ø³ÙØ© Ø§ÙØªØ³ÙÙ</small> 1386 <!-- ko if: m_currentCart._listCartDetailModel().length!=0 --> 1387 <span class="text-accent fs-base font-size-12" data-bind="html: $root.doCalcPriceDynamic(m_currentCart._total(), true)"></span> 1388 <!-- /ko --> 1389 </span> 1390 </div> 1391 1392 </div> 1393 <!-- /ko --> 1394 </div> 1395 <!-- Search--> 1396 </div> 1397 1398 1399 <div id="UI_menuNavBar" class="navbar navbar-expand-lg navbar-light navbar-stuck-menu mt-n2 pt-0 pb-2" style="visibility: hidden; margin-top: auto !important;"> 1400 <div class="container "> 1401 <div id="UI_menuSection" class="navbar-collapse collapse" data-bind="class: m_listCategoryMenuDepartmentHeader().length ==0 ? 'justify-content-around':''"> 1402 1403<style> 1404 1405 /* The sprite URL is per-request (CDN base + m_version), so it cannot live in the bundled 1406 CSS. It is emitted once here and read by .categoryMerge in StyleCartzilla-Menu.css. 1407 It used to be a full inline `background: url(...)` on EVERY category node -- in this file 1408 and, worse, inside Template_ItemDeskMenu / Template_ItemMobileMenu, which recurse, so the 1409 whole CDN path was re-emitted into the live DOM once per category at every depth. */ 1410 :root { 1411 --category-sprite: url('https://cdn.brandfull.com/Content/category/Merge.png?v=639260136446764345'); 1412 } 1413 1414 .quickPopUp { 1415 visibility: hidden; 1416 z-index: +100; 1417 position: absolute; 1418 top: 47px; 1419 } 1420 1421 [lang="ar"] .quickPopUp { 1422 right: 1px; 1423 } 1424 1425 [lang="en"] .quickPopUp { 1426 left: 1px; 1427 } 1428 1429 1430 @media screen and (max-width:767px) { 1431 .quickPopUp { 1432 z-index: +1; 1433 position: unset; 1434 top: 81px; 1435 width: 100%; 1436 border: hidden !important; 1437 } 1438 } 1439</style> 1440
1441<script id="Template_ItemDeskMenu" type="text/html"> 1442 1443 1444 <ul class="dropdown-menu " data-bind="foreach: $data._list, css:{'d-block fixRtl': $data.mode=='block' }"> 1445 <li class="" data-bind="class: $data._list() != 0 ? 'dropdown':''"> 1446 <a class="dropdown-item d-flex" href="#" enable-href="false" data-bind=" 1447 class: $data._list() != 0 ? 'dropdown-toggle':'', 1448 attr:{href: doGetLinkCategory($data) }"> 1449 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) --> 1450 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1451 </span> 1452 <!-- /ko --> 1453 <span class="categoryColor menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span> 1454 </a> 1455 <!--ko if : $data._list() != 0 --> 1456 <!-- ko run: $data.mode='' --><!-- /ko --> 1457 <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko --> 1458 <!-- /ko --> 1459 </li> 1460 </ul> 1461 1462</script>
vendor: 2 bytes, line 1462
1462
1463<script id="Template_ItemDeskMegaMenu" type="text/html"> 1464 1465 <ul class="dropdown-menu " data-bind="foreach: $data._list"> 1466 <li class="dropdown mega-dropdown"> 1467 <a class="dropdown-item dropdown-toggle d-flex" href="#" enable-href="false" data-bind="class: $data._list() != 0 ? 'dropdown-toggle':'', attr:{href: !doCheckEmptyData($data._link())? $data._link() : '/Shop'+'/'+$data._code() }" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="true"> 1468 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) --> 1469 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1470 </span> 1471 <!-- /ko --> 1472 <span class="categoryColor menuSpan " data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span> 1473 </a> 1474 </li> 1475 </ul> 1476 1477 1478</script>
vendor: 2 bytes, line 1478
1478
1479<script id="Template_ItemMobileMenu" type="text/html"> 1480 1481 <ul class="widget-list mt-1" data-bind="attr:{'id': 'UI_'+$data._id()}, css:{'collapse collapseShow mx-3': $data.mode=='block'}, foreach: $data._list"> 1482 <li class="widget-list-item"> 1483 <a class="dropdown-item d-flex" href="#" enable-href="false" data-bind="attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id(), href: doGetLinkCategory($data) }"> 1484 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) --> 1485 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1486 </span> 1487 <!-- /ko --> 1488 <span class="categoryColor font-size-14" data-bind="class: ($data._list() != 0 && $parent.mode=='block') ? 'fw-medium':'fw-light', text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span> 1489 </a> 1490 <!--ko if : $data._list() != 0 --> 1491 <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko --> 1492 <!-- /ko --> 1493 </li> 1494 </ul> 1495 1496</script>
1496 1497 1498 1499 1500<!-- ko ifnot: m_isMenuMobile() --> 1501<!-- ko if: $root.m_listCategoryMenuDepartmentHeader().length!=0 --> 1502<ul class="navbar-nav d-none d-lg-flex navbar-mega-nav pe-lg-2-Auto me-lg-2-Auto" style="padding-right:unset !important"> 1503 <li class="nav-item dropdown"> 1504 <a class="nav-link dropdown-toggle ps-lg-0-Auto " href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside"> 1505 <i class="ci-menu align-middle mt-n1 me-2-Auto"></i> 1506 Ø§ÙØ§Ø¯Ø§Ø±Ø§Øª 1507 </a> 1508 <ul class="dropdown-menu " data-bind="foreach: $root.m_listCategoryMenuDepartmentHeader"> 1509 <li class="dropdown mega-dropdown"> 1510 <a class="dropdown-item dropdown-toggle d-flex" href="#" enable-href="false" data-bind="class: $data._list() != 0 ? 'dropdown-toggle':'', attr:{href: doGetLinkCategory($data) }" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="true"> 1511 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) --> 1512 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1513 </span> 1514 <!-- /ko --> 1515 <span class="categoryColor menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorDesktopHex()}"></span> 1516 </a> 1517 <div class="dropdown-menu p-0 megaMenuRtl" data-bind="style: {'min-width': doCheckEmptyData($data._bannerName()) ? '0rem':'12rem'}"> 1518 <div class="d-flex flex-wrap flex-sm-nowrap p-2"> 1519 <div style="max-width: 12rem;" data-bind="class: doCheckEmptyData($data._bannerName()) ? '':'mega-dropdown-column'"> 1520 <!--ko if : $data._list() != 0 --> 1521 <!-- ko run: $data.mode='block' --><!-- /ko --> 1522 <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko --> 1523 <!-- /ko --> 1524 </div> 1525 <!--ko if : !doCheckEmptyData($data._bannerName()) --> 1526 <div class="mega-dropdown-column d-none d-lg-block text-center"> 1527 <img width="100%" data-bind="attr:{ src: GlobalSettingTranslateEnum.PathCategoryPicture + $data._bannerName(), 'alt': $data._code()}" alt="Menu"> 1528 </div> 1529 <!-- /ko --> 1530 </div> 1531 </div> 1532 </li> 1533 </ul> 1534 </li> 1535</ul> 1536<!-- /ko --> 1537<!-- Primary menu--> 1538<ul class="navbar-nav d-none d-lg-flex" data-bind="css:{'hide': m_listCategoryMenuHeader().length==0}, foreach: m_listCategoryMenuHeader"> 1539 <li class="nav-item dropdown"> 1540 <a class="nav-link dropdown-toggle" enable-href="false" href="#" data-bs-auto-close="outside" data-bind="attr:{href: doGetLinkCategory($data)}"> 1541 <span class="categoryColor bolder" data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span> 1542 </a> 1543 <!-- ko if: $data._list().length!=0 --> 1544 <!-- ko run: $data.mode='' --><!-- /ko --> 1545 <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko --> 1546 <!-- /ko --> 1547 </li> 1548</ul> 1549 1550<!-- Tag menu --> 1551<ul class="navbar-nav d-none d-lg-flex ms-auto align-items-center" data-bind="css:{'hide': m_listCategoryMenuTag().length==0}, foreach: m_listCategoryMenuTag"> 1552 <li class="nav-item me-2-Auto"> 1553 <a class="btn btn-sm rounded-pill border px-3 categoryColor" enable-href="false" href="#" data-bind=" 1554 attr:{href: doGetLinkCategory($data), 'data-code': $data._code}, 1555 text: $data._name, 1556 style:{'--data-categoryColor': $data._colorDesktopHex()}"></a> 1557 </li> 1558</ul> 1559<!-- /ko --> 1560 1561<!-- ko if: m_isMenuMobile() --> 1562<aside class="w-100 zindex-lg-5 pt-lg-5 d-lg-none" aria-modal="true" role="dialog"> 1563 <div class="pt-2 d-none d-lg-block"></div> 1564 1565 <!--ko if : m_listCategoryMenuDepartmentHeader().length!=0--> 1566 <ul class="nav nav-tabs nav-justified mt-4 mt-lg-5 mb-0" role="tablist" style="min-height: 3rem;"> 1567 <li class="nav-item" role="presentation"> 1568 <a class="nav-link fw-medium" href="#UI_departments" data-bs-toggle="tab" role="tab" aria-selected="false" tabindex="-1"> 1569 Ø§ÙØ§Ø¯Ø§Ø±Ø§Øª 1570 </a> 1571 </li> 1572 <li class="nav-item" role="presentation"> 1573 <a class="nav-link fw-medium active" href="#UI_headers" data-bs-toggle="tab" role="tab" aria-selected="true"> 1574 ÙØ§Ø¦Ù Ø© 1575 </a> 1576 </li> 1577 </ul> 1578 <!-- /ko --> 1579 1580 <div class="offcanvas-body px-0 pt-3" data-simplebar="init" data-simplebar-auto-hide="false" style="height: calc( 100% - 35px);"> 1581 <div class="tab-content"> 1582 1583 <!--ko if : m_listCategoryMenuDepartmentHeader().length!=0--> 1584 <div class="sidebar-nav tab-pane fade" id="UI_departments" role="tabpanel"> 1585 <div class="widget widget-categories accordion " id="shop-categories" data-bind="foreach: m_listCategoryMenuDepartmentHeader"> 1586 <div class="accordion-item border-bottom accordion-header pe-2-Auto"> 1587 <button class="accordion-button collapsed fw-bold d-flex align-items-center" type="button" data-bs-toggle="collapse" data-bind="attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id()}" aria-expanded="false"> 1588 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1589 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1590 </span> 1591 <!-- /ko --> 1592 <span class="categoryColor menuSpan " data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span> 1593 1594 </button> 1595 <!-- ko run: $data.mode='block' --><!-- /ko --> 1596 <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko --> 1597 </div> 1598 </div> 1599 </div> 1600 <!-- /ko --> 1601 1602 <div class="sidebar-nav tab-pane fade active show" id="UI_headers" role="tabpanel"> 1603 <div class="widget widget-categories accordion" data-bind="css:{'hide': m_listCategoryMenuHeader().length==0}, foreach: m_listCategoryMenuHeader"> 1604 <div class="accordion-item accordion-header"> 1605 <button class="categoryBgColor accordion-button collapsed d-flex align-items-center px-1 py-3" style="padding-top: .75rem; padding-bottom: .75rem;" type="button" data-bs-toggle="collapse" data-bind="css:{'hideAfter': $data._list().length==0}, attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id()}, style:{'--data-categoryBgColor': $data._colorBackgroundHex()}" aria-expanded="false"> 1606 <!-- ko ifnot: doCheckEmptyData($data._pictureName()) --> 1607 <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}"> 1608 </span> 1609 <!-- /ko --> 1610 <span onclick="" class="categoryColor font-size-18 menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span> 1611 </button> 1612 1613 <!--ko if : $data._list().length!=0 --> 1614 <!-- ko run: $data.mode='block' --><!-- /ko --> 1615 <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko --> 1616 <!-- /ko --> 1617 1618 </div> 1619 </div> 1620 </div> 1621 1622 </div> 1623 </div> 1624</aside> 1625<!-- /ko --> 1626 1627 1628 </div> 1629 </div> 1630 </div> 1631 1632 </div> 1633</header> 1634 1635 1636 <!-- END HEADER --> 1637 <div style="min-height: 60vh;"> 1638 <div id="UI_AjaxLoader" class="page-wrapper"> 1639 <div id="UI_LayoutBody" class="main_content"> 1640 1641 1642 1643 1644 1645
1646<script type="application/javascript"> 1647 var m_handlerPageHome; 1648 1649 doLoadScript(function () { 1650 m_handlerPageHome = new Handler_PageHome(); 1651 doSetHandlerPageScroller(m_handlerPageHome); 1652 m_handlerPageHome.doInitData({"requestCode":4001,"requestData":{"_page":{"_pageType":0,"_styleCss":".div875-510 .BannerBtnGrid {\nheight: fit-content;\ngrid-template-columns: repeat(3, calc(33.33% - 5px));\ngrid-template-rows: repeat(2, 50%);\ngrid-column-gap: 10px;\ngrid-row-gap: 10px;\n}\n\n@media (max-width: 425px) {\n\n.div875-510 .BannerBtnGrid {\ngrid-template-columns: repeat(2, calc(50% - 5px));\ngrid-template-rows: repeat(3, 33.33%);\n}\n}.div300-700 .BannerBtnGrid {\nheight: fit-content;\ngrid-template-columns: repeat(5, calc(20% - 7px));\ngrid-template-rows: repeat(2, 50%);\ngrid-column-gap: 10px;\ngrid-row-gap: 10px;\n}\n\n\n\n.div300-700 .BannerBtnGrid_item div{\nheight: 100%;\n}\n\n\n@media (max-width: 769px) {\n\n.div300-700 .BannerBtnGrid {\ngrid-template-columns: repeat(2, calc(50% - 3px));\ngrid-template-rows: repeat(5, 20%);\n}\n}","_pageStatus":1,"_showMenu":false,"_listDivModel":[{"_loopCount":0,"_order":0,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"promoauthentic","_title":"ÙØØµ اصاÙ٠٠جاÙ٠٠ع Ù٠ع٠ÙÙØ© شراء","_description":"<p><span style=\"font-size: 11px;\">خاضع ÙÙØ´Ø±ÙØ· Ù Ø§ÙØ£ØÙا٠</span></p>","_button":"","_link":"","_titleHex":"#FF5940FF","_descriptionHex":"#FFFFFFDB","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"4433bec1-bd97-4bff-9c9e-449865f6fefd","_order":0}],"_divTemplateModel":{"_code":"TopBarSlick","_divTemplateItemType":0,"_itemCount":1,"_pictureModel":{"_name":"cb4e84dd-3ef7-410c-86e9-9c714407164b.jpeg","_pictureType":0,"_order":0,"_dimension":"1903x41","_id":"c6d0227a-b3b6-4c58-9004-1944e21a8aee","_dateCreate":"2023-04-15T00:09:25.0000000","_dateUpdate":"2023-04-15T00:09:25.0000000"},"_isDynamicCount":true,"_isAdvance":false,"_slotName":"slotHeader","_id":"0579d34c-110b-43d4-8ac0-0063b76ee85c","_dateCreate":"2023-04-15T00:09:25.0000000","_dateUpdate":"2026-09-03T22:21:45.6267986"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T11:48:23.0000000","_dateEnd":"2024-10-14T11:48:23.0000000","_id":"17fcf8ba-6868-46a6-8947-9077a7cd58ed","_hasLoadListObject":false},{"_loopCount":0,"_order":1,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"authenticitycheck","_title":"ÙØØµ Ø§ÙØ£ØµØ§ÙØ©","_description":"","_button":"","_link":"/Shop/service","_listPictureModel":[{"_name":"ff6f4d49-ff80-47f6-996b-2b023476ec65.jpeg","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"1c062bd9-cecc-4b2d-becf-9384b0fc8807","_dateCreate":"2024-10-28T17:34:11.0000000","_dateUpdate":"2024-10-28T16:23:43.2148746"},{"_name":"c38c55ef-020a-45ae-8d6c-ffa23c32598a.jpeg","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"936aa740-cea5-47c2-8e29-51a506ee7fb2","_dateCreate":"2024-10-28T18:23:38.0000000","_dateUpdate":"2024-10-28T18:23:38.0000000"},{"_name":"5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"970f5d62-be8d-40a5-ba35-2ddb2116fd2e","_dateCreate":"2024-10-28T17:34:17.0000000","_dateUpdate":"2024-10-28T16:23:44.2557345"},{"_name":"338be8db-3b35-402f-a87a-775604515f78.jpeg","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d310a46d-c446-4a7c-9606-64a034b54fc5","_dateCreate":"2024-10-28T18:23:33.0000000","_dateUpdate":"2024-10-28T18:23:33.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"7fa5a1a8-9d7f-4beb-be2a-4dcae8209482","_order":0},{"_code":"sellââyourluxuryitems","_title":"Ø¨ÙØ¹ ÙØ¸Ø¹Ù اÙÙØ§Ø®Ø±Ø©","_description":"","_button":"","_link":"/Object/CreateSell","_listPictureModel":[{"_name":"4e37cc52-45ec-43cf-a040-282ec68faa70.jpeg","_pictureType":0,"_order":0,"_dimension":"865x283","_id":"a043bd7f-f25d-4f11-9031-a6752efa0113","_dateCreate":"2024-10-28T17:27:45.0000000","_dateUpdate":"2024-10-28T17:27:45.0000000"},{"_name":"c04282fa-ed3f-42fc-962d-e9b31ac5c79e.jpeg","_pictureType":0,"_order":1,"_dimension":"547x283","_id":"325505ae-662e-4a62-9fa9-fbdda6112b1e","_dateCreate":"2024-10-28T17:28:05.0000000","_dateUpdate":"2024-10-28T17:28:05.0000000"},{"_name":"ee4b3f85-1383-4702-9475-d4506ea0d5aa.jpeg","_pictureType":0,"_order":2,"_dimension":"865x283","_id":"9b77cee8-2de1-4229-9951-95b7efd4985d","_dateCreate":"2024-10-28T17:27:51.0000000","_dateUpdate":"2024-10-28T17:27:51.0000000"},{"_name":"7a801544-3bcc-4e75-865e-beacc016adba.jpeg","_pictureType":0,"_order":3,"_dimension":"547x283","_id":"7dd8f3a7-56b1-42ae-a05d-4f53d017e8d9","_dateCreate":"2024-10-28T17:28:09.0000000","_dateUpdate":"2024-10-28T17:28:09.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"146ed7b6-9655-469b-8995-148527d898a7","_order":0}],"_divTemplateModel":{"_code":"BannerPercent","_divTemplateItemType":0,"_itemCount":2,"_pictureModel":{"_name":"fb778f4e-9189-4721-93e8-8e8dcc0c24e9.png","_pictureType":0,"_order":0,"_dimension":"1104x408","_id":"161fb807-b2d9-47ab-a2b4-06d45918c07d","_dateCreate":"2024-10-16T22:06:53.0000000","_dateUpdate":"2024-11-12T09:13:50.0911675"},"_isDynamicCount":false,"_isAdvance":false,"_id":"8babe07d-5967-4daf-9c79-079361c4902e","_dateCreate":"2024-10-16T22:06:53.0000000","_dateUpdate":"2026-08-08T19:43:15.9249532"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T11:48:43.0000000","_dateEnd":"2024-10-14T11:48:43.0000000","_id":"2dfdb752-7569-4c01-8324-55e71cadd71f","_hasLoadListObject":false},{"_loopCount":0,"_order":2,"_classCss":"mt-md-0 mt-sm-n2","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"buyandsellnew","_title":"Ø¨ÙØ¹ ÙØ´Ø±Ø§Ø¡-Ø¬Ø¯ÙØ¯","_description":"","_button":"","_link":"/Object/Shop","_listPictureModel":[{"_name":"a4c949d2-7afc-4c74-8112-18fe2f4ae111.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"c20bf97d-f6bf-41ef-81a8-648d42c3bc99","_dateCreate":"2026-09-05T09:49:39.5991276","_dateUpdate":"2026-09-05T09:49:39.5991282"},{"_name":"52293416-460f-4af2-b07f-dbc9f5fb40a8.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"8feb7dae-484c-4b5e-
1652a96f-f0bb01f0aa98","_dateCreate":"2026-09-05T09:49:39.5991332","_dateUpdate":"2026-09-05T09:49:39.5991332"},{"_name":"036ef27c-6024-4837-8d5a-adbf33ca558b.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"7aca133f-0a91-40f9-8d9d-d76556ad8b44","_dateCreate":"2026-09-05T09:49:39.5991347","_dateUpdate":"2026-09-05T09:49:39.5991348"},{"_name":"e303d16c-a755-4321-821c-91c73bbcb005.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"62658a89-0e77-4d6d-8d98-cc2f1540edda","_dateCreate":"2026-09-05T09:49:39.5991351","_dateUpdate":"2026-09-05T09:49:39.5991351"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"62f30e84-3892-4bcc-81fd-b62a1477883b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"1320cfba-73bf-4d26-9970-7da9b632f908","_hasLoadListObject":false},{"_loopCount":0,"_order":3,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"men","_title":"Ø§ÙØ±Ø¬Ø§Ù","_description":"","_button":"","_link":"/Shop/men","_listPictureModel":[{"_name":"9f7bee0b-bf99-43c9-8d39-10ba38c7d459.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"e29c3aef-ee4e-4563-91e1-55e797a160bc","_dateCreate":"2024-10-14T19:31:54.0000000","_dateUpdate":"2024-10-16T16:27:32.2218183"},{"_name":"6d26864b-adac-47fe-bcd8-c1c40c560d73.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"264ee595-0797-4de1-9083-659b0fd8420d","_dateCreate":"2024-10-14T19:31:58.0000000","_dateUpdate":"2024-10-16T16:27:32.3454845"},{"_name":"629f5b70-d83f-4910-a8a3-5453044a900f.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"cce8265a-6f93-48aa-9dc0-5d7eafedd1cd","_dateCreate":"2024-10-14T19:32:01.0000000","_dateUpdate":"2024-10-16T16:27:32.4721370"},{"_name":"f078ac8a-a0de-4de8-92a3-08e63a24235c.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"8ac78f82-812c-49ad-b03a-035b5710a5bb","_dateCreate":"2024-10-14T19:32:05.0000000","_dateUpdate":"2024-10-16T16:27:32.5993417"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"bbb59020-747f-4f24-9583-fe57fcf545f7","_order":0},{"_code":"women","_title":"ÙØ³Ø§Ø¡","_description":"","_button":"","_link":"/Shop/men","_listPictureModel":[{"_name":"589044f1-0e50-4aec-8dd1-c262d640fc56.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"16a3a572-9ad0-4760-9c28-ab571f34c563","_dateCreate":"2024-10-14T19:31:24.0000000","_dateUpdate":"2024-10-16T10:15:59.0529645"},{"_name":"17e0d8c5-411d-4845-95af-565f4a034695.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"1428ed53-1fd9-4eaa-8016-bce6a08fff71","_dateCreate":"2024-10-14T19:31:29.0000000","_dateUpdate":"2024-10-16T10:15:59.1753208"},{"_name":"cbf6c174-0d61-4e20-bcc4-ed720eb3b63d.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"177666c8-8382-4a4f-ab5b-b0a486e7ec38","_dateCreate":"2024-10-14T19:31:33.0000000","_dateUpdate":"2024-10-16T10:15:59.2970526"},{"_name":"0fd7f5af-45ea-4bd0-810a-e7ec6f987700.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"513b2133-7b1e-4fbf-b035-4c2de988e5fc","_dateCreate":"2024-10-14T19:31:37.0000000","_dateUpdate":"2024-10-16T10:15:59.4195010"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"5d59321a-1f27-4702-a43b-74cd18977728","_order":0},{"_code":"kids","_title":"Ø§ÙØ§Ø·ÙاÙ","_description":"","_button":"","_link":"/Shop/kids","_listPictureModel":[{"_name":"de1bbf92-ba9c-4fc4-8191-0c6253a19ca2.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"cf48e887-c3c0-4462-a295-a471a5bdac8c","_dateCreate":"2024-10-14T19:30:49.0000000","_dateUpdate":"2024-10-16T10:15:51.2835393"},{"_name":"796c2cc7-70c0-40d7-9cbb-e1e057e8e1db.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"ff6db743-f77d-4f25-9975-10e1bc904bf3","_dateCreate":"2024-10-14T19:30:54.0000000","_dateUpdate":"2024-10-16T10:15:51.4087617"},{"_name":"a222398b-882f-4570-8117-441bce7c4d9a.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"4b39e55b-008a-4c47-8eaa-8b747ce6d47d","_dateCreate":"2024-10-14T19:30:58.0000000","_dateUpdate":"2024-10-16T10:15:51.5316880"},{"_name":"a4939317-c1b1-4b12-9275-3b4b6f0b869b.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"6ad783f6-bf56-450e-8f42-aeb109f7cc44","_dateCreate":"2024-10-14T19:31:01.0000000","_dateUpdate":"2024-10-16T10:15:51.6543247"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"fc124d28-1464-445f-bfe3-176055e3adc5","_order":0},{"_code":"brands","_title":"اÙÙ
Ø§Ø±ÙØ§Øª","_description":"","_button":"","_link":"/Brand","_listPictureModel":[{"_name":"f912a871-0b9c-4e87-b6cb-17f892f4410e.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"8c25e257-670f-4a78-8335-f067a8d241d2","_dateCreate":"2024-10-14T19:30:17.0000000","_dateUpdate":"2024-10-17T07:44:23.6040592"},{"_name":"ab309bee-c918-43b8-a379-4858caf68e61.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"570ec9f5-5102-4ea5-9965-9ef2aab8158a","_dateCreate":"2024-10-14T19:30:20.0000000","_dateUpdate":"2024-10-17T07:44:23.7317249"},{"_name":"56710aa2-4d50-4b8c-961f-630ddaca485e.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"abfce0f9-da00-4495-bced-1cf4e48d28c4","_dateCreate":"2024-10-14T19:30:24.0000000","_dateUpdate":"2024-10-17T07:44:23.8583529"},{"_name":"3c8f4f6f-84f4-4893-8f46-4ffedb599a04.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"4ce0738a-16b1-4fb3-ba37-0d0e87e6612c","_dateCreate":"2024-10-14T19:30:27.0000000","_dateUpdate":"2024-10-17T07:44:23.9824599"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"7207dac7-0aab-4cb7-b7d8-aff35bc1e9a9","_order":0},{"_code":"uniquerare","_title":"ÙØ§Ø¯Ø±Ø©","_description":"","_button":"","_link":"/Shop/uniquerare","_listPictureModel":[{"_name":"f70231ae-20c8-4b5b-a48f-a2a15b63c611.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"3e60
165277f7-cc17-4705-a787-e4a24fd82332","_dateCreate":"2024-10-14T19:29:39.0000000","_dateUpdate":"2024-10-17T07:45:14.7917939"},{"_name":"094e00b7-5721-491e-a600-dd93ad89c7cd.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"644554e6-fdf1-43db-a201-06dec67e592a","_dateCreate":"2024-10-14T19:29:43.0000000","_dateUpdate":"2024-10-17T07:45:14.9139653"},{"_name":"9747b352-c427-47d7-b251-d33f2a473379.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"430465e4-0cd9-4315-aaff-2d053de35eb8","_dateCreate":"2024-10-14T19:29:47.0000000","_dateUpdate":"2024-10-17T07:45:15.0408793"},{"_name":"93f7136a-85fd-42f7-b4e3-7980f2a3f2a5.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"5f8247ed-7e05-4064-a104-99aa672b71a5","_dateCreate":"2024-10-14T19:29:50.0000000","_dateUpdate":"2024-10-17T07:45:15.1651762"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"38fbc99e-8fad-4afe-baf8-a0cf7c8bd8c3","_order":0}],"_divTemplateModel":{"_code":"FeaturedBanner","_divTemplateItemType":0,"_itemCount":-1,"_pictureModel":{"_name":"509da4ac-7d7e-4002-89af-b95db4d8a419.png","_pictureType":0,"_order":0,"_dimension":"1144x557","_id":"56dc8241-5cb6-4107-95c5-92d76edde87e","_dateCreate":"2023-01-26T11:57:00.0000000","_dateUpdate":"2024-11-14T12:18:02.4232987"},"_isDynamicCount":true,"_isAdvance":true,"_id":"f330bed6-6ec9-4c35-832b-dcb93aacf78e","_dateCreate":"2023-01-26T11:57:00.0000000","_dateUpdate":"2026-09-03T22:22:37.3389030"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:40:05.0000000","_dateEnd":"2024-10-14T13:40:05.0000000","_id":"0fd06543-2f3d-4f28-bb21-5aa68ab15f6a","_hasLoadListObject":false},{"_loopCount":0,"_order":4,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"newarrival","_title":"new Arrival","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"a965da92-963d-4fb1-87c5-558e88b6aeed.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"be013efe-429e-4ac2-aad4-9539633e19af","_dateCreate":"2026-09-05T08:50:17.2185192","_dateUpdate":"2026-09-05T08:50:17.2185197"},{"_name":"f7ace032-6806-4364-8805-adee982284ff.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"7363b730-2c5a-4f55-9e82-6bb770907a74","_dateCreate":"2026-09-05T08:50:17.2185251","_dateUpdate":"2026-09-05T08:50:17.2185252"},{"_name":"0101e564-e51c-4c58-8a58-fde10c529f09.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"49aa0748-247d-44d6-9320-7ae373e65d13","_dateCreate":"2026-09-05T08:50:17.2185255","_dateUpdate":"2026-09-05T08:50:17.2185255"},{"_name":"4eaf750a-76f8-49a4-ae35-e92c966ca87a.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"190ad613-ded4-476e-b318-bca8c41f4e4d","_dateCreate":"2026-09-05T08:50:17.2185257","_dateUpdate":"2026-09-05T08:50:17.2185258"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"8ed169b3-3836-4da8-9bc9-a13e6364343b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"5421b38d-7d58-49c0-b011-784a5f1140af","_hasLoadListObject":false},{"_slideModel":{"_code":"١٢","_title":"ÙØµÙ ØØ¯Ùثا","_description":"أجدد اÙÙ
ÙØªØ¬Ø§Øª اÙÙ
Ù
ÙØ²Ù Ø§ÙØªÙ تÙ
Ø¥Ø¶Ø§ÙØªÙا Ù
ؤخر","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"9ef22dcf-44b5-0fd1-9d43-4b9c21c6f5f5","_order":0},"_loopCount":2,"_order":6,"_classCss":"","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"weeklyproducts","_divTemplateModel":{"_code":"AreaGrid","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"3acfe2d7-d21e-4bcb-9f52-35ee8b25d8f3.png","_pictureType":0,"_order":0,"_dimension":"1122x706","_id":"29acbc81-1d26-46bc-a229-54703d5064f7","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2024-11-14T12:58:50.4352733"},"_isDynamicCount":true,"_isAdvance":true,"_id":"896a8c1d-9c68-4ead-8041-2e584c6c458b","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2026-01-09T09:48:50.4147316"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:12:24.0000000","_dateEnd":"2024-10-14T16:12:24.0000000","_id":"9ef44b09-d606-4d52-8b7e-828ae1a633d4","_hasLoadListObject":false},{"_loopCount":0,"_order":7,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"dress","_title":"Ø§ÙØ²Ù","_description":"","_button":"","_link":"/Shop/partydresses","_listPictureModel":[{"_name":"c153bf54-dc33-4f31-a1fa-88732bc550bc.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"4e20521b-7eb3-464a-85fa-e0d251c8a0ef","_dateCreate":"2025-12-15T12:28:58.0000000","_dateUpdate":"2025-12-15T10:44:48.0551105"},{"_name":"85fa2da6-f42c-4424-aa17-6b44bb69592f.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"6d744bb9-970d-4faa-bdf9-863d53099783","_dateCreate":"2025-12-15T12:29:02.0000000","_dateUpdate":"2025-12-15T10:44:48.1763502"},{"_name":"09763d65-dbbb-489e-a794-853d9bd8156a.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"3fc4350c-709c-4e6f-b245-1d290e1b9334","_dateCreate":"2025-12-15T12:29:05.0000000","_dateUpdate":"2025-12-15T10:44:48.2904806"},{"_name":"028bf484-72b9-4fda-88c8-74d3ac005a05.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"f566cc5f-9d3a-454a-b2aa-6e94c28bd079","_dateCreate":"2025-12-15T12:29:07.0000000","_dateUpdate":"2025-12-15T10:44:48.4114157"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"6e959e54-b4fa-4af8-b79c-68b494d0db38","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2025-02-20T17:39:40.0000000","_dateEnd":"2025-02-20T17:39:40.0000000","_id":"acc00af3-5122-4fc1-ac82-f2487c885
1652790","_hasLoadListObject":false},{"_loopCount":0,"_order":8,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"instantdelivery","_title":"Instant Delivery","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"4a6895c9-4ff5-4737-99ec-845ef13e0fe2.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"0776d32c-2e53-40e8-b1a0-33c17e21e834","_dateCreate":"2026-09-05T08:58:27.3537594","_dateUpdate":"2026-09-05T08:58:27.3537599"},{"_name":"c1714ef8-fa53-4436-9050-61e1f00c626e.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"854849c9-e93d-4f7b-96a6-d9bdf1cb6408","_dateCreate":"2026-09-05T08:58:28.0255256","_dateUpdate":"2026-09-05T08:58:28.0255264"},{"_name":"8bf0b725-51be-4327-b8a3-a0bb2b9cd7fa.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"a4f09ce0-c632-454f-a4b7-54285fc499ba","_dateCreate":"2026-09-05T08:58:28.3658603","_dateUpdate":"2026-09-05T08:58:28.3658610"},{"_name":"705df5fa-044e-4082-9d4a-5a3956b54021.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"fa08246d-f335-4a37-b00e-7479f355ce5f","_dateCreate":"2026-09-05T08:58:28.7059653","_dateUpdate":"2026-09-05T08:58:28.7059660"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"0864ef98-6e92-4c50-8c72-7a8855ca10a3","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"d77a4735-5434-46f3-b35c-8d84a2f77f8b","_hasLoadListObject":false},{"_slideModel":{"_code":"ourpickshome","_title":"تسÙÙÙ
ÙÙØ±Ù Ø¯Ø§Ø®Ù Ø§ÙØ±Ùاض !!","_description":"","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"b802e510-3b6d-4daf-95a1-450604fc6ded","_order":0},"_loopCount":0,"_order":9,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"064246,626113,772000,742919,992364,640755,322293,586013,677137,851551,215175,000051,333711,429298,824987,432882,000093,723572,842633,000106,000094,000008,053885,021800,021799,777191,120949,632374,430280,259243,119696,729473,056246,423780,075030,297753,777258,634776,205258,697234,891367,251063,741052,994465,513049","_divTemplateModel":{"_code":"AreaSlick","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"b36b2eb9-ab2a-4506-9ea4-855886920e1b.png","_pictureType":0,"_order":0,"_dimension":"1144x396","_id":"dc99a84d-75a0-46a6-bc82-295ebad6390d","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2024-11-14T12:57:15.9775906"},"_isDynamicCount":true,"_isAdvance":true,"_id":"2804b7e9-b773-4e65-98ea-22365e7e2475","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2026-08-16T15:04:01.5367590"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:50:46.0000000","_dateEnd":"2024-10-14T16:50:46.0000000","_id":"47bec788-1e2b-4415-8482-1ec61cb4bafb","_hasLoadListObject":false},{"_slideModel":{"_code":"categoryimportant","_title":"Ø§ÙØ£ÙساÙ
","_description":"ÙØ§Ø¦Ù
Ø© Ø§ÙØ£ÙساÙ
Ø§ÙØ±Ø§Ø¦Ø¬Ø© Ø§ÙØªÙ ÙØ±Ùز عÙÙÙØ§ عÙ
ÙØ§Ø¤Ùا","_button":"","_link":"","_titleHex":"#000000FF","_descriptionHex":"#7D879CFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"612634c2-2fb5-4fde-8012-8e8b1532f11b","_order":0},"_loopCount":0,"_order":10,"_classCss":"div875-510 mb-4","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"womenbag","_title":"ØÙÙØ¨Ø© ÙØ³Ø§Ø¦ÙØ©","_description":"","_button":"","_link":"/Shop/womenbag","_listPictureModel":[{"_name":"5e4f9132-32e3-47ae-a463-d1e99b4d912c.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"e3683a0b-7ee6-4cb8-b59f-07e17624589d","_dateCreate":"2024-12-31T00:52:54.0000000","_dateUpdate":"2024-12-31T00:52:54.0000000"},{"_name":"6af8bdcb-715e-4b2f-8d08-136a4b9f301e.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"6383ea5f-e186-4c09-bd40-a89b8d772a17","_dateCreate":"2024-12-31T00:52:58.0000000","_dateUpdate":"2024-12-31T00:52:58.0000000"},{"_name":"83bfcf35-d555-4420-be1b-8c2a60e70dfe.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"8c8f1762-6c25-4a5f-92fb-c048dd82b9ff","_dateCreate":"2024-12-31T00:53:15.0000000","_dateUpdate":"2024-12-31T00:53:15.0000000"},{"_name":"0ad70cac-4225-41c3-b146-2e13913f7295.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"1c257a61-bda9-4353-a60e-bb0d6cfc9a05","_dateCreate":"2024-12-31T00:53:18.0000000","_dateUpdate":"2024-12-31T00:53:18.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"fdc46bb3-bc66-45ae-af1b-7d0fe69200aa","_order":0},{"_code":"womenshoess","_title":"Ø£ØØ°ÙØ© ÙØ³Ø§Ø¦ÙØ©","_description":"","_button":"","_link":"/Shop/womenshoe","_listPictureModel":[{"_name":"4db70f30-e5e4-4cc2-9314-57b1439b3265.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"7cdbef5f-6be7-4b87-b44a-e062aa50b09a","_dateCreate":"2024-12-31T00:52:00.0000000","_dateUpdate":"2024-12-31T00:52:00.0000000"},{"_name":"925e7dd3-9e18-463b-ba60-801c77d9e7b9.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"13a6cb62-01fd-44a7-8986-7e9166dc9ff9","_dateCreate":"2024-12-31T00:52:05.0000000","_dateUpdate":"2024-12-31T00:52:05.0000000"},{"_name":"2e2d2a83-9e9b-46c0-9e55-fc095a099cd8.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"87718e5e-a40d-45ac-bffa-36ce58d83fd5","_dateCreate":"2024-12-31T00:52:11.0000000","_dateUpdate":"2024-12-31T00:52:11.0000000"},{"_name":"6be10dec-5997-4fe4-a635-440ab3e723a3.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"40895b80-9d48-4380-b094-9a8721c25534","_dateCreate":"2024-12-31T00:52:15.0000000","_dateUpdate":"2024-12-31T00:52:15.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"4ca26509-f63b-4d79-889d-07145f63c41a","_order":0},{"_code":"luxurywatches","_title":"ساعات راÙÙØ©","_description":"","_button":"","_link":"/Shop/menwatch","_listPictureModel":[{"_name":"ddafc416-7fad-45d5-ba6a-23339a4ba836.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"391ed8dd-ad30-45ed-aa83-190dce045ae0","_dateCreate":"2024-12-31T00:49:53.0000000","_dateUpdate":"2024-12-31T00:49:53.0000000"},{"_name":"ad3adbdd-f109-445c-8110-3db989f2d854.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"f6e589e7-3d91-4f99-8598-d53bcc8b3459","_dateCreate":"2024-12-31T00:49:57.0000000","_dateUpdate":"2024-12-31T00:49:57.0000000"}
1652,{"_name":"061fcb36-7f98-4230-a74f-920e3e5896c7.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"2a07a2c0-e6f7-46dd-a956-15204431b85a","_dateCreate":"2024-12-31T00:50:04.0000000","_dateUpdate":"2024-12-31T00:50:04.0000000"},{"_name":"0f28e47f-579b-4e9d-9010-f67b343e32c9.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d9ef783a-6040-4b07-9990-8ce244571041","_dateCreate":"2024-12-31T00:50:07.0000000","_dateUpdate":"2024-12-31T00:50:07.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"c3aa49e2-dd7e-4f9f-abd4-87743d953da1","_order":0},{"_code":"topaccessories","_title":"أبرز Ø§ÙØ¥ÙØ³Ø³ÙØ§Ø±Ø§Øª","_description":"","_button":"","_link":"/Shop/stylishglasses","_listPictureModel":[{"_name":"36d83016-42d5-4a50-9d78-c38b6650af04.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"b9bab0b5-eb6f-4919-a63e-7b8714d61fa7","_dateCreate":"2025-01-07T17:57:34.0000000","_dateUpdate":"2025-01-07T11:58:40.7511519"},{"_name":"b84698e3-eabf-4866-8232-fc02e519b5cc.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"df9d05a7-2dca-45ef-b14d-876c83a04907","_dateCreate":"2025-01-07T17:57:38.0000000","_dateUpdate":"2025-01-07T11:58:40.8858738"},{"_name":"fe1a8a62-21cd-4c80-b7b5-ba904d1ade22.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"1c5c8d9d-5016-45c1-a4ac-fd83a475bbe2","_dateCreate":"2025-01-07T17:57:44.0000000","_dateUpdate":"2025-01-07T11:58:41.0167783"},{"_name":"a9f833e8-47ef-4fa7-a8f7-f47409a2210b.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"afff8743-3433-464e-afd5-813089b61642","_dateCreate":"2025-01-07T17:57:47.0000000","_dateUpdate":"2025-01-07T11:58:41.1473994"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"28a8cc44-ba82-4fa2-91a9-8fd00f2eeac9","_order":0},{"_code":"womenjewelry","_title":"Ù
جÙÙØ±Ø§Øª ÙØ³Ø§Ø¦ÙØ©","_description":"","_button":"","_link":"/Shop/womenjewelry","_listPictureModel":[{"_name":"f46f2736-0055-4a7f-85db-12977be2e476.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"5a58758d-9ccf-4c74-9723-f5f0e1844e4d","_dateCreate":"2024-12-31T00:50:29.0000000","_dateUpdate":"2024-12-31T00:50:29.0000000"},{"_name":"c91cdbf3-4dcd-44d5-a27e-9a14ceacc6e4.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"351b4b6f-e2aa-471d-a56f-884c0d1bb6e3","_dateCreate":"2024-12-31T00:50:34.0000000","_dateUpdate":"2024-12-31T00:50:34.0000000"},{"_name":"d0c97be1-a1ae-4af7-ae76-ba40782c4abf.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"99377035-7249-4522-86e0-61119bac2aab","_dateCreate":"2024-12-31T00:50:40.0000000","_dateUpdate":"2024-12-31T00:50:40.0000000"},{"_name":"2dfdb774-c946-49a3-bce2-d74b471c200b.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d2c33e81-8319-43c1-9c62-66f7850d4ce6","_dateCreate":"2024-12-31T00:50:43.0000000","_dateUpdate":"2024-12-31T00:50:43.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"dbb7563e-9dd9-4c6e-9c2b-0baef6c43878","_order":0},{"_code":"luxurypens","_title":"Ø£ÙÙØ§Ù
ÙØ§Ø®Ø±Ø©","_description":"","_button":"","_link":"/Shop/menpen","_listPictureModel":[{"_name":"de8a76f5-c486-47a0-83d1-0c3cbac95afb.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"a3efa558-6e9f-4c81-b360-7e2f8e7edf75","_dateCreate":"2024-12-31T00:53:40.0000000","_dateUpdate":"2024-12-31T00:53:40.0000000"},{"_name":"47c36425-9e9e-4198-bc54-c2fc45beddb5.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"03a3b381-401f-48e5-a1ee-3fe272a95341","_dateCreate":"2024-12-31T00:53:43.0000000","_dateUpdate":"2024-12-31T00:53:43.0000000"},{"_name":"849a23ab-2b3f-44c0-a5fc-9fdb1353c5c9.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"85f6d9ed-a3a8-4d86-9aee-9ce6acc877de","_dateCreate":"2024-12-31T00:53:48.0000000","_dateUpdate":"2024-12-31T00:53:48.0000000"},{"_name":"7ba16c7a-6707-4a66-8117-ac0ea4de08f9.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"40480a9a-134b-4cf1-a7f1-2d07bacbb66c","_dateCreate":"2024-12-31T00:53:52.0000000","_dateUpdate":"2024-12-31T00:53:52.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"c4e8e9ac-e940-4a2d-a433-20083ea12d2e","_order":0}],"_divTemplateModel":{"_code":"BannerBtnGrid","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"e1d13d04-f07f-43c4-8fa2-beaa689e9fa4.png","_pictureType":0,"_order":0,"_dimension":"1104x534","_id":"0098b6ae-51ef-4426-8896-dd5e65f45615","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2024-11-01T15:40:14.7376632"},"_isDynamicCount":true,"_isAdvance":true,"_id":"552ba987-5b5e-423f-8525-3213189cc8b1","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2026-08-08T19:43:13.7892239"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T19:42:07.0000000","_dateEnd":"2024-10-14T19:42:07.0000000","_id":"a9a85175-efcf-496e-8e2d-5e9b62148587","_hasLoadListObject":false},{"_loopCount":0,"_order":12,"_classCss":"mt-5 mt-3","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"rolex,cartier","_divTemplateModel":{"_code":"AreaSlick","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"b36b2eb9-ab2a-4506-9ea4-855886920e1b.png","_pictureType":0,"_order":0,"_dimension":"1144x396","_id":"dc99a84d-75a0-46a6-bc82-295ebad6390d","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2024-11-14T12:57:15.9775906"},"_isDynamicCount":true,"_isAdvance":true,"_id":"2804b7e9-b773-4e65-98ea-22365e7e2475","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2026-08-16T15:04:01.5367590"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:18
1652:13.0000000","_dateEnd":"2024-10-15T20:18:13.0000000","_id":"eac3463d-8014-46f5-aad3-4ed97352ad05","_hasLoadListObject":false},{"_loopCount":0,"_order":13,"_classCss":"mt-md-0 mt-sm-n2","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"payiteasily","_title":"Ø§Ø¯ÙØ¹Ùا بسÙÙÙØ©","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"235ef6b7-7192-4fd7-890a-95b25f49353a.png","_pictureType":0,"_order":0,"_dimension":"1462x373","_id":"80badd1f-2160-41d8-882a-f2432ad98c75","_dateCreate":"2024-10-14T15:23:41.0000000","_dateUpdate":"2024-10-16T16:24:58.2801032"},{"_name":"f54e610c-54b1-4009-88d2-b6f862dae90c.png","_pictureType":0,"_order":1,"_dimension":"1123x373","_id":"39ce61d9-ad41-4ebd-b775-b62001caba0f","_dateCreate":"2024-10-14T15:23:58.0000000","_dateUpdate":"2024-10-16T16:24:58.4078068"},{"_name":"75067623-1f3f-4f5c-a91b-dd2c0f8d17cf.png","_pictureType":0,"_order":2,"_dimension":"1462x373","_id":"08756323-4e1f-46a4-83f6-2ef47f7ccbe8","_dateCreate":"2024-10-14T15:23:51.0000000","_dateUpdate":"2024-10-16T16:24:58.5328129"},{"_name":"4eb8691d-5b75-4a7a-802f-7b09c4ba2d05.png","_pictureType":0,"_order":3,"_dimension":"1123x373","_id":"b368c7ef-0c76-4c44-8abf-f5452337f4d7","_dateCreate":"2024-10-14T20:05:37.0000000","_dateUpdate":"2024-10-16T16:24:58.6569917"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"87d129de-b055-4653-8efb-559e9cdfa404","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T14:20:54.0000000","_dateEnd":"2024-10-14T14:20:54.0000000","_id":"212d134f-9b17-490c-9b9a-e5ec27bac6b0","_hasLoadListObject":false},{"_slideModel":{"_code":"updated","_title":"تÙ
Ø§ÙØªØØ¯ÙØ« Ù
ؤخرا","_description":"","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"78741c65-2477-4f78-a7e1-3dbff91a329c","_order":0},"_loopCount":0,"_order":14,"_classCss":"","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"weeklyproducts","_divTemplateModel":{"_code":"AreaGrid","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"3acfe2d7-d21e-4bcb-9f52-35ee8b25d8f3.png","_pictureType":0,"_order":0,"_dimension":"1122x706","_id":"29acbc81-1d26-46bc-a229-54703d5064f7","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2024-11-14T12:58:50.4352733"},"_isDynamicCount":true,"_isAdvance":true,"_id":"896a8c1d-9c68-4ead-8041-2e584c6c458b","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2026-01-09T09:48:50.4147316"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-12-31T19:59:37.0000000","_dateEnd":"2024-12-31T19:59:37.0000000","_id":"30778ec6-4d8a-46b6-9189-3cb485157f91","_hasLoadListObject":false},{"_slideModel":{"_code":"topbrands","_title":"أرÙ٠اÙÙ
Ø§Ø±ÙØ§Øª","_description":"","_button":"جÙ
ÙØ¹ اÙÙ
Ø§Ø±ÙØ§Øª","_link":"https://brandfull.com/Brand","_titleHex":"#2F2FFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#000000FF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"542991e7-3fae-400c-ba73-cb404c3883b4","_order":0},"_loopCount":0,"_order":16,"_classCss":"div300-700","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"prada","_title":"برادا","_description":"","_button":"","_link":"/Shop/prada","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"5909f9ba-a28b-44ed-ae4f-f8349bda9af2","_order":0},{"_code":"louisvuitton","_title":"ÙÙÙØ³ ÙÙØªÙÙ","_description":"","_button":"","_link":"/Shop/louisvuitton","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"3047d81a-b392-4af5-9015-158a71ed10d4","_order":0},{"_code":"yvessaintlaurent","_title":"اÙÙ Ø³Ø§ÙØª ÙÙØ±Ø§Ùت","_description":"","_button":"","_link":"/Shop/yvessaintlaurent","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"40cb2dbc-d6e9-4c7b-bdf2-06d915b632ca","_order":0},{"_code":"hermes","_title":"ÙÙØ±Ù
ÙØ³","_description":"","_button":"","_link":"/Shop/hermes","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"0237c600-c4a6-483e-8b70-3dc95c48883a","_order":0},{"_code":"rolex","_title":"رÙÙÙØ³","_description":"","_button":"","_link":"/Shop/rolex","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"6547d18f-4705-479f-949b-25bd7a28304b","_order":0},{"_code":"chanel","_title":"شاÙÙÙ","_description":"","_button":"","_link":"/Shop/Chanel","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"f2f4927d-79c1-43b5-ad0f-d12c41c0c243","_order":0},{"_code":"cartier","_title":"ÙØ§Ø±ØªÙر","_description":"","_button":"","_link":"/Shop/cartier","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"ec717e72-a69f-4a7f-ae14-8a552fb97903","_order":0},{"_code":"vancleefarpels","_title":"ÙØ§Ù ÙÙÙÙ Ø£ÙØ¯ Ø¢Ø±Ø¨ÙØ²","_description":"","_button":"","_link":"/Shop/vancleefandarpels","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"9b4d5c21-7420-405b-b120-8c25d0570477","_order":0},{"_code":"gcucci","_title":"ÙÙØªØ´Ù","_description":"","_button":"","_link":"/Shop/gucci","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"d2ff0645-54d3-423f-b991-8c2206a699cb","_order":0},{"_code":"dior","_title":"دÙÙØ±","_description":"","_button":"","_link":"/Shop/dior","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"b8287bc4-e272-4b1d-9060-fc807c78754d","_order":0}],"_divTemplateModel":{"_code":"BannerBtnGrid","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"e1d13d04-f07f-43c4-8fa2-beaa689e9fa4.png","_pictureType":0,"_order":0,"_dimension":"1104x534","_id":"0098b6ae-51ef-4426-8896-dd5e65f45615","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2024-11-01T15:40:14.7376632"},"_isDynamicCount":true,"_isAdvance":true,"_id":"552ba987-5b5e-423f-8525-3213189cc8b1","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2026-08-08T19:43:13.7892239"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:34:53.0000000","_dateEnd":"2024-10-14T16:34:53.0000000","_id":"65602c4d-bd0b-4c13-9c33-9b9d0b4c0fd2","_hasLoadListObject":false},{"_loopCount":0,"_order":17,"_classCss":"mt-sm-5","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"topbrands","_title":"أرÙ٠اÙÙ
Ø§Ø±ÙØ§Øª","_description":"","_button":"جÙ
ÙØ¹ اÙÙ
Ø§Ø±ÙØ§Øª","_link":"https://brandfull.com/Brand","_titleHex":"#2F2FFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#000000FF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"542991e7-3fae-400c-ba73-cb404c3883b4","_order":0}],"_divTemplateModel":{"_code":"BannerBtn","_divTemplateItemType":0,"_itemCount":-1,"_pictureModel":{"_name":"ef811a3b-8e76-4a08-8b72-98
16520a1b1fb813.png","_pictureType":0,"_order":0,"_dimension":"1104x195","_id":"0055178c-bba2-419a-80c4-da4f55ee0927","_dateCreate":"2024-10-15T20:58:32.0000000","_dateUpdate":"2024-11-01T15:37:45.4645365"},"_isDynamicCount":true,"_isAdvance":false,"_id":"4b9263d5-8270-426b-ba54-4acec3d9aca2","_dateCreate":"2024-10-15T20:58:32.0000000","_dateUpdate":"2026-01-09T09:48:50.4299066"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:01:36.0000000","_dateEnd":"2024-10-15T20:01:36.0000000","_id":"9f78e2d7-bbfa-4051-b87b-ab5c1c2e346a","_hasLoadListObject":false},{"_loopCount":0,"_order":18,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"tabbyinstallement","_title":"ØªÙØ³ÙØ· تابÙ","_description":"","_button":"","_link":"/Shop/tabby","_listPictureModel":[{"_name":"487780eb-51d2-4ae9-80bd-cff8eac53c4b.png","_pictureType":0,"_order":0,"_dimension":"1462x376","_id":"4fbf0680-0eb3-40fe-9990-1c88416cd6be","_dateCreate":"2024-10-15T21:15:59.0000000","_dateUpdate":"2025-08-14T12:13:30.6684048"},{"_name":"278f54f7-3a31-4f4a-b29d-872a05b24c0a.png","_pictureType":0,"_order":1,"_dimension":"1124x334","_id":"66c76162-6294-4f50-bfec-9a8c73e3d7bf","_dateCreate":"2024-10-15T21:16:08.0000000","_dateUpdate":"2025-08-14T12:13:30.7959831"},{"_name":"7f2f683c-105e-4a9d-91ec-6d98b7f68605.png","_pictureType":0,"_order":2,"_dimension":"1462x376","_id":"c629f95e-f1aa-4797-ada5-79f607f6d391","_dateCreate":"2024-10-15T21:15:49.0000000","_dateUpdate":"2025-08-14T12:13:30.9224596"},{"_name":"d7900c21-9eb5-4990-b24f-de67087f2549.png","_pictureType":0,"_order":3,"_dimension":"1124x334","_id":"9e0202f4-8715-4a99-857f-f4b2a15cd32e","_dateCreate":"2024-10-15T21:16:12.0000000","_dateUpdate":"2025-08-14T12:13:31.0486955"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"6a869e40-f74d-4f57-b1dc-5327421d5d9b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:16:34.0000000","_dateEnd":"2024-10-15T20:16:34.0000000","_id":"4f4f3871-1857-462c-a27d-fc8127feb823","_hasLoadListObject":false},{"_loopCount":0,"_order":19,"_classCss":"","_divObjectFilterType":1,"_divSurveyFilterType":0,"_divFilterParameters":"","_divTemplateModel":{"_code":"Pooper","_divTemplateItemType":1,"_itemCount":0,"_pictureModel":{"_name":"272d9244-1199-4f7f-b3fc-fa1be705b73f.png","_pictureType":0,"_order":0,"_dimension":"592x735","_id":"da931459-cc32-4772-b4dd-7f4fb83cf3be","_dateCreate":"2024-10-29T17:32:04.0000000","_dateUpdate":"2024-11-01T15:31:11.5179955"},"_isDynamicCount":true,"_isAdvance":false,"_id":"6b9aab0d-bf03-4994-9b69-9857c86b1f4e","_dateCreate":"2024-10-29T17:32:04.0000000","_dateUpdate":"2026-08-10T15:39:49.7435742"},"_autoHideArea":true,"_enableTimer":false,"_dateStart":"2024-10-30T19:55:45.0000000","_dateEnd":"2024-10-30T19:55:45.0000000","_id":"3b9b8661-2e05-4e72-bc94-de44f563255f","_hasLoadListObject":false},{"_slideModel":{"_title":"آراء Ø§ÙØ¹Ù
ÙØ§Ø¡","_description":"","_button":"عرض اÙÙÙ","_link":"/Survey","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"191fc1cc-6412-ac29-9479-b5a5d3daa598","_order":0},"_loopCount":0,"_order":20,"_classCss":"mt-4","_divObjectFilterType":0,"_divSurveyFilterType":2,"_divFilterParameters":"","_divTemplateModel":{"_code":"AreaReview","_divTemplateItemType":4,"_itemCount":0,"_pictureModel":{"_name":"93d6768a-96e5-4c37-9829-6bb6f20b94b2.png","_pictureType":0,"_order":0,"_dimension":"1116x380","_id":"2462988b-1e2d-408d-a727-56acd938be4f","_dateCreate":"2023-09-22T16:28:57.0000000","_dateUpdate":"2024-11-13T07:41:14.8260552"},"_isDynamicCount":true,"_isAdvance":true,"_id":"4fc52386-7cb3-4a54-9d85-959cffede734","_dateCreate":"2023-09-22T16:28:57.0000000","_dateUpdate":"2026-09-03T22:24:40.1577190"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-11-08T15:24:17.0000000","_dateEnd":"2024-11-08T15:24:17.0000000","_id":"c3c5420b-19e0-47b2-b02d-21c3b87ff13c","_hasLoadListObject":false},{"_slideModel":{"_code":"featuresofbrandfull","_title":"Ù
Ù
ÙØ²Ø§Øª Ø¨Ø±Ø§ÙØ¯ÙÙ","_description":"","_button":"","_link":"","_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"d25f013b-7db6-44fa-b4b4-c623911b7418","_order":0},"_loopCount":0,"_order":21,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"affordableluxury","_title":"ÙØ®Ø§Ù
Ø© بأسعار Ù
عÙÙÙØ©","_description":"ÙØ·Ø¹ ÙØ§Ø®Ø±Ø© رائعة بخصÙÙ
ات ÙØ§ ØªÙØ§ÙÙ
ÙÙ
ع Ø®ÙØ§Ø±Ø§Øª Ø§ÙØ´Ø±Ø§Ø¡ Ø¨Ø§ÙØªÙØ³ÙØ·","_button":"","_link":"","_listPictureModel":[{"_name":"e38ed7bf-53fa-495b-ac0a-76c2b6a792e9.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"c9c1459b-aa9c-4fb3-88eb-272dc13c4246","_dateCreate":"2024-10-15T21:29:50.0000000","_dateUpdate":"2024-10-16T15:23:38.4066119"},{"_name":"762713bc-d7d5-4ffe-92b7-8eb1904d4e98.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"af44272e-3b26-4695-9262-bad4960611c3","_dateCreate":"2024-10-15T21:29:55.0000000","_dateUpdate":"2024-10-16T15:23:38.5320564"},{"_name":"d987661b-466f-4ef2-b8ff-b92808d24c80.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"63465697-d65b-43c0-ac69-5367404a84cb","_dateCreate":"2024-10-15T21:29:59.0000000","_dateUpdate":"2024-10-16T15:23:38.6545534"},{"_name":"6a6d6a9e-665b-4ca7-a4a5-bf41ef4711d0.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"d9ecf73b-0b27-4e9b-9818-b0a2603dd920","_dateCreate":"2024-10-15T21:30:03.0000000","_dateUpdate":"2024-10-16T15:23:38.7812516"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"ef644092-935f-40c2-b618-ededa1b0140a","_order":0},{"_code":"trustedplatform","_title":"Ù
ÙØµØ© Ù
ÙØ«ÙÙØ©","_description":"Ù
ÙØµØ© Ø¢Ù
ÙØ© ÙÙ
ÙØ«ÙÙØ© ØªÙØ¯Ù
Ø£ÙØ«Ø± Ù
Ù 25,000 ضÙ
Ø§Ù Ø£ØµØ§ÙØ© Ù
Ø¯Ù Ø§ÙØÙØ§Ø©","_button":"","_link":"","_listPictureModel":[{"_name":"8cc9e11c-b365-461e-b9ee-fd775da172dd.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"54ade938-3694-4632-850b-0d86948dfed6","_dateCreate":"2024-10-15T21:30:52.0000000","_dateUpdate":"2024-10-16T15:43:23.2821114"},{"_name":"121debe5-7f20-44e6-8351-11383b42a83e.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"715da598-a3e8-429d-bd39-7329f329d053","_dateCreate":"2024-10-15T21:30:57.0000000","_dateUpdate":"2024-10-16T15:43:23.4063767"}
1652,{"_name":"7ce9020c-b06e-4659-b67b-58df7f30391e.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"0aa736cc-5bab-41bb-846a-c3ed36e2075f","_dateCreate":"2024-10-15T21:31:01.0000000","_dateUpdate":"2024-10-16T15:43:23.5330100"},{"_name":"1e755fcf-47ac-4f68-b3ae-1d3e135b3d62.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"4d718d02-7a05-428c-b969-ef61c64062ba","_dateCreate":"2024-10-15T21:31:05.0000000","_dateUpdate":"2024-10-16T15:43:23.6584008"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"9559cec9-0296-4164-bb02-a5442e26fe4a","_order":0},{"_code":"uniqueandluxuriouspieces","_title":"ÙØ·Ø¹ ÙØ§Ø®Ø±Ø© ÙÙØ±Ùدة Ù
Ù ÙÙØ¹Ùا","_description":"Ø§ÙØªØ´Ù ÙØ·Ø¹Ùا ÙØ§Ø®Ø±Ø© ÙØØµØ±ÙØ© تتÙ
ÙØ² Ø¨Ø³ØØ±Ùا اÙÙØ±Ùد","_button":"","_link":"","_listPictureModel":[{"_name":"d914e70a-d467-4304-bccc-1c33fd35c6be.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"ca6322e4-0a6b-4335-be6a-15a8e5663eba","_dateCreate":"2024-10-15T21:31:50.0000000","_dateUpdate":"2024-10-16T15:42:35.4079375"},{"_name":"0f822e88-8164-4aa7-b0d3-19764b85d478.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"8a6bed87-3c9c-49dc-80d1-6c44fe1ea583","_dateCreate":"2024-10-15T21:31:53.0000000","_dateUpdate":"2024-10-16T15:42:35.5336748"},{"_name":"3098a33b-691c-4ee3-9b2e-2695d45faaef.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"0a908aec-1395-4fb1-93db-4fc0796aa717","_dateCreate":"2024-10-15T21:31:57.0000000","_dateUpdate":"2024-10-16T15:42:35.6570312"},{"_name":"b84b42a5-8d44-4bd5-8977-7bc7ec75941f.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"553860fc-3500-4005-8b70-94a66530e9ee","_dateCreate":"2024-10-15T21:32:01.0000000","_dateUpdate":"2024-10-16T15:42:35.7808420"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"1211b40f-3015-4a0b-96ec-87acb57f1b92","_order":0},{"_code":"worldwidedeliveryreturns","_title":"Ø§ÙØªØ³ÙÙÙ
ÙØ§Ùإرجاع اÙ٠جÙ
ÙØ¹ Ù
د٠اÙÙ
Ù
ÙÙÙ","_description":"Ù
ا ترا٠ÙÙ Ù
ا ØªØØµÙ عÙÙÙ Ø ÙØ¥Ùا ÙØ¥Ù اÙÙ
Ø§Ù ÙØ³ØªØ±Ø¯","_button":"","_link":"","_listPictureModel":[{"_name":"b4a9d08a-3911-4455-b17d-6835f318ace5.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"4135d239-e669-47f9-b1a3-06a9cb8e80a8","_dateCreate":"2024-10-15T21:32:55.0000000","_dateUpdate":"2024-10-16T15:28:53.7803503"},{"_name":"a6a52993-7695-4604-b1bc-303400c91ace.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"024526c9-62d3-42ed-ae4d-88c1ab41984b","_dateCreate":"2024-10-15T21:32:58.0000000","_dateUpdate":"2024-10-16T15:28:53.9026141"},{"_name":"a917aab6-2cfb-4227-b76a-6d42cc245bb7.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"39f5b30d-25b9-40c6-a3b9-dedefb694577","_dateCreate":"2024-10-15T21:33:01.0000000","_dateUpdate":"2024-10-16T15:28:54.0280947"},{"_name":"badc7862-816e-4daf-a5f7-35e661a4a63d.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"89d1a227-f938-4f06-9c64-89f99485dc95","_dateCreate":"2024-10-15T21:33:05.0000000","_dateUpdate":"2024-10-16T15:28:54.1502076"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"8a882c1e-b91a-48dd-8576-b8ca5abe8db5","_order":0}],"_divTemplateModel":{"_code":"BannerMulti","_divTemplateItemType":0,"_itemCount":4,"_pictureModel":{"_name":"08af54f7-a29a-4590-ad90-3e923723598b.png","_pictureType":0,"_order":0,"_dimension":"1116x380","_id":"b0d7cfa5-6e04-460c-9e48-6ced974b6d2e","_dateCreate":"2023-09-28T11:24:20.0000000","_dateUpdate":"2024-11-12T09:17:30.6236050"},"_isDynamicCount":false,"_isAdvance":true,"_id":"1721cf43-91fa-4c67-8aec-7e140351e306","_dateCreate":"2023-09-28T11:24:20.0000000","_dateUpdate":"2026-08-08T19:42:50.3471692"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:34:25.0000000","_dateEnd":"2024-10-15T20:34:25.0000000","_id":"912e74da-c730-40ab-a5bf-b2515f84ba97","_hasLoadListObject":false}],"_id":"ceac2449-7870-413e-8421-5e0616f8c483","_title":"Ø¨Ø±Ø§ÙØ¯ÙÙ- Ù
ÙØµØ© ÙØ¨Ùع ÙØ´Ø±Ø§Ø¡ اÙÙ
تعÙÙØ§Øª Ø§ÙØ´Ø®ØµÙØ© اÙÙØ§Ø®Ø±Ø©","_extract":"Ù
ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹ÙاÙ
ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ
Ù٠عÙ
ÙØ§Ø¦Ùا Ù
Ù Ø§ÙØ¨Ùع Ù
باشرة Ù
٠خزائÙÙÙ
ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© Ù
٠اÙÙÙÙ
Ø© اÙÙ
اÙÙØ© ÙÙØ¹Ùاصر اÙÙ
Ø®Ø²ÙØ©.","_metaDescription":"Ù
ÙØµØ© ÙØ´Ø±Ø§Ø¡ ÙØ¥Ø¹Ø§Ø¯Ø© Ø¨ÙØ¹ Ø§ÙØ¹ÙاÙ
ات Ø§ÙØªØ¬Ø§Ø±ÙØ© اÙÙØ§Ø®Ø±Ø©. ÙØÙ ÙÙ
Ù٠عÙ
ÙØ§Ø¦Ùا Ù
Ù Ø§ÙØ¨Ùع Ù
باشرة Ù
٠خزائÙÙÙ
ÙØ§ÙØ§Ø³ØªÙØ§Ø¯Ø© Ù
٠اÙÙÙÙ
Ø© اÙÙ
اÙÙØ© ÙÙØ¹Ùاصر اÙÙ
Ø®Ø²ÙØ©.","_metaKeyWord":"Ø¨Ø±Ø§ÙØ¯ÙÙ , Ù
Ø§Ø±ÙØ§Øª, اÙÙØ§Ø®Ø±Ø©, Ù
ÙØ§Ø¨Ø³ اÙÙ
صÙ
Ù
Ù٠اÙÙ
ستعÙ
ÙØ©, Ø£Ø²ÙØ§Ø¡, ساعات, ØÙائب ÙØ¯, Ø£ØØ°ÙØ©, Ù
جÙÙØ±Ø§Øª, عتÙÙ, ÙØ³Ø§Ø¡, رجاÙ, Ù
ستعÙ
ÙØ©, إعادة Ø¨ÙØ¹, عبر Ø§ÙØ¥ÙØªØ±ÙØª","_dateCreate":"2024-10-14T12:47:57.0000000","_dateUpdate":"2026-09-21T19:22:28.6009432","_link":"brandfull-a-platform-for-buying-and-selling-luxury-pers
1652onal-belongings"}}}, ''); 1653 1654 if (!ko.dataFor(document.getElementById('UI_LayoutBody'))) 1655 ko.applyBindings(m_handlerPageHome, document.getElementById('UI_LayoutBody')); 1656 1657 doFinishPaintEarly(); 1658 }); 1659</script>
1659 1660 1661<div class="ko-pending"> 1662 1663<!-- ko if: doCheckUUID(m_handlerLayout.m_currentPage._id()) --> 1664<!-- ko run: doInjectStyleCss(m_handlerLayout.m_currentPage._styleCss()) --><!-- /ko --> 1665<!-- ko foreach: m_handlerLayout.m_currentPage._listDivModel(), childrenComplete: doApplyDivSlots --> 1666<div class="sectionShow" data-bind="class: $data._classCss(), 1667 attr:{'data-div': $data._id(), 'data-div-slot': doGetDivSlotName($data), 'data-div-epoch': m_divEpoch, 1668 'data-div-wait': doCheckDivWaitsForData($data) ? '1' : null}, 1669 style:{'display': doCheckDivPageAllowed($data) ? '' : 'none'}"> 1670 <!-- ko if: doCheckDivRender($data) --> 1671 <!-- ko template: { name: doGetDivTemplateName($data), data: $data} --><!-- /ko --> 1672 <!-- /ko --> 1673</div> 1674<!-- /ko --> 1675<!-- /ko --> 1676 1677</div> 1678 1679 1680 </div> 1681 </div> 1682 </div> 1683 <!-- START FOOTER --> 1684 1685<style> 1686 .codeInput { 1687 width: 32px; 1688 height: 32px; 1689 text-align: center; 1690 border: none; 1691 border-bottom: 1.5px solid #d2d2d2; 1692 margin: 0 10px; 1693 } 1694 1695 .codeInput:focus { 1696 border-bottom: 1.5px solid deepskyblue; 1697 outline: none; 1698 } 1699 1700 /* Shared content modal (#UI_slideModal): the body is Portal-authored HTML, so give the tags an 1701 admin actually types a sane default rather than leaving them at browser sizes. */ 1702 .slideModal-body { 1703 font-size: .9rem; 1704 line-height: 1.7; 1705 color: #374151; 1706 } 1707 1708 .slideModal-body ul, 1709 .slideModal-body ol { 1710 padding-inline-start: 18px; 1711 margin-bottom: 0; 1712 } 1713 1714 .slideModal-body p:last-child { 1715 margin-bottom: 0; 1716 } 1717</style> 1718 1719 1720 1721<!-- Sign in / sign up / forgot Password modal--> 1722<div id="UI_sessionModal" class="modal fade noPadding" tabindex="-1" role="dialog"> 1723 <div class="modal-dialog modal-dialog-centered" role="document"> 1724 <div class="modal-content"> 1725 <div class="modal-header bg-secondary"> 1726 <ul class="nav nav-tabs card-header-tabs" role="tablist"> 1727 <li class="nav-item"><a id="UI_signinTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" href="#signin-tab" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-unlocked me-2-Auto mt-n1"></i>تسجÙÙ Ø§ÙØ¯Ø®ÙÙ</a></li> 1728 <li class="nav-item"><a id="UI_signupTab" data-bind="click : doResetUserError" class="nav-link fw-medium" href="#signup-tab" data-bs-toggle="tab" role="tab" aria-selected="false"><i class="ci-user me-2-Auto mt-n1"></i>Ø§ÙØªØ³Ø¬ÙÙ</a></li> 1729 </ul> 1730 <button class="btn-close adjustBtnClose" style="" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button> 1731 </div> 1732 <div class="modal-body tab-content py-4"> 1733 <div id="UI_socialAccount" class="py-2"> 1734 <h3 class="d-inline-block align-middle fs-base fw-medium mb-2">٠ع ØØ³Ø§Ø¨ اجت٠اعÙ</h3> 1735 <div class="row"> 1736 <div id="UI_buttonGoogle" class="col-md-6 my-1" style="height: 40px;"></div> 1737 <div id="appleid-signin" class="col-md-6 my-1" style="height: 40px;" data-color="black" data-border="true" data-type="sign in"></div> 1738 </div> 1739 </div> 1740 <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate id="signin-tab"> 1741 <div class="mb-3"> 1742 <label class="form-label" for="UI_emailModal">Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ ÙØ§ÙÙØ§ØªÙ</label> 1743 <input autocomplete="username" id="UI_emailModal" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control" type="email" placeholder="[email protected]" required> 1744 <div data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div> 1745 <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div> 1746 </div> 1747 <div class="mb-3"> 1748 <label class="form-label" for="UI_passwordModal">ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© بÙ</label> 1749 <div class="password-toggle"> 1750 <input data-bind="value : m_currentStructUser._password, css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._password())}" class="form-control" type="password" id="UI_passwordModal" required autocomplete="current-password"> 1751 <label class="password-toggle-btn" aria-label="Show/hide password"> 1752 <input class="password-toggle-check" type="checkbox"><span class="password-toggle-indicator"></span> 1753 </label> 1754 </div> 1755 <div data-bind="style:{display:!doCheckEmptyData(m_errorStructUser._password())?'block':'none'} , text: m_errorStructUser._password" class="invalid-feedback"></div> 1756 </div> 1757 <div class="mb-3 d-flex flex-wrap justify-content-between"> 1758 <div class="mb-2" data-bind="class:'ar' == 'en'? 'form-check':'form-check-reverse'"> 1759 </div> 1760 <a class="fs-sm" href="#" onclick="doShowModal('UI_forgotModal');" data-bs-dismiss="modal" aria-label="Close">ÙÙ ÙØ³Ùت ÙÙÙ Ø© اÙÙ Ø±ÙØ±Ø</a> 1761 </div> 1762 <button data-bind="click : doSignUser" class="btn btn-primary btn-shadow d-block w-100" type="button">تسجÙÙ Ø§ÙØ¯Ø®ÙÙ</button> 1763 </form> 1764 1765 <form class="needs-validation tab-pane fade" autocomplete="off" novalidate id="signup-tab" novalidate> 1766 <p class="list-unstyled fs-md"> 1767 Ø£Ø¶Ù Ø¨Ø±ÙØ¯Ù Ø§ÙØ¥ÙÙØªØ±ÙÙÙ Ø£Ù ÙØ§ØªÙÙ Ø£Ø¯ÙØ§Ù Ø ÙØ³ÙØªÙ Ø¥Ø±Ø³Ø§Ù Ø±Ø³Ø§ÙØ© ÙÙØªØÙÙ. 1768 </p> 1769 <div class="mt-4 bg-white"> 1770 <div class="mb-3"> 1771 <div class="d-flex justify-content-between"> 1772 <div class="col-8"> 1773 <input autocomplete="tel" id="UI_quickPhoneInput" data-bind="value : m_currentStructUser._phone,valueUpdate: ['afterkeydown', 'input'], css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control " type="tel" lang=ar dir=rtl placeholder="رÙ٠اÙÙØ§ØªÙ" required> 1774 1775 <!-- ko if: !doCheckEmptyData(m_errorStructUser._phone()) --> 1776 <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div> 1777 <!-- /ko --> 1778 </div> 1779 <div class="col-3"> 1780 <select class="form-select" id="UI_quickCountry" data-bind="css:{'is-invalid':!doCheckEmptyData(m_errorUser.m_errorCountryModel())}, options: m_listCountry, value: m_currentUser._countryModel._id,optionsText: '_code', optionsValue: '_id'"> 1781 </select> 1782 </div> 1783 </div> 1784 <div class="d-flex text-center my-4 align-items-center"> 1785 <hr class="w-25 mx-auto">
1786 <span class="h6">Ø£Ù</span> 1787 <hr class="w-25 mx-auto"> 1788 </div> 1789 <input autocomplete="email" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email())}" class="form-control" type="email" placeholder="[email protected]" required> 1790 <!-- ko if: !doCheckEmptyData(m_errorStructUser._email()) --> 1791 <div id="UI_errorEmailModal" data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div> 1792 <!-- /ko --> 1793 </div> 1794 <div class=" mb-3" data-bind="class:'ar' == 'en'? 'form-check':'form-check-reverse'"> 1795 <input class="form-check-input" type="checkbox" id="UI_agreePage" value="" data-bind="attr:{checked: m_isAgree()}, value: m_isAgree(),click: $root.doSetAgree.bind($root)"> 1796 <label class="form-check-label" for="UI_agreePage"> 1797 <span>Ø£ÙØ§Ù٠عÙÙ Ø§ÙØ´Ø±ÙØ· ÙØ§ÙØ³ÙØ§Ø³Ø©</span> 1798 </label> 1799 1800 <a href="/About/TermsandCondition" target="_blank" enable-href="true" class="readMore">Ø§ÙØ±Ø£</a> 1801 </div> 1802 <!-- ko if: m_isAgree() --> 1803 <button data-bind="click : $root.doForgetPassword.bind($root, true)" class="btn btn-primary w-100" type="button">Ø§Ø±Ø³Ù Ø§ÙØ±Ù ز</button> 1804 <!-- /ko --> 1805 1806 </div> 1807 </form> 1808 1809 1810 1811 </div> 1812 </div> 1813 </div> 1814</div> 1815 1816 1817<div id="UI_forgotModal" class="modal fade" tabindex="-1" role="dialog"> 1818 <div class="modal-dialog modal-dialog-centered" role="document"> 1819 <div class="modal-content"> 1820 <div class="modal-header bg-secondary"> 1821 <ul class="nav nav-tabs card-header-tabs" role="tablist"> 1822 <li class="nav-item"><a id="UI_signinTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-help me-2-Auto mt-n1"></i>ÙØ³Ùت ÙÙÙ Ø© اÙÙ Ø±ÙØ±</a></li> 1823 </ul> 1824 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button> 1825 </div> 1826 <div class="modal-body tab-content py-4"> 1827 <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate> 1828 <p class="fs-md">Ù٠بتغÙÙØ± ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© ب٠ÙÙ Ø«ÙØ§Ø« Ø®Ø·ÙØ§Øª سÙÙØ©. ÙØ³Ø§Ø¹Ø¯ ÙØ°Ø§ ÙÙ Ø§ÙØÙØ§Ø¸ عÙ٠أ٠ا٠ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ¬Ø¯Ùدة.</p> 1829 <ol class="list-unstyled fs-md"> 1830 <li><span class="text-primary me-2-Auto">1.</span>Ø§Ù ÙØ£ عÙÙØ§Ù Ø¨Ø±ÙØ¯Ù Ø§ÙØ¥ÙÙØªØ±ÙÙÙ Ø£Ø¯ÙØ§Ù.</li> 1831 <li><span class="text-primary me-2-Auto">2.</span>Ø³ÙØ±Ø³Ù Ø¥ÙÙ٠ر٠زا Ù Ø¤ÙØªØ§ عبر Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ.</li> 1832 <li><span class="text-primary me-2-Auto">3.</span>Ø§Ø³ØªØ®Ø¯Ù Ø§ÙØ±Ù ز ÙØªØºÙÙØ± ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© ب٠عÙÙ Ù ÙÙØ¹Ùا Ø§ÙØ¢Ù Ù.</li> 1833 </ol> 1834 <div class="py-2 mt-4"> 1835 <div class="mb-3"> 1836 <input autocomplete="email" id="UI_popuEmailInput" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control" type="email" placeholder="[email protected]" required> 1837 <!-- ko if: !doCheckEmptyData(m_errorStructUser._email()) --> 1838 <div data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div> 1839 <!-- /ko --> 1840 <div class="d-flex text-center my-4 align-items-center"> 1841 <hr class="w-25 mx-auto">
1842 <span class="h6">Ø£Ù</span> 1843 <hr class="w-25 mx-auto"> 1844 </div> 1845 <div class="d-flex justify-content-between"> 1846 <div class="col-8"> 1847 <input autocomplete="tel" id="UI_popuPhoneInput" data-bind="value : m_currentStructUser._phone, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._phone()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control " type="number" placeholder="رÙ٠اÙÙØ§ØªÙ" required> 1848 1849 </div> 1850 <div class="col-3"> 1851 <select class="form-select" id="UI_popupCountry" data-bind="css:{'is-invalid':!doCheckEmptyData(m_errorUser.m_errorCountryModel())}, options: m_listCountry, value: m_currentUser._countryModel._id,optionsText: '_code', optionsValue: '_id'"> 1852 </select> 1853 </div> 1854 </div> 1855 <!-- ko if: !doCheckEmptyData(m_errorStructUser._phone()) --> 1856 <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div> 1857 <!-- /ko --> 1858 </div> 1859 <button data-bind="click : $root.doForgetPassword.bind($root, false)" class="btn btn-primary w-100" type="button" data-bs-dismiss="modal" aria-label="Close">Ø§Ø±Ø³Ù Ø§ÙØ±Ù ز</button> 1860 </div> 1861 </form> 1862 </div> 1863 </div> 1864 </div> 1865</div> 1866 1867 1868<div id="UI_validationModal" class="modal fade" tabindex="-1" role="dialog"> 1869 <div class="modal-dialog modal-dialog-centered" role="document"> 1870 <div class="modal-content"> 1871 <div class="modal-header bg-secondary"> 1872 <ul class="nav nav-tabs card-header-tabs" role="tablist"> 1873 <li class="nav-item"><a id="UI_validationTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-key me-2-Auto mt-n1"></i>ÙÙÙ Ø© Ù Ø±ÙØ± Ø§ÙØªØÙÙ Ù Ù Ø§ÙØµØØ©</a></li> 1874 </ul> 1875 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button> 1876 </div> 1877 <div class="modal-body tab-content py-4"> 1878 <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate> 1879 <!-- ko if: !doCheckEmptyData(m_currentStructUser._email()) --> 1880 <p class="fs-md" data-bind="text: 'ÙØ±Ø¬Ù Ø§ÙØªØÙÙ Ù Ù Ø¨Ø±ÙØ¯Ù Ø§ÙØ¥ÙÙØªØ±ÙÙÙ' + ': (' + m_currentStructUser._email() + ')' "></p> 1881 <!-- /ko --> 1882 <!-- ko if: !doCheckEmptyData(m_currentStructUser._phone()) --> 1883 <p class="fs-md" data-bind="text: 'ÙØ±Ø¬Ù Ø§ÙØªØÙ٠٠٠رÙÙ ÙØ§ØªÙÙ' + ': (' + m_currentStructUser._phone() + ')' "></p> 1884 <!-- /ko --> 1885 <div class="mb-3"> 1886 <label class="form-label">Ø£Ø¯Ø®Ù Ø§ÙØ±Ù ز Ø§ÙØ®Ø§Øµ بÙ</label> 1887 <div class="form-control d-flex align-items-center justify-content-center" dir="ltr" id='UI_sessionCodeInputs' data-bind=" css:{'is-invalid': !m_isVerifyed()}"> 1888 <input class="codeInput" id="UI_sessionCode1" type="text" inputmode="numeric" maxlength="1" autocomplete="one-time-code" /> 1889 <input class="codeInput" id="UI_sessionCode2" type="text" inputmode="numeric" maxlength="1" /> 1890 <input class="codeInput" id="UI_sessionCode3" type="text" inputmode="numeric" maxlength="1" /> 1891 <input class="codeInput" id="UI_sessionCode4" type="text" inputmode="numeric" maxlength="1" /> 1892 </div> 1893 <!-- ko if: !doCheckEmptyData(m_errorStructUser._code()) --> 1894 <div id="UI_errorCodeModal" data-bind="text: m_errorStructUser._code" class="invalid-feedback"></div> 1895 <!-- /ko --> 1896 <!-- ko if: !doCheckEmptyData(m_errorStructUser._phone) --> 1897 <div id="UI_errorPhoneModal" data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div> 1898 <!-- /ko --> 1899 </div> 1900 <div class="text-center py-2 px-3" style=" display: flow-root;"> 1901 <button class="btn btn-sm btn-primary col-md-6" data-bind="click : $root.doSendCode.bind($root)" type="button">إرساÙ</button> 1902 </div> 1903 </form> 1904 </div> 1905 </div> 1906 </div> 1907</div> 1908 1909 1910<div id="UI_resetPasswordModal" class="modal fade" tabindex="-1" role="dialog"> 1911 <div class="modal-dialog modal-dialog-centered" role="document"> 1912 <div class="modal-content"> 1913 <div class="modal-header bg-secondary"> 1914 <ul class="nav nav-tabs card-header-tabs" role="tablist"> 1915 <li class="nav-item"><a id="UI_resetPasswordTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-key me-2-Auto mt-n1"></i>إعادة تعÙÙÙ ÙÙÙ Ø© اÙÙ Ø±ÙØ±</a></li> 1916 </ul> 1917 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button> 1918 </div> 1919 <div class="modal-body tab-content py-4"> 1920 <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate> 1921 <p>ÙÙ ÙÙ٠تغÙÙØ± ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© Ø¨Ù ÙØ£Ø³Ø¨Ø§Ø¨ Ø£Ù ÙÙØ© أ٠إعادة تعÙÙÙÙØ§ إذا ÙØ³ÙØªÙØ§.</p> 1922 <!-- ko if: !doCheckEmptyData(m_errorStructUser._token()) --> 1923 <div id="UI_errorToken" data-bind="text: m_errorStructUser._token" class="invalid-feedback"></div> 1924 <!-- /ko --> 1925 <!-- ko if: m_isSuccess()--> 1926 <p>ØªÙ ØªØØ¯ÙØ« ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© بÙ</p> 1927 <!-- /ko --> 1928 <!-- ko if : !m_isSuccess() --> 1929 <input class="d-none" type="text" autocomplete="username" tabindex="-1" aria-hidden="true" data-bind="value: m_currentStructUser._email"> 1930 <div class="mb-3"> 1931 <label class="form-label" for="UI_resetPasswordH
1931ashModal">ÙÙÙ Ø© اÙÙ Ø±ÙØ± Ø§ÙØ®Ø§ØµØ© بÙ</label> 1932 <input class="form-control" type="password" data-bind="value : m_currentStructUser._password, css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._password())}" id="UI_resetPasswordHashModal" required autocomplete="new-password"> 1933 <div id="UI_errorPasswordModal" data-bind="text: m_errorStructUser._password" class="invalid-feedback"></div> 1934 </div> 1935 <div class="mb-3"> 1936 <label class="form-label" for="UI_resetConfirmPasswordModal">تأÙÙØ¯ ÙÙÙ Ø© اÙÙ Ø±ÙØ±</label> 1937 <input data-bind="value : m_currentStructUser._confirmation, css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._confirmation())}" id="UI_resetConfirmPasswordModal" class="form-control" type="password" required autocomplete="new-password"> 1938 <div id="UI_errorConfirmPasswordModal" data-bind="text: m_errorStructUser._confirmation" class="invalid-feedback"></div> 1939 </div> 1940 <!-- /ko --> 1941 <button data-bind="click: $root.doUpdatePassword.bind($root)" class="btn btn-primary btn-shadow d-block w-100" type="button">ØÙظ</button> 1942 </form> 1943 </div> 1944 </div> 1945 </div> 1946</div> 1947 1948 1949<div id="UI_successRegisterModalPopUp" class="modal fade" tabindex="-1"> 1950 <div class="modal-dialog modal-dialog-centered" role="document"> 1951 <div class="modal-content border-0 rounded-4 overflow-hidden shadow-lg"> 1952 <div class="modal-header border-0 pb-0 px-4 pt-4"> 1953 <h5 class="modal-title fw-bold text-primary mb-0">تسجÙÙ!</h5> 1954 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 1955 </div> 1956 <div class="modal-body text-center px-4 pt-3 pb-4"> 1957 <div class="mx-auto mb-3 d-inline-flex align-items-center justify-content-center rounded-circle" 1958 style="width:96px; height:96px; background: rgba(var(--cz-primary-rgb), .08);"> 1959 <div class="d-inline-flex align-items-center justify-content-center rounded-circle" 1960 style="width:68px; height:68px; background: rgba(var(--cz-primary-rgb), .16);"> 1961 <i class="ci-check" style="font-size: 32px; color: rgba(var(--cz-primary-rgb));"></i> 1962 </div> 1963 </div> 1964 <p class="fw-bold mb-0" style="font-size:1.05rem; color:#1f2937;">ت٠تأÙÙØ¯ Ø¨ÙØ§ÙاتÙ.</p> 1965 </div> 1966 </div> 1967 </div> 1968</div> 1969 1970<div id="UI_popUpNewsLetterSubmit" class="modal fade" tabindex="-1"> 1971 <div class="modal-dialog modal-dialog-centered" role="document"> 1972 <div class="modal-content border-0 rounded-4 overflow-hidden shadow-lg"> 1973 <div class="modal-header border-0 pb-0 px-4 pt-4"> 1974 <h5 class="modal-title fw-bold text-primary mb-0">Ø§ÙØ±Ø³Ø§ÙÙ Ø§ÙØ§Ø®Ø¨Ø§Ø±ÙÙ!</h5> 1975 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 1976 </div> 1977 <div class="modal-body text-center px-4 pt-3 pb-4"> 1978 <div class="mx-auto mb-3 d-inline-flex align-items-center justify-content-center rounded-circle" 1979 style="width:96px; height:96px; background: rgba(var(--cz-primary-rgb), .08);"> 1980 <div class="d-inline-flex align-items-center justify-content-center rounded-circle" 1981 style="width:68px; height:68px; background: rgba(var(--cz-primary-rgb), .16);"> 1982 <i class="ci-check" style="font-size: 32px; color: rgba(var(--cz-primary-rgb));"></i> 1983 </div> 1984 </div> 1985 <p class="fw-bold mb-0" style="font-size:1.05rem; color:#1f2937;">ت٠ØÙظ Ø¬ÙØ© Ø§ÙØ§ØªØµØ§Ù.</p> 1986 </div> 1987 </div> 1988 </div> 1989</div> 1990 1991 1992<div id="UI_slideModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
1993 <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document"> 1994 <div class="modal-content"> 1995 <div class="modal-header bg-secondary"> 1996 <ul class="nav nav-tabs card-header-tabs" role="tablist"> 1997 <li class="nav-item"><a class="nav-link fw-medium active" role="tab" aria-selected="true"><i class="ci-announcement me-2-Auto mt-n1"></i><span data-bind="text: m_currentSlideModal._title"></span></a></li> 1998 </ul> 1999 <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2000 </div> 2001 <div class="modal-body py-4"> 2002 <div class="slideModal-body textAlignAuto" data-bind="html: m_currentSlideModal._description"></div> 2003 2004 <!-- ko ifnot: doCheckEmptyData(m_currentSlideModal._link()) --> 2005 <a class="btn btn-primary d-block w-100 mt-3" href="#" enable-href="true" data-bind="attr:{href: m_currentSlideModal._link}"> 2006 <!-- ko if: doCheckEmptyData(m_currentSlideModal._button()) -->Ø£ÙØ«Ø±<!-- /ko --> 2007 <!-- ko ifnot: doCheckEmptyData(m_currentSlideModal._button()) --><span data-bind="text: m_currentSlideModal._button"></span><!-- /ko --> 2008 </a> 2009 <!-- /ko --> 2010 </div> 2011 </div> 2012 </div> 2013</div> 2014 2015 2016<!-- Cart Drawer Backdrop --> 2017<div id="UI_cartDrawerBackdrop" class="cart-drawer-backdrop" style="display:none" 2018 data-bind="visible: m_currentPopUpMessage._isVisible(), click: doCloseCartDrawer"></div> 2019 2020<!-- Cart Drawer --> 2021<div id="UI_cartDrawer" class="cart-drawer" 2022 data-bind="css: { 'cart-drawer-open': m_currentPopUpMessage._isVisible(), 'cart-drawer-short': m_drawerShortMode(), 'cart-drawer-alert-only': m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0 }"> 2023 2024 <!-- Drawer Header --> 2025 <!-- ko if: !(m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0) --> 2026 <div class="cart-drawer-header"> 2027 <h5 class="mb-0 fw-bold"> 2028 عربة Ø§ÙØªØ³ÙÙ 2029 </h5> 2030 <button class="btn-close" type="button" aria-label="Close" data-bind="click: doCloseCartDrawer"></button> 2031 </div> 2032 <!-- /ko --> 2033 2034 <!-- Added Item Notification --> 2035 <!-- ko if: m_currentPopUpMessage._popUpMessageType() >= 0 --> 2036 <div class="cart-drawer-alert" data-bind="css: doGetClassDrawerAlert()"> 2037 <div class="d-flex align-items-center gap-2"> 2038 <!-- ko if: m_currentPopUpMessage._pictureUrl() && !(m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 0) --> 2039 <img alt="" loading="lazy" class="rounded flex-shrink-0" style="width:40px; height:40px; object-fit:cover;" data-bind="attr:{ src: m_currentPopUpMessage._pictureUrl() }"> 2040 <!-- /ko --> 2041 <div class="flex-grow-1 font-size-12" data-bind="html: doGetDrawerAlertMessage()"></div> 2042 <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0 --> 2043 <button class="btn-close flex-shrink-0" type="button" style="font-size: 10px;" aria-label="Close" data-bind="click: doCloseCartDrawer"></button> 2044 <!-- /ko --> 2045 </div> 2046 <!-- ko if: m_currentPopUpMessage._hasCouponShipment() --> 2047 <div class="shipteaser shipteaser-sm mt-2" data-bind="css: { 'shipteaser-done': !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() == 100 }" > 2048 <span class="shipteaser-icon"><i class="ci-delivery flipAuto"></i></span> 2049 <div class="shipteaser-body"> 2050 <!-- ko if: m_currentPopUpMessage._hasPartialShipmentDiscount() --> 2051 <p class="shipteaser-text" data-bind="html: doGetShipmentTeaserMessage()"></p> 2052 <!-- /ko --> 2053 2054 <!-- ko if: !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() != 100 --> 2055 <p class="shipteaser-text">شراء <span class="shipteaser-value" data-bind="text: m_currentPopUpMessage._couponAmount()"></span> <span class="shipteaser-value" data-bind="text: doGetCurrentCurrency()"></span> اÙÙ Ø²ÙØ¯ ÙÙØØµÙ٠عÙÙÙ <strong>Ø´ØÙ ٠جاÙÙ</strong></p> 2056 <!-- /ko --> 2057 2058 <!-- ko if: !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() == 100 --> 2059 <p class="shipteaser-text">خد٠ة Ø§ÙØ´ØÙ اÙ٠جاÙÙ</p> 2060 <!-- /ko --> 2061 2062 <!-- ko if: m_currentPopUpMessage._drawLine() != 100 --> 2063 <div class="shipteaser-track" role="progressbar" aria-label="Free shipping progress"> 2064 <div class="shipteaser-fill" data-bind="style:{'width': m_currentPopUpMessage._drawLine()+'%'}"></div> 2065 </div> 2066 <!-- /ko --> 2067 </div> 2068 </div> 2069 <!-- /ko --> 2070 </div> 2071 <!-- /ko --> 2072 2073 <!-- Drawer Body - Cart Items --> 2074 <div class="cart-drawer-body"> 2075 <!-- ko if: m_currentCart._listCartDetailModel().length != 0 --> 2076 <div data-bind="foreach: { data: m_showCartDrawer() ? doGetFilterCart() : [] }"> 2077 <div class="cart-drawer-item"> 2078 <div class="d-flex gap-2 align-items-start"> 2079 <div class="flex-shrink-0 position-relative"> 2080 <a class="cart-drawer-item-img d-block" enable-href="false" data-bind="attr:{href: doGetLinkObject($data._objectModel)}"> 2081 <img loading="lazy" data-bind="attr:{ src: doGetDefaultPictureByObject($data._objectModel, true), alt: $data._objectModel._name }"> 2082 </a> 2083 <button class="cart-drawer-item-remove" 2084 data-bind="click: $root.doRemoveCartDetail.bind($root, $data)" 2085 type="button" aria-label="Remove"> 2086 <i class="ci-trash"></i> 2087 </button> 2088 </div> 2089 <div class="flex-grow-1" style="min-width:0;"> 2090 <a enable-href="true" class="cart-drawer-item-title" data-bind="text: $data._objectModel._name, attr:{href: doGetLinkObject($data._objectModel)}"></a> 2091 <div class="d-flex justify-content-between align-items-center mt-1"> 2092 <div class="text-accent fw-bold" data-bind="html: $root.doGetHtmlCartDetailPrice($data, true, true)"></div> 2093 <!-- ko if: $data._cartDetailType() != CartDetailTypeEnum.FromBundle --> 2094 <!-- ko if: $data._objectModel._objectSection() != ObjectSectionEnum.GiftCard && $data._objectModel._objectSection() != ObjectSectionEnum.Service --> 2095 <div class="count-input count-input-xs rounded-pill flex-shrink-0"> 2096 <button type="button" class="btn btn-icon" data-bind="click: $root.doSetQuantity.bind($root, $data, QuantityActionEnum.Remove)">
2097 <span class="fw-bold">â</span> 2098 </button> 2099 <input autocomplete="off" type="number" class="form-control text-center" readonly="true" data-bind="value: $data._quantity"> 2100 <button type="button" class="btn btn-icon" data-bind="click: $root.doSetQuantity.bind($root, $data, QuantityActionEnum.Add)"> 2101 <span class="fw-bold">+</span> 2102 </button> 2103 </div> 2104 <!-- /ko --> 2105 <!-- /ko --> 2106 </div> 2107 <!-- ko if: $data._objectModel._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.Preserved --> 2108 <div class="cart-drawer-item-preorder d-flex align-items-center mt-1"> 2109 <i class="ci-truck flipAuto me-1-Auto" data-bind="css:{'icon-flip-horizontal': doGetCulture() =='en'}"></i> 2110 <!-- ko if: doGetCountryShortNameByCurrentCompany() == 'sa' --> 2111 <span data-bind="text: doFormatPreserved($data._objectModel._objectStockModel._datePreserved(), 15, doGetCulture())"></span> 2112 <!-- /ko --> 2113 <!-- ko if: doGetCountryShortNameByCurrentCompany() == 'ae' --> 2114 <span data-bind="text: doFormatPreserved($data._objectModel._objectStockModel._datePreserved(), 7, doGetCulture())"></span> 2115 <!-- /ko --> 2116 </div> 2117 <!-- /ko --> 2118 </div> 2119 </div> 2120 </div> 2121 </div> 2122 <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 1 --> 2123 <div class="text-center py-2 border-top"> 2124 <button type="button" class="btn btn-link p-0 text-decoration-none fw-semibold font-size-12" 2125 style="color: rgba(var(--cz-primary-rgb));" 2126 data-bind="click: function(){ m_drawerShortMode(false); }, text: 'عرض Ø§ÙØ¬Ù ÙØ¹ ' + doGetCartCount() + ' اÙÙ ÙØªØ¬Ø§Øª'"> 2127 </button> 2128 </div> 2129 <!-- /ko --> 2130 <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 0 --> 2131 <div class="px-3 pb-2"> 2132 <a class="btn btn-sm d-block w-100 cart-drawer-checkout" 2133 href="/Checkout" enable-href="false" 2134 onclick="m_handlerSession.doCloseCartDrawer()" 2135 style="font-size: 12px; padding: 6px 12px;"> 2136 <i class="ci-card me-2-Auto fs-sm align-middle flipAuto"></i>Ø§ÙØ¯Ùع 2137 </a> 2138 </div> 2139 <!-- /ko --> 2140 <!-- /ko --> 2141 2142 <!-- ko if: m_currentCart._listCartDetailModel().length == 0 && !m_drawerShortMode() --> 2143 <div class="text-center py-5 px-3"> 2144 <i class="ci-card-bag" style="font-size:48px; color:#ccc;"></i> 2145 <h6 class="mt-3 text-muted">ÙØ§ ØªÙØ¬Ø¯ Ù ÙØªØ¬Ø§Øª ÙÙ Ø³ÙØ© Ø§ÙØªØ³ÙÙ Ø§ÙØ®Ø§ØµØ© بÙ.</h6> 2146 </div> 2147 <!-- /ko --> 2148 </div> 2149 2150 <!-- Drawer Footer --> 2151 <!-- ko if: m_currentCart._listCartDetailModel().length != 0 && !m_drawerShortMode() --> 2152 <div class="cart-drawer-footer pb-sm-5 pb-md-4"> 2153 <div class="d-flex justify-content-between align-items-start mb-3"> 2154 <div class="textAlignAuto"> 2155 <span class="text-accent fw-semibold">Ù Ø¬Ù ÙØ¹</span> 2156 <span class="text-muted font-size-10">(ØªØ´Ù Ù Ø¶Ø±ÙØ¨Ø© اÙÙÙÙ Ø© اÙÙ Ø¶Ø§ÙØ©)</span> 2157 <div class="fs-lg fw-bold" style="color: var(--cz-heading-color, #222);" data-bind="html: $root.doCalcPriceDynamic(m_currentCart._total(), true)"></div> 2158 </div> 2159 <!-- ko if: doGetCartTotalSaved() > 0 --> 2160 <div class="font-size-11 text-success fw-semibold textAlignAuto" style="margin-top: 4px;"> 2161 <i class="ci-star font-size-10"></i> ÙÙØ¯ Ø£ÙÙØ°Øª 2162 <div class="fs-sm fw-bold" data-bind="html: $root.doCalcPriceDynamic(doGetCartTotalSaved(), true)"></div> 2163 </div> 2164 <!-- /ko --> 2165 </div>
2166 <a class="btn d-block w-100 cart-drawer-checkout mb-2" href="/Checkout" enable-href="false" onclick="m_handlerSession.doCloseCartDrawer()"> 2167 <i class="ci-card me-2-Auto fs-base align-middle flipAuto"></i>Ø§ÙØ¯Ùع 2168 </a> 2169 </div> 2170 <!-- /ko --> 2171</div> 2172 2173 2174 2175 2176
2177<script type="application/javascript"> 2178 window.doRedirection = function () { 2179 if (window.location.pathname.indexOf("CreateSell") != -1) 2180 window.location = window.location.origin; 2181 } 2182 2183 // The notification dropdown renders a row per advertisement, and it is in the header of every 2184 // page â so the whole list was bound on every page load for a panel most visitors never open. 2185 // The markup only foreaches once this says so; the flag stays true afterwards, since a second 2186 // open should cost nothing. 2187 // 2188 // Filling it is deliberately separate from opening it. On desktop the panel is opened by CSS 2189 // alone (.dropdown:hover > .dropdown-menu in StyleCartzilla-Menu.css), which no click handler 2190 // ever sees â so hovering showed the panel with nothing in it. The wrapper calls this on 2191 // pointer enter, which is the earliest moment either path can start. 2192 window.doPrepareAdvertisement = function () { 2193 if (typeof m_handlerSession != "undefined") 2194 m_handlerSession.m_showAdvertisement(true); 2195 } 2196 2197 window.doOpenAdvertisement = function () { 2198 doPrepareAdvertisement(); 2199 doJsShowMenu('UI_menuWebAdvertisement'); 2200 } 2201 2202 // Mobile renders its own copy of the same list, inside a modal opened from the footer 2203 // toolbar. Same gate, same flag: the rows exist once either surface is asked for. 2204 window.doOpenAdvertisementModal = function () { 2205 doPrepareAdvertisement(); 2206 doShowModal('UI_userModalAdvertisement'); 2207 } 2208 2209 window.doOpenProfile = function () { 2210 if (doCheckUUID(m_handlerSession.m_currentUser._id())){ 2211 if(window.innerWidth <= 992) 2212 doShowModal('UI_menuUserMobile'); 2213 else { 2214 var el = document.querySelector('#UI_userSession .dropdown-menu'); 2215 if (el) el.classList.toggle('show'); 2216 } 2217 } 2218 else { 2219 doShowModal('UI_sessionModal'); 2220 } 2221 } 2222 2223 2224 doLoadScript(function () { 2225 doJsPasswordVisibilityToggle(); // wire modal password eye toggles (login/register/reset) 2226 const sessionInputs = ["UI_sessionCode1", "UI_sessionCode2", "UI_sessionCode3", "UI_sessionCode4"]; 2227 doInitCodeInput(sessionInputs, m_handlerSession.m_currentStructUser._code, m_handlerSession, m_handlerSession.doEventSendCode); 2228 2229 var googleClientID = '316328785783-gk72dnq33tchhr0kdrtidg7enq1arami.apps.googleusercontent.com'; 2230 var googleBtn = document.getElementById("UI_buttonGoogle"); 2231 if (googleClientID != "" && googleBtn) { 2232 if (window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth) 2233 { 2234 googleBtn.innerHTML = 2235 '<button class="btn btn-outline-dark w-100">Sign in with Google</button>'; 2236 googleBtn.onclick = async function () { 2237 try { 2238 // Native plugin reads serverClientId from google-services.json / 2239 // GoogleService-Info.plist; web doesn't need to pass it. 2240 var res = await window.Capacitor.Plugins.NativeAuth.signInWithGoogle({}); 2241 m_handlerSession.doGoogleCredentialResponse({ credential: res.idToken }); 2242 } catch (error) { 2243 console.log(error); 2244 } 2245 }; 2246 } 2247 // Web (browser) Google Sign-In client is heavy (~69 KiB). Don't load it at 2248 // page load â defer to the first time the session modal opens. See 2249 // window.doInitGoogleSignIn + the shown.bs.modal listener below. 2250 } 2251 2252 var m_gsiLoaded = false; 2253 window.doInitGoogleSignIn = function () { 2254 if (m_gsiLoaded) 2255 return; 2256 2257 var googleClientID = '316328785783-gk72dnq33tchhr0kdrtidg7enq1arami.apps.googleusercontent.com'; 2258 var googleBtn = document.getElementById("UI_buttonGoogle"); 2259 var isNative = window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth; 2260 2261 // Native wires googleBtn.onclick at page load and loads no web script â skip here. 2262 if (googleClientID == "" || !googleBtn || isNative) 2263 return; 2264 2265 m_gsiLoaded = true; 2266 doLoadScript(function () { 2267 try{ 2268 google.accounts.id.initialize({ 2269 client_id: googleClientID, 2270 callback: m_handlerSession.doGoogleCredentialResponse 2271 }); 2272 google.accounts.id.renderButton( 2273 googleBtn, 2274 { theme: "outline", size: "large" } // customization attributes 2275 ); 2276 } 2277 catch(error){ 2278 console.log(error); 2279 } 2280 2281 }, "https://accounts.google.com/gsi/client"); 2282 }; 2283 2284 // The Google and Apple origins used to be preconnected from the head of every page, where 2285 // they were two handshakes nobody spent on a visit that never opens this modal. Warm them 2286 // here instead, on `show` rather than `shown`: the two doInit* handlers below fetch the SDKs 2287 // on `shown`, so this puts the connection one modal fade (~150-300 ms) ahead of the request 2288 // instead of in the same tick, which is the whole point of a preconnect.
2289 var m_signInWarmed = false; 2290 function doWarmSignInOrigins() { 2291 if (m_signInWarmed) 2292 return; 2293 m_signInWarmed = true; 2294 2295 var origins = ["https://accounts.google.com", "https://appleid.cdn-apple.com"]; 2296 for (var w = 0; w < origins.length; w++) { 2297 var hint = document.createElement("link"); 2298 hint.rel = "preconnect"; 2299 hint.href = origins[w]; 2300 hint.crossOrigin = "anonymous"; 2301 document.head.appendChild(hint); 2302 } 2303 } 2304 2305 var sessionModalEl = document.getElementById("UI_sessionModal"); 2306 if (sessionModalEl) 2307 sessionModalEl.addEventListener("show.bs.modal", doWarmSignInOrigins); 2308 if (sessionModalEl) 2309 sessionModalEl.addEventListener("shown.bs.modal", window.doInitGoogleSignIn); 2310 2311 var appleClientID = 'com.root.login.brandfull'; 2312 var appleBtn = document.getElementById("appleid-signin"); 2313 if (appleClientID != "" && appleBtn) { 2314 var capPlatform = (window.Capacitor && window.Capacitor.getPlatform) ? window.Capacitor.getPlatform() : ""; 2315 var isNative = (capPlatform === "ios" || capPlatform === "android") 2316 && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth; 2317 2318 if (isNative) { 2319 // iOS: ASAuthorization (bundle ID is the audience â pass {}). 2320 // Android: Custom Tab to appleid.apple.com, deep-link back via the 2321 // intent-filter on blendshome.com/auth/android. 2322 appleBtn.innerHTML = 2323 '<button class="btn btn-dark w-100">Sign in with Apple</button>'; 2324 appleBtn.onclick = async function () { 2325 try { 2326 var args = (capPlatform === "android") 2327 ? { clientId: appleClientID, redirectUri: 'https://brandfull.com/auth/android' } 2328 : {}; 2329 var res = await window.Capacitor.Plugins.NativeAuth.signInWithApple(args); 2330 m_handlerSession.doAppleCredentialResponse(res.idToken); 2331 } catch (error) { 2332 console.log(error); 2333 } 2334 }; 2335 } 2336 // Web Apple Sign-In JS deferred to first modal open â see window.doInitAppleSignIn. 2337 } 2338 2339 var m_appleLoaded = false; 2340 window.doInitAppleSignIn = function () { 2341 if (m_appleLoaded) 2342 return; 2343 2344 var appleClientID = 'com.root.login.brandfull'; 2345 var appleBtn = document.getElementById("appleid-signin"); 2346 var capPlatform = (window.Capacitor && window.Capacitor.getPlatform) ? window.Capacitor.getPlatform() : ""; 2347 var isNative = (capPlatform === "ios" || capPlatform === "android") 2348 && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth; 2349 2350 // Native wires appleBtn.onclick at page load and loads no web script â skip here. 2351 if (appleClientID == "" || !appleBtn || isNative) 2352 return; 2353 2354 m_appleLoaded = true; 2355 doLoadScript(function () { 2356 2357 AppleID.auth.init({ 2358 clientId: appleClientID, 2359 redirectURI: 'https://brandfull.com', 2360 scope: 'name email', 2361 usePopup: true, 2362 onSuccess: (response) => console.log('responseApple - response', response), 2363 onError: (error) => console.log('responseApple - error', error), 2364 }); 2365 2366 document.addEventListener('AppleIDSignInOnSuccess', (event) => { 2367 // Handle successful response. 2368 console.log('AppleIDSignInOnSuccess', event.detail.authorization.id_token); 2369 m_handlerSession.doAppleCredentialResponse(event.detail.authorization.id_token) 2370 }); 2371 2372 2373 // Listen for authorization failures. 2374 document.addEventListener('AppleIDSignInOnFailure', (event) => { 2375 // Handle error. 2376 console.log('AppleIDSignInOnFailure', event); 2377 }); 2378 }, "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"); 2379 }; 2380 2381 if (sessionModalEl) 2382 sessionModalEl.addEventListener("shown.bs.modal", window.doInitAppleSign
2382In); 2383 }) 2384</script>
2384 2385 2386 2387 2388<input autocomplete="off" style="visibility: hidden;display: none;" type="file" id="UI_addPicture" multiple accept="image/x-png,image/jpeg" /> 2389<div id="UI_uploadImageModal" class="modal" tabindex="-1" role="dialog" style="z-index: 100000;"> 2390 <div class="modal-dialog" style=" width: auto;"> 2391 <div class="modal-content"> 2392 <div class="modal-header"> 2393 <div class="modal-title h4"> تØÙ ÙÙ Ø§ÙØµÙرة </div> 2394 <button type="button" class="btn border-0 bg-transparent p-0" data-bs-dismiss="modal" aria-label="غÙÙ" style="position: inherit; " data-bind="style:{'float': doGetCulture() == 'en'? 'right':'left'}"> 2395 <i class="ci-close"></i> 2396 </button> 2397 </div> 2398 <div class="modal-body pt-1 px-0 pb-0" id="UI_bodyImageModal"> 2399 <div id="image_demo"></div> 2400 </div> 2401 <div class="modal-footer py-1"> 2402 <div class="w-100" style="text-align: center;"> 2403 <button class="btn btn-primary crop_image py-1" id="crop_image"> 2404 <i class="ci-reduce"></i> 2405 Ø§Ø¶Ù ØµÙØ±Ø© 2406 </button> 2407 <button class="btn btn-secondary RotateRight py-1"> 2408 <i class="ci-compare"></i> 2409 Ø¯ÙØ±Ø§Ù 2410 </button> 2411 </div> 2412 </div> 2413 </div> 2414 </div> 2415</div> 2416 2417<style> 2418 /* Cropper look & feel â id-scoped so these win over micro-cropper.js's injected global rules */ 2419 #UI_uploadImageModal .modal-dialog { max-width: 480px; } 2420 #UI_uploadImageModal .modal-content { 2421 border: 0; 2422 border-radius: 18px; 2423 overflow: hidden; 2424 box-shadow: 0 24px 60px -14px rgba(17, 20, 28, .38); 2425 } 2426 #UI_uploadImageModal .modal-body { 2427 background: linear-gradient(180deg, #f6f7f9 0%, #eef0f3 100%); 2428 } 2429 #UI_uploadImageModal .croppie-container { padding: 16px 0 6px; } 2430 2431 /* darkened surround + rounded stage */ 2432 #UI_uploadImageModal .cr-boundary { 2433 border-radius: 14px; 2434 box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); 2435 } 2436 /* crop window: soft white frame + subtle ring, keep Croppie's giant darken shadow */ 2437 #UI_uploadImageModal .cr-viewport { 2438 border: 3px solid #fff; 2439 border-radius: 16px; 2440 box-shadow: 0 0 0 1px rgba(0, 0, 0, .18), 0 0 2000px 2000px rgba(17, 20, 28, .55); 2441 } 2442 2443 /* zoom slider */ 2444 #UI_uploadImageModal .cr-slider-wrap { width: 82%; margin: 8px auto 18px; } 2445 #UI_uploadImageModal .cr-slider { padding: 10px 0; } 2446 #UI_uploadImageModal .cr-slider::-webkit-slider-runnable-track { 2447 height: 6px; border-radius: 6px; background: rgba(17, 20, 28, .14); 2448 } 2449 #UI_uploadImageModal .cr-slider::-webkit-slider-thumb { 2450 height: 20px; width: 20px; margin-top: -7px; border-radius: 50%; 2451 background: var(--theme-color, #fd5631); border: 2px solid #fff; 2452 box-shadow: 0 2px 6px rgba(0, 0, 0, .3); transition: transform .15s ease; 2453 } 2454 #UI_uploadImageModal .cr-slider:active::-webkit-slider-thumb { transform: scale(1.15); } 2455 #UI_uploadImageModal .cr-slider::-moz-range-track { 2456 height: 6px; border-radius: 6px; background: rgba(17, 20, 28, .14); 2457 } 2458 #UI_uploadImageModal .cr-slider::-moz-range-thumb { 2459 height: 20px; width: 20px; border-radius: 50%; 2460 background: var(--theme-color, #fd5631); border: 2px solid #fff; 2461 box-shadow: 0 2px 6px rgba(0, 0, 0, .3); 2462 } 2463 2464 /* footer actions */ 2465 #UI_uploadImageModal .modal-footer { 2466 background: #fff; border-top: 1px solid rgba(0, 0, 0, .06); padding: 14px; 2467 } 2468 #UI_uploadImageModal .modal-footer .w-100 { 2469 display: flex; justify-content: center; gap: 10px; 2470 } 2471 #UI_uploadImageModal .modal-footer .btn { 2472 border-radius: 12px; padding: .55rem 1.15rem; font-weight: 600; 2473 display: inline-flex; align-items: center; gap: .4rem; 2474 } 2475 #UI_uploadImageModal .modal-footer .btn i { font-size: 1.05rem; } 2476</style> 2477 2478
2479<script type="application/javascript"> 2480 2481 var image_crop = null; 2482 var image_handler = null; 2483 var image_id = null; 2484 var image_name = null; 2485 var image_param = null; 2486 var image_input = null; 2487 var image_object = null; 2488 var image_folder = null; 2489 var image_index = 0; 2490 var _cropperLoaded = false; 2491 2492 // Lazy-load micro-cropper.js on first use 2493 function doLoadCropper() { 2494 return new Promise(function (resolve) { 2495 if (_cropperLoaded || typeof Croppie !== 'undefined') { _cropperLoaded = true; resolve(); return; } 2496 var s = document.createElement('script'); 2497 // Versioned like every other asset. This one builds its own
2497<script> instead of 2498 // going through doLoadScript, so it does not inherit the cache-busting there and 2499 // a deploy would keep serving the previously cached copy. 2500 s.src = 'https://cdn.brandfull.com/_Js/micro-cropper.js?v=639260136226636726'; 2501 s.onload = function () { _cropperLoaded = true; resolve(); }; 2502 document.head.appendChild(s); 2503 }); 2504 } 2505 2506 document.getElementById("UI_addPicture").addEventListener('change', function () { 2507 doShowModal('UI_uploadImageModal'); 2508 2509 image_input = document.getElementById("UI_addPicture"); 2510 image_index = image_input.files.length - 1; 2511 doLoadCropper().then(function () { 2512 doInitImageTool(image_input, image_object._dimension(), null, image_object._order(), null); 2513 }); 2514 }); 2515 2516 document.getElementById("UI_uploadImageModal").addEventListener('hidden.bs.modal', function() { 2517 document.getElementById("UI_addPicture").value = ''; 2518 }); 2519 2520 var m_currentPicture = null; 2521 window.doOpenCropper = function (handler, folder, item) { 2522 image_handler = handler; 2523 image_folder = folder; 2524 image_object = item; 2525 doLoadCropper().then(function () { 2526 if (item._binary()) { 2527 doShowModal('UI_uploadImageModal'); 2528 doInitImageTool(document.getElementById("UI_addPicture"), item._dimension(), item._binary(), item._order(), item._name()); 2529 } 2530 else if (item._name()) { 2531 doShowModal('UI_uploadImageModal'); 2532 doInitImageTool(document.getElementById("UI_addPicture"), item._dimension(), image_folder + '/' + item._name(), item._order(), item._name()); 2533 } 2534 else 2535 document.getElementById("UI_addPicture").click(); 2536 }); 2537 } 2538 2539 function doInitImageTool(input, dimension, imagepath = null, entityId = null, entityName = null) { 2540 var image_demo = document.querySelector('#image_demo'); 2541 image_id = entityId; 2542 image_name = entityName; 2543 image_input = input; 2544 image_param = doGetParamPicture(dimension); 2545 if (image_crop != null) 2546 image_crop.destroy(); 2547 2548 var xW = image_param.size.width / Math.max(image_param.size.height, image_param.size.width); 2549 image_param.viewport.width = image_param.viewport.width * xW; 2550 var xH = image_param.size.height / Math.max(image_param.size.height, image_param.size.width); 2551 image_param.viewport.height = image_param.viewport.height * xH; 2552 image_crop = new Croppie(image_demo, { 2553 showZoomer: true, 2554 enableResize: false, 2555 enableOrientation: true, 2556 enforceBoundary: true, 2557 mouseWheelZoom: true, 2558 enableExif: true, 2559 viewport: image_param.viewport, 2560 boundary: image_param.boundary 2561 }); 2562 2563 var reader = new FileReader(); 2564 reader.onload = function (event) { 2565 image_crop.bind({ 2566 url: event.target.result, 2567 }).then(function () { 2568 image_crop.setZoom(0); 2569 }); 2570 }; 2571 2572 if (imagepath != null) { 2573 var base64Rejex = /^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i; 2574 var isBase64Valid = base64Rejex.test(imagepath); 2575 if (isBase64Valid) { 2576 var url = "data:image/png;base64," + imagepath; 2577 var byteString = atob(url.split(',')[1]); 2578 var ab = new ArrayBuffer(byteString.length); 2579 var ia = new Uint8Array(ab); 2580 for (var i = 0; i < byteString.length; i++) { 2581 ia[i] = byteString.charCodeAt(i); 2582 } 2583 var blob = new Blob([ab], { type: image_param.format ? 'image/' + image_param.format : 'image/jpeg' }); 2584 reader.readAsDataURL(blob); 2585 } 2586 else { 2587 var request = new XMLHttpRequest(); 2588 request.open("POST", '/ConvertBinary?imageUrl=' + imagepath, true); 2589 request.onreadystatechange = function () { 2590 if (request.readyState == 4) 2591 { 2592 if (request.status == 200) { 2593 try { 2594 response = JSON.parse(request.responseText); 2595 var url = "data:image/png;base64," + response.imageData; 2596 var byteString = atob(url.split(',')[1]); 2597 var ab = new ArrayBuffer(byteString.length); 2598 var ia = new Uint8Array(ab); 2599 for (var i = 0; i < byteString.length; i++) { 2600 ia[i] = byteString.charCodeAt(i); 2601 } 2602 var blob = new Blob([ab], { type: image_param.format ? 'image/' + image_param.format : 'image/jpeg' });
2603 reader.readAsDataURL(blob); 2604 } 2605 catch (error) { response = request.responseText; } 2606 } 2607 } 2608 }; 2609 request.send(); 2610 } 2611 } 2612 else if (input.files.length != 0) { 2613 reader.readAsDataURL(input.files[image_index]); 2614 } 2615 } 2616 2617 2618 function doGetParamPicture(dimension) { 2619 var pSize = document.getElementById('UI_bodyImageModal').clientWidth; 2620 2621 var dimensions = dimension.split("x"); 2622 if (dimensions.length != 2) 2623 dimensions = dimension.split("X"); 2624 if (dimensions.length != 2) 2625 dimensions = dimension.split("*"); 2626 return { 2627 size: { width: dimensions[0], height: dimensions[1] }, 2628 viewport: { width: pSize * 0.75, height: pSize * 0.75, type: 'square' }, 2629 boundary: { width: pSize - 30, height: pSize - 30 } 2630 }; 2631 } 2632 function doClickCrop() { 2633 if (image_crop == null) 2634 return; 2635 2636 image_crop.result({ 2637 type: 'canvas', 2638 size: image_param.size, 2639 format: image_param.format ? image_param.format : "jpeg", 2640 quality: image_param.quality ? image_param.quality.value : 0.5 2641 }).then(function (response) { 2642 var size = response.length / (1024 * 1024); 2643 if (response && size < 4) 2644 { 2645 image_object = image_handler.doAddImage(image_input ? image_input.id : null, image_id, image_name, response.split(";base64,")[1], response.split(";base64,")[0].split("/")[1]); 2646 if (image_index != 0 && image_object != null && image_object != undefined) { 2647 image_index = image_index - 1; 2648 setTimeout(doInitImageTool.bind(null, image_input, image_object._dimension(), null, image_object._order(), null), 250); 2649 } 2650 else 2651 doHideModal('UI_uploadImageModal'); 2652 } 2653 }); 2654 } 2655 function doClickRotateRight() { 2656 if (image_crop != null) 2657 image_crop.rotate(90); 2658 } 2659 2660 document.querySelector("#crop_image").removeEventListener('click', doClickCrop); 2661 document.querySelector('#crop_image').addEventListener('click', doClickCrop); 2662 2663 document.querySelector(".RotateRight").removeEventListener('click', doClickRotateRight); 2664 document.querySelector('.RotateRight').addEventListener('click', doClickRotateRight); 2665 2666</script>
2666 2667 2668 2669 2670 2671 2672 2673 2674 2675
2676<script type="application/javascript"> 2677 // Body lives in Tools/Cartzilla/Footer.ts -- the three app footers each carried their own 2678 // near-identical copy of it. 2679 // 2680 // Must go through doLoadScript: Footer.ts is compiled into script.min.js, which is fetched 2681 // asynchronously, so doInitLayoutFooter does not exist yet when this inline script parses. 2682 // Calling it bare threw "doInitLayoutFooter is not defined" on every page. doLoadScript is 2683 // defined by _LayoutScript, which _Layout renders well before this partial, and it is 2684 // idempotent -- the bundle is requested once and later callbacks fire immediately. 2685 doLoadScript(function () { doInitLayoutFooter(); }); 2686</script>
2686 2687 2688<!-- Footer--> 2689 2690 2691<footer id="UI_LayoutFooter" class="footer bg-secondary" style="visibility: hidden;"> 2692 2693 2694 2695 <div id="UI_social" class="bf-surfaceBand px-lg-3"> 2696 <div class="container d-flex flex-md-row flex-sm-column py-sm-3 py-md-2 py-lg-3"> 2697 <div class="col-md-6 col-12 text-center mx-auto"> 2698 <h3 class="pb-1 text-accent mb-2">Ø§ÙØ¶Ù Ø¥ÙÙ ÙØ´Ø±ØªÙا Ø§ÙØ¥Ø®Ø¨Ø§Ø±ÙØ© Ø§ÙØ¢Ù</h3> 2699 <p class="fs-sm d-sm-none text-white">تÙÙ٠آخر Ø§ÙØªØØ¯Ùثات ØÙÙ Ø§ÙØ¹Ø±Ùض Ø§ÙØªØ±ÙÙØ¬ÙØ© ÙÙ ÙØªØ¬Ø§ØªÙا</p> 2700 2701 </div> 2702 <div class="d-flex flex-wrap align-items-center col-md-6 col-12"> 2703 <div class="input-group flex-nowrap"> 2704 <i class="ci-mail position-absolute top-50 translate-middle-y text-muted fs-base ms-3-Auto zindex-10"></i> 2705 <input autocomplete="email" class="form-floating form-control rounded-start-Auto" type="email" data-bind="value : m_emailNewsletter" placeholder="Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ"> 2706 <button class=" btn btn-primary" type="button" data-bind="click : doSaveNewsletter"> 2707 ارس٠2708 </button> 2709 </div> 2710 <!-- ko if: !doCheckEmptyData(m_errorNewsletter()) --> 2711 <small class="text-danger" data-bind="text: m_errorNewsletter"></small> 2712 <!-- /ko --> 2713 <div class="subscription-status"></div> 2714 </div> 2715 </div> 2716 2717 </div> 2718 2719 <div class="p-lg-3 p-md-2 mb-2"> 2720 <div class="mx-auto px-1 row" style="max-width: 80rem;"> 2721 2722 <div id="UI_companyContact" class="col-md-4 col-12 order-sm-first"> 2723 2724 <div class="form-text text-black"> 2725 <div class="widget widget-light pb-2 mb-md-4"> 2726 <!-- ko if: !doCheckEmptyData(m_currentCompany._whatsappLink()) --> 2727 <a name="supportwhatsapp" class="btn-social bs-light bs-whatsapp me-1-Auto mb-1" href="#" aria-label="whatsapp" data-bind="attr:{href:m_currentCompany._whatsappLink}" target="_blank" enable-href="true" rel="noreferrer"> 2728 <i class="ci-whatsapp font-size-20"></i> 2729 </a> 2730 <!-- /ko --> 2731 <!-- ko if: !doCheckEmptyData(m_currentCompany._facebookLink()) --> 2732 <a name="supportfacebook" class="btn-social bs-light bs-facebook me-1-Auto mb-1" href="#" aria-label="facebook" data-bind="attr:{href:m_currentCompany._facebookLink}" target="_blank" enable-href="true" rel="noreferrer"> 2733 <i class="ci-facebook font-size-20"></i> 2734 </a> 2735 <!-- /ko --> 2736 <!-- ko if: !doCheckEmptyData(m_currentCompany._twitterLink()) --> 2737 <a name="supporttwitter" class="btn-social bs-light bs-twitter me-1-Auto mb-1" href="#" aria-label="twitter" data-bind="attr:{href:m_currentCompany._twitterLink}" target="_blank" enable-href="true" rel="noreferrer"> 2738 <i class="ci-twitter font-size-20"></i> 2739 </a> 2740 <!-- /ko --> 2741 <!-- ko if: !doCheckEmptyData(m_currentCompany._instagramLink()) --> 2742 <a name="supportinstagram" class="btn-social bs-light bs-instagram me-1-Auto mb-1" href="#" aria-label="instagram" data-bind="attr:{href:m_currentCompany._instagramLink}" target="_blank" enable-href="true" rel="noreferrer"> 2743 <i class="ci-instagram font-size-20"></i> 2744 </a> 2745 <!-- /ko --> 2746 <!-- ko if: !doCheckEmptyData(m_currentCompany._snapchatLink()) --> 2747 <a name="supportsnapchat" class="btn-social bs-light bs-facebook me-1-Auto mb-1" href="#" aria-label="snapchat" data-bind="attr:{href:m_currentCompany._snapchatLink}" target="_blank" enable-href="true" rel="noreferrer"> 2748 <i class="ci-snapchat font-size-20"></i> 2749 </a> 2750 <!-- /ko --> 2751 <!-- ko if: !doCheckEmptyData(m_currentCompany._tiktokLink()) --> 2752 <a name="supporttiktok" class="btn-social bs-light bs-facebook me-1-Auto mb
2752-1" href="#" aria-label="tiktok" data-bind="attr:{href:m_currentCompany._tiktokLink}" target="_blank" enable-href="true" rel="noreferrer"> 2753 <i class="ci-tiktok font-size-20"></i> 2754 </a> 2755 <!-- /ko --> 2756 </div> 2757 </div> 2758 2759 2760 <div class="d-grid col-12"> 2761 <div class="form-text text-white me-2-Auto"> 2762 <i class="ci-location"></i> 2763 <span data-bind="html: doGetAddress(m_currentCompany._addressModel, '</br>')"> 2764 </span> 2765 </div> 2766 <div class="d-flex flex-wrap text-white"> 2767 <div class="me-2-Auto widget-light"> 2768 <i class="ci-mail"></i> 2769 <a href="#" class="widget-list-link d-inline " data-bind="attr:{href: 'mailto:'+ m_currentCompany._addressModel._email()}" target="_blank" enable-href="true" rel="noreferrer"> 2770 <b data-bind="text:m_currentCompany._addressModel._email"></b> 2771 </a> 2772 </div> 2773 <div class="me-2-Auto widget-light widget-list-item"> 2774 <i class="ci-phone"></i> 2775 <a href="#" class="widget-list-link d-inline" data-bind="attr:{href: 'tel:'+ m_currentCompany._addressModel._phone()}" target="_blank" enable-href="true" rel="noreferrer"> 2776 <b data-bind="text:m_currentCompany._addressModel._phone"></b> 2777 </a> 2778 </div> 2779 </div> 2780 2781 </div> 2782 2783 </div> 2784 2785 2786 <div id="UI_companyInfo" class="col-md-4 col-12 px-md-0 mb-2 m-sm-3"> 2787 <div class=" row mt-n1 form-text text-black mb-1"> 2788 <div class="col-3 "> 2789 <a class="d-inline-block align-middle" href="#"> 2790 <!-- ko if: !doCheckEmptyData(m_currentCompany._pictureModel._name()) --> 2791 <img loading="lazy" width="72" height="40" class="d-block" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/company/'+ m_currentCompany._pictureModel._name()), title: m_currentCompany._name, alt: m_currentCompany._name}" alt="company"> 2792 <!-- /ko --> 2793 </a> 2794 </div> 2795 <div class="col-9"> 2796 <div class="form-text text-accent"> 2797 <strong class="font-size-16" data-bind="text: m_currentCompany._name()"></strong> 2798 </div> 2799 <div class="form-text text-white pb-2 mt-3"> 2800 <span class="" data-bind="text: m_currentCompany._description()"></span> 2801 2802 <div class="d-flex mt-sm-2" data-bind="foreach: { data: m_handlerLayout.m_listCategoryMenuDepartmentFooter, as: 'subCategory' }"> 2803 <a class="col-2" href="#" enable-href="false" data-bind="attr:{ href: doGetLinkLoadMenu (subCategory, 'About')}"> 2804 <!-- ko if: !doCheckEmptyData(subCategory._pictureName()) --> 2805 <img loading="lazy" class="p-1" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/category/'+subCategory._pictureName()), title:subCategory._name, alt:subCategory._name}" width="100%" height="100%" alt="category" /> 2806 <!-- /ko --> 2807 </a> 2808 </div> 2809 </div> 2810 </div> 2811 2812 </div> 2813 </div> 2814 2815 <div id="UI_companyLinks" class="col-md-4 col-12 mb-sm-5" style="display:flex; flex-wrap: wrap"> 2816 <!-- ko foreach: m_listCategoryMenuFooter --> 2817 <div class=" col-12 active footer-links " data-bind=" class: $root.m_listCategoryMenuFooter().length == 2? 'col-sm-6' : 'col-sm-4' ,attr:{'id': 'footing_'+ $index() }"> 2818 <div class="widget textAlignAuto"> 2819 <div class="widget widget-links widget-light mb-4"> 2820 <div class="h6 widget-title text-accent pb-1" data-bind="text: $data._name()"></div> 2821 <!-- ko if: $data._list().length!=0 --> 2822 <ul class="widget-list" data-bind="foreach: { data: $data._list(), as: 'subCategory' }"> 2823 <li class="widget-list-item"> 2824 <a class="widget-list-link" href="#" enable-href="false" data-bind="attr:{ href: doGetLinkLoadMenu (subCategory, 'About')}"> 2825 <!-- ko if: !doCheckEmptyData(subCategory._pictureName()) --> 2826 <i><img alt="" loading="lazy" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/category/'+subCategory._pictureName()), title:subCategory._name}" width="18" height="18" /></i> 2827 <!-- /ko -->
2828 <span data-bind="text: subCategory._name"></span> 2829 </a> 2830 </li> 2831 </ul> 2832 <!-- /ko --> 2833 </div> 2834 </div> 2835 </div> 2836 <!-- /ko --> 2837 </div> 2838 2839 </div> 2840 </div> 2841</footer> 2842 2843<!-- Back To Top Button--> 2844<a id="UI_topArraw" class="btn-scroll-top" onclick="doScrollToTop()"> 2845 <span class="btn-scroll-top-tooltip text-muted fs-sm me-2">أعÙÙ</span> 2846 <i class="btn-scroll-top-icon ci-arrow-up"></i> 2847</a> 2848 2849 2850<div id="UI_menuUserMobile" class="modal fade slide-up" tabindex="-1" role="dialog" aria-labelledby="UI_menuUserMobileLabel" aria-modal="true"> 2851 <div class="modal-dialog" role="document"> 2852 <div class="modal-content"> 2853 <div class="modal-header border-bottom"> 2854 <h5 class="modal-title fw-bold" id="UI_menuUserMobileLabel">ÙØ§Ø¦Ù Ø© اÙÙ ÙÙ Ø§ÙØ´Ø®ØµÙ</h5> 2855 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2856 </div> 2857 <div class="modal-body p-4"> 2858 <div class="widget widget-cart px-3 pt-2 pb-3 textAlignAuto"> 2859 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Profile" data-bs-dismiss="modal" aria-label="Close"> 2860 <i class="ci-user opacity-60 me-2-Auto"></i>اÙÙ ÙÙ Ø§ÙØ´Ø®ØµÙ 2861 </a> 2862 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Invoices" data-bs-dismiss="modal" aria-label="Close"> 2863 <i class="ci-basket opacity-60 me-2-Auto"></i>اÙÙÙØ§ØªÙر 2864 </a> 2865 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Supports" data-bs-dismiss="modal" aria-label="Close"> 2866 <i class="ci-help opacity-60 me-2-Auto"></i>ØªØ°Ø§ÙØ± 2867 </a> 2868 <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Messages" data-bs-dismiss="modal" aria-label="Close"> 2869 <i class="ci-message opacity-60 me-2-Auto"></i>رسائ٠2870 </a> 2871 2872 <div class="dropdown-divider"></div> 2873 <a class="dropdown-item d-flex align-items-center py-1" href="#" enable-href="false" data-bind="click: $root.doLogOut.bind($root, '/Account/LogOff?Value=https%3A%2F%2Fbrandfull.com%2F')" data-bs-dismiss="modal" aria-label="Close"> 2874 <i class="ci-sign-out opacity-60 me-2-Auto"></i>تسجÙÙ Ø§ÙØ®Ø±Ùج 2875 </a> 2876 </div> 2877 </div> 2878 </div> 2879 </div> 2880</div> 2881 2882 2883<div id="UI_userModalAdvertisement" class="modal fade slide-up" tabindex="-1" role="dialog" aria-labelledby="UI_userModalAdvertisementLabel" aria-modal="true"> 2884 <div class="modal-dialog" role="document"> 2885 <div class="modal-content overflow-hidden"> 2886 <div class="modal-header border-bottom"> 2887 <h5 class="modal-title fw-bold" id="UI_userModalAdvertisementLabel">إشعار</h5> 2888 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2889 </div> 2890 <div class="modal-body"> 2891 <div class="widget widget-cart pt-2 pb-0"> 2892 <div class="d-flex align-items-center justify-content-between"> 2893 <div class="col-md-10"> 2894 2895 <!-- ko if: m_handlerLayout.m_isViewMobile() --> 2896 <!-- ko if: m_enableNotifGrant() --> 2897 <button id="UI_notifGrant" class="btn d-flex align-content-between align-items-center font-size-10 p-1 " onclick="doGetPermissionNotification()"> 2898 <i class="ci-settings me-2-Auto font-size-14 "></i>
2899 <span class="form-check-label elide text-black fw-bolder heartbeat" for="UI_agreeWebPush"> 2900 ابÙÙ٠عÙÙ Ø§Ø·ÙØ§Ø¹ 2901 </span> 2902 </button> 2903 <!-- /ko --> 2904 <!-- ko if: m_enableNotifDenied() --> 2905 <div id="UI_notifDenied" class="d-flex align-content-between align-items-center font-size-10 p-1 "> 2906 <i class="ci-announcement me-2-Auto font-size-14 fw-bolder"></i> 2907 <span class="form-check-label elide text-danger fw-bolder heartbeat"> 2908 Ø§ÙØ¥Ø´Ø¹Ø§Ø±Ø§Øª Ù ØØ¬Ùبة. شغÙÙØ§ Ù٠إعدادات اÙÙ ØªØµÙØ ÙØªØØµÙ عÙÙ ØªÙØ¨ÙÙØ§Øª. 2909 </span> 2910 </div> 2911 <!-- /ko --> 2912 <!-- /ko --> 2913 </div> 2914 </div> 2915 2916 <div id="UI_notificationList" data-simplebar data-simplebar-auto-hide="false" style="overflow-x: hidden;max-height: 21rem;" data-bind="visible: m_listAdvertisement().length!=0, foreach: { data: m_showAdvertisement() ? m_listAdvertisement() : [] }"> 2917 <div class="border-bottom py-1 me-3-Auto d-flex justify-content-between border-danger" style=" border-bottom-style: dotted !important;" data-bs-dismiss="modal"> 2918 <label class="form-text elide w-75 pointer" data-bind="click: $root.doSetTaged.bind($root, $data, true), text:$data._subject()"></label> 2919 <b class="form-check-label textAlignReverse font-size-10 d-inline-block mb-n2 fw-light" data-bind="click: $root.doSetTaged.bind($root, $data, true), text: doCalcDateDifference(doCastFromUTC($data._dateCreate()))"></b> 2920 </div> 2921</div> 2922 2923 </div> 2924 2925 </div> 2926 </div> 2927 </div> 2928</div> 2929<div id="UI_footerMenu" class="handheld-toolbar position-fixed show" style="height: 3.5rem;"> 2930 <div class="d-table table-layout-fixed w-100 pt-1" style="height: 100%"> 2931 2932 <a name="footer-home" class="d-table-cell handheld-toolbar-item" href="/" rel="nofollow" enable-href="false" aria-label="go to home"> 2933 <span class="handheld-toolbar-icon"><i class="ci-home"></i></span> 2934 </a> 2935 <a name="footer-user" class="d-table-cell handheld-toolbar-item" aria-label="ÙØ§Ø¦Ù Ø© اÙÙ ÙÙ Ø§ÙØ´Ø®ØµÙ" href="javascript:void(0)" enable-href="false" rel="nofollow" listener="false" onclick="doOpenProfile()"> 2936 <span class="handheld-toolbar-icon"><i class="ci-user"></i></span> 2937 </a> 2938 2939 2940 <!-- ko if: doCheckUUID(m_currentUser._id()) --> 2941 <a name="footer-favorites" class="d-table-cell handheld-toolbar-item" aria-label="اÙÙ ÙØ¶ÙÙ" href="/Account/Favorites" rel="nofollow" enable-href="false"> 2942 <span class="handheld-toolbar-icon"><i class="ci-heart"></i></span> 2943 </a> 2944 2945 <a name="footer-notes" class="d-table-cell handheld-toolbar-item" aria-label="إشعار" href="javascript:void(0)" rel="nofollow" enable-href="false" listener="false" onclick="doOpenAdvertisementModal()"> 2946 <span class="handheld-toolbar-icon"> 2947 <!-- ko if: m_countAdvertisement() != 0 --> 2948 <span class="bg-danger font-size-10 text-white counterAdv" data-bind="text: m_countAdvertisement() > 99 ? '99+' : m_countAdvertisement()"></span> 2949 <!-- /ko --> 2950 <i class="ci-bell"></i> 2951 </span> 2952 </a> 2953 <!-- /ko --> 2954 2955 </div> 2956</div> 2957 2958 2959 2960 <!-- END FOOTER --> 2961 <div id="UI_preLoader" class="nav-progress" role="progressbar" aria-live="polite" 2962 style="display: none;" 2963 data-bind="visible: m_handlerLayout.m_customLoader()"> 2964 <span class="nav-progress-bar"></span> 2965 <span class="seo-hidden">تØÙ ÙÙ</span> 2966 </div> 2967 <!-- Google Tag Manager -->
2968<script> 2969 //we need it for GTMManager 2970 doLoadScript(function() { 2971 doSetThirdParty(window.dataLayer); 2972 }); 2973</script>
2973 2974<!-- End Google Tag Manager --> 2975<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 2975-2976
2975 2976<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2976GTM-PTJJCWLL
vendor: 83 bytes, line 2976
2976" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2977<!-- End Google Tag Manager (noscript) --> 2978 2979 2980 2981<noscript> 2982 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=602667531455664&ev=PageView&noscript=1" /> 2983</noscript> 2984<!-- End Meta Pixel Code --> 2985 <svg id="8dfd9ecb-4c59-4082-9d62-10717474add2.svg" style="display: none;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1124.14 1256.39"> 2986 <path class="cls-1" d="M699.62,1113.02h0c-20.06,44.48-33.32,92.75-38.4,143.37l424.51-90.24c20.06-44.47,33.31-92.75,38.4-143.37l-424.51,90.24Z"></path> 2987 <path class="cls-1" d="M1085.73,895.8c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.33v-135.2l292.27-62.11c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.27V66.13c-50.67,28.45-95.67,66.32-132.25,110.99v403.35l-132.25,28.11V0c-50.67,28.44-95.67,66.32-132.25,110.99v525.69l-295.91,62.88c-20.06,44.47-33.33,92.75-38.42,143.37l334.33-71.05v170.26l-358.3,76.14c-20.06,44.47-33.32,92.75-38.4,143.37l375.04-79.7c30.53-6.35,56.77-24.4,73.83-49.24l68.78-101.97v-.02c7.14-10.55,11.3-23.27,11.3-36.97v-149.98l132.25-28.11v270.4l424.53-90.28Z"></path> 2988</svg> 2989 2990 2991
2992<script type="application/javascript"> 2993 // What is left here is what is genuinely PER-REQUEST. m_jsonTranslate, jsonListCategory, 2994 // jsonListCompany and jsonListCountry have all moved to /InitData.js (HostController), because 2995 // none of them varies by anything but language: inlining them meant re-sending ~280 KB, the 2996 // category tree alone 270 KB of a 784 KB document, on every navigation and cached by nothing. 2997 // _LayoutScript requests that file first, ahead of the bundle, and the ready queue will not run a 2998 // callback until it has landed. 2999 // 3000 // Property writes onto GlobalSettingTranslateEnum. This one stays: it is resolved from the 3001 // request's companyID header, so it is not the same answer for two visitors on one deployment. 3002 // The body has to stay unevaluated until doSetEnumManager calls it -- GlobalSettingTranslateEnum 3003 // comes from /InitData.js along with the other 110 enums, and does not exist at this point in 3004 // the parse. (It was a script.min.js symbol until the enums moved; same answer either way.) 3005 function doApplySettingByCompany() { 3006 GlobalSettingTranslateEnum.PathCategoryPicture = "https://cdn.brandfull.com/Content/category/"; 3007GlobalSettingTranslateEnum.PathObjectTypePicture = "https://cdn.brandfull.com/Content/objecttype/"; 3008GlobalSettingTranslateEnum.PathObjectPicture = "https://cdn.brandfull.com/Content/object/"; 3009GlobalSettingTranslateEnum.PathPaymentMethodPicture = "https://cdn.brandfull.com/Content/paymentMethod/"; 3010GlobalSettingTranslateEnum.PathTrackerPicture = "https://cdn.brandfull.com/Content/tracker/"; 3011GlobalSettingTranslateEnum.PathShipmentMethodPicture = "https://cdn.brandfull.com/Content/shipmentMethod/"; 3012GlobalSettingTranslateEnum.PathCountryPicture = "https://cdn.brandfull.com/Content/country/"; 3013GlobalSettingTranslateEnum.BaseUrlAPI = "https://brandfullsapi.azurewebsites.net"; 3014GlobalSettingTranslateEnum.BaseUrl = "https://brandfull.com"; 3015GlobalSettingTranslateEnum.Take = "8"; 3016GlobalSettingTranslateEnum.CdnUrl = "https://cdn.brandfull.com"; 3017GlobalSettingTranslateEnum.RedirectUrlPaymentWeb = "https://brandfull.com/Invoice/Edit"; 3018GlobalSettingTranslateEnum.PathCompanyPicture = "https://cdn.brandfull.com/Content/company/"; 3019GlobalSettingTranslateEnum.TicketLifeTime = ""; 3020GlobalSettingTranslateEnum.AppName = "Brandfull"; 3021GlobalSettingTranslateEnum.PathSlidePicture = "https://cdn.brandfull.com/Content/slide/"; 3022GlobalSettingTranslateEnum.TakeObjectShop = "20"; 3023GlobalSettingTranslateEnum.PathReplayPicture = "https://cdn.brandfull.com/Content/replay/"; 3024GlobalSettingTranslateEnum.MessageServiceStatus = "true"; 3025GlobalSettingTranslateEnum.SmartPricingServiceStatus = ""; 3026GlobalSettingTranslateEnum.PathChatPicture = "https://cdn.brandfull.com/Content/chat/"; 3027GlobalSettingTranslateEnum.PathDetailPicture = "https://cdn.brandfull.com/Content/detail/"; 3028GlobalSettingTranslateEnum.PathColorPicture = "https://cdn.brandfull.com/Content/color/"; 3029GlobalSettingTranslateEnum.LimitAddCartQuantity = ""; 3030GlobalSettingTranslateEnum.MaketPlaceServiceStatus = "true"; 3031GlobalSettingTranslateEnum.PathDivPicture = "https://cdn.brandfull.com/Content/divTemplate/"; 3032GlobalSettingTranslateEnum.PathProfilePicture = "https://cdn.brandfull.com/Content/profile/"; 3033GlobalSettingTranslateEnum.PathMessagePicture = "https://cdn.brandfull.com/Content/message/"; 3034GlobalSettingTranslateEnum.PathSurveyPicture = "https://cdn.brandfull.com/Content/survey/"; 3035GlobalSettingTranslateEnum.PathInvoiceDetailStatusPicture = "https://cdn.brandfull.com/Content/invoiceDetailStatus/"; 3036 3037 } 3038</script>
3038 3039 3040 3041
3042<script id="Template_Empty" type="text/html"></script>
3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055
3056<script id="Template_ItemComponent_ObjectDefault" type="text/html"><div class="card product-card shadow-none" data-bind="class: $data.mode"><!--ko if : $data._listCategoryTop().length != 0 --><div class="badge p-0 d-flex flex-column gap-1"><!-- ko foreach: $data._listCategoryTop --><a class="bg-danger rounded-2 px-1 font-size-10" href="#" enable-href="false" data-bind=" 3057 html: doGenerateLabel($data._label()), 3058 style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()}, 3059 attr:{href: doGetLinkCategory($data), 'data-divID': $parent.divID }"></a><!-- /ko --></div><!-- /ko --><!--ko if : $data._deliveryType() == DeliveryTypeEnum.Wanted --><div class="position-sticky overflow-hidden " ><a class="card-img-top d-block h-100 overflow-hidden" href="javascript: void(0)" aria-label="product" enable-href="false" data-bind="css:{'card-img-bottom': $data.mode != ''}"><img loading="lazy" class="rounded" style="max-height: 100%; height: 100%; object-fit: cover;" data-bind="attr:{ title: $data._name, src: doGetDefaultPictureByObject($data, $data.pictureSize), loading: $data.isAboveFold ? 'eager' : 'lazy', fetchpriority: $data.isLcp ? 'high' : null}" alt="Product"></a></div><div class="card-body p-0" data-bind="css:{'mb-4': ($data.mode =='OnePicture' && m_handlerLayout.m_isViewMobile() == true)}"><a class="elide mb-1" href="javascript: void(0)" aria-label="stock" name="stock" enable-href="false" data-bind="text: $data._name"></a><p data-bind="text: $data._description"></p><!--ko if : $data._listCategoryBottom().length != 0 --><div class="d-flex flex-column"><!-- ko foreach: $data._listCategoryBottom --><a class="font-size-10 elide w-100" href="#" aria-label="category" name="category" enable-href="false" data-bind=" 3060 html: doGenerateLabel($data._label()), 3061 style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()}, 3062 attr:{href: doGetLinkCategory($data) , 'data-divID': $parent.divID}"></a><!-- /ko --></div><!-- /ko --></div><!-- /ko --><!--ko if : $data._deliveryType() != DeliveryTypeEnum.Wanted --><button class="btn-wishlist btn-sm " type="button" title="Ø£ÙØ§ Ø£ØØ¨" data-bind="style: { color: $data._likeCount()!=0 ? 'red' : '' }, click: m_handlerLayout.doSaveLike.bind(m_handlerLayout, $data)"><i class="fs-6" data-bind="class: $data._hasLike() ? 'ci-heart-filled ':'ci-heart', css:{'hasLike':$data._hasLike()==true}, "></i></button><div class="position-sticky overflow-hidden" ><a class="card-img-top d-block h-100 overflow-hidden" href="#" aria-label="product" enable-href="false" data-bind="css:{'card-img-bottom': $data.mode != ''}, attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"><img loading="lazy" class="h-100" data-bind="attr:{ title: $data._name, src: doGetDefaultPictureByObject($data, $data.pictureSize), loading: $data.isAboveFold ? 'eager' : 'lazy', fetchpriority: $data.isLcp ? 'high' : null}" alt="Product"></a><div class="d-flex w-100 mb-n3 zindex-10" style=" position: absolute; bottom: 42px;"><!--ko if : $data._objectStockModel._enableBidding() && $data._objectStockModel._enableTimerBidding() --><div class="countdown w-100 mb-0 rounded-bottom px-1 justify-content-start align-items-baseline" style="height:32px;" data-bind="attr:{id: doGetTimerID($data._objectStockModel, 'UI_timerBidding')}, childrenComplete : doJsCountDown(doGetTimerID($data._objectStockModel, 'UI_timerBidding'), true, $data._objectStockModel)"><div class="countdown-label w-100 text-light m-0 font-size-10" style="height:10px" ></div><div class="countdown-days w-25 countdown-value text-light bold m-0 font-size-16" ></div><div class="countdown-hours w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="countdown-minutes w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="countdown-seconds w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="hide countdown-time w-100 countdown-value text-light m-0 font-size-16"></div></div><!-- /ko --></div><div class="fs-sm w-100 px-1 d-flex align-items-center justify-content-between" style="height: 26p
3062x"><div class="float-start mt-1" data-bind="foreach: $data._listColorSimiler"><a href="#" aria-label="color" name="color" class="colorSimiler" enable-href="false" data-bind="title: doGetDefaultNameColor($data), attr:{href: doGetLinkObject($data), 'data-divID':$parent.divID, 'id':'UI_sc_' +$parent._code()+'_'+$data._code()}"><label class="form-option-label rounded-circle" data-bind="attr:{'for':'UI_sc_' +$parent._code()+'_'+$data._code()}"><span class="form-option-color rounded-circle" data-bind="title: $data._objectName(), style:{'background': '-webkit-linear-gradient(45deg, ' + $data._hexName() + ' 60%, ' + doGetDefaultHexColor($data) + ' 40%)'}"></span></label></a></div><!--ko if : doCheckUUID($data._sizeModel._id()) --><a href="#" aria-label="size" name="size" class="float-end" enable-href="true" data-bind="text: $data._sizeModel._name(), attr:{href: doGetURL('Shop/search/') + $data._sizeModel._name(), 'data-divID':$data.divID}"></a><!-- /ko --></div></div><div class="card-body p-0" data-bind="css:{'mb-4': ($data.mode =='OnePicture' && m_handlerLayout.m_isViewMobile() == true)}"><div class="product-title fs-sm"><div class="brandRow"><!--ko with : doGetCategoryByType($data, CategoryTypeEnum.Brand) --><a class="brandRow-name fw-semibold text-decoration-none" href="#" aria-label="brand" name="brand" enable-href="false" 3063 data-bind="text: $data._name, attr:{ href: doGetLinkCategory($data), 'data-divID': $parent.divID }"></a><!-- /ko --><!--ko if : $data._sellMode() != SellModeEnum.SellWithOtherOnly && $data._objectStockModel._priceSale() != 0 && $data._objectStockModel._objectStockStatus() != ObjectStockStatusEnum.OutStock && $data._objectStockModel._objectStockStatus() != ObjectStockStatusEnum.Solded --><a class="btn-cart-inline pointer" href="#" name="addcart" aria-label="buy" title="buy" data-bind="click: m_handlerSession.doAddCart.bind(m_handlerSession, $data, 1, null, null, $data.divID)"><i class="ci-card-bag flipAuto"></i></a><!-- /ko --></div><a class="elide mb-1" href="#" aria-label="product" name="product" enable-href="false" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"><h2 class="font-size-14" data-bind="text: $data._name"></h2></a><div class="d-flex justify-content-between text-accent rounded-1" style="min-height: 2.5rem;"><!--ko if : $data._objectStockModel._priceSale() !=0 --><div class="text-accent sale w-100" style="display: flex;flex-wrap: wrap; align-items: baseline; column-gap: .4rem;" data-bind="html: m_handlerLayout.doHtmlPriceByCurrency($data, false, 0, true)"></div><!-- /ko --><!--ko if : $data._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.Solded --><a href="#" aria-label="Solded" name="Solded" class="btn btn-sm px-2 py-1 pointer bg-black text-white font-size-10" style="height: fit-content;" title="Re-Buy" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"> 3064 ٠باع 3065 </a><!-- /ko --><!--ko if : $data._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.OutStock --><a href="#" aria-label="OutStock" name="OutStock" class="btn btn-sm px-2 py-1 pointer bg-danger text-white font-size-10" style="height: fit-content;" title="Re-Buy" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"> 3066 ÙØ§ ÙÙØ¬Ø¯ ٠خزÙÙ 3067 </a><!-- /ko --></div></div><!--ko if : $data._listCategoryBottom().length != 0 --><div class="d-flex flex-column"><!-- ko foreach: $data._listCategoryBottom --><a class="font-size-10 elide w-100" href="#" aria-label="category" name="category" enable-href="false" data-bind=" 3068 html: doGenerateLabel($data._label()), 3069 style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()}, 3070 attr:{href: doGetLinkCategory($data), 'data-divID':$parent.divID }"></a><!-- /ko --></div><!-- /ko --></div><!-- /ko --></div></script>
3070<script id="Template_ItemComponent_AdvanceAuto" type="text/html"><!--ko if : doGetSlideTitleVisible($data) || doGetSlideDescriptionVisible($data) || doGetSlideButtonVisible($data)--><div class="AdvanceAuto" data-bind="class: doGetSlideDescriptionVisible($data) ? '':'mb-3'"><div class="AdvanceAuto_lead"><div class="bf-sectionHead"><span class="h4" data-bind="visible: doGetSlideTitleVisible($data), text: $data._title"></span></div><p class="AdvanceAuto_note text-muted font-size-12" data-bind="visible: doGetSlideDescriptionVisible($data), html: $data._description, style:{color: $data._descriptionHex}"></p></div><!--ko if : doGetSlideButtonVisible($data)--><a class="bf-viewAll" href="#" aria-label="subdiv" name="subdiv" enable-href="true" data-bind="attr:{ href: doGetURL($data._link()), 'aria-label':$data._title}"><span data-bind="text: $data._button"></span><i data-bind="class: doGetCulture() =='en'? 'ci-arrow-right':'ci-arrow-left' "></i></a><!-- /ko --></div><!-- /ko --></script>
3070 3071<style> 3072 .product-card.shadow-none { 3073 box-shadow: unset !important; 3074 background-color: transparent; 3075 } 3076 3077 [lang="en"] .magicFlex a:last-of-type { 3078 margin-left: auto !important; 3079 } 3080 3081 [lang="ar"] .magicFlex a:last-of-type { 3082 margin-right: auto !important; 3083 } 3084 3085 .BigPicture , .BigPicture .position-sticky{ 3086 height: 100%; 3087 } 3088 3089.brandRow { 3090 display: flex; 3091 align-items: center; 3092 gap: .35rem; 3093 margin-bottom: .25rem; 3094 min-height: 1.75rem; 3095 } 3096 3097 .brandRow-name { 3098 font-size: 11px; 3099 color: #444; 3100 letter-spacing: .3px; 3101 flex: 0 1 auto; 3102 min-width: 0; 3103 overflow: hidden; 3104 text-overflow: ellipsis; 3105 white-space: nowrap; 3106 } 3107 3108 @media screen and (max-width:992px) { 3109 3110 .BigPicture , .OnePicture{ 3111 flex-direction: row !important; 3112 align-items: flex-end !important; 3113 padding-bottom: 0px !important; 3114 } 3115 3116 .BigPicture .position-sticky, .OnePicture .position-sticky { 3117 width: 45% !important; 3118 height: 100% !important; 3119 padding-right: 10px !important; 3120 padding-left: 10px !important; 3121 } 3122 3123 .BigPicture .position-sticky .bg-opacity-75, .OnePicture .position-sticky .bg-opacity-75 { 3124 width: calc(100% - 20px) !important; 3125 } 3126 3127 .BigPicture .card-body, .OnePicture .card-body { 3128 width: 50% !important; 3129 } 3130 } 3131</style> 3132<style> 3133 .AdvanceAuto { 3134 position: relative; 3135 margin-top: .5rem; 3136 } 3137 3138 .AdvanceAuto .AdvanceAuto_lead { 3139 width: 100%; 3140 } 3141 3142 .AdvanceAuto .AdvanceAuto_note { 3143 margin: -.75rem 0 0; 3144 text-align: center; 3145 } 3146 3147@media screen and (min-width: 768px) { 3148 .AdvanceAuto .bf-viewAll { 3149 position: absolute; 3150 top: 0; 3151 inset-inline-end: 0; 3152 } 3153 } 3154 3155 @media screen and (max-width: 767px) { 3156 .AdvanceAuto { 3157 display: flex; 3158 flex-direction: column; 3159 align-items: center; 3160 } 3161 } 3162</style> 3163 3164 3165 3166 3167</body> 3168</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.