{"id":18972,"date":"2025-01-19T16:57:17","date_gmt":"2025-01-19T16:57:17","guid":{"rendered":"https:\/\/idc.edu.pe\/web\/?page_id=18972"},"modified":"2025-09-16T22:44:49","modified_gmt":"2025-09-16T22:44:49","slug":"documentos-de-gestion","status":"publish","type":"page","link":"https:\/\/idc.edu.pe\/web\/documentos-de-gestion\/","title":{"rendered":"Documentos de Gesti\u00f3n"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"18972\" class=\"elementor elementor-18972\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-96fa120 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no\" data-id=\"96fa120\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e88b193\" data-id=\"e88b193\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cae0842 elementor-widget elementor-widget-html\" data-id=\"cae0842\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ====== ESTILOS ====== -->\r\n<style>\r\n  .pdf-grid{\r\n    display:grid; grid-template-columns: 280px 1fr; gap:18px; align-items:start;\r\n    max-width: 1200px; margin: 0 auto; padding: 10px;\r\n  }\r\n  .pdf-buttons{\r\n    position: sticky; top: 15px;\r\n    display:flex; flex-direction:column; gap:12px;\r\n  }\r\n  .pdf-btn{\r\n    display:flex; align-items:center; gap:10px;\r\n    width:100%; padding:14px 16px;\r\n    border-radius:12px;\r\n    border:1px solid #e6b800;\r\n    background:linear-gradient(135deg, #FFD54F, #FFC107);\r\n    font-weight:600; font-size:15px; line-height:1.3;\r\n    cursor:pointer; text-align:left;\r\n    box-shadow:0 2px 6px rgba(0,0,0,0.12);\r\n    transition: all .2s ease-in-out;\r\n  }\r\n  .pdf-btn .icon{ font-size:18px; flex-shrink:0; }\r\n  .pdf-btn:hover{\r\n    transform: translateY(-2px);\r\n    background:linear-gradient(135deg, #FFC107, #FFB300);\r\n    box-shadow:0 4px 10px rgba(0,0,0,0.18);\r\n  }\r\n  .pdf-btn.is-active{\r\n    outline:2px solid #FF9800;\r\n    background:linear-gradient(135deg, #FFC107, #FFA000);\r\n  }\r\n\r\n  \/* Visor *\/\r\n  .pdf-view{\r\n    position:relative; width:100%;\r\n    aspect-ratio: 1 \/ 1.4142; \/* A4 vertical *\/\r\n    border:1px solid #ddd; border-radius:12px;\r\n    overflow:hidden; background:#f7f7f7;\r\n    display:flex; align-items:center; justify-content:center;\r\n    user-select:none; -webkit-user-select:none;\r\n    box-shadow:0 3px 10px rgba(0,0,0,0.1);\r\n  }\r\n  .pdf-canvas, .pdf-iframe{ width:100%; height:100%; border:0; }\r\n\r\n  .pdf-hint{\r\n    position:absolute; bottom:6px; right:10px;\r\n    font-size:12px; color:#777; background:rgba(255,255,255,.7);\r\n    padding:2px 6px; border-radius:6px;\r\n  }\r\n  .pdf-msg{\r\n    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;\r\n    color:#555; font-size:14px; text-align:center; padding:10px;\r\n    background:transparent;\r\n  }\r\n\r\n  \/* Controles de navegaci\u00f3n *\/\r\n  .pdf-controls{\r\n    position:absolute; bottom:10px; left:50%; transform:translateX(-50%);\r\n    display:flex; align-items:center; gap:10px;\r\n    background:rgba(255,255,255,.85); padding:6px 10px; border-radius:999px;\r\n    box-shadow:0 2px 8px rgba(0,0,0,.12);\r\n  }\r\n  .nav-btn{\r\n    width:36px; height:36px; border-radius:50%;\r\n    display:flex; align-items:center; justify-content:center;\r\n    border:1px solid #e0b000; background:#FFD54F; font-weight:700;\r\n    cursor:pointer; transition:transform .1s ease, box-shadow .1s ease, background .2s ease;\r\n  }\r\n  .nav-btn:hover{ transform:translateY(-1px); box-shadow:0 3px 8px rgba(0,0,0,.1); background:#FFC107; }\r\n  .nav-btn:disabled{ opacity:.5; cursor:not-allowed; box-shadow:none; transform:none; }\r\n  .page-info{ font-size:13px; color:#333; min-width:90px; text-align:center; }\r\n\r\n  @media (max-width: 900px){\r\n    .pdf-grid{ grid-template-columns: 1fr; }\r\n    .pdf-buttons{ position: static; }\r\n    .pdf-controls{ bottom:8px; }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"pdf-grid\" id=\"pdfWidget\">\r\n  <!-- IZQUIERDA: BOTONES CON ICONO -->\r\n  <div class=\"pdf-buttons\" id=\"pdfButtons\">\r\n    <button class=\"pdf-btn is-active\" data-pdf-url=\"https:\/\/idc.edu.pe\/web\/wp-content\/uploads\/2025\/09\/2025-TUPA.pdf\"><span class=\"icon\">\ud83d\udcc4<\/span><span>TUPA<\/span><\/button>\r\n    <button class=\"pdf-btn\" data-pdf-url=\"https:\/\/idc.edu.pe\/web\/wp-content\/uploads\/2024\/11\/RI.pdf\"><span class=\"icon\">\ud83d\udcc4<\/span><span>Reglamento Interno<\/span><\/button>\r\n    <button class=\"pdf-btn\" data-pdf-url=\"https:\/\/idc.edu.pe\/web\/wp-content\/uploads\/2024\/11\/PEI-IDC-2024.pdf\"><span class=\"icon\">\ud83d\udcc4<\/span><span>PEI IDC<\/span><\/button>\r\n    <button class=\"pdf-btn\" data-pdf-url=\"https:\/\/idc.edu.pe\/web\/wp-content\/uploads\/2024\/11\/MANUAL-DE-PROCESOS-DE-PERFIL-DE-PUESTOS-2024.pdf\"><span class=\"icon\">\ud83d\udcc4<\/span><span>Manual de Procesos de Perfil de Puestos<\/span><\/button>\r\n    <button class=\"pdf-btn\" data-pdf-url=\"https:\/\/idc.edu.pe\/web\/wp-content\/uploads\/2024\/11\/MANUAL-PROCESOS-ACADEMICOS-IDC-2024.pdf\"><span class=\"icon\">\ud83d\udcc4<\/span><span>Manual de Procesos Acad\u00e9micos<\/span><\/button>\r\n  <\/div>\r\n\r\n  <!-- DERECHA: VISOR con fallback -->\r\n  <div class=\"pdf-view\" id=\"pdfView\">\r\n    <canvas class=\"pdf-canvas\" id=\"pdfCanvas\"><\/canvas>\r\n    <div class=\"pdf-msg\" id=\"pdfMsg\">Cargando documento\u2026<\/div>\r\n    <div class=\"pdf-hint\" id=\"pdfHint\">Vista 1 hoja (sin descarga)<\/div>\r\n\r\n    <!-- CONTROLES NAVEGACI\u00d3N -->\r\n    <div class=\"pdf-controls\" id=\"pdfControls\" aria-label=\"Controles de navegaci\u00f3n PDF\">\r\n      <button class=\"nav-btn\" id=\"prevBtn\" aria-label=\"P\u00e1gina anterior\">\u25c0<\/button>\r\n      <div class=\"page-info\" id=\"pageInfo\">1 \/ 1<\/div>\r\n      <button class=\"nav-btn\" id=\"nextBtn\" aria-label=\"P\u00e1gina siguiente\">\u25b6<\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- ====== PDF.js ====== -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/2.16.105\/pdf.min.js\" defer><\/script>\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function(){\r\n  const view      = document.getElementById('pdfView');\r\n  const canvas    = document.getElementById('pdfCanvas');\r\n  const ctx       = canvas.getContext('2d');\r\n  const msg       = document.getElementById('pdfMsg');\r\n  const hint      = document.getElementById('pdfHint');\r\n  const buttons   = Array.from(document.querySelectorAll('#pdfButtons .pdf-btn'));\r\n\r\n  \/\/ Controles\r\n  const controls  = document.getElementById('pdfControls');\r\n  const prevBtn   = document.getElementById('prevBtn');\r\n  const nextBtn   = document.getElementById('nextBtn');\r\n  const pageInfo  = document.getElementById('pageInfo');\r\n\r\n  let pdfDoc = null;\r\n  let currentPage = 1;\r\n  let totalPages = 1;\r\n\r\n  view.addEventListener('contextmenu', e => e.preventDefault());\r\n\r\n  const pdfjsReady = () => typeof window['pdfjsLib'] !== 'undefined';\r\n  const waitPdfjs = () => new Promise(res=>{\r\n    if (pdfjsReady()) return res();\r\n    const id = setInterval(()=>{ if(pdfjsReady()){ clearInterval(id); res(); } }, 50);\r\n  });\r\n\r\n  function setControlsEnabled(enabled){\r\n    prevBtn.disabled = !enabled || currentPage <= 1;\r\n    nextBtn.disabled = !enabled || currentPage >= totalPages;\r\n    controls.style.opacity = enabled ? '1' : '.6';\r\n  }\r\n\r\n  function switchToIframeFallback(url){\r\n    if (canvas.parentNode) canvas.remove();\r\n    const existing = view.querySelector('.pdf-iframe');\r\n    if (existing) existing.remove();\r\n\r\n    const iframe = document.createElement('iframe');\r\n    iframe.className = 'pdf-iframe';\r\n    iframe.setAttribute('referrerpolicy','no-referrer');\r\n    iframe.src = 'https:\/\/docs.google.com\/gview?embedded=1&url=' + encodeURIComponent(url);\r\n    view.insertBefore(iframe, msg);\r\n\r\n    msg.style.display='none';\r\n    hint.textContent = 'Vista integrada (fallback)';\r\n    setControlsEnabled(false);\r\n  }\r\n\r\n  async function renderPage(pageNumber){\r\n    if (!pdfDoc) return;\r\n    try{\r\n      msg.style.display='flex';\r\n      const page = await pdfDoc.getPage(pageNumber);\r\n\r\n      const cw = view.clientWidth, ch = view.clientHeight;\r\n      const vp1 = page.getViewport({ scale: 1.0 });\r\n      const scale = Math.min(cw \/ vp1.width, ch \/ vp1.height);\r\n      const vp   = page.getViewport({ scale });\r\n\r\n      canvas.width  = Math.floor(vp.width);\r\n      canvas.height = Math.floor(vp.height);\r\n\r\n      await page.render({ canvasContext: ctx, viewport: vp }).promise;\r\n      currentPage = pageNumber;\r\n\r\n      pageInfo.textContent = currentPage + ' \/ ' + totalPages;\r\n      setControlsEnabled(true);\r\n    }catch(e){\r\n      console.error(e);\r\n    }finally{\r\n      msg.style.display='none';\r\n    }\r\n  }\r\n\r\n  async function loadWithPdfjs(url){\r\n    await waitPdfjs();\r\n    const pdfjsLib = window['pdfjsLib'];\r\n    pdfjsLib.GlobalWorkerOptions.workerSrc = \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/2.16.105\/pdf.worker.min.js\";\r\n\r\n    msg.style.display='flex';\r\n    try{\r\n      if (!canvas.isConnected) view.insertBefore(canvas, msg);\r\n      const iframe = view.querySelector('.pdf-iframe');\r\n      if (iframe) iframe.remove();\r\n\r\n      pdfDoc = await pdfjsLib.getDocument({ url, withCredentials:false }).promise;\r\n      totalPages = pdfDoc.numPages || 1;\r\n      currentPage = 1;\r\n\r\n      await renderPage(currentPage);\r\n      hint.textContent = 'Vista 1 hoja (sin descarga)';\r\n      return true;\r\n    }catch(err){\r\n      console.warn('PDF.js fall\u00f3, cambio a fallback:', err);\r\n      pdfDoc = null; totalPages = 1; currentPage = 1;\r\n      return false;\r\n    }\r\n  }\r\n\r\n  async function loadDoc(url){\r\n    const ok = await loadWithPdfjs(url);\r\n    if (!ok){ switchToIframeFallback(url); }\r\n  }\r\n\r\n  buttons.forEach(btn=>{\r\n    btn.addEventListener('click', ()=>{\r\n      buttons.forEach(b=>b.classList.remove('is-active'));\r\n      btn.classList.add('is-active');\r\n      loadDoc(btn.getAttribute('data-pdf-url'));\r\n    });\r\n  });\r\n\r\n  prevBtn.addEventListener('click', ()=>{ if(pdfDoc && currentPage>1) renderPage(currentPage-1); });\r\n  nextBtn.addEventListener('click', ()=>{ if(pdfDoc && currentPage<totalPages) renderPage(currentPage+1); });\r\n\r\n  document.addEventListener('keydown', (e)=>{\r\n    if (!pdfDoc) return;\r\n    if (e.key === 'ArrowLeft'  && currentPage>1) { e.preventDefault(); renderPage(currentPage-1); }\r\n    if (e.key === 'ArrowRight' && currentPage<totalPages) { e.preventDefault(); renderPage(currentPage+1); }\r\n  });\r\n\r\n  const first = buttons.find(b=>b.classList.contains('is-active')) || buttons[0];\r\n  if(first){ loadDoc(first.getAttribute('data-pdf-url')); }\r\n\r\n  let resizeTO;\r\n  window.addEventListener('resize', ()=>{\r\n    clearTimeout(resizeTO);\r\n    resizeTO = setTimeout(()=>{\r\n      if (!pdfDoc) return;\r\n      renderPage(currentPage);\r\n    }, 120);\r\n  });\r\n});\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcc4TUPA \ud83d\udcc4Reglamento Interno \ud83d\udcc4PEI IDC \ud83d\udcc4Manual de Procesos de Perfil de Puestos \ud83d\udcc4Manual de Procesos Acad\u00e9micos Cargando documento\u2026 Vista 1 hoja (sin descarga) \u25c0 1 \/ 1 \u25b6<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","footnotes":""},"class_list":["post-18972","page","type-page","status-publish","hentry","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/pages\/18972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/comments?post=18972"}],"version-history":[{"count":103,"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/pages\/18972\/revisions"}],"predecessor-version":[{"id":19892,"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/pages\/18972\/revisions\/19892"}],"wp:attachment":[{"href":"https:\/\/idc.edu.pe\/web\/wp-json\/wp\/v2\/media?parent=18972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}