File size: 35,444 Bytes
cca0cf3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 | /**
* @fileoverview App Shell, Main Dashboard Layout, PWA Install Banner & Live Monitoring Console
* @module ui/shell-layout
* @description بناء الهيكل البصري للتطبيق، شريط الإحصائيات العلوي، شريط تثبيت تطبيق الهاتف PWA، لوحة الأوامر السريعة، وشاشة مراقبة الحملات الحية.
*/
(global => {
'use strict';
/**
* بناء الهيكل الخارجي وشريط الترويسة العلوي وشريط تثبيت الـ PWA
*/
function buildOuterWorkspaceLayout() {
if (document.getElementById('s7ihkirolg')) return;
const shell = document.createElement('div');
shell.className = 'irhpamtq54';
shell.style.cssText = 'max-width: min(1680px, 98vw); margin: 0 auto; width: 100%; direction: rtl; text-align: right; box-sizing: border-box;';
shell.innerHTML = `
<div class="m4lmkqf6g6" style="grid-template-columns: 1fr; width: 100%;">
<aside class="yrxwz6d21i" id="bmh59axx92" style="display: none !important;"></aside>
<main class="e9nzyvdz8z" id="s7ihkirolg" style="width: 100%; min-width: 0;">
<!-- شريط تنبيه وتثبيت تطبيق الهاتف PWA -->
<div id="fritree-pwa-install-banner" class="d5tp7way8h" style="display: none; border: 1px solid var(--primary-border); background: var(--primary-light); padding: 12px 16px; margin: 0; box-sizing: border-box; border-radius: var(--radius-lg);">
<div style="display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;">
<div style="display: flex; align-items: center; gap: 10px;">
<div style="width: 38px; height: 38px; border-radius: 50%; background: var(--primary); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0;">
<i class="fa-solid fa-mobile-screen-button"></i>
</div>
<div>
<strong style="font-size: 13px; color: var(--text-main); display: block;"><i class="fa-solid fa-cloud-arrow-down"></i> <span>تثبيت تطبيق فريتري على جهازك</span></strong>
<span style="font-size: 11px; color: var(--text-secondary); font-weight: 600;">ثبّت المنصة في قائمة تطبيقات هاتفك للوصول السريع بدون فتح المتصفح.</span>
</div>
</div>
<div style="display: flex; gap: 6px; align-items: center;">
<button type="button" id="btn-pwa-grant-perms" class="ipxi2jz4g0" style="padding: 6px 12px; font-size: 11px; font-weight: 800; min-height: 32px;" title="تفعيل صلاحيات الإشعارات وقفل الشاشة">
<i class="fa-solid fa-shield-halved" style="color: var(--primary);"></i> <span>تفعيل الصلاحيات</span>
</button>
<button type="button" id="btn-pwa-install-app" class="itdnt14mss" style="padding: 6px 14px; font-size: 11.5px; font-weight: 800; min-height: 32px;">
<i class="fa-solid fa-download"></i> <span>تثبيت التطبيق الآن</span>
</button>
</div>
</div>
</div>
<header style="flex-wrap: wrap; gap: 10px; box-sizing: border-box;" id="tqg8vnolvo">
<div class="swy9zjes8j" style="flex-wrap: wrap; width: 100%; justify-content: space-between; align-items: center; gap: 8px;">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap;">
<img src="icon.png" id="uzyaoqkxib" data-target="h7qak5tprs" alt="الصفحة الرئيسية" style="cursor: pointer; user-select: none; -webkit-user-drag: none;" title="الصفحة الرئيسية">
<div id="b8imusheoz" class="zcsc0rlnfn" style="border: 1px solid var(--border); cursor: pointer;" title="نقاط النشر المتاحة لفيسبوك - اضغط لفتح المحرر">
<i class="fa-brands fa-facebook" style="color: #1877f2;"></i>
<span>فيسبوك: </span><span id="n2jtnhukcl" style="font-family: var(--font-code);">0</span>
</div>
<div id="nog5je6ddx" class="zcsc0rlnfn" style="border: 1px solid var(--border); cursor: pointer;" title="نقاط البث المتاحة لواتساب - اضغط لفتح المحرر">
<i class="fa-brands fa-whatsapp" style="color: #00a884;"></i>
<span>واتساب: </span><span id="b8bid195p8" style="font-family: var(--font-code);">0</span>
</div>
<div id="frtal49mqm" class="zcsc0rlnfn yellow" style="cursor: pointer;" title="اضغط لفتح المحفظة الموحدة">
<i class="fa-solid fa-wallet" style="color: #d97706;"></i>
<span>محفظة: $</span><span id="q20kc2pzo4" style="font-family: var(--font-code);">0.00</span>
</div>
<button type="button" id="fritree-pwa-install-btn" class="itdnt14mss" style="display: none; padding: 4px 10px; font-size: 11px; min-height: 32px; border-radius: var(--radius-pill);" title="تثبيت التطبيق على جهازك">
<i class="fa-solid fa-download"></i> <span>تثبيت التطبيق</span>
</button>
</div>
</div>
</header>
<div id="ns1lig1nty" class="d5tp7way8h" style="display: none; border: 1px solid var(--danger-border); background: var(--danger-light); padding: 14px; margin: 0; box-sizing: border-box;">
<div style="display: flex; align-items: center; gap: 12px;">
<i class="fa-solid fa-triangle-exclamation fa-2x" style="color: var(--danger);"></i>
<div>
<h4 style="font-size: 13px; margin: 0; font-weight: 800; color: var(--danger);"><i class="fa-solid fa-link-slash"></i> <span>واتساب ويب غير متصل</span></h4>
<p style="font-size: 11px; margin: 2px 0 0 0; color: var(--text-secondary);"><i class="fa-solid fa-circle-info"></i> <span>افتح واتساب ويب واعمل ربط للجلسة عشان تقدر تبعت الرسائل بأمان وسلاسة.</span></p>
</div>
</div>
</div>
<!-- الحاوية المخصصة لعرض صفحات وأقسام الموقع في الأعلى -->
<div id="fritree-dynamic-panes-host" style="display: flex; flex-direction: column; gap: var(--space-md); width: 100%;"></div>
</main>
</div>
`;
document.body.appendChild(shell);
bindPwaBannerEvents();
}
/**
* ربط أحداث شريط تثبيت الـ PWA والصلاحيات
*/
function bindPwaBannerEvents() {
const installBtnHeader = document.getElementById('fritree-pwa-install-btn');
const installBtnBanner = document.getElementById('btn-pwa-install-app');
const permsBtn = document.getElementById('btn-pwa-grant-perms');
const handleInstall = () => {
if (global.FritreePWABridge && typeof global.FritreePWABridge.promptInstall === 'function') {
global.FritreePWABridge.promptInstall();
}
};
if (installBtnHeader) installBtnHeader.onclick = handleInstall;
if (installBtnBanner) installBtnBanner.onclick = handleInstall;
if (permsBtn) {
permsBtn.onclick = async () => {
if (global.FritreePWABridge && typeof global.FritreePWABridge.requestAllPermissions === 'function') {
permsBtn.innerHTML = '<i class="fa-solid fa-spinner fa-spin"></i> <span>جاري التفعيل...</span>';
const res = await global.FritreePWABridge.requestAllPermissions();
permsBtn.innerHTML = '<i class="fa-solid fa-check" style="color:var(--success);"></i> <span>تم تفعيل الصلاحيات</span>';
alert(`تم تفعيل الصلاحيات بنجاح:\n- الإشعارات: ${res.notifications ? 'مفعلة ✔' : 'مرفوضة'}\n- منع إغلاق الشاشة: ${res.wakeLock ? 'مفعل ✔' : 'غير مدعوم'}`);
}
};
}
}
/**
* بناء شاشة لوحة المعلومات والوصول السريع (Home Hub)
*/
function buildDashboardPane() {
if (document.getElementById('h7qak5tprs')) return;
const pane = document.createElement('section');
pane.className = 'rjiai07g77 vn5qn7dmpk';
pane.id = 'h7qak5tprs';
pane.innerHTML = `
<div class="d5tp7way8h zcjbe1otmg" style="margin: 0; padding: clamp(14px, 1.8vw, 24px); border-radius: var(--radius-xl); border: 1px solid var(--border); box-sizing: border-box;">
<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; border-bottom: 1.5px dashed var(--border); padding-bottom: 12px; margin-bottom: 8px;">
<div>
<strong style="font-size: clamp(14px, 1.1vw, 16px); display: flex; align-items: center; gap: 8px; color: var(--text-main);">
<i class="fa-solid fa-bolt" style="color: var(--primary);"></i> <span>مركز الأوامر والوصول السريع المباشر</span>
</strong>
<span style="font-size: 11px; margin-top: 3px; display: block; font-weight: 700; color: var(--text-muted);">
<i class="fa-solid fa-hand-pointer"></i> ادخل على أي قسم أو أداة بضغطة زر واحدة بس!
</span>
</div>
</div>
<div class="dor4fqny2d">
<button type="button" class="h91buejhw9" data-target="sf1xx5vcac">
<i class="fa-brands fa-facebook" style="color: #1877f2;"></i> <span>منشور فيسبوك</span>
</button>
<button type="button" class="h91buejhw9" data-target="sf8pufcpyl">
<i class="fa-brands fa-whatsapp" style="color: #00a884;"></i> <span>إرسال واتساب</span>
</button>
<button type="button" class="h91buejhw9" data-target="ss7cgkeahf">
<i class="fa-solid fa-calendar-plus" style="color: #3b82f6;"></i> <span>جدولة حملة</span>
</button>
<button type="button" class="h91buejhw9" data-target="i2ohy2hnfl">
<i class="fa-solid fa-arrows-spin" style="color: #0d9488;"></i> <span>تدوير المحتوى</span>
</button>
<button type="button" class="h91buejhw9" data-target="ny517knjde">
<i class="fa-solid fa-address-book" style="color: #0284c7;"></i> <span>جهات الاتصال</span>
</button>
<button type="button" class="h91buejhw9" data-target="gaap721x61">
<i class="fa-solid fa-calendar-check" style="color: #1d4ed8;"></i> <span>تقويم الأجندة</span>
</button>
<button type="button" class="h91buejhw9" data-target="j2nzw12azj">
<i class="fa-solid fa-wallet" style="color: #b45309;"></i> <span>المحفظة والخزنة</span>
</button>
<button type="button" class="h91buejhw9" data-target="dc1z57si9s">
<i class="fa-solid fa-cart-shopping" style="color: #7c3aed;"></i> <span>متجر النقاط</span>
</button>
<button type="button" class="h91buejhw9" data-target="qt3bcp0qq8">
<i class="fa-solid fa-user-shield" style="color: #6366f1;"></i> <span>أمان الحساب</span>
</button>
<button type="button" class="h91buejhw9" data-target="xhcwhbkzqe">
<i class="fa-solid fa-box-archive" style="color: #2563eb;"></i> <span>أرشيف الحملات</span>
</button>
<button type="button" class="h91buejhw9" data-target="oboufoudrv">
<i class="fa-solid fa-database" style="color: #059669;"></i> <span>تصدير واستيراد</span>
</button>
<button type="button" class="h91buejhw9" data-target="xrsxtjzo87">
<i class="fa-solid fa-headset" style="color: #d97706;"></i> <span>الدعم والشحن</span>
</button>
</div>
</div>
<!-- بطاقات حالة الاتصال المباشر لفيسبوك وواتساب -->
<div class="xd506q5mar" style="grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-bottom: 0;">
<div class="d5tp7way8h" style="margin: 0; padding: clamp(14px, 1.4vw, 18px); border-radius: var(--radius-lg); border: 1px solid var(--border);">
<div class="cm41ch7urz" style="margin-bottom: 10px; font-size: 14px;"><i class="fa-brands fa-facebook" style="color: #1877f2;"></i> <span>حالة اتصال فيسبوك</span></div>
<div class="xd506q5mar" style="grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 0;">
<div class="r6wq5imop6" id="d769nsyxio" style="padding: 12px; cursor: pointer; border: 1px solid var(--border);" title="اضغط لفتح فيسبوك داخل نافذة معزولة للتوثيق">
<div class="kisn3ao2tz" id="mbgc4irrsa" style="font-size: 14px;"><i class="fa-solid fa-plug-circle-xmark"></i> <span>غير متصل</span></div>
<div class="h7ren96m5v"><i class="fa-solid fa-signal"></i> <span>حالة الجلسة</span></div>
</div>
<div class="r6wq5imop6" style="padding: 12px; border: 1px solid var(--border);">
<div class="kisn3ao2tz" id="ua07ivc7rv" style="font-size: 16px; font-family: var(--font-code);"><i class="fa-solid fa-users"></i> 0</div>
<div class="h7ren96m5v"><i class="fa-solid fa-users"></i> <span>الجروبات المزامنة</span></div>
</div>
</div>
</div>
<div class="d5tp7way8h" style="margin: 0; padding: clamp(14px, 1.4vw, 18px); border-radius: var(--radius-lg); border: 1px solid var(--border);">
<div class="cm41ch7urz" style="margin-bottom: 10px; font-size: 14px;"><i class="fa-brands fa-whatsapp" style="color: #00a884;"></i> <span>حالة اتصال واتساب</span></div>
<div class="xd506q5mar" style="grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 0;">
<div class="r6wq5imop6" id="hzo3r22pug" style="padding: 12px; cursor: pointer; border: 1px solid var(--border);" title="اضغط لمزامنة جلسة واتساب ويب">
<div class="kisn3ao2tz" id="hii0s83z9e" style="font-size: 14px;"><i class="fa-solid fa-plug-circle-xmark"></i> <span>غير متصل</span></div>
<div class="h7ren96m5v"><i class="fa-solid fa-plug"></i> <span>حالة الجلسة</span></div>
</div>
<div class="r6wq5imop6" style="padding: 12px; border: 1px solid var(--border);">
<div class="kisn3ao2tz" id="e0d7uvlv6x" style="font-size: 16px; font-family: var(--font-code);"><i class="fa-solid fa-paper-plane"></i> 0</div>
<div class="h7ren96m5v"><i class="fa-solid fa-clock"></i> <span>المرسل النهاردة</span></div>
</div>
</div>
</div>
</div>
<!-- بطاقة محرك التخفي ومحاكاة السلوك البشري -->
<div class="d5tp7way8h" id="zkc6tibykk" style="margin: 0; padding: clamp(14px, 1.4vw, 18px); border-radius: var(--radius-lg); border: 1px solid var(--border);">
<div style="display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;">
<div>
<h4 style="font-size: 14px; margin: 0; font-weight: 900; color: var(--text-main); display: flex; align-items: center; gap: 6px;">
<i class="fa-solid fa-shield-halved" style="color: var(--primary);"></i> <span>محرك التخفي ومحاكاة السلوك البشري</span>
</h4>
<p style="font-size: 11px; margin: 4px 0 0 0; color: var(--text-muted); font-weight: 600;"><i class="fa-solid fa-lock-open"></i> <span>دروع التمويه متفعلة لحماية حسابك من الحظر أوتوماتيك.</span></p>
</div>
<div style="display: flex; gap: 8px;">
<button id="n3jlayvv4s" class="ipxi2jz4g0" style="cursor: pointer; font-size: 11.5px; padding: 6px 12px;"><i class="fa-solid fa-sliders"></i> <span>تعديل الدروع</span></button>
</div>
</div>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-top: 10px; border-top: 1px solid var(--border); padding-top: 12px; text-align: center;">
<div style="padding: 10px; border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--bg-subtle);">
<div style="font-size: 13px; font-weight: 800; font-family: var(--font-code); color: var(--text-main);" id="cryhyw49fg"><i class="fa-solid fa-arrows-up-down"></i> <span>250 بكسل</span></div>
<div style="font-size: 10px; color: var(--text-muted); margin-top: 2px; font-weight: 700;"><i class="fa-solid fa-circle-nodes"></i> <span>خطوة التصفح</span></div>
</div>
<div style="padding: 10px; border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--bg-subtle);">
<div style="font-size: 13px; font-weight: 800; font-family: var(--font-code); color: var(--text-main);" id="qvdbfnv1sv"><i class="fa-solid fa-rotate"></i> <span>4 دورات</span></div>
<div style="font-size: 10px; color: var(--text-muted); margin-top: 2px; font-weight: 700;"><i class="fa-solid fa-book-open"></i> <span>محاكاة القراءة</span></div>
</div>
<div style="padding: 10px; border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--bg-subtle);">
<div style="font-size: 13px; font-weight: 800; font-family: var(--font-code); color: var(--text-main);" id="a1tu62e9st"><i class="fa-solid fa-bezier-curve"></i> <span>5 مسارات</span></div>
<div style="font-size: 10px; color: var(--text-muted); margin-top: 2px; font-weight: 700;"><i class="fa-solid fa-arrow-pointer"></i> <span>مسارات الماوس</span></div>
</div>
</div>
</div>
<!-- بطاقة التحديات اليومية وترقية المستوى -->
<div class="d5tp7way8h" style="margin: 0; padding: clamp(14px, 1.4vw, 18px); border-radius: var(--radius-lg); border: 1px solid var(--border);">
<div class="cm41ch7urz" style="margin-bottom: 6px; font-size: 14px;">
<span><i class="fa-solid fa-list-check" style="color: var(--primary);"></i> <span>التحديات اليومية وترقية المستوى (XP)</span></span>
</div>
<p style="font-size: 11.5px; color: var(--text-muted); margin-bottom: 10px; font-weight: 600;"><i class="fa-solid fa-fire" style="color: #f59e0b;"></i> <span>شغل حملاتك عشان تجمع نقاط خبرة وترقي حسابك وتاخد أرصدة شحن مجانية فوراً!</span></p>
<div id="i1zkb75b5a" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; direction: rtl; text-align: right;"></div>
</div>
`;
const host = document.getElementById('fritree-dynamic-panes-host') || document.getElementById('s7ihkirolg');
if (host) {
host.appendChild(pane);
}
}
/**
* بناء شاشة مراقبة الحملات المباشرة والأداء والـ Terminal
*/
function buildLiveMonitoringConsole() {
const contentArea = document.getElementById('s7ihkirolg');
if (!contentArea || document.getElementById('cxyr0eirov')) return;
const processPanel = document.createElement('div');
processPanel.className = 'd5tp7way8h zcjbe1otmg';
processPanel.id = 'cxyr0eirov';
processPanel.style.cssText = 'margin-top: 14px; padding: clamp(14px, 1.6vw, 22px); border-radius: var(--radius-xl); border: 1px solid var(--border); direction: rtl; text-align: right; background: var(--bg-card); width: 100%; box-sizing: border-box;';
processPanel.innerHTML = `
<div class="cm41ch7urz" style="margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom: 10px;">
<i class="fa-solid fa-desktop" style="color: var(--primary);"></i>
<span style="font-weight: 900; font-size: 14.5px;">شاشة متابعة الحملات المباشرة والأداء</span>
</div>
<div class="xd506q5mar" style="grid-template-columns: repeat(auto-fit, minmax(clamp(110px, 9vw, 140px), 1fr)); gap: 8px; margin-bottom: 12px;">
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="uns2dhjlx2"><i class="fa-solid fa-users" style="font-size:15px; color:#1877f2;"></i> 0</div><div class="h7ren96m5v"><span>جروبات فيسبوك</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="yn082h7vxq"><i class="fa-solid fa-thumbs-up" style="font-size:15px; color:#10b981;"></i> 0</div><div class="h7ren96m5v"><span>منشورات ناجحة</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="pe147sfejg"><i class="fa-solid fa-hourglass-half" style="font-size:15px; color:#f59e0b;"></i> 0</div><div class="h7ren96m5v"><span>قيد المراجعة</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="c2hyj1dsyf"><i class="fa-solid fa-triangle-exclamation" style="font-size:15px; color:#ef4444;"></i> 0</div><div class="h7ren96m5v"><span>منشورات مرفوضة</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="n5kl1m8coi"><i class="fa-solid fa-address-book" style="font-size:15px; color:#00a884;"></i> 0</div><div class="h7ren96m5v"><span>مستلمي واتساب</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="hig5lc1irj"><i class="fa-solid fa-paper-plane" style="font-size:15px; color:#00a884;"></i> 0</div><div class="h7ren96m5v"><span>رسائل مرسلة</span></div></div>
</div>
<div class="xd506q5mar dg59hwiq63" style="grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin-bottom: 12px;">
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="ctldyt8www" style="font-family: var(--font-code);"><i class="fa-solid fa-clock" style="font-size:15px;"></i> 00:00:00</div><div class="h7ren96m5v"><i class="fa-solid fa-stopwatch"></i> <span>وقت النشر الفعلي</span></div></div>
<div class="r6wq5imop6"><div class="kisn3ao2tz" id="idrsed82qy" style="font-family: var(--font-code);"><i class="fa-solid fa-hourglass-start" style="font-size:15px;"></i> 00:00:00</div><div class="h7ren96m5v"><i class="fa-solid fa-hourglass-start"></i> <span>أوقات الانتظار والتبريد</span></div></div>
<div class="r6wq5imop6" id="h4we1yzu71" style="cursor: pointer; border: 1px solid var(--border);" title="اضغط لفتح إعدادات فترات الانتظار والمحاكي">
<div class="kisn3ao2tz" id="e8fmmjhyng" style="font-family: var(--font-code);"><i class="fa-solid fa-gauge" style="font-size:15px; color:#6366f1;"></i> 60 ثانية</div>
<div class="h7ren96m5v"><i class="fa-solid fa-gauge"></i> <span>متوسط فترة التبريد</span></div>
</div>
</div>
<div id="ybx74js4oc" style="margin-bottom: 10px; display: flex; flex-direction: column; gap: 8px; border-bottom: 1px dashed var(--border); padding-bottom: 10px;">
<div id="o49zivp1bg" style="display: block;">
<div style="display: flex; justify-content: space-between; font-size: 11.5px; font-weight: 800; color: var(--text-main); margin-bottom: 4px;">
<span id="o6po6u1x7f"><i class="fa-brands fa-facebook" style="color: #1877f2;"></i> <span>معدل تقدم إرسال حملة فيسبوك النشطة:</span></span>
<span id="gu66d84s18" style="font-family: var(--font-code);">0%</span>
</div>
<div class="s58rzsrk81"><div class="xv12sshgcd" id="yuc3c21zr2"></div></div>
</div>
</div>
<div>
<div style="display: flex; justify-content: space-between; font-size: 11.5px; font-weight: 800; color: var(--text-main); margin-bottom: 4px;">
<span id="khxupgp5kg"><i class="fa-brands fa-whatsapp" style="color: #00a884;"></i> <span>معدل تقدم إرسال حملة الواتساب النشطة:</span></span>
<span id="z5eisfkgpg" style="font-family: var(--font-code);">0%</span>
</div>
<div class="s58rzsrk81"><div class="xv12sshgcd" id="vsc6h9bses" style="background: linear-gradient(90deg, #10b981, #059669);"></div></div>
</div>
`;
contentArea.appendChild(processPanel);
const logsGrid = document.createElement('div');
logsGrid.className = 'xd506q5mar zcjbe1otmg';
logsGrid.style.cssText = 'grid-template-columns: repeat(auto-fit, minmax(clamp(280px, 28vw, 420px), 1fr)); gap: 12px; margin-top: 12px; direction: rtl; text-align: right; width: 100%; box-sizing: border-box;';
logsGrid.innerHTML = `
<div class="xqkt2dawl5" style="margin: 0; padding: 14px; border-radius: var(--radius-lg); box-sizing: border-box;">
<div class="wczdtelsho" style="padding-bottom: 8px; margin-bottom: 8px;">
<span class="z32huijvo4"><i class="fa-solid fa-terminal"></i> <span>سجل الأوامر المباشر ورصد الـ XP</span></span>
<div style="display:flex; gap: 6px;">
<button id="wjdexzlzuv" class="ipxi2jz4g0" title="مسح سجل الأوامر" style="background:#1e293b; color:white; border:none; padding:4px 8px; border-radius:4px; cursor:pointer; min-height:28px;"><i class="fa-solid fa-broom"></i> </button>
<button id="s24x8dpijy" class="ipxi2jz4g0" title="إيقاف مؤقت لشاشة السجل" style="background:#1e293b; color:white; border:none; padding:4px 8px; border-radius:4px; cursor:pointer; min-height:28px;"><i class="fa-solid fa-pause"></i> </button>
</div>
</div>
<div class="l892o3saqa" id="r99bttinj8" style="height: 240px;">
<div class="xat4o6cs3m"><span class="fe5xz6pikv">[00:00:00]</span><span class="ma43slkxth"><i class="fa-solid fa-shield-halved"></i> <span>تم تشغيل بيئة العمل ورادار الأمان والتحديث المباشر بنجاح!</span></span></div>
</div>
</div>
<div class="d5tp7way8h" style="margin: 0; padding: 14px; border-radius: var(--radius-lg); max-height: 320px; overflow-y: auto; box-sizing: border-box; border: 1px solid var(--border);">
<div class="cm41ch7urz" style="margin-bottom: 8px; font-size: 13.5px;"><i class="fa-solid fa-link" style="color: var(--primary);"></i> <span>سجل النشر المباشر وروابط الإثبات</span></div>
<div class="diktqr0h64" style="max-height: 220px; border: none; border-radius: 0;">
<table id="rne8yohkuk" style="width: 100%; min-width: 320px;">
<thead>
<tr>
<th style="width: 35%; text-align: right;"><i class="fa-solid fa-bullseye"></i> <span>الوجهة المستهدفة</span></th>
<th style="width: 25%; text-align: center;"><i class="fa-solid fa-circle-info"></i> <span>الحالة</span></th>
<th style="width: 40%; text-align: center;"><i class="fa-solid fa-check"></i> <span>الرابط / الخطأ</span></th>
</tr>
</thead>
<tbody>
<tr id="tslozgkksi"><td colspan="3" style="text-align: center; color: var(--text-muted); padding: 20px; font-size: 11.5px;"><i class="fa-solid fa-circle-exclamation"></i> <span>روابط النشر والرسائل الناجحة ستظهر هنا فور إطلاق الحملة.</span></td></tr>
</tbody>
</table>
</div>
</div>
`;
contentArea.appendChild(logsGrid);
const avgCard = document.getElementById('h4we1yzu71');
if (avgCard) {
avgCard.onclick = () => {
if (global.FritreePacingUI && typeof global.FritreePacingUI.openModal === 'function') {
global.FritreePacingUI.openModal('fb');
}
};
}
}
/**
* تحديث قيم الأرصدة في شريط الترويسة ولوحة التحكم
*/
async function updatePointsHeaderAndWidgets() {
if (!global.FritreeAppState) return;
await global.FritreeAppState.loadDashboardState();
const state = global.FritreeAppState.getState();
const badgeBalance = document.getElementById('q20kc2pzo4');
const modalBalance = document.getElementById('qtjpvw26cb');
const storeBalance = document.getElementById('u39mvrlgpk');
const modalFbPoints = document.getElementById('unaqtenmf0');
const modalWaPoints = document.getElementById('not0uqicjk');
const fbB = document.getElementById('n2jtnhukcl');
const waB = document.getElementById('b8bid195p8');
const walletUsd = document.getElementById('urp3goak31');
const walletFb = document.getElementById('jsfgartkej');
const walletWa = document.getElementById('qul9lan6tq');
if (badgeBalance) badgeBalance.textContent = state.usdPoints.toFixed(2);
if (modalBalance) modalBalance.textContent = state.usdPoints.toFixed(2);
if (storeBalance) storeBalance.textContent = state.usdPoints.toFixed(2);
if (modalFbPoints) modalFbPoints.textContent = state.fbPoints.toLocaleString('en-US');
if (modalWaPoints) modalWaPoints.textContent = state.waPoints.toLocaleString('en-US');
if (fbB) fbB.textContent = state.fbPoints.toLocaleString('en-US');
if (waB) waB.textContent = state.waPoints.toLocaleString('en-US');
if (walletUsd) walletUsd.textContent = state.usdPoints.toFixed(2);
if (walletFb) walletFb.textContent = state.fbPoints.toLocaleString('en-US');
if (walletWa) walletWa.textContent = state.waPoints.toLocaleString('en-US');
if (global.FritreeStorage) {
const fbIntervals = await global.FritreeStorage.get('local_sleep_intervals_fb', null);
const avgBadge = document.getElementById('e8fmmjhyng');
if (avgBadge && fbIntervals) {
let display = '60 ثانية';
if (fbIntervals.mode === 'continuous' || fbIntervals.mode === 'random') {
const avg = Math.round(((fbIntervals.min || 45) + (fbIntervals.max || 120)) / 2);
display = `${avg} ثانية (~${fbIntervals.min}-${fbIntervals.max} ث)`;
} else if (fbIntervals.mode === 'fixed') {
display = `${fbIntervals.fixed || 60} ثانية (ثابت)`;
} else if (fbIntervals.mode === 'burst') {
display = `دفعة (${fbIntervals.burstCount} عمليات)`;
}
avgBadge.innerHTML = `<i class="fa-solid fa-gauge" style="font-size:14px; color:#6366f1;"></i> ${display}`;
}
}
}
/**
* تصدير وحدة واجهة الهيكل العام
*/
global.FritreeShellLayout = {
buildOuterLayout: buildOuterWorkspaceLayout,
buildDashboard: buildDashboardPane,
buildMonitoringConsole: buildLiveMonitoringConsole,
updatePointsUI: updatePointsHeaderAndWidgets,
updateAccountUI: updatePointsHeaderAndWidgets
};
global.FritreeDashboard = global.FritreeDashboard || {};
global.FritreeDashboard.updateAccountUI = updatePointsHeaderAndWidgets;
global.FritreeDashboard.updatePointsUI = updatePointsHeaderAndWidgets;
if (typeof document !== 'undefined') {
buildOuterWorkspaceLayout();
buildDashboardPane();
buildLiveMonitoringConsole();
}
})(typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this); |