PageSourceSearch

https://phmax-webapp.vercel.app/assets/PhmaxSsPage-CVRXF-yz.js

js phmax-webapp.vercel.app collected 2026-10-03 07:29:13 UTC 97,841 bytes, 8 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/export-xlsx-ea5lTLF9.js","assets/index-8A6Xwojn.js","assets/index-nRjdkiWL.css"])))=>i.map(i=>d[i]);
2import{j as e,H as os,a as as,N as $e,n as Pe,b as Ve,c as Ue,d as Ke,e as Ge,f as We,C as ns,G as ls,g as rs,h as is,E as ds,i as cs,R as de,r as u,M as ms,p as us,q as ps,s as hs,J as xs,u as js,K as vs,O as bs,B as ge,_ as ys,Q as ks,k as gs,S as Ss,I as _s,v as Ns,P as fs,T as Cs}from"./index-8A6Xwojn.js";import{A as Ps}from"./AuthorCreditFooter-DCgnZGsJ.js";import{O as Xe,H as zs,a as ws,b as Hs,c as O,a0 as Es,I as As,d as Ts,e as Is,f as Rs,g as Ms,a1 as Os,h as Ls,i as Fs,j as Bs,k as Ds,l as $s,C as Vs,Q as Us,m as Ks,n as Gs,s as we,o as Ws,a2 as Xs,u as Js,x as Zs,y as Ys,z as He,A as Qs,P as qs,a3 as et,w as U,v as st,r as tt,t as ot,D as at,J as nt,E as lt,G as rt,L as it,F as dt,M as ct,N as mt,R as ut,a4 as pt,a5 as ht,U as xt,K as jt,q as vt,V as bt,W as yt,X as kt,p as gt,Y as St,Z as _t}from"./FieldWhyPhmax-CozUlQay.js";import{C as Nt,G as ft,h as Ct,i as te,j as se,k as Pt,S as le,d as zt,l as ie,a as Je,b as wt,F as Ht,e as Et,M as At}from"./ScrollGrabRegion-DeeI56Kv.js";import{P as he,a as Tt,b as Ze,c as It,d as oe,e as xe,f as Rt,g as q,h as Mt,i as Ye,j as Ot,k as Lt,l as Ee,m as Ft}from"./phmax-ss-explainability-BqMv57cA.js";import{S as re,a as Ae,b as Bt}from"./ss-basic-wizard-8uoUc-ml.js";import{a as Dt,c as $t,B as Vt}from"./BasicComparePreview-GR15w77h.js";import{r as Qe,P as Te,e as Ut,p as Y,c as ee,a as Ie,b as Kt,d as Gt,f as Wt,s as Xt,g as ze,h as Jt,i as Zt,j as Yt,k as Se,l as K,m as Qt,n as qt,o as me,q as ue,t as eo}from"./ss-compute-phmax-total-from-snapshot-FQL9Izn6.js";import{C as so}from"./CollapsibleSection-s90iGuoi.js";import{s as Re,a as pe}from"./integer-input-Cpa0N9XK.js";import{s as Me}from"./numeric-input-mql_ZuVF.js";import{u as to}from"./use-prefill-export-label-BpDbaGW0.js";import{P as Oe,c as _e,m as oo,a as ao,M as no}from"./phmax-import-applied-event-BbadGNYO.js";import"./cs-format-DDptLcXi.js";import"./phmax-calculator-nav-JLo7ruo5.js";import"./ProductViewPills-BudFu3KY.js";import"./use-school-profile-B85tKPdv.js";import"./phmax-sd-logic-ByoQHnjQ.js";function Le({classCount:t,phmaxTotal:o,rowCount:i,okRows:n,conflictCount:d,className:m}){const b=o.toLocaleString("cs-CZ",{maximumFractionDigits:2});return e.jsxs("ul",{className:["ss-human-summary","ux-semantic--info",m].filter(Boolean).join(" "),"aria-label":"Stručný přehled výpočtu",children:[e.jsxs("li",{children:[e.jsx("strong",{children:t})," ",t===1?"třída":t<5?"třídy":"tříd"]}),e.jsxs("li",{children:[e.jsx("strong",{children:b})," PHmax"]}),e.jsxs("li",{children:[e.jsx("strong",{children:n})," / ",i," řádků OK"]}),e.jsxs("li",{className:d>0?"ss-human-summary__warn":void 0,children:[e.jsx("strong",{children:d})," ",d===1?"konflikt":"konfliktů"]})]})}function lo({selectedExample:t,exampleGroups:o,exampleLegend:i,selectedExampleMetaTitle:n,onExampleChange:d,maxNamedSnapshots:m,addRowLabel:b,removeLastRowLabel:r,removeLastRowTitle:p,onSaveSnapshot:y,onAddRow:P,onRemoveLastRow:w,onExportCsv:g,onExportXlsx:k,xlsxExportBusy:N,onPrintSummary:z,onRestoreSnapshot:E,exportLabel:A,setExportLabel:T,namedSaveName:h,setNamedSaveName:R,namedSnapshots:W,selectedNamedId:V,setSelectedNamedId:f,onSaveNamedSnapshot:F,onRestoreNamedSnapshot:B,onDeleteNamedSnapshot:D,onCompareWithNamedSnapshot:s,onExportAuditJson:v,comparePreview:j,onCopySummary:C,onClearStored:c,onResetAll:H,suppressOwnDataHint:M=!1}){return e.jsxs("section",{className:"hero-zone-actions hero-zone-actions--toolbar calculator-hero-work-card__body","aria-label":"Akce výpočtu",children:[M?null:e.jsx(Xe,{variant:"hero"}),e.jsx("div",{className:"calculator-hero-work-card__start",children:e.jsxs("div",{className:"field field--hero-select hero-actions__example hero-ss-example-select",children:[e.jsx("span",{className:"field__label field__label--hero",id:"ss-hero-example-label",children:os}),e.jsx(zs,{id:"ss-hero-example-select","aria-labelledby":"ss-hero-example-label","aria-describedby":"ss-hero-example-legend",title:"Ukázkový orientační příklad pro SŠ. Po načtení upravte vstupy podle reálné evidence tříd školy.",value:t,groups:o,onChange:S=>d(S)}),e.jsx("p",{id:"ss-hero-example-legend",className:"muted-text",style:{marginTop:8,fontSize:"0.82rem",maxWidth:"44rem",lineHeight:1.5},children:i}),n?e.jsxs("p",{className:"muted-text",style:{marginTop:8,fontSize:"0.82rem",maxWidth:"44rem",lineHeight:1.5},children:[e.jsx("strong",{children:"Tento příklad ilustruje:"})," ",n]}):null]})}),e.jsxs("div",{className:"calculator-hero-work-card__exports",children:[e.jsx("span",{className:"calculator-hero-work-card__section-label",children:as}),e.jsx(ws,{children:e.jsx(Hs,{primary:e.jsxs(e.Fragment,{children:[e.jsx(Ms,{onClick:y}
2),e.jsx(O,{showLabel:!0,className:"btn ghost",label:b,title:"Přidá nový řádek na konec tabulky evidence dílčích jednotek níže.",icon:e.jsx(Os,{}),onClick:P}),e.jsx(O,{showLabel:!0,className:"btn ghost",label:"Export CSV",icon:e.jsx(Ls,{}),onClick:g}),e.jsx(O,{showLabel:!0,className:"btn ghost",label:N?"Připravuji Excel…":"Export Excel",icon:N?e.jsx(Fs,{}):e.jsx(Bs,{}),disabled:N,"aria-busy":N,onClick:()=>void k()}),e.jsx(O,{showLabel:!0,className:"btn btn--light",label:"Tisk stránky",icon:e.jsx(Ds,{}),onClick:()=>window.print()}),e.jsx(O,{showLabel:!0,className:"btn btn--light",label:"Tisk shrnutí",icon:e.jsx($s,{}),onClick:z})]}),backups:e.jsxs(e.Fragment,{children:[e.jsx(O,{showLabel:!0,className:"btn ghost",label:"Obnovit uložený průběh",icon:e.jsx(Rs,{}),onClick:E}),e.jsxs("div",{className:"hero-named-grid hero-actions-tiered__named","aria-label":"Pojmenované zálohy",children:[e.jsx("p",{className:"hero-actions-tiered__hint",children:Pe(m,"kompletní stav řádkové evidence SŠ a označení pro export")}),e.jsxs("label",{className:"hero-named-field hero-named-field--export",children:[e.jsx("span",{className:"field__label field__label--hero-named",children:"Označení pro export"}),e.jsx("input",{type:"text",className:"input",placeholder:"např. název školy, školní rok…",value:A,onChange:S=>T(S.target.value),"aria-label":"Označení pro export a shrnutí"})]}),e.jsxs("label",{className:"hero-named-field hero-named-field--backup-name",children:[e.jsx("span",{className:"field__label field__label--hero-named",children:Ve}),e.jsx("input",{type:"text",className:"input",placeholder:"např. stav 2026/27",value:h,onChange:S=>R(S.target.value),"aria-label":"Název pojmenované zálohy"})]}),e.jsx("div",{className:"hero-named-field hero-named-field--save",children:e.jsx("button",{type:"button",className:"btn ghost btn--hero-named",onClick:F,children:Ue})}),e.jsx("div",{className:"hero-named-field hero-named-field--select",children:e.jsxs("select",{className:"input",value:V,onChange:S=>f(S.target.value),"aria-label":"Vybrat uloženou zálohu",children:[e.jsx("option",{value:"",children:Ke}),W.map(S=>e.jsxs("option",{value:S.id,children:[S.name," (",new Date(S.savedAt).toLocaleString("cs-CZ"),")"]},S.id))]})}),e.jsxs("div",{className:"hero-named-field hero-named-field--restore-delete",children:[e.jsx("button",{type:"button",className:"btn ghost btn--hero-named",onClick:B,children:Ge}),e.jsx("button",{type:"button",className:"btn ghost btn--hero-named",onClick:D,children:We})]})]})]}),technical:e.jsxs(e.Fragment,{children:[e.jsx(O,{showLabel:!0,className:"btn ghost",label:r,title:p,icon:e.jsx(Es,{}),onClick:w}),e.jsx("button",{type:"button",className:"btn ghost btn--hero-named ux-expert-only",onClick:s,children:$e}),e.jsx("button",{type:"button",className:"btn ghost btn--hero-named ux-expert-only",onClick:v,children:"Stáhnout audit (JSON)"}),e.jsx("div",{className:"ux-expert-only hero-actions-tiered__compare",children:e.jsx(Nt,{title:"Porovnání 2 variant (náhled)",result:j,emptyHint:"Vyberte pojmenovanou zálohu s validními řádky pro porovnání s aktuálním stavem.",exportSlug:"ss"})}),e.jsx(O,{showLabel:!0,className:"btn ghost",label:"Kopírovat shrnutí",icon:e.jsx(As,{}),onClick:()=>void C()}),e.jsx(O,{showLabel:!0,className:"btn ghost",label:"Vymazat uložená data",icon:e.jsx(Ts,{}),onClick:c}),e.jsx(O,{showLabel:!0,className:"btn ghost",label:"Vymazat formulář",icon:e.jsx(Is,{}),onClick:H})]})})})]})]})}function ro({heroHeaderRef:t,productView:o,setProductView:i,viewMode:n,setViewMode:d,displayDensity:m,setDisplayDensity:b,focusMode:r,setFocusMode:p,glossaryTriggerRef:y,glossaryOpen:P,setGlossaryOpen:w,guideOpen:g,toggleGuide:k,helpButtonRef:N,phmaxHeroValue:z,phamaxHeroValue:E,rowCount:A,verdictLabel:T,verdictTone:h,toolbar:R}){return e.jsx(Vs,{heroHeaderRef:t,productView:o,setProductView:i,viewMode:n,setViewMode:d,displayDensity:m,setDisplayDensity:b,focusMode:r,setFocusMode:p,moduleLabel:"SŠ",viewModeName:"ss-view-mode",displayDensityName:"ss-display-density",expertExampleSelectId:re,title:"Kalkulačka PHmax a PHAmax – střední školy",showMiniLogo:!0,tabsAside:e.jsx(Ks,{}
2),kpis:[{label:"PHmax",value:z,variant:"primary"},{label:"PHAmax PrŠ",value:E,variant:"secondary"},{label:"Řádky",value:A,variant:"secondary"},{label:"Stav",value:T,variant:"status",tone:h}],aboutContent:e.jsxs("p",{className:"calculator-hero-shell__about-text",children:["Přehledná kalkulačka pro ",e.jsx("strong",{children:"střední vzdělávání"})," podle"," ",e.jsx("a",{href:he,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:Tt})," ","(",e.jsx("a",{href:Ze,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"DOCX ke stažení"}),"). Doplňující souvislosti:"," ",e.jsx("a",{href:It,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"metodické doporučení (ŘŠ)"}),"."]}),note:n==="expert"?e.jsxs("p",{className:"calculator-hero-shell__note-text",children:["PHAmax mimo PrŠ (78-62-C/01, 78-62-C/02) dopočítejte plným postupem metodiky MŠMT – navazující kroky a tabulky jsou na"," ",e.jsx("a",{href:he,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"stránce metodiky pro SŠ"}),"."]}):null,headerActions:e.jsxs(e.Fragment,{children:[e.jsx(ft,{ref:y,className:"glossary-icon-btn--header",layout:"icon",expanded:P,onClick:()=>w(!0)}),e.jsx(Us,{guideOpen:g,onToggle:k,layout:"icon",buttonRef:N})]}),toolbar:e.jsx(lo,{...R,suppressOwnDataHint:!0})})}function io({open:t,onDismiss:o,returnFocusRef:i}){return e.jsxs(Gs,{title:"Nápověda – střední školy (PHmax / PHAmax)",open:t,onDismiss:o,anchorId:"ss-quick-onboarding",returnFocusRef:i,children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Co kalkulačka nedělá:"})," ",ns]}),e.jsx("p",{children:ls}),e.jsx("p",{children:rs}),e.jsx("p",{children:is}),e.jsxs("p",{children:["Kalkulačka je orientační; výsledky ověřte vůči aktuální"," ",e.jsx("a",{href:he,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"metodice MŠMT pro SŠ"})," ","(",e.jsx("a",{href:Ze,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"DOCX ke stažení"}),") a výkazům školy. Vedle tlačítka ",e.jsx("strong",{children:"Nápověda"})," je ",e.jsx("strong",{children:"Slovníček"})," s definicemi pojmů (PHmax, typ třídy, víceobor…)."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"1. fáze – rámec vstupů a výstupů."})," Shrnuje, co metodika očekává jako vstupy školy a co dopočítá aplikace. Můžete si vést ",e.jsx("strong",{children:"volitelné poznámky"})," (ukládají se jen v tomto prohlížeči, odděleně od evidence řádků)."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"2. fáze – evidence tříd a skupin."})," Každý ",e.jsx("strong",{children:"řádek"})," = jedna dílčí jednotka: přesný"," ",e.jsx("strong",{children:"kód oboru z RVP"}),", průměr žáků, počet tříd, forma studia, typ třídy. Sloupec ",e.jsx("strong",{children:"Režim PHmax"})," ","nechte na ",e.jsx("em",{children:"Automaticky"})," (podle počtu oborů ve třídě a příznaku talentové 82) nebo režim ručně vynuťte. U více oborů ve stejné třídě vyplňte ",e.jsx("strong",{children:"Další obory"})," a volitelně ",e.jsx("strong",{children:"Žáci / obor"})," – níže proběhne kontrola pravidel. U každého řádku můžete řádek také ",e.jsx("strong",{children:"Odstranit"})," (konkrétní řádek)."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"PHAmax v aplikaci."})," V horním přehledu se PHAmax dopočítává jen pro"," ",e.jsx("strong",{children:"Praktickou školu"})," (kódy ",e.jsx("code",{className:"methodology-strip__code",children:"78-62-C/01"}),","," ",e.jsx("code",{className:"methodology-strip__code",children:"78-62-C/02"}),") v ",e.jsx("strong",{children:"denní"})," formě podle tabulky z metodiky. U ostatních oborů použijte plný postup MŠMT – PHAmax neinterpretujte z této verze jako úplný."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Horní nástrojová lišta (pod ukázkovým příkladem)."})," Zleva doprava typicky: ",e.jsx("strong",{children:"tisk"})," ","stránky, ",e.jsx("strong",{children:"Přidat řádek"})," a ",e.jsx("strong",{children:"Odstranit poslední řádek"})," (evidence v tabulce níže; vždy zůstane alespoň jeden řádek), rychlé ",e.jsx("strong",{children:"uložení / obnovení"})," průběhu v prohlížeči,"," ",e.jsx("strong",{children:"vymazání uložených dat"})," nebo ",e.jsx("strong",{children:"vyčištění formuláře"}),", pojmenované zálohy (max."," ",oe,"), export ",e.jsx("strong",{children:"CSV"})," a ",e.jsx("strong",{children:"Excel"}),", kopie a tisk textového shrnutí, ",e.jsx("strong",{children:"auditní JSON"}),". Řádky evidence se ukládají automaticky v tomto prohlížeči."]}),e.jsx("p",{children:ds}),e.jsx("p",{className:"onboarding-hero-legend",children:cs}),e.jsxs("p",{children:["Po vyplnění sledujte sekci ",e.jsx("strong",{children:"Orientační výpočet PHmax"})," (řádek po řádku) a blok"," ",e.jsx("strong",{children:"Kontrola pravidel"})," u víceoborových tříd. U řádku lze rozbalit vysvětlení výpočtu („proč takto PHmax“) a vyhodnocení pravidel."]})]})}function co(){return t=>{if((t==null?void 0:t.rowId)!=null){const o=document.querySelector(`[data-ss-row-id="${t.rowId}"]`);if(o instanceof HTMLElement){we(t.sectionId??"ss-vstupy"),window.requestAnimationFrame(()=>{o.scrollIntoView({behavior:"smooth",block:"center"});const i=o.querySelector("input, select, textarea, button");i==null||i.focus({preventScroll:!0})});return}}if(t!=null&&t.sectionId){we(t.sectionId);return}Ws(["ss-vstupy"])}}const mo=["ill_ss_jednoobor_agregat","ill_ss_jednoobor_momv"],uo=["ill_ss_maturita_autotronik","ill_ss_maturita_provoz_dopravy"],po=["ill_ss_gymnazium_ctyrleta"],ho=["ill_ss_dvouobor_stavba","ill_ss_tri_obor_auto"],xo=["ill_ss_prijimaci_obory_mix","ill_ss_kuchar_cisnik_rvp"],jo=["ill_ss_srovnani_denni_vecerni","ill_ss_dalkova_jednoobor","
2ill_ss_auto_dvoubor_eh"],vo=["ill_ss_82_talent_dvouobor"],bo=["ill_ss_prakticka_skola","ill_ss_sec16_trida"],L={ill_ss_jednoobor_agregat:{label:"Jednoobor – agregát více tříd (stejný kód)",title:"Jeden řádek se součtem tříd u jednoho kódu oboru a průměrem žáků (typické pro rychlý odhad). Pro přesný výpočet rozložte na jednotlivé třídy."},ill_ss_jednoobor_momv:{label:"Jednoobor – mechanik opravář motorových vozidel (3 r.)",title:"Denní forma, jednooborová třída podle vyhl. č. 13/2005 Sb. Dva paralelní „výkonové“ celky (např. 1. A a 1. B) jako dva řádky se stejným kódem."},ill_ss_maturita_autotronik:{label:"Maturitní obor – Autotronik (4 r., skupina L)",title:"Čtyřletý maturitní obor skupiny L; denní forma. Slouží jako šablona pro elektro/automatizační kmen s maturitou."},ill_ss_maturita_provoz_dopravy:{label:"Maturitní obor – Provoz a ekonomika dopravy (4 r., skupina M)",title:"Čtyřletý maturitní obor skupiny M; denní forma. Typický pro dopravně-ekonomický profil."},ill_ss_gymnazium_ctyrleta:{label:"Gymnázium – 79-41-K/41 (4 ročníky × 5 tříd)",title:"Čtyřleté gymnázium, všeobecný obor; čtyři řádky podle ročníku (5 paralelek v každém). Průměr žáků odpovídá typickému rozvržení (~613 žáků / 20 tříd). Součet PHmax v aplikaci slouží k orientačnímu srovnání s výkazem (PHmax / úvazky), ne jako právní závěr."},ill_ss_dvouobor_stavba:{label:"Dvouoborová třída – dva obory řemesla (H + H)",title:"Jedna třída, dva kódy stavebních oborů; počty žáků podle oboru. Vhodné k ověření režimu dvouoborové třídy a kontroly pravidel (sloupce Další obory / žáci)."},ill_ss_tri_obor_auto:{label:"Tříoborová třída – autoservis (tři obory H)",title:"Jedna třída se třemi obory vzdělání dle vyhl. č. 13/2005 Sb.; orientační rozložení žáků. Kontrola pravidel pro tří obory (E/H) je v sekci brules."},ill_ss_prijimaci_obory_mix:{label:"Soubor oborů – IT, gastronomie, podnikání, kuchař-číšník, cukrář, prodavač",title:"Šest samostatných řádků (jednooborově) pro kódy typické u přijímacího řízení denního studia: 18-20-M/01, 65-41-L/01, 64-41-L/51, 65-51-H/01, 29-54-H/01, 66-51-H/01. Průměry a počty tříd jsou orientační (řádově podle běžného výkazu SŠ); upravte podle skutečné evidence."},ill_ss_kuchar_cisnik_rvp:{label:"65-51-H/01 – tři zápisy zaměření (kuchař / číšník / obecně)",title:"Jeden kód RVP 65-51-H/01 pro obor Kuchař-číšník; zaměření kuchař nebo číšník se v rejstříku školy rozlišuje názvem oboru, ne jiným kódem. Tři řádky ilustrují zápis z přijímacího řízení (kuchař / číšník / obecný název) – PHmax se počítá z kódu a vstupů na řádku."},ill_ss_srovnani_denni_vecerni:{label:"Srovnání – denní vs večerní (stejný kód oboru)",title:"Dva řádky se stejným kódem 39-41-L/01 (Autotronik); liší se jen forma studia. Ukázka dopadu koeficientu formy na upravený PHmax. Čísla jsou orientační."},ill_ss_dalkova_jednoobor:{label:"Dálková forma – jednoobor (IT)",title:"Jeden řádek, jednooborově, dálková forma studia. Slouží k ověření koeficientu oproti dennímu studiu u stejného RVP kódu."},ill_ss_auto_dvoubor_eh:{label:"Automaticky – dvouobor E + H (jedna třída)",title:"Režim PHmax necháte prázdný (Automaticky); počet oborů ve třídě = 2, hlavní kód E (23-51-E/01), druhý obor H (36-67-H/01). Aplikace zvolí režim „dva obory (E/H)“. Sloupce Další obory / žáci doplňte podle evidence."},ill_ss_82_talent_dvouobor:{label:"Skupina 82 – talentová třída, dva obory (umělecký kmen)",title:"Obory skupiny 82 (82-41-M/01 + 82-41-M/02), zapnutý příznak Talent 82, Automaticky – očekává se režim „dva obory (82)“. Ilustrace kombinace skupiny 82 a talentové třídy."},ill_ss_prakticka_skola:{label:"Praktická škola – jednoletý obor (78-62-C/01)",title:"Jednooborová třída s kódem praktické školy z RVP; denní forma. Slouží jako oddělená šablona od běžného maturitního kmene."},ill_ss_sec16_trida:{label:"Třída podle § 16 odst. 9 – metodická poznámka u řádku",title:"Stejný vstup 
2jako běžná třída (79-41-K/41), ale v poznámce a typu třídy je uvedeno zřízení podle § 16 odst. 9. V aplikaci jde o orientační PHmax z řádku; oddělené účtování dle metodiky MŠMT řeší škola v plném výkazu."}},yo="Příklady jsou anonymní šablony (jednoobor, gymnázium, maturitní obory, víceoborová třída, přijímací řízení, forma studia a režim, skupina 82 / talent, PrŠ, § 16/9). Údaje upravte podle evidence školy; výsledky ověřte vůči metodice MŠMT a oficiálním výstupům.";function ko(t){switch(t){case"ill_ss_jednoobor_agregat":return{rows:[{id:1,label:"Agregát – jeden kód oboru, více tříd",educationField:"43-41-M/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"29",classCount:"13",classType:"jednooborová třída, denní, čtyřletý maturitní obor",note:"Součet tříd u jednoho kódu; průměr žáků odpovídá typické naplněnosti. Zaměření u stejného RVP řeší škola v dokumentaci – vstup zůstává jednooborový."}]};case"ill_ss_jednoobor_momv":return{rows:[{id:1,label:"1. ročník – paralelka A",educationField:"23-68-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"24",classCount:"1",classType:"jednooborová třída",note:"Výuční obor, denní forma."},{id:2,label:"1. ročník – paralelka B",educationField:"23-68-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"23",classCount:"1",classType:"jednooborová třída"}]};case"ill_ss_maturita_autotronik":return{rows:[{id:1,label:"3. ročník – Autotronik",educationField:"39-41-L/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"22",classCount:"2",classType:"jednooborová třída, maturitní",note:"Skupina L, čtyřletý obor – ilustrace dvou paralelek."}]};case"ill_ss_maturita_provoz_dopravy":return{rows:[{id:1,label:"2. ročník – Provoz a ekonomika dopravy",educationField:"37-41-M/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"25",classCount:"1",classType:"jednooborová třída, maturitní",note:"Skupina M, čtyřletý obor."}]};case"ill_ss_gymnazium_ctyrleta":return{rows:[{id:1,label:"1. ročník – paralelky (5 tříd)",educationField:"79-41-K/41",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"30,65",classCount:"5",classType:"jednooborová třída, gymnázium",note:"Kategorie K; čtyřleté gymnázium, všeobecný obor."},{id:2,label:"2. ročník – paralelky (5 tříd)",educationField:"79-41-K/41",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"30,65",classCount:"5",classType:"jednooborová třída, gymnázium"},{id:3,label:"3. ročník – paralelky (5 tříd)",educationField:"79-41-K/41",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"30,65",classCount:"5",classType:"jednooborová třída, gymnázium"},{id:4,label:"4. ročník – paralelky (5 tříd)",educationField:"79-41-K/41",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"30,65",classCount:"5",classType:"jednooborová třída, gymnázium",note:"Součet: 20 tříd, 613 žáků – stejný kód u všech řádků."}]};case"ill_ss_dvouobor_stavba":return{rows:[{id:1,label:"1. ročník – společná třída (zedník + instalatér)",educationField:"36-67-H/01",studyForm:"denni",phmaxMode:"",oborCountInClass:"2",additionalOborCodes:"36-52-H/01",oborStudentCountsRaw:`36-67-H/01:14
336-52-H/01:10`,averageStudents:"24",classCount:"1",classType:"dvouoborová třída dle vyhl. č. 13/2005 Sb.",note:"Dva obory řemesla v jedné třídě; součet žáků = 24 (ověřte rozložení vůči realitě)."}]};case"ill_ss_tri_obor_auto":return{rows:[{id:1,label:"1. ročník – společná třída (autoservis)",educationField:"26-57-H/01",studyForm:"denni",phmaxMode:"",oborCountInClass:"3",additionalOborCodes:"23-55-H/02, 23-61-H/01",oborStudentCountsRaw:`26-57-H/01:8
423-55-H/02:8
523-61-H/01:8`,averageStudents:"24",classCount:"1",classType:"tříoborová třída (obory skupiny H)",note:"Tři obory v jedné třídě; orientační rovnoměrné rozložení žáků. Slouží k náhledu PHmax a kontrole brules."}]};case"ill_ss_prijimaci_obory_mix":return{rows:[{id:1,label:"18-20-M/01 – Informační technologie",educationField:"18-20-M/01",studyF
5orm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"32,75",classCount:"4",classType:"jednooborová třída, denní, maturitní obor (M)",note:"Čtyřletý obor; počty řádově odpovídají typickému členění po ročnících."},{id:2,label:"65-41-L/01 – Gastronomie",educationField:"65-41-L/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"17,75",classCount:"4",classType:"jednooborová třída, denní, maturitní obor (L)",note:"V rejstříku může být název rozšířený (např. gastronomie a hotelnictví) – kód RVP zůstává 65-41-L/01."},{id:3,label:"64-41-L/51 – Podnikání (nástavbové studium)",educationField:"64-41-L/51",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"23",classCount:"2",classType:"jednooborová třída, denní, nástavba"},{id:4,label:"65-51-H/01 – Kuchař-číšník",educationField:"65-51-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"29,4",classCount:"5",classType:"jednooborová třída, denní (H)",note:"Zaměření kuchař / číšník se v dokumentaci školy liší názvem; pro výpočet PHmax v aplikaci stačí kód 65-51-H/01."},{id:5,label:"29-54-H/01 – Cukrář",educationField:"29-54-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"30,33",classCount:"3",classType:"jednooborová třída, denní (H)"},{id:6,label:"66-51-H/01 – Prodavač",educationField:"66-51-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"12,5",classCount:"2",classType:"jednooborová třída, denní (H)"}]};case"ill_ss_kuchar_cisnik_rvp":return{rows:[{id:1,label:"Přijímací řízení – 65-51-H/01, kuchař",educationField:"65-51-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"26",classCount:"1",classType:"jednooborová třída, zaměření kuchař",note:"Stejný kód 65-51-H/01 jako u číšníka – ilustrace zápisu z přehledu oborů."},{id:2,label:"Přijímací řízení – 65-51-H/01, číšník",educationField:"65-51-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"24",classCount:"1",classType:"jednooborová třída, zaměření číšník"},{id:3,label:"Přijímací řízení – 65-51-H/01 (Kuchař – číšník)",educationField:"65-51-H/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"25",classCount:"1",classType:"jednooborová třída, obecný název oboru"}]};case"ill_ss_srovnani_denni_vecerni":return{rows:[{id:1,label:"Autotronik – denní forma",educationField:"39-41-L/01",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"22",classCount:"1",classType:"jednooborová třída",note:"Stejný kód jako řádek níže – pro srovnání koeficientu formy studia."},{id:2,label:"Autotronik – večerní forma",educationField:"39-41-L/01",studyForm:"vecerni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"22",classCount:"1",classType:"jednooborová třída"}]};case"ill_ss_dalkova_jednoobor":return{rows:[{id:1,label:"IT – dálkové studium",educationField:"18-20-M/01",studyForm:"dalkova",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"28",classCount:"2",classType:"jednooborová třída, dálková forma",note:"Ukázka koeficientu u dálkové formy; upravte počty podle evidence."}]};case"ill_ss_auto_dvoubor_eh":return{rows:[{id:1,label:"Společná třída – strojírenské práce (E) + zedník (H)",educationField:"23-51-E/01",studyForm:"denni",phmaxMode:"",oborCountInClass:"2",additionalOborCodes:"36-67-H/01",oborStudentCountsRaw:`23-51-E/01:12
636-67-H/01:12`,averageStudents:"24",classCount:"1",classType:"dvouoborová třída (E + H)",note:"Režim PHmax = Automaticky – aplikace zvolí režim pro dva obory (E/H)."}]};case"ill_ss_82_talent_dvouobor":return{rows:[{id:1,label:"1. ročník – talentová třída, dva obory skupiny 82",educationField:"82-41-M/01",studyForm:"denni",phmaxMode:"",oborCountInClass:"2",additionalOborCodes:"82-41-M/02",oborStudentCountsRaw:`82-41-M/01:10
782-41-M/02:10`,averageStudents:"20",classCount:"1",classType:"dvouoborová třída, skupina 82",isArt82TalentClass:!0,note:"Zaškrtnutý Talent 82 + dva obory v kmeni 82 – Automaticky → typicky režim „dva obory (82)“."}]};case"ill_ss_prakticka_skola":return{rows:[{id:1,label:"Praktická škola – jednoletá",educationField:"78-62-C/01",studyF
7orm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"8",classCount:"1",classType:"jednooborová třída, praktická škola",note:"Kód 78-62-C/01 – zvláštní tabulka v metodice; vstup v aplikaci jako u ostatních oborů."}]};case"ill_ss_sec16_trida":return{rows:[{id:1,label:"Třída § 16/9 – ilustrace (gymnázium)",educationField:"79-41-K/41",studyForm:"denni",phmaxMode:"oneObor",oborCountInClass:"1",averageStudents:"18",classCount:"1",classType:"třída zřízená podle § 16 odst. 9 školského zákona",isPar16Class:!0,note:"Metodika stanovuje PHmax/PHAmax pro § 16/9 zvlášť – tento řádek slouží k orientačnímu náhledu; doplňte podle pokynů MŠMT."}]};default:throw new Error(`Neznámý příklad SŠ: ${String(t)}`)}}function G({citeId:t,label:o}){return e.jsx(Xs,{citeId:t,label:o,tooltips:Ct})}function ae({href:t,children:o}){return e.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"status-link ss-why-panel__link",children:o})}function qe(t){return t==="error"?"ss-explain-msg ss-explain-msg--error":t==="warning"?"ss-explain-msg ss-explain-msg--warning":"ss-explain-msg ss-explain-msg--info"}function go({explanation:t,heading:o="Postup výpočtu a právní opora"}){return e.jsxs("div",{className:"ss-explain-block",style:{marginTop:14},children:[e.jsx("p",{className:"muted-text",style:{margin:"0 0 8px",fontSize:"0.88rem",fontWeight:700},children:o}),e.jsxs("p",{className:"muted-text",style:{margin:"0 0 10px",fontSize:"0.88rem",lineHeight:1.5},children:[e.jsx("strong",{children:"Shrnutí:"})," ",t.shortSummary]}),e.jsx("ol",{className:"ss-explain-steps muted-text",style:{margin:"0 0 12px",paddingLeft:"1.2rem",lineHeight:1.55,fontSize:"0.86rem"},children:t.steps.map((i,n)=>e.jsx("li",{style:{marginBottom:4},children:i},n))}),e.jsx("div",{style:{marginBottom:10},children:t.messages.map((i,n)=>e.jsxs("div",{className:qe(i.severity),style:{marginBottom:8},children:[e.jsx("strong",{style:{display:"block",fontSize:"0.85rem"},children:i.title}),e.jsx("span",{style:{fontSize:"0.86rem",lineHeight:1.5},children:i.body}),i.legalBasis&&i.legalBasis.length>0?e.jsxs("div",{className:"muted-text",style:{marginTop:4,fontSize:"0.8rem"},children:["Opora: ",i.legalBasis.join(" · ")]}):null]},n))}),e.jsxs("p",{className:"muted-text",style:{margin:0,fontSize:"0.8rem",lineHeight:1.45},children:[e.jsx("strong",{children:"Právní rámec řádku:"})," ",t.legalBasis.join(" · ")]})]})}function So({result:t}){return e.jsxs("div",{className:"ss-explain-block",style:{marginTop:0},children:[e.jsx("p",{className:"muted-text",style:{margin:"0 0 10px",fontSize:"0.9rem",lineHeight:1.55},children:t.summary.narrative}),t.summary.messages.map((o,i)=>e.jsxs("div",{className:qe(o.severity),style:{marginBottom:10},children:[e.jsx("strong",{style:{display:"block",fontSize:"0.85rem"},children:o.title}),e.jsx("span",{style:{fontSize:"0.86rem",lineHeight:1.5},children:o.body}),o.legalBasis&&o.legalBasis.length>0?e.jsxs("div",{className:"muted-text",style:{marginTop:4,fontSize:"0.8rem"},children:["Opora: ",o.legalBasis.join(" · ")]}):null]},i)),e.jsxs("details",{className:"ss-explain-school-details",style:{marginTop:8},children:[e.jsxs("summary",{className:"muted-text ss-explain-school-details__summary",children:["Rozpis po řádcích (",t.rows.length,")"]}),e.jsx("ul",{className:"muted-text",style:{margin:"8px 0 0",paddingLeft:"1.1rem",fontSize:"0.86rem",lineHeight:1.5},children:t.rows.map((o,i)=>e.jsx("li",{style:{marginBottom:6},children:o.explanation.shortSummary},i))})]}),e.jsxs("p",{className:"muted-text",style:{margin:"12px 0 0",fontSize:"0.8rem",lineHeight:1.45},children:[e.jsx("strong",{children:"Souhrnná právní opora (orientačně):"})," ",t.summary.legalBasis.join(" · ")]})]})}function es({row:t,explanation:o}){const i=t.form==="denni"?"denní forma (koeficient 1)":`forma „${t.form}“ (koeficient ${t.coefficient})`;return e.jsxs("div",{className:"ss-why-panel card muted",style:{margin:0,padding:"12px 14px",textAlign:"left"},children:[e.jsxs("p",{className:"ss-why-panel__title",children:[e.jsx("strong",{children:"Proč tento výsledek?"})," – orientační výklad k řádku PHmax"]}),e.jsxs("ul",{className:"ss-why-panel__list muted-text",style:{margin:"8px 0 0",paddingLeft:"1.2rem",lineHeight:1.55},children:[e.jsxs("li",{children:["Základ PHmax na třídu vychází z tabulek podle průměru žáků –"," ",e.jsx(G,{citeId:"nv123-priloha1",label:se["nv123-priloha1"]}),". Definice PHmax:"," ",e.jsx(G,{citeId:"nv123-1",label:se["nv123-1"]}),"."]}),e.jsxs("li",{children:["Pásmo „",t.intervalLabel,"“ odpovídá zadanému průměru ",t.averageStudents," žáků a zvolenému režimu výpočtu (",e.jsx("strong",{children:t.modeKey}),") v interním datasetu oboru."]}),e.jsxs("li",{children:[i," – ",e.jsx(G,{citeId:"nv123-2",label:se["nv123-2"]}),"."]}),e.jsxs("li",{children:["Součin upravené hodnoty a počtu tříd (",t.classCount,") dává PHmax celkem (srov."," ",e.jsx(G,{citeId:"nv123-1-3",label:se["nv123-1-3"]})," – součet za školu je součtem řádků)."]})]}),e.jsxs("p",{className:"muted-text",style:{marginTop:10,fontSize:"0.88rem"},children:["Předpisy: ",e.jsx(ae,{href:te.nv123,children:"NV 123/2018 Sb."})," · ",e.jsx(ae,{href:te.vyhl13,children:"vyhl. 13/2005 Sb."})," (víceoborové třídy)."]}),o?e.jsx(go,{explanation:o}):null]})}function Ne({messages:t}){return t.length===0?null:e.jsx("ul",{className:"ss-why-panel__list",style:{margin:"6px 0 0",paddingLeft:"1.1rem"},children:t.map((o,i)=>{const n=Pt(o.code);return e.jsxs("li",{style:{marginBottom:8},children:[e.jsxs("strong",{children:[o.code,":"]})," ",o.message,n?e.jsxs("div",{className:"muted-text",style:{marginTop:4,fontSize:"0.9rem"}
7,children:[n.note,n.citeIds.length>0?e.jsxs("span",{children:[" ","(",n.citeIds.map((d,m)=>e.jsxs(de.Fragment,{children:[m>0?", ":null,e.jsx(G,{citeId:d,label:se[d]??d})]},d)),")"]}):null]}):null]},`${o.code}-${i}`)})})}function _o({error:t}){return e.jsxs("div",{className:"ss-why-panel card muted",style:{margin:0,padding:"12px 14px",textAlign:"left"},children:[e.jsxs("p",{className:"ss-why-panel__title",children:[e.jsx("strong",{children:"Proč tento výsledek?"})," – výpočet PHmax selhal"]}),e.jsx("p",{className:"muted-text",style:{marginTop:8,lineHeight:1.5},children:t}),e.jsxs("p",{className:"muted-text",style:{marginTop:10,fontSize:"0.9rem",lineHeight:1.5},children:["Typicky jde o neexistující kód v datasetu, průměr žáků mimo definovaná pásma pro zvolený režim, nebo nečíselné vstupy. Pásma vycházejí z ",e.jsx(G,{citeId:"nv123-priloha1",label:se["nv123-priloha1"]})," ( implementace v aplikaci = interní tabulky oboru)."]}),e.jsx("p",{className:"muted-text",style:{marginTop:8,fontSize:"0.88rem"},children:e.jsx(ae,{href:te.nv123,children:"NV 123/2018 Sb."})})]})}function No({error:t}){return e.jsxs("div",{className:"ss-why-panel card muted",style:{margin:0,padding:"12px 14px",textAlign:"left"},children:[e.jsxs("p",{className:"ss-why-panel__title",children:[e.jsx("strong",{children:"Proč tento výsledek?"})," – kontrola pravidel selhala"]}),e.jsx("p",{className:"muted-text",style:{marginTop:8,lineHeight:1.5},children:t}),e.jsxs("p",{className:"muted-text",style:{marginTop:10,fontSize:"0.9rem",lineHeight:1.5},children:["Nejčastěji jde o neplatné kódy oborů, chybně vyplněné počty žáků podle oborů, nebo vnitřní chybu datasetu. Pravidla víceoborových tříd vycházejí z"," ",e.jsx(G,{citeId:"vyhl13-2a1",label:"§ 2a"})," a souvisejících ustanovení vyhlášky."]}),e.jsx("p",{className:"muted-text",style:{marginTop:8,fontSize:"0.88rem"},children:e.jsx(ae,{href:te.vyhl13,children:"Vyhláška 13/2005 Sb."})})]})}function fo({result:t}){return e.jsxs("div",{className:"ss-why-panel card muted",style:{margin:0,padding:"12px 14px",textAlign:"left"},children:[e.jsxs("p",{className:"ss-why-panel__title",children:[e.jsx("strong",{children:"Proč tento výsledek?"})," – kontrola pravidel a legislativa"]}),e.jsxs("p",{className:"muted-text",style:{marginTop:6,fontSize:"0.88rem"},children:["U citací (např. ",e.jsx(G,{citeId:"vyhl13-2a1",label:"§ 2a odst. 1"}),") najeďte myší nebo použijte Tab + fokus – zobrazí se stručný výklad."]}),t.errors.length>0?e.jsxs("div",{style:{marginTop:8},children:[e.jsx("strong",{style:{color:"var(--danger, #b91c1c)"},children:"Chyby"}),e.jsx(Ne,{messages:t.errors})]}):null,t.warnings.length>0?e.jsxs("div",{style:{marginTop:8},children:[e.jsx("strong",{style:{color:"var(--warning, #b45309)"},children:"Varování"}),e.jsx(Ne,{messages:t.warnings})]}):null,t.info.length>0?e.jsxs("div",{style:{marginTop:8},children:[e.jsx("strong",{className:"muted-text",children:"Informace"}),e.jsx(Ne,{messages:t.info})]}):null,e.jsxs("p",{className:"muted-text",style:{marginTop:10,fontSize:"0.88rem"},children:[e.jsx(ae,{href:te.vyhl13,children:"Vyhláška 13/2005 Sb."})," · ",e.jsx(ae,{href:te.nv123,children:"NV 123/2018 Sb."})]})]})}function Co({resolved:t,unitRow:o}){let i;const n=Ut(o);if(n)try{i=Rt(Y,n).explanation}catch{i=void 0}return e.jsx(es,{row:t,explanation:i})}function Po({model:t}){const o=xe,{rows:i,preview:n,computedRows:d,roundedTotal:m,whyPhmaxRowId:b,setWhyPhmaxRowId:r}=t;return e.jsxs("div",{style:{marginTop:22},"data-section":"ss-vysledek",children:[e.jsx("h3",{style:{marginTop:0,marginBottom:10,fontSize:"1.05rem",fontWeight:700},children:o.previewHeading}),e.jsx("p",{className:"muted-text",style:{marginBottom:12,lineHeight:1.5},children:o.previewHint}),e.jsx(le,{className:"app-table-wrap",role:"region","aria-label":o.previewHeading,children:e.jsxs("table",{className:"app-data-table app-data-table--results",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Označení"}),e.jsx("th",{scope:"col",children:"Kód oboru"}),e.jsx("th",{scope:"col",children:"Režim"}),e.jsx("th",{scope:"col",children:"Pásmo"}),e.jsx("th",{scope:"col",className:"app-data-table__num",children:"PHmax / třídu (upr.)"}),e.jsx("th",{scope:"col",className:"app-data-table__num",children:"PHmax celkem"}),e.jsx("th",{scope:"col",children:"Stav"})]})}),e.jsx("tbody",{children:n.map(p=>{const y=i.find(z=>z.id===p.rowId),P=(y==null?void 0:y.educationField.trim())??"",w=()=>r(z=>z===p.rowId?null:p.rowId);if(p.skipped)return e.jsxs("tr",{children:[e.jsx("td",{children:p.label||"–"}),e.jsx("td",{colSpan:5,className:"muted-text",children:"(nezadáno pro výpočet)"}),e.jsx("td",{className:"muted-text",children:"–"})]},p.rowId);if("error"in p){const z=b===p.rowId;return e.jsxs(de.Fragment,{children:[e.jsxs("tr",{children:[e.jsx("td",{children:p.label||"–"}),e.jsx("td",{children:P}),e.jsx("td",{className:"muted-text",children:"–"}),e.jsx("td",{colSpan:2,className:"muted-text",children:"–"}),e.jsx("td",{className:"app-data-table__num",children:"–"}),e.jsxs("td",{children:[e.jsx("span",{style:{color:"var(--danger, #b91c1c)"},children:p.error}),e.jsx("button",{type:"button",className:"btn ghost ss-why-btn",onClick:w,"aria-expanded":z,"aria-controls":`ss-why-phmax-${p.rowId}`,children:"Proč?"})]})]}),z?e.jsx("tr",{className:"ss-why-row",children:e.jsx("td",{colSpan:7,id:`ss-why-phmax-${p.rowId}`,children:e.jsx(_o,{error:p.error})})}):null]},p.rowId)}const g=p.resolved,k=b===p.rowId,N=y?Qe(y):!1;return e.jsxs(de.Fragment,{children:[e.jsxs("tr",{children:[e.jsx("td",{children:p.label||"–"}),e.jsx("td",{children:g.code}),e.jsx("td",{className:"muted-text",children:g.modeKey}),e.jsx("td",{children:g.intervalLabel}),e.jsx("td",{className:"app-data-table__num",children:g.adjustedPhmaxPerClass}),e.jsx("td",{className:"app-data-table__num app-data-table__num--emph",children:g.totalPhmax}),e.jsxs("td",{className:"muted-text",children:[N?e.jsx("span",{title:o.par16CheckboxHint,children:"§ 16"}):"OK",e.jsx("button",{type:"button",className:"btn ghost ss-why-btn",onClick:w,"aria-expanded":k,"aria-controls":`ss-why-phmax-${p.rowId}`,children:"Proč?"})]})]}),k?e.jsx("tr",{className:"ss-why-row",children:e.jsxs("td",{colSpan:7,id:`ss-why-phmax-${p.rowId}`,children:[y?e.jsx(Co,{resolved:g,unitRow:y}):e.jsx(es,{row:g}),N?e.jsx("p",{className:"muted-text ss-par16-row-summary",style:{marginTop:10},children:Te}):null]})}):N?e.jsx("tr",{className:"ss-par16-summary-row",children:e.jsx("td",{colSpan:7,children:e.jsx("p",{className:"muted-text ss-par16-row-summary",children:Te})})}):null]},p.rowId)})}),d.length>0?e.jsx("tfoot",{children:e.jsxs("tr",{className:"app-data-table__total-row",children:[e.jsx("th",{scope:"row",colSpan:5,children:"Součet PHmax (platné řá
7dky)"}),e.jsx("td",{className:"app-data-table__num app-data-table__num--emph",children:m}),e.jsx("td",{})]})}):null]})})]})}function fe(t){const o=Jt(t);return o.length>0?o:[ee(1)]}function zo(t){return t.reduce((o,i)=>Math.max(o,i.id),0)+1}function wo(){try{const t=localStorage.getItem(Ye);if(!t)return[];const o=JSON.parse(t);return Array.isArray(o.items)?o.items:[]}catch{return[]}}function Fe(t){try{localStorage.setItem(Ye,JSON.stringify({items:t}))}catch{}}function Ho(t){if(!t||typeof t!="object")return null;const o=t.rows;return!Array.isArray(o)||o.length===0?null:o.map((i,n)=>Zt(i??{},n+1))}function Eo(t,o,i,n){const d=xe,m=[];return i.trim()&&m.push(["Označení pro export",i.trim()]),m.push(["Součet PHmax (orientačně, platné řádky)",o]),n!=null&&m.push(["Součet PHAmax (PrŠ 78-62-C/01, 78-62-C/02, denní forma – tabulka metodiky)",n]),m.push(["Počet řádků ve formuláři",t.length]),t.forEach((b,r)=>{const p=`Řádek ${r+1} (id ${b.id})`;m.push([`${p} – ${d.colLabel}`,b.label]),m.push([`${p} – ${d.colEducationField}`,b.educationField]),m.push([`${p} – ${d.colAvgStudents}`,b.averageStudents]),m.push([`${p} – ${d.colClassCount}`,b.classCount]),m.push([`${p} – ${d.colStudyForm}`,b.studyForm]),m.push([`${p} – ${d.colPhmaxMode}`,b.phmaxMode]),m.push([`${p} – ${d.colOborCountInClass}`,b.oborCountInClass]),m.push([`${p} – ${d.colArt82Talent}`,b.isArt82TalentClass?"ano":"ne"]),m.push([`${p} – ${d.colAdditionalObors}`,b.additionalOborCodes]),m.push([`${p} – ${d.colOborStudentCounts}`,b.oborStudentCountsRaw]),m.push([`${p} – ${d.colClassType}`,b.classType]),m.push([`${p} – ${d.colPar16Class}`,b.isPar16Class?"ano":"ne"]),m.push([`${p} – ${d.colNote}`,b.note])}),m}function Be(t){return["PHmax SŠ – textové shrnutí (orientační)",t.exportLabel.trim()?`Označení pro export: ${t.exportLabel.trim()}`:null,`Počet řádků: ${t.rowCount}`,`Součet PHmax (platné řádky): ${t.roundedTotal}`,t.phamaxPracticalTotal!=null?`Součet PHAmax (PrŠ, denní, tabulka metodiky): ${t.phamaxPracticalTotal}`:null].filter(Boolean).join(`
8`)}function ss(t){const[o,i]=u.useState(()=>{try{return fe(localStorage.getItem(q))}catch{return[ee(1)]}}),[n,d]=u.useState(null),[m,b]=u.useState(null),[r,p]=u.useState([]),[y,P]=u.useState(""),[w,g]=u.useState(""),[k,N]=u.useState("");to(k,N);const[z,E]=Js(),[A,T]=u.useState(!1),h=u.useRef(E);u.useEffect(()=>{h.current=E},[E]),u.useEffect(()=>{p(wo())},[]),u.useEffect(()=>{const l=()=>{try{i(fe(localStorage.getItem(q)))}catch{}};return window.addEventListener(Oe,l),()=>window.removeEventListener(Oe,l)},[]),u.useEffect(()=>{try{const x=Ie({rows:o});localStorage.setItem(q,JSON.stringify(Kt(o,x)))}catch{}},[o]);const R=u.useCallback((l,x)=>{i(_=>_.map(I=>I.id===l?{...I,...x}:I))},[]),W=u.useCallback(()=>{i(l=>[...l,ee(zo(l))])},[]),V=u.useCallback(l=>{i(x=>{const _=x.filter(I=>I.id!==l);return _.length===0?[ee(1)]:_})},[]),f=u.useCallback(()=>{i(l=>l.length<=1?[ee(1)]:l.slice(0,-1))},[]),F=u.useMemo(()=>Gt(o),[o]),B=u.useMemo(()=>Wt(o),[o]),D=u.useMemo(()=>F.filter(l=>!l.skipped&&"resolved"in l),[F]),s=u.useMemo(()=>Ie({rows:o})??0,[o]),v=u.useMemo(()=>Xt(o),[o]);u.useEffect(()=>{t==null||t({rowCount:o.length,phmaxTotal:s,phamaxTotal:v})},[o.length,s,v,t]);const j=u.useMemo(()=>ze(o),[o]),C=u.useMemo(()=>{const l=j;if(!l)return null;try{return Mt(Y,{rows:l.rows,...l.businessRules?{businessRules:l.businessRules}:{}})}catch{return null}},[j]),c=u.useCallback(()=>({rows:o}),[o]),H=u.useCallback(l=>{const x=Ho(l);x?(i(x),h.current("Data byla obnovena.")):h.current(ms)},[]),M=u.useCallback(()=>{const l=w.trim()||new Date().toLocaleString("cs-CZ"),_={id:`n-${Date.now()}`,name:l,savedAt:new Date().toISOString(),snapshot:c()};p(I=>{const ce=[_,...I].slice(0,oe);return Fe(ce),ce}),g(""),h.current(us(l,oe))},[c,w]),S=u.useCallback(()=>{const l=r.find(x=>x.id===y);if(!l){h.current(ps);return}H(l.snapshot),h.current(`Obnovena záloha „${l.name}“.`)},[H,r,y]),$=u.useCallback(()=>{if(!y){h.current(hs);return}const l=r.find(x=>x.id===y);l&&_e(oo(l.name))&&(p(x=>{const _=x.filter(I=>I.id!==y);return Fe(_),_}),P(""),h.current("Pojmenovaná záloha byla smazána."))},[r,y]),je=u.useCallback(()=>
8{if(!j){h.current(xs);return}zt(ie(Y,j),"ss"),h.current("Stažen auditní protokol (JSON).")},[j]),X=u.useCallback(()=>{const l=r.find(ce=>ce.id===y);if(!l){h.current(js);return}const x=j,_=ze(l.snapshot.rows);if(!x){h.current(vs);return}if(!_){h.current(bs);return}const I=Je([{id:"current",label:"Aktuální stav",protocol:ie(Y,x)},{id:"named",label:l.name,protocol:ie(Y,_)}]);wt(I,"ss"),h.current(`Staženo srovnání: aktuální stav vs „${l.name}“ (JSON).`)},[j,r,y]),Q=u.useCallback(()=>{try{localStorage.setItem(q,JSON.stringify(o)),h.current("Rozpracované údaje byly uloženy do prohlížeče.")}catch{h.current(`Uložení se nepodařilo (úložiště prohlížeče). ${ge}`)}},[o]),ne=u.useCallback(()=>{i(fe(localStorage.getItem(q))),h.current("Obnoveno z automatického úložiště prohlížeče.")},[]),ve=u.useCallback(()=>{if(_e(ao)){try{localStorage.removeItem(q)}catch{}h.current("Uložená data evidence SŠ v tomto prohlížeči byla smazána.")}},[]),J=u.useCallback(()=>{_e(no)&&(i([ee(1)]),h.current("Formulář byl vyčištěn."))},[]),Z=u.useMemo(()=>Eo(o,s,k,v),[o,s,k,v]),be=u.useCallback(()=>{const l=[...Dt("ss"),...Z];Zs(He("phmax-ss","csv"),Ys(l),"text/csv;charset=utf-8"),h.current("Export CSV byl stažen.")},[Z]),ye=u.useCallback(async()=>{if(!A){T(!0);try{const{downloadCalculatorXlsx:l}=await ys(async()=>{const{downloadCalculatorXlsx:x}=await import("./export-xlsx-ea5lTLF9.js");return{downloadCalculatorXlsx:x}},__vite__mapDeps([0,1,2]));await l({contextRows:[["Aplikace (produkt)","PHmax / PHAmax – střední školy (dílčí jednotky)"],...$t("ss")],valueRows:Z,filename:He("phmax-ss","xlsx")}),h.current("Byl stažen soubor Excel (XLSX).")}
8catch(l){console.error(l),h.current(`Export do Excelu se nepodařil. ${ge}`)}finally{T(!1)}}},[Z,A]),ke=u.useCallback(async()=>{const l=Be({exportLabel:k,roundedTotal:s,rowCount:o.length,phamaxPracticalTotal:v});try{await navigator.clipboard.writeText(l),h.current("Shrnutí bylo zkopírováno do schránky.")}catch{h.current(`Kopírování do schránky se nepodařilo. ${ge}`)}},[k,s,o.length,v]),a=u.useCallback(()=>{const l=Qs({pageTitle:"Shrnutí PHmax SŠ",heading:"Shrnutí PHmax SŠ",plainSummary:Be({exportLabel:k,roundedTotal:s,rowCount:o.length,phamaxPracticalTotal:v}),layout:"box"});l.ok||h.current(l.reason==="blocked"?qs:"Tisk shrnutí se nepodařil otevřít.")},[k,s,o.length,v]);return{rows:o,updateRow:R,addRow:W,removeRow:V,removeLastRow:f,whyPhmaxRowId:n,setWhyPhmaxRowId:d,whyBrulesRowId:m,setWhyBrulesRowId:b,namedSnapshots:r,selectedNamedId:y,setSelectedNamedId:P,namedSaveName:w,setNamedSaveName:g,exportLabel:k,setExportLabel:N,uiNotice:z,setUiNotice:E,preview:F,brulesPreview:B,computedRows:D,roundedTotal:s,auditProtocolInput:j,schoolPhmaxExplain:C,applySsRowsSnapshot:H,saveNamedSsSnapshot:M,restoreNamedSsSnapshot:S,deleteNamedSsSnapshot:$,handleExportSsAuditJson:je,handleCompareSsWithNamedSnapshot:X,saveSnapshotManually:Q,restoreSnapshot:ne,clearStoredSnapshot:ve,resetAll:J,handleExportCsv:be,handleExportXlsx:ye,copySummaryToClipboard:ke,printSummaryWindow:a,xlsxExportBusy:A}}function Ce(t){return t.map(o=>o.message).join(" · ")}function Ao(t){const o=Number(String(t).trim().replace(",","."));return Number.isFinite(o)&&o>0}function To(t){const o=parseInt(String(t).trim(),10);return Number.isInteger(o)&&o>0}function ts({model:t,hideBackupSubcard:o=!1,showExpertPanels:i=!0}){const n=xe,{rows:d,updateRow:m,removeRow:b,whyBrulesRowId:r,setWhyBrulesRowId:p,preview:y,brulesPreview:P,computedRows:w,roundedTotal:g,schoolPhmaxExplain:k,namedSnapshots:N,selectedNamedId:z,setSelectedNamedId:E,namedSaveName:A,setNamedSaveName:T,uiNotice:h,saveNamedSsSnapshot:R,restoreNamedSsSnapshot:W,deleteNamedSsSnapshot:V,handleExportSsAuditJson:f,handleCompareSsWithNamedSnapshot:F}=t,B="phmax-ss-units-form-desc",D=d.length===1&&!d[0].label&&!d[0].educationField&&!d[0].classType&&!d[0].note&&!d[0].averageStudents&&d[0].classCount==="1"&&d[0].phmaxMode===""&&d[0].oborCountInClass==="1"&&!d[0].additionalOborCodes&&!d[0].oborStudentCountsRaw&&!d[0].isArt82TalentClass;return e.jsxs("section",{className:"card section-card section-card--ss","aria-labelledby":"ss-units-heading",style:{marginTop:24,marginBottom:24},children:[e.jsx("h2",{id:"ss-units-heading",className:"section-title",children:n.heading}),e.jsx(Xe,{variant:"form"}),e.jsxs("div",{className:"ss-units-phase2-head",children:[e.jsx("p",{className:"muted-text ss-framework-compact-note",style:{marginTop:0},children:n.compactLead}),e.jsxs("details",{className:"ss-framework-details",children:[e.jsx("summary",{className:"ss-framework-details__summary",children:n.methodologyDetailsSummary}),e.jsx("p",{id:B,className:"muted-text ss-units-phase2-lead",children:n.lead}),e.jsx("p",{className:"muted-text ss-units-phase2-storage",style:{marginTop:12,marginBottom:0},children:n.storageNote})]})]}),o&&h?e.jsx("p",{className:"muted-text",role:"status",style:{marginTop:12,lineHeight:1.5},children:h}):null,o?null:e.jsxs("div",{className:"subcard ss-units-actions","aria-label":"Auditní protokol a zálohy",children:[e.jsx("h3",{style:{marginTop:0,marginBottom:8,fontSize:"1.05rem",fontWeight:700},children:"Auditní protokol a pojmenované zálohy"}),e.jsx("p",{className:"muted-text",style:{marginTop:0,marginBottom:0,lineHeight:1.55,fontSize:"0.9rem"},children:"Stejný formát JSON jako u PV, ŠD a ZŠ."}),e.jsx("p",{className:"muted-text",style:{marginTop:8,marginBottom:0,lineHeight:1.55,fontSize:"0.86rem"},children:Pe(oe,"řádky evidence SŠ v této sekci")}),h?e.jsx("p",{className:"muted-text",role:"status",style:{marginTop:12,marginBottom:0,lineHeight:1.5},children:h}):null,e.jsxs("div",{className:"grid two ss-named-backups",style:{marginTop:16,gap:"12px 18px",alignItems:"end"},children:[e.jsxs("label",{className:"field",style:{marginTop:0},children:[e.jsxs("span",{className:"field__label",children:[Ve,e.jsx(Ht,{text:Pe(oe,"řádky evidence SŠ v této sekci")})]}),e.jsx("input",{type:"text",className:"input",placeholder:"např. varianta A",value:A,onChange:s=>T(s.target.value),"aria-label":"Název pojmenované zálohy"})]}),e.jsx("div",{style:{alignSelf:"end"},children:e.jsx("button",{type:"button",className:"btn ghost",style:{width:"100%"},onClick:R,children:Ue})})]}),e.jsxs("label",{className:"field",style:{marginTop:14},children:[e.jsx("span",{className:"field__label",children:"Vybrat uloženou zálohu"}),e.jsxs("select",{className:"input",value:z,onChange:s=>E(s.target.value),"aria-label":"Vybrat uloženou zálohu",children:[e.jsx("option",{value:"",children:Ke}),N.map(s=>
8e.jsxs("option",{value:s.id,children:[s.name," (",new Date(s.savedAt).toLocaleString("cs-CZ"),")"]},s.id))]})]}),e.jsxs("div",{className:"toolbar",style:{marginTop:12,flexWrap:"wrap",gap:10},children:[e.jsx("button",{type:"button",className:"btn ghost",onClick:W,children:Ge}),e.jsx("button",{type:"button",className:"btn ghost",onClick:V,children:We})]}),e.jsx("p",{className:"hero-actions__group-title",style:{marginTop:14},children:ks}),e.jsx("button",{type:"button",className:"btn ghost",style:{marginTop:12,width:"100%"},onClick:F,children:$e}),e.jsx("button",{type:"button",className:"btn ghost",style:{marginTop:10,width:"100%"},onClick:f,children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[e.jsx(et,{}),"Stáhnout auditní protokol (JSON)"]})})]}),e.jsx(le,{className:"app-table-wrap app-table-wrap--spaced app-table-wrap--ss-units",role:"region","aria-labelledby":"ss-units-heading",children:e.jsxs("table",{className:"app-data-table ss-units-table","aria-describedby":B,children:[e.jsx("caption",{className:"app-data-table__caption",children:n.tableCaption}),e.jsx("tbody",{children:d.map(s=>e.jsx("tr",{"data-ss-row-id":s.id,children:e.jsx("td",{className:"ss-units-block-cell",children:(()=>{const v=s.educationField.trim().length>0,j=Ao(s.averageStudents),C=To(s.classCount);return e.jsxs("div",{className:`ss-units-block-card ${v&&j&&C?"ss-units-block-card--valid":"ss-units-block-card--invalid"}`,children:[e.jsxs("div",{className:"ss-units-block-head",children:[e.jsxs("span",{className:"ss-units-block-badge",children:["Řádek ",s.id]}),e.jsx("span",{className:"ss-units-block-head__hint",children:"Dílčí jednotka výpočtu"})]}),e.jsxs("div",{className:"ss-units-mini ss-units-mini--top",children:[e.jsxs("div",{className:"ss-units-mini__labels",children:[e.jsx("span",{children:n.colLabel}),e.jsx("span",{children:n.colEducationField}),e.jsx("span",{children:n.colAvgStudents}),e.jsx("span",{children:n.colClassCount}),e.jsx("span",{children:n.colStudyForm}),e.jsx("span",{children:n.colPhmaxMode})]}),e.jsxs("div",{className:"ss-units-mini__inputs",children:[e.jsx("input",{type:"text",className:"input",value:s.label,onChange:c=>m(s.id,{label:c.target.value}),"aria-label":`${n.colLabel}, řádek ${s.id}`}),e.jsx("input",{type:"text",className:"input",value:s.educationField,onChange:c=>m(s.id,{educationField:c.target.value}),"aria-label":`${n.colEducationField}, řádek ${s.id}`,spellCheck:!1}),e.jsx("input",{type:"text",className:"input",inputMode:"decimal",value:Me(s.averageStudents),onFocus:Re,onChange:c=>m(s.id,{averageStudents:Me(c.target.value)}),"aria-label":`${n.colAvgStudents}, řádek ${s.id}`}),e.jsx("input",{type:"text",className:"input",inputMode:"numeric",value:pe(s.classCount),onChange:c=>m(s.id,{classCount:pe(c.target.value)}),"aria-label":`${n.colClassCount}, řádek ${s.id}`}),e.jsx("select",{className:"input",value:s.studyForm,onChange:c=>m(s.id,{studyForm:c.target.value}),"aria-label":`${n.colStudyForm}, řádek ${s.id}`,children:Ot.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))}),e.jsx("select",{className:"input",value:s.phmaxMode,onChange:c=>m(s.id,{phmaxMode:c.target.value}),"aria-label":`${n.colPhmaxMode}, řádek ${s.id}`,children:Lt.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value||"auto"))})]})]}),!v||!j||!C?e.jsxs("p",{className:"muted-text field-validation-warning",children:[v?null:`${gs} Vyplňte kód oboru z RVP.`,!v&&(!j||!C)?" ":null,j?null:`${Ss} U pole „${n.colAvgStudents}“.`,!j&&!C?" ":null,C?null:`${_s} U pole „${n.colClassCount}“.`]}):null,e.jsxs("div",{className:"ss-units-mini ss-units-mini--bottom",children:[e.jsxs("div",{className:"ss-units-mini__labels",children:[e.jsx("span",{children:n.colOborCountInClass}),e.jsx("span",{children:n.colArt82Talent}),e.jsx("span",{children:n.colAdditionalObors}),e.jsx("span",{children:n.colOborStudentCounts}),e.jsx("span",{children:n.colClassType}),e.jsx("span",{children:n.colNote})]}),e.jsxs("div",{className:"ss-units-mini__inputs",children:[e.jsx("input",{type:"text",className:"input",inputMode:"numeric",value:pe(s.oborCountInClass),onFocus:Re,onCh
8ange:c=>m(s.id,{oborCountInClass:pe(c.target.value)}),"aria-label":`${n.colOborCountInClass}, řádek ${s.id}`,title:"Pro režim „Automaticky“; při ručním režimu se pole typicky nechá 1."}),e.jsx("label",{className:"ss-units-checkbox-wrap",children:e.jsx("input",{type:"checkbox",checked:s.isArt82TalentClass,onChange:c=>m(s.id,{isArt82TalentClass:c.target.checked}),"aria-label":`${n.colArt82Talent}, řádek ${s.id}`})}),e.jsx("input",{type:"text",className:"input",value:s.additionalOborCodes,onChange:c=>m(s.id,{additionalOborCodes:c.target.value}),"aria-label":`${n.colAdditionalObors}, řádek ${s.id}`,placeholder:"kód, kód…",spellCheck:!1}),e.jsx("input",{type:"text",className:"input",value:s.oborStudentCountsRaw,onChange:c=>m(s.id,{oborStudentCountsRaw:c.target.value}),"aria-label":`${n.colOborStudentCounts}, řádek ${s.id}`,placeholder:"KÓD:15 …",spellCheck:!1}),e.jsx("input",{type:"text",className:"input",value:s.classType,onChange:c=>m(s.id,{classType:c.target.value}),"aria-label":`${n.colClassType}, řádek ${s.id}`}),e.jsx("input",{type:"text",className:"input",value:s.note,onChange:c=>m(s.id,{note:c.target.value}),"aria-label":`${n.colNote}, řádek ${s.id}`})]})]}),e.jsxs("div",{className:"ss-units-par16-row",style:{marginTop:10},children:[e.jsxs("label",{className:"ss-units-checkbox-wrap",children:[e.jsx("input",{type:"checkbox",checked:s.isPar16Class,onChange:c=>m(s.id,{isPar16Class:c.target.checked}),"aria-label":`${n.colPar16Class}, řádek ${s.id}`}),e.jsx("span",{children:n.colPar16Class})]}),s.isPar16Class||Qe(s)?e.jsx("p",{className:"muted-text",style:{margin:"8px 0 0",fontSize:"0.85rem",lineHeight:1.45,maxWidth:"42rem"},children:n.par16CheckboxHint}):null]}),e.jsxs("div",{className:"ss-units-legacy-row",style:{marginTop:10},children:[e.jsxs("label",{className:"ss-units-checkbox-wrap",children:[e.jsx("input",{type:"checkbox",checked:s.isLegacyMultioborClass,onChange:c=>m(s.id,{isLegacyMultioborClass:c.target.checked}),"aria-label":`${n.colLegacyMultiobor}, řádek ${s.id}`}),e.jsx("span",{children:n.colLegacyMultiobor})]}),s.isLegacyMultioborClass?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"muted-text",style:{margin:"8px 0 0",fontSize:"0.85rem",lineHeight:1.45,maxWidth:"42rem"},children:n.legacyMultioborHint}),e.jsxs("label",{className:"field",style:{marginTop:8,maxWidth:"16rem"},children:[e.jsx("span",{className:"field__label",children:n.colLegacyMaxOborCount}),e.jsx("input",{type:"text",className:"input",inputMode:"numeric",value:s.legacyMaxOborCount,onChange:c=>m(s.id,{legacyMaxOborCount:c.target.value}),"aria-label":`${n.colLegacyMaxOborCount}, řádek ${s.id}`,placeholder:"např. 2"})]})]}):null]}),e.jsx("div",{className:"ss-units-block-actions",children:e.jsx("button",{type:"button",className:"btn ss-units-row-action ss-units-row-action--remove",onClick:()=>b(s.id),children:n.removeRow})})]})})()})},s.id))})]})}),D?e.jsx("p",{className:"muted-text",style:{marginTop:12},children:n.emptyHint}):null,e.jsx(Po,{model:t}),e.jsxs("details",{className:"subcard sd-phmax-breakdown-wrap",style:{marginTop:16},children:[e.jsx("summary",{className:"section-title",style:{fontSize:"1.02rem",cursor:"pointer"},children:"Rozpad / ověřovací tabulka PHmax (řádky)"}),e.jsx("p",{className:"muted-text",style:{marginTop:10,marginBottom:12,fontSize:"0.86rem",lineHeight:1.5},children:"Stejná data jako v přehledu výše, ve formě vhodné pro rychlé porovnání se součtem. Sloupec „PHmax řádku“ odpovídá sloupci „PHmax celkem“ v hlavní tabulce; v řádku Celkem je součet platných výpočtů."}),e.jsx(le,{className:"sd-phmax-breakdown-scroll sd-phmax-breakdown-scroll--compact",children:e.jsxs("table",{className:"sd-phmax-breakdown",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"#"}),e.jsx("th",{scope:"col",children:"Označení"}),e.jsx("th",{scope:"col",children:"Kód oboru"}),e.jsx("th",{scope:"col",children:"Režim"}),e.jsx("th",{scope:"col",children:"Pásmo"}),e.jsx("th",{scope:"col",className:"sd-phmax-breakdown__head-num",children:"PHmax / třídu"}),e.jsx("th",{scope:"col",className:"sd-phmax-breakdown__head-num",children:"PHmax řádku"}),e.jsx("th",{scope:"col",children:"Stav"})]})}),e.jsx("tbody",{children:y.map((s,v)=>{const j=d.find(H=>H.id===s.rowId),C=(j==null?void 0:j.educationField.trim())??"";if(s.skipped)return e.jsxs("tr",{children:[e.jsx("td",{children:v+1}),e.jsx("td",{children:s.label||"–"}),e.jsx("td",{colSpan:5,className:"muted-text",children:"(nezadáno pro výpočet)"}),e.jsx("td",{className:"muted-text",children:"–"})]},s.rowId);if("error"in s)return e.jsxs("tr",{children:[e.jsx("td",{children:v+1}),e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:C}),e.jsx("td",{className:"muted-text",children:"–"}),e.jsx("td",{className:"muted-text",children:"–"}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:"–"}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:"–"}),e.jsx("td",{style:{color:"var(--danger, #b91c1c)",fontSize:"0.88rem"},children:s.error})]},s.rowId);const c=s.resolved;return e.jsxs("tr",{children:[e.jsx("td",{children:v+1}),e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:c.code}),e.jsx("td",{className:"muted-text",children:c.modeKey}),e.jsx("td",{children:c.intervalLabel}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:c.adjustedPhmaxPerClass}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:c.totalPhmax}),e.jsx("td",{className:"muted-text",children:"OK"})]},s.rowId)})}),w.length>0?e.jsx("tfoot",{children:e.jsxs("tr",{className:"sd-phmax-breakdown__total",children:[e.jsx("th",{scope:"row",colSpan:6,children:"Součet PHmax (platné řá
8dky)"}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:g}),e.jsx("td",{})]})}):null]})})]}),i&&k?e.jsxs("details",{className:"card muted ss-explain-school-wrap",style:{marginTop:14,padding:"12px 14px",textAlign:"left"},children:[e.jsxs("summary",{className:"ss-why-panel__title",style:{cursor:"pointer",listStyle:"none"},children:[e.jsx("strong",{children:"Celkový výklad PHmax"})," – součet platných řádků (explainability)"]}),e.jsxs("p",{className:"muted-text",style:{marginTop:8,fontSize:"0.82rem",lineHeight:1.5},children:["Do souhrnu jsou sloučeny výsledky z tabulky „Kontrola pravidel“ pro každý platný řádek PHmax (prefix"," ",e.jsx("code",{className:"methodology-strip__code",children:"[označení řádku]"})," u zpráv). Řádky bez vyplněného oboru pro kontrolu se do pravidel nezapočítávají. Engine:"," ",e.jsx("code",{className:"methodology-strip__code",children:"phmax-ss-explainability"}),"."]}),e.jsx(So,{result:k})]}):null,i?e.jsxs("div",{style:{marginTop:28},children:[e.jsx("h3",{style:{marginTop:0,marginBottom:10,fontSize:"1.05rem",fontWeight:700},children:n.brulesHeading}),e.jsx("p",{className:"muted-text",style:{marginBottom:12,lineHeight:1.5},children:n.brulesHint}),e.jsx("p",{className:"muted-text",style:{marginTop:-4,marginBottom:12,lineHeight:1.5},children:"Ručně vždy ověřte, že kombinace oborů odpovídá skutečné organizaci výuky školy a pravidlům dělení odborné/všeobecné složky dle metodiky; výpis níže je technická kontrola vstupů, nikoli právní výklad."}),e.jsx(le,{className:"app-table-wrap",role:"region","aria-label":n.brulesHeading,children:e.jsxs("table",{className:"app-data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Označení"}),e.jsx("th",{scope:"col",children:"Obory ve třídě"}),e.jsx("th",{scope:"col",children:"Povoleno"}),e.jsx("th",{scope:"col",children:"Návrh výpočtu / režim"}),e.jsx("th",{scope:"col",children:"Zprávy"})]})}),e.jsx("tbody",{children:P.map(s=>{const v=()=>p($=>$===s.rowId?null:s.rowId);if(s.skipped)return e.jsxs("tr",{children:[e.jsx("td",{children:s.label||"–"}),e.jsx("td",{colSpan:3,className:"muted-text",children:"(zadáním kódu oboru v řádku výše)"}),e.jsx("td",{className:"muted-text",children:"–"})]},s.rowId);if("error"in s){const $=r===s.rowId;return e.jsxs(de.Fragment,{children:[e.jsxs("tr",{children:[e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:s.codesStr}),e.jsx("td",{children:"–"}),e.jsx("td",{children:"–"}),e.jsxs("td",{children:[e.jsx("span",{style:{color:"var(--danger, #b91c1c)"},children:s.error}),e.jsx("button",{type:"button",className:"btn ghost ss-why-btn",onClick:v,"aria-expanded":$,"aria-controls":`ss-why-brules-${s.rowId}`,children:"Proč?"})]})]}),$?e.jsx("tr",{className:"ss-why-row",children:e.jsx("td",{colSpan:5,id:`ss-why-brules-${s.rowId}`,children:e.jsx(No,{error:s.error})})}):null]},s.rowId)}const j=s.result,C=[j.suggestedComputation??"–",j.recommendedMode??"–"].join(" · "),c=Ce(j.errors),H=Ce(j.warnings),M=Ce(j.info),S=r===s.rowId;return e.jsxs(de.Fragment,{children:[e.jsxs("tr",{children:[e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:s.codesStr}),e.jsx("td",{children:j.allowed?"Ano":"Ne"}),e.jsx("td",{className:"muted-text",children:C}),e.jsxs("td",{style:{lineHeight:1.45,fontSize:"0.92rem"},children:[c?e.jsx("div",{style:{color:"var(--danger, #b91c1c)",marginBottom:4},children:c}):null,H?e.jsx("div",{style:{color:"var(--warning, #b45309)",marginBottom:4},children:H}):null,M?e.jsx("div",{className:"muted-text",children:M}):null,!c&&!H&&!M?e.jsx("span",{className:"muted-text",children:"–"}):null,e.jsx("button",{type:"button",className:"btn ghost ss-why-btn",onClick:v,"aria-expanded":S,"aria-controls":`ss-why-brules-${s.rowId}`,children:"Proč?"})]})]}),S?e.jsx("tr",{className:"ss-why-row",children:e.jsx("td",{colSpan:5,id:`ss-why-brules-${s.rowId}`,children:e.jsx(fo,{result:j})})}):null]},s.rowId)})})]})})]}):e.jsxs(so,{summary:n.brulesHeading,count:P.length,defaultOpen:!1,level:"advanced",children:[e.jsx("p",{className:"muted-text",style:{marginBottom:12,lineHeight:1.5},children:n.brulesHint}),e.jsx(le,{className:"app-table-wrap",role:"region","aria-label":n.brulesHeading,children:e.jsxs("table",{className:"app-data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Označení"}),e.jsx("th",{scope:"col",children:"Obory"}),e.jsx("th",{scope:"col",children:"Povoleno"}),e.jsx("th",{scope:"col",children:"Zprávy"})]})}),e.jsx("tbody",{children:P.map(s=>{if(s.skipped)return e.jsx("tr",{children:e.jsxs("td",{colSpan:4,className:"muted-text",children:[s.label||"–"," – doplnit kód oboru"]})},s.rowId);if("error"in s)return e.jsxs("tr",{children:[e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:s.codesStr}),e.jsx("td",{children:"–"}),e.jsx("td",{style:{color:"var(--danger, #b91c1c)"},children:s.error})]},s.rowId);const v=s.result,j=[...v.errors,...v.warnings].map(C=>C.message).join(" · ")||"OK";return e.jsxs("tr",{children:[e.jsx("td",{children:s.label||"–"}),e.jsx("td",{children:s.codesStr}),e.jsx("td",{children:v.allowed?"Ano":"Ne"}),e.jsx("td",{children:j})]},s.rowId)})})]})})]})]})}function Io({onDashboardMetrics:t,hideBackupSubcard:o}){const i=ss(t);return e.jsx(ts,{model:i,hideBackupSubcard:o})}function Ro({model:t,hideBackupSubcard:o,showExpertPanels:i=!0,onDashboardMetrics:n}){return t?e.jsx(ts,{model:t,hideBackupSubcard:o,showExpertPanels:i}):e.jsx(Io,{onDashboardMetrics:n,hideBackupSubcard:o})}const Mo=[{term:"PHmax (střední vzdělávání)",description:e.jsxs(e.Fragment,{children:[e.jsxs("p",{style:{margin:"0 0 8px"},children:[e.jsx("strong",{children:"PHmax"})," je podle ",e.jsx("strong",{children:"NV č. 123/2018 Sb."})," maximální týdenní rozsah přímé pedagogické činnosti hrazený ze státního rozpočtu. Stanovuje se vždy pro konkrétní ",e.jsx("strong",{children:"obor"}),","," ",e.jsx("strong",{children:"formu vzdělávání"})," a ",e.jsx("strong",{children:"typ třídy"}),"."]}),e.jsx("p",{style:{margin:"0 0 6px"},children:e.jsx("strong",{children:"V metodice se vychází zejména z:"})}),e.jsxs("ul",{style:{margin:"0 0 8px",paddingLeft:"1.25rem"},children:[e.jsx("li",{children:"tabulek PHmax v příloze NV č. 123/2018 Sb. (pásma podle průměrného počtu žáků),"}),e.jsx("li",{children:"pravidel pro dělení odborné výuky a skupiny dle navazujících předpisů,"}),e.jsx("li",{children:"rozlišení jednoobor / víceobor / § 16 odst. 9 / přechodné režimy dle metodiky MŠMT."})]}),e.jsxs("p",{style:{margin:0},children:["V aplikaci je výpočet ",e.jsx("strong",{children:"orientační"}),"; při oficiálním vykazování je nutné ověřit výsledek vůči aktuální metodice MŠMT a výkazům školy."]})]})},{term:"Typ třídy (SŠ)",description:e.jsxs(e.Fragment,{children:["Pro potřeby metodiky se pod pojmem ",e.jsx("strong",{children:"typ třídy"})," rozumí členění na třídy jednooborové, dvouoborové, tříoborové, více než tříoborové u oborů vzdělání ",e.jsx("strong",{children:"skupiny 82"})," a třídy zřízené podle"," ",e.jsx("strong",{children:"§ 16 odst. 9 školského zákona"}),". PHmax se stanovuje samostatně pro každý obor středního vzdělání, ",e.jsx("strong",{children:"formu vzdělávání"})," a ",e.jsx("strong",{children:"typ třídy"}),"."]})},{term:"Víceoborová třída a součet PHmax",description:e.jsxs(e.Fragment,{children:["Ve víceoborové třídě je v PHmax obsažen ",e.jsx("strong",{children:"poměrný"})," počet hodin všeobecně vzdělávací složky a"," ",e.jsx("strong",{children:"plný"})," počet hodin odborné složky vzdělávání. Při součtu PHmax ve víceoborové třídě získáte plný počet hodin pro výuku všeobecné i odborné složky – odpovídá tomu, že všeobecně vzdělávací předměty jsou vyučovány společně a předměty odborné složky se dělí do skupin podle oborů."]}
8)},{term:"Organizace víceoborových tříd (vyhl. č. 13/2005 Sb.)",description:e.jsxs(e.Fragment,{children:[e.jsxs("p",{style:{margin:"0 0 8px"},children:["Pravidla jsou v ",e.jsx("strong",{children:"vyhlášce č. 13/2005 Sb."})," o středním vzdělávání a vzdělávání v konzervatoři, ve znění novel (mj. ",e.jsx("strong",{children:"vyhláška č. 145/2018 Sb."}),"). Za víceoborovou třídu se považuje třída, kde se vzdělávají žáci ",e.jsx("strong",{children:"více oborů společně"}),"; všeobecně vzdělávací předměty společně, u odborných se žáci dělí do skupin podle oboru."]}),e.jsxs("p",{style:{margin:"0 0 6px"},children:[e.jsx("strong",{children:"Běžné podmínky zřízení"})," (shrnutí pro orientaci v aplikaci – neúplná náhrada textu vyhlášky):"]}),e.jsxs("ul",{style:{margin:"0 0 8px",paddingLeft:"1.25rem"},children:[e.jsxs("li",{children:["typicky alespoň u jednoho oboru je počet žáků ",e.jsx("strong",{children:"nižší než 17"})," a celkový počet žáků ve třídě nepřekročí povolený počet žáků (horní limit kapacity třídy aplikace zvlášť neověřuje);"]}),e.jsxs("li",{children:["obory mají stejnou ",e.jsx("strong",{children:"kategorii"})," dosaženého vzdělání, stejnou ",e.jsx("strong",{children:"formu"})," a"," ",e.jsx("strong",{children:"délku"})," vzdělávání a stejný ",e.jsx("strong",{children:"ročník"}),";"]}),e.jsxs("li",{children:["nejvýše ",e.jsx("strong",{children:"tři obory"})," kategorie ",e.jsx("strong",{children:"E"})," nebo ",e.jsx("strong",{children:"H"}),", případně nejvýše"," ",e.jsx("strong",{children:"dva obory"})," kategorie ",e.jsx("strong",{children:"L"})," nebo ",e.jsx("strong",{children:"M"}),";"]}),e.jsxs("li",{children:["u kategorie ",e.jsx("strong",{children:"K"})," víceoborovou třídu nelze obecně zřizovat; výjimka je kombinace"," ",e.jsx("strong",{children:"gymnázium + gymnázium se sportovní přípravou"}),";"]}),e.jsxs("li",{children:["lze ji zřídit i tehdy, je-li v jednom oboru více než 17 žáků a v druhém méně než 17, pokud škola"," ",e.jsx("strong",{children:"nemá dva obory"})," s méně než 17 žáky (zvláštní režim – v kontrole pravidel jako upozornění)."]})]}),e.jsxs("p",{style:{margin:"0 0 8px"},children:["Obory s ",e.jsx("strong",{children:"talentovou zkouškou"})," v přijímacím řízení dle RVP mohou tvořit víceoborovou třídu jen mezi sebou; počet oborů pak není omezen. Směs oborů s talentovou zkouškou a bez ní se řídí ustanoveními vyhlášky č. 13/2005 Sb."]}),e.jsxs("p",{style:{margin:"0 0 8px"},children:[e.jsx("strong",{children:"Přechodné ustanovení:"})," pravidla se nevztahují na třídy zřízené nejpozději ve školním roce"," ",e.jsx("strong",{children:"2017/2018"}),"; v nich se počet oborů nesmí zvýšit (v aplikaci příznak „přechodná víceoborová třída“)."]}),e.jsxs("p",{style:{margin:0},children:["Podle ",e.jsx("strong",{children:"vyhlášky č. 248/2019 Sb."})," (mj. novela vyhl. č. 27/2016 Sb.) ve třídě podle"," ",e.jsx("strong",{children:"§ 16 odst. 9 školského zákona"})," mohou být žáci více oborů ",e.jsx("strong",{children:"stejné kategorie"})," dle nařízení o soustavě oborů; ",e.jsx("strong",{children:"pravidla víceoborových tříd z vyhl. č. 13/2005 Sb. se neuplatní"})," – v aplikaci režim „třída § 16/9“ u kontroly pravidel."]})]})},{term:"Víceletá gymnázia a konzervatoř (PHmax)",description:e.jsxs(e.Fragment,{children:["U oborů víceletých gymnázií a víceletých gymnázií se sportovní přípravou se PHmax"," ",e.jsx("strong",{children:"vždy stanovuje samostatně pro nižší a vyšší stupeň"}),". Výjimku tvoří obory"," ",e.jsx("strong",{children:"79-43-K/61"})," (Dvojjazyčné gymnázium) a ",e.jsx("strong",{children:"79-41-K/610"})," (Gymnázium – vybrané předměty v cizím jazyce), u kterých se tento postup neuplatňuje."]})},{term:"Individuální vzdělávací plán (PHmax SŠ)",description:e.jsxs(e.Fragment,{children:["PHmax pro žáky středních škol a konzervatoří vzdělávaných podle ",e.jsx("strong",{children:"individuálního vzdělávacího plánu"})," ","se samostatně nestanovuje – žáci se započítávají do celkových počtů žáků podle oborů vzdělání a ročníků."]})},{term:"PHAmax (střední vzdělávání)",description:e.jsxs(e.Fragment,{children:[e.jsxs("p",{style:{margin:"0 0 8px"},children:["PHAmax je maximální ",e.jsx("strong",{children:"týdenní"})," počet hodin přímé pedagogické činnosti"," ",e.jsx("strong",{children:"asistenta pedagoga"}),". V metodice SŠ se řeší samostatně od PHmax."]}),e.jsxs("p",{style:{margin:"0 0 8px"},children:["V této verzi aplikace je PHAmax dopočítán pro obory ",e.jsx("strong",{children:"Praktická škola jednoletá (78-62-C/01)"})," a"," ",e.jsx("strong",{children:"Praktická škola dvouletá (78-62-C/02)"})," v denní formě podle tabulky metodiky (pásma podle průměrného počtu žáků ve třídě)."]}),e.jsxs("p",{style:{margin:0},children:[e.jsx("strong",{children:"Důležité:"})," PHmax a PHAmax jsou oddělené rámce; přebytky mezi nimi nelze převádět. Pro další scénáře mimo PrŠ použijte plný metodický postup MŠMT."]})]})}
8,{term:"Dílčí jednotka výpočtu",description:e.jsxs(e.Fragment,{children:[e.jsx("p",{style:{margin:"0 0 8px"},children:"Dílčí jednotka je jeden řádek evidence (třída/skupina) pro konkrétní kombinaci:"}),e.jsxs("ul",{style:{margin:"0 0 8px",paddingLeft:"1.25rem"},children:[e.jsx("li",{children:"kód oboru,"}),e.jsx("li",{children:"forma vzdělávání,"}),e.jsx("li",{children:"typ třídy (jednoobor / víceobor / § 16 odst. 9),"}),e.jsx("li",{children:"průměrný počet žáků a počet tříd."})]}),e.jsx("p",{style:{margin:0},children:"Z těchto vstupů aplikace počítá orientační PHmax a provádí kontrolu pravidel pro víceoborové třídy."})]})},{term:"§ 4 – Stanovení PHmax (a tabulky PrŠ)",description:e.jsxs(e.Fragment,{children:["Metodika rozlišuje postupy ",e.jsx("strong",{children:"1"})," (jednoobor denně), ",e.jsx("strong",{children:"1a"})," (jednoobor jiné formy – koeficienty NV), ",e.jsx("strong",{children:"2"})," (víceobor dle vyhl. 13), ",e.jsx("strong",{children:"2a"})," (víceobor jiné formy),"," ",e.jsx("strong",{children:"3"})," (přechodné ustanovení) a ",e.jsx("strong",{children:"4"})," (§ 16 odst. 9, Praktická škola, PHAmax). Plný textový přepis a tabulky kódů ",e.jsx("strong",{children:"78-62-C/01"})," a ",e.jsx("strong",{children:"78-62-C/02"})," je v rozbalení"," ",e.jsx("strong",{children:"„Metodika § 4: Stanovení PHmax…“"})," na této stránce."]})},{term:"Rozcestník výpočtu (1–4) a průměr § 16/9",description:e.jsxs(e.Fragment,{children:["Metodika rozlišuje čtyři situace: jednooborová třída ",e.jsx("strong",{children:"(1)"}),", víceoborová dle vyhl. č. 13/2005 Sb."," ",e.jsx("strong",{children:"(2)"}),", přechodné ustanovení NV ",e.jsx("strong",{children:"(3)"}),", třída podle § 16"," ",e.jsx("strong",{children:"(4)"}),". Postup výpočtu průměrného počtu žáků podle § 16 odst. 9 (včetně kroků pro jedno-, dvou- a tříoborové třídy a pro třídy § 16/9) je shrnut v rozbalení"," ",e.jsx("strong",{children:"„Metodika: rozcestník a průměr žáků (§ 16 odst. 9)“"})," na této stránce – pro kontrolu znění vůči oficiálnímu dokumentu MŠMT."]})}],De="phmax-ss-view-mode";function Oo(t,o){if(o.setSelected(t),!!t)try{const i=ko(t);o.applySnapshot({rows:i.rows}),o.setNotice("Načten ukázkový příklad SŠ (orientační model).")}catch{o.setNotice("Ukázkový příklad SŠ se nepodařilo načíst.")}}function ta({productView:t,setProductView:o}){const i=Ft,n=xe,d=Qt,[m,b]=u.useState({rowCount:1,phmaxTotal:0,phamaxTotal:null}),r=ss(b),[p,y]=u.useState(""),P=p&&p in L?L[p]:null,w=u.useMemo(()=>[{label:"Jednoobor a agregát",options:U(mo,L)},{label:"Maturitní obory (denní)",options:U(uo,L)},{label:"Obory z praxe (přijímací řízení / výkaz)",options:U(xo,L)},{label:"Gymnázium",options:U(po,L)},{label:"Víceoborová třída",options:U(ho,L)},{label:"Forma studia a režim",options:U(jo,L)},{label:"Skupina 82 / talent",options:U(vo,L)},{label:"Zvláštní typ školy (PrŠ, § 16/9)",options:U(bo,L)}],[]),[g,k]=u.useState(!1),{guideOpen:N,dismissGuide:z,toggleGuide:E,helpButtonRef:A}=st(Cs,{scrollAnchorId:"ss-quick-onboarding"}),[T,h]=tt(),[R,W]=ot(),V=u.useRef(null),[f,F]=u.useState(()=>{try{return localStorage.getItem(De)==="expert"?"expert":"basic"}catch{return"basic"}}),B=u.useRef(null),[D,s]=u.useState(()=>{try{return localStorage.getItem(Ee)??""}catch{return""}});u.useEffect(()=>{try{localStorage.setItem(Ee,D)}catch{}},[D]),u.useEffect(()=>{try{localStorage.setItem(De,f)}catch{}},[f]);const v=m.phmaxTotal.toLocaleString("cs-CZ",{minimumFractionDigits:0,maximumFractionDigits:2}),j=m.phamaxTotal==null?"–":m.phamaxTotal.toLocaleString("cs-CZ",{minimumFractionDigits:0,maximumFractionDigits:2}),C=Yt(r.rows),c=(()=>{const a=r.preview.filter(_=>!_.skipped&&"error"in _).length,l=r.preview.filter(_=>_.skipped).length;if(a>0)return{tone:"danger",label:"Překročení pravidel vstupu",detail:`${a} řádků obsahuje neplatnou kombinaci nebo hodnotu. Opravte je podle hlášek v tabulce evidence.`};if(l>0)return{tone:"warning",label:"Na hraně: chybí povinné údaje",detail:`U ${l} řádků zatím chybí podklady pro výpočet (typicky kód oboru, průměr žáků nebo počet tříd).`};const x=C;return x>0?{tone:"warning",label:"§ 16/9 – výpočet pásem metodiky",detail
8:`${x} řádků je označeno jako třída podle § 16 odst. 9. PHmax používá mapování pásem NV; u složitějších tříd (více oborů) ověřte průměr žáků a kontrolu pravidel.`}:{tone:"ok",label:"Vstupy jsou v limitu orientačního modelu",detail:"Řádky mají platný výpočet PHmax. Pokračujte uložením varianty, exportem nebo porovnáním scénářů."}})(),H=r.preview.filter(a=>!a.skipped&&"error"in a).length,M=r.preview.filter(a=>!a.skipped&&!("error"in a)).length,S=(()=>{const a=r.preview.filter(x=>!x.skipped&&"error"in x).length,l=r.preview.filter(x=>x.skipped).length;return a>0?{recommendedStep:"Opravte neplatné řádky označené chybou v evidenci jednotek.",steps:[{label:"Vyplnit povinné údaje u všech řádků",state:"done"},{label:"Opravit chybné kombinace nebo hodnoty",state:"active"},{label:"Uložit, exportovat nebo porovnat variantu",state:"todo"}]}:l>0?{recommendedStep:"Doplňte chybějící podklady u přeskočených řádků.",steps:[{label:"Vyplnit povinné údaje u všech řádků",state:"active"},{label:"Zkontrolovat validitu řádků bez chyb",state:"todo"},{label:"Uložit, exportovat nebo porovnat variantu",state:"todo"}]}:{recommendedStep:"Výpočet je připraven k uložení, exportu nebo porovnání variant.",steps:[{label:"Vyplnit povinné údaje u všech řádků",state:"done"},{label:"Zkontrolovat validitu řádků bez chyb",state:"done"},{label:"Uložit, exportovat nebo porovnat variantu",state:"active"}]}})(),$=u.useMemo(()=>{const a=r.namedSnapshots.find(_=>_.id===r.selectedNamedId);if(!a)return null;const l=r.auditProtocolInput,x=ze(a.snapshot.rows);return!l||!x?null:Je([{id:"current",label:"Aktuální stav",protocol:ie(Y,l)},{id:"named",label:a.name,protocol:ie(Y,x)}])},[r.auditProtocolInput,r.namedSnapshots,r.selectedNamedId]),je=[{id:"ss-vysledek",label:"Výsledek PHmax"},{id:"ss-vstupy",label:"Evidence jednotek"},{id:"ss-metodika",label:"Metodika (pokročilé)"}],X=c.tone!=="ok",Q=u.useMemo(()=>co(),[]),ne=r.rows.length>0,ve=u.useMemo(()=>at({verdict:c,hasData:ne,onFix:X?Q:void 0,onExport:ne?r.handleExportCsv:void 0,onOpenExamples:()=>_t(re)}),[c,ne,X,Q,r.handleExportCsv]);nt(Q);const J=f==="basic",{step:Z,goToStep:be,handleBack:ye,handleNext:ke}=lt({lsKey:Bt,steps:Ae,active:J});return rt(re),e.jsxs("div",{className:`${St(f,T,R)} app-shell--with-toc${J?` product-basic-wizard-active ss-wizard-step-${Z}`:""}${X?" app-shell--validation-hint":""}`,children:[e.jsx(ro,{heroHeaderRef:V,productView:t,setProductView:o,viewMode:f,setViewMode:F,displayDensity:T,setDisplayDensity:h,focusMode:R,setFocusMode:W,glossaryTriggerRef:B,glossaryOpen:g,setGlossaryOpen:k,guideOpen:N,toggleGuide:E,helpButtonRef:A,phmaxHeroValue:v,phamaxHeroValue:j,rowCount:m.rowCount,verdictLabel:c.label,verdictTone:c.tone,toolbar:{selectedExample:p,exampleGroups:w,exampleLegend:yo,selectedExampleMetaTitle:(P==null?void 0:P.title)??null,onExampleChange:a=>Oo(a,{setSelected:y,applySnapshot:r.applySsRowsSnapshot,setNotice:r.setUiNotice}),maxNamedSnapshots:oe,addRowLabel:n.addRow,removeLastRowLabel:n.removeLastRowHeroLabel,removeLastRowTitle:n.removeLastRowHeroTitle,onSaveSnapshot:r.saveSnapshotManually,onAddRow:r.addRow,onRemoveLastRow:r.removeLastRow,onExportCsv:r.handleExportCsv,onExportXlsx:r.handleExportXlsx,xlsxExportBusy:r.xlsxExportBusy,onPrintSummary:r.printSummaryWindow,onRestoreSnapshot:r.restoreSnapshot,exportLabel:r.exportLabel,setExportLabel:r.setExportLabel,namedSaveName:r.namedSaveName,setNamedSaveName:r.setNamedSaveName,namedSnapshots:r.namedSnapshots,selectedNamedId:r.selectedNamedId,setSelectedNamedId:r.setSelectedNamedId,onSaveNamedSnapshot:r.saveNamedSsSnapshot,onRestoreNamedSnapshot:r.restoreNamedSsSnapshot,onDeleteNamedSnapshot:r.deleteNamedSsSnapshot,onCompareWithNamedSnapshot:r.handleCompareSsWithNamedSnapshot,onExportAuditJson:r.handleExportSsAuditJson,comparePreview:$,onCopySummary:r.copySummaryToClipboard,onClearStored:r.clearStoredSnapshot,onResetAll:r.resetAll}}),e.jsx(Et,{open:g,onClose:()=>k(!1),terms:Mo,triggerRef:B,scopeHint:"SŠ – pojmy podle metodiky stanovení PHmax a PHAmax pro střední vzdělávání (kontrola znění oproti oficiálnímu dokumentu)."}),e.jsx(io,{open:N,onDismiss:z,returnFocusRef:A}),J?e.jsx(it,{productLabel:"SŠ",steps:Ae,step:Z,heroExampleSelectId:re,onStartEmptyForm:r.resetAll,onStepChange:be,onBack:ye,onNext:ke}):null,f==="expert"?e.jsxs("section",{className:"card section-card section-card--ss","data-section":"ss-metodika","aria-labelledby":"ss-framework-heading",style:{marginTop:24,marginBottom:24},children:[e.jsx("h2",{id:"ss-framework-heading",className:"section-title",children:i.heading}),e.jsx("p",{className:"muted-text ss-framework-compact-note",children:"Rychlý souhrn: evidujte řádky po oboru/formě/typu třídy; PHmax a PHAmax jsou oddělené rámce."}),e.jsxs("details",{className:"ss-framework-details",children:[e.jsx("summary",{className:"ss-framework-details__summary",children:"Rozbalit metodický kontext a omezení v aplikaci"}),e.jsx("p",{className:"muted-text",style:{marginTop:10,lineHeight:1.55},children:i.lead}),e.jsxs("p",{className:"muted-text",style:{marginTop:10,lineHeight:1.55},children:[e.jsx("strong",{children:"V aplikaci:"})," ",i.implementationNote]})]}),e.jsxs("details",{className:"ss-framework-details",children:[e.jsx("summary",{className:"ss-framework-details__summary",children:"Rozbalit vstupy / výstupy podle metodiky"}),e.jsxs("div",{className:"grid two",style:{marginTop:14,gap:"18px 24px",alignItems:"start"},children:[e.jsxs("div",{children:[e.jsx("h3",{style:{marginTop:0,marginBottom:8,fontSize:"1.05rem",fontWeight:700},children:"Vstupy (uživatel / škola)"}),e.jsx("ul",{className:"muted-text",style:{margin:0,paddingLeft:"1.25rem",lineHeight:1.55},children:i.inputs.map(a=>e.jsx("li",{style:{marginBottom:6},children:a},a))})]}),e.jsxs("div",{children:[e.jsx("h3",{style:{marginTop:0,marginBottom:8,fontSize:"1.05rem",fontWeight:700},children:"Výstupy (dopočítá aplikace)"}),e.jsx("ul",{className:"muted-text",style:{margin:0,paddingLeft:"1.25rem",lineHeight:1.55},children:i.outputs.map(a=>e.jsx("li",{style:{marginBottom:6},children:a},a))})]})]})]}),e.jsxs("label",{className:"field",style:{marginTop:16,marginBottom:0},children:[e.jsx("span",{className:"field__label",children:i.phase1NotesFieldLabel}),e.jsx("textarea",{rows:4,value:D,onChange:a=>s(a.target.value),placeholder:"Krátké poznámky k škole, oborům nebo postupu…","aria-describedby":"ss-framework-phase1-notes-hint"}),e.jsx("span",{id:"ss-framework-phase1-notes-hint",className:"muted-text",style:{fontSize:"0.85rem",marginTop:6},children:i.phase1NotesFieldHint})]}),e.jsxs("p",{className:"muted-text ss-framework-compact-note",children:["Přímý odkaz: ",e.jsx("code",{className:"methodology-strip__code",children:"?view=ss"})," • právní rámec viz níže („Verze metodik a předpisy“):"," ",e.jsx("a",{href:"https://www.zakonyprolidi.cz/cs/2018-123",target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"NV č. 123/2018 Sb."})," ","+"," ",e.jsx("a",{href:"https://www.zakonyprolidi.cz/cs/2005-75",target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"NV č. 75/2005 Sb."}),"."]})]}):null,f==="expert"?e.jsxs("details",{className:"subcard section-card",style:{marginBottom:24},children:[e.jsx("summary",{className:"section-title",style:{cursor:"pointer",fontSize:"1.02rem"},children:"Metodika: rozcestník a průměr žáků (§ 16 odst. 9)"}),e.jsxs("div",{children:[e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:Se.title}),e.jsx("p",{className:"muted-text",style:{margin:"0 0 12px",lineHeight:1.55},children:Se.lead}),Se.branches.map((a,l)=>e.jsxs("div",{style:{marginBottom:14},children:[e.jsx("p",{className:"muted-text",style:{margin:"0 0 6px",lineHeight:1.5},children:e.jsx("strong",{children:a.question})}),e.jsxs("ul",{className:"muted-text",style:{margin:0,paddingLeft:"1.25rem",lineHeight:1.55},children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Ano:"})," ",a.yesOutcome," ",e.jsxs("span",{className:"methodology-strip__code",title:"Označení ve schématu metodiky",children:["(",a.codeYes,")"]})]}),"noContinue"in a?e.jsxs("li",{children:[e.jsx("strong",{children:"Ne:"})," ",a.noContinue]}):e.jsxs("li",{children:[e.jsx("strong",{children:"Ne:"})," ",a.noOutcome," ",e.jsxs("span",{className:"methodology-strip__code",title:"Označení ve schématu metodiky",children:["(",a.codeNo,")"]})]})]})]},l)),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"18px 0 8px"},children:K.title}),e.jsx("p",{className:"muted-text",style:{margin:"0 0 10px",lineHeight:1.55},children:K.intro}),e.jsx("ol",{className:"muted-text",style:{margin:"0 0 14px",paddingLeft:"1.25rem",lineHeight:1.55},children:K.steps.map((a,l)=>e.jsxs("li",{style:{marginBottom:6},children:[e.jsxs("strong",{children:[l+1,")"]})," ",a]},l))}),e.jsx("p",{className:"muted-text",style:{margin:"0 0 6px",fontWeight:600},children:K.exampleTitle}),e.jsx("p",{className:"muted-text",style:{margin:"0 0 8px",fontSize:"0.9rem"},children:K.exampleObor}),e.jsxs("table",{className:"sd-phmax-breakdown",style:{maxWidth:420,fontSize:"0.88rem"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Třída"}),e.jsx("th",{scope:"col",className:"sd-phmax-breakdown__head-num",children:"Žáci"})]})}),e.jsx("tbody",{children:K.exampleRows.map(a=>e.jsxs("tr",{children:[e.jsx("th",{scope:"row",children:a.className}),e.jsx("td",{className:"sd-phmax-breakdown__num",children:a.pupils})]},a.className))})]}),e.jsx("p",{className:"muted-text",style:{margin:"10px 0 6px",lineHeight:1.55,fontSize:"0.86rem"},children:K.exampleNote}),e.jsx("p",{className:"muted-text",style:{margin:0,lineHeight:1.55,fontSize:"0.86rem"},children:K.exampleConclusion}),e.jsxs("p",{className:"muted-text",style:{marginTop:14,fontSize:"0.82rem",lineHeight:1.5},children:["Grafické schéma z metodiky můžete držet vedle tohoto textu; v repozitáři zůstává tato textová podoba kvůli údržbě a diffům. Pokud budete chtít vložit i PNG/PDF přímo do aplikace, lze doplnit do"," ",e.jsx("code",{className:"methodology-strip__code",children:"public/"})," a odkázat z tohoto bloku."]})]})]}):null,f==="expert"?e.jsxs("details",{className:"subcard section-card",style:{marginBottom:24},children:[e.jsx("summary",{className:"section-title",style:{cursor:"pointer",fontSize:"1.02rem"},children:"Metodika § 4: Stanovení PHmax (1, 1a, 2, 2a, 3, 4) a tabulky PrŠ / PHAmax"}),e.jsxs("div",{className:"muted-text",style:{marginTop:14,lineHeight:1.55},children:[e.jsx("p",{style:{margin:"0 0 14px"},children:d.lead}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.jednooborDaily.title}),d.jednooborDaily.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("ol",{style:{margin:"0 0 16px",paddingLeft:"1.25rem"},children:d.jednooborDaily.flowSummary.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.jednooborOtherForms.title}),d.jednooborOtherForms.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("p",{style:{margin:"0 0 6px",fontWeight:600}
8,children:"Koeficienty (NV č. 123/2018 Sb., § 2)"}),e.jsx("ul",{style:{margin:"0 0 16px",paddingLeft:"1.25rem"},children:qt.map(a=>e.jsxs("li",{style:{marginBottom:4},children:[a.label,": ",e.jsx("strong",{children:a.value})," násobek hodnoty PHmax"]},a.label))}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.multiDaily.title}),d.multiDaily.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("ol",{style:{margin:"0 0 16px",paddingLeft:"1.25rem"},children:d.multiDaily.flowSummary.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.multiOtherForms.title}),d.multiOtherForms.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("p",{style:{margin:"0 0 16px",fontSize:"0.9rem"},children:"Koeficienty jsou shodné s bodem 1a (viz výše)."}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.transitional.title}),d.transitional.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("ol",{style:{margin:"0 0 16px",paddingLeft:"1.25rem"},children:d.transitional.flowSummary.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("h3",{className:"section-title",style:{fontSize:"0.98rem",margin:"0 0 8px"},children:d.par16AndPractical.title}),d.par16AndPractical.paragraphs.map(a=>e.jsx("p",{style:{margin:"0 0 8px"},children:a},a)),e.jsx("p",{style:{margin:"0 0 6px",fontWeight:600},children:"Schéma § 16 odst. 9 (shrnutí kroků)"}),e.jsx("ol",{style:{margin:"0 0 12px",paddingLeft:"1.25rem"},children:d.par16AndPractical.par16FlowSummary.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("p",{style:{margin:"0 0 6px",fontWeight:600},children:"PHmax Praktická škola – postup a–e"}),e.jsx("ol",{style:{margin:"0 0 12px",paddingLeft:"1.25rem"},children:d.par16AndPractical.practicalPhmaxSteps.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("p",{style:{margin:"12px 0 8px",fontSize:"0.9rem",fontWeight:600},children:me.caption}),e.jsx("div",{className:"sd-phmax-breakdown-scroll sd-phmax-breakdown-scroll--compact",style:{marginBottom:16},children:e.jsxs("table",{className:"sd-phmax-breakdown",style:{fontSize:"0.86rem"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Kód"}),e.jsx("th",{scope:"col",children:"Obor"}),me.colBands.map(a=>e.jsx("th",{scope:"col",className:"sd-phmax-breakdown__head-num",title:a,children:a},a))]})}),e.jsx("tbody",{children:me.rows.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"methodology-strip__code",children:a.code})}),e.jsx("td",{children:a.name}),a.values.map((l,x)=>e.jsx("td",{className:"sd-phmax-breakdown__num",children:l},x))]},a.code))})]})}),e.jsx("p",{style:{margin:"0 0 16px",fontSize:"0.82rem"},children:me.footnote7}),e.jsx("p",{style:{margin:"0 0 6px",fontWeight:600},children:"PHAmax Praktická škola – postup a–e"}),e.jsx("ol",{style:{margin:"0 0 12px",paddingLeft:"1.25rem"},children:d.par16AndPractical.practicalPhamaxSteps.map((a,l)=>e.jsx("li",{style:{marginBottom:4},children:a},l))}),e.jsx("p",{style:{margin:"12px 0 8px",fontSize:"0.9rem",fontWeight:600},children:ue.caption}),e.jsx("div",{className:"sd-phmax-breakdown-scroll sd-phmax-breakdown-scroll--compact",style:{marginBottom:12},children:e.jsxs("table",{className:"sd-phmax-breakdown",style:{fontSize:"0.86rem"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:"Kód"}),e.jsx("th",{scope:"col",children:"Obor"}),ue.colBands.map(a=>e.jsx("th",{scope:"col",className:"sd-phmax-breakdown__head-num",title:a,children:a},a))]})}),e.jsx("tbody",{children:ue.rows.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"methodology-strip__code",children:a.code})}),e.jsx("td",{children:a.name}),a.values.map((l,x)=>e.jsx("td",{className:"sd-phmax-breakdown__num",children:l},x))]},a.code))})]})}),e.jsx("p",{style:{margin:"0 0 8px",fontSize:"0.82rem"},children:ue.footnote8}),e.jsx("p",{style:{margin:"0 0 16px",fontSize:"0.82rem"},children:d.par16AndPractical.phamaxUnder4}),e.jsx("p",{style:{margin:0,fontSize:"0.86rem"},children:d.closing})]})]}):null,e.jsxs(dt,{summary:"Proč vstupy řádku mění PHmax?",children:[e.jsxs("p",{style:{margin:"0 0 8px"},children:["Ve výpočtu SŠ použijte nad tabulkou ",e.jsx("strong",{children:"základ definic"}),"; u každého platného řádku výsledků zapněte rozbalení ",e.jsx("strong",{children:"„Proč?“"}
8)," – zobrazí se navázaný výklad pásem, koeficientu formy a součinu z"," ",e.jsx("a",{href:he,target:"_blank",rel:"noopener noreferrer",className:"status-link",children:"příloh NV č. 123/2018 Sb."}),"."]}),e.jsxs("ul",{style:{margin:0,paddingLeft:"1.25rem"},children:[e.jsxs("li",{children:["Průměr žáků a zvolený režim (jeden obor × víc oborů) určuje ",e.jsx("strong",{children:"řádek a pásmo"})," v interních tabulkách aplikace."]}),e.jsxs("li",{children:["Forma studia použije ",e.jsx("strong",{children:"koeficient dle § 2 NV č. 123/2018 Sb."})," před násobením počtem tříd."]}),e.jsx("li",{children:"U řádků s chybou zůstává technický popis problému přímo v rozbalení místo plné návaznosti pravidel."})]})]}),X?e.jsx(ct,{...mt(c,Q)}):null,J?e.jsx(ut,{moduleLabel:"SŠ",storageKey:ht,steps:pt,exampleSelectId:re}):null,e.jsx(xt,{action:ve}),e.jsx(jt,{}),e.jsx(vt,{sticky:{anchorRef:V,primaryLabel:"Součet PHmax",primaryValue:v,statusText:c.label,tone:c.tone,onSave:r.saveSnapshotManually,onExport:r.handleExportCsv},workspaceVariant:"input-heavy",workspaceDockLabel:Ns,dock:e.jsx(gt,{header:e.jsx(Le,{classCount:r.computedRows.length,phmaxTotal:m.phmaxTotal,rowCount:m.rowCount,okRows:M,conflictCount:H}),tone:c.tone,primaryLabel:"Součet PHmax",primaryValue:v,stats:[{label:"PHAmax (PrŠ)",value:j,title:"Jen PrŠ 78-62-C/01 a 78-62-C/02, denní forma"},{label:"Řádků ve formuláři",value:m.rowCount}],statusBadge:c.label,verdictLabel:c.label,verdictDetail:c.detail,workflowSteps:J?[]:S.steps,viewMode:f,footer:f==="basic"?e.jsxs(e.Fragment,{children:[C>0?e.jsx("p",{className:"workflow-dock__footnote muted-text",children:eo}):null,e.jsx(Vt,{result:$,inactive:!r.selectedNamedId,emptyHint:"Vyberte pojmenovanou zálohu v horní liště pro rychlé porovnání PHmax."})]}):null,actions:[{label:"Uložit scénář",onClick:r.saveSnapshotManually},{label:"Export CSV",onClick:r.handleExportCsv},{label:"Porovnat se zálohou",onClick:r.handleCompareSsWithNamedSnapshot}]}),main:e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"ss-human-summary--main",classCount:r.computedRows.length,phmaxTotal:m.phmaxTotal,rowCount:m.rowCount,okRows:M,conflictCount:H}),e.jsx("section",{className:`card section-card section-card--ss${kt(X)}`,"data-section":"ss-vstupy","data-wizard-step":"2",children:e.jsx(Ro,{model:r,hideBackupSubcard:!0,showExpertPanels:f==="expert"})})]}),afterWorkspace:e.jsxs(e.Fragment,{children:[e.jsx(yt,{view:"ss",setProductView:o}),f==="expert"?e.jsx(At,{}):null]}),footer:e.jsxs("footer",{className:"zs-app-footer",children:[e.jsx(bt,{productLabel:fs.ss,lastSavedAt:"",notice:"",variant:"ss",placement:"footer"}),e.jsx(Ps,{})]}),tocSections:je})]})}export{ta as PhmaxSsPage};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.