<!doctype html>
<html>
<head>
<script nonce="Gd0CJqGDTh0kO0S3LQRU-g">window['ppConfig'] = {productName: '26981ed0d57bbad37e728ff58134270c', deleteIsEnforced:  false , sealIsEnforced:  false , heartbeatRate:  0.5 , periodicReportingRateMillis:  60000.0 , disableAllReporting:  false };(function(){'use strict';function k(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function l(a){var b=typeof Symbol!="undefined"&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if(typeof a.length=="number")return{next:k(a)};throw Error(String(a)+" is not an iterable or ArrayLike");}var m=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function n(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var p=n(this);function q(a,b){if(b)a:{var c=p;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&b!=null&&m(c,a,{configurable:!0,writable:!0,value:b})}}
q("Object.is",function(a){return a?a:function(b,c){return b===c?b!==0||1/b===1/c:b!==b&&c!==c}});q("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(c<0&&(c=Math.max(c+e,0));c<e;c++){var f=d[c];if(f===b||Object.is(f,b))return!0}return!1}});
q("String.prototype.includes",function(a){return a?a:function(b,c){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(b,c||0)!==-1}});function r(a,b,c){a("https://csp.withgoogle.com/csp/proto/"+encodeURIComponent(b),JSON.stringify(c))}function t(){var a;if((a=window.ppConfig)==null?0:a.disableAllReporting)return function(){};var b,c,d,e;return(e=(b=window)==null?void 0:(c=b.navigator)==null?void 0:(d=c.sendBeacon)==null?void 0:d.bind(navigator))!=null?e:u}function u(a,b){var c=new XMLHttpRequest;c.open("POST",a);c.send(b)}
function v(){var a=(w=Object.prototype)==null?void 0:w.__lookupGetter__("__proto__"),b=x,c=y;return function(){var d=a.call(this),e,f,g,h;r(c,b,{type:"ACCESS_GET",origin:(f=window.location.origin)!=null?f:"unknown",report:{className:(g=d==null?void 0:(e=d.constructor)==null?void 0:e.name)!=null?g:"unknown",stackTrace:(h=Error().stack)!=null?h:"unknown"}});return d}}
function z(){var a=(A=Object.prototype)==null?void 0:A.__lookupSetter__("__proto__"),b=x,c=y;return function(d){d=a.call(this,d);var e,f,g,h;r(c,b,{type:"ACCESS_SET",origin:(f=window.location.origin)!=null?f:"unknown",report:{className:(g=d==null?void 0:(e=d.constructor)==null?void 0:e.name)!=null?g:"unknown",stackTrace:(h=Error().stack)!=null?h:"unknown"}});return d}}function B(a,b){C(a.productName,b);setInterval(function(){C(a.productName,b)},a.periodicReportingRateMillis)}
var D="constructor __defineGetter__ __defineSetter__ hasOwnProperty __lookupGetter__ __lookupSetter__ isPrototypeOf propertyIsEnumerable toString valueOf __proto__ toLocaleString x_ngfn_x".split(" "),E=D.concat,G=navigator.userAgent.match(/Firefox\/([0-9]+)\./),H=(!G||G.length<2?0:Number(G[1])<75)?["toSource"]:[],I;if(H instanceof Array)I=H;else{for(var J=l(H),K,L=[];!(K=J.next()).done;)L.push(K.value);I=L}var M=E.call(D,I),N=[];
function C(a,b){var c=[],d=l(Object.getOwnPropertyNames(Object.prototype)),e=d.next(),f;try{for(;!e.done;e=d.next()){var g=e.value;M.includes(g)||N.includes(g)||c.push(g)}}finally{e&&!e.done&&(f=d.return)&&f.call(d)}e=Object.prototype;d=[];for(f=0;f<c.length;f++)g=c[f],d[f]={name:g,descriptor:Object.getOwnPropertyDescriptor(Object.prototype,g),type:typeof e[g]};if(d.length!==0){c=l(d);e=c.next();var h;try{for(;!e.done;e=c.next())N.push(e.value.name)}finally{e&&!e.done&&(h=c.return)&&h.call(c)}var F;
r(b,a,{type:"SEAL",origin:(F=window.location.origin)!=null?F:"unknown",report:{blockers:d}})}};var O=Math.random(),P=t(),Q=window.ppConfig;Q&&(Q.disableAllReporting||Q.deleteIsEnforced&&Q.sealIsEnforced||O<Q.heartbeatRate&&r(P,Q.productName,{origin:window.location.origin,type:"HEARTBEAT"}));var y=t(),R=window.ppConfig;if(R)if(R.deleteIsEnforced)delete Object.prototype.__proto__;else if(!R.disableAllReporting){var x=R.productName;try{var w,A;Object.defineProperty(Object.prototype,"__proto__",{enumerable:!1,get:v(),set:z()})}catch(a){}}
(function(){var a=t(),b=window.ppConfig;b&&(b.sealIsEnforced?Object.seal(Object.prototype):b.disableAllReporting||(document.readyState!=="loading"?B(b,a):document.addEventListener("DOMContentLoaded",function(){B(b,a)})))})();}).call(this);
</script><meta name="chromevox" content-script="no">
<title>LootMall | Shop Smart, Save Big Every Day</title>
<meta name="viewport"content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" nonce="GgSAzMYdfNcDA0kgRd32PA"><link rel="stylesheet" href="/static/macros/client/css/2208734863-mae_html_css_ltr.css">
<script type="text/javascript" src="/static/macros/client/js/2594299495-warden_bin_i18n_warden.js"></script>
</head>
<body>
<table id="warning-bar-table" class="full_size" cellspacing="0" cellpadding="0"><tr><td><div id="warning" class="warning-bar"></div></td></tr><tr><td style="height: 100%"><iframe id="sandboxFrame" title="LootMall | Shop Smart, Save Big Every Day" allow="accelerometer *; autoplay *; clipboard-read *; clipboard-write *; encrypted-media *; fullscreen *; geolocation *; gyroscope *; local-network-access *; magnetometer *; midi *; payment *; picture-in-picture *; screen-wake-lock *; sync-xhr *; web-share *" sandbox="allow-downloads allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation allow-storage-access-by-user-activation">
</iframe>
</td></tr></table><script nonce="Gd0CJqGDTh0kO0S3LQRU-g">
(function() {
var el = document.getElementById('sandboxFrame');
el.onload = function() {
goog.script.init("\x7b\x22functionNames\x22:\x5b\x22doGet\x22,\x22getStore\x22,\x22placeOrder\x22,\x22adminLogin\x22,\x22adminData\x22,\x22saveProduct\x22,\x22deleteProduct\x22,\x22updateOrder\x22,\x22saveSettings\x22,\x22uploadImage\x22\x5d,\x22sandboxMode\x22:\x22IFRAME_SANDBOX\x22,\x22callbackTimeout\x22:390000,\x22deploymentId\x22:\x22AKfycbwdWhuMqml3AQ_GgHoJf6ofPVbTxsA6objdaxGHi8KUf06CQgxTr9Lc9Onzkr4hjVQj\x22,\x22eei\x22:\x22\x22,\x22sandboxHost\x22:\x22https:\/\/n-ru6x4o3eijntuwicjf55hhyvqi7wuhgb64ajxri-0lu-script.googleusercontent.com\x22,\x22clientSideProperties\x22:\x7b\x22google.script.sandbox.mode\x22:\x22IFRAME_SANDBOX\x22,\x22google.script.use_fetch_for_post_form\x22:true,\x22google.script.host.origin\x22:\x22https:\/\/docs.google.com\x22\x7d,\x22actionPrefix\x22:\x22\/macros\/s\/AKfycbwdWhuMqml3AQ_GgHoJf6ofPVbTxsA6objdaxGHi8KUf06CQgxTr9Lc9Onzkr4hjVQj\x22,\x22userHtml\x22:\x22\x3c!DOCTYPE html\x3e\x3chtml lang\x3d\\\x22en\\\x22\x3e\x3chead\x3e\x3cbase target\x3d\\\x22_top\\\x22\x3e\x3cmeta charset\x3d\\\x22utf-8\\\x22\x3e\\n\x3cmeta name\x3d\\\x22viewport\\\x22 content\x3d\\\x22width\x3ddevice-width,initial-scale\x3d1\\\x22\x3e\x3ctitle\x3eLootMall\x3c\\\/title\x3e\\n\x3clink href\x3d\\\x22https:\/\/fonts.googleapis.com\/css2?family\x3dManrope:wght@400;600;800\x26amp;display\x3dswap\\\x22 rel\x3d\\\x22stylesheet\\\x22\x3e\\n\x3cstyle\x3e\\n:root\x7b--m:#7A1F2B;--m2:#5E1620;--g:#B8923A;--ink:#1B1B1F;--bg:#FAF8F5;--ln:#E8E3DC;--mut:#6B6670;--ok:#1F7A4D;--bad:#B3261E\x7d\\n*\x7bbox-sizing:border-box\x7dbody\x7bmargin:0;font:400 15px\/1.5 Manrope,system-ui,sans-serif;color:var(--ink);background:var(--bg)\x7d\\na\x7bcolor:inherit;text-decoration:none\x7dbutton,input,select,textarea\x7bfont:inherit\x7d\\n.w\x7bmax-width:1180px;margin:0 auto;padding:0 16px\x7dh1,h2,h3\x7bmargin:0;line-height:1.15\x7d\\nheader\x7bbackground:#fff;border-bottom:1px solid var(--ln);position:sticky;top:0;z-index:20\x7d\\n.hd\x7bdisplay:flex;align-items:center;gap:14px;padding:10px 0;flex-wrap:wrap\x7d\\n.logo\x7bfont-weight:800;font-size:22px;color:var(--m);cursor:pointer\x7d.logo img\x7bheight:38px;display:block\x7d\\n.srch\x7bflex:1;min-width:180px;display:flex\x7d.srch input\x7bflex:1;padding:10px 14px;border:1px solid var(--ln);border-radius:10px;background:var(--bg)\x7d\\nnav\x7bdisplay:flex;gap:18px;font-weight:600;font-size:14px\x7dnav a\x7bcursor:pointer\x7dnav a:hover\x7bcolor:var(--m)\x7d\\n.btn\x7bdisplay:inline-block;border:0;border-radius:10px;padding:11px 20px;font-weight:700;cursor:pointer;background:var(--m);color:#fff;text-align:center\x7d\\n.btn:hover\x7bbackground:var(--m2)\x7d.btn.o\x7bbackground:#fff;color:var(--m);border:1.5px solid var(--m)\x7d.btn.wa\x7bbackground:#1FAF55\x7d.btn.sm\x7bpadding:7px 12px;font-size:13px\x7d.btn.d\x7bbackground:var(--bad)\x7d.btn\x5bdisabled\x5d\x7bopacity:.5\x7d\\n.hero\x7bbackground:linear-gradient(120deg,#fff 0%,#F6EDEA 100%);border-bottom:1px solid var(--ln)\x7d\\n.hero .w\x7bdisplay:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;padding:44px 16px\x7d\\n.hero h1\x7bfont-size:clamp(30px,5vw,52px);font-weight:800;letter-spacing:-.02em\x7d.hero p\x7bcolor:var(--mut);max-width:46ch;margin:14px 0 22px\x7d\\n.hero .im\x7baspect-ratio:4\/3;border-radius:22px;background:#EFE6E1 center\/cover;border:1px solid var(--ln)\x7d\\n.bar\x7bdisplay:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:22px 0 14px\x7d\\n.chip\x7bpadding:7px 14px;border-radius:99px;border:1px solid var(--ln);background:#fff;cursor:pointer;font-weight:600;font-size:13px\x7d.chip.on\x7bbackground:var(--m);border-color:var(--m);color:#fff\x7d\\n.bar select,.bar input\x7bpadding:8px 10px;border:1px solid var(--ln);border-radius:8px;background:#fff\x7d\\n.grid\x7bdisplay:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px\x7d\\n.card\x7bbackground:#fff;border:1px solid var(--ln);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s\x7d\\n.card:hover\x7btransform:translateY(-3px);box-shadow:0 10px 26px rgba(60,20,20,.1)\x7d\\n.ph\x7baspect-ratio:1\/1;background:#F1ECE6 center\/cover no-repeat;position:relative;cursor:pointer\x7d\\n.bdg\x7bposition:absolute;top:10px;left:10px;background:var(--m);color:#fff;font-size:12px;font-weight:800;padding:3px 9px;border-radius:99px\x7d\\n.bdg.n\x7bbackground:var(--g);left:auto;right:10px\x7d\\n.cb\x7bpadding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1\x7d.cb h3\x7bfont-size:15px;font-weight:600;cursor:pointer\x7d\\n.pr\x7bfont-weight:800;font-size:18px;color:var(--m)\x7d.old\x7bcolor:var(--mut);text-decoration:line-through;font-size:13px;margin-left:6px;font-weight:400\x7d\\n.st\x7bfont-size:12px;font-weight:600\x7d.in\x7bcolor:var(--ok)\x7d.out\x7bcolor:var(--bad)\x7d\\n.pg\x7bdisplay:grid;grid-template-columns:1fr 1fr;gap:34px;padding:26px 0\x7d\\n.main\x7baspect-ratio:1\/1;border-radius:18px;background:#F1ECE6 center\/contain no-repeat #fff;border:1px solid var(--ln)\x7d\\n.th\x7bdisplay:flex;gap:8px;margin-top:10px;flex-wrap:wrap\x7d.th div\x7bwidth:64px;height:64px;border:2px solid var(--ln);border-radius:10px;background:center\/cover;cursor:pointer\x7d.th .on\x7bborder-color:var(--m)\x7d\\n.box\x7bbackground:#fff;border:1px solid var(--ln);border-radius:14px;padding:16px;margin-top:14px\x7d\\n.box h3\x7bfont-size:16px;margin-bottom:8px\x7dul.f\x7bmargin:0;padding-left:18px\x7d.sp\x7bdisplay:grid;grid-template-columns:140px 1fr;gap:4px 12px;font-size:14px\x7d.sp b\x7bcolor:var(--mut);font-weight:600\x7d\\n.qty\x7bdisplay:inline-flex;border:1px solid var(--ln);border-radius:10px;overflow:hidden;background:#fff\x7d.qty button\x7bborder:0;background:#fff;width:36px;font-size:18px;cursor:pointer\x7d.qty span\x7bwidth:40px;text-align:center;line-height:38px;font-weight:700\x7d\\nlabel\x7bdisplay:block;font-weight:600;font-size:13px;margin:12px 0 4px\x7d\\ninput.f,select.f,textarea.f\x7bwidth:100%;padding:10px 12px;border:1px solid var(--ln);border-radius:10px;background:#fff\x7d\\n.two\x7bdisplay:grid;grid-template-columns:1fr 1fr;gap:12px\x7d\\n.sum\x7bdisplay:flex;justify-content:space-between;padding:5px 0\x7d.sum.t\x7bborder-top:1px solid var(--ln);margin-top:6px;padding-top:10px;font-weight:800;font-size:17px\x7d\\n.stk\x7bdisplay:none\x7d\\n.wafab\x7bposition:fixed;right:16px;bottom:16px;width:54px;height:54px;border-radius:50%;background:#1FAF55;color:#fff;display:grid;place-items:center;font-size:26px;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:30\x7d\\n.tw\x7bdisplay:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:28px 0\x7d.tw div\x7bbackground:#fff;border:1px solid var(--ln);border-left:4px solid var(--g);border-radius:10px;padding:14px\x7d\\nfooter\x7bbackground:#1B1B1F;color:#cfcad0;margin-top:40px;padding:30px 0 90px;font-size:14px\x7dfooter b\x7bcolor:#fff\x7d\\n.sk\x7bheight:260px;border-radius:16px;background:linear-gradient(90deg,#eee6df,#f7f2ed,#eee6df);background-size:200% 100%;animation:s 1.2s infinite\x7d@keyframes s\x7bto\x7bbackground-position:-200% 0\x7d\x7d\\n.empty\x7btext-align:center;padding:50px 10px;color:var(--mut)\x7d\\n#toast\x7bposition:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;z-index:99;display:none\x7d\\n.tabs\x7bdisplay:flex;gap:8px;margin:16px 0;flex-wrap:wrap\x7d.tbl\x7bwidth:100%;border-collapse:collapse;background:#fff;font-size:13px\x7d.tbl th,.tbl td\x7bpadding:8px;border-bottom:1px solid var(--ln);text-align:left;vertical-align:top\x7d\\n.sc\x7bdisplay:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px\x7d.sc div\x7bbackground:#fff;border:1px solid var(--ln);border-radius:12px;padding:14px\x7d.sc b\x7bfont-size:24px;display:block\x7d\\n.ov\x7bposition:fixed;inset:0;background:rgba(0,0,0,.5);z-index:50;overflow:auto;padding:20px\x7d.md\x7bbackground:#fff;border-radius:16px;max-width:640px;margin:0 auto;padding:20px\x7d\\n.ims\x7bdisplay:flex;gap:8px;flex-wrap:wrap;margin:8px 0\x7d.ims div\x7bwidth:80px;height:80px;border-radius:10px;background:center\/cover;border:2px solid var(--ln);position:relative\x7d.ims .mn\x7bborder-color:var(--g)\x7d\\n.ims button\x7bposition:absolute;bottom:2px;font-size:11px;border:0;background:#fffc;border-radius:4px;cursor:pointer\x7d\\n#inv\x7bdisplay:none\x7d\\n@media(max-width:760px)\x7b.hero .w,.pg\x7bgrid-template-columns:1fr\x7dnav\x7bdisplay:none\x7d.stk\x7bdisplay:flex;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--ln);padding:10px 14px;gap:10px;z-index:25\x7d.stk .btn\x7bflex:1\x7d.wafab\x7bbottom:78px\x7d.two\x7bgrid-template-columns:1fr\x7d\x7d\\n@media print\x7bbody\x3e*:not(#inv)\x7bdisplay:none!important\x7d#inv\x7bdisplay:block!important;padding:24px;font-size:13px\x7d\x7d\\n\x3c\\\/style\x3e\x3c\\\/head\x3e\x3cbody\x3e\\n\x3cdiv id\x3d\\\x22app\\\x22\x3e\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cdiv class\x3d\\\x22sk\\\x22 style\x3d\\\x22margin-top:40px\\\x22\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\x3cdiv id\x3d\\\x22toast\\\x22\x3e\x3c\\\/div\x3e\x3cdiv id\x3d\\\x22inv\\\x22\x3e\x3c\\\/div\x3e\\n\x3cscript\x3e\\nconst $\x3ds\x3d\x3edocument.querySelector(s),esc\x3ds\x3d\x3eString(s\x3d\x3dnull?\x27\x27:s).replace(\/\x5b\x26\x3c\x3e\\\x22\x27\x5d\/g,c\x3d\x3e(\x7b\x27\x26\x27:\x27\x26amp;\x27,\x27\x3c\x27:\x27\x26lt;\x27,\x27\x3e\x27:\x27\x26gt;\x27,\x27\\\x22\x27:\x27\x26quot;\x27,\\\x22\x27\\\x22:\x27\x26#39;\x27\x7d\x5bc\x5d));\\nconst run\x3d(f,...a)\x3d\x3enew Promise((ok,no)\x3d\x3egoogle.script.run.withSuccessHandler(ok).withFailureHandler(e\x3d\x3eno(e))\x5bf\x5d(...a));\\nconst rs\x3dn\x3d\x3e\x27Rs. \x27+Number(n||0).toLocaleString(\x27en-PK\x27),L\x3dt\x3d\x3eString(t||\x27\x27).split(\x27\\\\n\x27).map(x\x3d\x3ex.trim()).filter(Boolean);\\nlet S\x3d\x7bst:null,q:\x27\x27,cat:\x27\x27,chip:\x27all\x27,sort:\x27new\x27,stock:false,max:\x27\x27,tok:null,adm:null,tab:\x27dash\x27,sel:null,img:0,qty:1\x7d;\\nconst IM\x3dp\x3d\x3eL(p.images),disc\x3dp\x3d\x3e+p.oldPrice\x3e+p.price?Math.round((1-p.price\/p.oldPrice)*100):0;\\nconst ST\x3d\x5b\x27Pending\x27,\x27Confirmed\x27,\x27Ready to Ship\x27,\x27Shipped\x27,\x27Delivered\x27,\x27Cancelled\x27\x5d,PAY\x3d\x5b\x27Pending\x27,\x27Paid\x27,\x27COD\x27,\x27Advance Paid\x27,\x27Refunded\x27\x5d;\\nfunction toast(m)\x7bconst t\x3d$(\x27#toast\x27);t.textContent\x3dm;t.style.display\x3d\x27block\x27;clearTimeout(t.h);t.h\x3dsetTimeout(()\x3d\x3et.style.display\x3d\x27none\x27,3500)\x7d\\nconst err\x3de\x3d\x3etoast((e\x26\x26e.message||\x27\x27).replace(\/^Error:\\\\s*\/,\x27\x27)||\x27Something went wrong. Please try again.\x27);\\nconst set\x3d()\x3d\x3eS.st.settings,wa\x3dm\x3d\x3e\x27https:\/\/wa.me\/92\x27+set().whatsapp.replace(\/^0\/,\x27\x27)+\x27?text\x3d\x27+encodeURIComponent(m);\\nfunction rates()\x7bconst o\x3d\x7b\x7d;L(set().cityRates).forEach(l\x3d\x3e\x7bconst a\x3dl.split(\x27\x3d\x27);if(a.length\x3e1)o\x5ba\x5b0\x5d.trim().toLowerCase()\x5d\x3d+a\x5b1\x5d\x7d);return o\x7d\\nfunction dv(p,city)\x7bif(p.delivery!\x3d\x3d\x27\x27\x26\x26p.delivery!\x3dnull)return +p.delivery;const r\x3drates()\x5b(city||\x27\x27).trim().toLowerCase()\x5d;return r!\x3dnull?r:+set().delivery\x7d\\nconst go\x3dh\x3d\x3e\x7blocation.hash\x3dh\x7d;\\nfunction shell(body)\x7bconst s\x3dset(),n\x3dh\x3d\x3e`onclick\x3d\\\x22go(\x27$\x7bh\x7d\x27)\\\x22`;\\nreturn `\x3cheader\x3e\x3cdiv class\x3d\\\x22w hd\\\x22\x3e\x3cdiv class\x3d\\\x22logo\\\x22 $\x7bn(\x27\/\x27)\x7d\x3e$\x7bs.logoUrl?`\x3cimg src\x3d\\\x22$\x7besc(s.logoUrl)\x7d\\\x22 alt\x3d\\\x22LootMall\\\x22\x3e`:\x27LootMall\x27\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22srch\\\x22\x3e\x3cinput id\x3d\\\x22q\\\x22 placeholder\x3d\\\x22Search products\\\x22 value\x3d\\\x22$\x7besc(S.q)\x7d\\\x22 onkeydown\x3d\\\x22if(event.key\x3d\x3d\x3d\x27Enter\x27)\x7bS.q\x3dthis.value;S.chip\x3d\x27all\x27;go(\x27\/\x27);R()\x7d\\\x22\x3e\x3c\\\/div\x3e\\n\x3cnav\x3e\x3ca $\x7bn(\x27\/\x27)\x7d\x3eHome\x3c\\\/a\x3e\x3ca onclick\x3d\\\x22S.chip\x3d\x27all\x27;go(\x27\/\x27);R();scrollTo(0,500)\\\x22\x3eCategories\x3c\\\/a\x3e\x3ca onclick\x3d\\\x22S.chip\x3d\x27deals\x27;go(\x27\/\x27);R()\\\x22\x3eDeals\x3c\\\/a\x3e\x3ca onclick\x3d\\\x22S.chip\x3d\x27new\x27;go(\x27\/\x27);R()\\\x22\x3eNew Arrivals\x3c\\\/a\x3e\x3ca href\x3d\\\x22$\x7bwa(\x27Hello LootMall, I have a question.\x27)\x7d\\\x22 target\x3d\\\x22_blank\\\x22\x3eContact\x3c\\\/a\x3e\x3c\\\/nav\x3e\x3c\\\/div\x3e\x3c\\\/header\x3e\\n$\x7bbody\x7d\x3ca class\x3d\\\x22wafab\\\x22 href\x3d\\\x22$\x7bwa(\x27Hello LootMall, I need some help.\x27)\x7d\\\x22 target\x3d\\\x22_blank\\\x22 aria-label\x3d\\\x22WhatsApp\\\x22\x3e\x26#9990;\x3c\\\/a\x3e\\n\x3cfooter\x3e\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cb\x3eLootMall\x3c\\\/b\x3e\x3cbr\x3eShop Smart, Save Big Every Day\x3cbr\x3e\x3cbr\x3eWhatsApp: $\x7besc(s.whatsapp)\x7d \x26nbsp;|\x26nbsp; lootmall.online\x3cbr\x3e\x3cspan style\x3d\\\x22cursor:pointer;opacity:.5\\\x22 onclick\x3d\\\x22go(\x27\/admin\x27)\\\x22\x3eAdmin\x3c\\\/span\x3e\x3c\\\/div\x3e\x3c\\\/footer\x3e`\x7d\\nfunction card(p)\x7bconst d\x3ddisc(p),o\x3dp.stock\x3c\x3d0;return `\x3cdiv class\x3d\\\x22card\\\x22\x3e\x3cdiv class\x3d\\\x22ph\\\x22 style\x3d\\\x22background-image:url(\x27$\x7besc(IM(p)\x5b0\x5d||\x27\x27)\x7d\x27)\\\x22 onclick\x3d\\\x22go(\x27\/p\/$\x7besc(p.slug)\x7d\x27)\\\x22\x3e$\x7bd?`\x3cspan class\x3d\\\x22bdg\\\x22\x3e-$\x7bd\x7d%\x3c\\\/span\x3e`:\x27\x27\x7d$\x7bp.newArrival\x3d\x3d\x3dtrue?\x27\x3cspan class\x3d\\\x22bdg n\\\x22\x3eNew\x3c\\\/span\x3e\x27:\x27\x27\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22cb\\\x22\x3e\x3ch3 onclick\x3d\\\x22go(\x27\/p\/$\x7besc(p.slug)\x7d\x27)\\\x22\x3e$\x7besc(p.name)\x7d\x3c\\\/h3\x3e\x3cdiv\x3e\x3cspan class\x3d\\\x22pr\\\x22\x3e$\x7brs(p.price)\x7d\x3c\\\/span\x3e$\x7bd?`\x3cspan class\x3d\\\x22old\\\x22\x3e$\x7brs(p.oldPrice)\x7d\x3c\\\/span\x3e`:\x27\x27\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22st $\x7bo?\x27out\x27:\x27in\x27\x7d\\\x22\x3e$\x7bo?\x27Out of stock\x27:p.stock\x3c\x3d5?\x27Only \x27+p.stock+\x27 left\x27:\x27In stock\x27\x7d\x3c\\\/div\x3e\\n\x3cbutton class\x3d\\\x22btn sm\\\x22 style\x3d\\\x22margin-top:auto\\\x22 $\x7bo?\x27disabled\x27:\x27\x27\x7d onclick\x3d\\\x22go(\x27\/order\/$\x7besc(p.slug)\x7d\x27)\\\x22\x3eOrder Now\x3c\\\/button\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e`\x7d\\nfunction home()\x7bconst s\x3dset(),cats\x3dL(s.categories.replace(\/,\/g,\x27\\\\n\x27));let ps\x3dS.st.products.slice();const q\x3dS.q.toLowerCase();\\nif(q)ps\x3dps.filter(p\x3d\x3e\x5bp.name,p.category,p.brand,p.tags,p.shortDesc,p.description\x5d.join(\x27 \x27).toLowerCase().includes(q));\\nif(S.cat)ps\x3dps.filter(p\x3d\x3ep.category\x3d\x3d\x3dS.cat);if(S.stock)ps\x3dps.filter(p\x3d\x3ep.stock\x3e0);if(S.max)ps\x3dps.filter(p\x3d\x3ep.price\x3c\x3d+S.max);\\nconst f\x3d\x7bdeals:p\x3d\x3edisc(p)\x3e0,new:p\x3d\x3ep.newArrival\x3d\x3d\x3dtrue,best:p\x3d\x3ep.bestSeller\x3d\x3d\x3dtrue,feat:p\x3d\x3ep.featured\x3d\x3d\x3dtrue\x7d\x5bS.chip\x5d;if(f)ps\x3dps.filter(f);\\nps.sort(\x7bnew:(a,b)\x3d\x3eString(b.created).localeCompare(a.created),lo:(a,b)\x3d\x3ea.price-b.price,hi:(a,b)\x3d\x3eb.price-a.price,disc:(a,b)\x3d\x3edisc(b)-disc(a),pop:(a,b)\x3d\x3e(b.bestSeller\x3d\x3d\x3dtrue)-(a.bestSeller\x3d\x3d\x3dtrue)\x7d\x5bS.sort\x5d);\\nconst ch\x3d\x5b\x5b\x27all\x27,\x27All\x27\x5d,\x5b\x27deals\x27,\x27Deals\x27\x5d,\x5b\x27new\x27,\x27New arrivals\x27\x5d,\x5b\x27best\x27,\x27Best sellers\x27\x5d,\x5b\x27feat\x27,\x27Featured\x27\x5d\x5d;\\nreturn shell(`\x3csection class\x3d\\\x22hero\\\x22\x3e\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cdiv\x3e\x3ch1\x3eShop Smart, Save Big Every Day\x3c\\\/h1\x3e\x3cp\x3eFashion, electronics, home essentials and more, delivered to your door. Order in a minute, no account needed.\x3c\\\/p\x3e\\n\x3cbutton class\x3d\\\x22btn\\\x22 onclick\x3d\\\x22scrollTo(\x7btop:520,behavior:\x27smooth\x27\x7d)\\\x22\x3eShop Now\x3c\\\/button\x3e \x3cbutton class\x3d\\\x22btn o\\\x22 onclick\x3d\\\x22S.chip\x3d\x27deals\x27;R();scrollTo(\x7btop:520,behavior:\x27smooth\x27\x7d)\\\x22\x3eExplore Deals\x3c\\\/button\x3e\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22im\\\x22 style\x3d\\\x22background-image:url(\x27$\x7besc(s.heroImage)\x7d\x27)\\\x22\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\x3c\\\/section\x3e\\n\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cdiv class\x3d\\\x22bar\\\x22\x3e$\x7bch.map(c\x3d\x3e`\x3cspan class\x3d\\\x22chip $\x7bS.chip\x3d\x3d\x3dc\x5b0\x5d?\x27on\x27:\x27\x27\x7d\\\x22 onclick\x3d\\\x22S.chip\x3d\x27$\x7bc\x5b0\x5d\x7d\x27;R()\\\x22\x3e$\x7bc\x5b1\x5d\x7d\x3c\\\/span\x3e`).join(\x27\x27)\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22bar\\\x22 style\x3d\\\x22margin-top:0\\\x22\x3e\x3cselect onchange\x3d\\\x22S.cat\x3dthis.value;R()\\\x22\x3e\x3coption value\x3d\\\x22\\\x22\x3eAll categories\x3c\\\/option\x3e$\x7bcats.map(c\x3d\x3e`\x3coption $\x7bS.cat\x3d\x3d\x3dc?\x27selected\x27:\x27\x27\x7d\x3e$\x7besc(c)\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\\n\x3cselect onchange\x3d\\\x22S.sort\x3dthis.value;R()\\\x22\x3e$\x7b\x5b\x5b\x27new\x27,\x27Newest\x27\x5d,\x5b\x27lo\x27,\x27Price: low to high\x27\x5d,\x5b\x27hi\x27,\x27Price: high to low\x27\x5d,\x5b\x27pop\x27,\x27Popular\x27\x5d,\x5b\x27disc\x27,\x27Discount\x27\x5d\x5d.map(o\x3d\x3e`\x3coption value\x3d\\\x22$\x7bo\x5b0\x5d\x7d\\\x22 $\x7bS.sort\x3d\x3d\x3do\x5b0\x5d?\x27selected\x27:\x27\x27\x7d\x3e$\x7bo\x5b1\x5d\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\\n\x3cinput type\x3d\\\x22number\\\x22 placeholder\x3d\\\x22Max price\\\x22 style\x3d\\\x22width:110px\\\x22 value\x3d\\\x22$\x7besc(S.max)\x7d\\\x22 onchange\x3d\\\x22S.max\x3dthis.value;R()\\\x22\x3e\x3clabel style\x3d\\\x22margin:0;display:flex;gap:5px;align-items:center\\\x22\x3e\x3cinput type\x3d\\\x22checkbox\\\x22 $\x7bS.stock?\x27checked\x27:\x27\x27\x7d onchange\x3d\\\x22S.stock\x3dthis.checked;R()\\\x22\x3eIn stock only\x3c\\\/label\x3e\x3c\\\/div\x3e\\n$\x7bps.length?`\x3cdiv class\x3d\\\x22grid\\\x22\x3e$\x7bps.map(card).join(\x27\x27)\x7d\x3c\\\/div\x3e`:`\x3cdiv class\x3d\\\x22empty\\\x22\x3e\x3ch3\x3e$\x7bS.st.products.length?\x27No products match\x27:\x27No products yet\x27\x7d\x3c\\\/h3\x3e\x3cp\x3e$\x7bS.st.products.length?\x27Try a different search or clear a filter.\x27:\x27Add your first product from the admin panel.\x27\x7d\x3c\\\/p\x3e\x3c\\\/div\x3e`\x7d\\n\x3cdiv class\x3d\\\x22tw\\\x22\x3e\x3cdiv\x3e\x3cb\x3eDirect ordering\x3c\\\/b\x3e\x3cbr\x3eFill one short form. No cart, no login.\x3c\\\/div\x3e\x3cdiv\x3e\x3cb\x3eDelivery\x3c\\\/b\x3e\x3cbr\x3eDefault charge $\x7brs(s.delivery)\x7d. Final charge is shown before you order.\x3c\\\/div\x3e\x3cdiv\x3e\x3cb\x3eQuestions?\x3c\\\/b\x3e\x3cbr\x3eMessage us on WhatsApp $\x7besc(s.whatsapp)\x7d.\x3c\\\/div\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e`)\x7d\\nfunction prod(slug)\x7bconst p\x3dS.st.products.find(x\x3d\x3ex.slug\x3d\x3d\x3dslug);if(!p)return shell(\x27\x3cdiv class\x3d\\\x22w empty\\\x22\x3e\x3ch3\x3eProduct not found\x3c\\\/h3\x3e\x3c\\\/div\x3e\x27);const im\x3dIM(p),d\x3ddisc(p),o\x3dp.stock\x3c\x3d0;\\nconst rel\x3dS.st.products.filter(x\x3d\x3ex.category\x3d\x3d\x3dp.category\x26\x26x.id!\x3d\x3dp.id).slice(0,4);\\nreturn shell(`\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cdiv class\x3d\\\x22pg\\\x22\x3e\x3cdiv\x3e\x3cdiv class\x3d\\\x22main\\\x22 style\x3d\\\x22background-image:url(\x27$\x7besc(im\x5bS.img\x5d||\x27\x27)\x7d\x27)\\\x22\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22th\\\x22\x3e$\x7bim.map((u,i)\x3d\x3e`\x3cdiv class\x3d\\\x22$\x7bi\x3d\x3d\x3dS.img?\x27on\x27:\x27\x27\x7d\\\x22 style\x3d\\\x22background-image:url(\x27$\x7besc(u)\x7d\x27)\\\x22 onclick\x3d\\\x22S.img\x3d$\x7bi\x7d;R()\\\x22\x3e\x3c\\\/div\x3e`).join(\x27\x27)\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3cdiv\x3e\x3ch1 style\x3d\\\x22font-size:28px\\\x22\x3e$\x7besc(p.name)\x7d\x3c\\\/h1\x3e\x3cdiv style\x3d\\\x22margin:10px 0\\\x22\x3e\x3cspan class\x3d\\\x22pr\\\x22 style\x3d\\\x22font-size:28px\\\x22\x3e$\x7brs(p.price)\x7d\x3c\\\/span\x3e$\x7bd?`\x3cspan class\x3d\\\x22old\\\x22 style\x3d\\\x22font-size:16px\\\x22\x3e$\x7brs(p.oldPrice)\x7d\x3c\\\/span\x3e \x3cspan class\x3d\\\x22bdg\\\x22 style\x3d\\\x22position:static\\\x22\x3e-$\x7bd\x7d%\x3c\\\/span\x3e`:\x27\x27\x7d\x3c\\\/div\x3e\\n\x3cp\x3e$\x7besc(p.shortDesc)\x7d\x3c\\\/p\x3e\x3cdiv class\x3d\\\x22st $\x7bo?\x27out\x27:\x27in\x27\x7d\\\x22\x3e$\x7bo?\x27Out of stock\x27:p.stock\x3c\x3d5?\x27Only \x27+p.stock+\x27 left\x27:\x27In stock\x27\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3eDelivery\x3c\\\/span\x3e\x3cb\x3e$\x7bp.delivery!\x3d\x3d\x27\x27\x26\x26p.delivery!\x3dnull?rs(p.delivery):\x27from \x27+rs(set().delivery)\x7d\x3c\\\/b\x3e\x3c\\\/div\x3e\\n\x3cdiv style\x3d\\\x22margin:10px 0\\\x22\x3e\x3cdiv class\x3d\\\x22qty\\\x22\x3e\x3cbutton onclick\x3d\\\x22S.qty\x3dMath.max(1,S.qty-1);R()\\\x22\x3e-\x3c\\\/button\x3e\x3cspan\x3e$\x7bS.qty\x7d\x3c\\\/span\x3e\x3cbutton onclick\x3d\\\x22S.qty\x3dMath.min($\x7bMath.max(1,p.stock)\x7d,S.qty+1);R()\\\x22\x3e+\x3c\\\/button\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3cbutton class\x3d\\\x22btn\\\x22 $\x7bo?\x27disabled\x27:\x27\x27\x7d onclick\x3d\\\x22go(\x27\/order\/$\x7besc(p.slug)\x7d\x27)\\\x22\x3eOrder Now\x3c\\\/button\x3e \x3ca class\x3d\\\x22btn wa\\\x22 target\x3d\\\x22_blank\\\x22 href\x3d\\\x22$\x7bwa(\x27Hello LootMall, I want information about \x27+p.name+\x27.\x27)\x7d\\\x22\x3eWhatsApp\x3c\\\/a\x3e\x3c\\\/div\x3e\\n$\x7bL(p.features).length?`\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3ch3\x3eFeatures\x3c\\\/h3\x3e\x3cul class\x3d\\\x22f\\\x22\x3e$\x7bL(p.features).map(x\x3d\x3e`\x3cli\x3e$\x7besc(x)\x7d\x3c\\\/li\x3e`).join(\x27\x27)\x7d\x3c\\\/ul\x3e\x3c\\\/div\x3e`:\x27\x27\x7d\\n$\x7bL(p.specs).length?`\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3ch3\x3eSpecifications\x3c\\\/h3\x3e\x3cdiv class\x3d\\\x22sp\\\x22\x3e$\x7bL(p.specs).map(x\x3d\x3e\x7bconst i\x3dx.indexOf(\x27:\x27);return i\x3c0?`\x3cspan style\x3d\\\x22grid-column:1\/3\\\x22\x3e$\x7besc(x)\x7d\x3c\\\/span\x3e`:`\x3cb\x3e$\x7besc(x.slice(0,i))\x7d\x3c\\\/b\x3e\x3cspan\x3e$\x7besc(x.slice(i+1))\x7d\x3c\\\/span\x3e`\x7d).join(\x27\x27)\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e`:\x27\x27\x7d\\n$\x7bp.description?`\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3ch3\x3eDescription\x3c\\\/h3\x3e\x3cdiv style\x3d\\\x22white-space:pre-wrap\\\x22\x3e$\x7besc(p.description)\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e`:\x27\x27\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e\\n$\x7brel.length?`\x3ch2 style\x3d\\\x22margin-bottom:12px\\\x22\x3eRelated products\x3c\\\/h2\x3e\x3cdiv class\x3d\\\x22grid\\\x22\x3e$\x7brel.map(card).join(\x27\x27)\x7d\x3c\\\/div\x3e`:\x27\x27\x7d\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22stk\\\x22\x3e\x3ca class\x3d\\\x22btn wa\\\x22 style\x3d\\\x22flex:0 0 auto\\\x22 target\x3d\\\x22_blank\\\x22 href\x3d\\\x22$\x7bwa(\x27Hello LootMall, I want information about \x27+p.name+\x27.\x27)\x7d\\\x22\x3eChat\x3c\\\/a\x3e\x3cbutton class\x3d\\\x22btn\\\x22 $\x7bo?\x27disabled\x27:\x27\x27\x7d onclick\x3d\\\x22go(\x27\/order\/$\x7besc(p.slug)\x7d\x27)\\\x22\x3eOrder Now\x3c\\\/button\x3e\x3c\\\/div\x3e`)\x7d\\nfunction order(slug)\x7bconst p\x3dS.st.products.find(x\x3d\x3ex.slug\x3d\x3d\x3dslug);if(!p||p.stock\x3c\x3d0)return shell(\x27\x3cdiv class\x3d\\\x22w empty\\\x22\x3e\x3ch3\x3eThis product is unavailable\x3c\\\/h3\x3e\x3c\\\/div\x3e\x27);\\nconst q\x3dMath.min(S.qty,p.stock);return shell(`\x3cdiv class\x3d\\\x22w\\\x22 style\x3d\\\x22max-width:720px;padding-top:20px\\\x22\x3e\x3ch2\x3ePlace your order\x3c\\\/h2\x3e\x3cp style\x3d\\\x22color:var(--mut)\\\x22\x3eNo account needed. Pay on delivery unless we tell you otherwise on WhatsApp.\x3c\\\/p\x3e\\n\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3cdiv class\x3d\\\x22two\\\x22\x3e\x3cdiv\x3e\x3clabel\x3eFull name *\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22f_name\\\x22\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3ePhone *\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22f_phone\\\x22 type\x3d\\\x22tel\\\x22\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3clabel\x3eWhatsApp number (optional)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22f_wa\\\x22 type\x3d\\\x22tel\\\x22\x3e\x3clabel\x3eComplete address *\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22f_addr\\\x22 rows\x3d\\\x222\\\x22\x3e\x3c\\\/textarea\x3e\\n\x3cdiv class\x3d\\\x22two\\\x22\x3e\x3cdiv\x3e\x3clabel\x3eCity *\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22f_city\\\x22 oninput\x3d\\\x22sum()\\\x22\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3eProvince *\x3c\\\/label\x3e\x3cselect class\x3d\\\x22f\\\x22 id\x3d\\\x22f_prov\\\x22\x3e$\x7b\x5b\x27Punjab\x27,\x27Sindh\x27,\x27Khyber Pakhtunkhwa\x27,\x27Balochistan\x27,\x27Islamabad Capital Territory\x27,\x27Azad Kashmir\x27,\x27Gilgit-Baltistan\x27\x5d.map(x\x3d\x3e`\x3coption\x3e$\x7bx\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3clabel\x3eOrder notes (optional)\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22f_notes\\\x22 rows\x3d\\\x222\\\x22\x3e\x3c\\\/textarea\x3e\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3ch3\x3eOrder summary\x3c\\\/h3\x3e\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3e$\x7besc(p.name)\x7d\x3c\\\/span\x3e\x3cspan\x3e$\x7brs(p.price)\x7d\x3c\\\/span\x3e\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3eQuantity\x3c\\\/span\x3e\x3cspan class\x3d\\\x22qty\\\x22\x3e\x3cbutton onclick\x3d\\\x22S.qty\x3dMath.max(1,S.qty-1);R()\\\x22\x3e-\x3c\\\/button\x3e\x3cspan\x3e$\x7bq\x7d\x3c\\\/span\x3e\x3cbutton onclick\x3d\\\x22S.qty\x3dMath.min($\x7bp.stock\x7d,S.qty+1);R()\\\x22\x3e+\x3c\\\/button\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3eDelivery\x3c\\\/span\x3e\x3cspan id\x3d\\\x22s_d\\\x22\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22sum t\\\x22\x3e\x3cspan\x3eTotal\x3c\\\/span\x3e\x3cspan id\x3d\\\x22s_t\\\x22\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3cbutton class\x3d\\\x22btn\\\x22 id\x3d\\\x22go\\\x22 style\x3d\\\x22width:100%;margin-top:14px\\\x22 onclick\x3d\\\x22submitOrder(\x27$\x7besc(p.id)\x7d\x27,$\x7bq\x7d)\\\x22\x3eConfirm order\x3c\\\/button\x3e\x3c\\\/div\x3e`)\x7d\\nfunction sum()\x7bconst p\x3dS.st.products.find(x\x3d\x3ex.slug\x3d\x3d\x3dlocation.hash.split(\x27\/\x27)\x5b2\x5d);if(!p)return;const d\x3ddv(p,$(\x27#f_city\x27)?$(\x27#f_city\x27).value:\x27\x27),q\x3dMath.min(S.qty,p.stock);$(\x27#s_d\x27).textContent\x3drs(d);$(\x27#s_t\x27).textContent\x3drs(p.price*q+d)\x7d\\nasync function submitOrder(id,qty)\x7bconst v\x3di\x3d\x3e$(\x27#\x27+i).value.trim(),o\x3d\x7bproductId:id,qty,name:v(\x27f_name\x27),phone:v(\x27f_phone\x27),whatsapp:v(\x27f_wa\x27),address:v(\x27f_addr\x27),city:v(\x27f_city\x27),province:v(\x27f_prov\x27),notes:v(\x27f_notes\x27)\x7d;\\nif(!o.name||!o.phone||!o.address||!o.city)return toast(\x27Please fill in name, phone, address and city.\x27);\\n$(\x27#go\x27).disabled\x3dtrue;$(\x27#go\x27).textContent\x3d\x27Placing order...\x27;\\ntry\x7bconst r\x3dawait run(\x27placeOrder\x27,o);S.done\x3dr;S.st\x3dawait run(\x27getStore\x27);go(\x27\/done\x27)\x7dcatch(e)\x7berr(e);$(\x27#go\x27).disabled\x3dfalse;$(\x27#go\x27).textContent\x3d\x27Confirm order\x27\x7d\x7d\\nfunction done()\x7bconst r\x3dS.done;if(!r)return home();return shell(`\x3cdiv class\x3d\\\x22w\\\x22 style\x3d\\\x22max-width:560px;padding:40px 16px;text-align:center\\\x22\x3e\x3ch2 style\x3d\\\x22color:var(--ok)\\\x22\x3eOrder placed\x3c\\\/h2\x3e\\n\x3cdiv class\x3d\\\x22box\\\x22\x3e\x3cp\x3eYour order number\x3c\\\/p\x3e\x3ch1 style\x3d\\\x22color:var(--m)\\\x22\x3e$\x7besc(r.orderNo)\x7d\x3c\\\/h1\x3e\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3e$\x7besc(r.product)\x7d x $\x7br.qty\x7d\x3c\\\/span\x3e\x3cspan\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3eDelivery\x3c\\\/span\x3e\x3cspan\x3e$\x7brs(r.delivery)\x7d\x3c\\\/span\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22sum t\\\x22\x3e\x3cspan\x3eTotal\x3c\\\/span\x3e\x3cspan\x3e$\x7brs(r.total)\x7d\x3c\\\/span\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3cp style\x3d\\\x22color:var(--mut)\\\x22\x3eWe will contact you to confirm. Keep your order number handy.\x3c\\\/p\x3e\x3ca class\x3d\\\x22btn wa\\\x22 target\x3d\\\x22_blank\\\x22 href\x3d\\\x22$\x7bwa(\x27Hello LootMall, my order number is \x27+r.orderNo+\x27.\x27)\x7d\\\x22\x3eContact us on WhatsApp\x3c\\\/a\x3e \x3cbutton class\x3d\\\x22btn o\\\x22 onclick\x3d\\\x22go(\x27\/\x27)\\\x22\x3eContinue shopping\x3c\\\/button\x3e\x3c\\\/div\x3e`)\x7d\\n\/* ---------- ADMIN ---------- *\/\\nfunction login()\x7breturn `\x3cdiv class\x3d\\\x22w\\\x22 style\x3d\\\x22max-width:380px;padding:60px 16px\\\x22\x3e\x3ch2\x3eAdmin login\x3c\\\/h2\x3e\x3clabel\x3ePassword\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22pw\\\x22 type\x3d\\\x22password\\\x22 onkeydown\x3d\\\x22if(event.key\x3d\x3d\x3d\x27Enter\x27)doLogin()\\\x22\x3e\x3cbutton class\x3d\\\x22btn\\\x22 style\x3d\\\x22width:100%;margin-top:14px\\\x22 onclick\x3d\\\x22doLogin()\\\x22\x3eLog in\x3c\\\/button\x3e\x3cp\x3e\x3ca onclick\x3d\\\x22go(\x27\/\x27)\\\x22 style\x3d\\\x22cursor:pointer;color:var(--mut)\\\x22\x3eBack to store\x3c\\\/a\x3e\x3c\\\/p\x3e\x3c\\\/div\x3e`\x7d\\nasync function doLogin()\x7btry\x7bS.tok\x3dawait run(\x27adminLogin\x27,$(\x27#pw\x27).value);await load();R()\x7dcatch(e)\x7berr(e)\x7d\x7d\\nasync function load()\x7btry\x7bS.adm\x3dawait run(\x27adminData\x27,S.tok)\x7dcatch(e)\x7bS.tok\x3dnull;err(e)\x7d\x7d\\nfunction admin()\x7bif(!S.tok)return login();if(!S.adm)return \x27\x3cdiv class\x3d\\\x22w\\\x22\x3e\x3cdiv class\x3d\\\x22sk\\\x22\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\x27;const A\x3dS.adm,P\x3dA.products,O\x3dA.orders,c\x3ds\x3d\x3eO.filter(o\x3d\x3eo.status\x3d\x3d\x3ds).length;\\nconst rev\x3dO.filter(o\x3d\x3eo.status!\x3d\x3d\x27Cancelled\x27).reduce((a,o)\x3d\x3ea+ +o.total,0);\\nconst tabs\x3d\x5b\x5b\x27dash\x27,\x27Dashboard\x27\x5d,\x5b\x27prods\x27,\x27Products\x27\x5d,\x5b\x27ords\x27,\x27Orders\x27\x5d,\x5b\x27set\x27,\x27Settings\x27\x5d\x5d;\\nlet b\x3d\x27\x27;if(S.tab\x3d\x3d\x3d\x27dash\x27)b\x3d`\x3cdiv class\x3d\\\x22sc\\\x22\x3e$\x7b\x5b\x5b\x27Total orders\x27,O.length\x5d,...ST.map(s\x3d\x3e\x5bs,c(s)\x5d),\x5b\x27Products\x27,P.length\x5d,\x5b\x27Low stock (5 or less)\x27,P.filter(p\x3d\x3e+p.stock\x3c\x3d5).length\x5d,\x5b\x27Revenue (not cancelled)\x27,rs(rev)\x5d\x5d.map(x\x3d\x3e`\x3cdiv\x3e$\x7bx\x5b0\x5d\x7d\x3cb\x3e$\x7bx\x5b1\x5d\x7d\x3c\\\/b\x3e\x3c\\\/div\x3e`).join(\x27\x27)\x7d\x3c\\\/div\x3e`;\\nif(S.tab\x3d\x3d\x3d\x27prods\x27)b\x3d`\x3cbutton class\x3d\\\x22btn\\\x22 onclick\x3d\\\x22editP()\\\x22\x3eAdd product\x3c\\\/button\x3e\x3cdiv style\x3d\\\x22overflow:auto;margin-top:12px\\\x22\x3e\x3ctable class\x3d\\\x22tbl\\\x22\x3e\x3ctr\x3e\x3cth\x3eProduct\x3c\\\/th\x3e\x3cth\x3eCategory\x3c\\\/th\x3e\x3cth\x3ePrice\x3c\\\/th\x3e\x3cth\x3eStock\x3c\\\/th\x3e\x3cth\x3eActive\x3c\\\/th\x3e\x3cth\x3e\x3c\\\/th\x3e\x3c\\\/tr\x3e$\x7bP.map(p\x3d\x3e`\x3ctr\x3e\x3ctd\x3e$\x7besc(p.name)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(p.category)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7brs(p.price)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7bp.stock\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7bp.active\x3d\x3d\x3dtrue?\x27Yes\x27:\x27No\x27\x7d\x3c\\\/td\x3e\x3ctd\x3e\x3cbutton class\x3d\\\x22btn sm o\\\x22 onclick\x3d\\\x22editP(\x27$\x7besc(p.id)\x7d\x27)\\\x22\x3eEdit\x3c\\\/button\x3e\x3c\\\/td\x3e\x3c\\\/tr\x3e`).join(\x27\x27)||\x27\x3ctr\x3e\x3ctd colspan\x3d6\x3eNo products yet.\x3c\\\/td\x3e\x3c\\\/tr\x3e\x27\x7d\x3c\\\/table\x3e\x3c\\\/div\x3e`;\\nif(S.tab\x3d\x3d\x3d\x27ords\x27)b\x3d`\x3cdiv style\x3d\\\x22overflow:auto\\\x22\x3e\x3ctable class\x3d\\\x22tbl\\\x22\x3e\x3ctr\x3e\x3cth\x3eOrder\x3c\\\/th\x3e\x3cth\x3eDate\x3c\\\/th\x3e\x3cth\x3eCustomer\x3c\\\/th\x3e\x3cth\x3eProduct\x3c\\\/th\x3e\x3cth\x3eTotal\x3c\\\/th\x3e\x3cth\x3eStatus\x3c\\\/th\x3e\x3cth\x3ePayment\x3c\\\/th\x3e\x3cth\x3e\x3c\\\/th\x3e\x3c\\\/tr\x3e$\x7bO.map(o\x3d\x3e`\x3ctr\x3e\x3ctd\x3e$\x7besc(o.orderNo)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(o.date)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(o.name)\x7d\x3cbr\x3e$\x7besc(o.phone)\x7d\x3cbr\x3e$\x7besc(o.city)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(o.product)\x7d x $\x7bo.qty\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7brs(o.total)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(o.status)\x7d\x3c\\\/td\x3e\x3ctd\x3e$\x7besc(o.payment)\x7d\x3c\\\/td\x3e\x3ctd\x3e\x3cbutton class\x3d\\\x22btn sm o\\\x22 onclick\x3d\\\x22viewO(\x27$\x7besc(o.orderNo)\x7d\x27)\\\x22\x3eOpen\x3c\\\/button\x3e\x3c\\\/td\x3e\x3c\\\/tr\x3e`).join(\x27\x27)||\x27\x3ctr\x3e\x3ctd colspan\x3d8\x3eNo orders yet.\x3c\\\/td\x3e\x3c\\\/tr\x3e\x27\x7d\x3c\\\/table\x3e\x3c\\\/div\x3e`;\\nif(S.tab\x3d\x3d\x3d\x27set\x27)\x7bconst s\x3dA.settings;b\x3d`\x3cdiv class\x3d\\\x22box\\\x22 style\x3d\\\x22max-width:600px\\\x22\x3e\x3clabel\x3eDefault delivery charge (Rs.)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22s_del\\\x22 type\x3d\\\x22number\\\x22 value\x3d\\\x22$\x7besc(s.delivery)\x7d\\\x22\x3e\\n\x3clabel\x3eCity delivery charges (one per line, like Lahore\x3d250. Use 0 for free)\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22s_cr\\\x22 rows\x3d\\\x224\\\x22\x3e$\x7besc(s.cityRates)\x7d\x3c\\\/textarea\x3e\\n\x3clabel\x3eCategories (comma separated)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22s_cat\\\x22 value\x3d\\\x22$\x7besc(s.categories)\x7d\\\x22\x3e\x3clabel\x3eWhatsApp number\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22s_wa\\\x22 value\x3d\\\x22$\x7besc(s.whatsapp)\x7d\\\x22\x3e\\n\x3clabel\x3eLogo URL\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22s_logo\\\x22 value\x3d\\\x22$\x7besc(s.logoUrl)\x7d\\\x22\x3e\x3cinput type\x3d\\\x22file\\\x22 accept\x3d\\\x22image\/*\\\x22 onchange\x3d\\\x22up(this,\x27s_logo\x27)\\\x22\x3e\x3clabel\x3eHero image URL\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22s_hero\\\x22 value\x3d\\\x22$\x7besc(s.heroImage)\x7d\\\x22\x3e\x3cinput type\x3d\\\x22file\\\x22 accept\x3d\\\x22image\/*\\\x22 onchange\x3d\\\x22up(this,\x27s_hero\x27)\\\x22\x3e\\n\x3cbutton class\x3d\\\x22btn\\\x22 style\x3d\\\x22margin-top:14px\\\x22 onclick\x3d\\\x22saveSet()\\\x22\x3eSave settings\x3c\\\/button\x3e\x3c\\\/div\x3e`\x7d\\nreturn `\x3cdiv class\x3d\\\x22w\\\x22 style\x3d\\\x22padding-top:16px\\\x22\x3e\x3cdiv style\x3d\\\x22display:flex;justify-content:space-between\\\x22\x3e\x3ch2\x3eLootMall admin\x3c\\\/h2\x3e\x3cspan\x3e\x3cbutton class\x3d\\\x22btn sm o\\\x22 onclick\x3d\\\x22go(\x27\/\x27)\\\x22\x3eView store\x3c\\\/button\x3e \x3cbutton class\x3d\\\x22btn sm o\\\x22 onclick\x3d\\\x22S.tok\x3dnull;S.adm\x3dnull;R()\\\x22\x3eLog out\x3c\\\/button\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\\n\x3cdiv class\x3d\\\x22tabs\\\x22\x3e$\x7btabs.map(t\x3d\x3e`\x3cspan class\x3d\\\x22chip $\x7bS.tab\x3d\x3d\x3dt\x5b0\x5d?\x27on\x27:\x27\x27\x7d\\\x22 onclick\x3d\\\x22S.tab\x3d\x27$\x7bt\x5b0\x5d\x7d\x27;R()\\\x22\x3e$\x7bt\x5b1\x5d\x7d\x3c\\\/span\x3e`).join(\x27\x27)\x7d\x3c\\\/div\x3e$\x7bb\x7d\x3c\\\/div\x3e`\x7d\\nfunction shrink(file,max\x3d1000)\x7breturn new Promise((ok,no)\x3d\x3e\x7bconst r\x3dnew FileReader();r.onerror\x3dno;r.onload\x3d()\x3d\x3e\x7bconst i\x3dnew Image();i.onerror\x3dno;i.onload\x3d()\x3d\x3e\x7bconst k\x3dMath.min(1,max\/Math.max(i.width,i.height)),c\x3ddocument.createElement(\x27canvas\x27);c.width\x3di.width*k;c.height\x3di.height*k;c.getContext(\x272d\x27).drawImage(i,0,0,c.width,c.height);ok(c.toDataURL(\x27image\/jpeg\x27,.85).split(\x27,\x27)\x5b1\x5d)\x7d;i.src\x3dr.result\x7d;r.readAsDataURL(file)\x7d)\x7d\\nasync function up(inp,target,cb)\x7bconst f\x3dinp.files\x5b0\x5d;if(!f)return;toast(\x27Uploading image...\x27);try\x7bconst u\x3dawait run(\x27uploadImage\x27,S.tok,await shrink(f),f.name);if(target)$(\x27#\x27+target).value\x3du;if(cb)cb(u);toast(\x27Image uploaded\x27)\x7dcatch(e)\x7btoast(\x27Image upload failed. Try a smaller image.\x27)\x7d\x7d\\nasync function saveSet()\x7btry\x7bawait run(\x27saveSettings\x27,S.tok,\x7bdelivery:$(\x27#s_del\x27).value,cityRates:$(\x27#s_cr\x27).value,categories:$(\x27#s_cat\x27).value,whatsapp:$(\x27#s_wa\x27).value,logoUrl:$(\x27#s_logo\x27).value,heroImage:$(\x27#s_hero\x27).value\x7d);await Promise.all(\x5bload(),run(\x27getStore\x27).then(x\x3d\x3eS.st\x3dx)\x5d);toast(\x27Settings saved\x27);R()\x7dcatch(e)\x7berr(e)\x7d\x7d\\nlet EP\x3dnull;\\nfunction editP(id)\x7bEP\x3dObject.assign(\x7bimages:\x27\x27,active:true,stock:0,category:L(S.adm.settings.categories.replace(\/,\/g,\x27\\\\n\x27))\x5b0\x5d\x7d,S.adm.products.find(p\x3d\x3ep.id\x3d\x3d\x3did)||\x7b\x7d);drawP()\x7d\\nfunction drawP()\x7bconst p\x3dEP,cats\x3dL(S.adm.settings.categories.replace(\/,\/g,\x27\\\\n\x27)),im\x3dIM(p),ck\x3d(k,t)\x3d\x3e`\x3clabel style\x3d\\\x22display:inline-flex;gap:5px;margin-right:12px\\\x22\x3e\x3cinput type\x3d\\\x22checkbox\\\x22 id\x3d\\\x22e_$\x7bk\x7d\\\x22 $\x7bp\x5bk\x5d\x3d\x3d\x3dtrue?\x27checked\x27:\x27\x27\x7d\x3e$\x7bt\x7d\x3c\\\/label\x3e`,v\x3dk\x3d\x3eesc(p\x5bk\x5d\x3d\x3dnull?\x27\x27:p\x5bk\x5d);\\nlet m\x3d$(\x27#modal\x27);if(!m)\x7bm\x3ddocument.createElement(\x27div\x27);m.id\x3d\x27modal\x27;m.className\x3d\x27ov\x27;document.body.appendChild(m)\x7d\\nm.innerHTML\x3d`\x3cdiv class\x3d\\\x22md\\\x22\x3e\x3ch3\x3e$\x7bp.id?\x27Edit\x27:\x27Add\x27\x7d product\x3c\\\/h3\x3e\x3clabel\x3eName *\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_name\\\x22 value\x3d\\\x22$\x7bv(\x27name\x27)\x7d\\\x22\x3e\\n\x3cdiv class\x3d\\\x22two\\\x22\x3e\x3cdiv\x3e\x3clabel\x3eCategory\x3c\\\/label\x3e\x3cselect class\x3d\\\x22f\\\x22 id\x3d\\\x22e_category\\\x22\x3e$\x7bcats.map(c\x3d\x3e`\x3coption $\x7bp.category\x3d\x3d\x3dc?\x27selected\x27:\x27\x27\x7d\x3e$\x7besc(c)\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3eBrand\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_brand\\\x22 value\x3d\\\x22$\x7bv(\x27brand\x27)\x7d\\\x22\x3e\x3c\\\/div\x3e\\n\x3cdiv\x3e\x3clabel\x3ePrice (Rs.) *\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_price\\\x22 type\x3d\\\x22number\\\x22 value\x3d\\\x22$\x7bv(\x27price\x27)\x7d\\\x22\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3eOld price (Rs.)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_oldPrice\\\x22 type\x3d\\\x22number\\\x22 value\x3d\\\x22$\x7bv(\x27oldPrice\x27)\x7d\\\x22\x3e\x3c\\\/div\x3e\\n\x3cdiv\x3e\x3clabel\x3eStock\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_stock\\\x22 type\x3d\\\x22number\\\x22 value\x3d\\\x22$\x7bv(\x27stock\x27)\x7d\\\x22\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3eSKU\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_sku\\\x22 value\x3d\\\x22$\x7bv(\x27sku\x27)\x7d\\\x22\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3clabel\x3eDelivery charge for this product (leave empty to use default\/city rates, 0 \x3d free)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_delivery\\\x22 type\x3d\\\x22number\\\x22 value\x3d\\\x22$\x7bv(\x27delivery\x27)\x7d\\\x22\x3e\\n\x3clabel\x3eImages (first one is the main image)\x3c\\\/label\x3e\x3cdiv class\x3d\\\x22ims\\\x22\x3e$\x7bim.map((u,i)\x3d\x3e`\x3cdiv class\x3d\\\x22$\x7bi?\x27\x27:\x27mn\x27\x7d\\\x22 style\x3d\\\x22background-image:url(\x27$\x7besc(u)\x7d\x27)\\\x22\x3e\x3cbutton style\x3d\\\x22left:2px\\\x22 onclick\x3d\\\x22imgOp($\x7bi\x7d,\x27main\x27)\\\x22\x3eMain\x3c\\\/button\x3e\x3cbutton style\x3d\\\x22right:2px\\\x22 onclick\x3d\\\x22imgOp($\x7bi\x7d,\x27del\x27)\\\x22\x3eX\x3c\\\/button\x3e\x3c\\\/div\x3e`).join(\x27\x27)\x7d\x3c\\\/div\x3e\x3cinput type\x3d\\\x22file\\\x22 accept\x3d\\\x22image\/*\\\x22 multiple onchange\x3d\\\x22upMany(this)\\\x22\x3e\\n\x3clabel\x3eShort description\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_shortDesc\\\x22 value\x3d\\\x22$\x7bv(\x27shortDesc\x27)\x7d\\\x22\x3e\x3clabel\x3eFull description\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22e_description\\\x22 rows\x3d\\\x224\\\x22\x3e$\x7bv(\x27description\x27)\x7d\x3c\\\/textarea\x3e\\n\x3clabel\x3eFeatures (one per line)\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22e_features\\\x22 rows\x3d\\\x223\\\x22\x3e$\x7bv(\x27features\x27)\x7d\x3c\\\/textarea\x3e\x3clabel\x3eSpecifications (one per line, like Capacity: 20,000mAh)\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22e_specs\\\x22 rows\x3d\\\x223\\\x22\x3e$\x7bv(\x27specs\x27)\x7d\x3c\\\/textarea\x3e\\n\x3clabel\x3eTags (comma separated)\x3c\\\/label\x3e\x3cinput class\x3d\\\x22f\\\x22 id\x3d\\\x22e_tags\\\x22 value\x3d\\\x22$\x7bv(\x27tags\x27)\x7d\\\x22\x3e\x3cdiv style\x3d\\\x22margin-top:12px\\\x22\x3e$\x7bck(\x27active\x27,\x27Active\x27)\x7d$\x7bck(\x27featured\x27,\x27Featured\x27)\x7d$\x7bck(\x27bestSeller\x27,\x27Best seller\x27)\x7d$\x7bck(\x27newArrival\x27,\x27New arrival\x27)\x7d\x3c\\\/div\x3e\\n\x3cdiv style\x3d\\\x22display:flex;gap:8px;margin-top:16px\\\x22\x3e\x3cbutton class\x3d\\\x22btn\\\x22 onclick\x3d\\\x22saveP()\\\x22\x3eSave product\x3c\\\/button\x3e\x3cbutton class\x3d\\\x22btn o\\\x22 onclick\x3d\\\x22closeM()\\\x22\x3eCancel\x3c\\\/button\x3e$\x7bp.id?\x27\x3cbutton class\x3d\\\x22btn d\\\x22 style\x3d\\\x22margin-left:auto\\\x22 onclick\x3d\\\x22delP()\\\x22\x3eDelete\x3c\\\/button\x3e\x27:\x27\x27\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e`\x7d\\nfunction grab()\x7b\x5b\x27name\x27,\x27category\x27,\x27brand\x27,\x27price\x27,\x27oldPrice\x27,\x27stock\x27,\x27sku\x27,\x27delivery\x27,\x27shortDesc\x27,\x27description\x27,\x27features\x27,\x27specs\x27,\x27tags\x27\x5d.forEach(k\x3d\x3eEP\x5bk\x5d\x3d$(\x27#e_\x27+k).value);\x5b\x27active\x27,\x27featured\x27,\x27bestSeller\x27,\x27newArrival\x27\x5d.forEach(k\x3d\x3eEP\x5bk\x5d\x3d$(\x27#e_\x27+k).checked)\x7d\\nfunction imgOp(i,op)\x7bgrab();const a\x3dIM(EP);if(op\x3d\x3d\x3d\x27main\x27)a.unshift(a.splice(i,1)\x5b0\x5d);else a.splice(i,1);EP.images\x3da.join(\x27\\\\n\x27);drawP()\x7d\\nasync function upMany(inp)\x7bgrab();for(const f of inp.files)\x7btoast(\x27Uploading \x27+f.name+\x27...\x27);try\x7bEP.images\x3d(EP.images?EP.images+\x27\\\\n\x27:\x27\x27)+await run(\x27uploadImage\x27,S.tok,await shrink(f),f.name)\x7dcatch(e)\x7btoast(\x27Image upload failed for \x27+f.name)\x7d\x7dtoast(\x27Done\x27);drawP()\x7d\\nconst closeM\x3d()\x3d\x3e\x7bconst m\x3d$(\x27#modal\x27);if(m)m.remove()\x7d;\\nasync function saveP()\x7bgrab();try\x7bawait run(\x27saveProduct\x27,S.tok,EP);closeM();await Promise.all(\x5bload(),run(\x27getStore\x27).then(x\x3d\x3eS.st\x3dx)\x5d);toast(\x27Product saved\x27);R()\x7dcatch(e)\x7berr(e)\x7d\x7d\\nasync function delP()\x7bif(!confirm(\x27Delete this product permanently?\x27))return;try\x7bawait run(\x27deleteProduct\x27,S.tok,EP.id);closeM();await load();S.st\x3dawait run(\x27getStore\x27);R()\x7dcatch(e)\x7berr(e)\x7d\x7d\\nfunction viewO(no)\x7bconst o\x3dS.adm.orders.find(x\x3d\x3ex.orderNo\x3d\x3d\x3dno);let m\x3d$(\x27#modal\x27);if(!m)\x7bm\x3ddocument.createElement(\x27div\x27);m.id\x3d\x27modal\x27;m.className\x3d\x27ov\x27;document.body.appendChild(m)\x7d\\nm.innerHTML\x3d`\x3cdiv class\x3d\\\x22md\\\x22\x3e\x3ch3\x3e$\x7besc(o.orderNo)\x7d\x3c\\\/h3\x3e\x3cp\x3e$\x7besc(o.date)\x7d\x3cbr\x3e\x3cb\x3e$\x7besc(o.name)\x7d\x3c\\\/b\x3e | $\x7besc(o.phone)\x7d | WhatsApp $\x7besc(o.whatsapp)\x7d\x3cbr\x3e$\x7besc(o.address)\x7d, $\x7besc(o.city)\x7d, $\x7besc(o.province)\x7d\x3c\\\/p\x3e\\n\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3e$\x7besc(o.product)\x7d x $\x7bo.qty\x7d @ $\x7brs(o.price)\x7d\x3c\\\/span\x3e\x3cspan\x3e\x3c\\\/span\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22sum\\\x22\x3e\x3cspan\x3eDelivery\x3c\\\/span\x3e\x3cspan\x3e$\x7brs(o.delivery)\x7d\x3c\\\/span\x3e\x3c\\\/div\x3e\x3cdiv class\x3d\\\x22sum t\\\x22\x3e\x3cspan\x3eTotal\x3c\\\/span\x3e\x3cspan\x3e$\x7brs(o.total)\x7d\x3c\\\/span\x3e\x3c\\\/div\x3e$\x7bo.notes?`\x3cp\x3e\x3cb\x3eCustomer note:\x3c\\\/b\x3e $\x7besc(o.notes)\x7d\x3c\\\/p\x3e`:\x27\x27\x7d\\n\x3cdiv class\x3d\\\x22two\\\x22\x3e\x3cdiv\x3e\x3clabel\x3eOrder status\x3c\\\/label\x3e\x3cselect class\x3d\\\x22f\\\x22 id\x3d\\\x22o_s\\\x22\x3e$\x7bST.map(x\x3d\x3e`\x3coption $\x7bo.status\x3d\x3d\x3dx?\x27selected\x27:\x27\x27\x7d\x3e$\x7bx\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\x3c\\\/div\x3e\x3cdiv\x3e\x3clabel\x3ePayment status\x3c\\\/label\x3e\x3cselect class\x3d\\\x22f\\\x22 id\x3d\\\x22o_p\\\x22\x3e$\x7bPAY.map(x\x3d\x3e`\x3coption $\x7bo.payment\x3d\x3d\x3dx?\x27selected\x27:\x27\x27\x7d\x3e$\x7bx\x7d\x3c\\\/option\x3e`).join(\x27\x27)\x7d\x3c\\\/select\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3clabel\x3eInternal notes\x3c\\\/label\x3e\x3ctextarea class\x3d\\\x22f\\\x22 id\x3d\\\x22o_n\\\x22 rows\x3d\\\x223\\\x22\x3e$\x7besc(o.internalNotes)\x7d\x3c\\\/textarea\x3e\\n\x3cdiv style\x3d\\\x22display:flex;gap:8px;margin-top:14px;flex-wrap:wrap\\\x22\x3e\x3cbutton class\x3d\\\x22btn\\\x22 onclick\x3d\\\x22saveO(\x27$\x7besc(no)\x7d\x27)\\\x22\x3eSave\x3c\\\/button\x3e\x3cbutton class\x3d\\\x22btn o\\\x22 onclick\x3d\\\x22invoice(\x27$\x7besc(no)\x7d\x27)\\\x22\x3ePrint \/ save invoice PDF\x3c\\\/button\x3e\x3cbutton class\x3d\\\x22btn o\\\x22 onclick\x3d\\\x22closeM()\\\x22\x3eClose\x3c\\\/button\x3e\x3c\\\/div\x3e\x3c\\\/div\x3e`\x7d\\nasync function saveO(no)\x7btry\x7bawait run(\x27updateOrder\x27,S.tok,no,\x7bstatus:$(\x27#o_s\x27).value,payment:$(\x27#o_p\x27).value,internalNotes:$(\x27#o_n\x27).value\x7d);await load();closeM();toast(\x27Order updated\x27);R()\x7dcatch(e)\x7berr(e)\x7d\x7d\\nfunction invoice(no)\x7bconst o\x3dS.adm.orders.find(x\x3d\x3ex.orderNo\x3d\x3d\x3dno),s\x3dS.adm.settings;\\n$(\x27#inv\x27).innerHTML\x3d`\x3cdiv style\x3d\\\x22max-width:600px;margin:auto\\\x22\x3e\x3cdiv style\x3d\\\x22display:flex;justify-content:space-between;border-bottom:2px solid #7A1F2B;padding-bottom:10px\\\x22\x3e$\x7bs.logoUrl?`\x3cimg src\x3d\\\x22$\x7besc(s.logoUrl)\x7d\\\x22 style\x3d\\\x22height:44px\\\x22\x3e`:\x27\x3cb style\x3d\\\x22font-size:24px;color:#7A1F2B\\\x22\x3eLootMall\x3c\\\/b\x3e\x27\x7d\x3cdiv style\x3d\\\x22text-align:right\\\x22\x3e\x3cb\x3eINVOICE\x3c\\\/b\x3e\x3cbr\x3e$\x7besc(o.orderNo)\x7d\x3cbr\x3e$\x7besc(o.date)\x7d\x3c\\\/div\x3e\x3c\\\/div\x3e\\n\x3cp\x3e\x3cb\x3eLootMall\x3c\\\/b\x3e | Shop Smart, Save Big Every Day\x3c\\\/p\x3e\x3cp\x3e\x3cb\x3eBill to\x3c\\\/b\x3e\x3cbr\x3e$\x7besc(o.name)\x7d\x3cbr\x3e$\x7besc(o.phone)\x7d\x3cbr\x3e$\x7besc(o.address)\x7d, $\x7besc(o.city)\x7d, $\x7besc(o.province)\x7d\x3c\\\/p\x3e\\n\x3ctable style\x3d\\\x22width:100%;border-collapse:collapse\\\x22\x3e\x3ctr style\x3d\\\x22background:#f3ece8\\\x22\x3e\x3cth align\x3dleft style\x3d\\\x22padding:6px\\\x22\x3eProduct\x3c\\\/th\x3e\x3cth\x3eQty\x3c\\\/th\x3e\x3cth align\x3dright\x3eUnit price\x3c\\\/th\x3e\x3cth align\x3dright\x3eAmount\x3c\\\/th\x3e\x3c\\\/tr\x3e\x3ctr\x3e\x3ctd style\x3d\\\x22padding:6px\\\x22\x3e$\x7besc(o.product)\x7d\x3c\\\/td\x3e\x3ctd align\x3dcenter\x3e$\x7bo.qty\x7d\x3c\\\/td\x3e\x3ctd align\x3dright\x3e$\x7brs(o.price)\x7d\x3c\\\/td\x3e\x3ctd align\x3dright\x3e$\x7brs(o.price*o.qty)\x7d\x3c\\\/td\x3e\x3c\\\/tr\x3e\x3c\\\/table\x3e\\n\x3cp style\x3d\\\x22text-align:right\\\x22\x3eDelivery: $\x7brs(o.delivery)\x7d\x3cbr\x3e\x3cb style\x3d\\\x22font-size:16px\\\x22\x3eTotal: $\x7brs(o.total)\x7d\x3c\\\/b\x3e\x3c\\\/p\x3e\x3cp\x3ePayment: \x3cb\x3e$\x7besc(o.payment)\x7d\x3c\\\/b\x3e | Order status: \x3cb\x3e$\x7besc(o.status)\x7d\x3c\\\/b\x3e\x3c\\\/p\x3e\\n\x3cp style\x3d\\\x22border-top:1px solid #ddd;padding-top:8px\\\x22\x3eSupport WhatsApp: $\x7besc(s.whatsapp)\x7d | lootmall.online\x3c\\\/p\x3e\x3c\\\/div\x3e`;setTimeout(()\x3d\x3eprint(),150)\x7d\\n\/* ---------- ROUTER ---------- *\/\\nfunction R()\x7bconst h\x3dlocation.hash.replace(\/^#\/,\x27\x27)||\x27\/\x27,a\x3dh.split(\x27\/\x27);let html;\\nif(a\x5b1\x5d\x3d\x3d\x3d\x27admin\x27)html\x3dadmin();else if(!S.st)return;else if(a\x5b1\x5d\x3d\x3d\x3d\x27p\x27)html\x3dprod(a\x5b2\x5d);else if(a\x5b1\x5d\x3d\x3d\x3d\x27order\x27)html\x3dorder(a\x5b2\x5d);else if(a\x5b1\x5d\x3d\x3d\x3d\x27done\x27)html\x3ddone();else html\x3dhome();\\nconst q\x3ddocument.activeElement\x26\x26document.activeElement.id\x3d\x3d\x3d\x27q\x27;$(\x27#app\x27).innerHTML\x3dhtml;if(a\x5b1\x5d\x3d\x3d\x3d\x27order\x27)sum();if(q)$(\x27#q\x27).focus()\x7d\\nwindow.addEventListener(\x27hashchange\x27,()\x3d\x3e\x7bS.img\x3d0;S.qty\x3d1;closeM();R();scrollTo(0,0)\x7d);\\nrun(\x27getStore\x27).then(x\x3d\x3e\x7bS.st\x3dx;R()\x7d).catch(()\x3d\x3e\x7b$(\x27#app\x27).innerHTML\x3d\x27\x3cdiv class\x3d\\\x22w empty\\\x22\x3e\x3ch3\x3eStore could not load\x3c\\\/h3\x3e\x3cp\x3ePlease refresh the page.\x3c\\\/p\x3e\x3c\\\/div\x3e\x27\x7d);\\n\x3c\\\/script\x3e\x3c\\\/body\x3e\x3c\\\/html\x3e\x22,\x22ncc\x22:\x22\x7b\\\x22awhs\\\x22:true\x7d\x22\x7d", "", undefined, true , false  , "false", "https:\/\/n-ru6x4o3eijntuwicjf55hhyvqi7wuhgb64ajxri-0lu-script.googleusercontent.com", "https:\/\/drive.google.com\/abuse?id\x3dAAMpA0TD7iRqLwdMtofuL8allydBo6uaO0p9HtvtI61bsQ2IsLzcqJBl_MDBFj_STNsB6iE9MHGS5Rdbb1tJSeUp9YUUKfAG7X2gIHkI%3A0\x26docurl\x3dhttps%3A%2F%2Fscript.google.com%2Fmacros%2Fs%2FAKfycbwdWhuMqml3AQ_GgHoJf6ofPVbTxsA6objdaxGHi8KUf06CQgxTr9Lc9Onzkr4hjVQj%2Fexec");}
el.src = 'https:\/\/n-ru6x4o3eijntuwicjf55hhyvqi7wuhgb64ajxri-0lu-script.googleusercontent.com\/userCodeAppPanel';
}());
</script>
</body>
</html>
