function renderOperatorsPage(e){document.title="R6 Operators | Complete Rainbow Six Siege Operators List | R6Info";let n=[],a=[],t="",r=null,o=!0,i=null,s=0;e.innerHTML=`\n ${createPageHeader("Operators","Browse all operators from Rainbow Six Siege","person")}\n \n
\n
\n
All Operators
\n
Attackers
\n
Defenders
\n
\n \n
\n \x3c!-- La barra di ricerca verrĂ  inserita qui --\x3e\n
\n
\n \n
\n ${createLoadingIndicator("Loading operators data...")}\n
\n `;const l=document.getElementById("search-container"),c={html:`\n \n `,setup:()=>{const e=document.getElementById("search-input"),n=document.getElementById("search-clear");let a;e&&(e.addEventListener("input",e=>{const t=e.target.value;n&&(n.style.display=t?"block":"none"),clearTimeout(a),a=setTimeout(()=>{d.onSearch&&d.onSearch(t)},300)}),e.addEventListener("keydown",e=>{"Enter"===e.key&&d.onSearch&&(clearTimeout(a),d.onSearch(e.target.value))})),n&&n.addEventListener("click",()=>{e&&(e.value="",e.focus()),d.onClear&&d.onClear()})}};var d;async function p(){try{o=!0,i=null,m();let e=null;const a={endpoint:"operators"};if("undefined"!=typeof r6Cache){const n=r6Cache.get("operatorsData",a);if(n){const t=r6Cache.getAge("operatorsData",a);console.log("[Cache] operatorsData HIT",{ageMs:t}),e=n}else console.log("[Cache] operatorsData MISS, fetching from API")}e||(e=await api.getOperators(),"undefined"!=typeof r6Cache&&(r6Cache.set("operatorsData",e,a),console.log("[Cache] operatorsData SET",{size:Array.isArray(e)?e.length:0,expiresMs:r6Cache.expirationTimes.operatorsData}))),n=Array.isArray(e)?e:[],g(""),o=!1,m()}catch(e){console.error("Failed to fetch operators:",e),i="Failed to load operators data. Please try again later.",o=!1,m()}}function g(e){t=e;let r=[...n];""!==e&&(r=r.filter(n=>n.name.toLowerCase().includes(e.toLowerCase())||n.realname&&n.realname.toLowerCase().includes(e.toLowerCase())||n.unit&&n.unit.toLowerCase().includes(e.toLowerCase())||n.side&&n.side.toLowerCase().includes(e.toLowerCase()))),1===s?r=r.filter(e=>e.side&&"attacker"===e.side.toLowerCase()):2===s&&(r=r.filter(e=>e.side&&"defender"===e.side.toLowerCase())),a=r,o||m()}function m(){const e=document.getElementById("operators-list");if(o)e.innerHTML=createLoadingIndicator("Loading operators data...");else{if(i){const n=createErrorDisplay({message:i,onRetry:p});return e.innerHTML=n.html,void n.setup()}0===a.length?e.innerHTML=`\n

\n No operators found matching '${t}'\n

\n `:e.innerHTML=`\n
\n ${a.map(e=>`\n
\n
\n
\n ${e.icon_url?`\n ${e.name}\n `:`\n
\n `}\n
\n

${e.name}

\n

${e.realname||"Unknown"}

\n
\n
\n \n
\n ${e.side||"Unknown"}\n ${e.country_code?`\n \n flag\n ${e.country_code}\n \n `:""}\n
\n
\n
\n `).join("")}\n
\n `,document.querySelectorAll(".operator-card").forEach(e=>{e.addEventListener("click",()=>{const a=e.getAttribute("data-operator-name"),t=n.find(e=>e.name===a);t&&function(e){r=e;const n=(a=e.safename||e.name)?a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,""):"";var a;const t=document.createElement("div");t.className="dialog-backdrop",t.innerHTML=`\n
\n
\n
\n ${e.icon_url?`\n ${e.name}\n `:`\n
\n `}\n
\n

${e.name}

\n

${e.safename||e.name}

\n
\n
\n
\n
\n
\n
\n

\n person\n Real Name: ${e.realname||"Unknown"}\n

\n

\n flag\n Birthplace: ${e.birthplace||"Unknown"}\n

\n

\n cake\n Age: ${e.age||"Unknown"}\n ${e.date_of_birth?` (DOB: ${e.date_of_birth})`:""}\n

\n

\n military_tech\n Unit: ${e.unit||"Unknown"}\n

\n
\n
\n

\n speed\n Speed: ${e.speed||"Unknown"}\n

\n

\n shield\n Health: ${e.health||"Unknown"}\n

\n

\n calendar_today\n Season Introduced: ${e.season_introduced||"Unknown"}\n

\n

\n Side: \n ${e.side||"Unknown"}\n

\n
\n
\n \n ${e.roles?`\n
\n

Roles:

\n
\n ${(Array.isArray(e.roles)?e.roles:"string"==typeof e.roles?e.roles.split(","):[]).map(e=>`\n ${e.trim()}\n `).join("")}\n
\n
\n `:""}\n
\n
\n \n View Details\n \n \n
\n
\n `,document.body.appendChild(t),document.getElementById("view-details-btn").addEventListener("click",function(e){this.style.opacity="0.7",this.textContent="Loading..."}),document.getElementById("close-dialog-btn").addEventListener("click",()=>{document.body.removeChild(t),r=null}),t.addEventListener("click",e=>{e.target===t&&(document.body.removeChild(t),r=null)})}(t)})})}}l.innerHTML=c.html,c.setup(),document.querySelectorAll(".tab").forEach(e=>{e.addEventListener("click",()=>{var n;document.querySelectorAll(".tab").forEach(e=>e.classList.remove("active")),e.classList.add("active"),n=parseInt(e.getAttribute("data-tab")),s=n,g(t)})}),p()}