{"id":2957,"date":"2026-09-04T12:20:11","date_gmt":"2026-09-04T05:20:11","guid":{"rendered":"https:\/\/pandaigadai.com\/blog\/?page_id=2957"},"modified":"2026-09-04T12:20:11","modified_gmt":"2026-09-04T05:20:11","slug":"collaterals-branch-tracker","status":"publish","type":"page","link":"https:\/\/pandaigadai.com\/blog\/collaterals-branch-tracker\/","title":{"rendered":"Collaterals Branch Tracker"},"content":{"rendered":"<!DOCTYPE html>\r\n<html lang=\"id\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\r\n<title>Dashboard Audit POSM \u2014 Pandai Gadai<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Rubik:wght@400;500;600;700;800;900&display=swap\">\r\n<style>\r\n#pg-page *, #pg-page *::before, #pg-page *::after{box-sizing:border-box;margin:0;padding:0}\r\nhtml,body{margin:0;padding:0;background:#f0f2f8}\r\n#pg-page{\r\n  --radius:0.625rem;--background:#ffffff;--foreground:#021431;--card:#ffffff;\r\n  --primary:#02439F;--primary-deep:#011455;--primary-bright:#0255CA;--primary-foreground:#f8fafc;\r\n  --accent:#ffcd05;--accent-foreground:#021431;--secondary:#f3f5fb;--muted:#f0f2f8;\r\n  --muted-foreground:#6b7280;--destructive:#dc2626;--success:#047857;--border:#e2e6f0;\r\n  --footer-bg:#02439f;--shadow-card:0 2px 8px -2px rgba(2,20,49,0.08);\r\n  --gradient-hero:linear-gradient(135deg,#011455,#0255CA);\r\n}\r\n#pg-page{font-family:\"Rubik\",system-ui,-apple-system,\"Segoe UI\",sans-serif;background:var(--muted);color:var(--foreground);line-height:1.6;-webkit-font-smoothing:antialiased}\r\n#pg-page h1,#pg-page h2,#pg-page h3,#pg-page h4{letter-spacing:-0.02em}\r\n#pg-page p{margin:0}#pg-page a{text-decoration:none;color:inherit}#pg-page img{display:block;max-width:100%}\r\n#pg-page ul{list-style:none}\r\n#pg-page .site-header{position:sticky;top:0;z-index:100;background:var(--background);border-bottom:1px solid var(--border)}\r\n#pg-page .header-inner{max-width:78rem;margin:0 auto;display:flex;height:5rem;align-items:center;justify-content:space-between;padding:0 1rem}\r\n#pg-page .btn-header{display:inline-flex;align-items:center;gap:.375rem;border-radius:calc(var(--radius) - 2px);background:var(--accent);padding:.5rem .875rem;font-size:.875rem;font-weight:700;color:var(--accent-foreground);box-shadow:0 1px 2px rgba(0,0,0,.05)}\r\n#pg-page .dash-hero{background:var(--gradient-hero);color:var(--primary-foreground);position:relative;overflow:hidden}\r\n#pg-page .dash-hero-overlay{position:absolute;inset:0;opacity:.3;background:radial-gradient(ellipse at top right,rgba(255,205,5,.35),transparent 60%);pointer-events:none}\r\n#pg-page .dash-hero-inner{position:relative;max-width:78rem;margin:0 auto;padding:2rem 1rem 2.25rem}\r\n#pg-page .dash-hero .eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:rgba(255,255,255,.15);padding:.3rem .7rem;border-radius:999px}\r\n#pg-page .dash-hero h1{font-size:1.6rem;font-weight:800;margin:.7rem 0 .25rem}\r\n#pg-page .dash-hero p{font-size:.9rem;color:rgba(255,255,255,.85)}\r\n@media(min-width:768px){#pg-page .dash-hero h1{font-size:2rem}}\r\n#pg-page .dash-body{max-width:78rem;margin:0 auto;padding:1.25rem 1rem 2.5rem}\r\n#pg-page .controls{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius)+4px);padding:.75rem .9rem;box-shadow:var(--shadow-card);margin-bottom:1rem}\r\n#pg-page .ctl-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}\r\n#pg-page select,#pg-page input[type=text]{font-family:inherit;padding:.42rem .55rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);font-size:.8125rem;color:var(--foreground);background:var(--card);outline:none}\r\n#pg-page input:focus,#pg-page select:focus{border-color:var(--primary)}\r\n#pg-page input[type=text]{flex:1;min-width:200px}\r\n#pg-page .btn-accent{display:inline-flex;align-items:center;gap:.4rem;border-radius:calc(var(--radius) - 2px);background:var(--accent);padding:.5rem 1.1rem;font-family:inherit;font-size:.8125rem;font-weight:700;color:var(--accent-foreground);border:none;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05)}\r\n#pg-page .tabs{display:flex;gap:.2rem;border-bottom:2px solid var(--border);margin:.25rem 0 1.15rem;overflow-x:auto}\r\n#pg-page .tabs button{border:none;background:none;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--muted-foreground);padding:.6rem .95rem;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;text-align:left}\r\n#pg-page .tabs button .tsub{display:block;font-size:.66rem;font-weight:600;opacity:.75;text-transform:none;letter-spacing:0}\r\n#pg-page .tabs button:hover{color:var(--foreground)}\r\n#pg-page .tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}\r\n#pg-page .status{font-size:.82rem;padding:.6rem .8rem;border-radius:calc(var(--radius) - 2px);margin-bottom:1rem;line-height:1.5}\r\n#pg-page .status.info{background:var(--secondary);color:var(--primary-deep);border:1px solid var(--border)}\r\n#pg-page .status.ok{background:#ecfdf5;color:var(--success);border:1px solid #a7f3d0}\r\n#pg-page .status.err{background:#fef2f2;color:var(--destructive);border:1px solid #fca5a5}\r\n#pg-page .status.warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}\r\n#pg-page .scorecards{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem}\r\n#pg-page .sc{background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius)+4px);padding:.9rem 1rem;box-shadow:var(--shadow-card);border-top:3px solid var(--primary)}\r\n#pg-page .sc.accent{border-top-color:var(--accent)}#pg-page .sc.green{border-top-color:var(--success)}\r\n#pg-page .sc.amber{border-top-color:#f59e0b}#pg-page .sc.red{border-top-color:var(--destructive)}\r\n#pg-page .sc .lbl{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}\r\n#pg-page .sc .val{font-size:1.55rem;font-weight:800;color:var(--primary);line-height:1.1;margin-top:.3rem}\r\n#pg-page .sc.accent .val{color:var(--primary-deep)}#pg-page .sc.green .val{color:var(--success)}\r\n#pg-page .sc.amber .val{color:#b45309}#pg-page .sc.red .val{color:var(--destructive)}\r\n#pg-page .sc .sub{font-size:.7rem;color:var(--muted-foreground);margin-top:.2rem}\r\n@media(max-width:1000px){#pg-page .scorecards{grid-template-columns:repeat(2,1fr)}}\r\n#pg-page .panel{background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius)+4px);padding:1rem 1.15rem;box-shadow:var(--shadow-card);margin-bottom:1.25rem}\r\n#pg-page .panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.9rem;flex-wrap:wrap}\r\n#pg-page .panel-title{font-size:1rem;font-weight:800;color:var(--foreground)}\r\n#pg-page .panel-sub{font-size:.72rem;color:var(--muted-foreground);font-weight:600}\r\n#pg-page .tbl-wrap{overflow:auto;max-height:min(66vh,620px);border-radius:calc(var(--radius) - 2px);border:1px solid var(--border)}\r\n#pg-page table{width:100%;border-collapse:collapse;font-size:.82rem}\r\n#pg-page thead th{position:sticky;top:0;z-index:4;background:var(--secondary);color:var(--primary-deep);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;padding:.6rem .65rem;text-align:right;cursor:pointer;user-select:none;white-space:nowrap;border-bottom:2px solid var(--border)}\r\n#pg-page thead th.l,#pg-page tbody td.l{text-align:left}\r\n#pg-page thead th.c,#pg-page tbody td.c{text-align:center}\r\n#pg-page thead th.nosort{cursor:default}\r\n#pg-page thead th.sorted{color:var(--primary);background:#e8eefb}\r\n#pg-page tbody td{padding:.5rem .65rem;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums}\r\n#pg-page tbody tr:hover{background:var(--secondary)}\r\n#pg-page td.branch{font-weight:700;color:var(--foreground)}\r\n#pg-page .rank{color:var(--muted-foreground);font-weight:700}\r\n#pg-page .muted{color:var(--muted-foreground)}\r\n#pg-page .badge{display:inline-block;font-size:.66rem;font-weight:800;padding:.15rem .5rem;border-radius:999px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}\r\n#pg-page .badge.done{background:#ecfdf5;color:var(--success);border:1px solid #a7f3d0}\r\n#pg-page .badge.proses{background:#fffbeb;color:#b45309;border:1px solid #fde68a}\r\n#pg-page .badge.cancel{background:#fef2f2;color:var(--destructive);border:1px solid #fca5a5}\r\n#pg-page .badge.blank{background:#f3f5fb;color:#6b7280;border:1px solid var(--border)}\r\n#pg-page .stcell{font-weight:800}\r\n#pg-page .st-ok{color:var(--success)}#pg-page .st-warn{color:var(--destructive)}\r\n#pg-page .hint{font-size:.72rem;color:var(--muted-foreground);margin-top:.5rem;line-height:1.55}\r\n#pg-page .caveat{font-size:.75rem;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:calc(var(--radius) - 2px);padding:.65rem .85rem;margin-bottom:1rem;line-height:1.55}\r\n\r\n\/* bar chart tab kondisi materi *\/\r\n#pg-page .barrow{display:grid;grid-template-columns:160px 1fr 100px;gap:.75rem;align-items:center;padding:.6rem .9rem;border-bottom:1px solid var(--border)}\r\n#pg-page .barrow:last-child{border-bottom:none}\r\n#pg-page .barrow .lbl2{font-size:.8rem;font-weight:700}\r\n#pg-page .bartrack{background:var(--secondary);border-radius:6px;height:18px;overflow:hidden}\r\n#pg-page .barfill{height:100%;background:#d97706;border-radius:6px 0 0 6px}\r\n#pg-page .barpct{font-size:.72rem;color:var(--muted-foreground);text-align:right;white-space:nowrap}\r\n\r\n\/* leaderboard expand *\/\r\n#pg-page tr.lb-row{cursor:pointer}\r\n#pg-page tr.lb-detail td{background:var(--secondary);text-align:left;white-space:normal}\r\n#pg-page .chip-list{display:flex;flex-wrap:wrap;gap:.4rem}\r\n#pg-page .chip{font-size:.72rem;padding:.25rem .6rem;border-radius:999px;background:#fff;border:1px solid var(--border)}\r\n#pg-page .chip.issue{border-color:#fde68a;color:#b45309;background:#fffbeb}\r\n#pg-page .chip.belum{border-color:#fca5a5;color:var(--destructive);background:#fef2f2}\r\n#pg-page .rate-wrap{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}\r\n#pg-page .rate-track{width:80px;height:7px;background:var(--secondary);border-radius:4px;overflow:hidden}\r\n#pg-page .rate-fill{height:100%;background:var(--primary)}\r\n#pg-page .rate-fill.low{background:var(--destructive)}\r\n#pg-page .rate-fill.mid{background:#b45309}\r\n#pg-page .rate-fill.materi{background:var(--success)}\r\n#pg-page .rate-fill.materi.low{background:var(--destructive)}\r\n#pg-page .rate-fill.materi.mid{background:#b45309}\r\n\r\n\/* cek cabang: dot indicator + popover *\/\r\n#pg-page .dot-btn{background:none;border:none;cursor:pointer;padding:.2rem;display:inline-flex;align-items:center;gap:2px}\r\n#pg-page .dot{width:9px;height:9px;border-radius:50%;display:inline-block}\r\n#pg-page .dot.ada{background:var(--success)}\r\n#pg-page .dot.lama{background:#d97706}\r\n#pg-page .dot.kosong{background:var(--border)}\r\n#pg-page .chevmini{font-size:7px;color:var(--muted-foreground)}\r\n#pg-page .notes-btn{font-size:.8rem;background:none;border:none;cursor:pointer;color:#b45309}\r\n#pg-page .notes-empty{color:var(--border);font-size:.72rem}\r\n#pg-page .pd-popover{display:none;position:fixed;z-index:9999;background:var(--foreground);color:#fff;border-radius:8px;padding:.6rem .8rem;font-size:.78rem;line-height:1.5;max-width:280px;box-shadow:0 8px 24px -6px rgba(2,20,49,.4)}\r\n#pg-page .pd-popover.open{display:block}\r\n#pg-page .pd-popover .poplbl{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#9db1e8;margin-bottom:.2rem}\r\n#pg-page .pd-popover .popval.empty{color:#9aa3bd;font-style:italic}\r\n\r\n#pg-page .site-footer{background:var(--footer-bg);color:#fff}\r\n#pg-page .footer-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;max-width:78rem;margin:0 auto;padding:3rem 1rem}\r\n#pg-page .footer-bottom{border-top:1px solid rgba(255,255,255,.15)}\r\n#pg-page .footer-bottom-inner{display:flex;flex-direction:column-reverse;align-items:center;justify-content:space-between;gap:.75rem;max-width:78rem;margin:0 auto;padding:1.25rem 1rem;font-size:.75rem;color:rgba(255,255,255,.8)}\r\n#pg-page .social-link{display:inline-flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:9999px;background:rgba(255,255,255,.1);color:#fff}\r\n#pg-page .footer-nav-link{color:rgba(255,255,255,.85)}\r\n@media(min-width:640px){#pg-page .footer-bottom-inner{flex-direction:row}}\r\n@media(min-width:768px){#pg-page .footer-grid{grid-template-columns:5fr 3fr 4fr}}\r\n#pg-page .dash-hero h1,#pg-page .dash-hero p,#pg-page .dash-hero .eyebrow{color:#fff!important}\r\n#pg-page .dash-hero p{color:rgba(255,255,255,.85)!important}\r\n#pg-page .site-footer h1,#pg-page .site-footer h2,#pg-page .site-footer h3,#pg-page .site-footer h4{color:#fff!important}\r\n#pg-page .site-footer p,#pg-page .site-footer a,#pg-page .site-footer li{color:rgba(255,255,255,.85)!important}\r\n#pg-page .footer-bottom-inner,#pg-page .footer-bottom-inner span{color:rgba(255,255,255,.8)!important}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div id=\"pg-page\">\r\n\r\n<div class=\"site-header\">\r\n  <div class=\"header-inner\">\r\n    <a href=\"https:\/\/pandaigadai.com\" style=\"display:flex;align-items:center\">\r\n      <img decoding=\"async\" src=\"https:\/\/pandaigadai.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-panda-1.webp\" alt=\"Pandai Gadai\" style=\"height:3rem;width:auto\">\r\n    <\/a>\r\n    <a href=\"https:\/\/pandaigadai.com\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-header\">pandaigadai.com<\/a>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"dash-hero\">\r\n  <div class=\"dash-hero-overlay\"><\/div>\r\n  <div class=\"dash-hero-inner\">\r\n    <span class=\"eyebrow\">\ud83e\uddfe Audit POSM Tracker<\/span>\r\n    <h1>Dashboard Audit Collateral Cabang<\/h1>\r\n    <p>Kondisi materi POSM, akuntabilitas AM\/Area, dan detail per cabang, dari Branch Collateral Check Sheet.<\/p>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"dash-body\">\r\n\r\n  <div id=\"status\" class=\"status info\">Memuat data\u2026<\/div>\r\n\r\n  <div class=\"controls\">\r\n    <button class=\"btn-accent\" onclick=\"POSM.load()\">\u27f3 Muat \/ Refresh<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"tabs\" id=\"tabs\" style=\"display:none\">\r\n    <button data-tab=\"materi\" class=\"active\" onclick=\"POSM.setTab('materi')\">\ud83d\udce6 Kondisi Materi<span class=\"tsub\">materi apa yang bermasalah<\/span><\/button>\r\n    <button data-tab=\"akuntabilitas\" onclick=\"POSM.setTab('akuntabilitas')\">\ud83c\udfaf Akuntabilitas<span class=\"tsub\">siapa yang perlu dikejar<\/span><\/button>\r\n    <button data-tab=\"cabang\" onclick=\"POSM.setTab('cabang')\">\ud83d\udd0d Cek Cabang<span class=\"tsub\">cari cabang spesifik<\/span><\/button>\r\n  <\/div>\r\n\r\n  <section class=\"tabpane\" id=\"pane-materi\" style=\"display:none\">\r\n    <div class=\"scorecards\" id=\"scorecards-materi\">\r\n      <div class=\"sc\"><div class=\"lbl\">Total Cabang (Master)<\/div><div class=\"val\" id=\"k-total\">\u2014<\/div><div class=\"sub\">roster aktif<\/div><\/div>\r\n      <div class=\"sc green\"><div class=\"lbl\">Sudah Submit Checklist<\/div><div class=\"val\" id=\"k-submit\">\u2014<\/div><div class=\"sub\" id=\"k-submit-sub\"><\/div><\/div>\r\n      <div class=\"sc red\"><div class=\"lbl\">Belum Ada Data<\/div><div class=\"val\" id=\"k-belum\">\u2014<\/div><div class=\"sub\">gak pernah submit checklist<\/div><\/div>\r\n      <div class=\"sc accent\"><div class=\"lbl\">QR Review Sudah Pasang<\/div><div class=\"val\" id=\"k-qr\">\u2014<\/div><div class=\"sub\">dari yang punya data QR<\/div><\/div>\r\n    <\/div>\r\n    <div class=\"panel\">\r\n      <div class=\"panel-head\">\r\n        <div class=\"panel-title\">\ud83d\udce6 Kategori Collateral, Diurutkan dari Paling Banyak Materi Lama<\/div>\r\n        <div class=\"panel-sub\" id=\"materi-sub\"><\/div>\r\n      <\/div>\r\n      <div id=\"barchart-body\"><\/div>\r\n      <div class=\"hint\" id=\"materi-hint\">Persentase dihitung dari cabang yang sudah submit checklist. \"Materi lama\" = jawaban form mengandung frasa \"masih dengan\". Ini keputusan produksi: kategori paling atas = paling urgent buat dicetak ulang & didistribusi.<\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tabpane\" id=\"pane-akuntabilitas\" style=\"display:none\">\r\n    <div class=\"panel\">\r\n      <div class=\"panel-head\">\r\n        <div class=\"panel-title\">\ud83c\udfaf Leaderboard<\/div>\r\n        <div class=\"panel-sub\" id=\"lb-sub\"><\/div>\r\n      <\/div>\r\n      <div class=\"controls\" style=\"margin-bottom:.9rem\">\r\n        <span class=\"ctl-label\">Kelompokkan per:<\/span>\r\n        <select id=\"sel-lbmode\" onchange=\"POSM.setLbMode(this.value)\">\r\n          <option value=\"am\">AM<\/option>\r\n          <option value=\"area\">Area<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div class=\"caveat\">Urutan berdasarkan Submit Rate (data faktual, dasar buat negur orang). Kolom \"Materi Terkini\" cuma context, angkanya mepet di semua grup karena masalah materi lama (terutama flyer canvassing & signage) tersebar rata secara nasional \u2014 itu keputusan produksi (lihat tab Kondisi Materi), bukan soal kedisiplinan personal. Materi Terkini juga basisnya keyword jawaban form, bukan verifikasi foto.<\/div>\r\n      <div class=\"tbl-wrap\">\r\n        <table id=\"tbl-lb\"><thead><tr id=\"lb-thead\"><\/tr><\/thead><tbody id=\"lb-tbody\"><\/tbody><\/table>\r\n      <\/div>\r\n      <div class=\"hint\">Klik baris buat lihat cabang yang jadi sumber masalah (belum submit \/ ada materi lama). Klik judul kolom untuk mengurutkan.<\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tabpane\" id=\"pane-cabang\" style=\"display:none\">\r\n    <div class=\"controls\">\r\n      <input type=\"text\" id=\"inp-search\" placeholder=\"Cari nama cabang\u2026\" oninput=\"POSM.setSearch(this.value)\">\r\n      <span class=\"ctl-label\">Area:<\/span>\r\n      <select id=\"sel-area\" onchange=\"POSM.setAreaFilter(this.value)\"><option value=\"\">Semua Area<\/option><\/select>\r\n      <span class=\"ctl-label\">Status:<\/span>\r\n      <select id=\"sel-status\" onchange=\"POSM.setStatusFilter(this.value)\">\r\n        <option value=\"\">Semua<\/option>\r\n        <option value=\"ada\">Sudah Ada Data<\/option>\r\n        <option value=\"belum\">Belum Ada Data<\/option>\r\n      <\/select>\r\n    <\/div>\r\n    <div class=\"panel\">\r\n      <div class=\"panel-head\">\r\n        <div class=\"panel-title\">\ud83d\udd0d Detail per Cabang<\/div>\r\n        <div class=\"panel-sub\" id=\"cabang-sub\"><\/div>\r\n      <\/div>\r\n      <div class=\"hint\" style=\"margin-top:0;margin-bottom:.7rem\">Hijau = ada jawaban, kuning = jawaban mengandung \"masih dengan\" (indikasi materi lama), abu-abu = kosong. Klik titik\/ikon \ud83d\udcdd untuk lihat raw text jawaban. Klik judul kolom untuk mengurutkan.<\/div>\r\n      <div class=\"tbl-wrap\">\r\n        <table id=\"tbl-cabang\"><thead><tr id=\"cabang-thead\"><\/tr><\/thead><tbody id=\"cabang-tbody\"><\/tbody><\/table>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <div class=\"hint\" id=\"footer-note\" style=\"display:none\"><\/div>\r\n  <div style=\"text-align:center;padding-top:.5rem\">\r\n    <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1DV9BxMNuWo3z_U7qv7q-0js0iBrHIkw_T-PhK5wQhh0\/edit\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"font-size:.78rem;font-weight:700;color:var(--primary)\">\ud83d\udcc4 Buka Spreadsheet Asli (detail lengkap) \u2197<\/a>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"site-footer\">\r\n  <div class=\"footer-grid\">\r\n    <div>\r\n      <img decoding=\"async\" src=\"https:\/\/pandaigadai.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-panda-1.webp\" alt=\"Pandai Gadai\" style=\"height:3.5rem;width:auto\">\r\n      <p style=\"margin-top:1.25rem;font-size:.875rem;color:rgba(255,255,255,0.85)\">Berizin dan Diawasi Otoritas Jasa Keuangan<\/p>\r\n      <p style=\"margin-top:.5rem;font-size:.875rem;font-weight:600\">Nomor Izin: KEP-180\/PL.02\/2023<\/p>\r\n    <\/div>\r\n    <div>\r\n      <h3 style=\"font-size:1rem;font-weight:700\">Navigasi<\/h3>\r\n      <ul style=\"margin-top:1rem;display:flex;flex-direction:column;gap:.625rem;font-size:.875rem;color:rgba(255,255,255,0.85)\">\r\n        <li><a href=\"https:\/\/pandaigadai.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"footer-nav-link\">pandaigadai.com<\/a><\/li>\r\n      <\/ul>\r\n    <\/div>\r\n    <div>\r\n      <h3 style=\"font-size:1rem;font-weight:700\">Layanan Pengaduan Kantor Pusat<\/h3>\r\n      <p style=\"margin-top:1rem;font-size:.875rem;color:rgba(255,255,255,0.85)\">\r\n        Telepon: <a href=\"tel:085715322146\" class=\"footer-nav-link\">0857-1532-2146<\/a><br>\r\n        Email: <a href=\"mailto:hello@pandaigadai.com\" class=\"footer-nav-link\">hello@pandaigadai.com<\/a>\r\n      <\/p>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"footer-bottom\">\r\n    <div class=\"footer-bottom-inner\">\r\n      <span>&copy; Copyright PT Solusi Gadai Pintar 2026 All Rights Reserved<\/span>\r\n      <div style=\"display:flex;align-items:center;gap:.75rem\">\r\n        <a href=\"https:\/\/www.instagram.com\/pandaigadai\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Instagram\" class=\"social-link\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"height:1rem;width:1rem\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"\/><path d=\"M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z\"\/><line x1=\"17.5\" y1=\"6.5\" x2=\"17.51\" y2=\"6.5\"\/><\/svg><\/a>\r\n        <a href=\"https:\/\/www.tiktok.com\/@pandaigadai.id\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"TikTok\" class=\"social-link\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"height:1rem;width:1rem\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.2 1.74 2.89 2.89 0 012.31-4.64 2.93 2.93 0 01.88.13V9.4a6.84 6.84 0 00-1-.05A6.33 6.33 0 005.8 20.1a6.34 6.34 0 0010.86-4.43V8.92a8.16 8.16 0 004.77 1.52V7A4.86 4.86 0 0119.59 6.69z\"\/><\/svg><\/a>\r\n        <a href=\"https:\/\/www.facebook.com\/pandaigadai\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Facebook\" class=\"social-link\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"height:1rem;width:1rem\"><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"\/><\/svg><\/a>\r\n        <a href=\"https:\/\/www.youtube.com\/@PandaiGadai\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"YouTube\" class=\"social-link\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"height:1rem;width:1rem\"><path d=\"M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814z\"\/><\/svg><\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"pd-popover\" id=\"pd-popover\">\r\n  <div class=\"poplbl\" id=\"pop-label\"><\/div>\r\n  <div class=\"popval\" id=\"pop-val\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n'use strict';\r\nvar $=function(id){return document.getElementById(id);};\r\n\r\n\/* ====== SETTINGS: satu-satunya tempat yang perlu diedit kalau ada perubahan sheet\/tab ====== *\/\r\nvar SHEET_ID='1DV9BxMNuWo3z_U7qv7q-0js0iBrHIkw_T-PhK5wQhh0';\r\nvar TAB_MASTER='MASTER AM DAN NAMA CABANG ';\r\nvar TAB_CHECKLIST='Checklist Collateral';\r\nvar TAB_QR='QR Review Tent Card';\r\n\/* ============================================================================================ *\/\r\n\r\nvar LS='posm_dash_pg_v1';\r\n\r\nvar CATEGORIES=[\r\n {key:'signage',label:'Signage',col:7},\r\n {key:'spanduk',label:'Spanduk',col:9},\r\n {key:'abanner_depan',label:'A-Banner Sisi Depan',col:11},\r\n {key:'abanner_belakang',label:'A-Banner Sisi Belakang',col:13},\r\n {key:'pop_signage',label:'Pop Signage',col:15},\r\n {key:'door_sticker',label:'Door Sticker',col:17},\r\n {key:'wall_acrylic',label:'Wall Acrylic Display',col:20},\r\n {key:'x_banner',label:'X-Banner',col:22},\r\n {key:'tent_card',label:'Tent Card',col:25},\r\n {key:'flyer_canvassing',label:'Flyer Holder \/ Canvassing',col:29},\r\n {key:'stempel',label:'Stempel',col:31},\r\n {key:'tv_display',label:'TV Display',col:33}\r\n];\r\nvar NOTES_COL=35, TS_COL=0, BRANCH_COL=2, AM_COL=4, KANIT_COL=5, TIPE_COL=6;\r\n\r\nfunction parseTs(s){if(!s)return 0;s=String(s).trim();var t=new Date(s).getTime();if(isFinite(t))return t;t=new Date(s.replace(' ','T')).getTime();return isFinite(t)?t:0;}\r\n\r\nvar state={\r\n tab:'materi', lbMode:'am', search:'', areaFilter:'', statusFilter:'',\r\n sortLb:{key:'submitRate',dir:1}, sortCabang:{key:'branch',dir:1},\r\n master:[], latestChecklistTs:0\r\n};\r\n\r\nfunction savePrefs(){try{localStorage.setItem(LS,JSON.stringify({tab:state.tab,lbMode:state.lbMode}));}catch(e){}}\r\nfunction loadPrefs(){try{var p=JSON.parse(localStorage.getItem(LS)||'{}');if(p.tab)state.tab=p.tab;if(p.lbMode)state.lbMode=p.lbMode;}catch(e){}}\r\n\r\nfunction setStatus(m,c){var s=$('status');s.style.display='block';s.className='status '+(c||'info');s.innerHTML=m;}\r\nfunction esc(s){return String(s==null?'':s).replace(\/[&<>\"']\/g,function(c){return{'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];});}\r\nfunction nf(n){return isFinite(n)?Math.round(n).toLocaleString('id-ID'):'\u2014';}\r\n\r\nfunction parseCSV(text){var rows=[],row=[],cur='',i=0,q=false;while(i<text.length){var c=text[i];\r\n if(q){if(c==='\"'){if(text[i+1]==='\"'){cur+='\"';i++;}else q=false;}else cur+=c;}\r\n else{if(c==='\"')q=true;else if(c===','){row.push(cur);cur='';}else if(c==='\\n'){row.push(cur);rows.push(row);row=[];cur='';}else if(c==='\\r'){}else cur+=c;}\r\n i++;}\r\n if(cur.length||row.length){row.push(cur);rows.push(row);}return rows;}\r\n\r\nfunction cbucket(){return Math.floor(Date.now()\/300000);}\r\nfunction gvizUrl(tab){return 'https:\/\/docs.google.com\/spreadsheets\/d\/'+SHEET_ID+'\/gviz\/tq?tqx=out:csv&sheet='+encodeURIComponent(tab)+'&_cb='+cbucket();}\r\n\r\nfunction fetchCsv(url){return fetch(url,{credentials:'omit'}).then(function(r){\r\n if(!r.ok)throw new Error('HTTP '+r.status);var ct=r.headers.get('content-type')||'';return r.text().then(function(t){\r\n  if(\/text\\\/html\/i.test(ct)||new RegExp('<'+'html','i').test(t.slice(0,200)))throw new Error('html\/blocked \u2014 cek sharing sheet');\r\n  var rows=parseCSV(t).filter(function(x){return x.length>1||(x.length===1&&x[0]!=='');});\r\n  if(rows.length<1)throw new Error('sheet kosong');return rows;});});}\r\n\r\nfunction normName(s){return (s||'').toUpperCase().replace(\/^PANDAI\\s*GADAI\\s*\/,'').replace(\/@GMAIL\\.COM.*$\/,'').replace(\/[.,]\/g,'').replace(\/\\s+\/g,' ').trim();}\r\nfunction levenshtein(a,b){var m=a.length,n=b.length;if(!m)return n;if(!n)return m;\r\n var dp=Array.from({length:m+1},function(){return new Array(n+1).fill(0);});\r\n for(var i=0;i<=m;i++)dp[i][0]=i;for(var j=0;j<=n;j++)dp[0][j]=j;\r\n for(i=1;i<=m;i++)for(j=1;j<=n;j++)dp[i][j]=a[i-1]===b[j-1]?dp[i-1][j-1]:1+Math.min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]);\r\n return dp[m][n];}\r\nfunction findBestMatch(name,masterList){\r\n var n=normName(name);\r\n var exact=masterList.find(function(m){return m.norm===n;}); if(exact)return{branch:exact,fuzzy:false};\r\n var contain=masterList.find(function(m){return m.norm.indexOf(n)>=0||n.indexOf(m.norm)>=0;});\r\n if(contain&&Math.abs(contain.norm.length-n.length)<=6)return{branch:contain,fuzzy:true};\r\n var best=null,bestDist=999;\r\n masterList.forEach(function(m){var d=levenshtein(n,m.norm);if(d<bestDist){bestDist=d;best=m;}});\r\n if(best&&bestDist<=Math.max(2,Math.floor(n.length*0.2)))return{branch:best,fuzzy:true};\r\n return null;\r\n}\r\nfunction classifyText(val){if(!val)return'kosong';if(\/MASIH\\s+DENGAN\/i.test(val))return'lama';return'ada';}\r\n\r\nfunction loadMaster(rows){\r\n return rows.slice(1).filter(function(r){return r[2];}).map(function(r){\r\n  return{area:r[0]||'',am:r[1]||'',branch:r[2],norm:normName(r[2]),april:null,qr:null};\r\n });\r\n}\r\nfunction attachChecklist(master,rows){\r\n \/* dedup: kalau 1 cabang submit lebih dari sekali (checklist ulang bulan berikutnya),\r\n    yang dipakai cuma submission dengan Timestamp paling baru *\/\r\n var latestByBranchKey={};\r\n rows.slice(1).forEach(function(r){\r\n  var b=r[BRANCH_COL];if(!b)return;\r\n  var match=findBestMatch(b,master);\r\n  if(!match)return;\r\n  var ts=parseTs(r[TS_COL]);\r\n  var key=match.branch.norm;\r\n  if(!latestByBranchKey[key]||ts>=latestByBranchKey[key].ts){\r\n   latestByBranchKey[key]={ts:ts,row:r,match:match};\r\n  }\r\n });\r\n var latestTs=0;\r\n Object.keys(latestByBranchKey).forEach(function(key){\r\n  var entry=latestByBranchKey[key];\r\n  var r=entry.row;\r\n  if(entry.ts>latestTs)latestTs=entry.ts;\r\n  var cats={};CATEGORIES.forEach(function(c){cats[c.key]=r[c.col]||'';});\r\n  entry.match.branch.checklist={raw_branch:r[BRANCH_COL],fuzzy:entry.match.fuzzy,ts:entry.ts,am:r[AM_COL]||'',kanit:r[KANIT_COL]||'',tipe:r[TIPE_COL]||'',notes:r[NOTES_COL]||'',cats:cats};\r\n });\r\n state.latestChecklistTs=latestTs;\r\n}\r\nfunction attachQr(master,rows){\r\n rows.slice(1).forEach(function(r){\r\n  var b=r[1];if(!b)return;\r\n  if(b.trim().toUpperCase()==='TBU')return;\r\n  var match=findBestMatch(b,master);\r\n  if(match)match.branch.qr=(r[3]||'').indexOf('\u2705')>=0?'sudah':'belum';\r\n });\r\n}\r\n\r\nfunction load(){\r\n setStatus('Memuat data\u2026','info');\r\n Promise.all([fetchCsv(gvizUrl(TAB_MASTER)),fetchCsv(gvizUrl(TAB_CHECKLIST)),fetchCsv(gvizUrl(TAB_QR))]).then(function(res){\r\n  var master=loadMaster(res[0]);\r\n  attachChecklist(master,res[1]);\r\n  attachQr(master,res[2]);\r\n  state.master=master;\r\n  $('tabs').style.display='flex';\r\n  if(!master.length){setStatus('Master branch list kosong.','err');return;}\r\n  var submitCount=master.filter(function(m){return m.checklist;}).length;\r\n  setStatus('\u2713 Termuat '+master.length+' cabang, '+submitCount+' sudah submit checklist.'+(state.latestChecklistTs?(' Submission terbaru: '+new Date(state.latestChecklistTs).toLocaleDateString('id-ID',{day:'numeric',month:'long',year:'numeric'})+'.'):''),'ok');\r\n  render();\r\n }).catch(function(err){\r\n  setStatus('Gagal memuat data. Pastikan sheet sharing \"Anyone with link \u2013 Viewer\", lalu klik Refresh lagi. ('+esc(String(err&&err.message||err))+')','err');\r\n });\r\n}\r\n\r\nfunction render(){\r\n syncTabs();\r\n renderAreaOptions();\r\n renderMateri();\r\n renderLeaderboard();\r\n renderCabang();\r\n $('footer-note').style.display='block';\r\n $('footer-note').innerHTML=state.master.length+' cabang di master \u2022 diperbarui '+new Date().toLocaleString('id-ID');\r\n}\r\n\r\nfunction syncTabs(){\r\n var tabs=document.querySelectorAll('#tabs button');\r\n for(var i=0;i<tabs.length;i++)tabs[i].classList.toggle('active',tabs[i].getAttribute('data-tab')===state.tab);\r\n ['materi','akuntabilitas','cabang'].forEach(function(p){var el=$('pane-'+p);if(el)el.style.display=(state.tab===p)?'block':'none';});\r\n}\r\n\r\nfunction renderAreaOptions(){\r\n var areas=Array.from(new Set(state.master.map(function(m){return m.area;}).filter(Boolean))).sort();\r\n var sel=$('sel-area');\r\n var html='<option value=\"\">Semua Area<\/option>'+areas.map(function(a){return '<option value=\"'+esc(a)+'\">'+esc(a)+'<\/option>';}).join('');\r\n if(sel.innerHTML!==html)sel.innerHTML=html;\r\n sel.value=state.areaFilter;\r\n $('sel-status').value=state.statusFilter;\r\n $('sel-lbmode').value=state.lbMode;\r\n}\r\n\r\n\/* ---------------- TAB 1: KONDISI MATERI ---------------- *\/\r\nfunction renderMateri(){\r\n var master=state.master;\r\n var total=master.length;\r\n var submitted=master.filter(function(m){return m.checklist;});\r\n var qrKnown=master.filter(function(m){return m.qr!==null;});\r\n var qrSudah=master.filter(function(m){return m.qr==='sudah';}).length;\r\n\r\n $('k-total').textContent=nf(total);\r\n $('k-submit').textContent=nf(submitted.length);\r\n $('k-submit-sub').textContent=(total?Math.round(submitted.length\/total*100):0)+'% dari total cabang';\r\n $('k-belum').textContent=nf(total-submitted.length);\r\n $('k-qr').textContent=qrKnown.length?(qrSudah+'\/'+qrKnown.length):'\u2014';\r\n\r\n var stats=CATEGORIES.map(function(c){\r\n  var ada=0,lama=0;\r\n  submitted.forEach(function(m){var cls=classifyText(m.checklist.cats[c.key]);if(cls==='lama')lama++;else if(cls==='ada')ada++;});\r\n  var denom=ada+lama;\r\n  return{label:c.label,lama:lama,denom:denom,pct:denom?Math.round(lama\/denom*100):0};\r\n }).sort(function(a,b){return b.pct-a.pct;});\r\n\r\n var latestLabel=state.latestChecklistTs?new Date(state.latestChecklistTs).toLocaleDateString('id-ID',{day:'numeric',month:'long',year:'numeric'}):'-';\r\n $('materi-sub').textContent=submitted.length+' cabang sudah submit \u00b7 data terbaru '+latestLabel;\r\n $('barchart-body').innerHTML=stats.map(function(s){\r\n  return '<div class=\"barrow\"><div class=\"lbl2\">'+esc(s.label)+'<\/div>'+\r\n   '<div class=\"bartrack\"><div class=\"barfill\" style=\"width:'+s.pct+'%\"><\/div><\/div>'+\r\n   '<div class=\"barpct\">'+s.pct+'% ('+s.lama+'\/'+s.denom+')<\/div><\/div>';\r\n }).join('');\r\n}\r\n\r\n\/* ---------------- TAB 2: AKUNTABILITAS ---------------- *\/\r\nvar LBCOLS=[{k:'rank',t:'#',l:true,s:false},{k:'label',t:'Grup',l:true,s:true},{k:'total',t:'Total Cabang',s:true},\r\n {k:'submitRate',t:'Submit Rate',s:true},{k:'materiRate',t:'Materi Terkini',s:true}];\r\n\r\nfunction computeLbGroups(){\r\n var mode=state.lbMode;\r\n var groups={};\r\n state.master.forEach(function(m){\r\n  var label=mode==='area'?(m.area||'(tanpa area)'):(m.am||'Tanpa AM');\r\n  if(!groups[label])groups[label]={label:label,total:0,submit:0,ada:0,lama:0,branches:[]};\r\n  var g=groups[label];g.total++;g.branches.push(m);\r\n  if(m.checklist){g.submit++;\r\n   CATEGORIES.forEach(function(c){var cls=classifyText(m.checklist.cats[c.key]);if(cls==='lama')g.lama++;else if(cls==='ada')g.ada++;});\r\n  }\r\n });\r\n return Object.keys(groups).map(function(k){\r\n  var g=groups[k];\r\n  var submitRate=g.total?Math.round(g.submit\/g.total*100):0;\r\n  var denom=g.ada+g.lama;\r\n  var materiRate=denom?Math.round(g.ada\/denom*100):null;\r\n  return{label:g.label,total:g.total,submit:g.submit,submitRate:submitRate,materiRate:materiRate,branches:g.branches};\r\n });\r\n}\r\n\r\nfunction renderLeaderboard(){\r\n $('lb-sub').textContent=state.lbMode==='area'?'dikelompokkan per Area':'dikelompokkan per AM';\r\n var rows=computeLbGroups();\r\n var sk=state.sortLb.key,sd=state.sortLb.dir;\r\n rows.sort(function(a,b){\r\n  var x=a[sk],y=b[sk];\r\n  if(x===null)x=sk==='materiRate'?101:0; if(y===null)y=sk==='materiRate'?101:0;\r\n  if(typeof x==='string')return sd*x.localeCompare(y);\r\n  return sd*(x-y);\r\n });\r\n\r\n var th=$('lb-thead');th.innerHTML='';\r\n LBCOLS.forEach(function(c){\r\n  var el=document.createElement('th');\r\n  el.textContent=c.t+(state.sortLb.key===c.k?(sd<0?' \u25bc':' \u25b2'):'');\r\n  el.className=(c.l?'l':'')+(state.sortLb.key===c.k?' sorted':'')+(c.s?'':' nosort');\r\n  if(c.s)el.onclick=function(){if(state.sortLb.key===c.k)state.sortLb.dir*=-1;else{state.sortLb.key=c.k;state.sortLb.dir=(c.k==='label')?1:1;}renderLeaderboard();};\r\n  th.appendChild(el);\r\n });\r\n\r\n var tb=$('lb-tbody');tb.innerHTML='';\r\n if(!rows.length){tb.innerHTML='<tr><td colspan=\"5\" class=\"muted\" style=\"padding:1rem;text-align:center\">Belum ada data.<\/td><\/tr>';return;}\r\n rows.forEach(function(r,i){\r\n  var srClass=r.submitRate<40?'low':(r.submitRate<75?'mid':'');\r\n  var mrClass=r.materiRate===null?'':(r.materiRate<40?'low':(r.materiRate<75?'mid':''));\r\n  var materiHtml=r.materiRate===null?'<span class=\"badge blank\">Belum ada data<\/span>':\r\n   '<div class=\"rate-wrap\"><div class=\"rate-track\"><div class=\"rate-fill materi '+mrClass+'\" style=\"width:'+r.materiRate+'%\"><\/div><\/div><span>'+r.materiRate+'%<\/span><\/div>';\r\n  tb.insertAdjacentHTML('beforeend','<tr class=\"lb-row\" data-i=\"'+i+'\"><td class=\"l rank\">'+(i+1)+'<\/td>'+\r\n   '<td class=\"l branch\">'+esc(r.label)+'<\/td>'+\r\n   '<td>'+nf(r.total)+'<\/td>'+\r\n   '<td><div class=\"rate-wrap\"><div class=\"rate-track\"><div class=\"rate-fill '+srClass+'\" style=\"width:'+r.submitRate+'%\"><\/div><\/div><span>'+r.submitRate+'% ('+r.submit+'\/'+r.total+')<\/span><\/div><\/td>'+\r\n   '<td>'+materiHtml+'<\/td><\/tr>');\r\n });\r\n\r\n tb.querySelectorAll('.lb-row').forEach(function(row){\r\n  row.addEventListener('click',function(){toggleLbDetail(row,rows[parseInt(row.dataset.i,10)]);});\r\n });\r\n}\r\n\r\nfunction toggleLbDetail(row,r){\r\n var next=row.nextElementSibling;\r\n if(next&&next.classList.contains('lb-detail')){next.remove();return;}\r\n document.querySelectorAll('tr.lb-detail').forEach(function(el){el.remove();});\r\n var withIssue=r.branches.map(function(m){\r\n  if(!m.checklist)return{m:m,type:'belum'};\r\n  var hasLama=CATEGORIES.some(function(c){return classifyText(m.checklist.cats[c.key])==='lama';});\r\n  return{m:m,type:hasLama?'issue':'ok'};\r\n }).filter(function(x){return x.type!=='ok';}).sort(function(a,b){return(a.type==='belum'?0:1)-(b.type==='belum'?0:1);});\r\n var chips=withIssue.length?withIssue.map(function(x){\r\n  return '<span class=\"chip '+x.type+'\">'+esc(x.m.branch)+(x.type==='belum'?' \u00b7 belum submit':' \u00b7 ada materi lama')+'<\/span>';\r\n }).join(''):'<span class=\"muted\" style=\"font-size:.8rem\">Semua cabang di grup ini sudah submit dan gak ada materi lama terdeteksi.<\/span>';\r\n var tr=document.createElement('tr');\r\n tr.className='lb-detail';\r\n tr.innerHTML='<td colspan=\"5\"><div class=\"chip-list\">'+chips+'<\/div><\/td>';\r\n row.parentNode.insertBefore(tr,row.nextSibling);\r\n}\r\n\r\n\/* ---------------- TAB 3: CEK CABANG ---------------- *\/\r\nvar CABANGCOLS=[{k:'branch',t:'Cabang',l:true,s:true},{k:'area',t:'Area',l:true,s:true},{k:'am',t:'AM',l:true,s:true},{k:'status',t:'Status Data',l:true,s:true}]\r\n .concat(CATEGORIES.map(function(c){return{k:'cat_'+c.key,t:c.label,c:true,s:false,catKey:c.key};}))\r\n .concat([{k:'notes',t:'Notes',c:true,s:false},{k:'qr',t:'QR Review',l:true,s:true}]);\r\n\r\nfunction renderCabang(){\r\n var q=state.search.toUpperCase();\r\n var filtered=state.master.filter(function(m){\r\n  if(q&&m.branch.toUpperCase().indexOf(q)<0)return false;\r\n  if(state.areaFilter&&m.area!==state.areaFilter)return false;\r\n  if(state.statusFilter==='ada'&&!m.checklist)return false;\r\n  if(state.statusFilter==='belum'&&m.checklist)return false;\r\n  return true;\r\n });\r\n $('cabang-sub').textContent=filtered.length+' cabang';\r\n\r\n var sk=state.sortCabang.key,sd=state.sortCabang.dir;\r\n filtered.sort(function(a,b){\r\n  var x,y;\r\n  if(sk==='status'){x=a.checklist?1:0;y=b.checklist?1:0;}\r\n  else if(sk==='qr'){x=a.qr==='sudah'?2:(a.qr==='belum'?1:0);y=b.qr==='sudah'?2:(b.qr==='belum'?1:0);}\r\n  else{x=(a[sk]||'').toString();y=(b[sk]||'').toString();}\r\n  if(typeof x==='string')return sd*x.localeCompare(y);\r\n  return sd*(x-y);\r\n });\r\n\r\n var th=$('cabang-thead');th.innerHTML='';\r\n CABANGCOLS.forEach(function(c){\r\n  var el=document.createElement('th');\r\n  el.textContent=c.t+(state.sortCabang.key===c.k?(sd<0?' \u25bc':' \u25b2'):'');\r\n  el.className=(c.l?'l':(c.c?'c':''))+(state.sortCabang.key===c.k?' sorted':'')+(c.s?'':' nosort');\r\n  if(c.s)el.onclick=function(key){return function(){if(state.sortCabang.key===key)state.sortCabang.dir*=-1;else{state.sortCabang.key=key;state.sortCabang.dir=1;}renderCabang();};}(c.k);\r\n  th.appendChild(el);\r\n });\r\n\r\n var tb=$('cabang-tbody');tb.innerHTML='';\r\n if(!filtered.length){tb.innerHTML='<tr><td colspan=\"'+CABANGCOLS.length+'\" class=\"muted\" style=\"padding:1rem;text-align:center\">Gak ada cabang yang cocok filter.<\/td><\/tr>';return;}\r\n\r\n filtered.forEach(function(m,i){\r\n  var amCell=m.am?esc(m.am):'<span class=\"badge blank\">Tanpa AM<\/span>';\r\n  var qrCell=m.qr==='sudah'?'<span class=\"badge done\">Sudah<\/span>':(m.qr==='belum'?'<span class=\"badge proses\">Belum<\/span>':'<span class=\"badge blank\">-<\/span>');\r\n  if(!m.checklist){\r\n   tb.insertAdjacentHTML('beforeend','<tr><td class=\"l branch\">'+esc(m.branch)+'<\/td><td class=\"l\">'+esc(m.area)+'<\/td><td class=\"l\">'+amCell+'<\/td>'+\r\n    '<td class=\"l\"><span class=\"badge cancel\">Belum Ada Data<\/span><\/td>'+\r\n    '<td colspan=\"'+CATEGORIES.length+'\"><\/td><td class=\"c\"><\/td><td class=\"l\">'+qrCell+'<\/td><\/tr>');\r\n   return;\r\n  }\r\n  var cells=CATEGORIES.map(function(c,ci){\r\n   var val=m.checklist.cats[c.key];var cls=classifyText(val);var chev=val?'<span class=\"chevmini\">\u25bc<\/span>':'';\r\n   return '<td class=\"c\"><button class=\"dot-btn\" data-i=\"'+i+'\" data-cat=\"'+c.key+'\"><span class=\"dot '+cls+'\"><\/span>'+chev+'<\/button><\/td>';\r\n  }).join('');\r\n  var notesVal=m.checklist.notes;\r\n  var notesCell=notesVal?'<td class=\"c\"><button class=\"notes-btn\" data-i=\"'+i+'\" data-cat=\"__notes__\">\ud83d\udcdd<\/button><\/td>':'<td class=\"c\"><span class=\"notes-empty\">\u2014<\/span><\/td>';\r\n  tb.insertAdjacentHTML('beforeend','<tr><td class=\"l branch\">'+esc(m.branch)+'<\/td><td class=\"l\">'+esc(m.area)+'<\/td><td class=\"l\">'+amCell+'<\/td>'+\r\n   '<td class=\"l\"><span class=\"badge done\">Ada Data'+(m.checklist.fuzzy?' (fuzzy)':'')+'<\/span><\/td>'+\r\n   cells+notesCell+'<td class=\"l\">'+qrCell+'<\/td><\/tr>');\r\n });\r\n\r\n tb.querySelectorAll('.dot-btn,.notes-btn').forEach(function(btn){\r\n  btn.addEventListener('click',function(e){\r\n   e.stopPropagation();\r\n   var m=filtered[parseInt(btn.dataset.i,10)];\r\n   var catKey=btn.dataset.cat;\r\n   if(catKey==='__notes__')openPopover(btn,'Notes',m.checklist.notes);\r\n   else{var cat=CATEGORIES.find(function(c){return c.key===catKey;});openPopover(btn,cat.label,m.checklist.cats[catKey]);}\r\n  });\r\n });\r\n}\r\n\r\nfunction openPopover(anchorBtn,label,val){\r\n var pop=$('pd-popover');\r\n $('pop-label').textContent=label;\r\n $('pop-val').innerHTML='<span class=\"'+(val?'':'empty')+'\">'+(val?esc(val):'Tidak ada jawaban')+'<\/span>';\r\n var key=anchorBtn.dataset.i+'-'+anchorBtn.dataset.cat;\r\n if(pop.classList.contains('open')&&pop.dataset.forBtn===key){pop.classList.remove('open');return;}\r\n pop.dataset.forBtn=key;\r\n var rect=anchorBtn.getBoundingClientRect();\r\n pop.classList.add('open');\r\n var popRect=pop.getBoundingClientRect();\r\n var left=rect.left; if(left+popRect.width>window.innerWidth-10)left=window.innerWidth-popRect.width-10;\r\n var top=rect.bottom+6; if(top+popRect.height>window.innerHeight-10)top=rect.top-popRect.height-6;\r\n pop.style.left=Math.max(10,left)+'px'; pop.style.top=Math.max(10,top)+'px';\r\n}\r\ndocument.addEventListener('click',function(e){\r\n var pop=$('pd-popover');\r\n if(pop.classList.contains('open')&&!pop.contains(e.target)&&!e.target.closest('.dot-btn')&&!e.target.closest('.notes-btn')){pop.classList.remove('open');}\r\n});\r\n\r\nwindow.POSM={\r\n load:load,\r\n setTab:function(t){state.tab=t;savePrefs();syncTabs();},\r\n setLbMode:function(v){state.lbMode=v;savePrefs();renderLeaderboard();},\r\n setSearch:function(v){state.search=v;renderCabang();},\r\n setAreaFilter:function(v){state.areaFilter=v;renderCabang();},\r\n setStatusFilter:function(v){state.statusFilter=v;renderCabang();}\r\n};\r\n\r\nloadPrefs();load();\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"disabled","ast-disable-related-posts":"disabled","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2957","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Julia Afildah","author_link":"https:\/\/pandaigadai.com\/blog\/author\/julia-afildah\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/pages\/2957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/comments?post=2957"}],"version-history":[{"count":1,"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/pages\/2957\/revisions"}],"predecessor-version":[{"id":2958,"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/pages\/2957\/revisions\/2958"}],"wp:attachment":[{"href":"https:\/\/pandaigadai.com\/blog\/wp-json\/wp\/v2\/media?parent=2957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}