{"version":3,"sources":["state/GlobalState.js","services/ServiceResponse.js","services/AuthService.js","services/CoursesService.js","common/Common.js","components/Login.js","services/CategoriesService.js","components/Categories.js","components/Contact.js","components/Course.js","components/MonthEvents.js","components/verticalFade.js","components/Courses.js","components/Layout.js","components/jquery.slimmenu.min.js","App.js","registerServiceWorker.js","index.js"],"names":["initialState","isSigned","localStorage","getItem","keys","reducer","state","action","type","payload","GlobalContext","createContext","GlobalProvider","children","useReducer","dispatchers","dispatch","setIsSigned","removeItem","getDispatchers","Provider","value","ServiceResponse","succeeded","status","message","data","this","AuthService","birthYear","employeeNumber","fetch","method","headers","body","JSON","stringify","response","ok","text","length","jsonData","parse","hasOwnProperty","console","log","code","CoursesService","cat","search","queryString","replace","Authorization","courseId","fn","then","filename","get","split","blob","url","window","URL","createObjectURL","a","document","createElement","href","download","click","err","Common","Login","authSvc","useContext","useState","setBirthYear","setEmployeeNumber","smsCode","setSmsCode","showSmsCode","setShowSmsCode","phone","setPhone","login","errorMessage","isNaN","Number","displayError","codeCheck","token","setItem","signin","className","src","alt","id","runat","onChange","e","target","maxLength","onClick","errorTitle","errorMessageTitle","undefined","Swal","fire","title","html","icon","addToFileName","fileName","stringToAdd","seperatorIndex","lastIndexOf","substring","register","event","withManagerApproval","isFull","isRegistered","courseName","courseTypeName","classList","contains","MySwal","withReactContent","downloadFile","coursesService","add","downloadCourse","showCancelButton","confirmButtonText","cancelButtonText","result","isConfirmed","CategoriesService","Categories","props","categories","setCategories","useEffect","categoriesService","getCategories","map","category","key","to","replaceAll","categoryName","Contact","Course","courseImage","course","courseType","submitButtonClass","class","courseCategoryNames","teacher","numberOfSessions","courseMonth","courseStartDate","courseEndDate","courseHours","includes","courseLocation","courseDescription","syllabus","context","jQuery","closest","verticalFade","duration","complete","dangerouslySetInnerHTML","__html","MonthEvents","monthNames","months","month","events","courses","filter","obj","col1","col2","i","push","currentMonth","currentYear","substr","$","getUnqueuedOpts","opts","queue","easing","showDown","stop","hide","slideDown","animate","opacity","hideUp","show","slideUp","is","Courses","setCourses","setMonths","categoryDetails","setCategoryDetails","getCourses","params","useParams","typeParam","catTypeParam","URLSearchParams","location","showArrows","dynamicHeight","showStatus","showIndicators","showThumbs","infiniteLoop","autoPlay","animationHandler","CategoryHook","HeaderTitle","HeaderImage","HeaderText","ReadMoreText","readMoreButton","find","Layout","slimmenu","resizeWidth","collapserTitle","easingEffect","animSpeed","indentChildren","childrenIndenter","catParam","searchParam","history","useHistory","setSearch","onKeyDown","searchTbKeyDownHandler","c","g","d","f","b","h","element","$elem","options","extend","init","cW","prototype","k","j","before","prev","on","m","preventDefault","stopPropagation","l","hasClass","removeClass","addClass","slideToggle","resizeMenu","el","documentElement","clientWidth","each","has","append","width","parents","prepend","indent","off","remove","App","path","Boolean","hostname","match","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.ddfbb247.chunk.js","sourcesContent":["import React, { createContext, useReducer } from 'react';\r\n\r\nconst initialState = {\r\n  isSigned: localStorage.getItem(\"token\") != null\r\n}\r\n\r\nconst keys = {\r\n  setIsSigned: 'set_is_signed'\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n  switch (action.type) {\r\n    case keys.setIsSigned:\r\n      return {\r\n        ...state,\r\n        isSigned: action.payload\r\n      }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n\r\nconst getDispatchers = (state, dispatch) => {\r\n  return {\r\n    setIsSigned(payload) {\r\n      if (!payload) {\r\n        localStorage.removeItem(\"token\");\r\n      }\r\n      dispatch({ type: keys.setIsSigned, payload });\r\n    },\r\n  };\r\n}\r\n\r\nexport const GlobalContext = createContext(initialState);\r\n\r\nexport const GlobalProvider = ({ children }) => {\r\n  const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n  const dispatchers = getDispatchers(state, dispatch);\r\n\r\n  return (\r\n    <GlobalContext.Provider value={{ ...state, ...dispatchers }}>\r\n      {children}\r\n    </GlobalContext.Provider>\r\n  )\r\n}","export default class ServiceResponse {\r\n    constructor(succeeded, status, message, data) {\r\n        this.succeeded = succeeded;\r\n        this.status = status;\r\n        this.message = message;\r\n        this.data = data;\r\n    }\r\n}\r\n","import ServiceResponse from './ServiceResponse';\r\n\r\nexport default class AuthService {\r\n    async signin(birthYear, employeeNumber) {\r\n        try {\r\n            let succeeded = false;\r\n            let status = \"\";\r\n            let message = \"\";\r\n\r\n            let response = await fetch(\"/AuthContoller/Login\", {\r\n                method: \"POST\",\r\n                headers: {\r\n                    \"Content-Type\": \"application/json\",\r\n                },\r\n                body: JSON.stringify({ birthYear, employeeNumber }),\r\n            });\r\n\r\n            succeeded = response.ok;\r\n            status = response.status;\r\n\r\n            let data = await response.text();\r\n            if (data.length > 0) {\r\n                try {\r\n                    let jsonData = JSON.parse(data);\r\n                    data = jsonData;\r\n                    if (data.hasOwnProperty(\"message\"))\r\n                        message = data.message\r\n                }\r\n                catch { }\r\n            }\r\n\r\n            return new ServiceResponse(succeeded, status, message, data);\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n\r\n    async codeCheck(birthYear, employeeNumber, code) {\r\n        try {\r\n            let succeeded = false;\r\n            let status = \"\";\r\n            let message = \"\";\r\n\r\n            let response = await fetch(\"/AuthContoller/ValidateCode\", {\r\n                method: \"POST\",\r\n                headers: {\r\n                    \"Content-Type\": \"application/json\",\r\n                },\r\n                body: JSON.stringify({ birthYear, employeeNumber, code }),\r\n            });\r\n\r\n            succeeded = response.ok;\r\n            status = response.status;\r\n\r\n            let data = await response.text();\r\n            if (data.length > 0) {\r\n                try {\r\n                    let jsonData = JSON.parse(data);\r\n                    data = jsonData;\r\n                    if (data.hasOwnProperty(\"message\"))\r\n                        message = data.message\r\n                }\r\n                catch { }\r\n            }\r\n\r\n            return new ServiceResponse(succeeded, status, message, data);\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n}","import ServiceResponse from './ServiceResponse';\r\n\r\nexport default class CoursesService {\r\n    async getCourses(type, cat, search) {\r\n        try {\r\n            let succeeded = false;\r\n            let status = \"\";\r\n            let message = \"\";\r\n\r\n            let queryString = \"\";\r\n            if (type !== null && type !== \"\" && type !== \"all\")\r\n                queryString += `&CourseType=${type}`;\r\n            if (cat !== null && cat !== \"\" && cat !== \"all\")\r\n                queryString += `&CourseCategory=${cat}`;\r\n            if (search !== null && search !== \"\")\r\n                queryString += `&SearchText=${search}`;\r\n\r\n            if (queryString !== \"\")\r\n                queryString = queryString.replace('&', '?');\r\n            \r\n            let response = await fetch(`/CoursesContoller/GetCourses${queryString}`, {\r\n                method: \"GET\",\r\n                headers: {\r\n                    Authorization: \"Bearer \" + localStorage.getItem(\"token\")\r\n                },\r\n            });\r\n\r\n            succeeded = response.ok;\r\n            status = response.status;\r\n\r\n            let data = await response.text();\r\n            if (data.length > 0) {\r\n                try {\r\n                    let jsonData = JSON.parse(data);\r\n                    data = jsonData;\r\n                    if (data.hasOwnProperty(\"message\"))\r\n                        message = data.message\r\n                }\r\n                catch { }\r\n            }\r\n            \r\n            return new ServiceResponse(succeeded, status, message, data);\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n\r\n    async register(courseId) {\r\n        try {\r\n            let succeeded = false;\r\n            let status = \"\";\r\n            let message = \"\";\r\n\r\n            let response = await fetch(\"/CoursesContoller/Register\", {\r\n                method: \"POST\",\r\n                headers: {\r\n                    \"Content-Type\": \"application/json\",\r\n                    Authorization: \"Bearer \" + localStorage.getItem(\"token\")\r\n                },\r\n                body: JSON.stringify({ courseId }),\r\n            });\r\n\r\n            succeeded = response.ok;\r\n            status = response.status;\r\n\r\n            let data = await response.text();\r\n            if (data.length > 0) {\r\n                try {\r\n                    let jsonData = JSON.parse(data);\r\n                    data = jsonData;\r\n                    if (data.hasOwnProperty(\"message\"))\r\n                        message = data.message\r\n                }\r\n                catch { }\r\n            }\r\n\r\n            return new ServiceResponse(succeeded, status, message, data);\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n\r\n    async downloadCourse(courseId, fn) {\r\n        try {\r\n            fetch(\"/CoursesContoller/CourseDownload?courseId=\" + courseId, {\r\n                method: \"GET\",\r\n                headers: {\r\n                    \"Content-Type\": \"application/json\",\r\n                    Authorization: \"Bearer \" + localStorage.getItem(\"token\")\r\n                }\r\n            })\r\n            .then(response => {\r\n                const filename = response.headers.get('Content-Disposition').split('; ')[1].replace('filename=', '');\r\n                response.blob().then(blob => {\r\n                    let url = window.URL.createObjectURL(blob);\r\n                    let a = document.createElement('a');\r\n                    a.href = url;\r\n                    a.download = filename;\r\n                    a.click();\r\n                });\r\n            });\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n}","import React from 'react';\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport CoursesService from \"../services/CoursesService\";\r\nimport Swal from 'sweetalert2'\r\n\r\nexport default class Common {\r\n    static displayError = (errorMessage, errorTitle) => {\r\n        var errorMessageTitle = \"׳©׳’׳™׳׳”\";\r\n        if (errorTitle !== undefined && errorTitle !== null && errorTitle !== \"\")\r\n            errorMessageTitle += \" - \" + errorTitle\r\n\r\n        Swal.fire({\r\n            title: errorMessageTitle,\r\n            html: errorMessage,\r\n            icon: 'error'\r\n        })\r\n    }\r\n\r\n    static addToFileName = (fileName, stringToAdd) => {\r\n        var seperatorIndex = fileName.lastIndexOf('.');\r\n        return fileName.substring(0, seperatorIndex) + stringToAdd + fileName.substring(seperatorIndex, fileName.length);\r\n    }\r\n\r\n    static register = async (event, courseId, withManagerApproval, isFull, isRegistered, courseName, courseTypeName) => {\r\n        if ((isRegistered || event.target.classList.contains(\"course-full\")) && !withManagerApproval) {\r\n            Common.displayError(\"׳”׳‘׳§׳©׳” ׳©׳œ׳š ׳œ׳”׳¨׳©׳ž׳” ׳”׳×׳§׳‘׳œ׳”.<br />׳”׳׳™׳©׳•׳¨ ׳”׳¡׳•׳₪׳™ ׳œ׳”׳¨׳©׳ž׳” ׳œ׳§׳•׳¨׳¡ ׳™׳™׳ ׳×׳Ÿ ׳¢׳œ ׳™׳“׳™ ׳¦׳•׳•׳× ׳”׳”׳“׳¨׳›׳”.\", \"\");\r\n            return false;\r\n        }\r\n        else if ((isRegistered) && withManagerApproval) {\r\n            const MySwal = withReactContent(Swal)\r\n\r\n            await MySwal.fire({\r\n                title: <></>,\r\n                html: <>׳”׳‘׳§׳©׳” ׳©׳œ׳š ׳œ׳”׳¨׳©׳ž׳” ׳”׳×׳§׳‘׳œ׳”. ׳׳ ׳ ׳”׳¢׳‘׳¨\\׳™ ׳׳× ׳”׳˜׳•׳₪׳¡ ׳©׳”׳•׳¨׳“׳× ׳ž׳œ׳ ׳•׳—׳×׳•׳.<br />׳”׳׳™׳©׳•׳¨ ׳”׳¡׳•׳₪׳™ ׳œ׳”׳¨׳©׳ž׳” ׳œ׳§׳•׳¨׳¡ ׳™׳™׳ ׳×׳Ÿ ׳¢׳œ ׳™׳“׳™ ׳¦׳•׳•׳× ׳”׳”׳“׳¨׳›׳”.<br />׳œ׳”׳•׳¨׳“׳” ׳—׳•׳–׳¨׳× ׳©׳œ ׳”׳˜׳•׳₪׳¡ <a className=\"underline pointer\" onClick={e => Common.downloadFile(courseId)}>׳œ׳—׳¦\\׳™ ׳›׳׳Ÿ</a>.</>,\r\n                icon: 'info'\r\n            })\r\n\r\n            return false;\r\n        }\r\n        \r\n        if (isFull) {\r\n            Common.displayError(\"׳”׳§׳•׳¨׳¡ ׳ž׳œ׳\", \"\");\r\n            return false;\r\n        }\r\n        \r\n        if (withManagerApproval) {\r\n            const coursesService = new CoursesService();\r\n            let response = await coursesService.register(courseId);\r\n\r\n            if (!response.succeeded) {\r\n                Common.displayError(response.message, \"\");\r\n                return;\r\n            }\r\n\r\n            let sender = event.target;\r\n            sender.classList.add('course-full');\r\n\r\n            if (response.data != null && response.data[\"filename\"] != null && response.data[\"filename\"] != \"\") {\r\n                coursesService.downloadCourse(courseId);\r\n            }\r\n\r\n            Swal.fire({\r\n                title: \"׳©׳™׳/׳™ ׳œ׳‘!\",\r\n                text: \"׳¢׳œ ׳ž׳ ׳× ׳œ׳”׳©׳œ׳™׳ ׳׳× ׳”׳”׳¨׳©׳ž׳” ׳™׳© ׳œ׳”׳—׳×׳™׳ ׳׳× ׳”׳ž׳ ׳”׳œ\\\\׳× ׳¢׳œ ׳”׳§׳•׳‘׳¥ ׳”׳ž׳¦׳•׳¨׳£.\",\r\n                icon: 'info'\r\n            })\r\n        }\r\n        else {\r\n            Swal.fire({\r\n                title: '׳œ׳—׳¥ ׳׳™׳©׳•׳¨ ׳›׳“׳™ ׳œ׳”׳™׳¨׳©׳ ׳œ' + courseTypeName + ' ' + courseName,\r\n                showCancelButton: true,\r\n                confirmButtonText: '׳׳™׳©׳•׳¨',\r\n                cancelButtonText: `׳‘׳˜׳œ`,\r\n            }).then(async (result) => {\r\n                if (result.isConfirmed) {\r\n                    const coursesService = new CoursesService();\r\n                    let response = await coursesService.register(courseId);\r\n\r\n                    if (!response.succeeded) {\r\n                        Common.displayError(response.message, \"\");\r\n                        return;\r\n                    }\r\n\r\n                    let sender = event.target;\r\n                    sender.classList.add('course-full');\r\n\r\n                    if (response.data != null && response.data[\"filename\"] != null && response.data[\"filename\"] != \"\") {\r\n                        coursesService.downloadCourse(courseId);\r\n                    }\r\n\r\n                    Swal.fire({\r\n                        title: \"׳”׳‘׳§׳©׳” ׳©׳œ׳š ׳œ׳”׳¨׳©׳ž׳” ׳”׳×׳§׳‘׳œ׳”.<br />׳”׳׳™׳©׳•׳¨ ׳”׳¡׳•׳₪׳™ ׳œ׳”׳¨׳©׳ž׳” ׳œ׳§׳•׳¨׳¡ ׳™׳™׳ ׳×׳Ÿ ׳¢׳œ ׳™׳“׳™ ׳¦׳•׳•׳× ׳”׳”׳“׳¨׳›׳”.\",\r\n                        icon: 'success'\r\n                    })\r\n                }\r\n            })\r\n        }\r\n    }\r\n\r\n    static downloadFile = (courseId) => {\r\n        const coursesService = new CoursesService();\r\n        coursesService.downloadCourse(courseId);\r\n    }\r\n}\r\n\r\n//export function displayError(errorMessage, errorTitle) {\r\n//    var errorMessageTitle = \"׳©׳’׳™׳׳”\";\r\n//    if (errorTitle != undefined && errorTitle != null && errorTitle != \"\")\r\n//        errorMessageTitle += \" - \" + errorTitle\r\n\r\n//    Swal.fire({\r\n//        title: errorMessageTitle,\r\n//        text: errorMessage,\r\n//        icon: 'error'\r\n//    })\r\n//}\r\n","import React, { useState, useContext } from \"react\";\r\nimport { GlobalContext } from '../state/GlobalState';\r\nimport AuthService from \"../services/AuthService\";\r\nimport Common from '../common/Common';\r\n\r\nexport default function Login() {\r\n    const authSvc = new AuthService();\r\n    const { setIsSigned } = useContext(GlobalContext)\r\n    const [birthYear, setBirthYear] = useState(\"\");\r\n    const [employeeNumber, setEmployeeNumber] = useState(\"\");\r\n    const [smsCode, setSmsCode] = useState(\"\");\r\n    const [showSmsCode, setShowSmsCode] = useState(false);\r\n    const [phone, setPhone] = useState(false);\r\n\r\n    const login = async () => {\r\n        if (showSmsCode) { //sms code check\r\n            //#region validation\r\n\r\n            let errorMessage = \"\";\r\n\r\n            if (birthYear === \"\") { errorMessage += \"׳”׳›׳ ׳¡ ׳©׳ ׳× ׳œ׳™׳“׳”<br />\"; }\r\n            else if (birthYear.length !== 4 || isNaN(birthYear) || Number(birthYear < 1920) || Number(birthYear > 2010)) { errorMessage += \"׳©׳ ׳× ׳œ׳™׳“׳” ׳œ׳ ׳—׳•׳§׳™׳×<br />\"; }\r\n\r\n            if (employeeNumber === \"\") { errorMessage += \"׳”׳›׳ ׳¡ ׳ž׳¡׳³ ׳¢׳•׳‘׳“<br />\"; }\r\n            else if (isNaN(employeeNumber)) { errorMessage += \"׳ž׳¡׳³ ׳¢׳•׳‘׳“ ׳œ׳ ׳—׳•׳§׳™<br />\"; }\r\n\r\n            if (smsCode === \"\") { errorMessage += \"׳”׳›׳ ׳¡ ׳§׳•׳“ SMS<br />\"; }\r\n\r\n            if (errorMessage !== \"\") {\r\n                Common.displayError(errorMessage, \"\");\r\n                return;\r\n            }\r\n\r\n            //#endregion\r\n\r\n            let response = await authSvc.codeCheck(birthYear, employeeNumber, smsCode);\r\n            if (!response.succeeded || response.data.token === \"\") {\r\n                Common.displayError(response.message, \"\");\r\n                return;\r\n            }\r\n\r\n            localStorage.setItem(\"token\", response.data.token)\r\n            setIsSigned(true);\r\n        }\r\n        else { //login\r\n            //#region validation\r\n\r\n            let errorMessage = \"\";\r\n\r\n            if (birthYear === \"\") { errorMessage += \"׳”׳›׳ ׳¡ ׳©׳ ׳× ׳œ׳™׳“׳”<br />\"; }\r\n            else if (birthYear.length !== 4 || isNaN(birthYear) || Number(birthYear < 1920) || Number(birthYear > 2010)) { errorMessage += \"׳©׳ ׳× ׳œ׳™׳“׳” ׳œ׳ ׳—׳•׳§׳™׳×<br />\"; }\r\n\r\n            if (employeeNumber === \"\") { errorMessage += \"׳”׳›׳ ׳¡ ׳ž׳¡׳³ ׳¢׳•׳‘׳“<br />\"; }\r\n            else if (isNaN(employeeNumber)) { errorMessage += \"׳ž׳¡׳³ ׳¢׳•׳‘׳“ ׳œ׳ ׳—׳•׳§׳™<br />\"; }\r\n\r\n            if (errorMessage !== \"\") {\r\n                Common.displayError(errorMessage, \"\");\r\n                return;\r\n            }\r\n\r\n            //#endregion\r\n\r\n            let response = await authSvc.signin(birthYear, employeeNumber);\r\n            if (!response.succeeded) {\r\n                Common.displayError(response.message, \"\");\r\n                return;\r\n            }\r\n\r\n            setPhone(response.data.phone);\r\n\r\n            setShowSmsCode(true);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div className=\"login\">\r\n            {/*<img className=\"login-img-left\" src=\"images/login-img-left.png\" alt=\"\" />*/}<img className=\"login-img-right\" src=\"images/train-illustration.png\" alt=\"\" />\r\n            <form id=\"form1\" runat=\"server\">\r\n                <div className=\"container\">\r\n                    <img className=\"logo\" src=\"images/logo.png\" alt=\"׳œ׳•׳’׳•\" />\r\n                    <div className=\"tb-container\">\r\n                        ׳©׳ ׳× ׳œ׳™׳“׳”*<br /><input className=\"tb\" type=\"text\" value={birthYear} onChange={e => setBirthYear(e.target.value)} maxLength=\"4\" />\r\n                    </div>\r\n                    <div className=\"tb-container last\">\r\n                        ׳ž׳¡׳³ ׳¢׳•׳‘׳“*<br /><input className=\"tb\" type=\"text\" value={employeeNumber} onChange={e => setEmployeeNumber(e.target.value)} maxLength=\"10\" />\r\n                    </div>\r\n                    {showSmsCode &&\r\n                        <div className=\"tb-container code\">\r\n                        ׳”׳–׳Ÿ ׳׳× ׳”׳§׳•׳“ ׳©׳§׳™׳‘׳œ׳× ׳‘SMS ׳œ׳˜׳œ׳₪׳•׳Ÿ ׳©׳ž׳¡׳₪׳¨׳• ׳ž׳¡׳×׳™׳™׳ ׳‘{phone}*<br />\r\n                            <input className=\"tb\" type=\"text\" value={smsCode} onChange={e => setSmsCode(e.target.value)} />\r\n                        </div>\r\n                    }\r\n                    <input className=\"login-btn\" type=\"button\" value=\"׳›׳ ׳™׳¡׳” ׳œ׳׳×׳¨\" onClick={login} />\r\n                </div>\r\n            </form>\r\n            <div className=\"top-footer\"></div>\r\n            <div className=\"bottom-footer\"></div>\r\n        </div>\r\n    );\r\n}","import ServiceResponse from './ServiceResponse';\r\n\r\nexport default class CategoriesService {\r\n    async getCategories() {\r\n        try {\r\n            let succeeded = false;\r\n            let status = \"\";\r\n            let message = \"\";\r\n\r\n            let response = await fetch(\"/CategoriesContoller/GetCategories\", {\r\n                method: \"GET\",\r\n                headers: {\r\n                    Authorization: \"Bearer \" + localStorage.getItem(\"token\")\r\n                },\r\n            });\r\n\r\n            succeeded = response.ok;\r\n            status = response.status;\r\n\r\n            let data = await response.text();\r\n            if (data.length > 0) {\r\n                try {\r\n                    let jsonData = JSON.parse(data);\r\n                    data = jsonData;\r\n                    if (data.hasOwnProperty(\"message\"))\r\n                        message = data.message\r\n                }\r\n                catch { }\r\n            }\r\n            \r\n            return new ServiceResponse(succeeded, status, message, data);\r\n        } catch (err) {\r\n            console.log(err);\r\n        }\r\n    }\r\n}","import React, { useEffect, useState } from 'react';\r\nimport Common from '../common/Common';\r\nimport CategoriesService from \"../services/CategoriesService\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Categories(props) {\r\n    const [categories, setCategories] = useState(null);\r\n\r\n    useEffect(() => {\r\n        (async () => {\r\n            const categoriesService = new CategoriesService();\r\n            let response = await categoriesService.getCategories();\r\n\r\n            if (!response.succeeded) {\r\n                Common.displayError(response.message, \"\");\r\n                return;\r\n            }\r\n\r\n            setCategories(response.data);\r\n        })();\r\n    }, []);\r\n\r\n    return categories && categories.map(category => (<li key={category.id}><Link to={\"/\" + props.type.replaceAll(' ', '_') + \"/\" + category.categoryName.replaceAll(' ', '_')}>{category.categoryName}</Link></li>));\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nexport default function Contact(props) {\r\n    return (\r\n        <>\r\n            <section className=\"contact\">\r\n                <h1>׳™׳¦׳™׳¨׳× ׳§׳©׳¨</h1>\r\n                <div className=\"txt-container\">\r\n                    ׳‘׳ž׳™׳“׳” ׳•׳ ׳×׳§׳œ׳×׳ ׳‘׳‘׳¢׳™׳” ׳×׳•׳›׳œ׳• ׳œ׳™׳¦׳•׳¨ ׳§׳©׳¨ ׳¢׳ ׳œ׳™׳׳× ׳₪׳¨׳™׳“׳‘׳¨׳’, ׳ž׳ ׳”׳œ׳× ׳¢׳ ׳£ ׳”׳“׳¨׳›׳”.<br />\r\n                    ׳˜׳œ׳₪׳•׳Ÿ-  <a href=\"tel:089548036\">08-9548036</a>, ׳׳™׳ž׳™׳™׳œ- <a href=\"mailto:LIATF@rail.co.il\">LIATF@rail.co.il</a>\r\n                    <br /><br />\r\n                    ׳‘׳ž׳™׳“׳” ׳•׳׳×׳ ׳ž׳”׳ ׳“׳¡׳™׳ ׳•׳ ׳×׳§׳œ׳×׳ ׳‘׳‘׳¢׳™׳” ׳×׳•׳›׳œ׳• ׳œ׳™׳¦׳•׳¨ ׳§׳©׳¨ ׳¢׳ ׳¢׳ ׳× ׳¨׳•׳˜׳œ׳•׳™, ׳ž׳ ׳”׳œ׳× ׳×׳•׳›׳ ׳™׳•׳× ׳׳§׳“׳ž׳׳™׳•׳×.<br />\r\n                    ׳˜׳œ׳₪׳•׳Ÿ- <a href=\"tel:086533636\">08-6533636</a>, ׳׳™׳ž׳™׳™׳œ- <a href=\"mailto:ANATR2@rail.co.il\">ANATR2@rail.co.il</a>\r\n                </div>\r\n            </section>\r\n        </>\r\n    )\r\n}\r\n","import React from 'react';\r\nimport Common from '../common/Common';\r\nimport jQuery from 'jquery';\r\nimport './verticalFade.js';\r\n\r\nexport default function Course(props) {\r\n    let courseImage = \"images/img_workshop_box.png\";\r\n    if (props.course.courseImage !== \"\") {\r\n        //courseImage = \"Uploads/Courses/\" + Common.addToFileName(props.course.courseImage, \"_\" + props.course.courseType);\r\n        courseImage = \"Uploads/Courses/\" + Common.addToFileName(props.course.courseImage, \"_course\");\r\n    }\r\n\r\n    let courseTypeName = \"׳”׳¨׳¦׳׳”\";\r\n    if (props.course.courseType === \"workshop\")\r\n        courseTypeName = \"׳¡׳“׳ ׳”\";\r\n    else if (props.course.courseType === \"course\")\r\n        courseTypeName = \"׳§׳•׳¨׳¡\";\r\n    else if (props.course.courseType === \"conference\")\r\n        courseTypeName = \"׳›׳ ׳¡\";\r\n    else if (props.course.courseType === \"virtual_lecture\")\r\n        courseTypeName = \"׳”׳¨׳¦׳׳” ׳•׳™׳¨׳˜׳•׳׳œ׳™׳×\";\r\n    else if (props.course.courseType === \"tour\")\r\n        courseTypeName = \"׳¡׳™׳•׳¨\";\r\n\r\n    const viewMoreDetails = (e) => {\r\n        let context = jQuery(e.target).closest(\".events-courses-box\");\r\n        jQuery(\".hiddenDetailsContainer\", context).verticalFade({\r\n            duration: 'slow', complete: function () {\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    let submitButtonClass = \"course-reg-btn\";\r\n    if (props.course.isFull || props.course.isRegistered)\r\n        submitButtonClass += \" course-full\";\r\n\r\n    const monthsWithoutHour = [\"digital_courses\", \"future_courses\"];\r\n\r\n    return (\r\n        <div className=\"events-courses-box events-courses-box-full\">\r\n            <div className=\"img-contaner\">{props.course.isFull && <span class=\"closed-courses\">׳”׳”׳¨׳©׳ž׳” ׳ ׳¡׳’׳¨׳”</span>}<img className=\"events-courses-box-img\" alt=\"\" src={courseImage} /></div>\r\n            <div className=\"time-place-info course-min-height\">\r\n                <h2><span className=\"type\">{courseTypeName}</span> {props.course.courseName}  </h2>\r\n                <div className=\"generalInfo\">\r\n                    <span><b>׳ž׳¡׳œ׳•׳œ׳™ ׳œ׳ž׳™׳“׳” ׳™׳™׳¢׳•׳“׳™׳™׳ ׳œ:</b> <span className=\"events-courses-cat-name\">{props.course.courseCategoryNames}</span></span><br />\r\n                    {props.course.teacher !== \"\" && <><span><b>׳ž׳¨׳¦׳”:</b> {props.course.teacher}</span><br /></>}\r\n                    {props.course.numberOfSessions !== \"\" && <span><b>׳ž׳¡׳₪׳¨ ׳ž׳₪׳’׳©׳™׳:</b> {props.course.numberOfSessions}</span>}</div>\r\n                {\r\n                    (props.course.courseMonth !== \"000000\" && (props.course.courseStartDate !== \"\" || props.course.courseEndDate !== \"\" || props.course.courseHours !== \"\")) &&\r\n                    <>\r\n                        <div className=\"coursesInfo\">\r\n                            {props.course.courseStartDate !== \"\" && props.course.courseStartDate.includes(\"2099\") == false && <span className=\"date\">׳×׳׳¨׳™׳š ׳”׳×׳—׳œ׳”<br /><span className=\"big-num\">{props.course.courseStartDate}</span></span>}\r\n                            {props.course.courseEndDate !== \"\" && <span className=\"date last\">׳×׳׳¨׳™׳š ׳¡׳™׳•׳<br /><span className=\"big-num\">{props.course.courseEndDate}</span></span>}\r\n                        </div>\r\n                        {(monthsWithoutHour.includes(props.course.courseMonth) === false || props.course.courseHours !== \"\") && <div className=\"coursesTime\"><span className=\"hour\">׳©׳¢׳”<br />{props.course.courseHours !== \"\" && <span className=\"big-num\">{props.course.courseHours}</span>}</span></div>}\r\n                    </>\r\n                }\r\n                {\r\n                    <div className=\"coursesInfo place\">\r\n                        <span><b>׳ž׳™׳§׳•׳: {props.course.courseLocation}</b></span>\r\n                    </div>\r\n                }\r\n                <div className=\"more-info-container\">\r\n                    <a className={\"more-info-btn\" + (!(props.course.courseDescription !== \"\" || props.course.syllabus !== \"\") ? \" v_hidden\" : \"\")} onClick={viewMoreDetails} >׳œ׳₪׳¨׳˜׳™׳ ׳ ׳•׳¡׳₪׳™׳</a>\r\n                    {\r\n                        (props.course.courseDescription !== \"\" || props.course.syllabus !== \"\") &&\r\n                        <>\r\n                            \r\n                            <div className=\"hiddenDetailsContainer d_none\">\r\n                                <div className=\"smallFont\">\r\n                                    {/* {props.course.syllabus !== \"\" && <><div className=\"syllabusTitle\"><b>׳¡׳™׳œ׳‘׳•׳¡:</b></div></>}*/}\r\n                                    {props.course.syllabus !== \"\" && <><span dangerouslySetInnerHTML={{ __html: props.course.syllabus }} /><br /><br /></>}\r\n                                    <span dangerouslySetInnerHTML={{ __html: props.course.courseDescription }} />\r\n                                </div>\r\n                            </div>\r\n                        </>\r\n                    }\r\n                    <div className=\"width300px bottons-container\">\r\n                        {/*<a className=\"more-info-btn\" href=\"#\">׳œ׳¡׳’׳™׳¨׳× ׳”׳₪׳¨׳˜׳™׳ ׳”׳ ׳•׳¡׳₪׳™׳</a>*/}\r\n                        <input className={submitButtonClass} type=\"button\" value=\"׳œ׳”׳¨׳©׳ž׳”\" onClick={e => Common.register(e, props.course.id, props.course.withManagerApproval, props.course.isFull, props.course.isRegistered, props.course.courseName, courseTypeName)} />\r\n                        <div className=\"clearB\"></div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div className=\"clearB\"></div>\r\n        </div>\r\n    );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport Course from './Course';\r\n\r\nexport default function MonthEvents(props) {\r\n    const monthNames = [\"\", \"׳™׳ ׳•׳׳¨\", \"׳₪׳‘׳¨׳•׳׳¨\", \"׳ž׳¨׳¥\", \"׳׳₪׳¨׳™׳œ\", \"׳ž׳׳™\", \"׳™׳•׳ ׳™\", \"׳™׳•׳œ׳™\", \"׳׳•׳’׳•׳¡׳˜\", \"׳¡׳₪׳˜׳ž׳‘׳¨\", \"׳׳•׳§׳˜׳•׳‘׳¨\", \"׳ ׳•׳‘׳ž׳‘׳¨\", \"׳“׳¦׳ž׳‘׳¨\"];\r\n\r\n    return (\r\n        props.months && props.months.map(month => {\r\n            let events = props.courses.filter(obj => { return obj.courseMonth === month });\r\n\r\n            let col1 = [];\r\n            let col2 = [];\r\n            for (var i = 0; i < events.length; i++) {\r\n                if (i % 2 == 0)\r\n                    col1.push(events[i]);\r\n                else\r\n                    col2.push(events[i]);\r\n            }\r\n\r\n            let currentMonth = isNaN(month) || Number(month) === 0 ? 0 : Number(month.substring(0, 2));\r\n            let currentYear = Number(month) === 0 ? \"\" : month.substr(2, 4);\r\n            if (currentMonth == \"0\") {\r\n                if (month == \"future_courses\")\r\n                    currentYear = \"׳”׳›׳©׳¨׳•׳× ׳¢׳×׳™׳“׳™׳•׳×\";\r\n                else\r\n                    currentYear = \"׳§׳•׳¨׳¡׳™׳ ׳“׳™׳’׳™׳˜׳œ׳™׳™׳\";\r\n            }\r\n            \r\n            return (\r\n                <Fragment key={month}>\r\n                    <h1>{monthNames[currentMonth]} {currentYear}</h1>\r\n                    <section className=\"events-courses\">\r\n                        {\r\n                            col1 && col1.map(course => {\r\n                                return <Course key={course.id} course={course} />\r\n                            })\r\n                        }\r\n                    </section>\r\n                    <section className=\"events-workshop\">\r\n                        {\r\n                            col2 && col2.map(course => {\r\n                                return <Course key={course.id} course={course} />\r\n                            })\r\n                        }\r\n                        {/*<a className=\"generall-btn-style\" href=\"#\">׳”׳¨׳¦׳׳•׳× ׳•׳¡׳“׳ ׳׳•׳× ׳‘׳—׳•׳“׳©׳™׳ ׳”׳‘׳׳™׳</a>*/}\r\n                    </section>\r\n                </Fragment>\r\n            )\r\n        })\r\n    );\r\n\r\n}\r\n","import jQuery from 'jquery'\r\nimport 'jquery.easing'\r\n(function ($) {\r\n    var getUnqueuedOpts = function (opts) {\r\n        return {\r\n            queue: false,\r\n            duration: opts.duration,\r\n            easing: opts.easing\r\n        };\r\n    };\r\n    $.fn.showDown = function (opts) {\r\n        opts = opts || {};\r\n        $(this).stop().hide().slideDown(opts).animate({ opacity: 1 }, getUnqueuedOpts(opts));\r\n    };\r\n    $.fn.hideUp = function (opts) {\r\n        opts = opts || {};\r\n        $(this).stop().show().slideUp(opts).animate({ opacity: 0 }, getUnqueuedOpts(opts));\r\n    };\r\n    $.fn.verticalFade = function (opts) {\r\n        opts = opts || {};\r\n        if ($(this).is(':visible')) {\r\n            $(this).hideUp(opts);\r\n        } else {\r\n            $(this).showDown(opts);\r\n        }\r\n    };\r\n}(jQuery));","import React, { useEffect, useState } from 'react';\r\nimport Common from '../common/Common';\r\nimport Categories from './Categories';\r\nimport Contact from './Contact';\r\nimport CoursesService from \"../services/CoursesService\";\r\nimport MonthEvents from \"./MonthEvents\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\"; // requires a loader\r\nimport { Carousel } from 'react-responsive-carousel';\r\nimport jQuery from 'jquery';\r\nimport './verticalFade.js';\r\n\r\nexport default function Courses(props) {\r\n    const [courses, setCourses] = useState(null);\r\n    const [months, setMonths] = useState(null);\r\n    const [categoryDetails, setCategoryDetails] = useState(null);\r\n\r\n    useEffect(() => {\r\n        (async () => {\r\n            const coursesService = new CoursesService();\r\n            let response = await coursesService.getCourses(props.type, props.cat, props.search);\r\n\r\n            if (!response.succeeded) {\r\n                Common.displayError(response.message, \"\");\r\n                return;\r\n            }\r\n\r\n            setCourses(response.data.courses);\r\n            setCategoryDetails(response.data.categoryDetails);\r\n\r\n            const months = [];\r\n            for (var i = 0; i < response.data.courses.length; i++) {\r\n                if (response.data.courses[i].courseMonth !== \"\" && months.includes(response.data.courses[i].courseMonth) === false)\r\n                    months.push(response.data.courses[i].courseMonth);\r\n            }\r\n\r\n            setMonths(months);\r\n        })();\r\n    }, [props.type, props.cat, props.search]);\r\n\r\n    const params = useParams();\r\n    let typeParam = params.type ?? \"׳”׳›׳œ\";\r\n    let catParam = params.cat ?? \"\";\r\n\r\n    let catTypeParam = typeParam;\r\n    if (catTypeParam === \"׳¦׳•׳¨_׳§׳©׳¨\")\r\n        catTypeParam = \"׳”׳›׳œ\";\r\n\r\n    const query = new URLSearchParams(window.location.search);\r\n    const searchParam = query.get('search')\r\n\r\n    const readMoreTextToggle = (e) => {\r\n        jQuery(\"#ReadMoreTextContainer\").verticalFade({\r\n            duration: 'slow', complete: function () {\r\n                let readMoreButton = jQuery(this).closest(\".categoryPage-header-ttl \").find(\".categoryPage-read-more\");\r\n                if (readMoreButton.text() == \"׳”׳ž׳©׳š ׳§׳¨׳™׳׳”\")\r\n                    readMoreButton.text('׳¦׳ž׳¦׳ ׳§׳¨׳™׳׳”');\r\n                else\r\n                    readMoreButton.text('׳”׳ž׳©׳š ׳§׳¨׳™׳׳”');\r\n            }\r\n        });\r\n    }\r\n\r\n    return (\r\n        <>\r\n            <Carousel showArrows={false} dynamicHeight={true} showStatus={false} showIndicators={false} showThumbs={false} infiniteLoop={true} autoPlay={true} animationHandler=\"fade\">\r\n                <section key=\"slide1\" className={\"page-header-img \" + (categoryDetails === null || categoryDetails.CategoryHook === null || categoryDetails.CategoryHook === \"\" ? \"\" : \"d_none\")}>\r\n                    <img className=\"main_img\" alt=\"\" src=\"images/mainimg_d.png\" />\r\n                    {/*<img className=\"logo\" alt=\"׳œ׳•׳’׳•\" src=\"images/logo.png\" />*/}\r\n                    {/*<div className=\"page-header-img-txt\">*/}\r\n                    {/*    <h3>*/}\r\n                    {/*        <b>׳™׳© ׳’׳ ׳ž׳¡׳œ׳•׳œ׳™׳ ׳‘׳”׳×׳׳ž׳” ׳œ׳×׳₪׳§׳™׳“ - ׳”׳¢׳©׳¨׳” ׳ž׳§׳¦׳•׳¢׳™׳× ׳•׳”׳×׳₪׳×׳—׳•׳× ׳׳™׳©׳™׳× ׳ž׳ž׳•׳§׳“׳×!</b><br />*/}\r\n                    {/*        ׳‘׳©׳ ׳× 2023 ׳×׳•׳›׳ ׳™׳•׳× ׳”׳₪׳•׳§׳•׳¡ ׳”׳Ÿ ׳œ׳ž׳–׳›׳™׳¨׳•׳×, ׳›׳œ׳›׳œ׳ ׳™׳, ׳ž׳ ׳”׳œ׳™ ׳₪׳¨׳•׳™׳§׳˜׳™׳ ׳•׳ž׳”׳ ׳“׳¡׳™׳!*/}\r\n                    {/*    </h3>*/}\r\n                    {/*</div>*/}\r\n                    <img className=\"main_img-m\" alt=\"\" src=\"images/mainimg_m.png\" />\r\n                </section>\r\n\r\n                {/*<section key=\"slide2\" className={\"page-header-img \" + (categoryDetails === null || categoryDetails.CategoryHook === null || categoryDetails.CategoryHook === \"\" ? \"\" : \"d_none\")}>*/}\r\n                {/*    <img className=\"main_img\" alt=\"\" src=\"images/header-img2.png\" />*/}\r\n                {/*    <img className=\"logo fix\" alt=\"׳œ׳•׳’׳•\" src=\"images/logo.png\" />*/}\r\n                {/*    <div className=\"page-header-img-txt page-header-img-txt fix text-mb\">*/}\r\n                {/*        <h3>*/}\r\n                {/*            <span className=\"styled1\">׳׳¡׳₪׳ ׳• ׳ ׳‘׳—׳¨׳× ׳©׳œ ׳ž׳¨׳¦׳™׳ ׳ž׳¦׳˜׳™׳™׳ ׳™׳ ׳‘׳ ׳™׳ ׳• ׳×׳›׳ ׳™׳•׳× ׳”׳¢׳©׳¨׳” ׳ž׳¨׳×׳§׳•׳×</span>*/}\r\n                {/*            <br/><span className=\"styled2\">׳•׳œ׳›׳ ׳ ׳©׳׳¨ ׳¨׳§ ׳œ׳”׳™׳¨׳©׳!</span></h3>*/}\r\n                {/*    </div>*/}\r\n                {/*    <img className=\"main_img-m2\" alt=\"\" src=\"images/header-img-m2.png\" />*/}\r\n                {/*</section>*/}\r\n            </Carousel>\r\n\r\n            <div className={categoryDetails && categoryDetails.CategoryHook}>\r\n                <section className={\"categoryPage-header-ttl \" + (categoryDetails === null || categoryDetails.CategoryHook === null || categoryDetails.CategoryHook === \"\" ? \"d_none\" : \"\")}>\r\n                    <div className=\"cat-ttl\">{categoryDetails && categoryDetails.HeaderTitle}</div>\r\n                    <img className=\"cat-img\" src={categoryDetails && \"Uploads/Categories/\" + categoryDetails.HeaderImage} alt=\"\" />\r\n                    <span className=\"cat-txt\">\r\n                        {categoryDetails && <span dangerouslySetInnerHTML={{ __html: categoryDetails.HeaderText }} />}\r\n                        {categoryDetails && categoryDetails.ReadMoreText && <><a class=\"categoryPage-read-more\" onClick={readMoreTextToggle}>׳”׳ž׳©׳š ׳§׳¨׳™׳׳”</a><div id=\"ReadMoreTextContainer\" className=\"readMoreTextContainer\" dangerouslySetInnerHTML={{ __html: categoryDetails.ReadMoreText }} /></>}\r\n                    </span>\r\n                </section>\r\n\r\n                <div className=\"container\">\r\n                    <section className=\"bread_crumbs\">\r\n                        <span>׳§׳•׳¨׳¡׳™׳ ׳ž׳•׳ž׳œ׳¦׳™׳ ׳œ:</span>\r\n                        <ul>\r\n                            <Categories type={catTypeParam} />\r\n                        </ul>\r\n                    </section>\r\n                </div>\r\n\r\n                <section className=\"events\">\r\n                    <MonthEvents months={months} courses={courses} categoryDetails={categoryDetails} />\r\n                </section>\r\n            </div>\r\n        </>\r\n    );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport Categories from './Categories';\r\nimport Courses from './Courses';\r\nimport Contact from './Contact';\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\nimport jQuery from 'jquery';\r\nimport './slimmenu.min.css';\r\nimport './jquery.slimmenu.min.js';\r\n\r\nexport function Layout() {\r\n    useEffect(() => {\r\n        (async () => {\r\n            jQuery('ul.slimmenu').slimmenu({\r\n                resizeWidth: '800',\r\n                collapserTitle: '',\r\n                easingEffect: 'easeInOutQuint',\r\n                animSpeed: 'medium',\r\n                indentChildren: true,\r\n                childrenIndenter: '&raquo;'\r\n            });\r\n        })();\r\n    }, []);\r\n\r\n    const params = useParams();\r\n    let typeParam = params.type ?? \"׳”׳›׳œ\";\r\n    let catParam = params.cat ?? \"\";\r\n\r\n    let catTypeParam = typeParam;\r\n    if (catTypeParam === \"׳¦׳•׳¨_׳§׳©׳¨\")\r\n        catTypeParam = \"׳”׳›׳œ\";\r\n    \r\n    const query = new URLSearchParams(window.location.search);\r\n    const searchParam = query.get('search')\r\n\r\n    const history = useHistory();\r\n    const [search, setSearch] = useState(searchParam ?? \"\");\r\n\r\n    let searchTbKeyDownHandler = (e) => {\r\n        if (e.key === 'Enter') {\r\n            history.push(search === \"\" ? \"/\" : `/?search=${search}`)\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div className=\"pages\">\r\n            <header>\r\n                <a href=\"https://www.ladaatbegadol.co.il/\"><img className=\"logo_h\" alt=\"׳œ׳•׳’׳•\" src=\"images/logo_inner.png\" /></a>\r\n                <ul className=\"slimmenu\">\r\n                    <li key=\"courses\"><Link to={\"/׳§׳•׳¨׳¡׳™׳/\" + catParam}>׳§׳•׳¨׳¡׳™׳</Link></li>\r\n                    <li key=\"lectures\"><Link to={\"/׳”׳¨׳¦׳׳•׳×/\" + catParam}>׳”׳¨׳¦׳׳•׳×</Link></li>\r\n                    <li key=\"workshops\"><Link to={\"/׳¡׳“׳ ׳׳•׳×/\" + catParam}>׳¡׳“׳ ׳׳•׳×</Link></li>\r\n                    <li key=\"conferences\"><Link to={\"/׳›׳ ׳¡׳™׳/\" + catParam}>׳›׳ ׳¡׳™׳</Link></li>\r\n                    <li key=\"virtual_lectures\"><Link to={\"/׳”׳¨׳¦׳׳•׳×_׳•׳™׳¨׳˜׳•׳׳œ׳™׳•׳×/\" + catParam}>׳”׳¨׳¦׳׳•׳× ׳•׳™׳¨׳˜׳•׳׳œ׳™׳•׳×</Link></li>\r\n                    <li key=\"tours\"><Link to={\"/׳¡׳™׳•׳¨׳™׳/\" + catParam}>׳¡׳™׳•׳¨׳™׳</Link></li>\r\n                    {/*<li key=\"about\"><Link to=\"#\">׳׳•׳“׳•׳×</Link></li>*/}\r\n                    <li key=\"contact\"><Link to=\"/׳¦׳•׳¨_׳§׳©׳¨\" className=\"Selected\">׳™׳¦׳™׳¨׳× ׳§׳©׳¨</Link></li>\r\n                </ul>\r\n                <section className=\"search\">\r\n                    <input className=\"search-tb\" type=\"text\" value={search} onChange={e => setSearch(e.target.value)} onKeyDown={e => searchTbKeyDownHandler(e)} />\r\n                    <input className=\"search-btn\" type=\"button\" onClick={() => history.push(search === \"\" ? \"/\" : `/?search=${search}`)} />\r\n                </section>\r\n            </header>\r\n            <div className=\"container\">\r\n                {/*<section className=\"bread_crumbs\">*/}\r\n                {/*    <span>׳§׳•׳¨׳¡׳™׳ ׳ž׳•׳ž׳œ׳¦׳™׳ ׳œ:</span>*/}\r\n                {/*    <ul>*/}\r\n                {/*        <Categories type={catTypeParam} />*/}\r\n                {/*    </ul>*/}\r\n                {/*</section>*/}\r\n                {typeParam == \"׳¦׳•׳¨_׳§׳©׳¨\" ? <Contact /> : <Courses type={typeParam} cat={catParam} search={searchParam} />}\r\n            </div>\r\n            {/*<div className=\"top-footer\"></div>*/}\r\n            {/*<footer>*/}\r\n            {/*    <div className=\"container\">*/}\r\n            {/*        <section className=\"site-map\">*/}\r\n            {/*            <ul>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳₪׳× ׳”׳׳×׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳™׳¦׳™׳¨׳× ׳§׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳×׳§׳ ׳•׳Ÿ</a></li>*/}\r\n            {/*            </ul>*/}\r\n            {/*        </section>*/}\r\n            {/*        <section className=\"courses\">*/}\r\n            {/*            <h3>׳¨׳©׳™׳ž׳× ׳§׳•׳¨׳¡׳™׳</h3>*/}\r\n            {/*            <ul>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*            </ul>*/}\r\n            {/*            <ul>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*            </ul>*/}\r\n            {/*            <ul>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳ ׳’׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳׳§׳¡׳œ</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ ׳™׳”׳•׳œ ׳₪׳§׳•׳™׳™׳§׳˜׳™׳ ׳‘׳¡׳™׳¡׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳¡׳“׳ ׳׳•׳× ׳₪׳™׳×׳•׳— ׳—׳•׳¡׳Ÿ ׳ ׳₪׳©׳™</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳“׳¢׳™ ׳”׳׳•׳©׳¨</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳‘׳™׳´׳¡ ׳œ׳œ׳ž׳™׳“׳” ׳“׳™׳’׳™׳˜׳œ׳™׳×</a></li>*/}\r\n            {/*                <li><a href=\"#\">׳ž׳™׳•׳ž׳ ׳•׳™׳•׳× ׳₪׳¨׳–׳ ׳˜׳¦׳™׳”</a></li>*/}\r\n            {/*            </ul>*/}\r\n            {/*        </section>*/}\r\n            {/*        <section className=\"social\">*/}\r\n            {/*            <h3>׳—׳₪׳©׳• ׳׳•׳×׳ ׳•</h3>*/}\r\n            {/*            <ul>*/}\r\n            {/*                <li><a href=\"#\"><img alt=\"youtube\" src=\"images/youtube_btn.svg\" /></a></li>*/}\r\n            {/*                <li><a href=\"#\"><img alt=\"linkedin\" src=\"images/linkedin_btn.svg\" /></a></li>*/}\r\n            {/*                <li><a href=\"#\"><img alt=\"facebook\" src=\"images/facebook_btn.svg\" /></a></li>*/}\r\n            {/*            </ul>*/}\r\n            {/*        </section>*/}\r\n            {/*    </div>*/}\r\n            {/*</footer>*/}\r\n        </div>\r\n    );\r\n}\r\n","/**\n * jquery.slimmenu.js\n * http://adnantopal.github.io/slimmenu/\n * Author: @adnantopal\n * Copyright 2013, Adnan Topal (atopal.com)\n * Licensed under the MIT license.\n */\nimport jQuery from 'jquery'\nimport 'jquery.easing'\n(function(e,c,a,g){var d=\"slimmenu\",f={resizeWidth:\"768\",collapserTitle:\"Main Menu\",animSpeed:\"medium\",easingEffect:null,indentChildren:false,childrenIndenter:\"&nbsp;&nbsp;\"};function b(i,h){this.element=i;this.$elem=e(this.element);this.options=e.extend({},f,h);this.init()}var cW=0;b.prototype={init:function(){var h=this.options,j=this.$elem,i='<div class=\"menu-collapser\">'+h.collapserTitle+'<div class=\"collapse-button\"><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span></div></div>',k;j.before(i);k=j.prev(\".menu-collapser\");j.on(\"click\",\".sub-collapser\",function(m){m.preventDefault();m.stopPropagation();var l=e(this).closest(\"li\");if(e(this).hasClass(\"expanded\")){e(this).removeClass(\"expanded\");e(this).find(\"i\").html(\"&#9660;\");l.find(\">ul\").slideUp(h.animSpeed,h.easingEffect)}else{e(this).addClass(\"expanded\");e(this).find(\"i\").html(\"&#9650;\");l.find(\">ul\").slideDown(h.animSpeed,h.easingEffect)}});k.on(\"click\",\".collapse-button\",function(l){l.preventDefault();j.slideToggle(h.animSpeed,h.easingEffect)});this.resizeMenu({data:{el:this.element,options:this.options}});e(c).on(\"resize\",{el:this.element,options:this.options},this.resizeMenu)},resizeMenu:function(k){if (cW == document.documentElement.clientWidth) return; cW = document.documentElement.clientWidth;var l=e(c),h=k.data.options,i=e(k.data.el),j=e(\"body\").find(\".menu-collapser\");i.find(\"li\").each(function(){if(e(this).has(\"ul\").length){if(e(this).has(\".sub-collapser\").length){e(this).children(\".sub-collapser i\").html(\"&#9660;\")}else{e(this).append('<span class=\"sub-collapser\"><i>&#9660;</i></span>')}}e(this).children(\"ul\").hide();e(this).find(\".sub-collapser\").removeClass(\"expanded\").children(\"i\").html(\"&#9660;\")});if(h.resizeWidth>=l.width()){if(h.indentChildren){i.find(\"ul\").each(function(){var m=e(this).parents(\"ul\").length;if(!e(this).children(\"li\").children(\"a\").has(\"i\").length){e(this).children(\"li\").children(\"a\").prepend(b.prototype.indent(m,h))}})}i.find(\"li\").has(\"ul\").off(\"mouseenter mouseleave\");i.addClass(\"collapsed\").hide();j.show()}else{i.find(\"li\").has(\"ul\").on(\"mouseenter\",function(){e(this).find(\">ul\").stop().slideDown(h.animSpeed,h.easingEffect)}).on(\"mouseleave\",function(){e(this).find(\">ul\").stop().slideUp(h.animSpeed,h.easingEffect)});i.find(\"li > a > i\").remove();i.removeClass(\"collapsed\").show();j.hide()}},indent:function(k,j){var h=\"\";for(var l=0;l<k;l++){h+=j.childrenIndenter}return\"<i>\"+h+\"</i>\"}};e.fn[d]=function(h){return this.each(function(){if(!e.data(this,\"plugin_\"+d)){e.data(this,\"plugin_\"+d,new b(this,h))}})}})(jQuery,window,document);","import React, { useContext } from 'react';\r\nimport { GlobalContext } from './state/GlobalState';\r\nimport { Route } from 'react-router';\r\nimport Login from './components/Login';\r\nimport { Layout } from './components/Layout';\r\n\r\nimport './custom.css'\r\n\r\nexport default function App() {\r\n    const { isSigned } = useContext(GlobalContext);\r\n\r\n    return (\r\n        isSigned?\r\n            <>\r\n                <Route path=\"/:type?/:cat?\"><Layout /></Route>\r\n            </>\r\n            : <Route><Login /></Route>\r\n    );\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n  // [::1] is the IPv6 localhost address.\r\n  window.location.hostname === '[::1]' ||\r\n  // 127.0.0.1/8 is considered localhost for IPv4.\r\n  window.location.hostname.match(\r\n    /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n  )\r\n);\r\n\r\nexport default function register () {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Lets check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl);\r\n      } else {\r\n        // Is not local host. Just register service worker\r\n        registerValidSW(swUrl);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then(registration => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the old content will have been purged and\r\n              // the fresh content will have been added to the cache.\r\n              // It's the perfect time to display a \"New content is\r\n              // available; please refresh.\" message in your web app.\r\n              console.log('New content is available; please refresh.');\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch(error => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl)\r\n    .then(response => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      if (\r\n        response.status === 404 ||\r\n        response.headers.get('content-type').indexOf('javascript') === -1\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then(registration => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log(\r\n        'No internet connection found. App is running in offline mode.'\r\n      );\r\n    });\r\n}\r\n\r\nexport function unregister () {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready.then(registration => {\r\n      registration.unregister();\r\n    });\r\n  }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n//import registerServiceWorker from './registerServiceWorker';\r\nimport { unregister as unregisterServiceWorker } from './registerServiceWorker'\r\nimport { GlobalProvider } from './state/GlobalState';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n    <BrowserRouter basename={baseUrl}>\r\n        <GlobalProvider>\r\n            <App />\r\n        </GlobalProvider>\r\n    </BrowserRouter>,\r\n    rootElement);\r\n\r\n//registerServiceWorker();\r\nunregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}