Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 36a4cacd7a | |||
| 2859a59c57 | |||
| cb722a26f1 | |||
| bcf1cd1f0a | |||
| 4482d618c6 | |||
| a832601e50 | |||
| 09ea0c9ca8 | |||
| 283a8babe3 | |||
| 67dd34ce46 | |||
| 8755b24472 | |||
| 0f89b0ccee | |||
| d25d47c1e2 | |||
| fb893103cf | |||
| a03c5837db | |||
| 2acf31ee87 | |||
| 79a7495749 | |||
| 830f0c5d2f | |||
| 0992ce537e | |||
| fb60c34c22 | |||
| c1dc8ebad2 | |||
| a82d61e364 | |||
| 909bf4f14d | |||
| 6606160668 | |||
| 4f9feaace6 | |||
| dce2fa913c | |||
| ae96f69f95 | |||
| e43ae8e703 | |||
| 73f5768ce5 | |||
| 4e95da7c2f | |||
| 2e58a13356 | |||
| adcf19e9de | |||
| 72a7f49a25 | |||
| b2388010fc |
@@ -0,0 +1,85 @@
|
||||
name: Despliegue Automatizado Universal
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
- master
|
||||
|
||||
jobs:
|
||||
get-context:
|
||||
runs-on: host
|
||||
outputs:
|
||||
node_version: ${{ steps.setup.outputs.version }}
|
||||
target_app: ${{ steps.setup.outputs.app }}
|
||||
steps:
|
||||
- name: Resolver Aplicación desde apps.conf
|
||||
id: setup
|
||||
run: |
|
||||
# 1. Obtener el nombre del repositorio actual en Gitea (ej: front-Censo)
|
||||
REPO_NAME="${{ github.event.repository.name }}"
|
||||
|
||||
# 2. Determinar si buscamos un entorno -dev (develop) o producción (master)
|
||||
if [ "${{ github.ref_name }}" = "develop" ]; then
|
||||
SUFFIX="-dev"
|
||||
else
|
||||
SUFFIX=""
|
||||
fi
|
||||
|
||||
echo "Buscando qué sección de apps.conf tiene REPO=$REPO_NAME y termina en '$SUFFIX'..."
|
||||
|
||||
# 3. Buscar en /etc/apps.conf el bloque que contenga REPO=nombre_del_repo
|
||||
TARGET_APP=$(awk -v repo="REPO=$REPO_NAME" -v suf="$SUFFIX" '
|
||||
/^\[/ { gsub(/[\[\]]/, "", $0); current_box=$0; next }
|
||||
$0 == repo {
|
||||
if ((suf == "-dev" && current_box ~ /-dev$/) || (suf == "" && current_box !~ /-dev$/)) {
|
||||
print current_box;
|
||||
exit
|
||||
}
|
||||
}
|
||||
' /etc/apps.conf)
|
||||
|
||||
if [ -z "$TARGET_APP" ]; then
|
||||
echo "ERROR: No se encontró ninguna sección en /etc/apps.conf para el repositorio $REPO_NAME con el sufijo correcto."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 4. Leer la versión de Node del bloque encontrado
|
||||
VERSION=$(awk -v app="$TARGET_APP" '
|
||||
$0=="["app"]" { found=1; next }
|
||||
/^\[/ && found { exit }
|
||||
found && /^NODE=/ { split($0, a, "="); print a[2]; exit }
|
||||
' /etc/apps.conf)
|
||||
|
||||
MAJOR_VERSION=$(echo "$VERSION" | tr -d '[:space:]' | grep -oE '[0-9]+' | head -n1)
|
||||
|
||||
echo "-> ID de Aplicación encontrado: $TARGET_APP"
|
||||
echo "-> Versión Mayor de Node resuelta: $MAJOR_VERSION"
|
||||
|
||||
echo "app=${TARGET_APP}" >> $GITHUB_OUTPUT
|
||||
echo "version=${MAJOR_VERSION}" >> $GITHUB_OUTPUT
|
||||
|
||||
build:
|
||||
needs: get-context
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Configurar Node.js dinámicamente
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ needs.get-context.outputs.node_version }}
|
||||
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
|
||||
deploy:
|
||||
needs: [get-context, build]
|
||||
runs-on: host
|
||||
steps:
|
||||
- name: Ejecutar Despliegue en Servidor Físico
|
||||
run: |
|
||||
TARGET_APP="${{ needs.get-context.outputs.target_app }}"
|
||||
BRANCH_NAME="${{ github.ref_name }}"
|
||||
|
||||
sudo -u deploy /home/deploy/scripts/deploy-front.sh "$TARGET_APP" "$BRANCH_NAME"
|
||||
@@ -0,0 +1,13 @@
|
||||
110 Departamento de movilidad estudiantil intercambio academico
|
||||
|
||||
198 secretaría Auxiliar de Extensión Universitaria y Vinculación Institucional
|
||||
|
||||
148 Secretaría Auxiliar de la Secretaría General", cargo: "Secretario Auxiliar
|
||||
|
||||
5 Unidad de Administración y Recursos", cargo
|
||||
|
||||
3 Unidad de Servicios a la Comunidad
|
||||
|
||||
61 Superintendencia de Obras y Mantenimiento
|
||||
|
||||
59 Unidad de la Oficina Jurídica
|
||||
@@ -0,0 +1,2 @@
|
||||
declare module '*.css';
|
||||
declare module '*.scss';
|
||||
@@ -11,12 +11,12 @@
|
||||
"dependencies": {
|
||||
"axios": "^1.11.0",
|
||||
"bootstrap": "^5.3.7",
|
||||
"next": "15.4.5",
|
||||
"next": "^15.3.6",
|
||||
"react": "19.1.0",
|
||||
"react-bootstrap": "^2.10.10",
|
||||
"react-dom": "19.1.0",
|
||||
"sass": "^1.89.2",
|
||||
"sweetalert2": "^11.22.3"
|
||||
"sweetalert2": "^11.26.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/eslintrc": "^3",
|
||||
|
||||
@@ -0,0 +1,322 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --><svg id="Capa_1" style="enable-background:new 0 0 1634 1251.8;" version="1.1" viewBox="0 0 1634 1251.8" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;stroke:#002B7A;stroke-width:5;stroke-linecap:round;stroke-miterlimit:10;}
|
||||
.st2{fill:#002B7A;stroke:#D59F0F;stroke-width:3;stroke-miterlimit:10;}
|
||||
.st3{font-family:'CenturyGothic-Bold';}
|
||||
.st4{font-size:12px;}
|
||||
.st5{font-size:11px;}
|
||||
.st6{font-size:10px;}
|
||||
</style>
|
||||
<g id="Capa_2_00000014613679252256872710000012712931533006635161_">
|
||||
<rect class="st0" height="1251.8" width="1634" y="0"/>
|
||||
</g>
|
||||
<g id="Capa_3">
|
||||
<line class="st1" x1="485.3" x2="485.3" y1="782.1" y2="842"/>
|
||||
<line class="st1" x1="485.3" x2="485.3" y1="689.9" y2="749.8"/>
|
||||
<line class="st1" x1="485.3" x2="485.3" y1="411.9" y2="471.8"/>
|
||||
<line class="st1" x1="485.3" x2="485.3" y1="597.6" y2="657.5"/>
|
||||
<line class="st1" x1="485.3" x2="485.3" y1="504.8" y2="564.7"/>
|
||||
<line class="st1" x1="481.6" x2="481.6" y1="316.6" y2="376.5"/>
|
||||
</g>
|
||||
<g id="Capa_1_00000148652816476125859040000017556691375719302558_">
|
||||
<line class="st1" x1="509.8" x2="651.6" y1="256.4" y2="256.4"/>
|
||||
<line class="st1" x1="509.8" x2="793.3" y1="171.7" y2="171.7"/>
|
||||
<line class="st1" x1="150" x2="1502.9" y1="316.6" y2="316.6"/>
|
||||
<line class="st1" x1="651.6" x2="651.6" y1="87.4" y2="376.5"/>
|
||||
<line class="st1" x1="150" x2="150" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="150" x2="150" y1="376.5" y2="471.8"/>
|
||||
<line class="st1" x1="150" x2="150" y1="471.8" y2="567.1"/>
|
||||
<line class="st1" x1="150" x2="150" y1="567.1" y2="662.4"/>
|
||||
<line class="st1" x1="150" x2="150" y1="662.4" y2="757.8"/>
|
||||
<line class="st1" x1="150" x2="150" y1="757.8" y2="853.1"/>
|
||||
<line class="st1" x1="150" x2="150" y1="853.1" y2="948.4"/>
|
||||
<line class="st1" x1="150" x2="150" y1="948.4" y2="1043.7"/>
|
||||
<line class="st1" x1="315.7" x2="315.7" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="315.7" x2="315.7" y1="411.9" y2="471.8"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="411.9" y2="471.8"/>
|
||||
<line class="st1" x1="825.8" x2="825.8" y1="411.9" y2="471.8"/>
|
||||
<line class="st1" x1="825.8" x2="825.8" y1="597.6" y2="657.5"/>
|
||||
<line class="st1" x1="825.8" x2="825.8" y1="690.5" y2="750.4"/>
|
||||
<line class="st1" x1="825.8" x2="825.8" y1="783.4" y2="843.3"/>
|
||||
<line class="st1" x1="825.8" x2="825.8" y1="504.8" y2="564.7"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="505.2" y2="565.1"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="597.5" y2="657.4"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="689.9" y2="749.8"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="782.2" y2="842.1"/>
|
||||
<line class="st1" x1="655.5" x2="655.5" y1="874.5" y2="934.4"/>
|
||||
<line class="st1" x1="315.7" x2="315.7" y1="600.1" y2="660"/>
|
||||
<line class="st1" x1="315.7" x2="315.7" y1="504.8" y2="564.7"/>
|
||||
<line class="st1" x1="821.8" x2="821.8" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="992.1" x2="992.1" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="1162.3" x2="1162.3" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="1332.6" x2="1332.6" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="316.6" y2="376.5"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="412.5" y2="472.4"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="504.8" y2="564.7"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="597" y2="656.9"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="689.2" y2="749.1"/>
|
||||
<line class="st1" x1="1502.9" x2="1502.9" y1="781.5" y2="841.4"/>
|
||||
<path class="st2" d="M592.7,51.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12V63.9 C580.7,57.3,586.1,51.9,592.7,51.9z"/>
|
||||
<path class="st2" d="M592.7,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12V353 C580.7,346.4,586.1,341,592.7,341z"/>
|
||||
<path class="st2" d="M252.8,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H252.8c-6.6,0-12-5.4-12-12V353 C240.8,346.4,246.2,341,252.8,341z"/>
|
||||
<path class="st2" d="M252.8,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H252.8c-6.6,0-12-5.4-12-12v-46.9 C240.8,441.7,246.2,436.4,252.8,436.4z"/>
|
||||
<path class="st2" d="M763,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12v-46.9 C751,441.7,756.3,436.4,763,436.4z"/>
|
||||
<path class="st2" d="M763,622.1h117.7c6.6,0,12,5.4,12,12V681c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12v-46.9 C751,627.5,756.3,622.1,763,622.1z"/>
|
||||
<path class="st2" d="M763,715h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12V727 C751,720.3,756.3,715,763,715z"/>
|
||||
<path class="st2" d="M763,807.8h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12v-46.9 C751,813.2,756.3,807.8,763,807.8z"/>
|
||||
<path class="st2" d="M763,529.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12v-46.9 C751,534.6,756.3,529.2,763,529.2z"/>
|
||||
<path class="st2" d="M252.8,624.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H252.8c-6.6,0-12-5.4-12-12v-46.9 C240.8,629.9,246.2,624.6,252.8,624.6z"/>
|
||||
<path class="st2" d="M252.8,529.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H252.8c-6.6,0-12-5.4-12-12v-46.9 C240.8,534.6,246.2,529.2,252.8,529.2z"/>
|
||||
<path class="st2" d="M91.2,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12V353 C79.2,346.4,84.5,341,91.2,341z"/>
|
||||
<path class="st2" d="M91.2,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12v-46.9 C79.2,441.7,84.5,436.4,91.2,436.4z"/>
|
||||
<path class="st2" d="M91.2,531.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12v-46.9 C79.2,537.1,84.5,531.7,91.2,531.7z"/>
|
||||
<path class="st2" d="M91.2,627h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12V639 C79.2,632.4,84.5,627,91.2,627z"/>
|
||||
<path class="st2" d="M91.2,722.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12v-46.9 C79.2,727.7,84.5,722.3,91.2,722.3z"/>
|
||||
<path class="st2" d="M91.2,817.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12v-46.9 C79.2,823,84.5,817.7,91.2,817.7z"/>
|
||||
<path class="st2" d="M91.2,913h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12V925 C79.2,918.3,84.5,913,91.2,913z"/>
|
||||
<path class="st2" d="M91.2,1008.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H91.2c-6.6,0-12-5.4-12-12v-46.9 C79.2,1013.7,84.5,1008.3,91.2,1008.3z"/>
|
||||
<path class="st2" d="M763,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H763c-6.6,0-12-5.4-12-12V353 C751,346.4,756.3,341,763,341z"/>
|
||||
<path class="st2" d="M933.2,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H933.2c-6.6,0-12-5.4-12-12V353 C921.2,346.4,926.6,341,933.2,341z"/>
|
||||
<path class="st2" d="M1103.5,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12V353 C1091.5,346.4,1096.9,341,1103.5,341z"/>
|
||||
<path class="st2" d="M1273.7,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12V353 C1261.7,346.4,1267.1,341,1273.7,341z"/>
|
||||
<path class="st2" d="M451,136.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H451c-6.6,0-12-5.4-12-12v-46.9 C439,142,444.3,136.6,451,136.6z"/>
|
||||
<path class="st2" d="M451,221.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H451c-6.6,0-12-5.4-12-12v-46.9 C439,226.6,444.3,221.3,451,221.3z"/>
|
||||
<path class="st2" d="M734.4,136.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H734.4c-6.6,0-12-5.4-12-12v-46.9 C722.4,142,727.8,136.6,734.4,136.6z"/>
|
||||
<text id="72" class="st0 st3 st4" transform="matrix(1 0 0 1 618.5801 91.77)">DIRECCIÓN</text>
|
||||
<g id="60">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 729.47 168.9204)">DEPARTAMENTO DE LA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 735.8301 183.3208)">OFICINA DE PRENSA</text>
|
||||
</g>
|
||||
<g id="122">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 452.01 161.7202)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 459.8101 176.1206)">COMUNICACIÓN</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 488.24 190.52)">SOCIAL</text>
|
||||
</g>
|
||||
<g id="143">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 452.01 253.5806)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 484.8799 267.981)">GESTIÓN</text>
|
||||
</g>
|
||||
<text id="8" class="st0 st3 st4" transform="matrix(1 0 0 1 88.01 381.2007)">SECRETARÍA GENERAL</text>
|
||||
<g id="76">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 115 461.8003)">DIVISIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 103.49 476.2007)">MATEMÁTICAS E</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 116.9199 490.6006)">INGENIERÍA</text>
|
||||
</g>
|
||||
<g id="78">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 86.3201 564.3306)">DIVISIÓN DE DISEÑO Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 111.52 578.7305)">EDIFICACIÓN</text>
|
||||
</g>
|
||||
<g id="77">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 115 659.6504)">DIVISIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 107.0801 674.0503)">HUMANIDADES</text>
|
||||
</g>
|
||||
<g id="79">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 85.49 754.9702)">DIVISIÓN DE CIENCIAS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 83.45 769.3706)">Y SOCIOECONÓMICAS</text>
|
||||
</g>
|
||||
<g id="80">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 85.49 850.3003)">DIVISIÓN DE CIENCIAS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 120.04 864.7007)">JURÍDICAS</text>
|
||||
</g>
|
||||
<g id="74">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 88.2498 930.7827)">DIVISIÓN DEL SISTEMA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 104.9143 945.2097)">DE UNIVERSIDAD</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 84.3201 958.6936)">ABIERTA Y EDUCACIÓN</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 115 971.8047)">A DISTANCIA</text>
|
||||
</g>
|
||||
<g id="148">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 88.01 1033.7505)">SECRETARÍA AUXILIAR</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 98.21 1048.1504)">DE LA SECRETARÍA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 123.76 1062.5503)">GENERAL</text>
|
||||
</g>
|
||||
<g id="119">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 268.6201 366.8003)">SECRETARÍA DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 273.1799 381.2007)">POSGRADO E</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 265.6299 395.6006)">INVESTIGACIÓN</text>
|
||||
</g>
|
||||
<g id="120">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 253.8701 462.1206)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 276.0601 476.5205)">ESTUDIOS DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 277.98 490.9204)">POSGRADO</text>
|
||||
</g>
|
||||
<path class="st2" d="M422.5,807h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H422.5c-6.6,0-12-5.4-12-12V819 C410.5,812.4,415.8,807,422.5,807z"/>
|
||||
<g id="6">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 449.51 832.7705)">UNIDAD DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 430.0801 847.1704)">ADMINISTRACIÓN</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 454.79 861.5703)">ESCOLAR</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,712.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12v-46.9 C580.7,717.7,586.1,712.3,592.7,712.3z"/>
|
||||
<g id="129">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 591.1001 738.0503)">COORDINACIÓN DEL</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 583.0601 752.4507)">CENTRO DE ENSEÑANZA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 617.01 766.8506)">DE IDIOMAS</text>
|
||||
</g>
|
||||
<g id="123">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 753.4399 462.1206)">UNIDAD DEL CENTRO DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 773.24 476.5205)">INFORMACIÓN Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 768.3201 490.9204)">DOCUMENTACIÓN</text>
|
||||
</g>
|
||||
<g id="130">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 753.4399 647.8604)">UNIDAD DEL CENTRO DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 784.6401 662.2603)">DESARROLLO</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 777.9199 676.6606)">TECNOLÓGICO</text>
|
||||
</g>
|
||||
<g id="2">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 758.23 747.9307)">UNIDAD DE SERVICIOS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 786.79 762.3306)">EDITORIALES</text>
|
||||
</g>
|
||||
<g id="1">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 761.6001 833.6006)">UNIDAD DE TALLERES,</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 772.04 848.0005)">LABORATORIOS Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 776.48 862.4004)">AUDIOVISUALES</text>
|
||||
</g>
|
||||
<g id="176">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 766.3999 549.2202)">COORDINACIÓN DEL</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 758.7 562.4204)">CENTRO TECNOLÓGICO</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 759.1401 575.6206)">PARA LA EDUCACIÓN A</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 793.24 588.8203)">DISTANCIA</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,805.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12v-46.9 C580.7,810.6,586.1,805.3,592.7,805.3z"/>
|
||||
<g id="214">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 591.1001 823.8203)">COORDINACIÓN DEL</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 590.97 838.2202)">CENTRO DE ESTUDIOS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 607.78 852.6206)">MUNICIPALES Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 599.74 867.0205)">METROPOLITANOS</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,526.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12v-46.9 C580.7,532,586.1,526.6,592.7,526.6z"/>
|
||||
<g id="125">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 591.1001 552.3804)">COORDINACIÓN DEL</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 590.74 566.7808)">CENTRO DE DIFUSIÓN</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 623.49 581.1807)">CULTURAL</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,436.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12v-46.9 C580.7,442.3,586.1,436.9,592.7,436.9z"/>
|
||||
<g id="128">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 593.74 455.4805)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 613.29 469.8804)">ACTIVIDADES</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 611.01 484.2803)">DEPORTIVAS Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 613.29 498.6807)">RECREATIVAS</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,899.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12v-46.9 C580.7,905,586.1,899.6,592.7,899.6z"/>
|
||||
<g id="198">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 586.46 919.6406)">SECRETARÍA AUXILIAR DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 582.5 932.8403)">EXTENSIÓN UNIVERSITARIA</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 608.3501 946.0405)">Y VINCULACIÓN</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 612.4199 959.2407)">INSTITUCIONAL</text>
|
||||
</g>
|
||||
<path class="st2" d="M592.7,992h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H592.7c-6.6,0-12-5.4-12-12V1004 C580.7,997.3,586.1,992,592.7,992z"/>
|
||||
<g id="165">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 587.1201 1011.9604)">SECRETARÍA TÉCNICA DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 582.5 1025.1606)">EXTENSIÓN UNIVERSITARIA</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 608.3501 1038.3604)">Y VINCULACIÓN</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 612.4199 1051.5605)">INSTITUCIONAL</text>
|
||||
</g>
|
||||
<path class="st2" d="M422.5,711.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H422.5c-6.6,0-12-5.4-12-12v-46.9 C410.5,717.3,415.8,711.9,422.5,711.9z"/>
|
||||
<g id="190">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 416.2 731.9307)">SECRETARÍA AUXILIAR DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 433.8 745.1304)">LA SECRETARÍA DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 418.0701 758.3306)">ASUNTOS ACADÉMICOS</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 444.24 771.5308)">ESTUDIANTILES</text>
|
||||
</g>
|
||||
<path class="st2" d="M422.5,523.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H422.5c-6.6,0-12-5.4-12-12v-46.9 C410.5,529.1,415.8,523.7,422.5,523.7z"/>
|
||||
<g id="110">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 430.8301 543.7407)">DEPARTAMENTO DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 416.2 556.9404)">MOVILIDAD ESTUDIANTIL,</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 419.3999 570.1406)">INTERCAMBIO, BECAS Y</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 427.2 583.3403)">SERVICIOS DE SALUD</text>
|
||||
</g>
|
||||
<g id="50">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 249.6699 650.3105)">SECRETARÍA AUXILIAR</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 264.1799 664.7104)">DE POSGRADO E</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 265.6299 679.1104)">INVESTIGACIÓN</text>
|
||||
</g>
|
||||
<g id="182">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 250.6599 542.6206)">COORDINACIÓN DE LA</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 282.55 555.8203)">UNIDAD DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 269.47 569.0205)">INVESTIGACIÓN</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 258.9099 582.2202)">MULTIDISCIPLINARIA</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 284.3101 595.4204)">APLICADA</text>
|
||||
</g>
|
||||
<g id="177">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 612.0901 354.4307)">SECRETARÍA DE</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 622.6499 367.6304)">EXTENSIÓN</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 608.02 380.8306)">UNIVERSITARIA Y</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 613.3 394.0303)">VINCULACIÓN</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 612.4199 407.2305)">INSTITUCIONAL</text>
|
||||
</g>
|
||||
<g id="121">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 764 366.4805)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 791.71 380.8804)">SERVICIOS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 781.04 395.2803)">ACADÉMICOS</text>
|
||||
</g>
|
||||
<g id="59">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 925.02 373.6807)">UNIDAD DE LA OFICINA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 965.21 388.0806)">JURÍDICA</text>
|
||||
</g>
|
||||
<g id="4">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1130.55 373.6807)">UNIDAD DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1124.0801 388.0806)">PLANEACIÓN</text>
|
||||
</g>
|
||||
<g id="9">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1274.78 373.6807)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1265.3 388.0806)">CUERPOS COLEGIADOS</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12V353 C1432,346.4,1437.4,341,1444,341z"/>
|
||||
<g id="127">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1468.79 373.6807)">SECRETARÍA</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1454.6299 388.0806)">ADMINISTRATIVA</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,719.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12v-46.9 C1432,725,1437.4,719.6,1444,719.6z"/>
|
||||
<g id="5">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1471.0698 745.0503)">UNIDAD DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1442.6401 759.4507)">ADMINISTRACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1472.99 773.8506)">RECURSOS</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,809.1h117.7c6.6,0,12,5.4,12,12V868c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12v-46.9 C1432,814.5,1437.4,809.1,1444,809.1z"/>
|
||||
<g id="3">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1439.27 841.7407)">UNIDAD DE SERVICIOS </text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1450.0698 856.1406)">A LA COMUNIDAD</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,525.8h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12v-46.9 C1432,531.2,1437.4,525.8,1444,525.8z"/>
|
||||
<g id="204">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1447.79 551.2705)">DEPARTAMENTO DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1468.79 565.6704)">PROYECTOS</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1450.9102 580.0703)">ADMINISTRATIVOS</text>
|
||||
</g>
|
||||
<path class="st2" d="M423.7,436.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H423.7c-6.6,0-12-5.4-12-12v-46.9 C411.7,442,417.1,436.6,423.7,436.6z"/>
|
||||
<text id="105" class="st0 st3 st5" transform="matrix(1 0 0 1 431.8599 456.6206)">DEPARTAMENTO DE </text>
|
||||
<text id="105" class="st0 st3 st5" transform="matrix(1 0 0 1 440.8899 469.8203)">ATENCIÓN A LA </text>
|
||||
<text id="105" class="st0 st3 st5" transform="matrix(1 0 0 1 447.5901 483.0205)">COMUNIDAD </text>
|
||||
<text id="105" class="st0 st3 st5" transform="matrix(1 0 0 1 451 496.2207)">ESTUDIANTIL</text>
|
||||
<path class="st2" d="M422.2,621.5H540c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H422.2c-6.6,0-12-5.4-12-12v-46.9 C410.2,626.9,415.6,621.5,422.2,621.5z"/>
|
||||
<text id="93" class="st0 st3 st6" transform="matrix(1 0 0 1 435.1899 642.6006)">DEPARTAMENTO DE </text>
|
||||
<text id="93" class="st0 st3 st6" transform="matrix(1 0 0 1 437.8 654.6006)">SERVICIO SOCIAL, </text>
|
||||
<text id="93" class="st0 st3 st6" transform="matrix(1 0 0 1 415.99 666.6006)">DESARROLLO PROFESIONAL </text>
|
||||
<text id="93" class="st0 st3 st6" transform="matrix(1 0 0 1 427.5 678.6006)">E INSERCIÓN LABORAL</text>
|
||||
<path class="st2" d="M596.7,621.5h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H596.7c-6.6,0-12-5.4-12-12v-46.9 C584.7,626.9,590.1,621.5,596.7,621.5z"/>
|
||||
<text id="124" class="st0 st3 st4" transform="matrix(1 0 0 1 595.0801 639.7407)">COORDINACIÓN DEL </text>
|
||||
<text id="124" class="st0 st3 st4" transform="matrix(1 0 0 1 623.27 654.1406)">CENTRO DE </text>
|
||||
<text id="124" class="st0 st3 st4" transform="matrix(1 0 0 1 619.4299 668.5405)">EDUCACIÓN </text>
|
||||
<text id="124" class="st0 st3 st4" transform="matrix(1 0 0 1 624.48 682.9404)">CONTINUA</text>
|
||||
<path class="st2" d="M423.6,338.5h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H423.6c-6.6,0-12-5.4-12-12v-46.9 C411.6,343.8,417,338.5,423.6,338.5z"/>
|
||||
<g id="181">
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 417.1499 365.0703)">SECRETARÍA DE ASUNTOS</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 445.0901 378.2705)">ACADÉMICOS</text>
|
||||
<text class="st0 st3 st5" transform="matrix(1 0 0 1 445.4099 391.4707)">ESTUDIANTILES</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,624.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12v-46.9 C1432,629.6,1437.4,624.2,1444,624.2z"/>
|
||||
<g id="61">
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1438.2 649.6704)">SUPERINTENDENCIA DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1477.9102 664.0703)">OBRAS Y</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1454.6401 678.4702)">MANTENIMIENTO</text>
|
||||
</g>
|
||||
<path class="st2" d="M1444,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12H1444c-6.6,0-12-5.4-12-12v-46.9 C1432,441.7,1437.4,436.4,1444,436.4z"/>
|
||||
<g>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1445.04 454.6006)">COORDINACIÓN DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1472.03 469.0005)">PLANTA DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1454.28 483.4004)">TRATAMIENTO DE</text>
|
||||
<text class="st0 st3 st4" transform="matrix(1 0 0 1 1447.55 497.8003)">AGUAS RESIDUALES</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,357 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1634 1251.8">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1, .cls-2, .cls-3, .cls-4 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.cls-2, .cls-3, .cls-4 {
|
||||
font-family: CenturyGothic-Bold, 'Century Gothic';
|
||||
font-weight: 700;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
fill: none;
|
||||
stroke: #002b7a;
|
||||
stroke-linecap: round;
|
||||
stroke-width: 5px;
|
||||
}
|
||||
|
||||
.cls-5, .cls-6 {
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
fill: #002b7a;
|
||||
stroke: #d59f0f;
|
||||
stroke-width: 3px;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
font-size: 11px;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Capa_2" data-name="Capa 2">
|
||||
<rect class="cls-1" width="1634" height="1251.8"/>
|
||||
</g>
|
||||
<g id="Capa_3" data-name="Capa 3">
|
||||
<line class="cls-5" x1="485.3" y1="782.1" x2="485.3" y2="842"/>
|
||||
<line class="cls-5" x1="485.3" y1="689.9" x2="485.3" y2="749.8"/>
|
||||
<line class="cls-5" x1="485.3" y1="411.9" x2="485.3" y2="471.8"/>
|
||||
<line class="cls-5" x1="485.3" y1="597.6" x2="485.3" y2="657.5"/>
|
||||
<line class="cls-5" x1="485.3" y1="504.8" x2="485.3" y2="564.7"/>
|
||||
<line class="cls-5" x1="481.6" y1="316.6" x2="481.6" y2="376.5"/>
|
||||
</g>
|
||||
<g id="Capa_1-2" data-name="Capa 1">
|
||||
<line class="cls-5" x1="509.8" y1="256.4" x2="651.6" y2="256.4"/>
|
||||
<line class="cls-5" x1="509.8" y1="171.7" x2="793.3" y2="171.7"/>
|
||||
<line class="cls-5" x1="150" y1="316.6" x2="1502.9" y2="316.6"/>
|
||||
<line class="cls-5" x1="651.6" y1="87.4" x2="651.6" y2="376.5"/>
|
||||
<line class="cls-5" x1="150" y1="316.6" x2="150" y2="376.5"/>
|
||||
<line class="cls-5" x1="150" y1="376.5" x2="150" y2="471.8"/>
|
||||
<line class="cls-5" x1="150" y1="471.8" x2="150" y2="567.1"/>
|
||||
<line class="cls-5" x1="150" y1="567.1" x2="150" y2="662.4"/>
|
||||
<line class="cls-5" x1="150" y1="662.4" x2="150" y2="757.8"/>
|
||||
<line class="cls-5" x1="150" y1="757.8" x2="150" y2="853.1"/>
|
||||
<line class="cls-5" x1="150" y1="853.1" x2="150" y2="948.4"/>
|
||||
<line class="cls-5" x1="150" y1="948.4" x2="150" y2="1043.7"/>
|
||||
<line class="cls-5" x1="315.7" y1="316.6" x2="315.7" y2="376.5"/>
|
||||
<line class="cls-5" x1="315.7" y1="411.9" x2="315.7" y2="471.8"/>
|
||||
<line class="cls-5" x1="655.5" y1="411.9" x2="655.5" y2="471.8"/>
|
||||
<line class="cls-5" x1="825.8" y1="411.9" x2="825.8" y2="471.8"/>
|
||||
<line class="cls-5" x1="825.8" y1="597.6" x2="825.8" y2="657.5"/>
|
||||
<line class="cls-5" x1="825.8" y1="690.5" x2="825.8" y2="750.4"/>
|
||||
<line class="cls-5" x1="825.8" y1="783.4" x2="825.8" y2="843.3"/>
|
||||
<line class="cls-5" x1="825.8" y1="504.8" x2="825.8" y2="564.7"/>
|
||||
<line class="cls-5" x1="655.5" y1="505.2" x2="655.5" y2="565.1"/>
|
||||
<line class="cls-5" x1="655.5" y1="597.5" x2="655.5" y2="657.4"/>
|
||||
<line class="cls-5" x1="655.5" y1="689.9" x2="655.5" y2="749.8"/>
|
||||
<line class="cls-5" x1="655.5" y1="782.2" x2="655.5" y2="842.1"/>
|
||||
<line class="cls-5" x1="655.5" y1="874.5" x2="655.5" y2="934.4"/>
|
||||
<line class="cls-5" x1="655.55" y1="971.4" x2="655.55" y2="1031.3"/>
|
||||
<line class="cls-5" x1="315.7" y1="600.1" x2="315.7" y2="660"/>
|
||||
<line class="cls-5" x1="315.7" y1="504.8" x2="315.7" y2="564.7"/>
|
||||
<line class="cls-5" x1="821.8" y1="316.6" x2="821.8" y2="376.5"/>
|
||||
<line class="cls-5" x1="992.1" y1="316.6" x2="992.1" y2="376.5"/>
|
||||
<line class="cls-5" x1="1162.3" y1="316.6" x2="1162.3" y2="376.5"/>
|
||||
<line class="cls-5" x1="1332.6" y1="316.6" x2="1332.6" y2="376.5"/>
|
||||
<line class="cls-5" x1="1502.9" y1="316.6" x2="1502.9" y2="376.5"/>
|
||||
<line class="cls-5" x1="1502.9" y1="412.5" x2="1502.9" y2="472.4"/>
|
||||
<line class="cls-5" x1="1502.9" y1="504.8" x2="1502.9" y2="564.7"/>
|
||||
<line class="cls-5" x1="1502.9" y1="597" x2="1502.9" y2="656.9"/>
|
||||
<line class="cls-5" x1="1502.9" y1="689.2" x2="1502.9" y2="749.1"/>
|
||||
<line class="cls-5" x1="1502.9" y1="781.5" x2="1502.9" y2="841.4"/>
|
||||
<path class="cls-6" d="m592.7,51.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m592.7,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m252.8,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m252.8,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,622.1h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,715h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,807.8h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,529.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m252.8,624.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m252.8,529.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,531.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,627h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,722.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,817.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,913h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m91.2,1008.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m763,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m933.2,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m1103.5,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m1273.7,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<path class="cls-6" d="m451,136.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m451,221.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.3-12,12-12Z"/>
|
||||
<path class="cls-6" d="m734.4,136.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<text id='72' class="cls-3" transform="translate(618.58 91.77)"><tspan x="0" y="0">DIRECCIÓN</tspan></text>
|
||||
<g id='60'>
|
||||
<text class="cls-3" transform="translate(729.47 168.92)"><tspan x="0" y="0">DEPARTAMENTO DE LA</tspan></text>
|
||||
<text class="cls-3" transform="translate(735.83 183.32)"><tspan x="0" y="0">OFICINA DE PRENSA</tspan></text>
|
||||
</g>
|
||||
<g id='122'>
|
||||
<text class="cls-3" transform="translate(452.01 161.72)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(459.81 176.12)"><tspan x="0" y="0">COMUNICACIÓN</tspan></text>
|
||||
<text class="cls-3" transform="translate(488.24 190.52)"><tspan x="0" y="0">SOCIAL</tspan></text>
|
||||
</g>
|
||||
<g id='143'>
|
||||
<text class="cls-3" transform="translate(452.01 253.58)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(484.88 267.98)"><tspan x="0" y="0">GESTIÓN</tspan></text>
|
||||
</g>
|
||||
<text id='8' class="cls-3" transform="translate(88.01 381.2)"><tspan x="0" y="0">SECRETARÍA GENERAL</tspan></text>
|
||||
<g id='76'>
|
||||
<text class="cls-3" transform="translate(115 461.8)"><tspan x="0" y="0">DIVISIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(103.49 476.2)"><tspan x="0" y="0">MATEMÁTICAS E</tspan></text>
|
||||
<text class="cls-3" transform="translate(116.92 490.6)"><tspan x="0" y="0">INGENIERÍA</tspan></text>
|
||||
</g>
|
||||
<g id='78'>
|
||||
<text class="cls-3" transform="translate(86.32 564.33)"><tspan x="0" y="0">DIVISIÓN DE DISEÑO Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(111.52 578.73)"><tspan x="0" y="0">EDIFICACIÓN</tspan></text>
|
||||
</g>
|
||||
<g id='77'>
|
||||
<text class="cls-3" transform="translate(115 659.65)"><tspan x="0" y="0">DIVISIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(107.08 674.05)"><tspan x="0" y="0">HUMANIDADES</tspan></text>
|
||||
</g>
|
||||
<g id='79'>
|
||||
<text class="cls-3" transform="translate(85.49 754.97)"><tspan x="0" y="0">DIVISIÓN DE CIENCIAS</tspan></text>
|
||||
<text class="cls-3" transform="translate(83.45 769.37)"><tspan x="0" y="0">SOCIOECONÓMICAS</tspan></text>
|
||||
</g>
|
||||
<g id='80'>
|
||||
<text class="cls-3" transform="translate(85.49 850.3)"><tspan x="0" y="0">DIVISIÓN DE CIENCIAS</tspan></text>
|
||||
<text class="cls-3" transform="translate(120.04 864.7)"><tspan x="0" y="0">JURÍDICAS</tspan></text>
|
||||
</g>
|
||||
<g id='74'>
|
||||
<text class="cls-3" transform="translate(88.25 930.78)"><tspan x="0" y="0">DIVISIÓN DEL SISTEMA</tspan></text>
|
||||
<text class="cls-3" transform="translate(104.91 945.21)"><tspan x="0" y="0">DE UNIVERSIDAD</tspan></text>
|
||||
<text class="cls-3" transform="translate(84.32 958.69)"><tspan x="0" y="0">ABIERTA Y EDUCACIÓN</tspan></text>
|
||||
<text class="cls-3" transform="translate(115 971.8)"><tspan x="0" y="0">A DISTANCIA</tspan></text>
|
||||
</g>
|
||||
<g id='148'>
|
||||
<text class="cls-3" transform="translate(88.01 1033.75)"><tspan x="0" y="0">SECRETARÍA AUXILIAR</tspan></text>
|
||||
<text class="cls-3" transform="translate(98.21 1048.15)"><tspan x="0" y="0">DE LA SECRETARÍA</tspan></text>
|
||||
<text class="cls-3" transform="translate(123.76 1062.55)"><tspan x="0" y="0">GENERAL</tspan></text>
|
||||
</g>
|
||||
<g id='119'>
|
||||
<text class="cls-3" transform="translate(268.62 366.8)"><tspan x="0" y="0">SECRETARÍA DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(273.18 381.2)"><tspan x="0" y="0">POSGRADO E</tspan></text>
|
||||
<text class="cls-3" transform="translate(265.63 395.6)"><tspan x="0" y="0">INVESTIGACIÓN</tspan></text>
|
||||
</g>
|
||||
<g id='120'>
|
||||
<text class="cls-3" transform="translate(253.87 462.12)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(276.06 476.52)"><tspan x="0" y="0">ESTUDIOS DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(277.98 490.92)"><tspan x="0" y="0">POSGRADO</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m422.5,807h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<g id='6'>
|
||||
<text class="cls-3" transform="translate(449.51 832.77)"><tspan x="0" y="0">UNIDAD DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(430.08 847.17)"><tspan x="0" y="0">ADMINISTRACIÓN</tspan></text>
|
||||
<text class="cls-3" transform="translate(454.79 861.57)"><tspan x="0" y="0">ESCOLAR</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,712.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='129'>
|
||||
<text class="cls-3" transform="translate(591.1 738.05)"><tspan x="0" y="0">COORDINACIÓN DEL</tspan></text>
|
||||
<text class="cls-3" transform="translate(583.06 752.45)"><tspan x="0" y="0">CENTRO DE ENSEÑANZA</tspan></text>
|
||||
<text class="cls-3" transform="translate(617.01 766.85)"><tspan x="0" y="0">DE IDIOMAS</tspan></text>
|
||||
</g>
|
||||
<g id='123'>
|
||||
<text class="cls-3" transform="translate(753.44 462.12)"><tspan x="0" y="0">UNIDAD DEL CENTRO DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(773.24 476.52)"><tspan x="0" y="0">INFORMACIÓN Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(768.32 490.92)"><tspan x="0" y="0">DOCUMENTACIÓN</tspan></text>
|
||||
</g>
|
||||
<g id='130'>
|
||||
<text class="cls-3" transform="translate(753.44 647.86)"><tspan x="0" y="0">UNIDAD DEL CENTRO DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(784.64 662.26)"><tspan x="0" y="0">DESARROLLO</tspan></text>
|
||||
<text class="cls-3" transform="translate(777.92 676.66)"><tspan x="0" y="0">TECNOLÓGICO</tspan></text>
|
||||
</g>
|
||||
<g id='2'>
|
||||
<text class="cls-3" transform="translate(758.23 747.93)"><tspan x="0" y="0">UNIDAD DE SERVICIOS</tspan></text>
|
||||
<text class="cls-3" transform="translate(786.79 762.33)"><tspan x="0" y="0">EDITORIALES</tspan></text>
|
||||
</g>
|
||||
<g id='1'>
|
||||
<text class="cls-3" transform="translate(761.6 833.6)"><tspan x="0" y="0">UNIDAD DE TALLERES,</tspan></text>
|
||||
<text class="cls-3" transform="translate(772.04 848)"><tspan x="0" y="0">LABORATORIOS Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(776.48 862.4)"><tspan x="0" y="0">AUDIOVISUALES</tspan></text>
|
||||
</g>
|
||||
<g id='176'>
|
||||
<text class="cls-4" transform="translate(766.4 549.22)"><tspan x="0" y="0">COORDINACIÓN DEL</tspan></text>
|
||||
<text class="cls-4" transform="translate(758.7 562.42)"><tspan x="0" y="0">CENTRO TECNOLÓGICO</tspan></text>
|
||||
<text class="cls-4" transform="translate(759.14 575.62)"><tspan x="0" y="0">PARA LA EDUCACIÓN A</tspan></text>
|
||||
<text class="cls-4" transform="translate(793.24 588.82)"><tspan x="0" y="0">DISTANCIA</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,805.3h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<g id='214'>
|
||||
<text class="cls-3" transform="translate(591.1 823.82)"><tspan x="0" y="0">COORDINACIÓN DEL</tspan></text>
|
||||
<text class="cls-3" transform="translate(590.97 838.22)"><tspan x="0" y="0">CENTRO DE ESTUDIOS</tspan></text>
|
||||
<text class="cls-3" transform="translate(607.78 852.62)"><tspan x="0" y="0">MUNICIPALES Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(599.74 867.02)"><tspan x="0" y="0">METROPOLITANOS</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,526.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='125'>
|
||||
<text class="cls-3" transform="translate(591.1 552.38)"><tspan x="0" y="0">COORDINACIÓN DEL</tspan></text>
|
||||
<text class="cls-3" transform="translate(590.74 566.78)"><tspan x="0" y="0">CENTRO DE DIFUSIÓN</tspan></text>
|
||||
<text class="cls-3" transform="translate(623.49 581.18)"><tspan x="0" y="0">CULTURAL</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,436.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='128'>
|
||||
<text class="cls-3" transform="translate(593.74 455.48)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(613.29 469.88)"><tspan x="0" y="0">ACTIVIDADES</tspan></text>
|
||||
<text class="cls-3" transform="translate(611.01 484.28)"><tspan x="0" y="0">DEPORTIVAS Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(613.29 498.68)"><tspan x="0" y="0">RECREATIVAS</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,899.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='198'>
|
||||
<text class="cls-4" transform="translate(586.46 919.64)"><tspan x="0" y="0">SECRETARÍA AUXILIAR DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(582.5 932.84)"><tspan x="0" y="0">EXTENSIÓN UNIVERSITARIA</tspan></text>
|
||||
<text class="cls-4" transform="translate(608.35 946.04)"><tspan x="0" y="0">Y VINCULACIÓN</tspan></text>
|
||||
<text class="cls-4" transform="translate(612.42 959.24)"><tspan x="0" y="0">INSTITUCIONAL</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m592.7,992h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<g id='165'>
|
||||
<text class="cls-4" transform="translate(587.12 1011.96)"><tspan x="0" y="0">SECRETARÍA TÉCNICA DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(582.5 1025.16)"><tspan x="0" y="0">EXTENSIÓN UNIVERSITARIA</tspan></text>
|
||||
<text class="cls-4" transform="translate(608.35 1038.36)"><tspan x="0" y="0">Y VINCULACIÓN</tspan></text>
|
||||
<text class="cls-4" transform="translate(612.42 1051.56)"><tspan x="0" y="0">INSTITUCIONAL</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m422.5,711.9h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<g id='190'>
|
||||
<text class="cls-4" transform="translate(416.2 731.93)"><tspan x="0" y="0">SECRETARÍA AUXILIAR DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(433.8 745.13)"><tspan x="0" y="0">LA SECRETARÍA DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(418.07 758.33)"><tspan x="0" y="0">ASUNTOS ACADÉMICOS</tspan></text>
|
||||
<text class="cls-4" transform="translate(444.24 771.53)"><tspan x="0" y="0">ESTUDIANTILES</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m422.5,523.7h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.3-12,12-12Z"/>
|
||||
<g id='110'>
|
||||
<text class="cls-4" transform="translate(430.83 543.74)"><tspan x="0" y="0">DEPARTAMENTO DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(416.2 556.94)"><tspan x="0" y="0">MOVILIDAD ESTUDIANTIL,</tspan></text>
|
||||
<text class="cls-4" transform="translate(419.4 570.14)"><tspan x="0" y="0">INTERCAMBIO, BECAS Y</tspan></text>
|
||||
<text class="cls-4" transform="translate(427.2 583.34)"><tspan x="0" y="0">SERVICIOS DE SALUD</tspan></text>
|
||||
</g>
|
||||
<g id='50'>
|
||||
<text class="cls-3" transform="translate(249.67 650.31)"><tspan x="0" y="0">SECRETARÍA AUXILIAR</tspan></text>
|
||||
<text class="cls-3" transform="translate(264.18 664.71)"><tspan x="0" y="0">DE POSGRADO E</tspan></text>
|
||||
<text class="cls-3" transform="translate(265.63 679.11)"><tspan x="0" y="0">INVESTIGACIÓN</tspan></text>
|
||||
</g>
|
||||
<g id='182'>
|
||||
<text class="cls-4" transform="translate(250.66 542.62)"><tspan x="0" y="0">COORDINACIÓN DE LA</tspan></text>
|
||||
<text class="cls-4" transform="translate(282.55 555.82)"><tspan x="0" y="0">UNIDAD DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(269.47 569.02)"><tspan x="0" y="0">INVESTIGACIÓN</tspan></text>
|
||||
<text class="cls-4" transform="translate(258.91 582.22)"><tspan x="0" y="0">MULTIDISCIPLINARIA</tspan></text>
|
||||
<text class="cls-4" transform="translate(284.31 595.42)"><tspan x="0" y="0">APLICADA</tspan></text>
|
||||
</g>
|
||||
<g id='177'>
|
||||
<text class="cls-4" transform="translate(612.09 354.43)"><tspan x="0" y="0">SECRETARÍA DE</tspan></text>
|
||||
<text class="cls-4" transform="translate(622.65 367.63)"><tspan x="0" y="0">EXTENSIÓN</tspan></text>
|
||||
<text class="cls-4" transform="translate(608.02 380.83)"><tspan x="0" y="0">UNIVERSITARIA Y</tspan></text>
|
||||
<text class="cls-4" transform="translate(613.3 394.03)"><tspan x="0" y="0">VINCULACIÓN</tspan></text>
|
||||
<text class="cls-4" transform="translate(612.42 407.23)"><tspan x="0" y="0">INSTITUCIONAL</tspan></text>
|
||||
</g>
|
||||
<g id='121'>
|
||||
<text class="cls-3" transform="translate(764 366.48)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(791.71 380.88)"><tspan x="0" y="0">SERVICIOS</tspan></text>
|
||||
<text class="cls-3" transform="translate(781.04 395.28)"><tspan x="0" y="0">ACADÉMICOS</tspan></text>
|
||||
</g>
|
||||
<g id='59'>
|
||||
<text class="cls-3" transform="translate(925.02 373.68)"><tspan x="0" y="0">UNIDAD DE LA OFICINA</tspan></text>
|
||||
<text class="cls-3" transform="translate(965.21 388.08)"><tspan x="0" y="0">JURÍDICA</tspan></text>
|
||||
</g>
|
||||
<g id='4'>
|
||||
<text class="cls-3" transform="translate(1130.55 373.68)"><tspan x="0" y="0">UNIDAD DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1124.08 388.08)"><tspan x="0" y="0">PLANEACIÓN</tspan></text>
|
||||
</g>
|
||||
<g id='9'>
|
||||
<text class="cls-3" transform="translate(1274.78 373.68)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1265.3 388.08)"><tspan x="0" y="0">CUERPOS COLEGIADOS</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,341h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='127'>
|
||||
<text class="cls-3" transform="translate(1468.79 373.68)"><tspan x="0" y="0">SECRETARÍA</tspan></text>
|
||||
<text class="cls-3" transform="translate(1454.63 388.08)"><tspan x="0" y="0">ADMINISTRATIVA</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,719.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='5'>
|
||||
<text class="cls-3" transform="translate(1471.07 745.05)"><tspan x="0" y="0">UNIDAD DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1442.64 759.45)"><tspan x="0" y="0">ADMINISTRACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1472.99 773.85)"><tspan x="0" y="0">RECURSOS</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,809.1h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='3'>
|
||||
<text class="cls-3" transform="translate(1439.27 841.74)"><tspan x="0" y="0" xml:space="preserve">UNIDAD DE SERVICIOS </tspan></text>
|
||||
<text class="cls-3" transform="translate(1450.07 856.14)"><tspan x="0" y="0">A LA COMUNIDAD</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,525.8h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='204'>
|
||||
<text class="cls-3" transform="translate(1447.79 551.27)"><tspan x="0" y="0">DEPARTAMENTO DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1468.79 565.67)"><tspan x="0" y="0">PROYECTOS</tspan></text>
|
||||
<text class="cls-3" transform="translate(1450.91 580.07)"><tspan x="0" y="0">ADMINISTRATIVOS</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m423.7,436.6h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<text id='105' class="cls-4" transform="translate(431.86 456.62)"><tspan x="0" y="0">DEPARTAMENTO DE </tspan></text>
|
||||
<text id='105' class="cls-4" transform="translate(447.59 483.02)"><tspan x="0" y="0">COMUNIDAD </tspan></text>
|
||||
<text id='105' class="cls-4" transform="translate(440.89 469.82)"><tspan x="0" y="0">ATENCIÓN A LA </tspan></text>
|
||||
<text id='105' class="cls-4" transform="translate(447.59 483.02)"><tspan x="0" y="0">COMUNIDAD </tspan></text>
|
||||
<text id='105' class="cls-4" transform="translate(451 496.22)"><tspan x="0" y="0">ESTUDIANTIL</tspan></text>
|
||||
<path class="cls-6" d="m422.2,621.5h117.8c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.8c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<text id='93' class="cls-2" transform="translate(435.19 642.6)"><tspan x="0" y="0">DEPARTAMENTO DE </tspan></text>
|
||||
<text id='93' class="cls-2" transform="translate(437.8 654.6)"><tspan x="0" y="0">SERVICIO SOCIAL, </tspan></text>
|
||||
<text id='93' class="cls-2" transform="translate(415.99 666.6)"><tspan x="0" y="0">DESARROLLO PROFESIONAL </tspan></text>
|
||||
<text id='93' class="cls-2" transform="translate(427.5 678.6)"><tspan x="0" y="0">E INSERCIÓN LABORAL</tspan></text>
|
||||
<path class="cls-6" d="m596.7,621.5h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<text id='124' class="cls-3" transform="translate(595.08 639.74)"><tspan x="0" y="0">COORDINACIÓN DEL </tspan></text>
|
||||
<text id='124' class="cls-3" transform="translate(623.27 654.14)"><tspan x="0" y="0">CENTRO DE </tspan></text>
|
||||
<text id='124' class="cls-3" transform="translate(619.43 668.54)"><tspan x="0" y="0">EDUCACIÓN </tspan></text>
|
||||
<text id='124' class="cls-3" transform="translate(624.48 682.94)"><tspan x="0" y="0">CONTINUA</tspan></text>
|
||||
<path class="cls-6" d="m423.6,338.5h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<g id='181'>
|
||||
<text class="cls-4" transform="translate(417.15 365.07)"><tspan x="0" y="0">SECRETARÍA DE ASUNTOS</tspan></text>
|
||||
<text class="cls-4" transform="translate(445.09 378.27)"><tspan x="0" y="0">ACADÉMICOS</tspan></text>
|
||||
<text class="cls-4" transform="translate(445.41 391.47)"><tspan x="0" y="0">ESTUDIANTILES</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,624.2h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.6,5.4-12,12-12Z"/>
|
||||
<g id='61'>
|
||||
<text class="cls-3" transform="translate(1438.2 649.67)"><tspan x="0" y="0">SUPERINTENDENCIA DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1477.91 664.07)"><tspan x="0" y="0">OBRAS Y</tspan></text>
|
||||
<text class="cls-3" transform="translate(1454.64 678.47)"><tspan x="0" y="0">MANTENIMIENTO</tspan></text>
|
||||
</g>
|
||||
<path class="cls-6" d="m1444,436.4h117.7c6.6,0,12,5.4,12,12v46.9c0,6.6-5.4,12-12,12h-117.7c-6.6,0-12-5.4-12-12v-46.9c0-6.7,5.4-12,12-12Z"/>
|
||||
<g >
|
||||
<text class="cls-3" transform="translate(1445.04 454.6)"><tspan x="0" y="0">COORDINACIÓN DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1472.03 469)"><tspan x="0" y="0">PLANTA DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1454.28 483.4)"><tspan x="0" y="0">TRATAMIENTO DE</tspan></text>
|
||||
<text class="cls-3" transform="translate(1447.55 497.8)"><tspan x="0" y="0">AGUAS RESIDUALES</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 26 KiB |
@@ -27,6 +27,16 @@ body {
|
||||
background: var(--background);
|
||||
color: var(--foreground);
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh; /* ocupa toda la pantalla */
|
||||
}
|
||||
|
||||
/* el contenido (children) se expande y empuja el footer al fondo */
|
||||
main {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2,8 +2,8 @@ import type { Metadata } from "next";
|
||||
import { Geist, Geist_Mono } from "next/font/google";
|
||||
import Header from "@/components/layout/header";
|
||||
import Footer from "@/components/layout/footer";
|
||||
import '@/sass/bootstrap.scss';
|
||||
import "./globals.css";
|
||||
import '@/sass/bootstrap.scss';
|
||||
import '@/app/globals.css'
|
||||
|
||||
const geistSans = Geist({
|
||||
variable: "--font-geist-sans",
|
||||
@@ -30,11 +30,9 @@ export default function RootLayout({
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body
|
||||
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
||||
>
|
||||
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
|
||||
<Header />
|
||||
{children}
|
||||
<main className="content">{children}</main> {/* <-- envolvemos el contenido */}
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -4,12 +4,12 @@ import React, { useState, useRef, useCallback } from 'react';
|
||||
import BuscarFuncionario from '@/components/BuscarFuncionario';
|
||||
import OrganigramaInteractivo from '@/components/OrganigramaInteractivo';
|
||||
import axios from 'axios';
|
||||
import { Funcionario } from '@/types/Funcionarios';
|
||||
import organigrama from '@/public/organigrama_FES102025.png'; // Asegúrate de la ruta
|
||||
import { Funcionario, PayloadBusqueda } from '@/types/Funcionarios';
|
||||
|
||||
|
||||
export default function Home() {
|
||||
const [resultados, setResultados] = useState<Funcionario[]>([]);
|
||||
const [currentAreaLabel, setCurrentAreaLabel] = useState<string>('');
|
||||
// Zoom / Pan state
|
||||
const imgRef = useRef<HTMLDivElement | null>(null);
|
||||
const [scale, setScale] = useState<number>(1);
|
||||
@@ -78,7 +78,7 @@ export default function Home() {
|
||||
try {
|
||||
const url = process.env.NEXT_PUBLIC_API_FUNCIONARIOS;
|
||||
if (!url) throw new Error('Url no definida en las variables de entorno');
|
||||
const payload: any = { tipoBusqueda: 'area', IdUnidadResponsable: areaId };
|
||||
const payload: PayloadBusqueda = { tipoBusqueda: 'area', IdUnidadResponsable: areaId };
|
||||
const response = await axios.post(url, payload);
|
||||
if (Array.isArray(response.data) && response.data.length > 0) {
|
||||
setResultados(response.data as Funcionario[]);
|
||||
@@ -91,13 +91,30 @@ export default function Home() {
|
||||
}
|
||||
};
|
||||
|
||||
const capitalizeWords = (s: string) => {
|
||||
if (!s) return '';
|
||||
const lower = s.toLowerCase().trim();
|
||||
const smallWords = new Set(['de', 'la', 'el', 'y', 'del', 'las', 'los', 'a', 'en', 'con', 'para', 'por', 'sobre', 'e']);
|
||||
const parts = lower.split(/\s+/).filter(Boolean);
|
||||
return parts
|
||||
.map((word, idx) => {
|
||||
if (idx === 0) return word.charAt(0).toUpperCase() + word.slice(1);
|
||||
if (smallWords.has(word)) return word; // keep connector lowercase
|
||||
return word.charAt(0).toUpperCase() + word.slice(1);
|
||||
})
|
||||
.join(' ');
|
||||
};
|
||||
|
||||
return (
|
||||
<main className="container-fluid py-4 bg-light min-h-screen">
|
||||
<div className="row">
|
||||
<BuscarFuncionario onResultados={setResultados} />
|
||||
<BuscarFuncionario onResultados={setResultados} onAreaSelected={(id, label) => { setCurrentAreaLabel(capitalizeWords(label)); buscarPorArea(id); }} onClearLabel={() => { setCurrentAreaLabel(''); }} onClear={() => { setCurrentAreaLabel(''); setResultados([]); }} />
|
||||
|
||||
<div className="col-12 col-md-9">
|
||||
<h2 className="text-dorado mb-4">Directorio de Funcionarios</h2>
|
||||
{currentAreaLabel && <h3 className="text-dorado mb-3 ms-2">{currentAreaLabel}</h3>}
|
||||
|
||||
|
||||
|
||||
<div className="row g-4 m-2">
|
||||
{resultados.length === 0 ? (
|
||||
@@ -134,7 +151,7 @@ export default function Home() {
|
||||
touchAction: 'none',
|
||||
}}
|
||||
>
|
||||
<OrganigramaInteractivo onAreaSelect={(id) => buscarPorArea(id)} isPanningRef={isPanning as any} />
|
||||
<OrganigramaInteractivo onAreaSelect={(id: number) => { buscarPorArea(id); }} isPanningRef={isPanning} onAreaLabel={(id, label) => setCurrentAreaLabel(capitalizeWords(label))} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -155,10 +172,10 @@ export default function Home() {
|
||||
<h5 className="tag-unidad">{persona.unidadResponsable}</h5>
|
||||
<h6 className="mb-2">
|
||||
<strong>Nombre: </strong>
|
||||
{`${persona.titulo}${persona.nombre} ${persona.apellidos}` || 'No disponible'}
|
||||
{`${persona.titulo} ${persona.nombre} ${persona.apellidos.trim()}` || 'No disponible'}
|
||||
</h6>
|
||||
<p className="mb-1"><strong>Teléfono</strong>: {persona.telefono || 'No disponible'}</p>
|
||||
<p className="mb-0"><strong>Correo</strong>: {persona.correo || 'No disponible'}</p>
|
||||
<p className="mb-1"><strong>Teléfono</strong>: {persona.telefono.trim() || 'No disponible'}</p>
|
||||
<p className="mb-0"><strong>Correo</strong>: {persona.correo.trim() || 'No disponible'}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,16 +5,30 @@ import axios from 'axios';
|
||||
import { Funcionario } from '../types/Funcionarios';
|
||||
import { PayloadBusqueda } from '../types/Funcionarios';
|
||||
import { errorBuscar, funcionarioNoEncontrado } from '@/utils/alerts';
|
||||
import AREAS from '@/data/areas';
|
||||
|
||||
interface BuscarFuncionarioProps {
|
||||
onResultados: (data: Funcionario[]) => void;
|
||||
onAreaSelected?: (id: number, label: string) => void;
|
||||
// Called when a manual search is initiated to clear only the area label in the parent
|
||||
onClearLabel?: () => void;
|
||||
// Called when the user presses the "Limpiar filtros" button — should clear results and filters
|
||||
onClear?: () => void;
|
||||
}
|
||||
|
||||
export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioProps) {
|
||||
export default function BuscarFuncionario({ onResultados, onAreaSelected, onClearLabel, onClear }: BuscarFuncionarioProps) {
|
||||
const [nombre, setNombre] = useState('');
|
||||
const [apellidos, setApellidos] = useState('');
|
||||
const [area, setArea] = useState('0');
|
||||
|
||||
// variable para excluir las adscripciones necesarias
|
||||
const area_excluida = [
|
||||
60, 198, 148, 50, 105, 110, 93, 190, 165, 61, 143, 59
|
||||
]
|
||||
|
||||
// Creamos el nuevo arreglo para las areas filtradas
|
||||
const areas_filtradas = AREAS.filter(area => !area_excluida.includes(area.id));
|
||||
|
||||
const fetchData = async (tipo?: 'manual' | 'auto') => {
|
||||
try {
|
||||
const payload: PayloadBusqueda = {};
|
||||
@@ -25,6 +39,11 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
return;
|
||||
}
|
||||
|
||||
// Si es búsqueda manual, limpiar SOLO la etiqueta de área en el padre (no borrar resultados antes de que llegue la respuesta)
|
||||
if (tipo === 'manual') {
|
||||
onClearLabel?.();
|
||||
}
|
||||
|
||||
// Tipo de búsqueda
|
||||
if (area !== '0') {
|
||||
payload.tipoBusqueda = 'area';
|
||||
@@ -50,7 +69,7 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
//Limpiar campos después de buscar
|
||||
setNombre('');
|
||||
setApellidos('');
|
||||
setArea('0');
|
||||
//setArea('0');
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error al buscar funcionario:', error);
|
||||
@@ -115,82 +134,32 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
name="bus_depid"
|
||||
className="form-select"
|
||||
value={area}
|
||||
onChange={(e) => setArea(e.target.value)}
|
||||
onChange={(e) => {
|
||||
const val = e.target.value;
|
||||
const label = e.target.options[e.target.selectedIndex]?.text || '';
|
||||
setArea(val);
|
||||
if (val !== '0' && label) {
|
||||
onAreaSelected?.(parseInt(val, 10), label);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<option value="0">-- Selecciona un área --</option>
|
||||
<option value="128">Coordinación de Actividades Deportivas y Recreativas</option>
|
||||
<option value="122">Coordinación de Comunicación Social</option>
|
||||
<option value="9">Coordinación de Cuerpos Colegiados</option>
|
||||
<option value="126">Coordinación de Derecho del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="206">Coordinación de Especializaciones</option>
|
||||
<option value="120">Coordinación de Estudios de Posgrado</option>
|
||||
<option value="182">Coordinación de la Unidad de Investigación Multidisciplinaria Aplicada</option>
|
||||
<option value="174">Coordinación de LICEL Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="221">Coordinación de Maestrías y Doctorados</option>
|
||||
<option value="152">Coordinación de Relaciones Internacionales del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="121">Coordinación de Servicios Académicos</option>
|
||||
<option value="125">Coordinación del Centro de Difusión Cultural</option>
|
||||
<option value="124">Coordinación del Centro de Educación Continua</option>
|
||||
<option value="129">Coordinación del Centro de Enseñanza de Idiomas</option>
|
||||
<option value="214">Coordinación del Centro de Estudios Municipales y Metropolitanos</option>
|
||||
<option value="176">Coordinación del Centro Tecnológico para la Educación a Distancia</option>
|
||||
<option value="58">Coordinación del Programa de Actuaría</option>
|
||||
<option value="57">Coordinación del Programa de Arquitectura</option>
|
||||
<option value="46">Coordinación del Programa de Comunicación</option>
|
||||
<option value="56">Coordinación del Programa de Derecho</option>
|
||||
<option value="55">Coordinación del Programa de Diseño Gráfico</option>
|
||||
<option value="54">Coordinación del Programa de Economía</option>
|
||||
<option value="49">Coordinación del Programa de Enseñanza de Inglés</option>
|
||||
<option value="52">Coordinación del Programa de Humanidades</option>
|
||||
<option value="51">Coordinación del Programa de Ingeniería Civil</option>
|
||||
<option value="48">Coordinación del Programa de Matemáticas Aplicadas y Computación</option>
|
||||
<option value="47">Coordinación del Programa de Pedagogía</option>
|
||||
<option value="44">Coordinación del Programa de Sociología</option>
|
||||
<option value="43">Coordinación del Programa Político</option>
|
||||
<option value="194">Departamento de Intendencia</option>
|
||||
<option value="193">Departamento de Investigación en Comunicación y Estudios Culturales</option>
|
||||
<option value="222">Departamento de Orientación Académica del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="204">Departamento de Proyectos Administrativos</option>
|
||||
<option value="86">Departamento de Talleres y Laboratorios</option>
|
||||
<option value="72">Dirección</option>
|
||||
<option value="80">División de Ciencias Jurídicas</option>
|
||||
<option value="79">División de Ciencias Socioeconómicas</option>
|
||||
<option value="78">División de Diseño y Edificación</option>
|
||||
<option value="77">División de Humanidades</option>
|
||||
<option value="76">División de Matemáticas e Ingeniería</option>
|
||||
<option value="74">División del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="70">Especialización en Costos en la Construcción</option>
|
||||
<option value="69">Especialización en Finanzas Públicas</option>
|
||||
<option value="68">Especialización en Geotecnia</option>
|
||||
<option value="71">Especialización en Sistemas de Calidad</option>
|
||||
<option value="220">Especialización en Tecnología Digital para la Enseñanza de Matemáticas</option>
|
||||
<option value="207">Grupo de Trabajo de Educación para Adultos (GTEA)</option>
|
||||
<option value="173">Maestría en Docencia para la Educación Media Superior</option>
|
||||
<option value="224">Posgrado en Ciencias Políticas y Sociales</option>
|
||||
<option value="62">Posgrado en Derecho</option>
|
||||
<option value="164">Posgrado en Economía</option>
|
||||
<option value="197">Posgrado en Pedagogía</option>
|
||||
<option value="63">Posgrado en Urbanismo</option>
|
||||
<option value="226">Programa Único de Especializaciones en Derecho</option>
|
||||
<option value="127">Secretaría Administrativa</option>
|
||||
<option value="181">Secretaría de Asuntos Académicos Estudiantiles</option>
|
||||
<option value="177">Secretaría de Extensión Universitaria y Vinculación Institucional</option>
|
||||
<option value="119">Secretaría de Posgrado e Investigación</option>
|
||||
<option value="8">Secretaría General</option>
|
||||
<option value="6">Unidad de Administración Escolar</option>
|
||||
<option value="5">Unidad de Administración y Recursos</option>
|
||||
<option value="4">Unidad de Planeación</option>
|
||||
<option value="3">Unidad de Servicios a la Comunidad</option>
|
||||
<option value="2">Unidad de Servicios Editoriales</option>
|
||||
<option value="1">Unidad de Talleres, Laboratorios y Audiovisuales</option>
|
||||
<option value="130">Unidad del Centro de Desarrollo Tecnológico</option>
|
||||
<option value="123">Unidad del Centro de Información y Documentación</option>
|
||||
{areas_filtradas.map((a) => (
|
||||
<option key={a.id} value={String(a.id)}>{a.label}</option>
|
||||
))}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{/* Botón de buscar (sin limpiar) */}
|
||||
<div className="d-grid gap-2">
|
||||
<button className="btn btn-primary bg-dorado" type="submit">Buscar</button>
|
||||
<div className="d-flex gap-2">
|
||||
<button className="btn btn-primary bg-dorado" type="submit">Buscar</button>
|
||||
<button type="button" className="btn btn-outline-secondary" onClick={() => {
|
||||
setNombre('');
|
||||
setApellidos('');
|
||||
setArea('0');
|
||||
onClear?.();
|
||||
}}>Limpiar filtros</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -1,47 +1,19 @@
|
||||
import React from 'react';
|
||||
|
||||
import AREAS from '@/data/areas';
|
||||
/*
|
||||
interface Props {
|
||||
onAreaSelect: (areaId: number) => void;
|
||||
className?: string;
|
||||
style?: React.CSSProperties;
|
||||
isPanningRef?: React.RefObject<boolean>;
|
||||
isPanningRef?: React.MutableRefObject<boolean>;
|
||||
onAreaLabel?: (id: number, label: string) => void;
|
||||
}
|
||||
|
||||
// Map display substrings (lowercase) to the area id used in BuscarFuncionario
|
||||
const areaMap: Record<string, number> = {
|
||||
'coordinación de actividades deportivas y recreativas': 128,
|
||||
'coordinación de comunicación social': 122,
|
||||
'coordinación de cuerpos colegiados': 9,
|
||||
'coordinación de derecho del sistema de universidad abierta y educación a distancia': 126,
|
||||
'coordinación de especializaciones': 206,
|
||||
'coordinación de estudios de posgrado': 120,
|
||||
'coordinación de la unidad de investigación multidisciplinaria aplicada': 182,
|
||||
'coordinación de licel sistema de universidad abierta y educación a distancia': 174,
|
||||
'coordinación de maestrías y doctorados': 221,
|
||||
'coordinación de relaciones internacionales del sistema de universidad abierta y educación a distancia': 152,
|
||||
'coordinación de servicios académicos': 121,
|
||||
'coordinación del centro de difusión cultural': 125,
|
||||
'coordinación del centro de educación continua': 124,
|
||||
'coordinación del centro de enseñanza de idiomas': 129,
|
||||
'coordinación del centro de estudios municipales y metropolitanos': 214,
|
||||
'coordinación del centro tecnológico para la educación a distancia': 176,
|
||||
'dirección': 72,
|
||||
'división de ciencias jurídicas': 80,
|
||||
'división de ciencias socioeconómicas': 79,
|
||||
'división de diseño y edificación': 78,
|
||||
'división de humanidades': 77,
|
||||
'división de matemáticas e ingeniería': 76,
|
||||
'secretaría de asuntos académicos estudiantiles': 181,
|
||||
'secretaría de extensión universitaria y vinculación institucional': 177,
|
||||
'secretaría de posgrado e investigación': 119,
|
||||
'secretaría general': 8,
|
||||
'unidad de administración escolar': 6,
|
||||
'unidad de servicios editoriales': 2,
|
||||
'unidad de talleres, laboratorios y audiovisuales': 1,
|
||||
'unidad del centro de desarrollo tecnológico': 130,
|
||||
'unidad del centro de información y documentación': 123,
|
||||
// add more mappings as needed
|
||||
};
|
||||
const areaMap: Record<string, number> = AREAS.reduce((acc, cur) => {
|
||||
acc[cur.label.toLowerCase()] = cur.id;
|
||||
return acc;
|
||||
}, {} as Record<string, number>);
|
||||
|
||||
const svgContent = `
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1497.56 1125.56">${
|
||||
@@ -52,7 +24,7 @@ const svgContent = `
|
||||
// Instead of inlining the full SVG string here (long), we'll import it via require at runtime by fetching the file relative to the app.
|
||||
// But to keep this component self-contained, we'll render an <object> fallback and then query inside it.
|
||||
|
||||
export default function OrganigramaInteractivo({ onAreaSelect, className, style, isPanningRef }: Props) {
|
||||
export default function OrganigramaInteractivo({ onAreaSelect, className, style, isPanningRef, onAreaLabel }: Props) {
|
||||
const containerRef = React.useRef<HTMLDivElement | null>(null);
|
||||
|
||||
const normalize = (s: string) =>
|
||||
@@ -60,12 +32,12 @@ export default function OrganigramaInteractivo({ onAreaSelect, className, style,
|
||||
.normalize('NFD')
|
||||
.replace(/\p{Diacritic}/gu, '')
|
||||
.toLowerCase()
|
||||
.replace(/\s+/g, ' ')
|
||||
.replace(/\p{M}/gu, '')
|
||||
.trim();
|
||||
|
||||
const normalizedAreaEntries = React.useMemo(() => {
|
||||
return Object.keys(areaMap).map((k) => ({ key: normalize(k), id: areaMap[k] }));
|
||||
}, []);
|
||||
const normalizedAreaEntries = React.useMemo(() => {
|
||||
return Object.keys(areaMap).map((k) => ({ key: normalize(k), id: areaMap[k], label: k }));
|
||||
}, []);
|
||||
|
||||
React.useEffect(() => {
|
||||
const container = containerRef.current;
|
||||
@@ -74,7 +46,8 @@ export default function OrganigramaInteractivo({ onAreaSelect, className, style,
|
||||
// Fetch the SVG file from the public path. The SVG is located at /organigrama_FES102025.svg (if placed in public/)
|
||||
// There's a copy in src/public; to be served statically, ensure the SVG is available at '/organigrama_FES102025.svg'.
|
||||
let mounted = true;
|
||||
fetch('/organigrama_FES102025.svg')
|
||||
//fetch('/organigrama231025.svg')
|
||||
fetch('/Organigrama_con_ids(1).svg')
|
||||
.then((r) => r.text())
|
||||
.then((text) => {
|
||||
if (!mounted) return;
|
||||
@@ -123,24 +96,26 @@ export default function OrganigramaInteractivo({ onAreaSelect, className, style,
|
||||
|
||||
const normalized = normalize(textContent);
|
||||
// Try to match any normalized key in areaMap
|
||||
for (const entry of normalizedAreaEntries) {
|
||||
if (normalized.includes(entry.key) || entry.key.includes(normalized)) {
|
||||
onAreaSelect(entry.id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (const entry of normalizedAreaEntries) {
|
||||
if (normalized.includes(entry.key) || entry.key.includes(normalized)) {
|
||||
onAreaSelect(entry.id);
|
||||
onAreaLabel?.(entry.id, entry.label);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If target element directly has a title or id
|
||||
if (target) {
|
||||
const el = target as HTMLElement;
|
||||
const title = (el.getAttribute('title') || el.getAttribute('id') || '').toString();
|
||||
const n = normalize(title);
|
||||
for (const entry of normalizedAreaEntries) {
|
||||
if (n.includes(entry.key) || entry.key.includes(n)) {
|
||||
onAreaSelect(entry.id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (const entry of normalizedAreaEntries) {
|
||||
if (n.includes(entry.key) || entry.key.includes(n)) {
|
||||
onAreaSelect(entry.id);
|
||||
onAreaLabel?.(entry.id, entry.label);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -162,3 +137,74 @@ export default function OrganigramaInteractivo({ onAreaSelect, className, style,
|
||||
<div ref={containerRef} className={className} style={style} />
|
||||
);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
interface Props {
|
||||
onAreaSelect: (areaId: number) => void;
|
||||
className?: string;
|
||||
style?: React.CSSProperties;
|
||||
isPanningRef?: React.MutableRefObject<boolean>;
|
||||
onAreaLabel?: (id: number, label: string) => void;
|
||||
}
|
||||
|
||||
export default function OrganigramaInteractivo({
|
||||
onAreaSelect,
|
||||
className,
|
||||
style,
|
||||
isPanningRef,
|
||||
onAreaLabel
|
||||
}: Props) {
|
||||
const containerRef = React.useRef<HTMLDivElement | null>(null);
|
||||
|
||||
React.useEffect(() => {
|
||||
const container = containerRef.current;
|
||||
if (!container) return;
|
||||
|
||||
let mounted = true;
|
||||
fetch('/organigrama_funcionarios.svg')
|
||||
.then((r) => r.text())
|
||||
.then((text) => {
|
||||
if (!mounted) return;
|
||||
container.innerHTML = text;
|
||||
|
||||
const svg = container.querySelector('svg');
|
||||
if (!svg) return;
|
||||
|
||||
const onClick = (e: MouseEvent) => {
|
||||
if (isPanningRef && isPanningRef.current) return;
|
||||
const target = e.target as HTMLElement | null;
|
||||
if (!target) return;
|
||||
|
||||
// Buscar el elemento (o ancestro) con un id numérico
|
||||
const areaElement = target.closest('[id]') as HTMLElement | null;
|
||||
if (!areaElement) return;
|
||||
|
||||
const idAttr = areaElement.getAttribute('id');
|
||||
if (!idAttr) return;
|
||||
|
||||
const areaId = parseInt(idAttr, 10);
|
||||
if (isNaN(areaId)) return;
|
||||
|
||||
// Verificar si el id existe en tu banco de datos
|
||||
const area = AREAS.find((a) => a.id === areaId);
|
||||
if (area) {
|
||||
onAreaSelect(area.id);
|
||||
onAreaLabel?.(area.id, area.label);
|
||||
}
|
||||
};
|
||||
|
||||
svg.addEventListener('click', onClick);
|
||||
svg.style.pointerEvents = 'auto';
|
||||
|
||||
return () => svg.removeEventListener('click', onClick);
|
||||
})
|
||||
.catch((err) => console.error('No se pudo cargar SVG:', err));
|
||||
|
||||
return () => {
|
||||
mounted = false;
|
||||
};
|
||||
}, [onAreaSelect]);
|
||||
|
||||
return <div ref={containerRef} className={className} style={style} />;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
export const AREAS: Array<{ id: number; label: string }> = [
|
||||
{ id: 0, label: '-- Selecciona un área --' },
|
||||
{ id: 128, label: 'Coordinación de Actividades Deportivas y Recreativas' },
|
||||
{ id: 122, label: 'Coordinación de Comunicación Social' },
|
||||
{ id: 9, label: 'Coordinación de Cuerpos Colegiados' },
|
||||
{ id: 126, label: 'Coordinación de Derecho del Sistema de Universidad Abierta y Educación a Distancia' },
|
||||
{ id: 206, label: 'Coordinación de Especializaciones' },
|
||||
{ id: 120, label: 'Coordinación de Estudios de Posgrado' },
|
||||
{ id: 182, label: 'Coordinación de la Unidad de Investigación Multidisciplinaria Aplicada' },
|
||||
{ id: 174, label: 'Coordinación de LICEL Sistema de Universidad Abierta y Educación a Distancia' },
|
||||
{ id: 221, label: 'Coordinación de Maestrías y Doctorados' },
|
||||
{ id: 152, label: 'Coordinación de Relaciones Internacionales del Sistema de Universidad Abierta y Educación a Distancia' },
|
||||
{ id: 121, label: 'Coordinación de Servicios Académicos' },
|
||||
{ id: 125, label: 'Coordinación del Centro de Difusión Cultural' },
|
||||
{ id: 124, label: 'Coordinación del Centro de Educación Continua' },
|
||||
{ id: 129, label: 'Coordinación del Centro de Enseñanza de Idiomas' },
|
||||
{ id: 214, label: 'Coordinación del Centro de Estudios Municipales y Metropolitanos' },
|
||||
{ id: 176, label: 'Coordinación del Centro Tecnológico para la Educación a Distancia' },
|
||||
{ id: 58, label: 'Coordinación del Programa de Actuaría' },
|
||||
{ id: 57, label: 'Coordinación del Programa de Arquitectura' },
|
||||
{ id: 46, label: 'Coordinación del Programa de Comunicación' },
|
||||
{ id: 56, label: 'Coordinación del Programa de Derecho' },
|
||||
{ id: 55, label: 'Coordinación del Programa de Diseño Gráfico' },
|
||||
{ id: 54, label: 'Coordinación del Programa de Economía' },
|
||||
{ id: 49, label: 'Coordinación del Programa de Enseñanza de Inglés' },
|
||||
{ id: 51, label: 'Coordinación del Programa de Ingeniería Civil' },
|
||||
{ id: 48, label: 'Coordinación del Programa de Matemáticas Aplicadas y Computación' },
|
||||
{ id: 47, label: 'Coordinación del Programa de Pedagogía' },
|
||||
{ id: 44, label: 'Coordinación del Programa de Sociología' },
|
||||
{ id: 43, label: 'Coordinación del Programa Político' },
|
||||
{ id: 194, label: 'Departamento de Intendencia' },
|
||||
{ id: 193, label: 'Departamento de Investigación en Comunicación y Estudios Culturales' },
|
||||
{ id: 222, label: 'Departamento de Orientación Académica del Sistema de Universidad Abierta y Educación a Distancia' },
|
||||
{ id: 204, label: 'Departamento de Proyectos Administrativos' },
|
||||
{ id: 86, label: 'Departamento de Talleres y Laboratorios' },
|
||||
{ id: 72, label: 'Dirección' },
|
||||
{ id: 80, label: 'División de Ciencias Jurídicas' },
|
||||
{ id: 79, label: 'División de Ciencias Socioeconómicas' },
|
||||
{ id: 78, label: 'División de Diseño y Edificación' },
|
||||
{ id: 77, label: 'División de Humanidades' },
|
||||
{ id: 76, label: 'División de Matemáticas e Ingeniería' },
|
||||
{ id: 74, label: 'División del Sistema de Universidad Abierta y Educación a Distancia' },
|
||||
{ id: 70, label: 'Especialización en Costos en la Construcción' },
|
||||
{ id: 69, label: 'Especialización en Finanzas Públicas' },
|
||||
{ id: 68, label: 'Especialización en Geotecnia' },
|
||||
{ id: 71, label: 'Especialización en Sistemas de Calidad' },
|
||||
{ id: 220, label: 'Especialización en Tecnología Digital para la Enseñanza de Matemáticas' },
|
||||
{ id: 207, label: 'Grupo de Trabajo de Educación para Adultos (GTEA)' },
|
||||
{ id: 173, label: 'Maestría en Docencia para la Educación Media Superior' },
|
||||
{ id: 224, label: 'Posgrado en Ciencias Políticas y Sociales' },
|
||||
{ id: 62, label: 'Posgrado en Derecho' },
|
||||
{ id: 164, label: 'Posgrado en Economía' },
|
||||
{ id: 197, label: 'Posgrado en Pedagogía' },
|
||||
{ id: 63, label: 'Posgrado en Urbanismo' },
|
||||
{ id: 226, label: 'Programa Único de Especializaciones en Derecho' },
|
||||
{ id: 127, label: 'Secretaría Administrativa' },
|
||||
{ id: 181, label: 'Secretaría de Asuntos Académicos Estudiantiles' },
|
||||
{ id: 177, label: 'Secretaría de Extensión Universitaria y Vinculación Institucional' },
|
||||
{ id: 119, label: 'Secretaría de Posgrado e Investigación' },
|
||||
{ id: 8, label: 'Secretaría General' },
|
||||
{ id: 6, label: 'Unidad de Administración Escolar' },
|
||||
{ id: 5, label: 'Unidad de Administración y Recursos' },
|
||||
{ id: 4, label: 'Unidad de Planeación' },
|
||||
{ id: 3, label: 'Unidad de Servicios a la Comunidad' },
|
||||
{ id: 2, label: 'Unidad de Servicios Editoriales' },
|
||||
{ id: 1, label: 'Unidad de Talleres, Laboratorios y Audiovisuales' },
|
||||
{ id: 130, label: 'Unidad del Centro de Desarrollo Tecnológico' },
|
||||
{ id: 123, label: 'Unidad del Centro de Información y Documentación' },
|
||||
|
||||
//Estas no se tiene que mostrar
|
||||
{ id: 60, label: 'Departamento de la Oficina de Prensa'},
|
||||
{ id: 198, label: 'Secretaria Auxiliar De Extension Universitaria y Vinculacion Institucional.'},
|
||||
{ id: 148, label: 'Secretaria Auxiliar de la Secretaria General'},
|
||||
{ id: 50, label: 'Secretaria Auxiliar de Posgrado e Investigacion'},
|
||||
{ id: 105, label: 'Departamento de Atencion a la Comunidad Estudiantil'},
|
||||
{ id: 110, label: 'Departamento de Movilidad Estudiantil, Intercambio, Becas y Servicios de Salud'},
|
||||
{ id: 93, label: 'Departamento de servicio Social, desarrollo Profesional e Intercambio Laboral'},
|
||||
{ id: 190, label: 'Secretaria Auxiliar de la Secretaria de Asuntos Academicos Estudiantiles'},
|
||||
{ id: 165, label: 'Secretaria Tecnica de Extension Universitaria y Vinculacion Institucional'},
|
||||
{ id: 61, label: 'Superintendencia de Obras y Mantenimiento'},
|
||||
{ id: 143, label: 'Cordinacion de Gestion'},
|
||||
{ id: 59, label: 'Unidad de la Oficina Juridica'}
|
||||
];
|
||||
/*
|
||||
{ id: 61, label: 'Superintendencia de Obras y Mantenimiento' },
|
||||
{ id: 106, label: 'Departamento de Obra Civil y Proyectos' },
|
||||
{ id: 87, label: 'Departamento de Supervisión Técnica' },
|
||||
{ id: 82, label: 'Departamento de Vigilancia' },
|
||||
{ id: 52, label: 'Coordinación del Programa de Humanidades' },
|
||||
|
||||
{ id: 198, label: 'Secretaria Auxiliar De Extension Universitaria y Vinculacion Institucional.'}
|
||||
{ id: 190, label: 'Departamento Auxiliar De Extension Universitaria y Vinculacion Institucional.'},
|
||||
*/
|
||||
|
||||
export default AREAS;
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 4.6 MiB |
|
After Width: | Height: | Size: 312 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -22,6 +22,6 @@
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "global.d.ts"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
||||