{"version":3,"sources":["images/slogans/zgrabi-prihodnost.png","images/gimptuj-dark.png","images/gimptuj-white.png","images/slogans/white/ze-imas-svoj-stil.png","images/slogans/white/vec-znas-vec-veljas.png","images/slogans/white/izbirati-izbrati.png","images/slogans/white/vzhod-zahod-sever-ali-jug.png","images/slogans/white/seife-savon-shampoo.png","images/slogans/white/zvezde.png","images/slogans/white/2-krat-s.png","images/slogans/white/umetniki-2.png","images/slogans/white/sanjati-ali-spati.png","images/slogans/white/zaspana-prva-ali-utrujena-zadnja.png","images/slogans/white/sem-na-pravi-poti.png","state.tsx","helpers/apiHelper.tsx","components/partial/LevelBox.tsx","components/NavMenu.tsx","components/Layout.tsx","components/partial/YoutubeEmbed.tsx","components/Home.tsx","components/levels/Level1.tsx","components/animated/itemlist/itemlist.tsx","components/levels/Level2.tsx","components/animated/itemgrid/itemgrid.tsx","components/levels/Level3.tsx","components/levels/Level4.tsx","components/levels/Level5.tsx","components/levels/Level6.tsx","components/levels/Level7.tsx","components/levels/Level8.tsx","components/levels/Level9.tsx","components/levels/Level10.tsx","components/levels/Level11.tsx","components/levels/Level12.tsx","components/Locked.tsx","components/partial/GuardedRoute.tsx","components/admin/login.tsx","signalr/logClient.tsx","helpers/utility.tsx","models/submittedFormData.tsx","models/liveEvent.tsx","components/admin/dashboard.tsx","App.tsx","registerServiceWorker.ts","index.tsx"],"names":["module","exports","State","login","sessionId","formSaved","currentLevel","selectedLevel","liveEvents","newLevel","this","toEncode","Math","log","localStorage","setItem","encode","toString","current_level_decoded","decode","getItem","setLevel","decoded_val","pow","E","rounded","round","abs","console","error","loadLoggedIn","loadFormSaved","loadSessionId","API","logSession","value","btoa","valueEncoded","atob","tkn","length","token","makeid","result","characters","charactersLength","i","charAt","floor","random","path","window","location","pathname","toLowerCase","startsWith","level","slogan1","slogan2","slogan3","slogan4","slogan5","slogan6","slogan7","slogan8","slogan9","slogan10","slogan11","slogan12","gimptujLogoWhite","gimptujLogoDark","headers","isLoggedIn","Authorization","page","axios","get","getHeaders","response","data","success","checkStatusForLogout","id","delete","liveEvent","post","isLive","caption","time","startTime","link","password","originLevelIndex","currentlevelIndex","status","user","undefined","elementarySchool","otherCandidateSchool","program","certainty","rating","classNumber","content","resetLogin","LevelBox","to","getRedirectForLevel","props","levelNumber","className","getClassForLevel","onClick","onLevelChanged","React","NavMenu","l","Layout","isFetching","levels","getNavbar","bind","getLevels","isOnMainPage","Container","getMainClass","children","YouTubeEmbed","width","height","src","frameBorder","allow","allowFullScreen","Home","colorClass","scrollTo","document","body","classList","add","remove","getGimptujImageWhite","getSloganForLevel","Level1","href","alt","ItemList","Item","Content","ContentRows","isOpen","setIsOpen","li","layout","initial","borderRadius","div","title","opacity","animate","exit","ul","items","map","item","key","Level2","GetSplosnaGimnazijaContent","GetUmetniskaGimnazijaLikovnaContent","GetUmetniskaGimnazijaFilmContent","GetSportniOddelekContent","GetMaturitetniTecajContent","readMore","setReadMore","ItemGrid","state","selectedId","List","Card","Store","CardClick","CardAwayClick","s","find","transition","duration","delay","style","pointerEvents","layoutId","useBackground","image","bgClass","category","setState","useBack","card","isSelected","type","Level3","listItems","getProfesorVideo","pointOfInterest","backgroundColor","getLiveEvents","then","Table","striped","bordered","hover","live","Carousel","interval","Level4","Level5","Level6","GetDSD","GetDELF","gridItems","Level7","Level8","readMore1","readMore2","readMore3","readMore4","readMore5","Level9","Level10","ky","el","Caption","Level11","Level12","uploadingForm","otherSchool","formShow","formUpload","onElementarySchoolChange","onOtherSchoolChange","onCertaintyChange","onRatingChange","onProgramChange","onClassChange","e","target","formSave","loginResult","alert","saveForm","onSubmit","preventDefault","onChange","name","confirm","Locked","GuardedRoute","render","component","Login","loggingIn","onIdChange","onPassChange","onLoaded","history","push","pass","setLogin","placeholder","loginRequest","LogClient","logCallback","formCallback","sessionCountCallback","connection","o","r","c","p","initialize","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","on","message","ip","eSchool","oSchool","count","start","catch","Utility","showSeconds","hours","getHours","minutes","getMinutes","seconds","getSeconds","now","Date","getTime","timeUTC","datestring","endsWith","localDate","getShortDateTime","date","getLocalizedDate","toLocaleDateString","day","month","d","dt","getDate","getMonth","year","getFullYear","SubmittedFormData","created","class","LiveEvent","Dashboard","logClient","formLimit","getTraffic","downloadCSV","getUniqueIPs","levelPasswordChange","masterPasswordChange","sessionCount","forms","logs","reqStats","exportingForms","levelUpdating","masterPasswordRevealed","setupLogHub","getSessionCount","n","getForms","frm","f","getLevelsDetails","getRecentLogs","x","index","getLocalizedTimeDateForm","getCountdown","refreshRequestStats","setInterval","a","getCurrentTimeDateForm","num","shift","concat","pop","unshift","slice","getRequestStats","stats","v","getShortDate","Count","reqCount","ResponsiveContainer","AreaChart","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Area","stroke","fill","reqCountUnique","exportFormsToCSV","exported","element","createElement","file","Blob","csv","URL","createObjectURL","download","appendChild","click","newPassword","trim","replace","setLevelPassword","editedCount","createOrUpdateLiveEvent","findIndex","deleteLiveEvent","splice","lv","nwl","newCaption","newTime","newLink","checked","oldval","setCountdown","Tabs","defaultActiveKey","Tab","eventKey","reverse","extraClass","updatePassword","liveEventLiveChange","liveEventTimeChange","liveEventCaptionChange","liveEventLinkChange","saveLive","deleteLive","createLive","form","getDateTime","getProgram","getCertainty","getRating","App","errorTimeoutCounter","unlocking","masterPassword","canRevealMasterPassword","passwordError","hideEventPopup","levelUnlock","unlockLevelRequest","levelChanged","passwordChanged","getUnlockButton","setPasswordError","showLiveEvents","hideLiveEvents","event","levelIndex","unlockLevel","unlockedLevel","currentCount","setTimeout","forceUpdate","redirect","autoComplete","size","numLive","forEach","self","exact","Boolean","hostname","match","loadData","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"uGAAAA,EAAOC,QAAU,IAA0B,+C,0CCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,uD,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,8D,oBCA3CD,EAAOC,QAAU,IAA0B,+C,2jBCmO9BC,EAAQ,I,iDA9MVC,MAA8B,K,KAC9BC,UAAoB,G,KACpBC,UAAoB,E,KACpBC,aAAuB,E,KACvBC,cAAwB,E,KACxBC,WAA0B,G,qDAEjBC,GAEZC,KAAKJ,aAAeG,EACpB,IAAIE,EAAyC,GAA9BC,KAAKC,IAAIH,KAAKJ,cAC7BQ,aAAaC,QAAQ,MAAOL,KAAKM,OAAOL,EAASM,e,iCAKjD,IAAMC,EAAwBR,KAAKS,OAAOL,aAAaM,QAAQ,QAC/D,GAA8B,OAA1BF,EAAgCR,KAAKW,SAAS,OAC7C,CACD,IAAMC,EAAcV,KAAKW,IAAIX,KAAKY,GAAIN,EAAwB,IACxDO,EAAUb,KAAKc,MAAMJ,GACdV,KAAKe,IAAIF,EAAUH,GACrB,KACPM,QAAQC,MAAM,qDACdnB,KAAKW,SAAS,IAGdX,KAAKW,SAASI,GAGtBG,QAAQf,IAAI,sBAAwBH,KAAKJ,cAGzCI,KAAKoB,eAGLpB,KAAKqB,gBAGLrB,KAAKsB,gBACLC,EAAIC,WAAWxB,KAAKN,a,6BAGjB+B,GAKH,OADaC,KAHDD,K,6BAOTE,GACH,GAAoB,MAAhBA,EAAsB,OAAO,KAEjC,IAGI,OADUC,KAAKD,GAGnB,SACI,OAAO,Q,qCAMX,IAAME,EAAM7B,KAAKS,OAAOL,aAAaM,QAAQ,QACjC,OAARmB,GAA8B,iBAAPA,GAAmBA,EAAIC,OAAS,IACvDZ,QAAQf,IAAI,2BACZH,KAAKP,MAAQ,CACTsC,MAAOF,M,sCAKF,IAAD,EACZ7B,KAAKN,UAAL,UAAiBU,aAAaM,QAAQ,cAAtC,QAAgD,KAC3CV,KAAKN,WAAaM,KAAKN,UAAUoC,QAAU,KAE5C9B,KAAKN,UAAYM,KAAKgC,OAAO,IAC7B5B,aAAaC,QAAQ,MAAOL,KAAKN,c,6BAIlCoC,GAIH,IAHA,IAAIG,EAAS,GACTC,EAAa,iEACbC,EAAmBD,EAAWJ,OACzBM,EAAI,EAAGA,EAAIN,EAAQM,IACxBH,GAAUC,EAAWG,OAAOnC,KAAKoC,MAAMpC,KAAKqC,SAAWJ,IAE3D,OAAOF,I,sCAKK,MADA7B,aAAaM,QAAQ,QAE7BQ,QAAQf,IAAI,wBACZH,KAAKL,UAAY,GAGjBK,KAAKL,UAAY,I,iCAKrBK,KAAKL,UAAY,EACjBS,aAAaC,QAAQ,MAAO,O,mCAI5BL,KAAKP,MAAQ,KACbW,aAAaC,QAAQ,MAAO,M,+BAGhBZ,GACZO,KAAKP,MAAQA,EAGbW,aAAaC,QAAQ,MAAOL,KAAKM,OAAOb,EAAMsC,U,mCAI9C,OAAkB,MAAd/B,KAAKP,Q,qCAQT,IAAI+C,EAAOC,OAAOC,SAASC,SAASC,cAEpC,OAAIJ,EAAKK,WAAW,YAAaL,EAAKK,WAAW,gB,uCAK7BC,GACpB,OAAQA,GACJ,KAAK,EACL,KAAK,GAAI,MAAO,SAChB,KAAK,EAAG,MAAO,cACf,KAAK,EAAG,MAAO,aACf,KAAK,EAAG,MAAO,YACf,KAAK,EAAG,MAAO,SACf,KAAK,EAAG,MAAO,QACf,KAAK,EAAG,MAAO,WACf,KAAK,EAAG,MAAO,OACf,KAAK,EAAG,MAAO,WACf,KAAK,EAAG,MAAO,WACf,KAAK,GAAI,MAAO,SAChB,KAAK,GAAI,MAAO,cAChB,KAAK,GAAI,MAAO,cAChB,QAAS,MAAO,M,0CAIGA,GACvB,OAAQA,GACJ,KAAK,EAAG,MAAO,IACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,EAAG,MAAO,UACf,KAAK,GAAI,MAAO,WAChB,KAAK,GAAI,MAAO,WAChB,KAAK,GAAI,MAAO,WAChB,KAAK,GAAI,MAAO,WAChB,QAAS,MAAO,O,wCAICA,GACrB,OAAQA,GACJ,KAAK,EACL,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,EAAG,OAAOC,IACf,KAAK,GAAI,OAAOC,IAChB,KAAK,GAAI,OAAOC,IAChB,KAAK,GAAI,OAAOC,IAChB,QAAS,U,6CAKb,OAAOC,M,4CAIP,OAAOC,Q,MC8LFrC,EAAM,I,qGA/YX,IAAIsC,EAAe,CACf,OAAU,qBAQd,OALIrE,EAAMsE,eAEND,EAAQE,cAAgB,UAAYvE,EAAMC,MAAMsC,OAG7C,CACH8B,a,sKAIcG,E,+BAAe,E,kBAENC,IAAMC,IAAN,oBAAuBF,GAAQhE,KAAKmE,c,UAArDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,gCAAiCiD,EAASC,KAAKA,M,kBACtD,I,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,6BAAd,M,kBACO,I,0LAISqD,G,gGAEOP,IAAMQ,OAAN,oBAA0BD,GAAMxE,KAAKmE,c,UAAtDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,4BAA6BiD,EAASC,KAAKA,M,kBAClD,G,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MACArD,QAAQC,MAAM,yBAAd,M,kBACO,G,gSAMgB8C,IAAMC,IAAN,oBAA+BlE,KAAKmE,c,UAArDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,sCAAuCiD,EAASC,KAAKA,M,kBAC5D,I,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,mCAAd,M,kBACO,I,+LAIcqD,G,gGAEEP,IAAMQ,OAAN,4BAAkCD,GAAMxE,KAAKmE,c,UAA9DC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,kCAAmCiD,EAASC,KAAKA,M,kBACxD,G,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MACArD,QAAQC,MAAM,+BAAd,M,kBACO,G,wMAIsBqD,EAAmBE,G,gGAEzBT,IAAMU,KAAK,qBAA8B,OAAPH,EAAc,GAAd,WAAuBA,IAAO,CACnFI,OAAQF,EAAUE,OAClBC,QAASH,EAAUG,QACnBC,KAAMJ,EAAUK,UAChBC,KAAMN,EAAUM,MACjBhF,KAAKmE,c,UALFC,E,OAOmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,yCAA0CiD,EAASC,KAAKA,M,kBAC/D,G,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MACArD,QAAQC,MAAM,sCAAd,M,kBACO,G,8RAMgB8C,IAAMC,IAAI,kBAAmBlE,KAAKmE,c,UAAnDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,iCAAkCiD,EAASC,KAAKA,M,kBACvD,I,iCAECD,EAASC,KAAKA,M,iEAG1BnD,QAAQC,MAAM,8BAAd,M,kBACO,I,kSAMgB8C,IAAMC,IAAI,aAAclE,KAAKmE,c,UAA9CC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,yCAA0CiD,EAASC,KAAKA,M,kBAC/D,I,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,sCAAd,M,kBACO,I,gMAIeqD,EAAYS,G,gGAEXhB,IAAMU,KAAK,cAAgBH,EAAI,CAClDS,YACDjF,KAAKmE,c,UAFFC,E,OAImBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,sCAAuCiD,EAASC,KAAKA,M,kBAC5D,G,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,gCAAd,M,kBACO,G,8LAIU8D,EAAkBC,EAA0BC,G,gGAEtClB,IAAMU,KAAK,aAAc,CAC5CM,WACAC,mBACAC,qBACDnF,KAAKmE,c,UAJFC,E,OAMmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,6BAA8BiD,EAASC,KAAKA,M,kBACnD,M,iCAECD,EAASC,KAAKA,M,8DAGtB,KAAMD,S,oBAES,MADQ,KAAMA,SAASgB,O,2CACX,G,eAG/BlE,QAAQC,MAAM,0BAAd,M,kBACO,M,0LAIIkE,EAAcJ,G,gGAEJhB,IAAMU,KAAK,mBAAoB,CAChDU,OACAJ,YACDjF,KAAKmE,c,UAHJC,E,OAKqBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,sBAAuBiD,EAASC,KAAKA,M,kBAC5CD,EAASC,KAAKA,M,iCAEbD,EAASC,KAAKA,M,6DAG1BnD,QAAQC,MAAM,mBAAd,QAEI,MAAS,KAAMiD,UAAY,KAAMA,SAASC,M,yBACTiB,IAA7B,KAAMlB,SAASC,KAAKA,K,0CAA2B,uB,iCACvC,KAAMD,SAASC,KAAKA,M,yDAGzB,gB,2LAKGkB,EAAiCC,EACnDC,EAAwBC,EAA0BC,EAAuBC,G,gGAGhD3B,IAAMU,KAAK,YAAa,CACzCY,mBACAC,uBACAC,UACAC,YACAC,SACAC,eACD5F,KAAKmE,c,UAPJC,E,OASqBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,4BAA6BiD,EAASC,KAAKA,M,kBAClDD,EAASC,KAAKA,M,kCAEb,G,6DAGZnD,QAAQC,MAAM,yBAAd,QAEI,MAAS,KAAMiD,UAAY,KAAMA,SAASC,M,yBACTiB,IAA7B,KAAMlB,SAASC,KAAKA,K,0CAA2B,wB,iCACvC,KAAMD,SAASC,KAAKA,M,yDAGzB,gB,qMAKKG,G,gGAEOP,IAAMU,KAAK,uBAAwB,CACtDH,MACDxE,KAAKmE,c,UAFFC,E,OAImBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,4BAA6BiD,EAASC,KAAKA,M,kBAClD,G,iCAECD,EAASC,KAAKA,M,iEAG1BnD,QAAQC,MAAM,yBAAd,M,kBACO,G,kSAMgB8C,IAAMC,IAAI,4BAA6BlE,KAAKmE,c,UAA7DC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,kCAAmCiD,EAASC,KAAKA,M,kBACxD,G,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,+BAAd,M,kBACO,G,+RAMgB8C,IAAMC,IAAI,wBAAyBlE,KAAKmE,c,UAAzDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,oCAAqCiD,EAASC,KAAKA,M,kBAC1D,I,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,iCAAd,M,kBACO,I,kSAMgB8C,IAAMC,IAAI,gBAAiBlE,KAAKmE,c,UAAjDC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,4BAA6BiD,EAASC,KAAKA,M,kBAClD,M,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,yBAAd,M,kBACO,M,iSAMgB8C,IAAMC,IAAI,4BAA6BlE,KAAKmE,c,UAA7DC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,kCAAmCiD,EAASC,KAAKA,M,kBACxD,I,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,+BAAd,M,kBACO,I,8RAOgB8C,IAAMC,IAAI,yBAA0BlE,KAAKmE,c,UAA1DC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,8BAA+BiD,EAASC,KAAKA,M,kBACpD,M,iCAECD,EAASC,KAAKA,M,iEAG1BnD,QAAQC,MAAM,2BAAd,M,kBACO,M,4LAIW0E,G,gGAEK5B,IAAMU,KAAK,yBAA0B,CAAEkB,WAAW7F,KAAKmE,c,UAAxEC,E,OAEmBA,EAASC,KAAKC,Q,wBAEnCpD,QAAQC,MAAM,8BAA+BiD,EAASC,KAAKA,M,kBACpD,M,iCAECD,EAASC,KAAKA,M,iEAG1BrE,KAAKuE,qBAAL,MAEArD,QAAQC,MAAM,2BAAd,M,kBACO,M,4JAIMA,GAEbA,EAAMiD,WAEQ,KADSjD,EAAMiD,SAASgB,SAGlC5F,EAAMsG,aACNrD,OAAOC,SAASC,SAAW,e,wBCnZtBoD,E,uKACA,IAAD,OACZ,OACI,gBAAC,IAAD,CAAMC,GAAIxG,EAAMyG,oBAAoBjG,KAAKkG,MAAMC,aAAcC,UAAS,mBAAc5G,EAAM6G,iBAAiBrG,KAAKkG,MAAMC,aAAhD,8BAChE3G,EAAMK,eAAiBG,KAAKkG,MAAMC,YAAc,WAAa,GADG,YACG3G,EAAMI,aAAeI,KAAKkG,MAAMC,YAAc,SAAW,IAC9HG,QAAS,kBAAM,EAAKJ,MAAMK,eAAe,EAAKL,MAAMC,eAEpD,uBAAKC,UAAU,cAAf,SAAmCpG,KAAKkG,MAAMC,aAC9C,uBAAKC,UAAU,iBAAiBpG,KAAKkG,MAAMrB,c,GARrB2B,iBCCjBC,E,uKACA,IAAD,OACZ,OACI,8BACI,uBAAKjC,GAAG,aAAa4B,UAAU,cAC3B,uBAAKA,UAAU,kBACX,gBAAC,EAAD,CAAUD,YAAa,EAAGtB,QAAQ,OAAO0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC1F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,sBAAsB0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MACzG,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,WAAW0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC9F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,cAAS0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC5F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,aAAa0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAChG,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,OAAO0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC1F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,SAAS0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC5F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,SAAS0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC5F,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,aAAQ0B,eAAgB,SAACG,GAAD,OAAe,EAAKR,MAAMK,eAAeG,MACnG,gBAAC,EAAD,CAAUP,YAAa,EAAGtB,QAAQ,WAAW0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC9F,gBAAC,EAAD,CAAUP,YAAa,GAAItB,QAAQ,SAAS0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC7F,gBAAC,EAAD,CAAUP,YAAa,GAAItB,QAAQ,UAAU0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,MAC9F,gBAAC,EAAD,CAAUP,YAAa,GAAItB,QAAQ,OAAO0B,eAAgB,SAACG,GAAD,OAAO,EAAKR,MAAMK,eAAeG,OAG/F,uBAAKlC,GAAG,UAAU4B,UAAW5G,EAAM6G,iBAAiB7G,EAAMK,uB,GArBzC2G,iBCEhBG,E,kDAIjB,WAAYT,GAAa,IAAD,8BACpB,cAAMA,IAJVU,YAAsB,EAGE,EAFxBC,OAAsB,GAKlB,EAAKC,UAAY,EAAKA,UAAUC,KAAf,gBAHG,E,iLAQpB/G,KAAK4G,YAAa,E,SACErF,EAAIyF,Y,OAAxBhH,KAAK6G,O,OACL7G,KAAK4G,YAAa,E,wIAGT,IAAD,OACR,OAAIpH,EAAMyH,eAEF,gBAAC,EAAD,CAASV,eAAgB,SAACG,GAAD,OAAe,EAAKR,MAAMK,eAAeG,MAItE,8B,qCAKJ,OAAIlH,EAAMyH,eAAuB,GACrB,W,+BAIZ,OACI,gBAAC,WAAD,KACI,qBAAMH,UAAN,MAEA,gBAACI,EAAA,EAAD,CAAW1C,GAAG,OAAO4B,UAAWpG,KAAKmH,gBAChCnH,KAAKkG,MAAMkB,e,GAvCIZ,iBCJfa,G,8KAEb,OACI,uBAAKjB,UAAU,mBACX,uBAAKA,UAAU,mBACX,uBAAKA,UAAU,mBACX,0BAAQkB,MAAM,OAAOC,OAAO,OAAOC,IAAKxH,KAAKkG,MAAMsB,IAAKC,YAAY,IAAIC,MAAM,2FAA2FC,iBAAe,W,GANtKnB,kBCCrBoB,E,kDAIjB,WAAY1B,GAAa,IAAD,8BACpB,cAAMA,IAJV2B,gBAGwB,IAFxB/E,MAAgB,EAKZ,EAAK+E,WAAarI,EAAM6G,iBAAiB,GAHrB,E,gEAOpB5D,OAAOqF,SAAS,EAAG,GACnBC,SAASC,KAAKC,UAAUC,IAAIlI,KAAK6H,c,6CAIjCE,SAASC,KAAKC,UAAUE,OAAOnI,KAAK6H,c,+BAIpC,OACI,gCACI,uBAAKzB,UAAW,wBAAwB,uBAAKoB,IAAKhI,EAAM4I,0BACxD,uBAAKhC,UAAU,iBAAgB,uBAAKoB,IAAKhI,EAAM6I,kBAAkBrI,KAAK8C,UAEtE,uBAAKsD,UAAU,gBACX,gBAAC,EAAD,CAAcoB,IAAI,oDAElB,uBAAKpB,UAAU,qBACX,0BAAQA,UAAU,eAAeoB,IAAI,qGACjCF,MAAM,QAAQC,OAAO,QAAQE,YAAY,IAAIE,iBAAiB,W,GA9BxDnB,iBCCb8B,I,yDAIjB,WAAYpC,GAAa,IAAD,8BACpB,cAAMA,IAJV2B,gBAGwB,IAFxB/E,MAAgB,EAKZ,EAAK+E,WAAarI,EAAM6G,iBAAiB,GAHrB,E,gEAOpB5D,OAAOqF,SAAS,EAAG,GACnBC,SAASC,KAAKC,UAAUC,IAAIlI,KAAK6H,c,6CAIjCE,SAASC,KAAKC,UAAUE,OAAOnI,KAAK6H,c,+BAIpC,OACI,gCACI,uBAAKzB,UAAW,wBAAwB,uBAAKoB,IAAKhI,EAAM4I,0BACxD,uBAAKhC,UAAU,iBAAgB,uBAAKoB,IAAKhI,EAAM6I,kBAAkBrI,KAAK8C,UAEtE,uBAAKsD,UAAU,gBACX,gBAAC,EAAD,CAAcoB,IAAI,oDAElB,uBAAKpB,UAAU,qBACX,0BAAQA,UAAU,eAAeoB,IAAI,qGACjCF,MAAM,QAAQC,OAAO,QAAQE,YAAY,IAAIE,iBAAiB,KAGtE,qBAAGvB,UAAU,UAAUmC,KAAK,0CAAyC,uBAAKf,IAAI,mBAAmBgB,IAAI,mB,GAjCrFhC,kB,kBCafiC,I,yDACjB,WAAYvC,GAAa,IAAD,8BACpB,cAAMA,IAEDwC,KAAO,EAAKA,KAAK3B,KAAV,gBACZ,EAAK4B,QAAU,EAAKA,QAAQ5B,KAAb,gBACf,EAAK6B,YAAc,EAAKA,YAAY7B,KAAjB,gBALC,E,iDAQnBb,GACD,IAAML,EAA8BK,EAAML,QAD7B,EAGeW,YAAe,GAH9B,oBAGNqC,EAHM,KAGEC,EAHF,KAOb,OACI,gBAAC,KAAOC,GAAR,CAAW3C,UAAU,QAAQ4C,QAAM,EAAC1C,QAHrB,kBAAMwC,GAAWD,IAGyBI,QAAS,CAAEC,aAAc,KAC9E,gBAAC,KAAOC,IAAR,CAAYH,QAAM,EAAC5C,UAAU,kBACzB,uBAAKA,UAAW,aAAeF,EAAM2B,aACrC,uBAAKzB,UAAU,YAAYF,EAAMkD,QAGrC,gBAAC,KAAD,KAAkBP,GAAU,qBAAMF,QAAN,CAAc9C,QAASA,Q,8BAKvDK,GACJ,IAAML,EAA8BK,EAAML,QAE1C,OACI,gBAAC,KAAOsD,IAAR,CACIH,QAAM,EACNC,QAAS,CAAEI,QAAS,GACpBC,QAAS,CAAED,QAAS,GACpBE,KAAM,CAAEF,QAAS,IAEjB,qBAAMT,YAAN,CAAkB/C,QAASA,O,kCAK3BK,GACR,IAAML,EAA8BK,EAAML,QAE1C,OAAKA,GAEG,gCACI,uBAAKO,UAAU,WACf,uBAAKA,UAAU,WACf,uBAAKA,UAAU,c,+BAOd,IAAD,OACZ,OACI,gBAAC,KAAD,KACI,gBAAC,KAAOoD,GAAR,CAAWpD,UAAU,QAAQ4C,QAAM,EAACC,QAAS,CAAEC,aAAc,KACxDlJ,KAAKkG,MAAMuD,MAAMC,KAAI,SAAAC,GAAI,OACtB,gBAAC,EAAKjB,KAAN,CAAWkB,IAAKD,EAAKC,IAAKR,MAAOO,EAAKP,MAAOvD,QAAS8D,EAAK9D,QAASgC,WAAY8B,EAAK9B,sB,GA/DvErB,kBCZjBqD,G,kDAYjB,WAAY3D,GAAa,IAAD,8BACpB,cAAMA,IAZV2B,gBAWwB,IAVxB/E,MAAgB,EAUQ,EARxB2G,MAAwB,CACpB,CAAEG,IAAK,EAAG/B,WAAY,SAAUuB,MAAO,yBAAqBvD,QAAS,EAAKiE,8BAC1E,CAAEF,IAAK,EAAG/B,WAAY,SAAUuB,MAAO,+CAAsCvD,QAAS,EAAKkE,uCAC3F,CAAEH,IAAK,EAAG/B,WAAY,QAASuB,MAAO,+DAA4CvD,QAAS,EAAKmE,oCAChG,CAAEJ,IAAK,EAAG/B,WAAY,YAAauB,MAAO,uBAAmBvD,QAAS,EAAKoE,4BAC3E,CAAEL,IAAK,EAAG/B,WAAY,OAAQuB,MAAO,yBAAqBvD,QAAS,EAAKqE,+BAKxE,EAAKrC,WAAarI,EAAM6G,iBAAiB,GAFrB,E,gEAMpB5D,OAAOqF,SAAS,EAAG,GACnBC,SAASC,KAAKC,UAAUC,IAAIlI,KAAK6H,c,6CAIjCE,SAASC,KAAKC,UAAUE,OAAOnI,KAAK6H,c,iCAG5B,IAAD,EACyBrB,YAAe,GADxC,oBACA2D,EADA,KACUC,EADV,KAGP,OACI,gCACI,qBAAGhE,UAAU,eAAeE,QAAS,kBAAM8D,GAAaD,KAAYA,EAAW,UAAY,eAC1FA,GACG,0BACI,4LACA,0RACA,uKACA,oFACA,8EACA,qFACA,sEACA,mIACA,yEACA,8E,+BAQhB,OACI,gCACI,uBAAK/D,UAAW,wBAAwB,uBAAKoB,IAAKhI,EAAM4I,0BACxD,uBAAKhC,UAAU,gBAAe,uBAAKoB,IAAKhI,EAAM6I,kBAAkBrI,KAAK8C,UAErE,uBAAKsD,UAAU,gBACX,gBAAC,EAAD,CAAcoB,IAAI,oDAElB,sBAAIpB,UAAU,UAAd,mDACA,uBAAKA,UAAU,YACX,0BACI,0QACA,uLACA,qGAGJ,qBAAM+D,SAAN,OAGJ,gBAAC,GAAD,CAAUV,MAAOzJ,KAAKyJ,QAEtB,yCACA,uBAAKrD,UAAU,YACX,0BACI,0BAAI,qBAAGmC,KAAK,uDAAR,2BACJ,0BAAI,qBAAGA,KAAK,6CAAR,6CACJ,0BAAI,qBAAGA,KAAK,oCAAR,6DACJ,0BAAI,qBAAGA,KAAK,qDAAR,+B,mDASxB,OACI,gCACI,uBAAKnC,UAAU,mBACX,mCACA,0BACI,kGACA,gMACA,qHACA,iIAEJ,2BACA,ynBACA,+D,4DAOZ,OACI,gCACI,uBAAKA,UAAU,mBACX,mCACA,mCACA,0BACI,qGACA,kFACA,oIAEJ,2BACA,0ZACA,kUACA,yTACA,iKACA,8D,yDAOZ,OACI,gCACI,uBAAKA,UAAU,mBACX,mCACA,mCACA,0BACI,oJACA,+IACA,wIAEJ,2BACA,wPACA,0cACA,sNACA,oMACA,8D,iDAOZ,OACI,gCACI,uBAAKA,UAAU,mBACX,mCACA,0BACI,8DACA,gIACA,oKACA,8IACA,4EACA,0HACA,4IACA,uGACA,8JAEJ,2BACA,oLACA,8D,mDAOZ,OACI,gCACI,uBAAKA,UAAU,mBACX,oQACA,yBAAG,iCAAH,6EACA,0BACI,qEACA,yFACA,oIACA,wJAPR,IAQU,2BACN,mUACA,mE,GA1LgBI,iB,mBCYf6D,I,yDACjB,WAAYnE,GAAa,IAAD,8BACpB,cAAMA,IAEDoE,MAAQ,CACTC,WAAY,IAGhB,EAAK7B,KAAO,EAAKA,KAAK3B,KAAV,gBACZ,EAAKyD,KAAO,EAAKA,KAAKzD,KAAV,gBACZ,EAAK0D,KAAO,EAAKA,KAAK1D,KAAV,gBACZ,EAAK2D,MAAQ,EAAKA,MAAM3D,KAAX,gBACb,EAAK4D,UAAY,EAAKA,UAAU5D,KAAf,gBACjB,EAAK6D,cAAgB,EAAKA,cAAc7D,KAAnB,gBAZD,E,kDAelBb,GACF,OACI,gCACI,qBAAMsE,KAAN,CAAWD,WAAYvK,KAAKsK,MAAMC,aAElC,gBAAC,KAAD,KACKvK,KAAKsK,MAAMC,WAAWzI,OAAS,GAAK,qBAAM4G,KAAN,CAAWlE,GAAIxE,KAAKsK,MAAMC,WAAYX,IAAI,a,2BAM1F1D,GACD,IAAM2E,EAAI7K,KAAKkG,MAAMuD,MAAMqB,MAAK,SAAAnB,GAAI,OAAIA,EAAKnF,KAAO0B,EAAM1B,MAE1D,OACI,gCACI,gBAAC,KAAO2E,IAAR,CACIF,QAAS,CAAEI,QAAS,GACpBC,QAAS,CAAED,QAAS,GACpBE,KAAM,CAAEF,QAAS,EAAG0B,WAAY,CAAEC,SAAU,MAC5CD,WAAY,CAAEC,SAAU,GAAKC,MAAO,KACpCC,MAAO,CAAEC,cAAe,QACxB/E,UAAU,UAAUE,QAAStG,KAAK4K,gBAItC,uBAAKxE,UAAU,+BACX,gBAAC,KAAO+C,IAAR,CAAY/C,UAAU,eAAegF,SAAQ,gCAAoBP,QAApB,IAAoBA,OAApB,EAAoBA,EAAGrG,KAChE,gBAAC,KAAO2E,IAAR,CACI/C,UAAU,uBACVgF,SAAQ,sCAA0BP,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAGrG,MACX,KAApB,OAADqG,QAAC,IAADA,OAAA,EAAAA,EAAGQ,gBAA2B,uBAAKjF,UAAU,aAAaoB,IAAG,OAAEqD,QAAF,IAAEA,OAAF,EAAEA,EAAGS,MAAO9C,IAAI,GAAGlC,QAAStG,KAAK4K,iBACzE,KAApB,OAADC,QAAC,IAADA,OAAA,EAAAA,EAAGQ,gBAA0B,uBAAKjF,UAAS,gCAAoByE,QAApB,IAAoBA,OAApB,EAAoBA,EAAGU,SAAWjF,QAAStG,KAAK4K,iBAEpG,gBAAC,KAAOzB,IAAR,CACI/C,UAAU,kBACVgF,SAAQ,iCAAqBP,QAArB,IAAqBA,OAArB,EAAqBA,EAAGrG,KAChC,wBAAM4B,UAAU,YAAhB,OAA4ByE,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAGW,UAC/B,iCAAKX,QAAL,IAAKA,OAAL,EAAKA,EAAGzB,QAGZ,gBAAC,KAAOD,IAAR,CAAY/C,UAAU,oBAAoBkD,SAAO,GAAjD,OACKuB,QADL,IACKA,OADL,EACKA,EAAGhF,c,gCAQlBrB,GACNxE,KAAKyL,SAAS,CACVlB,WAAY/F,M,sCAKhBxE,KAAKyL,SAAS,CACVlB,WAAY,O,2BAIfrE,GAAa,IAAD,OACT1B,EAAK0B,EAAM1B,GACX4E,EAAQlD,EAAMkD,MACdoC,EAAWtF,EAAMsF,SACjBF,EAAQpF,EAAMoF,MACdI,EAAmBxF,EAAMmF,cACzBE,EAAkBrF,EAAMqF,QAE5B,OACI,sBAAInF,UAAS,QACT,uBAAKA,UAAU,yBAAyBE,QAAS,kBAAM,EAAKqE,UAAUnG,KAClE,gBAAC,KAAO2E,IAAR,CAAY/C,UAAU,eAAegF,SAAQ,yBAAoB5G,IAC7D,gBAAC,KAAO2E,IAAR,CACI/C,UAAU,uBACVgF,SAAQ,+BAA0B5G,KAErB,IAAZkH,GAAqB,uBAAKtF,UAAU,aAAaoB,IAAK8D,EAAO9C,IAAI,MACrD,IAAZkD,GAAoB,uBAAKtF,UAAS,yBAAoBmF,MAE3D,gBAAC,KAAOpC,IAAR,CACI/C,UAAU,kBACVgF,SAAQ,0BAAqB5G,IAE7B,wBAAM4B,UAAU,YAAYoF,GAC5B,0BAAKpC,S,2BAQxBlD,GAAa,IAAD,OACPqE,EAAqBrE,EAAMqE,WAEjC,OACI,sBAAInE,UAAU,aACTpG,KAAKkG,MAAMuD,MAAMC,KAAI,SAAAiC,GAAI,OACtB,gBAAC,EAAKlB,KAAN,eAAWb,IAAK+B,EAAKnH,IAAQmH,EAA7B,CAAmCC,WAAYD,EAAKnH,KAAO+F,W,+BAOvE,OACI,uBAAKnE,UAAU,kBACX,gBAAC,KAAD,CAAqByF,KAAK,aACtB,qBAAMnB,MAAN,Y,GA/HkBlE,kBCRjBsF,G,kDAsCjB,WAAY5F,GAAa,IAAD,8BACpB,cAAMA,IAtCV2B,gBAqCwB,IApCxB/E,MAAgB,EAoCQ,EAlCxBiJ,UAA4B,CACxB,CAAEnC,IAAK,EAAG/B,WAAY,OAAQuB,MAAO,MAAOvD,QAAS,EAAKmG,iBAAiB,oDAC3E,CAAEpC,IAAK,EAAG/B,WAAY,YAAauB,MAAO,UAAMvD,QAAS,EAAKmG,iBAAiB,oDAC/E,CAAEpC,IAAK,EAAG/B,WAAY,WAAYuB,MAAO,MAAOvD,QAAS,EAAKmG,iBAAiB,oDAC/E,CAAEpC,IAAK,EAAG/B,WAAY,WAAYuB,MAAO,YAAavD,QAAS,EAAKmG,iBAAiB,oDACrF,CAAEpC,IAAK,EAAG/B,WAAY,aAAcuB,MAAO,kBAAmBvD,QAAS,EAAKmG,iBAAiB,oDAC7F,CAAEpC,IAAK,EAAG/B,WAAY,SAAUuB,MAAO,yCAAgCvD,QAAS,EAAKmG,iBAAiB,oDACtG,CAAEpC,IAAK,EAAG/B,WAAY,aAAcuB,MAAO,YAAavD,QAAS,EAAKmG,iBAAiB,oDACvF,CAAEpC,IAAK,EAAG/B,WAAY,SAAUuB,MAAO,kBAAmBvD,QAAS,EAAKmG,iBAAiB,oDACzF,CAAEpC,IAAK,EAAG/B,WAAY,QAASuB,MAAO,MAAOvD,QAAS,EAAKmG,iBAAiB,oDAC5E,CAAEpC,IAAK,GAAI/B,WAAY,cAAeuB,MAAO,YAAavD,QAAS,EAAKmG,iBAAiB,oDACzF,CAAEpC,IAAK,GAAI/B,WAAY,SAAUuB,MAAO,oBAAqBvD,QAAS,EAAKmG,iBAAiB,qDAuBxE,EApBxBvC,MAAwB,CACpB,CACIjF,GAAI,IACJgH,SAAU,GACVpC,MAAO,mBACP6C,gBAAiB,IACjBX,MAAO,4BACPY,gBAAiB,UACjBrG,QACI,2BACI,mIACA,2RACA,iTAGRwF,eAAe,EACfE,QAAS,KAMb,EAAKjB,MAAQ,CACTxK,WAAYN,EAAMM,YAGtB,EAAK+H,WAAarI,EAAM6G,iBAAiB,GAET,IAA5B7G,EAAMM,WAAWgC,QACjBP,EAAI4K,gBAAgBC,MAAK,SAAA1F,GACrB,EAAK+E,SAAS,CACV3L,WAAY4G,IAGhBlH,EAAMM,WAAa4G,KAdP,E,gEAoBpBjE,OAAOqF,SAAS,EAAG,GACnBC,SAASC,KAAKC,UAAUC,IAAIlI,KAAK6H,c,6CAIjCE,SAASC,KAAKC,UAAUE,OAAOnI,KAAK6H,c,+BAIpC,OACI,gCACI,uBAAKzB,UAAW,wBAAwB,uBAAKoB,IAAKhI,EAAM4I,0BACxD,uBAAKhC,UAAU,gBAAe,uBAAKoB,IAAKhI,EAAM6I,kBAAkBrI,KAAK8C,UAErE,uBAAKsD,UAAU,gBACX,gBAAC,EAAD,CAAcoB,IAAI,oDAElB,8CACA,uBAAKpB,UAAU,YACX,6CACA,gBAACiG,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACC,OAAK,GACzB,6BACI,0BACI,sCACA,qCACA,sCACA,0CAGR,6BACKxM,KAAKsK,MAAMxK,WAAW4J,KAAI,SAAA+C,GAAI,OAC3B,sBAAI7C,IAAK6C,EAAKjI,IACV,0BAAKiI,EAAK1H,WACV,0BAAK0H,EAAK5H,SACV,0BAAI,qBAAG0D,KAAMkE,EAAKzH,MAAOyH,EAAKzH,OAC9B,0BAAKyH,EAAK7H,OAAS,KAAO,aAO9C,sBAAIwB,UAAU,UAAd,kBACA,uBAAKA,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,iCACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,2BACA,uBAAKoB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,2BACA,gBAAC,GAAD,CAAUyE,MAAOzJ,KAAKyJ,QAEtB,wCACA,gBAAC,GAAD,CAAUA,MAAOzJ,KAAK+L,YAEtB,sBAAI3F,UAAU,UAAd,mBAA2C,2BAC3C,gBAAC,EAAD,CAAcoB,IAAI,wD,uCAOjBxC,GACb,OACI,gCACI,uBAAKoB,UAAU,mBACX,gBAAC,EAAD,CAAcoB,IAAKxC,U,GA3KHwB,iBCJfoG,G,kDA+CjB,WAAY1G,GAAa,IAAD,8BACpB,cAAMA,IA/CV2B,gBA8CwB,IA7CxB/E,MAAgB,EA6CQ,EA3CxB2G,MAAwB,CACpB,CACIjF,GAAI,IACJgH,SAAU,GACVpC,MAAO,uBACP6C,gBAAiB,GACjBX,MAAO,8BACPY,gBAAiB,UACjBrG,QACI,2BACI,yYAGA,uBAAK2B,IAAI,gCAAgCpB,UAAU,SACnD,uBAAKoB,IAAI,gCAAgCpB,UAAU,UAG3DiF,eAAe,EACfE,QAAS,IAEb,CACI/G,GAAI,IACJgH,SAAU,GACVpC,MAAO,0BACP6C,gBAAiB,IACjBX,MAAO,4BACPY,gBAAiB,UACjBrG,QACI,2BACI,8WAGA,uBAAK2B,IAAI,4BAA4BpB,UAAU,SAC/C,0PAKRiF,eAAe,EACfE,QAAS,KAOb,EAAK1D,WAAarI,EAAM6G,iBAAiB,GAHrB,E,gEAOpB5D,OAAOqF,SAAS,EAAG,GACnBC,SAASC,KAAKC,UAAUC,IAAIlI,KAAK6H,c,6CAIjCE,SAASC,KAAKC,UAAUE,OAAOnI,KAAK6H,c,+BAIpC,OACI,gCACI,uBAAKzB,UAAW,wBAAwB,uBAAKoB,IAAKhI,EAAM4I,0BACxD,uBAAKhC,UAAU,gBAAe,uBAAKoB,IAAKhI,EAAM6I,kBAAkBrI,KAAK8C,UAErE,uBAAKsD,UAAU,gBACX,gBAAC,EAAD,CAAcoB,IAAI,oDAClB,2BAEA,uBAAKpB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,uBAAKoB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,uBAAKoB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,+BACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,gBAAC,EAAD,CAAcwC,IAAI,oDAElB,uBAAKpB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GAAA,EAAD,CAAUC,SAAU,KAAMvG,UAAU,YAC/B,CACG,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BACFsD,KAAI,SAAA1E,GAAI,OACN,gBAAC0H,GAAA,EAAShE,KAAV,CAAekB,IAAK5E,GAChB,uBACIoB,UAAU,gBACVoB,IAAKxC,WAQ7B,uBAAKoB,UAAU,wBACX,uBAAKA,UAAU,6BACX,gBAACsG,GA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","file":"static/js/main.3bb236b1.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/zgrabi-prihodnost.74c71807.png\";","module.exports = __webpack_public_path__ + \"static/media/gimptuj-dark.8452516e.png\";","module.exports = __webpack_public_path__ + \"static/media/gimptuj-white.7b1eeb78.png\";","module.exports = __webpack_public_path__ + \"static/media/ze-imas-svoj-stil.da0b2adf.png\";","module.exports = __webpack_public_path__ + \"static/media/vec-znas-vec-veljas.7075dbe7.png\";","module.exports = __webpack_public_path__ + \"static/media/izbirati-izbrati.e83c2405.png\";","module.exports = __webpack_public_path__ + \"static/media/vzhod-zahod-sever-ali-jug.17c0dbac.png\";","module.exports = __webpack_public_path__ + \"static/media/seife-savon-shampoo.04b7e280.png\";","module.exports = __webpack_public_path__ + \"static/media/zvezde.98f9c0b1.png\";","module.exports = __webpack_public_path__ + \"static/media/2-krat-s.0d56aeb3.png\";","module.exports = __webpack_public_path__ + \"static/media/umetniki-2.bc7e543e.png\";","module.exports = __webpack_public_path__ + \"static/media/sanjati-ali-spati.13c18456.png\";","module.exports = __webpack_public_path__ + \"static/media/zaspana-prva-ali-utrujena-zadnja.9f25b5e7.png\";","module.exports = __webpack_public_path__ + \"static/media/sem-na-pravi-poti.4ae12200.png\";","import { log } from \"util\";\nimport { LoginResponse } from \"./models/loginResponse\";\nimport gimptujLogoDark from './images/gimptuj-dark.png';\nimport gimptujLogoWhite from './images/gimptuj-white.png';\nimport slogan0 from './images/slogans/zgrabi-prihodnost.png'\nimport slogan1 from './images/slogans/zgrabi-prihodnost.png';\nimport slogan2 from './images/slogans/white/ze-imas-svoj-stil.png';\nimport slogan3 from './images/slogans/white/vec-znas-vec-veljas.png';\nimport slogan4 from './images/slogans/white/izbirati-izbrati.png';\nimport slogan5 from './images/slogans/white/vzhod-zahod-sever-ali-jug.png';\nimport slogan6 from './images/slogans/white/seife-savon-shampoo.png';\nimport slogan7 from './images/slogans/white/zvezde.png';\nimport slogan8 from './images/slogans/white/2-krat-s.png';\nimport slogan9 from './images/slogans/white/umetniki-2.png';\nimport slogan10 from './images/slogans/white/sanjati-ali-spati.png';\nimport slogan11 from './images/slogans/white/zaspana-prva-ali-utrujena-zadnja.png';\nimport slogan12 from './images/slogans/white/sem-na-pravi-poti.png';\nimport { API } from \"./helpers/apiHelper\";\nimport { LiveEvent } from \"./models/liveEvent\";\n\nclass StateData {\n public login: LoginResponse | null = null;\n public sessionId: string = \"\";\n public formSaved: number = 0;\n public currentLevel: number = 0;\n public selectedLevel: number = 0;\n public liveEvents: LiveEvent[] = [];\n\n public setLevel(newLevel: number) {\n // save current level\n this.currentLevel = newLevel;\n var toEncode = Math.log(this.currentLevel) * 10;\n localStorage.setItem(\"clv\", this.encode(toEncode.toString()));\n }\n\n public loadData() {\n // load current level\n const current_level_decoded = this.decode(localStorage.getItem(\"clv\"));\n if (current_level_decoded === null) this.setLevel(0);\n else {\n const decoded_val = Math.pow(Math.E, +current_level_decoded / 10.0);\n const rounded = Math.round(decoded_val);\n const diff = Math.abs(rounded - decoded_val);\n if (diff > 0.01) {\n console.error(\"Invalid local storage state! Reseting progress...\");\n this.setLevel(0);\n }\n else {\n this.setLevel(rounded);\n }\n }\n console.log(\"Currently on level \" + this.currentLevel);\n\n // load isLoggedIn\n this.loadLoggedIn();\n\n // load form saved\n this.loadFormSaved();\n\n // load session id\n this.loadSessionId();\n API.logSession(this.sessionId);\n }\n\n encode(value: string): string {\n const msg = value;\n\n // encode\n var base64 = btoa(msg)\n return base64;\n }\n\n decode(valueEncoded: string | null): string | null {\n if (valueEncoded == null) return null;\n\n try {\n // decode\n var msg = atob(valueEncoded);\n return msg;\n }\n catch {\n return null;\n }\n }\n\n loadLoggedIn() {\n // load token from localstorage\n const tkn = this.decode(localStorage.getItem(\"tkn\"));\n if (tkn !== null && typeof tkn == \"string\" && tkn.length > 2) {\n console.log(\"Recovered login session\");\n this.login = {\n token: tkn\n };\n }\n }\n\n loadSessionId() {\n this.sessionId = localStorage.getItem(\"sid\") ?? \"\";\n if (!this.sessionId || this.sessionId.length <= 2) {\n // generate new one\n this.sessionId = this.makeid(64); \n localStorage.setItem(\"sid\", this.sessionId);\n }\n }\n\n makeid(length: number) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n\n loadFormSaved() {\n const tkn = localStorage.getItem(\"frm\");\n if (tkn === \"1\") {\n console.log(\"Recovered form state\");\n this.formSaved = 1;\n }\n else {\n this.formSaved = 0;\n }\n }\n\n public saveForm() {\n this.formSaved = 1;\n localStorage.setItem(\"frm\", \"1\");\n }\n\n public resetLogin() {\n this.login = null;\n localStorage.setItem(\"tkn\", \"\");\n }\n\n public setLogin(login: LoginResponse) {\n this.login = login;\n\n // save to localstorage\n localStorage.setItem(\"tkn\", this.encode(login.token));\n }\n\n public isLoggedIn(): boolean {\n if (this.login == null) return false;\n\n // TODO: check expiry date or something\n\n return true;\n }\n\n public isOnMainPage(): boolean {\n var path = window.location.pathname.toLowerCase();\n\n if (path.startsWith(\"/login\") || path.startsWith(\"/dashboard\")) return false;\n\n return true;\n }\n\n public getClassForLevel(level: number): string {\n switch (level) {\n case 0:\n case 13: return \"yellow\";\n case 1: return \"lightyellow\";\n case 2: return \"lightgreen\";\n case 3: return \"lightblue\";\n case 4: return \"orange\";\n case 5: return \"green\";\n case 6: return \"lightred\";\n case 7: return \"pink\";\n case 8: return \"darkblue\";\n case 9: return \"grayblue\";\n case 10: return \"purple\";\n case 11: return \"lightpurple\";\n case 12: return \"lightorange\";\n default: return \"\";\n }\n }\n\n public getRedirectForLevel(level: number): string {\n switch (level) {\n case 0: return \"/\";\n case 1: return \"/level1\";\n case 2: return \"/level2\";\n case 3: return \"/level3\";\n case 4: return \"/level4\";\n case 5: return \"/level5\";\n case 6: return \"/level6\";\n case 7: return \"/level7\";\n case 8: return \"/level8\";\n case 9: return \"/level9\";\n case 10: return \"/level10\";\n case 11: return \"/level11\";\n case 12: return \"/level12\";\n case 13: return \"/level13\";\n default: return \"/\";\n }\n }\n\n public getSloganForLevel(level: number): string | undefined {\n switch (level) {\n case 0: return slogan0;\n case 1: return slogan1;\n case 2: return slogan2;\n case 3: return slogan3;\n case 4: return slogan4;\n case 5: return slogan5;\n case 6: return slogan6;\n case 7: return slogan7;\n case 8: return slogan8;\n case 9: return slogan9;\n case 10: return slogan10;\n case 11: return slogan11;\n case 12: return slogan12;\n default: return undefined;\n }\n }\n\n public getGimptujImageWhite(): string {\n return gimptujLogoWhite;\n }\n\n public getGimptujImageDark(): string {\n return gimptujLogoDark;\n }\n}\n\nexport const State = new StateData();","import axios, { AxiosResponse } from \"axios\";\nimport { stat } from \"fs\";\nimport { ContentValue } from \"../models/contentValue\";\nimport { ExportedForms } from \"../models/exportedForm\";\nimport { LevelData } from \"../models/levelData\";\nimport { LiveEvent } from \"../models/liveEvent\";\nimport { LoginResponse } from \"../models/loginResponse\";\nimport { RecentLog } from \"../models/recentLog\";\nimport { RequestStat } from \"../models/requestStat\";\nimport { SubmittedFormData } from \"../models/submittedFormData\";\nimport { State } from \"../state\";\n\nclass ApiHelper {\n getHeaders(): any {\n var headers: any = {\n \"Client\": \"InfoDan-GimPtuj-1\"\n };\n\n if (State.isLoggedIn()) {\n //@ts-ignore\n headers.Authorization = \"Bearer \" + State.login.token;\n }\n\n return {\n headers\n }\n }\n\n public async getForms(page: number = 0): Promise {\n try {\n const response = await axios.get(`/api/form/${page}`, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful form list fetch!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to fetch form list!\", error);\n return [];\n }\n }\n\n public async deleteForm(id: number): Promise {\n try {\n const response = await axios.delete(`/api/form/${id}`, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful form delete!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n console.error(\"Failed to delete form!\", error);\n return 0;\n }\n }\n\n public async getLiveEvents(): Promise {\n try {\n const response = await axios.get(`/api/content/live`, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful live event list fetch!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to fetch live event list!\", error);\n return [];\n }\n }\n\n public async deleteLiveEvent(id: number): Promise {\n try {\n const response = await axios.delete(`/api/content/live/${id}`, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful live event delete!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n console.error(\"Failed to delete live event!\", error);\n return 0;\n }\n }\n\n public async createOrUpdateLiveEvent(id: number | null, liveEvent: LiveEvent): Promise {\n try {\n const response = await axios.post(\"/api/content/live\" + (id === null ? \"\" : `/${id}`), {\n isLive: liveEvent.isLive,\n caption: liveEvent.caption,\n time: liveEvent.startTime,\n link: liveEvent.link\n }, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful live event create/update!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n console.error(\"Failed to create/update live event!\", error);\n return 0;\n }\n }\n\n public async getLevels(): Promise {\n try {\n const response = await axios.get(\"/api/level/list\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful level list fetch!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n console.error(\"Failed to fetch level list!\", error);\n return [];\n }\n }\n\n public async getLevelsDetails(): Promise {\n try {\n const response = await axios.get(\"/api/level\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful level details list fetch!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to fetch level details list!\", error);\n return [];\n }\n }\n\n public async setLevelPassword(id: number, password: string): Promise {\n try {\n const response = await axios.post(\"/api/level/\" + id, {\n password\n }, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful level password update!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to set level password!\", error);\n return 0;\n }\n }\n\n public async unlockLevel(password: string, originLevelIndex: number, currentlevelIndex: number): Promise {\n try {\n const response = await axios.post(\"/api/level\", {\n password,\n originLevelIndex,\n currentlevelIndex\n }, this.getHeaders());\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful level unlock!\", response.data.data);\n return null;\n }\n else return response.data.data;\n }\n catch (error) {\n if (error.response) {\n const status: number = error.response.status;\n if (status === 429) return false;\n }\n\n console.error(\"Failed to unlock level!\", error);\n return null;\n }\n }\n\n public async login(user: string, password: string): Promise {\n try {\n var response = await axios.post(\"/api/admin/login\", {\n user,\n password\n }, this.getHeaders());\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful login!\", response.data.data);\n return response.data.data;\n }\n else return response.data.data;\n }\n catch (error) {\n console.error(\"Failed to login!\", error);\n\n if (error && error.response && error.response.data) {\n if (error.response.data.data === undefined) return \"Invalid credentials\";\n else return error.response.data.data;\n }\n else {\n return \"Server error\";\n }\n }\n }\n\n public async formSave(elementarySchool: string | null, otherCandidateSchool: string | null,\n program: number | null, certainty: number | null, rating: number | null, classNumber: number | null): Promise {\n\n try {\n var response = await axios.post(\"/api/form\", {\n elementarySchool,\n otherCandidateSchool,\n program,\n certainty,\n rating,\n classNumber\n }, this.getHeaders());\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful form upload!\", response.data.data);\n return response.data.data;\n }\n else return true;\n }\n catch (error) {\n console.error(\"Failed to upload form!\", error);\n\n if (error && error.response && error.response.data) {\n if (error.response.data.data === undefined) return \"Unknown server error\";\n else return error.response.data.data;\n }\n else {\n return \"Server error\";\n }\n }\n }\n\n public async logSession(id: string): Promise {\n try {\n const response = await axios.post(\"/api/admin/stats/log\", {\n id\n }, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful session log!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n console.error(\"Failed to log session!\", error);\n return 0;\n }\n }\n\n public async getSessionCount(): Promise {\n try {\n const response = await axios.get(\"/api/admin/stats/sessions\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful session count get!\", response.data.data);\n return 0;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to get session count!\", error);\n return 0;\n }\n }\n\n public async getRecentLogs(): Promise {\n try {\n const response = await axios.get(\"/api/admin/stats/logs\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful recent log list get!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to get recent log list!\", error);\n return [];\n }\n }\n\n public async exportFormsToCSV(): Promise {\n try {\n const response = await axios.get(\"/api/form/csv\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful form export!\", response.data.data);\n return null;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to export form!\", error);\n return null;\n }\n }\n\n public async getRequestStats(): Promise {\n try {\n const response = await axios.get(\"/api/admin/stats/requests\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful request stats get!\", response.data.data);\n return [];\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to get request stats!\", error);\n return [];\n }\n }\n\n public async getCountdown(): Promise {\n try {\n // 05/03/2021 00:04:41\n const response = await axios.get(\"/api/content/countdown\", this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful countdown get!\", response.data.data);\n return null;\n }\n else return response.data.data;\n }\n catch (error) {\n console.error(\"Failed to get countdown!\", error);\n return null;\n }\n }\n\n public async setCountdown(content: string): Promise {\n try {\n const response = await axios.post(\"/api/content/countdown\", { content }, this.getHeaders())\n\n const success: boolean = response.data.success;\n if (!success) {\n console.error(\"Unsuccessful countdown set!\", response.data.data);\n return null;\n }\n else return response.data.data;\n }\n catch (error) {\n this.checkStatusForLogout(error);\n\n console.error(\"Failed to set countdown!\", error);\n return null;\n }\n }\n\n checkStatusForLogout(error: any) {\n\n if (error.response) {\n const status: number = error.response.status;\n if (status == 401) {\n // unauthorized, log out!\n State.resetLogin();\n window.location.pathname = \"/login\";\n }\n }\n }\n}\n\nexport const API = new ApiHelper();","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport { State } from '../../state';\n\nexport default class LevelBox extends React.PureComponent<{ onLevelChanged: (i: number) => void, levelNumber: number, caption: string }> {\n public render() {\n return (\n this.props.onLevelChanged(this.props.levelNumber)}>\n\n
KORAK {this.props.levelNumber}
\n
{this.props.caption}
\n \n );\n }\n}\n","import * as React from 'react';\nimport './NavMenu.css';\nimport { State } from '../state';\nimport LevelBox from './partial/LevelBox';\n\nexport default class NavMenu extends React.PureComponent<{ onLevelChanged: (i: number) => void }> {\n public render() {\n return (\n
\n
\n
\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n this.props.onLevelChanged(l)} />\n {/* this.props.onLevelChanged(l)} /> */}\n
\n
\n
\n
\n
\n );\n }\n}\n","import * as React from 'react';\nimport { Container } from 'reactstrap';\nimport { API } from '../helpers/apiHelper';\nimport { LevelData } from '../models/levelData';\nimport { State } from '../state';\nimport NavMenu from './NavMenu';\n\nexport default class Layout extends React.PureComponent<{ onLevelChanged: (i: number) => void, children?: React.ReactNode }> {\n isFetching: boolean = false;\n levels: LevelData[] = [];\n\n constructor(props: any) {\n super(props);\n\n this.getNavbar = this.getNavbar.bind(this);\n }\n\n async componentDidMount() {\n\n this.isFetching = true;\n this.levels = await API.getLevels();\n this.isFetching = false;\n }\n\n getNavbar() {\n if (State.isOnMainPage()) {\n return (\n this.props.onLevelChanged(l)} />\n );\n }\n else return (\n
\n );\n }\n\n getMainClass(): string {\n if (State.isOnMainPage()) return \"\";\n else return \"normal\";\n }\n\n public render() {\n return (\n \n \n\n \n {this.props.children}\n \n \n );\n }\n}","import * as React from 'react';\nimport \"./YoutubeEmbed.css\";\n\nexport default class YouTubeEmbed extends React.PureComponent<{ src: string }> {\n public render() {\n return (\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n","import * as React from 'react';\nimport { State } from '../state';\nimport YouTubeEmbed from './partial/YoutubeEmbed';\n\nexport default class Home extends React.PureComponent<{}> {\n colorClass: string;\n level: number = 0;\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(0);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
\n
\n\n
\n \n\n
\n \n
\n
\n \n );\n }\n};\n","import * as React from 'react';\nimport Table from 'reactstrap/lib/Table';\nimport { State } from '../../state';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level1 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 1;\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(1);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
\n
\n\n
\n \n \n
\n \n
\n\n \"demoman\"/\n
\n \n );\n }\n}","import * as React from 'react';\nimport { motion, AnimateSharedLayout, AnimatePresence } from \"framer-motion\";\nimport \"./itemlist.css\";\n\nexport class ItemListItem {\n key: number;\n title: string;\n colorClass: string;\n content: JSX.Element | null;\n\n constructor(key: number, title: string, content: JSX.Element | null) {\n this.key = key;\n this.title = \"\";\n this.colorClass = \"gray\";\n this.content = content;\n }\n}\n\nexport default class ItemList extends React.PureComponent<{ items: ItemListItem[] }, {}> {\n constructor(props: any) {\n super(props);\n\n this.Item = this.Item.bind(this);\n this.Content = this.Content.bind(this);\n this.ContentRows = this.ContentRows.bind(this);\n }\n\n Item(props: any) {\n const content: JSX.Element | null = props.content;\n\n const [isOpen, setIsOpen] = React.useState(false);\n\n const toggleOpen = () => setIsOpen(!isOpen);\n\n return (\n \n \n
\n
{props.title}
\n \n\n {isOpen && }\n \n );\n }\n\n Content(props: any) {\n const content: JSX.Element | null = props.content;\n\n return (\n \n \n \n );\n }\n\n ContentRows(props: any) {\n const content: JSX.Element | null = props.content;\n\n if (!content) {\n return (\n <>\n
\n
\n
\n \n );\n }\n else return content;\n }\n\n public render() {\n return (\n \n \n {this.props.items.map(item => (\n \n ))}\n \n \n );\n }\n}","import * as React from 'react';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport ItemList, { ItemListItem } from '../animated/itemlist/itemlist';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level2 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 2;\n\n items: ItemListItem[] = [\n { key: 1, colorClass: \"yellow\", title: \"Splošna gimnazija\", content: this.GetSplosnaGimnazijaContent() },\n { key: 2, colorClass: \"orange\", title: \"Umetniška gimnazija • Likovna smer\", content: this.GetUmetniskaGimnazijaLikovnaContent() },\n { key: 3, colorClass: \"green\", title: \"Umetniška gimnazija • Gledališče in film\", content: this.GetUmetniskaGimnazijaFilmContent() },\n { key: 4, colorClass: \"lightblue\", title: \"Športni oddelek\", content: this.GetSportniOddelekContent() },\n { key: 5, colorClass: \"gray\", title: \"Maturitetni tečaj\", content: this.GetMaturitetniTecajContent() }\n ];\n\n constructor(props: any) {\n super(props);\n this.colorClass = State.getClassForLevel(2);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n readMore() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n
  1. Dodatna ura matematike in slovenščine v 2. in 3. letniku. V 4. letniku pa pouk matematike na osnovni ali višji ravni za pripravo na maturo.
  2. \n
  3. Pouk tujih jezikov na dveh ravneh pri drugem tujem je­ziku (angleščina, nemščina), in sicer v 1., 2. 3. in 4. letniku, v 4. letniku pa pri izbranem tujem jeziku dodatne ure za pripravo na osnovni in višji ravni na maturi.
  4. \n
  5. Priprava dijakov za pridobitev jezikovnih diplom oziroma certifikatov iz tujih jezikov (nemščina, francoščina).
  6. \n
  7. Medpredmetno povezovanje v projektnih dneh in tednih.
  8. \n
  9. Spodbujanje radovednosti in raziskovalnega dela.
  10. \n
  11. Priložnosti za družbeno odgovorne aktivnosti.
  12. \n
  13. Kreativnost in uresničevanje idej.
  14. \n
  15. Vrednote sodelovanja in solidarnosti, sprejemanja različnosti, strpnosti in prijateljski odnosi.
  16. \n
  17. Obvezne in izbirne strokovne ekskurzije.
  18. \n
  19. Narodne in mednarodne izmenjave in projekti.
  20. \n
\n )}\n \n );\n }\n\n public render() {\n return (\n <>\n
\n
\n\n
\n \n\n

Gimnazija? Gimnazija Ptuj? Tu si na pravi poti.

\n
\n
    \n
  • Noben drugi srednješolski izobraževalni program ne ponuja tako široke palete učenja različnih jezikov, družboslovnih in naravoslovnih vsebin, slovenščine, matematike, umetnosti in izbirnih vsebin.
  • \n
  • Noben drug program ne pripravlja na splošno maturo. Splošna matura je vstopnica za uspešni študij … česarkoli in kjerkoli.
  • \n
  • Noben drugi program ne odpre toliko možnosti in priložnosti.
  • \n
\n\n \n
\n\n \n\n

Predmetniki

\n \n
\n \n );\n }\n\n GetSplosnaGimnazijaContent(): JSX.Element {\n return (\n <>\n
\n

Zakaj?

\n
    \n
  • Dijaki pridobijo široko splošno izobrazbo in razgledanost.
  • \n
  • Pri naravoslovnih predmetih se dijaki delijo na manjše skupine za delo v sodobno opremljenih laboratorijih za biološke, kemijske ali fizikalne poskuse.
  • \n
  • Pouk je obogaten z izbirnima predmetoma umetnostna zgodovina in vzgoja za solidarnost.
  • \n
  • Medpredmetno povezovanje splošnih predmetov omogoča dijakom celostno dojemanje znanja.
  • \n
\n
\n

Za splošno maturo dijaki izbirajo med splošnimi predmeti. Dijaki se odločijo za 2 izbirna predmeta glede na svoje študijske namere. Za študij na področju naravoslovja, tehnike, medicinskih ved ali informatike izbirajo med  kemijo, fiziko, biologijo ali informatiko. Za družboslovne, podjetniške ali humanistične študije izbirajo med sociologijo, psihologijo, zgodovino, umetnostno zgodovino, geografijo ali filozofijo. Za študij na jezikovnem področju pa nemški, angleški ali francoski jezik.

\n

Število vpisnih mest: 112

\n
\n \n );\n }\n\n GetUmetniskaGimnazijaLikovnaContent(): JSX.Element {\n return (\n <>\n
\n

Zakaj?

\n

Dijaki

\n
    \n
  • izostrijo vedenje o estetiki – lepem v vsakdanjem življenju,
  • \n
  • imajo možnost ustvarjati in izražati sebe,
  • \n
  • pridobivajo teoretično znanje s področja likovne umetnosti, arhitekture in bivalne kulture.
  • \n
\n
\n

Pri strokovnih predmetih dobijo dijaki kvalitetne osnove za študij na programih, ki jih izobrazijo za likovne pedagoge, arhitekte, modne, grafične, notranje, tekstilne, vizualne, industrijske in spletne oblikovalce ali oblikovalce gledališko filmske scene in opreme, dekoraterje, restavratorje, kustose, tudi slikarje, kiparje, grafike, likovne kritike …

\n

Ob bogatih umetniških vsebinah pa dobijo dijaki tudi dovolj splošnega znanja za uspešno opravljanje splošne mature in lahko svojo izobraževalno pot nadaljujejo na različnih fakultetah, enako kot dijaki splošne gimnazije in športnega oddelka.

\n

Z znanjem iz strokovnih predmetov (risanje in slikanje, likovna teorija, umetnostna zgodovina, predstavitvene tehnike, bivalna kultura, plastično oblikovanje …) pa bodo na podlagi razvite osebne estetike vedeli več in znali ceniti lepo na vseh poklicnih področjih.

\n

Za splošno maturo dijaki izbirajo med splošnimi predmeti, lahko pa izberejo strokovni predmet likovna teorija.

\n

Število vpisnih mest: 14

\n
\n \n );\n }\n\n GetUmetniskaGimnazijaFilmContent(): JSX.Element {\n return (\n <>\n
\n

Zakaj?

\n

Dijaki

\n
    \n
  • se naučijo dobrega, učinkovitega in prepričljivega nastopa ter filmskega in fotografskega jezika,
  • \n
  • imajo priložnost doživeti, ustvarjati in poustvarjati vsebine gledališke in filmske umetnosti,
  • \n
  • pridobivajo teoretična znanja s področij gledališča, sodobnega plesa, videa in filma.
  • \n
\n
\n

V 1. in 2. letniku pridobivajo dijaki temeljna znanja in veščine s področja gledališča in filma, v 3. in 4. letniku pa si dijaki izberejo poglobljeno spoznavanje enega ali drugega področja.

\n

Kljub poudarjenim umetniškim vsebinam pa program ni namenjen izključno dijakom, ki jih zanima študij igralstva ali gledališke in filmske režije. V programu je dovolj znanja s področij jezikoslovja in humanistike, da si dijaki lahko izberejo nadaljevanje izobraževalne poti na različnih fakultetah, enako kot dijaki splošne gimnazije in športnega oddelka.

\n

Znanje iz strokovnih predmetov (umetnost govora, gib, video in film, zgodovina in teorija gledališča in filma) pa bodo koristno uporabili na vseh poklicnih področjih.

\n

Za splošno maturo dijaki izbirajo med splošnimi predmeti, lahko pa izberejo strokovni predmet zgodovina in teorija gledališča in filma.

\n

Število vpisnih mest: 14

\n
\n \n );\n }\n\n GetSportniOddelekContent(): JSX.Element {\n return (\n <>\n
\n

Zakaj?

\n
    \n
  • Več ur športne vzgoje;
  • \n
  • opravljeni treningi štejejo k obveznim izbirnim vsebinam in je zato manj obveznosti ob pouku;
  • \n
  • pouk se lahko individualno prilagaja vsakemu dijaku, glede na intenzivnost športnih obremenitev (treningi, priprave, tekmovanja);
  • \n
  • način dela zagotavlja uspešno športno kariero, učni uspeh in opravljeno splošno maturo;
  • \n
  • število dijakov v oddelku je od 18 do 22;
  • \n
  • poučujejo profesorji, ki imajo do športa pozitiven odnos in jih šport zanima;
  • \n
  • poleg profesorjev in razrednika za usklajevanje obveznosti skrbita pedagoški in športni koordinator;
  • \n
  • omogočeno je prehajanje med splošnim in športnim oddelkom;
  • \n
  • za dijake športnih oddelkov so organizirani športni tabori, vsako leto iz različnih športnih področij.
  • \n
\n
\n

Dijaki v športnem oddelku  izbirajo za maturo med vsemi splošno izobraževalnimi predmeti, enako kot dijaki v splošni gimnaziji.

\n

Število vpisnih mest: 18

\n
\n \n );\n }\n\n GetMaturitetniTecajContent(): JSX.Element {\n return (\n <>\n
\n

Maturitetni tečaj je namenjen dijakom, ki izpolnjujejo pogoje za vključitev v program, da se z organiziranim in rednim poukom pripravijo na splošno maturo in jo opravijo. Traja eno šolsko leto (29 tednov).

\n

VPIS na maturitetni tečaj je možen z uspešno končanim:

\n
    \n
  • srednjim poklicnim izobraževanjem,
  • \n
  • srednjim tehniškim oz. strokovnim izobraževanjem,
  • \n
  • s tretjim letnikom gimnazije, če je prekinitev izobraževanja trajala najmanj eno leto,
  • \n
  • z osnovnošolskim izobraževanjem in hkrati opravljenim preizkusom znanja na ravni tretjega letnika gimnazije.
  • \n

\n

Dijak opravi maturitetni tečaj, ko je pozitivno ocenjen pri vseh predmetih in opravi obveznosti (pouk, vaje, seminarske naloge), določene s programom in s predmetnimi izpitnimi katalogi. Z uspešno opravljenim maturitetnim tečajem dijak pridobi pravico do opravljanja mature.

\n

Število vpisnih mest je 30.

\n
\n \n );\n }\n}","import * as React from 'react';\nimport { motion, AnimateSharedLayout, AnimatePresence } from \"framer-motion\";\nimport \"./itemgrid.css\";\n\nexport class ItemGridItem {\n id: string = \"a\";\n category: string = \"Category\";\n title: string = \"Unnamed title\";\n image: string = \"\";\n pointOfInterest: number = 80;\n backgroundColor: string = \"#814A0E\";\n bgClass: string = \"\";\n useBackground: boolean = false;\n content: JSX.Element = (
)\n}\n\nexport const openSpring = { type: \"spring\", stiffness: 200, damping: 30 };\n\nexport default class ItemGrid extends React.PureComponent<{ items: ItemGridItem[] }, { selectedId: string }> {\n constructor(props: any) {\n super(props);\n\n this.state = {\n selectedId: \"\"\n };\n\n this.Item = this.Item.bind(this);\n this.List = this.List.bind(this);\n this.Card = this.Card.bind(this);\n this.Store = this.Store.bind(this);\n this.CardClick = this.CardClick.bind(this);\n this.CardAwayClick = this.CardAwayClick.bind(this);\n }\n\n Store(props: any) {\n return (\n <>\n \n\n \n {this.state.selectedId.length > 0 && }\n \n \n );\n }\n\n Item(props: any) {\n const s = this.props.items.find(item => item.id === props.id);\n\n return (\n <>\n \n\n \n\n
\n \n \n {s?.useBackground === false && \"\"}\n {s?.useBackground === true &&
}\n \n \n {s?.category}\n

{s?.title}

\n \n\n \n {s?.content}\n \n \n
\n \n );\n }\n\n CardClick(id: string) {\n this.setState({\n selectedId: id\n });\n }\n\n CardAwayClick() {\n this.setState({\n selectedId: \"\"\n });\n }\n\n Card(props: any) {\n var id = props.id;\n var title = props.title;\n var category = props.category;\n var image = props.image;\n var useBack: boolean = props.useBackground;\n var bgClass: string = props.bgClass;\n\n return (\n
  • \n
    this.CardClick(id)}>\n \n \n {useBack === false && \"\"}\n {useBack === true &&
    }\n \n \n {category}\n

    {title}

    \n \n \n
    \n
  • \n );\n }\n\n List(props: any) {\n const selectedId: string = props.selectedId;\n\n return (\n
      \n {this.props.items.map(card => (\n \n ))}\n
    \n );\n }\n\n public render() {\n return (\n
    \n \n \n \n
    \n );\n }\n}","import * as React from 'react';\nimport { Table } from 'react-bootstrap';\nimport Carousel from 'react-bootstrap/esm/Carousel';\nimport { API } from '../../helpers/apiHelper';\nimport { LiveEvent } from '../../models/liveEvent';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport ItemList, { ItemListItem } from '../animated/itemlist/itemlist';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level3 extends React.PureComponent<{}, { liveEvents: LiveEvent[] }> {\n colorClass: string;\n level: number = 3;\n \n listItems: ItemListItem[] = [\n { key: 1, colorClass: \"pink\", title: \"SJK\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/Am4KPYcG-is?rel=0\") },\n { key: 2, colorClass: \"lightblue\", title: \"ŠV\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/cItt_-YHgT4?rel=0\") },\n { key: 3, colorClass: \"darkblue\", title: \"BIO\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/B-Rc58M2LyQ?rel=0\") },\n { key: 4, colorClass: \"lightred\", title: \"KEM / FIZ\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/6OAi-K4qiaI?rel=0\") },\n { key: 5, colorClass: \"lightgreen\", title: \"FIL / SOC / PSI\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/Wze7Qvyw4Bo?rel=0\") },\n { key: 6, colorClass: \"yellow\", title: \"Svetovalna služba, knjižnica\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/26EPnXBSrQY?rel=0\") },\n { key: 7, colorClass: \"lightgreen\", title: \"MAT / INF\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/QToWz5b9zuQ?rel=0\") },\n { key: 8, colorClass: \"orange\", title: \"NEM / FRA / ITA\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/WEpS_IXWqes?rel=0\") },\n { key: 9, colorClass: \"green\", title: \"ANG\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/HvfjzNlbsEQ?rel=0\") },\n { key: 10, colorClass: \"lightyellow\", title: \"GEO / ZGO\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/ZzlKR5VC6jI?rel=0\") },\n { key: 11, colorClass: \"purple\", title: \"UMETNOST / GLASBA\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/FBZtNJo1x-U?rel=0\") }\n ];\n\n items: ItemGridItem[] = [\n {\n id: \"f\",\n category: \"\",\n title: \"Nadarjeni dijaki\",\n pointOfInterest: 120,\n image: \"/img/covers/nadarjeni.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    Skrb za nadarjene je sestavni del vizije ter izobraževalnega in razvojnega načrta šole.

    \n

    Med nadarjene dijake ne štejemo le tistih, ki prihajajo k nam s potrdili o nadarjenosti, temveč vse, ki si želijo na Gimnaziji Ptuj razviti svoje potenciale na raznolikih področjih, od tekmovalno raziskovalnih do socialno osebnostih.

    \n

    Ena izmed številnih aktivnosti je tudi projekt Inkubator rasti. Gre za celoletni program osebnostne rasti v povezavi z nevrolingvističnim programiranjem, ki se mu je priključilo več kot 150 dijakov. Projekt je potekal v okviru nacionalnega projekta RAST.

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n constructor(props: any) {\n super(props);\n this.state = {\n liveEvents: State.liveEvents\n };\n\n this.colorClass = State.getClassForLevel(3);\n\n if (State.liveEvents.length === 0) {\n API.getLiveEvents().then(l => {\n this.setState({\n liveEvents: l\n });\n\n State.liveEvents = l;\n })\n }\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Pouk v živo

    \n
    \n

    Tabela dogodkov:

    \n \n \n \n \n \n \n \n \n \n \n {this.state.liveEvents.map(live => (\n \n \n \n \n \n \n ))}\n \n
    ČasDogodekPovezavaŽivo?
    {live.startTime}{live.caption}{live.link}{live.isLive ? \"DA\" : \"NE\"}
    \n
    \n\n

    Knjižnica

    \n
    \n
    \n \n {[\n \"/img/sliders/knjiznica2/0.jpg\",\n \"/img/sliders/knjiznica2/1.jpg\",\n \"/img/sliders/knjiznica2/2.jpg\",\n \"/img/sliders/knjiznica2/3.jpg\",\n \"/img/sliders/knjiznica2/4.jpg\",\n \"/img/sliders/knjiznica2/5.jpg\",\n \"/img/sliders/knjiznica2/6.jpg\",\n \"/img/sliders/knjiznica2/7.jpg\",\n \"/img/sliders/knjiznica2/8.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n
    \n \n {[\n \"/img/sliders/sss/0.jpg\",\n \"/img/sliders/sss/1.jpg\",\n \"/img/sliders/sss/2.jpg\",\n \"/img/sliders/sss/3.jpg\",\n \"/img/sliders/sss/4.jpg\",\n \"/img/sliders/sss/5.jpg\",\n \"/img/sliders/sss/6.jpg\",\n \"/img/sliders/sss/7.jpg\",\n \"/img/sliders/sss/8.jpg\",\n \"/img/sliders/sss/9.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n \n\n

    Profesorji

    \n \n\n

    Pouk na daljavo


    \n \n \n
    \n \n );\n }\n\n getProfesorVideo(link: string): JSX.Element {\n return (\n <>\n
    \n \n
    \n \n );\n }\n\n}","import * as React from 'react';\nimport { Carousel } from 'react-bootstrap';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level4 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 4;\n\n items: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Smučarski tabor\",\n pointOfInterest: 80,\n image: \"/img/covers/rogla-cover.jpg\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    \n Za dijake splošne in umetniške gimnazije je v okviru obveznih izbirnih vsebin organiziran smučarski tabor na Rogli. Tabor je namenjen izboljšanju smučarskih veščin in ga vodijo učitelji športne vzgoje ter učitelji smučanja. Na taboru dijaki koristno preživijo čas v naravi, ne manjka pa tudi zabave.\n

    \n \n \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Matematični vikend\",\n pointOfInterest: 120,\n image: \"/img/covers/mat-cover.png\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Matematičnimi vikendi na Gimnaziji Ptuj so izziv zahtevnejšim in radovednejšim dijakom na tem področju. Ne le, da skupaj rešujejo zahtevnejše izzive, ki jim koristijo na vseh ravneh matematičnih tekmovanj, temveč jim tudi omogočijo druženje z vrstniki, ki imajo enake interese in cilje.\n

    \n \n

    \n Matematični vikendi so priložnost za oblikovanje gimnazijske ekipe matematičnih navdušencev, ki drug drugega spodbujajo in motivirajo na poti razvijanja potencialov na matematičnem področju.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(4);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/unesco/0.jpg\",\n \"/img/sliders/unesco/1.jpg\",\n \"/img/sliders/unesco/2.jpg\",\n \"/img/sliders/unesco/3.jpg\",\n \"/img/sliders/unesco/4.jpg\",\n \"/img/sliders/unesco/5.jpg\",\n \"/img/sliders/unesco/6.jpg\",\n \"/img/sliders/unesco/7.jpg\",\n \"/img/sliders/unesco/8.jpg\",\n \"/img/sliders/unesco/9.jpg\",\n \"/img/sliders/unesco/10.jpg\",\n \"/img/sliders/unesco/11.jpg\",\n \"/img/sliders/unesco/12.jpg\",\n \"/img/sliders/unesco/13.jpg\",\n \"/img/sliders/unesco/14.jpg\",\n \"/img/sliders/unesco/15.jpg\",\n \"/img/sliders/unesco/16.jpg\",\n \"/img/sliders/unesco/17.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/dangan/0.jpg\",\n \"/img/sliders/dangan/1.jpg\",\n \"/img/sliders/dangan/2.jpg\",\n \"/img/sliders/dangan/3.jpg\",\n \"/img/sliders/dangan/4.jpg\",\n \"/img/sliders/dangan/5.jpg\",\n \"/img/sliders/dangan/6.jpg\",\n \"/img/sliders/dangan/7.jpg\",\n \"/img/sliders/dangan/8.jpg\",\n \"/img/sliders/dangan/9.jpg\",\n \"/img/sliders/dangan/10.jpg\",\n \"/img/sliders/dangan/11.jpg\",\n \"/img/sliders/dangan/12.jpg\",\n \"/img/sliders/dangan/13.jpg\",\n \"/img/sliders/dangan/14.jpg\",\n \"/img/sliders/dangan/15.jpg\",\n \"/img/sliders/dangan/16.jpg\",\n \"/img/sliders/dangan/17.jpg\",\n \"/img/sliders/dangan/18.jpg\",\n \"/img/sliders/dangan/19.jpg\",\n \"/img/sliders/dangan/20.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/erasmus/0.jpg\",\n \"/img/sliders/erasmus/1.jpg\",\n \"/img/sliders/erasmus/2.jpg\",\n \"/img/sliders/erasmus/3.jpg\",\n \"/img/sliders/erasmus/4.jpg\",\n \"/img/sliders/erasmus/5.jpg\",\n \"/img/sliders/erasmus/6.jpg\",\n \"/img/sliders/erasmus/7.jpg\",\n \"/img/sliders/erasmus/8.jpg\",\n \"/img/sliders/erasmus/9.jpg\",\n \"/img/sliders/erasmus/10.jpg\",\n \"/img/sliders/erasmus/11.jpg\",\n \"/img/sliders/erasmus/12.jpg\",\n \"/img/sliders/erasmus/13.jpg\",\n \"/img/sliders/erasmus/14.jpg\",\n \"/img/sliders/erasmus/15.jpg\",\n \"/img/sliders/erasmus/16.jpg\",\n \"/img/sliders/erasmus/17.jpg\",\n \"/img/sliders/erasmus/18.jpg\",\n \"/img/sliders/erasmus/19.jpg\",\n \"/img/sliders/erasmus/20.jpg\",\n \"/img/sliders/erasmus/21.jpg\",\n \"/img/sliders/erasmus/22.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n \n\n
    \n
    \n \n {[\n \"/img/sliders/angles/0.jpg\",\n \"/img/sliders/angles/1.jpg\",\n \"/img/sliders/angles/2.jpg\",\n \"/img/sliders/angles/3.jpg\",\n \"/img/sliders/angles/4.jpg\",\n \"/img/sliders/angles/5.jpg\",\n \"/img/sliders/angles/6.jpg\",\n \"/img/sliders/angles/7.jpg\",\n \"/img/sliders/angles/8.jpg\",\n \"/img/sliders/angles/9.jpg\",\n \"/img/sliders/angles/10.jpg\",\n \"/img/sliders/angles/11.jpg\",\n \"/img/sliders/angles/12.jpg\",\n \"/img/sliders/angles/13.jpg\",\n \"/img/sliders/angles/14.jpg\",\n \"/img/sliders/angles/15.jpg\",\n \"/img/sliders/angles/16.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/slo/0.jpg\",\n \"/img/sliders/slo/1.jpg\",\n \"/img/sliders/slo/2.jpg\",\n \"/img/sliders/slo/3.jpg\",\n \"/img/sliders/slo/4.jpg\",\n \"/img/sliders/slo/5.jpg\",\n \"/img/sliders/slo/6.jpg\",\n \"/img/sliders/slo/7.jpg\",\n \"/img/sliders/slo/8.jpg\",\n \"/img/sliders/slo/9.jpg\",\n \"/img/sliders/slo/10.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/knjiznica/0.jpg\",\n \"/img/sliders/knjiznica/1.jpg\",\n \"/img/sliders/knjiznica/2.jpg\",\n \"/img/sliders/knjiznica/3.jpg\",\n \"/img/sliders/knjiznica/4.jpg\",\n \"/img/sliders/knjiznica/5.jpg\",\n \"/img/sliders/knjiznica/6.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/glasba/0.jpg\",\n \"/img/sliders/glasba/1.jpg\",\n \"/img/sliders/glasba/2.jpg\",\n \"/img/sliders/glasba/3.jpg\",\n \"/img/sliders/glasba/4.jpg\",\n \"/img/sliders/glasba/5.jpg\",\n \"/img/sliders/glasba/6.jpg\",\n \"/img/sliders/glasba/7.jpg\",\n \"/img/sliders/glasba/8.jpg\",\n \"/img/sliders/glasba/9.jpg\",\n \"/img/sliders/glasba/10.jpg\",\n \"/img/sliders/glasba/11.jpg\",\n \"/img/sliders/glasba/12.jpg\",\n \"/img/sliders/glasba/13.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/uzg/0.jpg\",\n \"/img/sliders/uzg/1.jpg\",\n \"/img/sliders/uzg/2.jpg\",\n \"/img/sliders/uzg/3.jpg\",\n \"/img/sliders/uzg/4.jpg\",\n \"/img/sliders/uzg/5.jpg\",\n \"/img/sliders/uzg/6.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n\n
    \n \n

    Zbor


    \n \n
    \n

    Šolski band


    \n \n
    \n

    Orkester


    \n \n
    \n

    Unescov tek


    \n \n
    \n

    Projektni teden


    \n \n
    \n \n );\n }\n}","import * as React from 'react';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level5 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 5;\n\n items: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Ekskurzije v Azijo\",\n pointOfInterest: 80,\n image: \"/img/covers/india-cover.jpg\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    \n V Azijsko-evropsko učilnico (AEC) smo vstopili leta 2006 v okviru organizacije ASEF (Asia-Europe Foundation). Po začetnih projektih preko spleta se nam je odprla pot za izmenjave, najprej trikrat s šolo Millenium Institut iz Singapurja in sedaj že tretja izmenjava s St. Mark’s Senior Secondary Public School iz New Delhija v Indiji. Za dijake ta izmenjava pomeni srečanje s povsem drugo kulturo in načinom življenja.\n Nekaj vtisov dijakov, ki so se udeležili zadnje izmenjave z Indijo …\n

    \n\n

    Indija. Dežela z bogato kulturo in s tradicijo, dežela velikih razlik in nasprotij.

    \n

    \n Januar 2020. Prvi kulturni šok takoj ob prihodu – kaos v prometu. Nihče ne upošteva prometnih predpisov. Revščina se na vsakem koraku meša z bogato kulturno zapuščino. Indijskim cestam vladata gneča in nered. Naslednje presenečenje v kopalnici, tako drugačni od tiste doma – ni tople vode. Za hišo z vrhunsko tehnološko opremo se je to zdelo povsem nepredstavljivo.\n Drugačnost, barvitost, začinjena hrana ter dezinfekcijska sredstva so bili naši sopotniki na vsakem koraku. Nekateri smo prvi dan preživeli v mogočnih templjih in celo sodelovali pri verskih obredih, drugi so se udeležili tradicionalne indijske poroke, za vse pa je bil dan poln presenečenj in nepozabnih trenutkov.\n Na izletu po Indiji smo si ogledali Tadž Mahal, nacionalni park Rathambore, palačo Fatehpur Sikri, Jaipur, Amber Fort. Obiskali smo številne templje in spoznali religije v Indiji. Preizkusili smo se tudi v kuhanju indijskih jedi.\n

    \n\n \n

    Alja Rozman: »Še danes z velikim zanosom pripovedujem o barvitosti Indije. O drugačnosti. Ne morem mimo revščine, ki je v indijski vsakdan vtkana na vsakem koraku. O v kartonskih škatlah živečih na ulicah. O bosih služabnikih na marmornatih ploščah. O kaosu na cestah. O gostoljubnosti. Drugačni hrani. Mogočni zgodovini. Še se bom vrnila. Indija je name naredila velik vtis. Je izkušnja, ki jo bomo popotniki te izmenjave nosili v srcu celo življenje.«

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Burghausen\",\n pointOfInterest: 120,\n image: \"/img/covers/burghausen-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    Skoraj kot doma

    \n

    Izmenjava med Gimnazijo Ptuj in gimnazijo Aventinus Gymnasium iz Burghausna v Nemčiji poteka že 20 let.

    \n

    \n Bavarsko mestece, ki je od leta 2001 pobrateno s Ptujem, od sosednje Avstrije loči le reka Salzach. Nad mestom se razprostira in kraljuje najdaljši grad v Evropi, dolg 1043 m, ki ima kar šest dvorišč. Izmenjava je izjemna izkušnja, saj je mesto presenetljivo podobno našemu, hkrati pa povsem drugačno. Vrstniki, gostitelji, živijo podobno kot mi, zato ni težko najti stika, hkrati pa je dovolj razlik, začenši z jezikom, da sodelujoče čaka zanimiva medkulturna izkušnja.\n Je tudi šola podobna naši? Velika, moderna stavba, lepo opremljene učilnice, odprti dijaki, morda pri pouku aktivnejši … Veliko je podobnosti in tako pravzaprav ne čudi, da je sodelovanje med šolama že zdavnaj preseglo meje klasične izmenjave. Šolo v Burghausnu so v 20 letih obiskali skoraj vsi profesorji Gimnazije Ptuj, dijaki iz Burghausna pa so sodelovali tudi v ptujskih projektih, kot so nemški projektni teden, Unescov tek, konferenca MUN … Vse to gotovo ne bi bilo mogoče brez profesorja Stefana Angstla, organizatorja tega sodelovanja na nemški strani, ki je s svojo odprtostjo, širino ter izjemno gostoljubnostjo zaščitni znak vsake izmenjave.\n Tudi gostiteljske družine so vedno skrbno izbrane. Dijaki imajo priložnost nekaj dni živeti njihov način življenja, spoznati šolo in mesto, pogosto obiščejo tudi München ali Salzburg, poskusijo tipične bavarske jedi, razvijajo veščine sporazumevanja v tujih jezikih, predvsem pa sklepajo nova prijateljstva, ki marsikdaj ostanejo trajna.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"es\",\n category: \"\",\n title: \"Poljska\",\n pointOfInterest: 120,\n image: \"/img/covers/polska-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    Od leta 2007 za dijake 4. letnikov vsako leto organiziramo ogled koncentracijskega taborišča Auschwitz – Birkenau in mesta Krakov.

    \n\n

    \n Menim, da bi si vsak posameznik moral vsaj enkrat v življenju ogledati obe taborišči in se seznaniti s posledicami, ki jih prinese vojna. Tako si nihče na tem svetu ne bi več želel vojne in jo razumel kot možnost reševanja kakršnegakoli konflikta. (Nataša)\n

    \n

    \n Že takoj ob vstopu v Auschwitz (Oświęcim) se je začutila posebna tišina, tista, ki človeka napolni s čustvi in z grozo. Posebej me je pretreslo, ko smo listali po več metrov dolgi knjigi z imeni umrlih. Zadnji del te ima veliko praznih strani, kar simbolično ponazarja dejstvo, da imen vseh umrlih ne bomo nikoli poznali …\n Ta ekskurzija je ena izmed najbolj zahtevnih in najbolj poučnih. Tam začutiš hvaležnost, da si svoboden, da živiš v miru in se zaveš, da je mir treba ohranjati. (Ana)\n

    \n

    \n Ko sem po ogledu premišljevala o vsem videnem, nikakor nisem razumela, kako je človek zmožen tako brutalnega načina iztrebljanja sočloveka. Auschwitz je eden izmed redkih krajev na svetu, kjer rek Upanje umre zadnje drži kot pribito. (Urška)\n

    \n\n

    \n Nisem občutila le groze, ampak me je ves ogled spremljal tudi občutek krivde. Kakšne grozne muke so morali pretrpeti, da mi lahko danes živimo drugače, lepše. Pretresljivo je bilo poslušati o žrtvah, večinoma Judih, tudi otrocih in naših vrstnikih, videti sobe, polne las, čevljev, očal, kovčkov … (Nataša)\n

    \n\n \n

    Ekskurzijo vedno zaključimo v čudovitem Krakovu, ki nas očara.

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"e\",\n category: \"\",\n title: \"London\",\n pointOfInterest: 120,\n image: \"/img/covers/london-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Za dijake 1. letnikov organiziramo 4-dnevno ekskurzijo v britansko prestolnico London.\n

    \n

    \n Za mlade je to svojevrstno doživetje, pretkano z vrvežem milijonskega mesta, čudovito zgodovinsko arhitekturo, ki jo dopolnjujejo spektakularne moderne gradnje in številne znamenitostmi, ki so jih dotlej poznali predvsem s fotografij in iz filmov.\n

    \n \n

    Fotografiranje pred Big Benom.

    \n \n

    Nepozabna vožnja, ki ponuja čudovit razgled na celotno mesto – London Eye!

    \n \n

    Ogled astronomskega observatorija v Greenwichu.

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"d\",\n category: \"\",\n title: \"Dublin\",\n pointOfInterest: 120,\n image: \"/img/covers/dublin-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Ekskurzija v Dublin je za vse udeležence nepozabno doživetje. Organiziramo jo za dijake 1. letnikov. Mesto se ponaša z mnogimi zanimivostmi: od zgodovinskih spomenikov, muzejev in galerij do živahnih ulic s tradicionalnimi pivnicami (pubi).\n

    \n

    \n Ogledamo si Narodni muzej Irske, vikinški muzej Dublina in Narodno galerijo.\n

    \n \n \n

    Kip, posvečen Molly Malone, prodajalki rib, ki je veljala za najlepšo žensko takratnega časa in jo Irci opevajo v svoji neuradni himni – In Dublin's fair city.

    \n \n

    Podamo se tudi na enodnevni izlet proti zahodni obali do najznačilnejšega irskega mesteca Galway.

    \n

    \n In naprej do veličastnih moherskih klifov. Ta naravni spomenik ne slovi le po dih jemajočih klifih, temveč tudi po dejstvu, da v času parjenja nudi zavetje 20.000 parom ptic.\n

    \n \n

    \n Iz Dublina pa se ne moremo vrniti, ne da bi obiskali znamenito pivovarno Guiness, kjer si ogledamo celoten postopek priprave piva in uživamo ob prekrasnem pogledu na Dublin s tovarniške razgledne ploščadi.\n

    \n \n

    \n Ekskurzija na Irsko in Dublin prav gotovo ostane v lepem spominu.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"dhjy\",\n category: \"\",\n title: \"Dunaj\",\n pointOfInterest: 120,\n image: \"/img/covers/dunaj-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Ekskurzija na Dunaj je celodnevna. Z dijaki najpogosteje obiščemo razstave velikih umetniških imen, ki jih pripravljajo v Umetnostnozgodovinskem muzeju in Albertini, Belvederu … Tako smo nazadnje v novembru 2019 v Umetnostnozgodovinskem muzeju obiskali razstavi baročnih umetnikov Caravaggia in Berninija ter izjemno pregledno razstavo slikarja nemške renesanse, Albrechta Dürerja, na kateri smo občudovali znamenitega Zajčka, Kristusa med pismouki, sv. Hieronima … videli smo tudi njegove znamenite grafike od lesorezov cikla Apokalipsa, Melanholija, sv. Hieronim v študijski sobi … Že vrsto let s ptujskimi gimnazijci obiskujemo te velike in kvalitetne razstave, ki pogosto vključujejo tudi delavnice. Če na program nismo vključili ogleda razstav, smo si z dijaki ogledali mestne znamenitosti.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"dlk\",\n category: \"\",\n title: \"Firence\",\n pointOfInterest: 120,\n image: \"/img/covers/firence-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Tradicionalna na ptujski gimnaziji je tudi ekskurzija v Firence, ki vključuje še oglede znamenitosti Siene, Pise in Padove. V Firencah dijaki preživijo tri dni, s poudarkom na ogledih ključnih spomenikov italijanske zgodnje renesanse. Firence so rojstno mesto renesančne umetnosti, in tako imamo na tej ekskurziji prav po dnevih razvrščene oglede muzejev in galerij, kot so Bargello, Uffizi, Medičejska kapela, Accademia, in seveda tudi sakralnih spomenikov, npr. katedrale Santa Maria del Fiore, San Miniata al Monte, Santa Croce, pa tudi kapele Pazzi …\n

    \n

    \n Ta ekskurzija je predvidena predvsem za dijake 2. letnikov, s katerimi se že pri pouku vsebinsko pripravljamo, tako sta potem videnje in razumevanje Tizianove Urbinske Venere, Michelangelovega Davida, Urbinskega diptiha, slikarja Piera della Francesce, znamenitih Ghibertijevih Zlatih vrat in vrste drugih izjemnih umetniških stvaritev zagotovo drugačna.\n

    \n

    \n Dijaki se na ekskurzijo pripravijo z govornimi nastopi. Vsak udeleženec ekskurzije si izbere želeno umetnino, ki jo predstavi »v živo« v muzeju, galeriji, v mestu … Tako se vsi skupaj učimo, kako vstopati v polje umetniškega dela in s tem tudi umetnika. Učimo se poslušati drug drugega, opazovati, kritično razmišljati. Na tej ekskurziji smo res ves dan obdani z umetninami, njihovo sporočilnostjo.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"dooo\",\n category: \"\",\n title: \"Celje in Šempeter\",\n pointOfInterest: 120,\n image: \"/img/covers/celje-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Že nekaj let zapored na Gimnaziji Ptuj za vse dijake 2. letnikov organiziramo celodnevno ekskurzijo v Šempeter in Celje, s poudarkom na ogledu znamenitosti iz obdobja antike in zgodovine grofov Celjskih. Na poti najprej obiščemo III. mitrej na Ptuju, kjer se dijaki seznanijo s pomenom mitraizma v antični Petovioni, spoznajo vlogo te religije, ki je bila razširjena izključno v moških krogih, in njeno sporočilnost. V nadaljevanju obiščemo grobnice rimske nekropole v Šempetru.\n

    \n

    \n Nato se odpravimo v Celje, kjer si v Knežjem dvoru dijaki ogledajo razstavi Mesto pod mestom in Grofje Celjski. V popoldanskem času se dijaki razdelijo v tri skupine in samostojno, s pomočjo delovnih listov, spoznavajo znamenitosti Celja. Ob zaključku se odpravimo še na ogled največjega slovenskega srednjeveškega gradu Celje, s katerim tudi zaključimo ekskurzijo.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"dosdo\",\n category: \"\",\n title: \"UZG praktikum\",\n pointOfInterest: 120,\n image: \"/img/covers/uzg-cover.png\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Na Gimnaziji Ptuj si lahko dijaki umetnostno zgodovino izberejo za maturitetni predmet. Umetnostnozgodovinski praktikum predstavlja 20 % notranjega dela izpita. Sestavni del umetnostnozgodovinskega praktikuma je poleg priprave referata v pisni obliki tudi predstavitev teme na terenu. Večinoma si dijaki izbirajo teme, ki so vezane na ogled spomenikov v Ljubljani ter stalnih zbirk Narodne in Moderne galerije. V letošnjem šolskem letu smo eno predstavitev opravili na Ptujski Gori, ostale pa bomo zaradi epidemije Covid-19 opravili večinoma preko videokonference. Tudi v lanskem šolskem letu smo nekaj predstavitev opravili preko video konference, saj smo morali ekskurzijo v Pariz, ki je tudi tradicionalna ekskurzija, odpovedati.\n

    \n \n

    \n Plečnikova hiša v Ljubljani\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"zutt\",\n category: \"\",\n title: \"Ekskurzije pri pouku geografije\",\n pointOfInterest: 120,\n image: \"/img/covers/eks-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Geografija je izbirni maturitetni predmet. Maturanti si pridobijo interno oceno z opravljanjem terenskih vaj in pripravo ter udeležbo na strokovni ekskurziji. V zadnjih letih smo dijake popeljali na različne konce Slovenije in z njimi odkrivali lepote Krasa in Slovenske Istre, Goričkega, Logarske doline in Bohinja, v preteklem letu pa smo obiskali Koprsko primorje.\n

    \n \n

    \n Burja na kraškem robu nas je prepihala do kosti.\n

    \n

    \n Geografska ekskurzija je poučno, prijetno in nepozabno doživetje tako za dijaka kot učitelja. Dijaki na njej neposredno in posredno opazujejo, spoznavajo in doživljajo naravne in družbene procese v konkretni pokrajini. Poučni del ekskurzije se prične že na avtobusu, ko dijaki na zemljevidu spremljajo pot, opazujejo okolico, poslušajo razlago in ugotovitve zapisujejo v delovne liste.\n

    \n \n

    \n Kakšno vreme je danes? Merjenje vremenskih elementov.\n

    \n

    \n Na opazovalnih točkah dijaki s pomočjo mentorjev opravijo terenske vaje, pri katerih se spoznajo s pravilno uporabo preprostih geografskih metod in uporabo različnih pripomočkov za delo na terenu. Tako merijo in vrednotijo vremensko dogajanje, raziskujejo reliefne oblike, kartirajo dejavnosti v mestu, analizirajo lastnosti morja …\n

    \n \n

    \n Slanost morja ugodna, temperatura tudi, a za kopanje ni časa.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"tsutp\",\n category: \"\",\n title: \"Narodne izmenjave\",\n pointOfInterest: 120,\n image: \"/img/covers/nar-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Kje so Rimljani pustili več sledi? V Celei, Poetoviu, Emoni, Caprisu, Colatiu? Kateri grad je veličastnejši? Ljubljanski, škofjeloški, celjski ali ptujski? Kaj imata skupnega vaša in naša gimnazija? Kaj vaše in naše mesto? Pogosta vprašanja, ki dobijo odgovore na narodnih izmenjavah.\n

    \n

    \n Na narodnih izmenjavah dijaki spoznavajo slovenske gimnazije in kraje. Z vrstniki odkrivajo\n tradicijo, kulturo, jezikovno pestrost in kulinariko krajev, ki so tako blizu doma, a jih je marsikdo na izmenjavi obiskal prvič. Dijaki spoznajo delo in življenje na različnih gimnazijah. Tradicionalno povezovanje se je začelo z evropskimi oddelki in traja na Gimnaziji Ptuj že 17 let. V dosedanjih izmenjavah smo se povezali z Gimnazijo Koper, Gimnazijo Škofja Loka, Gimnazijo Slovenj Gradec, Gimnazijo Lava iz Celja in Gimnazijo Bežigrad iz Ljubljane.\n Srečanje poteka dva dni. En dan na Ptuju in dan pri vrstnikih.\n

    \n\n \n \n

    \n Vsaka izmenjava ima določeno skupno temo, ki jo pripravijo dijaki skupaj z razrednikom. Teme so bile športne, naravoslovne, umetniške, jezikovne, dijaki pa so se preizkusili tudi v različnih ročnih spretnosti.\n

    \n \n

    \n Dragocena pa so tudi nova prijateljstva in vrstniško odkrivanje mestnih kotičkov, kjer se mladostniki družijo v svojem prostem času.\n

    \n \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(5);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Kam pa kam?

    \n \n\n

    Ekskurzije

    \n \n\n
    \n \n );\n }\n}","import * as React from 'react';\nimport { Carousel } from 'react-bootstrap';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport ItemList, { ItemListItem } from '../animated/itemlist/itemlist';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level6 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 6;\n\n items: ItemListItem[] = [\n { key: 1, colorClass: \"darkblue\", title: \"DSD\", content: this.GetDSD() },\n { key: 2, colorClass: \"lightblue\", title: \"DELF\", content: this.GetDELF() }\n ];\n\n gridItems: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Evropski dan jezikov\",\n pointOfInterest: 80,\n image: \"/img/covers/evj-cover.jpg\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    \n Vsako leto 26. septembra po vsej Evropi praznujemo evropski dan jezikov, ki ga je svet Evrope prvič razglasil v evropskem letu jezikov 2001. Ta dan je namenjen osveščanju javnosti o bogati kulturni in jezikovni različnosti v Evropi ter o pomenu učenja jezikov za utrjevanje evropskih načel strpnosti in medsebojnega razumevanja. Cilj pobude je tudi spodbujanje učenja jezikov in vseživljenjskega učenja. Evropska unija ima 24 jezikov, med katerimi je od leta 2004 tudi slovenščina. Evropski dan jezikov želi posebej opozoriti na manj razširjene jezike, ki se jih ljudje redkeje učijo, in na pomen varovanja ogroženih jezikov.\n

    \n

    \n Tudi dijaki in dijakinje Gimnazije Ptuj že več let obeležujemo evropski dan jezikov. Odpravimo se na ulice Ptuja, kjer nagovarjamo mimoidoče v slovenščini, angleščini, nemščini in francoščini. Opravimo kratke ankete o znanju tujih jezikov, skupaj se naučimo nekaj uporabnih fraz v želenem tujem jeziku, tujim turistom pa pomagamo, da usvojijo nekaj osnovnih izrazov v slovenščini.\n

    \n

    \n Večjezičnost je eno od temeljnih načel EU, zato si želimo, da bi vsak državljan EU poleg maternega jezika znal vsaj dva tuja jezika.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Sodelovanje z nemškim časopisom FAZ\",\n pointOfInterest: 120,\n image: \"/img/covers/faz-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n Gimnazija Ptuj tradicionalno sodeluje v mednarodnih izmenjavah in projektih, še posebej pri pouku nemškega jezika.\n

    \n

    \n Programski učitelj iz Nemčije dr. Gerald Hühner, ki je vrsto let pripravljal dijake Gimnazije Ptuj na izpit iz nemške jezikovne diplome (DSD) in poučeval pri medpredmetnem pouku v evropskih oddelkih, nas je vpeljal v mnoge uspešne projekte. V šolskem letu 2018/2019 nas je ponovno povabil k sodelovanju, tokrat v mednarodni projekt Jugend schreibt – Mladina piše, ki ga razpisuje velika nemška časopisna hiša Frankfurter Allgemeine Zeitung – FAZ. Mladino iz različnih držav vabijo k pisanju intervjujev in člankov, najboljše objavijo v časopisu v rubriki Mladina piše in jih tudi denarno nagradijo.\n

    \n

    \n Svoje prispevke v letošnjem šolskem letu objavljajo dijaki 3. in 4. letnikov. Anja Sagadin, Evelin Munda in Anja Skledar so napisale prispevek Pomahaj z nasmehom o svetovni popotnici, nekdanji dijakinji Gimnazije Ptuj Nini Jazbec iz Žetal, ki je bil objavljen v FAZ 21. septembra 2020.\n

    \n

    \n Prispevek Nihče ni poziral o slovenskem fotografu mednarodnega slovesa, lanskoletnem Prešernovem nagrajencu in nekdanjem ptujskem gimnazijcu Stojanu Kerblerju, objavljen 9. novembra 2020, so napisali Matija Berden Strelec, Matic Kramberger in Matija Peršak.\n

    \n

    \n Sara Gutschi in Vida Glatz pa v prihodnjih dneh pričakujeta objavo članka o glasbeniku mednarodnega slovesa, nekdanjem ptujskem gimnazijcu Žanu Tetičkoviču. Dekleti pa že pripravljata nov intervju, tokrat z nemškima veleposlanikoma v Sloveniji Adrianom Pollmannom in Nathalie Kauther, v prihodnjem mesecu pa bosta prispevek poslali v objavo v FAZ.\n

    \n

    \n Zanimanje za sodelovanje je veliko tudi med mlajšimi dijaki, saj je objava v tako priznanem časopisu velik dosežek in dobra referenca za mlade, ki si bodo ustvarjali kariero.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(6);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Certifikati

    \n \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/dsd/0.jpg\",\n \"/img/sliders/dsd/1.jpg\",\n \"/img/sliders/dsd/2.jpg\",\n \"/img/sliders/dsd/3.jpg\",\n \"/img/sliders/dsd/4.jpg\",\n \"/img/sliders/dsd/5.jpg\",\n \"/img/sliders/dsd/6.jpg\",\n \"/img/sliders/dsd/7.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/delf/0.jpg\",\n \"/img/sliders/delf/1.jpg\",\n \"/img/sliders/delf/2.jpg\",\n \"/img/sliders/delf/3.jpg\",\n \"/img/sliders/delf/4.jpg\",\n \"/img/sliders/delf/5.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/kitajscina/0.jpg\",\n \"/img/sliders/kitajscina/1.jpg\",\n \"/img/sliders/kitajscina/2.jpg\",\n \"/img/sliders/kitajscina/3.jpg\",\n \"/img/sliders/kitajscina/4.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n \n
    \n \n );\n }\n\n GetDSD(): JSX.Element {\n return (\n <>\n
    \n

    DSD I in DSD II • Nemška jezikovna diploma

    \n

    Nemška jezikovna diploma (Deutsches Sprachdiplom/DSD) je izpit, s katerim dijaki lahko pridobijo certifikat o aktivnem znanju nemščine. Na Gimnaziji Ptuj jo dijaki lahko opravljajo na dveh nivojih. Manj zahteven izpit DSD1 na nivoju B1/A2 se izvaja v 3. letniku, DSD2 na nivoju C1/B2 pa v 4 letniku. V 20 letih, odkar na šoli poteka izpit, ga je uspešno opravilo že preko 500 gimnazijcev.

    \n

    Vsi dijaki, ki želijo opravljati izpit, imajo v 2., 3. in 4. letniku dodatne ure DSD, vsako leto pa se pred izpitom z mentoricami za nekaj dni odpravijo na tradicionalni tabor na Pohorje, kjer potekajo intenzivne priprave. Na izpit dijake pripravljajo profesorice nemščine, občasno pa ure izvede programski učitelj iz Nemčije. Zadnjih nekaj let na šoli gostimo tudi mlade nemške prostovoljce.

    \n

    DSD lahko opravljajo dijaki, ki pokažejo dovolj znanja iz nemščine, ne glede na to, ali je to njihov prvi ali drugi tuji jezik. Dijak, ki zelo dobro opravi izpit DSD 1, se lahko v 4. letniku odloči tudi za opravljanje izpita DSD2.

    \n
    \n

    Zakaj je DSD koristen?

    \n

    Certifikat DSD dijakom omogoča vpis na nemško govoreče univerze brez predhodnega opravljanja izpita iz nemščine, z diplomo DSD 2 se lahko dijaki potegujejo za štipendijo za celoten študij v Nemčiji, ki je vsako leto dodeljena enemu slovenskemu maturantu (dobili so jo že trije naši nekdanji dijaki), opravljen izpit pa je tudi dobra referenca pri študijskih izmenjavah in kasneje pri iskanju zaposlitve.

    \n

    Dijaki lahko v okviru DSD sodelujejo v različnih projektih DSD-šol. Iz Nemčije dobimo tudi učbenike, slovarje in nekaj sredstev za jezikovni tabor.

    \n
    \n \n );\n }\n\n GetDELF(): JSX.Element {\n return (\n <>\n
    \n

    Jezikovno diplomo za francoski jezik DELF dijaki opravljajo v 4. letniku. Izbirajo lahko med različnimi stopnjami zahtevnosti: od A2, B1 do B2, glede na pridobljeno znanje.

    \n

    Dijaki znanje pridobivajo pri rednih urah pouka in dodatni uri v 2. in 3. letniku ter pri različnih dodatnih dejavnostih, v katerih navežejo stik z naravnimi govorci francoščine: delavnicah v okviru Francoskega inštituta, projektih, kot so Frankofonski dan, Francija potuje, nastopih, bralni znački, izmenjavah in ekskurzijah.

    \n

    V četrtem letniku organiziramo še dodatno brezplačno pripravo na izpit. Ta poteka v aprilu, za dijake iz vzhodne Slovenije v Mariboru. Diploma je priznana po celem svetu in velja neomejeno. Tako pridobimo pisno potrdilo o znanju francoščine, ki ga lahko uporabimo tako v Sloveniji kot v tujini.

    \n
    \n \n );\n }\n}","import * as React from 'react';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport ItemList, { ItemListItem } from '../animated/itemlist/itemlist';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level7 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 7;\n\n items: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Naši olimpijci\",\n pointOfInterest: 80,\n image: \"/img/covers/olimpijci-cover.jpg\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    MATEMATIKA

    \n\n Gal Zmazek\n

    Srednjeevropska matematična olimpijada 2019
    Pardubice, Češka (srebrna medalja, 13. mesto)

    \n

    Balkanska fizikalna olimpijada 2019
    Solun, Grčija (bronasta medalja)

    \n

    Sredozemsko matematično tekmovanje 2019
    Ljubljana, Slovenija (bronasta medalja)

    \n

    Študentsko tekmovanje VJIMC 2019
    Ostrava, Češka

    \n

    Srednjeevropska matematična olimpijada 2020
    Zürich, Švica (pohvala, 31. mesto)

    \n

    Cyberspace Mathematical Competition 2020
    Slovenija (pohvala)

    \n \n\n

    \n

    GEOGRAFIJA

    \n\n Blaž Murko\n

    Svetovna geografska olimpijada 2016
    Peking, Kitajska (bronasta medalja)

    \n \n\n

    \n Žan Malek Petrovič\n

    Balkanska geografska olimpijada 2015
    Beograd, Srbija ( srebrna medalja)

    \n \n\n

    \n

    KEMIJA

    \n\n Luka Pušnik\n

    47. Kemijska olimpijada 2015
    Baku, Azerbajdžan

    \n \n\n

    \n Mitja Koderman\n

    51. Kemijska olimpijada 2019
    Pariz, Francija

    \n \n\n

    \n

    ATLETIKA, SKOK V DALJINO

    \n\n Nina Kolarič\n

    Olimpijske igre 2008
    Peking, Kitajska

    \n \n\n

    \n

    FIZIKA

    \n\n Primož Kušar\n

    Fizikalna olimpijada 1994
    Peking, Kitajska

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Uspehi na tekmovanjih\",\n pointOfInterest: 120,\n image: \"/img/covers/olimpijci-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    Šolsko leto 2020/2021

    \n\n ZLATA PRIZNANJA\n
      \n
    • slovenščina: Lara Kolar
    • \n
    • razvedrilna matematika: Barbara Kropec, Luka Hodnik
    • \n
    • matematika: Gal Zmazek
    • \n
    • logika: Gašper Vrtačnik
    • \n
    • biologija: Matija Berden Strelec
    • \n
    • fizika: Matija Berden Strelec
    • \n
    • kemija: Matija Berden Strelec
    • \n
    • angleščina (video): Miha Godicelj, Rok Fakin, Filip Verdenik, Jan Miklošič, Nino Šegula
    • \n
    • angleščina za 3. letnike: Matija Peršak
    • \n
    • sladkorna bolezen: Matija Berden Strelec, Manja Dokl
    • \n
    \n
    \n\n SREBRNA PRIZNANJA\n
      \n
    • slovenščina: Sandro Čeh, Gaja Železnik, Vanessa Repič, Vida Glatz, Rebeka Pernat, Manja Dokl
    • \n
    • razvedrilna matematika: Sandro Čeh, Maja Leskovar, Gal Zmazek
    • \n
    • matematika: Barbara Kropec, Aljaž Habjanec, Luka Hodnik, Maja Leskovar, Lovro Lozinšek, Žiga Kovačič
    • \n
    • logika: Barbara Kropec, Luka Hodnik, Gal Zmazek
    • \n
    • biologija: Sandro Čeh, Eva Žunkovič
    • \n
    • fizika: Matej Kolednik, Maja Leskovar, Gal Zmazek
    • \n
    • kemija: Tin Šoškič, Gal Zmazek
    • \n
    • sladkorna bolezen: Pia Kramberger
    • \n
    \n
    \n\n

    Šolsko leto 2019/2020

    \n\n ZLATA PRIZNANJA\n
      \n
    • slovenščina: Vida Glatz, Manja Dokl
    • \n
    • razvedrilna matematika: Luka Hodnik, Gašper Vrtačnik
    • \n
    • nemščina: Špela Kukovec (2. mesto), Sara Rosalia Gutschi
    • \n
    • logika: Luka Hodnik, Bono Bezjak, Gašper Vrtačnik
    • \n
    • sladkorna bolezen: Manja Dokl, Vida Glatz
    • \n
    \n
    \n\n SREBRNA PRIZNANJA\n
      \n
    • slovenščina: Barbara Tement, Eva Žunkovič, Vida Glatz, Manja Dokl, Liza Likar, Matija Peršak, Gloria Šegula Šraj
    • \n
    • razvedrilna matematika: Maja Leskovar, Gal Zmazek
    • \n
    • nemščina: Sara Sakelšek
    • \n
    • logika: Zala Cebek, Lovro Lozinšek, Miha Mesarič, Vida Glatz
    • \n
    • geografija: Pia Kramberger, Matija Berden Strelec, Ambrož Rodošek
    • \n
    • sladkorna bolezen: Matija Berden Strelec
    • \n
    \n
    \n\n NATEČAJI IN RAZISKOVALNE NALOGE\n
      \n
    • zlato regijsko priznanje za raziskovalno nalogo iz kemije: Alja Rozman in Mateja Golc
    • \n
    \n
    \n\n\n

    Šolsko leto 2018/2019

    \n\n\n ZLATA PRIZNANJA\n
      \n
    • slovenščina: Vida Glatz, Manja Dokl, Julija Menoni, Let Lovse
    • \n
    • matematika: Maja Leskovar, Gal Zmazek
    • \n
    • matemček: Gal Zmazek (1. mesto)
    • \n
    • razvedrilna matematika: Gal Zmazek (vse možne točke), Manca Gavez, Maja Leskovar
    • \n
    • angleščina: Liza Likar
    • \n
    • nemščina: Sara Rosalia Gutschi (1. mesto)
    • \n
    • zgodovina: Tea Korošec (1. mesto), Žiga Ciglarič (2. mesto)
    • \n
    • geografija: Tea Korošec
    • \n
    • biologija: Matija Berden Strelec in Alja Rozman
    • \n
    • kemija: Matija Berden Strelec, Mitja Koderman (1. mesto)
    • \n
    \n
    \n\n\n SREBRNA PRIZNANJA\n
      \n
    • slovenščina: Vida Glatz, Matija Peršak, Manja Dokl, Monja Sabotin, Meta Majcen, Uroš Ber, Mia Molnar, Vid Buzeti, Maša Sarić, Let Lovse, Julija Menoni, Vita Pernat, Mitja Koderman
    • \n
    • matematika: Luka Černesl, Lan Trafela, Mia Molnar
    • \n
    • razvedrilna matematika: Luka Černesl
    • \n
    • logika: Vida Glatz, Gal Zmazek
    • \n
    • nemščina: Špela Kukovec, Tajda Bratec, Lara Sakelšek
    • \n
    • zgodovina: Tomaž Horvat
    • \n
    • biologija: Lucija Jančič
    • \n
    • fizika: Gal Zmazek, Jan Fakin
    • \n
    • astronomija: Mitja Koderman, Vida Glatz
    • \n
    • filozofija: Tilen Milošič
    • \n
    • sladkorna bolezen: Manja Dokl, Vida Glatz, Sanja Kostevc
    • \n
    \n
    \n\n\n NATEČAJI IN RAZISKOVALNE NALOGE\n
      \n
    • zlato regijsko priznanje za raziskovalno nalogo iz kemije: Lucija Jančič, Lara Roškar, Tomaž Horvat
    • \n
    • pohvala za najboljši izdelek na natečaju Periodni sistem elementov – včeraj, danes, jutri : Polonca Škerget, Vida Glatz, Nika Keres
    • \n
    • srebrno priznanje na tekmovanju Slovenščina ima dolg jezik : Lara Roškar, Sara Glatz, Filip Zelenjak, Tomaž Horvat, Sara Serdinšek
    • \n
    • najboljša haikuja v kategorijah s poetološko in bivanjsko tematiko na Srednješolskem tekmovanju za najboljši haiku: Neja Veit in Alja Rozman
    • \n
    • prvo mesto v državi na literarnem natečaju Evropa v šoli: Mateja Golc
    • \n
    \n\n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n listItems: ItemListItem[] = [\n { key: 1, colorClass: \"yellow\", title: \"Tadej Toš\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/9caAeVgWCO8?rel=0\") },\n { key: 2, colorClass: \"pink\", title: \"Žan Tetičkovič\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/6rQ0q5X8JVQ?rel=0\") },\n { key: 3, colorClass: \"lightgreen\", title: \"Polona Fijavž\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/NWNm2SRyRGk?rel=0\") },\n { key: 4, colorClass: \"lightblue\", title: \"Marko Drobnič\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/v8-I3-Qhc3o?rel=0\") },\n { key: 5, colorClass: \"orange\", title: \"Veronika Domjan\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/-bXsGhIuz5s?rel=0\") },\n { key: 6, colorClass: \"green\", title: \"Nuška Gajšek\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/bdXA3xGwEuE?rel=0\") },\n { key: 7, colorClass: \"lightred\", title: \"Miha Zupanič\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/SmeHJ2ForqQ?rel=0\") },\n { key: 8, colorClass: \"lightyellow\", title: \"Miha Andrič\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/qGHxG0tWqM4?rel=0\") },\n { key: 9, colorClass: \"darkblue\", title: \"Jurček K. Lesjak\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/urV1wZQGRsg?rel=0\") },\n { key: 10, colorClass: \"grayblue\", title: \"Janja Hojnik\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/LKXFsP5SPbs?rel=0\") },\n { key: 11, colorClass: \"purple\", title: \"Blaž Rola\", content: this.getProfesorVideo(\"https://www.youtube.com/embed/t3mjGI_TsR8?rel=0\") }\n ];\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(7);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n getProfesorVideo(link: string): JSX.Element {\n return (\n <>\n
    \n \n
    \n \n );\n }\n\n readMore() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n <>\n

    ZLATI MATURANTI 2016 • 2021

    \n

    Liza Likar • Tomaž Horvat • Tea Korošec • Julija Menoni

    \n

    Vita Pernat • Mitja Koderman • Tilen Kropfl • Jana Meško

    \n

    Tilen Kolar • Katarina Horvat • Manja Toplak • Petra Toplak

    \n

    Jure Glodež • Eva Vidovič • Jaka Horvat • Špela Kukovec

    \n

    Gal Zmazek • Matej Kolednik • Zala Veselič

    \n\n

    DIJAKI GENERACIJ 2016 • 2021

    \n

    Urška Kiselak • Katarina Vaupotič • Julija Menoni

    \n

    Mitja Koderman • Tilen Kolar • Taja Islamovič • Lucija Sevšek

    \n

    Žan Malek Petrovič • Tomi Petek • Vida Glatz • Gal Zmazek

    \n \n )}\n \n );\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Naši uspehi

    \n
    \n

    ZLATI MATURANTI in DIJAKI GENERACIJ 2016 • 2021

    \n \n
    \n\n

    Znani gimnazijci

    \n \n\n
    \n \n
    \n \n );\n }\n}","import * as React from 'react';\nimport { Carousel } from 'react-bootstrap';\nimport { State } from '../../state';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level8 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 8;\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(8);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Športni dosežki

    \n
    \n

    ŠPORTNI DOSEŽKI SEDANJIH DIJAKOV

    \n \n

    \n

    DOSEŽKI ŠPORTNIH EKIP GIMNAZIJE PTUJ V ŠOLSKEM LETU 2020/2021

    \n \n

    \n

    DOSEŽKI ŠPORTNIH EKIP GIMNAZIJE PTUJ V ŠOLSKEM LETU 2019/2020

    \n \n

    \n

    DOSEŽKI ŠPORTNIH EKIP GIMNAZIJE PTUJ V ŠOLSKEM LETU 2018/2019

    \n \n
    \n\n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/sport/0.jpg\",\n \"/img/sliders/sport/1.jpg\",\n \"/img/sliders/sport/2.jpg\",\n \"/img/sliders/sport/3.jpg\",\n \"/img/sliders/sport/4.jpg\",\n \"/img/sliders/sport/5.jpg\",\n \"/img/sliders/sport/6.jpg\",\n \"/img/sliders/sport/7.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n\n \n
    \n\n
    \n

    ŠPORTNI USPEHI NEKDANJIH DIJAKOV

    \n \n
    \n
    \n \n );\n }\n\n readMore1() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n\n NIKA STRAŠEK (TENIS)\n
      \n
    • 455. mesto na ITF lestvici
    • \n
    • 2. mesto državno prvenstvo, deklice do 16 let, 2019
    • \n
    • 2. mesto DVOJICE  državno prvenstvo, deklice do 16 let, 2019
    • \n
    • 2. mesto posamezno, ITF Abidjan, 2019
    • \n
    • 2. mesto dvojice, ITF Abidjan, 2019
    • \n
    • 3-4. mesto posamezno, ITF Abidjan
    • \n
    • 2. mesto, ITF Abidjan, 2019
    • \n
    • reprezentantka ekipe Slovenije na tekmovanju WINTER CUP, Lousada, Portugalska, 2019, deklice do 16 let
    • \n
    • reprezentantka ekipe Slovenije na tekmovanju IC Rod Laver cup, Frankfurt, Nemčija, 2019, deklice do 16 let, 3. mesto
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 13.1. – 18.1.2020: 1. mesto posamezno
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 13.1. – 18.1.2020: 1. mesto dvojice
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 20.1. – 25.1.2020: ¼ finale posamezno
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 20.1. – 25.1.2020: ½ finale dvojice
    • \n
    • ITF Radomlje, Slovenija, 8.9. – 13.9. 2020, ¼ finale posamezno
    • \n
    • 1. mesto na ligaškem tekmovanju za članice, 21.6. – 28.6.2021, NASLOV EKIPNE ČLANSKE DRŽAVNE PRVAKINJE z ekipo ŽTK Maribor
    • \n
    • 3.-4. mesto (½ finale) državno prvenstvo, mladinke do 18 let, 22.3.-26.3.2021
    • \n
    • mesto DVOJICE državno prvenstvo, mladinke do 18 let, 22.3.-26.3.2021 - DRŽAVNA PRVAKINJA V DVOJICAH (Nika Strašek in Brina Šulin) ITF mednarodni turnirji U18
    • \n
    • ITF Abidjan, Slonokoščena obala, 20.4. – 25.4.2021, ¼ finale posamezno in ½ finale dvojice
    • \n
    • ITF Abidjan, Slonokoščena obala, 27.4. – 2.5.2021, ¼ finale posamezno in ½ finale dvojice
    • \n
    • ITF Maribor, 16.8. – 21.8.2021, ¼ finale posamezno
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 11.10. – 16.10.2021: 1. mesto dvojice
    • \n
    • ITF Široki brijeg, Bosna in Hercegovina, 18.10. – 23.10.2021: ¼ finale posamezno in ½ finale dvojice
    • \n
    \n\n ARWEN NYLANDER (HOKEJ)\n
      \n
    • članica HK: HDK Maribor, HK Celje, HK Olimpija, in trenutno MODO Hockey 2 (Švedska)
    • \n
    \n\n
    \n )}\n \n );\n }\n\n readMore2() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n AKROBATIKA\n
      \n
    • 1. mesto na državnem prvenstvu v akrobatiki
    • \n
    \n
    \n\n ODBOJKA\n
      \n
    • 1. mesto občinsko prvenstvo dijakinje in dijaki
    • \n
    \n
    \n\n KOŠARKA\n
      \n
    • 1. mesto na občinskem prvenstvu za dijake
    • \n
    \n
    \n\n NOGOMET\n
      \n
    • 1. mesto na občinskem prvenstvu za dijakinje
    • \n
    • 1. mesto na področnem prvenstvu za dijakinje
    • \n
    \n
    \n
    \n )}\n \n );\n }\n\n readMore3() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n ODBOJKA\n
      \n
    • 1. mesto občinsko prvenstvo dijakinje in dijaki
    • \n
    • 1. mesto na področnem prvenstvu za dijakinje
    • \n
    • 2. mesto na področnem prvenstvu za dijake
    • \n
    • 3. mesto dekleta na polfinalu državnega prvenstva
    • \n
    \n
    \n\n ATLETIKA\n
      \n
    • 2. mesto na ekipnem področnem prvenstvu za dijakinje
    • \n
    \n
    \n\n NOGOMET\n
      \n
    • 1. mesto na občinskem prvenstvu za dijakinje in dijake
    • \n
    • 2. mesto na področnem prvenstvu za dijakinje
    • \n
    • 2. mesto na področnem prvenstvu za dijake
    • \n
    \n
    \n\n KOŠARKA\n
      \n
    • 1. mesto na občinskem prvenstvu za dijake
    • \n
    \n
    \n )}\n \n );\n }\n\n readMore4() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n ROKOMETNA EKIPA GIMNAZIJE PTUJ\n
      \n
    • zmagovalci mednarodnega rokometnega turnirja Daf Cup Zaprešič 2018 in 2019
    • \n
    \n
    \n\n ODBOJKA\n
      \n
    • 1. mesto občinsko prvenstvo dijakinje in dijaki
    • \n
    • 1. mesto na področnem prvenstvu za dijakinje
    • \n
    • 3. mesto dekleta na polfinalu državnega prvenstva
    • \n
    \n
    \n\n ATLETIKA\n
      \n
    • 2. mesto na ekipnem področnem prvenstvu za dijakinje
    • \n
    \n
    \n\n NOGOMET\n
      \n
    • 1. mesto na občinskem prvenstvu za dijakinje in dijake
    • \n
    \n
    \n\n KOŠARKA\n
      \n
    • 1. mesto na občinskem prvenstvu za dijake
    • \n
    • 1. mesto na področnem tekmovanju
    • \n
    • 2. mesto na ekipnem področnem prvenstvu za dijakinje
    • \n
    \n
    \n )}\n \n );\n }\n\n readMore5() {\n const [readMore, setReadMore] = React.useState(false);\n\n return (\n <>\n setReadMore(!readMore)}>{readMore ? \"Manj...\" : \"Več...\"}\n {readMore && (\n
    \n\n SVEN LAH (TENIS)\n
      \n
    • 1. mesto na državnem prvenstvu posamezno do 16 let
    • \n
    • najboljši slovenski mladinec 2015 in 2016
    • \n
    • 1. mesto na lestvici TZS do 18 let (Teniška zveza Slovenije)
    • \n
    • ITF Junior Bruchköbel (Nemčija) - 1. mesto (posamezno) - 2015
    • \n
    • ITF European Junior championship (Švica) - 2015
    • \n
    • ITF Junior Triglav open  - 1. mesto (posamezno) - 2015
    • \n
    • ITF Junior circuit Maribor - 1. mesto (posamezno) - 2015
    • \n
    • ITF Junior Novi Sad (SRBIJA) - 1. mesto (dvojice) - 2015
    • \n
    • ITF Junior Orange bowl (USA) - med 16 (posamezno); med 8 (dvojice) - 2015
    • \n
    • ITF Junior Copa Barranquilla (Kolumbija) - 3. mesto (dvojice) - 2016
    • \n
    • ITF Junior Ibarra (Ekvador) - 3. mesto (dvojice) - 2016
    • \n
    • ITF Mödling (Avstrija) - 3. mesto (posamezno); 1. mesto (dvojice) - 2016
    • \n
    • ITF Bochum (Nemčija) - 3. mesto (posamezno) – 2016
    • \n
    • 895. mesto na svetovni profesionalni lestvici (ATP)
    • \n
    • 74. mesto na svetovni mladinski lestvici (ITF) - do 18 let
    • \n
    • fakultetni turnirji v okviru študija v ZDA
    • \n
    \n
    \n\n MARTIN MILEC (NOGOMET)\n
      \n
    • član NK Aluminij, Maribor, Standard Liege, Roda JC in trenutno Nk Maribor
    • \n
    • član slovenskih reprezentanc do 19, 21 in članske reprezentance
    • \n
    • 5x državni prvak z NK Maribor
    • \n
    • 2x pokalni zmagovalec Slovenije z NK Maribor
    • \n
    • pokalni zmagovalec Belgije z NK Standard Liegom
    • \n
    \n
    \n\n INO ALDO ILEŠIČ (KOLESARSTVO)\n
      \n
    • član Pro tour ekipe
    • \n
    • udeleženec dirk: Dirka po Slovenije, Giro dele Region, Tour of China, Tour do Rio Red Hook Crit
    • \n
    \n
    \n\n VERONIKA DOMJAN (ATLETIKA, MET DISKA)\n
      \n
    • 455. mesto na ITF lestvici
    • \n
    • 2. mesto državno prvenstvo, deklice do 16 let, 2019
    • \n
    • 2. mesto DVOJICE  državno prvenstvo, deklice do 16 let, 2019
    • \n
    • 2. mesto posamezno, ITF Abidjan, 2019
    • \n
    • 2. mesto dvojice, ITF Abidjan, 2019
    • \n
    • 3-4. mesto posamezno, ITF Abidjan
    • \n
    • 2. mesto, ITF Abidjan, 2019
    • \n
    • reprezentantka ekipe Slovenije na tekmovanju WINTER CUP, Lousada, Portugalska, 2019, deklice do 16 let
    • \n
    • reprezentantka ekipe Slovenije na tekmovanju IC Rod Laver cup, Frankfurt, Nemčija, 2019, deklice do 16 let, 3. mesto
    • \n
    \n
    \n\n NINA KOLARIČ (ATLETIKA, SKOK V DALJINO)\n
      \n
    • večkratna članska državna prvakinja v skoku v daljino
    • \n
    • aktualna rekorderka v dvorani (Torino 667 cm, 2009) in na prostem (Ptuj 678 cm, 2008)
    • \n
    • udeleženka Olimpijskih iger, Peking, 2008
    • \n
    • 3. mesto na Mediteranskih igrah, 2009
    • \n
    • 2. mesto na Sredozemskih igrah, 2013
    • \n
    • 4. mesto na dvoranskem evropskem prvenstvu, Italija 2009
    • \n
    \n
    \n\n MINA MARKOVIČ (ŠPORTNO PLEZANJE)\n
      \n
    • 6x državna prvakinja Slovenije
    • \n
    • skupna zmagovalka svetovnega pokala v težavnostnem plezanju v letih 2011, 2012 in 2015
    • \n
    • 2. mesto v skupnem seštevku svetovnega pokala 2010, 2013 in 2014
    • \n
    • 1. mesto na 21 tekmah svetovnega pokala
    • \n
    • Evropska prvakinja v težavnostnem plezanju 2015, Chamonix
    • \n
    • Evropska podprvakinja v težavnostnem plezanju in kombinaciji 2015, 2017
    • \n
    • 1. mesto na svetovnih igrah v težavnostnem plezanju 2013
    • \n
    • vojaška svetovna prvakinja v težavnostnem plezanju 2018
    • \n
    \n
    \n\n BLAŽ ROLA (TENIS)\n
      \n
    • 1. mesto, Slovenija Evropski ekipni prvak do 18 let, 2008
    • \n
    • nastop na Davisovem pokalu, 2010
    • \n
    • zmagovalec ameriškega univerzitetnega prvenstva NCAA v dvojicah, 2012
    • \n
    • zmagovalec ameriškega univerzitetnega prvenstva NCAA posamezno, 2013
    • \n
    • 2 zlati medalji na sredozemskih igrah v Turčiji, 2013
    • \n
    • 9 osvojenih turnirjev serije Futures, v dvojicah pa 6 turnirjev Futures in 1 Challenger
    • \n
    • kvalifikacijska uvrstitev na glavni turnir za Grand Slam, 2014
    • \n
    • nastop na odprtem prvenstvu Avstralije, 2014
    • \n
    • nastop na turnirju Wimbledon, 2014
    • \n
    • 78. mesto na ATP lestvici
    • \n
    • osvojen turnirji: Kitajska – Guangzhou, 2013, Challenger Santos – Brazilija 2015 in Challenger Tallahassce – USA, 2017 -najboljši slovenski teniški igralec leta 2014 2015
    • \n
    • 158. mesto na ATP lestvici
    • \n
    \n\n MAJA BEDRAČ (ATLETIKA, SKOK V DALJINO)\n
      \n
    • večkratna državna prvakinja v skoku v daljino v mladinskih kategorijah
    • \n
    • nosilka državnih rekordov v mladinskih kategorijah
    • \n
    • 3. mesto na svetovnem prvenstvu za mlajše mladinke, 2015
    • \n
    • 1. mesto na Olimpijskem festivalu mladine, Tbilisi, 2015
    • \n
    • 1. mesto na Balkanskem ekipnem prvenstvu Velenje,2015
    • \n
    • 2. mesto na Evropskem prvenstvu za mlajše mladinke, Tbilisi, 2016
    • \n
    • 1. mesto na Balkanskem prvenstvu za mlajše mladine, Srbija, 2016\t
    • \n
    • 1. mesto na Brixia (Italija) miting, , 2016
    • \n
    • 1. mesto na Slovenskem državnem prvenstvupri članicah, 2017
    • \n
    • 1. mesto na Svetovni lestvici za mlajše mladinke, 2016
    • \n
    \n\n JURČEK KORPIČ LESJAK (ATLETIKA, MET KLADIVA, KROGLA)\n
      \n
    • 3. mesto na ekipnem prvenstvu Slovenije za mladince in mladinke – kladivo 38, 30 m
    • \n
    • 1. mesto na prvenstvu slovenije v suvanju krogle – 13,89 m
    • \n
    • 1. mesto na spomladanskem mitingu v metih – kladivo - 44,67m
    • \n
    • 1. mesto na drugem mednarodnem mitingu v metih – krogla 13,01m
    • \n
    • 1. mesto na ekipnem prvenstvu Slovenije za pionirje – kladivo
    • \n
    • 1. mesto na ekipnem prvenstvu Slovenije za pionirje – kladivo
    • \n
    \n\n LUKA SAGADIN (KOLESARSTVO)\n
      \n
    • 1. mesto na vn Gorje
    • \n
    • 5. mesto na državnem prvenstvu v kronometru
    • \n
    • član slovenske kolesarske reprezentance
    • \n
    • 1. mesto na dirki Radjugendtour, 2015\t\t
    • \n
    • 43. mesto v kronometru na Svetovnem mladinskem prvenstvu za mladince, Italija
    • \n
    • 27. mesto na Evropskem prvenstvu v cestnem kolesarstvu za mladince, Danska 2017
    • \n
    • 1. mesto v 3.etapi Trophee Centre Morbihan
    • \n
    \n\n JURE MATJAŠIČ (NOGOMET)\n
      \n
    • član NK: Zavrč, Domžale; Aluminij; Drava; Celje
    • \n
    • nekdanji član slovenske nogometne reprezentance
    • \n
    • pokalni zmagovalec Slovenije z NK Domžale 2017
    • \n
    \n\n NELI HOFMAN (NOGOMET)\n
      \n
    • članica ŽNK: MSM Ptuj, Telemach GMT Beltinci, Nona Pomurje Beltinci
    • \n
    • članica slovenske reprezentance do 17 in 19 let
    • \n
    \n\n MAJA MAKORIČ (TENIS)\n
      \n
    • 292. mesto na ITF junior lestvici leta 2018
    • \n
    • zmagovalka turnirja Maribor 2019
    • \n
    \n\n MATJAŽ ROZMAN (NOGOMET)\n
      \n
    • član NK: Aluminij, Interblock, Greuther Furth, Without Club, NK Rudar Velenje, NK Slaven Belupo, NK Celje
    • \n
    • državni prvak z NK Celje, 2020
    • \n
    • pokalni zmagovalec z NK Interblock, 2009
    • \n
    \n\n TARA GORINŠEK (TENIS)\n
      \n
    • finalistka turnirja Poreč 2020
    • \n
    • 590. mesto na ITF lestvici
    • \n
    \n\n TAŠA ROJKO (KONJENIŠTVO)\n
      \n
    • ekipna zlata medalja na mladinskem Blakanskem prvenstvu v dresurnem jahanju
    • \n
    • 3. mesto v točkovanju za Pokal Slovenije
    • \n
    \n\n ZALA CUNK (ATLETIKA)\n
      \n
    • 1. mesto v metu diska na PS za mlajše mladince in mladinke, Nova Gorica 2019
    • \n
    • 2. mesto v metu diska na PS za starejše mladince in mladinke, Novo mesto 2019
    • \n
    • 4. mesto v metu diska na četveroboju reprezentanc mlajših mladincev in mladink, Madžarska 2019
    • \n
    • 16. mesto na Svetovnem šolskem prvenstvu v rokometu, Portugalska 2010
    • \n
    \n\n BLAŽ VIDOVIČ (TENIS)\n
      \n
    • finale turnirja v Oberpullendorfu
    • \n
    • polfinale turnirja v Tremosinu
    • \n
    • 492. mesto na ITF lestvici
    • \n
    \n\n\n ROKOMETNA EKIPA GIMNAZIJE PTUJ\n
      \n
    • zmagovalci mednarodnega rokometnega turnirja Daf Cup Zaprešič 2015, 2016, 2017, 2018 in 2019
    • \n
    \n
    \n )}\n \n );\n }\n}","import * as React from 'react';\nimport { Carousel } from 'react-bootstrap';\nimport { State } from '../../state';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level9 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 9;\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(9);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n
    \n

    Pouk pri umetniških predmetih

    \n
    \n \n\n

    \n
    \n
    \n \n {[\n \"/img/sliders/stoli/0.jpg\",\n \"/img/sliders/stoli/1.jpg\",\n \"/img/sliders/stoli/2.jpg\",\n \"/img/sliders/stoli/3.jpg\",\n \"/img/sliders/stoli/4.jpg\",\n \"/img/sliders/stoli/5.jpg\",\n \"/img/sliders/stoli/6.jpg\",\n \"/img/sliders/stoli/7.jpg\",\n \"/img/sliders/stoli/8.jpg\",\n \"/img/sliders/stoli/9.jpg\",\n \"/img/sliders/stoli/10.jpg\",\n \"/img/sliders/stoli/11.jpg\",\n \"/img/sliders/stoli/12.jpg\",\n \"/img/sliders/stoli/13.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n \n\n

    \n
    \n
    \n \n {[\n \"/img/sliders/dramoris/0.jpg\",\n \"/img/sliders/dramoris/1.jpg\",\n \"/img/sliders/dramoris/2.jpg\",\n \"/img/sliders/dramoris/3.jpg\",\n \"/img/sliders/dramoris/4.jpg\",\n \"/img/sliders/dramoris/5.jpg\",\n \"/img/sliders/dramoris/6.jpg\",\n \"/img/sliders/dramoris/7.jpg\",\n \"/img/sliders/dramoris/8.jpg\",\n \"/img/sliders/dramoris/9.jpg\",\n \"/img/sliders/dramoris/10.jpg\",\n \"/img/sliders/dramoris/11.jpg\",\n \"/img/sliders/dramoris/12.jpg\",\n \"/img/sliders/dramoris/13.jpg\",\n \"/img/sliders/dramoris/14.jpg\",\n \"/img/sliders/dramoris/15.jpg\",\n \"/img/sliders/dramoris/16.jpg\",\n \"/img/sliders/dramoris/17.jpg\",\n \"/img/sliders/dramoris/18.jpg\",\n \"/img/sliders/dramoris/19.jpg\",\n \"/img/sliders/dramoris/20.jpg\",\n \"/img/sliders/dramoris/21.jpg\",\n \"/img/sliders/dramoris/22.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/foto/0.jpg\",\n \"/img/sliders/foto/1.jpg\",\n \"/img/sliders/foto/2.jpg\",\n \"/img/sliders/foto/3.jpg\",\n \"/img/sliders/foto/4.jpg\",\n \"/img/sliders/foto/5.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/risanje/0.jpg\",\n \"/img/sliders/risanje/1.jpg\",\n \"/img/sliders/risanje/2.jpg\",\n \"/img/sliders/risanje/3.jpg\",\n \"/img/sliders/risanje/4.jpg\",\n \"/img/sliders/risanje/5.jpg\",\n \"/img/sliders/risanje/6.jpg\",\n \"/img/sliders/risanje/7.jpg\",\n \"/img/sliders/risanje/8.jpg\",\n \"/img/sliders/risanje/9.jpg\",\n \"/img/sliders/risanje/10.jpg\",\n \"/img/sliders/risanje/11.jpg\",\n \"/img/sliders/risanje/12.jpg\",\n \"/img/sliders/risanje/13.jpg\",\n \"/img/sliders/risanje/14.jpg\",\n \"/img/sliders/risanje/15.jpg\",\n \"/img/sliders/risanje/16.jpg\",\n \"/img/sliders/risanje/17.jpg\",\n \"/img/sliders/risanje/18.jpg\",\n \"/img/sliders/risanje/19.jpg\",\n \"/img/sliders/risanje/20.jpg\",\n \"/img/sliders/risanje/21.jpg\",\n \"/img/sliders/risanje/22.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n
    \n \n {[\n \"/img/sliders/tehnike/0.jpg\",\n \"/img/sliders/tehnike/1.jpg\",\n \"/img/sliders/tehnike/2.jpg\",\n \"/img/sliders/tehnike/3.jpg\",\n \"/img/sliders/tehnike/4.jpg\",\n \"/img/sliders/tehnike/5.jpg\",\n \"/img/sliders/tehnike/6.jpg\",\n \"/img/sliders/tehnike/7.jpg\",\n \"/img/sliders/tehnike/8.jpg\",\n \"/img/sliders/tehnike/9.jpg\",\n \"/img/sliders/tehnike/10.jpg\",\n \"/img/sliders/tehnike/11.jpg\",\n \"/img/sliders/tehnike/12.jpg\",\n \"/img/sliders/tehnike/13.jpg\",\n \"/img/sliders/tehnike/14.jpg\",\n \"/img/sliders/tehnike/15.jpg\"\n ].map(link => (\n \n \n \n ))}\n \n
    \n
    \n\n
    \n \n );\n }\n}","import * as React from 'react';\nimport { Carousel } from 'react-bootstrap';\nimport { State } from '../../state';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level10 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 10;\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(10);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Dijaška skupnost

    \n
    \n
    \n \n {[\n [\"/img/sliders/dijaska/0.jpg\"],\n [\"/img/sliders/dijaska/1.jpg\"],\n [\"/img/sliders/dijaska/2.jpg\"],\n [\"/img/sliders/dijaska/3.jpg\"],\n [\"/img/sliders/dijaska/4.jpg\"],\n [\"/img/sliders/dijaska/5.jpg\"],\n [\"/img/sliders/dijaska/6.jpg\"],\n [\"/img/sliders/dijaska/7.jpg\"],\n [\"/img/sliders/dijaska/8.jpg\"],\n ].map(link => {\n const ky: any = link[0];\n const el: any = link[1];\n\n return (\n \n \n \n {el}\n \n \n )\n })}\n \n
    \n
    \n\n
    \n \n
    \n \n );\n }\n}","import * as React from 'react';\nimport { State } from '../../state';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\n\nexport default class Level11 extends React.PureComponent<{}, {}> {\n colorClass: string;\n level: number = 11;\n \n items: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Učbeniški sklad\",\n pointOfInterest: 80,\n image: \"/img/covers/book-cover.jpg\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    \n V sklopu šolske knjižnice Gimnazije Ptuj je tudi učbeniški sklad, v katerem si naši dijaki lahko izposodijo učbenike predpisane za posamezni letnik. Dijaki 1., 2. in 3. letnikov si lahko izposodijo učbeniške komplete, dijaki 4. letnikov pa si ob učbenikih za slovenščino, matematiko in zgodovino lahko izposodijo še predpisane učbenike izbranih izbirnih predmetov zaključnega letnika.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Malica\",\n pointOfInterest: 120,\n image: \"/img/covers/food-cover.jpg\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n V glavnem odmoru od 11.15 do 11.45 imajo dijaki Gimnazije Ptuj čas za toplo malico. Vsak dan so dijakom na voljo 3 topli meniji. Poskrbljeno pa je tudi za dijake s predpisanimi dietami. Na toplo malico odhajajo dijaki v Šolski center Ptuj, prigrizke in posladke pa si lahko kupijo tudi v šolski Petici, ki je odprta v času pouka. Za naročanje na malico dijaki uporabljajo sodobni računalniški sistem naročanja hrane, ki omogoča dnevne spremembe in odpovedi naročila.\n

    \n
    \n ),\n useBackground: false,\n bgClass: \"\"\n }\n ];\n\n constructor(props: any) {\n super(props);\n\n this.colorClass = State.getClassForLevel(11);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n
    \n

    Od osmih do dveh

    \n
    \n \n\n
    \n \n
    \n \n );\n }\n}","import { Certificate } from 'crypto';\nimport * as React from 'react';\nimport { API } from '../../helpers/apiHelper';\nimport { State } from '../../state';\nimport YouTubeEmbed from '../partial/YoutubeEmbed';\nimport { CgSmile, CgSmileMouthOpen, CgSmileNeutral, CgSmileSad } from 'react-icons/cg';\nimport { FaRegAngry } from 'react-icons/fa';\nimport { Table } from 'react-bootstrap';\nimport ItemGrid, { ItemGridItem } from '../animated/itemgrid/itemgrid';\n\nexport default class Level12 extends React.PureComponent<{}, {\n uploadingForm: boolean,\n formSaved: boolean,\n elementarySchool: string | null,\n otherSchool: string | null,\n certainty: number | null,\n program: number | null,\n rating: number | null,\n classNumber: number | null,\n}> {\n colorClass: string;\n level: number = 12;\n\n items: ItemGridItem[] = [\n {\n id: \"c\",\n category: \"\",\n title: \"Športna dokumentacija\",\n pointOfInterest: 80,\n image: \"\",\n backgroundColor: \"#814A0E\",\n content: (\n
    \n

    Učenci, ki se bodo prijavili v športni oddelek, morajo biti registrirani športniki/športnice, kar je razvidno iz uradne Evidence registriranih in kategoriziranih športnikov. Dokazila, ki ji morajo učenci predložiti do 2.3.2022:

    \n\n
      \n
    • zdravniško potrdilo osebnega zdravnika, ali zdravnika specialista medicine dela in športa, ali potrdilo o rednem preventivnem pregledu kandidata v zadnjem letu, iz katerega je razvidno splošno zdravstveno stanje kandidata;
    • \n
    • potrdilo nacionalne panožne športne zveze za vpis v športni oddelek, ki vsebuje:\n
        \n
      • izjavo trenerja o sodelovanju s športnim koordinatorjem in
      • \n
      • podatke o doseženih športnih rezultatih kandidata v zadnjih dveh letih.
      • \n
      \n
    • \n
    \n\n

    \n

    Na podlagi dokazil in opravljenega pogovora z učenci bo šola izdala potrdilo o izpolnjevanju posebnih pogojev za vpis v športni oddelek.

    \n\n

    Dokumentacija je dostopna tudi na:

    \n \n https://www.gov.si/zbirke/storitve/prijava-za-opravljanje-preizkusov-nadarjenosti-znanja-in-spretnosti-in-izpolnjevanje-posebnih-pogojev-za-vpis/\n \n\n

    \n

    \n Dokumentacijo lahko pošljete po pošti na naslov Gimnazija Ptuj, Volkmerjeva cesta 15, 2250 Ptuj (športna dokumentacija) ali oddate osebno v tajništvu šole.\n

    \n

    Dokumenti:

    \n \n\n
    \n ),\n useBackground: true,\n bgClass: \"color-orange\"\n },\n {\n id: \"f\",\n category: \"\",\n title: \"Preizkus likovne nadarjenosti\",\n pointOfInterest: 120,\n image: \"\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    \n PREIZKUS LIKOVNE NADARJENOSTI za vpis v program umetniška gimnazija - likovna smer bo potekal v ponedeljek, 15. 3. 2022, ob 14. uri na Gimnaziji Ptuj.\n

    \n

    \n Prijava: Za opravljanje preizkusa likovne nadarjenosti se je potrebno prijaviti do 2.3.2022. (prijavnica: Prijavnica)\n

    \n

    \n Prijavnico pošljete na: Gimnazija Ptuj, Volkmerjeva cesta 15, 2250 (s pripisom prijava na preizkus) ali na: darja.rokavec@guest.arnes.si\n

    \n
    \n

    \n Preizkus obsega:\n

    \n\n
      \n
    • študijsko risanje konkretnih predmetov z upoštevanjem zakonitosti perspektive, 50 minut;
    • \n
    • preoblikovanje izhodišča (teme, besedila) v likovno delo skozi lastno likovno ustvarjalnost, 60 minut;
    • \n
    • oblika in barva - ustvarjanje abstraktne likovne kompozicije z uporabo trdih(oglatih) in mehkih (krožnih) oblik in barve, 80 minut;
    • \n
    • izdelava določenega tridimenzionalnega objekta – kipa (z upoštevanjem konstrukcijskih in prostorskih zakonitosti) iz papirja (šeleshamerja) z rezanjem, prepogibanjem in lepljenjem, 100 minut.
    • \n
    \n

    \n

    \n S seboj prinesite pet risalnih listov A3, pet listov šeleshamerja A3, svinčnike različnih trdot (HB, B1, B3…), radirko, šilček, tempera ali akrilne barve, pribor za slikanje (različne velikosti čopičev, paleto, lonček za vodo, krpo), škarje, grafični nož (olfa), lepilo, lepilni trak ( pleskarski lepilni trak) trikotnik ali ravnilo.\n

    \n\n

    Veliko ustvarjalnega navdiha vam želimo! 😊

    \n
    \n ),\n useBackground: true,\n bgClass: \"color-yellow\"\n },\n {\n id: \"dd\",\n category: \"\",\n title: \"Priprave na preizkus likovne nadarjenosti\",\n pointOfInterest: 120,\n image: \"\",\n backgroundColor: \"#959684\",\n content: (\n
    \n

    Priprave organiziramo zato, da je preizkus za vas poznana in manj stresna situacija. Vsa obvestila spremljajte na spletni strani www.gimptuj.si

    \n\n
      \n
    • Priprave bodo potekale 9. in 10.3.2022 med 15. in 18. uro, v učilnici 5 na Gimnaziji Ptuj.
    • \n
    • Udeležba na pripravah nikakor ni pogoj za pristop k preizkusu in uspešnost pri preizkusu likovne nadarjenosti.
    • \n
    • Vabimo vas, da se na priprave prijavite. Prijave nam bodo pomagale pri boljši organizaciji delavnic. Prijavite se najkasneje do 25. 2. 2022.
    • \n
    \n

    \n

    Prijavnica na priprave

    \n

    S seboj prinesite različne trdote svinčnikov (HB, B1, B3…), radirko, šilček, tempera ali akrilne barve, različne debeline čopičev, škarje, lepilo, lepilni trak, trikotnik ali ravnilo. Za vse ostale pripomočke bomo poskrbeli na Gimnaziji Ptuj.

    \n

    Vabljeni! 😊

    \n
    \n ),\n useBackground: true,\n bgClass: \"color-yellow-strong\"\n },\n {\n id: \"ersds\",\n category: \"\",\n title: \"Prijavnica za vpis\",\n pointOfInterest: 120,\n image: \"\",\n backgroundColor: \"#959684\",\n content: (\n \n ),\n useBackground: true,\n bgClass: \"color-orange-weak\"\n }\n ];\n\n\n constructor(props: any) {\n super(props);\n this.state = {\n uploadingForm: false,\n formSaved: State.formSaved == 1,\n elementarySchool: null,\n otherSchool: null,\n certainty: null,\n program: null,\n rating: null,\n classNumber: null\n };\n\n this.colorClass = State.getClassForLevel(12);\n this.formShow = this.formShow.bind(this);\n this.formUpload = this.formUpload.bind(this);\n this.onElementarySchoolChange = this.onElementarySchoolChange.bind(this);\n this.onOtherSchoolChange = this.onOtherSchoolChange.bind(this);\n this.onCertaintyChange = this.onCertaintyChange.bind(this);\n this.onRatingChange = this.onRatingChange.bind(this);\n this.onProgramChange = this.onProgramChange.bind(this);\n this.onClassChange = this.onClassChange.bind(this);\n }\n\n componentDidMount() {\n window.scrollTo(0, 0);\n document.body.classList.add(this.colorClass);\n }\n\n componentWillUnmount() {\n document.body.classList.remove(this.colorClass);\n }\n\n onElementarySchoolChange(e: any) {\n this.setState({\n elementarySchool: e.target.value\n })\n }\n\n onOtherSchoolChange(e: any) {\n this.setState({\n otherSchool: e.target.value\n })\n }\n\n onCertaintyChange(e: any) {\n this.setState({\n certainty: +e.target.value\n })\n }\n\n onRatingChange(e: any) {\n this.setState({\n rating: +e.target.value\n })\n }\n\n onProgramChange(e: any) {\n this.setState({\n program: +e.target.value\n })\n }\n\n onClassChange(e: any) {\n this.setState({\n classNumber: +e.target.value\n })\n }\n\n async formUpload() {\n\n this.setState({\n uploadingForm: true\n });\n\n const loginResult = await API.formSave(\n this.state.elementarySchool,\n this.state.otherSchool,\n this.state.program,\n this.state.certainty,\n this.state.rating,\n this.state.classNumber);\n\n this.setState({\n uploadingForm: false\n });\n\n if (typeof loginResult == \"string\") {\n alert(loginResult);\n }\n else {\n State.saveForm();\n this.setState({\n formSaved: true\n });\n }\n }\n\n formShow(props: any) {\n if (!this.state.formSaved) {\n return (\n <>\n

    \n Zelo bi nam pomagalo, če bi odgovoril/a na spodnji vprašalnik! Je popolnoma anonimen.\n

    \n
    e.preventDefault()} className=\"vprasalnik\">\n \n \n\n \n \n\n \n \n\n \n \n\n {this.state.certainty === 2 && <>\n \n \n \n }\n\n \n
    \n
    this.setState({ rating: 5 })}>\n \n
    \n
    this.setState({ rating: 4 })}>\n \n
    \n
    this.setState({ rating: 3 })}>\n \n
    \n
    this.setState({ rating: 2 })}>\n \n
    \n
    this.setState({ rating: 1 })}>\n \n
    \n
    \n\n\n \n
    \n \n )\n }\n else {\n return (\n <>\n

    \n Vprašalnik oddan.\n

    \n \n )\n }\n }\n\n public render() {\n return (\n <>\n
    \n
    \n\n
    \n \n\n

    Vprašalnik

    \n
    \n \n
    \n\n

    Pomembni datumi

    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    DatumOpis
    25.2.2022Prijava na brezplačne priprave za preizkus likovne nadarjenosti
    9. in 10.3.2022Brezplačna priprava na preizkus likovne nadarjenosti
    2.3.2022Prijave za opravljanje preizkusa likovne nadarjenosti
    17.3.2022 ob 14.00Preizkus likovne nadarjenosti za gimnazijo likovne smeri
    2.3.2022Posredovanje dokazil o izpolnjevanju športnih pogojev za vpis v športni oddelek
    od 11.3. do 21.3.2022Ugotavljanje vpisnih pogojev za vpis v športni oddelek z razgovori
    28.3.2022Izdaja potrdil o izpolnjevanju vpisnih pogojev za športni oddelek
    28.3.2022Izdaja potrdil o opravljenem preizkusu likovne nadarjenosti
    2.4.2022Oddaja prijave za vpis v 1. letnik
    8.4.2022Javna objava številčnega stanja prijav
    do 25.4.2022Morebitni prenosi prijav
    do 24.5.2022Obveščanje o omejitvi vpisa
    začetek junijaVabila k vpisu
    med 16.6 in 21.6.2022Vpis (brez omejitve vpisa)
    med 16.6 in 21.6.2022Izvedba 1. kroga (v primeru omejitve vpisa)
    do 30.6.2022Izvedba 2. kroga (v primeru omejitve vpisa)
    do 1.7.2022Vpis sprejetih po 2. krogu
    \n
    \n\n
    \n \n\n \"engineer\"\n
    \n \n );\n }\n}","import * as React from 'react';\n\nexport default class Locked extends React.PureComponent<{}> {\n\n public render() {\n return (\n
    \n

    Zaklenjeno

    \n

    Ta korak je zaklenjen

    \n
    \n );\n }\n}","import * as React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\nimport { State } from '../../state';\n\nexport default class GuardedRoute extends React.PureComponent<{\n onLevelChanged: any,\n levelNumber: number,\n component: any,\n path: string\n}> {\n public render() {\n return (\n { \n if (State.currentLevel >= this.props.levelNumber) {\n if (State.selectedLevel != this.props.levelNumber) {\n this.props.onLevelChanged(this.props.levelNumber);\n }\n\n return ;\n }\n else\n {\n return \n }\n }} /> \n );\n }\n}\n","import * as React from 'react';\nimport { History } from 'history';\nimport { API } from '../../helpers/apiHelper';\nimport { State } from '../../state';\nimport './admin.css';\n\nexport default class Login extends React.PureComponent<{ onLoaded: () => void, history: History }, {\n id: string,\n password: string,\n error: string,\n loggingIn: boolean\n}> {\n constructor(props: any) {\n super(props);\n\n this.state = {\n id: \"\",\n password: \"\",\n error: \"\",\n loggingIn: false\n };\n\n this.onIdChange = this.onIdChange.bind(this);\n this.onPassChange = this.onPassChange.bind(this);\n }\n\n componentDidMount() {\n this.props.onLoaded();\n\n // if already logged in, redirect to dashboard\n if (State.isLoggedIn()) {\n this.props.history.push(\"/dashboard\");\n }\n }\n\n onIdChange(e: any) {\n this.setState({\n id: e.target.value\n })\n }\n\n onPassChange(e: any) {\n this.setState({\n password: e.target.value\n })\n }\n\n async loginRequest(id: string, pass: string) {\n\n this.setState({\n loggingIn: true\n });\n const loginResult = await API.login(id, pass);\n this.setState({\n loggingIn: false\n });\n\n if (typeof loginResult == \"string\") {\n this.setState({\n error: loginResult\n });\n\n alert(loginResult);\n }\n else {\n State.setLogin(loginResult);\n\n // redirect to dashboard\n this.props.history.push(\"/dashboard\");\n }\n }\n\n public render() {\n return (\n
    \n

    Login

    \n
    \n
    e.preventDefault()}>\n \n \n \n
    \n
    \n
    \n );\n }\n};","import * as React from 'react';\nimport { Route } from 'react-router';\nimport { HubConnection, HubConnectionBuilder } from '@microsoft/signalr';\nimport { State } from '../state';\n\nexport default class LogClient {\n connection: HubConnection | null = null;\n logCallback: (log: string, type: number) => void = (l, s) => console.log(\"LOG RECEIVED: \", l, s);\n formCallback: (id: number, ip: string, eSchool: string, oSchool: string, rating: number, certainty: number, program: number, classNumber: number) => void = (i, e, o, r, c, p) => console.log(\"FORM RECEIVED: \", i, e, o, r, c, p);\n sessionCountCallback: (count: number) => void = (c) => { };\n\n constructor(\n logCallback: (log: string, type: number) => void,\n formCallback: (id: number, ip: string, eSchool: string, oSchool: string, rating: number, certainty: number, program: number, classNumber: number) => void,\n sessionCountCallback: (count: number) => void) {\n\n this.logCallback = logCallback;\n this.formCallback = formCallback;\n this.sessionCountCallback = sessionCountCallback;\n\n this.initialize();\n }\n\n public initialize() {\n this.connection = new HubConnectionBuilder()\n .withUrl(\"/hubs/log\", { accessTokenFactory: () => State.login?.token ?? \"\" })\n .withAutomaticReconnect()\n .build();\n\n this.connection.on(\"ReceiveLog\", (message: string, type: number) => {\n this.logCallback(message, type);\n });\n\n this.connection.on(\"ReceiveForm\", (id: number, ip: string, eSchool: string, oSchool: string, rating: number, certainty: number, program: number, classNumber: number) => {\n this.formCallback(id, ip, eSchool, oSchool, rating, certainty, program, classNumber);\n });\n\n this.connection.on(\"SessionCounterUpdate\", (count: number) => {\n this.sessionCountCallback(count);\n });\n\n this.connection.start()\n .then(result => {\n console.log(\"Connected\");\n })\n .catch(e => {\n console.error(\"Connection failed!\", e);\n });\n }\n}","class UtilityClass {\n // returns time in format \"HH:mm\" or \"HH:mm:ss\" from given date\n public getTime(time: Date, showSeconds: boolean = false): string {\n var hours = \"\" + time.getHours();\n var minutes = \"\" + time.getMinutes();\n var seconds = \"\" + time.getSeconds();\n if (time.getHours() <= 9) hours = \"0\" + hours;\n if (time.getMinutes() <= 9) minutes = \"0\" + minutes;\n if (time.getSeconds() <= 9) seconds = \"0\" + seconds;\n\n if (showSeconds) return `${hours}:${minutes}:${seconds}`;\n else return `${hours}:${minutes}`;\n }\n\n // returns current time in format \"HH:mm\" and optional seconds \"HH:mm:ss\"\n public getCurrentTime(showSeconds: boolean = false): string {\n const now = new Date();\n return this.getTime(now, showSeconds);\n }\n\n // returns localized date from UTC date\n public getLocalizedDate(timeUTC: Date, showSeconds: boolean = false): Date {\n let datestring = timeUTC.toString();\n if (datestring.endsWith(\"Z\") === false) datestring += \"Z\";\n const localDate = new Date(datestring);\n return localDate;\n }\n\n // returns current datetime in format \"d.M HH:mm\"\n public getCurrentTimeDateForm(): string {\n return this.getShortDateTime(new Date());\n }\n\n // returns localized datetime in format \"d.M HH:mm\"\n public getLocalizedTimeDateForm(timeUTC: Date): string {\n const date = this.getLocalizedDate(timeUTC);\n return this.getShortDateTime(date);\n }\n\n // returns localized time in format \"HH:mm\" with optional seconds \"HH:mm:ss\"\n public getLocalizedTime(timeUTC: Date, showSeconds: boolean = false): string {\n let datestring = timeUTC.toString();\n if (datestring.endsWith(\"Z\") === false) datestring += \"Z\";\n const localDate = new Date(datestring);\n return this.getTime(localDate, showSeconds);\n }\n\n // returns date in format \"d. MMMM\"\n public getPrettyDate(date: Date): string {\n const d = new Date(date).toLocaleDateString(\"en-US\", { day: 'numeric', month: 'long' })\n\n return d;\n }\n\n // returns date in format \"d. M.\"\n public getShortDate(date: Date): string {\n const d = new Date(date).toLocaleDateString(\"sl-SI\", { day: 'numeric', month: 'numeric' })\n return d;\n }\n\n // returns datetime in format \"d.M | HH:mm\"\n public getShortDateTime(date: Date): string {\n const d = new Date(date);\n\n const dt = `${d.getDate()}.${(d.getMonth() + 1)}`;\n const time = this.getTime(d);\n\n return `${dt} | ${time}`;\n }\n\n // returns full datetime in full format \"d.M.yyyy HH:mm\"\n public getDateTime(d: Date): string {\n var date = new Date(d);\n var hours = \"\" + date.getHours();\n var minutes = \"\" + date.getMinutes();\n var seconds = \"\" + date.getSeconds();\n if (date.getHours() <= 9) hours = \"0\" + hours;\n if (date.getMinutes() <= 9) minutes = \"0\" + minutes;\n if (date.getSeconds() <= 9) seconds = \"0\" + seconds;\n\n var day = \"\" + date.getDate();\n var month = \"\" + (date.getMonth() + 1);\n var year = \"\" + date.getFullYear();\n\n return `${day}.${month}.${year} ${hours}:${minutes}`;\n }\n\n public getProgram(program: number): string {\n switch (program) {\n case 1: return \"Splošna\";\n case 2: return \"Likovna\";\n case 3: return \"Gledališče/Film\";\n case 4: return \"Športna\";\n default: return \"-\";\n }\n }\n\n public getCertainty(certainty: number): string {\n switch (certainty) {\n case 1: return \"Zagotovo\";\n case 2: return \"Neodločen/a\";\n default: return \"-\";\n }\n }\n\n public getRating(rating: number): string {\n switch (rating) {\n case 5: return \"Zelo zadovoljen/a\";\n case 4: return \"Zadovoljen/a\";\n case 3: return \"Nevtralno\";\n case 2: return \"Nezadovoljen/a\";\n case 1: return \"Zelo nezadovoljen/a\";\n default: return \"-\";\n }\n }\n}\n\nexport const Utility = new UtilityClass();","export class SubmittedFormData {\n id: number = 0;\n ip: string = \"\";\n created: Date = new Date();\n elementarySchool: string | null = null;\n otherSchool: string | null = null;\n rating: number = 0;\n certainty: number = 0;\n program: number = 0;\n class: number = 0;\n}","export class LiveEvent {\n id: number = 0;\n isLive: boolean = false;\n caption: string = \"\";\n startTime: string = \"\";\n link: string = \"\";\n}","\nimport * as React from 'react';\nimport './admin.css';\nimport Tabs from 'react-bootstrap/Tabs';\nimport Tab from 'react-bootstrap/Tab';\nimport LogClient from '../../signalr/logClient';\nimport { Utility } from '../../helpers/utility';\nimport { API } from '../../helpers/apiHelper';\nimport { SubmittedFormData } from '../../models/submittedFormData';\nimport { LevelData } from '../../models/levelData';\nimport { State } from '../../state';\nimport { RequestStat } from '../../models/requestStat';\nimport { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';\nimport { LiveEvent } from '../../models/liveEvent';\n\nexport default class Dashboard extends React.PureComponent<{}, {\n sessionCount: number,\n forms: SubmittedFormData[],\n logs: { key: string, time: string, message: string, type: number }[],\n levels: LevelData[],\n reqStats: RequestStat[],\n exportingForms: boolean,\n levelUpdating: boolean,\n masterPasswordRevealed: boolean,\n liveEvents: LiveEvent[]\n}> {\n logClient: LogClient | null = null;\n formLimit: number = 500;\n\n constructor(props: any) {\n super(props);\n\n this.getTraffic = this.getTraffic.bind(this);\n this.downloadCSV = this.downloadCSV.bind(this);\n this.getUniqueIPs = this.getUniqueIPs.bind(this);\n this.levelPasswordChange = this.levelPasswordChange.bind(this);\n this.masterPasswordChange = this.masterPasswordChange.bind(this);\n\n this.state = {\n sessionCount: 1,\n forms: [],\n logs: [],\n levels: [],\n reqStats: [],\n exportingForms: false,\n levelUpdating: false,\n masterPasswordRevealed: false,\n liveEvents: []\n };\n\n this.setupLogHub();\n\n // get initial data\n API.getSessionCount().then(n => {\n this.setState({\n sessionCount: n\n });\n });\n API.getForms().then(forms => {\n this.setState({\n forms: forms.map(frm => {\n const f = new SubmittedFormData();\n f.id = frm.id;\n f.ip = frm.ip;\n f.created = Utility.getLocalizedDate(frm.created);\n f.elementarySchool = frm.elementarySchool;\n f.otherSchool = frm.otherSchool;\n f.rating = frm.rating;\n f.certainty = frm.certainty;\n f.program = frm.program;\n f.class = frm.class;\n\n return f;\n })\n });\n });\n API.getLevelsDetails().then(levels => {\n this.setState({\n levels: levels\n });\n });\n API.getRecentLogs().then(logs => {\n this.setState({\n logs: logs.map((x, index) => ({\n key: index + State.makeid(24),\n message: x.message,\n time: Utility.getLocalizedTimeDateForm(x.time),\n type: x.type\n }))\n });\n });\n API.getCountdown().then(c => {\n if (c == null) {\n this.setState({\n masterPasswordRevealed: false\n });\n }\n else {\n this.setState({\n masterPasswordRevealed: c.password.length > 0\n });\n }\n });\n API.getLiveEvents().then(l => {\n this.setState({\n liveEvents: l\n });\n })\n\n // put this one in a loop (pooling)\n this.refreshRequestStats();\n setInterval(async () => {\n await this.refreshRequestStats();\n }, 1_000 * 60 * 15);\n }\n\n setupLogHub() {\n const logCallback = (log: string, type: number) => {\n const now = Utility.getCurrentTimeDateForm();\n\n const num = this.state.logs.length + State.makeid(24);\n\n // let's limit displayed logs\n while (this.state.logs.length > 2000) this.state.logs.shift();\n\n this.setState({\n logs: this.state.logs.concat([{ key: num, time: now, message: log, type: type }])\n });\n };\n\n const formCallback = (id: number, ip: string, eSchool: string, oSchool: string, rating: number, certainty: number, program: number, classNumber: number) => {\n const f = new SubmittedFormData();\n f.id = id;\n f.ip = ip;\n f.elementarySchool = eSchool;\n f.otherSchool = oSchool;\n f.rating = rating;\n f.created = new Date();\n f.certainty = certainty;\n f.program = program;\n f.class = classNumber;\n\n // let's limit displayed forms\n while (this.state.forms.length > this.formLimit) this.state.forms.pop();\n\n this.state.forms.unshift(f);\n this.setState({\n forms: this.state.forms.slice(0)\n });\n };\n\n const sessionCountCallback = (count: number) => {\n this.setState({\n sessionCount: count\n });\n };\n\n this.logClient = new LogClient(logCallback, formCallback, sessionCountCallback);\n }\n\n async refreshRequestStats(): Promise {\n const stats = await API.getRequestStats();\n\n this.setState({\n reqStats: stats\n })\n }\n\n getTraffic() {\n const data = this.state.reqStats.map(v => ({\n name: Utility.getShortDate(v.day ?? new Date()),\n Count: v.reqCount\n }));\n\n return (\n <>\n
    Request traffic in past 30 days
    \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n getUniqueIPs() {\n const data = this.state.reqStats.map(v => ({\n name: Utility.getShortDate(v.day ?? new Date()),\n Count: v.reqCountUnique\n }));\n\n return (\n <>\n
    Unique IP access in last 30 days:
    \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n async downloadCSV() {\n this.setState({ exportingForms: true });\n const exported = await API.exportFormsToCSV();\n this.setState({ exportingForms: false });\n if (exported == null) {\n alert(\"Failed to export to CSV!\");\n return;\n }\n\n const element = document.createElement(\"a\");\n const file = new Blob([exported?.csv], { type: 'text/plain' });\n element.href = URL.createObjectURL(file);\n element.download = \"exported.csv\";\n document.body.appendChild(element); // Required for this to work in FireFox\n element.click();\n }\n\n levelPasswordChange(e: any, level: LevelData) {\n const newPassword: string = e.target.value;\n\n level.password = newPassword.toLowerCase().trim().replace(\"č\", \"c\").replace(\"š\", \"s\").replace(\"ž\", \"z\");\n\n this.setState({\n levels: this.state.levels.slice(0)\n })\n }\n\n async updatePassword(level: LevelData) {\n this.setState({ levelUpdating: true });\n var editedCount = await API.setLevelPassword(level.id, level.password);\n this.setState({ levelUpdating: false });\n\n if (editedCount === 0) {\n alert(\"Failed to update level!\");\n return;\n }\n }\n\n async saveLive(live: LiveEvent) {\n this.setState({ levelUpdating: true });\n var editedCount = await API.createOrUpdateLiveEvent(live.id, live);\n this.setState({ levelUpdating: false });\n\n if (editedCount === 0) {\n alert(\"Failed to update live event!\");\n return;\n }\n }\n\n async deleteLive(live: LiveEvent) {\n if (window.confirm(\"Are you sure to delete this live event?\") !== true) return;\n\n var index = this.state.liveEvents.findIndex(x => x.id == live.id);\n if (index < 0) {\n alert(\"Failed to delete live event! Does not exist locally.\");\n return;\n }\n\n this.setState({ levelUpdating: true });\n var editedCount = await API.deleteLiveEvent(live.id);\n this.setState({ levelUpdating: false });\n\n if (editedCount === 0) {\n alert(\"Failed to delete live event!\");\n return;\n }\n\n this.state.liveEvents.splice(index, 1);\n this.setState({\n liveEvents: this.state.liveEvents.slice(0)\n })\n }\n\n async createLive() {\n this.setState({ levelUpdating: true });\n const lv = new LiveEvent();\n var newLevel: any = await API.createOrUpdateLiveEvent(null, lv);\n this.setState({ levelUpdating: false });\n\n var nwl: LiveEvent = newLevel;\n if (!newLevel || nwl.id <= 0) {\n alert(\"Failed to create live event!\");\n return;\n }\n\n this.setState({\n liveEvents: this.state.liveEvents.concat([ nwl ])\n })\n }\n\n liveEventCaptionChange(e: any, live: LiveEvent) {\n const newCaption: string = e.target.value;\n\n live.caption = newCaption;\n\n this.setState({\n liveEvents: this.state.liveEvents.slice(0)\n })\n }\n\n liveEventTimeChange(e: any, live: LiveEvent) {\n const newTime: string = e.target.value;\n\n live.startTime = newTime;\n\n this.setState({\n liveEvents: this.state.liveEvents.slice(0)\n })\n }\n\n liveEventLinkChange(e: any, live: LiveEvent) {\n const newLink: string = e.target.value;\n\n live.link = newLink;\n\n this.setState({\n liveEvents: this.state.liveEvents.slice(0)\n })\n }\n\n liveEventLiveChange(e: any, live: LiveEvent) {\n const state: boolean = e.target.checked;\n\n live.isLive = state;\n\n this.setState({\n liveEvents: this.state.liveEvents.slice(0)\n })\n }\n\n async masterPasswordChange(e: any) {\n const state: boolean = e.target.checked;\n const oldval = this.state.masterPasswordRevealed;\n\n if (this.state.levelUpdating) return;\n\n this.setState({\n levelUpdating: true,\n masterPasswordRevealed: state\n });\n\n var output = await API.setCountdown(state ? \"\" : \"hidden\");\n\n if (output == null) {\n // revert on failure\n this.setState({\n masterPasswordRevealed: oldval\n });\n }\n\n this.setState({\n levelUpdating: false\n });\n }\n\n public render() {\n return (\n
    \n

    Dashboard

    \n
    \n \n \n Server status and logs, traffic data\n
    \n Sessions today:
    {this.state.sessionCount}
    \n
    \n
    \n {/*\n TYPES OF LOGS:\n AdministrativeEvent = 1,\n SecurityEvent = 0,\n UserEvents = -1\n */}\n {this.state.logs.slice(0).reverse().map(log => {\n let extraClass = \"\";\n if (log.type === 1) extraClass = \"adminlog\";\n else if (log.type === 0) extraClass = \"securitylog\";\n else if (log.type === -1) return; // ignore user logs here, display them below in separate log list\n\n return (\n
    \n
    {log.time}
    {log.message}
    \n
    \n );\n })}\n
    \n
    \n {this.state.logs.slice(0).reverse().map(log => {\n let extraClass = \"userlog\";\n if (log.type !== -1) return;\n\n return (\n
    \n
    {log.time}
    {log.message}
    \n
    \n );\n })}\n
    \n
    \n \n \n
    \n
    \n \n Website data, level passwords\n
    \n {this.state.levels.map(level => (\n
    \n
    {level.index}
    \n
    {level.caption}
    \n
    \n this.levelPasswordChange(e, level)} />\n \n
    \n
    \n ))}\n
    \n
    \n \n Reveal master password to everyone\n
    \n
    \n
    Live events / links:
    \n {this.state.liveEvents.map(live => (\n
    \n
    \n this.liveEventLiveChange(e, live)} />\n Live\n
    \n this.liveEventTimeChange(e, live)} />\n this.liveEventCaptionChange(e, live)} />\n this.liveEventLinkChange(e, live)} />\n \n \n
    \n ))}\n \n
    \n
    \n \n Displaying up to {this.formLimit} most recent uploaded forms: (Currently: {this.state.forms.length})\n
    \n {this.state.forms.map(form => (\n
    \n
    {Utility.getDateTime(form.created)}
    \n
    {form.ip}
    \n
    {form.elementarySchool}
    \n
    {form.class}
    \n
    {Utility.getProgram(form.program)}
    \n
    {Utility.getCertainty(form.certainty)}
    \n
    {form.otherSchool}
    \n
    {Utility.getRating(form.rating)}
    \n
    \n ))}\n
    \n \n
    \n
    \n
    \n
    \n );\n }\n};","import * as React from 'react';\nimport { Route } from 'react-router';\nimport Layout from './components/Layout';\nimport Home from './components/Home';\nimport { motion } from \"framer-motion\"\nimport './custom.css'\n\nimport Level1 from './components/levels/Level1';\nimport Level2 from './components/levels/Level2';\nimport Level3 from './components/levels/Level3';\nimport Level4 from './components/levels/Level4';\nimport Level5 from './components/levels/Level5';\nimport Level6 from './components/levels/Level6';\nimport Level7 from './components/levels/Level7';\nimport Level8 from './components/levels/Level8';\nimport Level9 from './components/levels/Level9';\nimport Level10 from './components/levels/Level10';\nimport Level11 from './components/levels/Level11';\nimport Level12 from './components/levels/Level12';\n\nimport Locked from './components/Locked';\nimport GuardedRoute from './components/partial/GuardedRoute';\nimport { State } from './state';\nimport { History } from 'history';\nimport { API } from './helpers/apiHelper';\n\nimport { AiFillCloseCircle, AiFillLock } from 'react-icons/ai'\nimport Login from './components/admin/login';\nimport Dashboard from './components/admin/dashboard';\nimport { Redirect } from 'react-router';\nimport { LevelData } from './models/levelData';\nimport { LiveEvent } from './models/liveEvent';\nimport { runInThisContext } from 'vm';\n\nexport default class App extends React.PureComponent<{ history: History }, {\n password: string,\n unlocking: boolean,\n masterPassword: string,\n canRevealMasterPassword: boolean,\n passwordError: string,\n liveEvents: LiveEvent[],\n hideEventPopup: boolean\n}> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n password: \"\",\n unlocking: false,\n masterPassword: \"\",\n canRevealMasterPassword: false,\n passwordError: \"\",\n liveEvents: [],\n hideEventPopup: false\n };\n\n this.levelUnlock = this.levelUnlock.bind(this);\n this.unlockLevelRequest = this.unlockLevelRequest.bind(this);\n this.levelChanged = this.levelChanged.bind(this);\n this.passwordChanged = this.passwordChanged.bind(this);\n this.getUnlockButton = this.getUnlockButton.bind(this);\n this.setPasswordError = this.setPasswordError.bind(this);\n this.showLiveEvents = this.showLiveEvents.bind(this);\n this.hideLiveEvents = this.hideLiveEvents.bind(this);\n\n API.getCountdown().then(c => {\n if (c == null) {\n this.setState({\n masterPassword: \"\",\n canRevealMasterPassword: false\n });\n }\n else {\n this.setState({\n masterPassword: c.password,\n canRevealMasterPassword: c.password.length > 0\n });\n }\n });\n\n API.getLiveEvents().then(l => {\n this.setState({\n liveEvents: l\n });\n\n State.liveEvents = l;\n })\n }\n\n passwordChanged(event: any) {\n this.setState({\n password: event.target.value\n });\n }\n\n async unlockLevelRequest(pass: string, levelIndex: number) {\n\n if (!pass || pass.length == 0) return;\n\n this.setState({ unlocking: true });\n const unlockedLevel: LevelData | null | boolean = await API.unlockLevel(pass, levelIndex, State.currentLevel);\n this.setState({ unlocking: false });\n\n if (unlockedLevel == null) { \n this.setPasswordError(\"Nepravilno geslo!\");\n console.error(\"Incorrect password!\");\n }\n else if (unlockedLevel === false) {\n this.setPasswordError(\"Prehiter si! Malo počakaj in poskusi znova\");\n console.error(\"Too many requests!\");\n }\n else {\n // redirect to newly unlocked page \n\n // TODO: play some animation?\n this.setPasswordError(\"\");\n\n const lv: any = unlockedLevel;\n this.levelUnlock(lv.index, true);\n }\n }\n\n errorTimeoutCounter = 0;\n setPasswordError(error: string) {\n this.setState({\n passwordError: error\n });\n\n const currentCount = ++this.errorTimeoutCounter;\n if (this.errorTimeoutCounter > 300000) this.errorTimeoutCounter = 0;\n\n setTimeout(() => {\n if (currentCount != this.errorTimeoutCounter) return;\n\n this.setState({\n passwordError: \"\"\n });\n }, 3300);\n }\n\n public levelChanged(level: number) {\n State.selectedLevel = level;\n this.forceUpdate();\n }\n\n public levelUnlock(level: number, redirect: boolean) {\n if (State.currentLevel < level) {\n State.setLevel(level);\n this.forceUpdate();\n }\n\n if (redirect) {\n this.props.history.push(State.getRedirectForLevel(level));\n }\n }\n\n getUnlockButton() {\n if (State.isOnMainPage() && State.currentLevel < 12) {\n return (\n <>\n
    \n
    e.preventDefault()} className=\"passwordForm\">\n \n \n
    \n
    \n {this.state.passwordError.length > 0 && (\n
    \n
    \n {this.state.passwordError}\n
    \n
    \n )}\n {this.state.canRevealMasterPassword && (\n
    \n Lahko tudi vse preskočite z geslom \"{this.state.masterPassword}\"\n
    \n )}\n {!this.state.canRevealMasterPassword && (\n
    \n Geslo se nahaja v posnetku!\n
    \n )}\n \n );\n }\n else return (\n
    \n );\n }\n\n hideLiveEvents(){\n this.setState({\n hideEventPopup: true\n });\n }\n\n showLiveEvents() {\n // events are shown on level 3 anyway - so we can ignore it there\n if (!State.isOnMainPage() || \n State.selectedLevel === 3 || \n this.state.hideEventPopup === true) return (
    );\n\n let numLive = 0;\n this.state.liveEvents.forEach(l => numLive += l.isLive ? 1 : 0);\n if (numLive === 0) return (
    );\n\n // show current live events in the corner\n return (\n
    \n
    \n
    this.hideLiveEvents()}>
    \n Dogodki v živo:\n {this.state.liveEvents.map(l => {\n if (!l.isLive) return;\n\n return (\n
    \n
    {l.startTime}
    \n \n
    \n )\n })}\n
    \n )\n }\n\n public render() {\n const self = this;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ( self.forceUpdate()} />)} />\n\n {\n if (State.isLoggedIn()) return ;\n else return \n }} />\n\n \n\n \n\n \n \n )\n }\n};\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const url = process.env.PUBLIC_URL as string;\n const publicUrl = new URL(url, window.location.toString());\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing as ServiceWorker;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'bootstrap/dist/css/bootstrap.css';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Router } from 'react-router';\nimport { createBrowserHistory } from 'history';\nimport App from './App';\nimport { unregister } from './registerServiceWorker';\nimport { State } from './state';\n\n// load state data from localStorage\nState.loadData();\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\nconst history = createBrowserHistory({ basename: baseUrl });\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root'));\n\nunregister();"],"sourceRoot":""}