\r\n
כניסה לאיזור אישי \r\n
אזור אישי ל{Dispatcher && Dispatcher.siteName} */}\r\n {!isMobile ?\r\n <>
\r\n {/* {formwithpassword()} */}\r\n {formwithsms()}\r\n
\r\n {/* {Dispatcher && Dispatcher.InfoText.length > 0 &&\r\n
\r\n\r\n
\r\n } */}\r\n >\r\n :
\r\n
\r\n
\r\n {/*
setIsSMSview(false)}>עם הסיסמה שלך
*/}\r\n
setIsSMSview(true)}>עם קוד חד פעמי בSMS
\r\n
\r\n
\r\n {/* {!isSMSview && formwithpassword()} */}\r\n {isSMSview && formwithsms()}\r\n\r\n
\r\n }\r\n {Dispatcher && Dispatcher.InfoText.length > 0 &&\r\n
\r\n\r\n
\r\n }\r\n >\r\n )\r\n});\r\nexport default Login;","import React, { useState, useEffect, useRef, useContext } from 'react';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport useForm from '../../formsFramework/core/useForm';\r\n\r\nimport api from '../../webApi';\r\nimport clsx from \"clsx\";\r\nimport moment from 'moment';\r\nimport './Login.css';\r\nimport loginbackground from '../../assets/images/loginbackground.png';\r\nimport usersignin from '../../assets/images/usersignin.png';\r\nimport usersms from '../../assets/images/usersms.png';\r\nimport { require, onlyNumbers, email, minLength, maxLength, length } from \"../../formsFramework/validators\";\r\nimport phonePrefixes from '../../assets/static-data/phonePrefixes';\r\nimport { FormContainer, FormField } from '../../formsFramework';\r\nimport { FormTextField } from \"../../formsFramework/MaterialComponents\";\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { async } from 'react-app-polyfill/node_modules/regenerator-runtime';\r\n//import ModSnakeBar from '../layout/ModSnakeBar/ModSnakeBar';\r\nimport ModModal from '../../components/layout/ModModal/ModModal';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { OutlinedInput, InputAdornment, FormControl, InputLabel, IconButton } from \"@material-ui/core\";\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport { AppContext } from '../../AppContext';\r\n// import LoginHeader from '../layout/Header/LoginHeader';\r\n\r\nconst getIsMobile = () => window.innerWidth <= 800;\r\nconst ForgotPassword = React.memo(props => {\r\n const [isMobile, setIsMobile] = useState(getIsMobile());\r\n const [isSMSview, setIsSMSview] = useState(false);\r\n const [showPassword, setShowPassword] = React.useState(false);\r\n const handleClickShowPassword = () => setShowPassword((show) => !show);\r\n const handleMouseDownPassword = (event) => {\r\n event.preventDefault();\r\n };\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n const [displayModal, setDisplayModal] = useState(false);\r\n //const [disableButReg,setDisableButReg] = useState(true);\r\n //const [loading, setLoading] = useState(false);\r\n const { Dispatcher,displaySnackbarHandler,setLoading } = useContext(AppContext);\r\n const history = useHistory();\r\n\r\n let btnRef = useRef();\r\n\r\n const sleep = async (time) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve()\r\n }, time)\r\n })\r\n }\r\n useEffect(() => {\r\n\r\n\r\n const onResize = () => {\r\n setIsMobile(getIsMobile);\r\n };\r\n window.addEventListener(\"resize\", onResize);\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n };\r\n }, []);\r\n const displaySnackbar = (variant, message = '', vertical = '', horizontal = '') => {\r\n //setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal });\r\n displaySnackbarHandler(variant, message , vertical , horizontal ) ;\r\n setLoading(false);\r\n }\r\n const handleOnSubmit = async (validatioState, form) => {\r\n try {\r\n btnRef.current.focus();\r\n btnRef.current.disabled = true;\r\n\r\n if (validatioState) {\r\n setLoading(true);\r\n const loginDTO = {\r\n UserKey: form.userKey,\r\n Email: form.MODEmail,\r\n Userid: form.MODID,\r\n siteurl: Dispatcher.rootUrl\r\n }\r\n const res = await api.post(`ModLogin/ForgotPassword`, loginDTO).then(response => {\r\n if (response) {\r\n if (response && response.data && !response.data.status) {\r\n displaySnackbar(\"error\", \"משתמש לא קיים במערכת, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n\r\n }\r\n else {\r\n let q = response.data.Data;\r\n history.push({\r\n pathname: \"/QandAnswer\",\r\n state: { loginDTO: loginDTO, question: q }\r\n });\r\n }\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"משתמש לא קיים במערכת, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n }\r\n }).catch((error) => {\r\n console.log(error);\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n });;\r\n\r\n }\r\n //await sleep(8000);\r\n if (btnRef.current)\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n }\r\n catch (error) {\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n console.log(error);\r\n if (btnRef.current)\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const form = () => {\r\n return
\r\n {\r\n ({ values, submited, valid, validationState, reValidateField, resetField }) => {\r\n return (\r\n <>\r\n {!isMobile &&\r\n <>\r\n \r\n
\r\n
\r\n >\r\n }\r\n \r\n
\r\n שכחתי סיסמה \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n המשך \r\n
\r\n
\r\n >\r\n )\r\n }\r\n }\r\n \r\n }\r\n\r\n return (
\r\n {form()}\r\n\r\n
\r\n )\r\n});\r\nexport default ForgotPassword;","import React, { useState, useEffect, useRef, useContext } from 'react';\r\nimport { useHistory,Link } from 'react-router-dom';\r\nimport useForm from '../../formsFramework/core/useForm';\r\nimport { useLocation } from 'react-router-dom';\r\nimport api from '../../webApi';\r\nimport clsx from \"clsx\";\r\nimport moment from 'moment';\r\nimport './Login.css';\r\nimport loginbackground from '../../assets/images/loginbackground.png';\r\nimport usersignin from '../../assets/images/usersignin.png';\r\nimport usersms from '../../assets/images/usersms.png';\r\nimport { require, onlyNumbers, email, minLength, maxLength, length } from \"../../formsFramework/validators\";\r\nimport phonePrefixes from '../../assets/static-data/phonePrefixes';\r\nimport { FormContainer, FormField } from '../../formsFramework';\r\nimport { FormTextField } from \"../../formsFramework/MaterialComponents\";\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { async } from 'react-app-polyfill/node_modules/regenerator-runtime';\r\n//import ModSnakeBar from '../layout/ModSnakeBar/ModSnakeBar';\r\nimport ModModal from '../layout/ModModal/ModModal';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { OutlinedInput, InputAdornment, FormControl, InputLabel, IconButton, FormLabel } from \"@material-ui/core\";\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport { Label } from '@material-ui/icons';\r\nimport { AppContext } from '../../AppContext';\r\nimport LoginHeader from '../layout/Header/LoginHeader';\r\n\r\nconst getIsMobile = () => window.innerWidth <= 800;\r\nconst QuestionandAnswer = React.memo(props => {\r\n const location = useLocation();\r\n const { Dispatcher,displaySnackbarHandler,setLoading } = useContext(AppContext);\r\n const [isMobile, setIsMobile] = useState(getIsMobile());\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n const [displayModal, setDisplayModal] = useState(false);\r\n const [question, SetQuestion] = useState(location.state.question);\r\n //const [disableButReg,setDisableButReg] = useState(true);\r\n //const [loading, setLoading] = useState(false);\r\n const {\r\n UserKey,\r\n Email,\r\n Userid\r\n } = location.state.loginDTO;\r\n const history = useHistory();\r\n\r\n let btnRef = useRef();\r\n\r\n useEffect(() => { \r\n console.log('question ' + question)\r\n const onResize = () => {\r\n setIsMobile(getIsMobile);\r\n };\r\n window.addEventListener(\"resize\", onResize);\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n };\r\n }, []);\r\n const displaySnackbar = (variant, message = '', vertical = '', horizontal = '') => {\r\n //setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal })\r\n displaySnackbarHandler(variant, message, vertical, horizontal);\r\n }\r\n const handleOnSubmit = async (validatioState, form) => {\r\n btnRef.current.focus();\r\n btnRef.current.disabled = true;\r\n setLoading(true);\r\n if (validatioState) {\r\n\r\n const loginDTO = {\r\n useranswer: form.MODAnswer,\r\n UserKey: UserKey,\r\n email: Email,\r\n employeenumber: Userid,\r\n siteurl: Dispatcher.rootUrl\r\n }\r\n const res = await api.post(`ModLogin/AnswerTheQuestion`, loginDTO).then(response => {\r\n if (response) {\r\n if (response && response.data && !response.data.status) {// errors\r\n displaySnackbar(\"error\", \"ארעה שגיאה, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n }\r\n else\r\n if (response && response.data && response.data.status) {\r\n //go back to login form\r\n window.top.location.href =Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;;\r\n }\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"משתמש לא קיים במערכת, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n }\r\n }).catch((error) => {\r\n console.log(error);\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n });;\r\n\r\n }\r\n\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n };\r\n\r\n const form = () => {\r\n return
\r\n {\r\n ({ values, submited, valid, validationState, reValidateField, resetField }) => {\r\n return (\r\n <>\r\n {!isMobile &&\r\n <>\r\n \r\n
\r\n
\r\n >\r\n }\r\n \r\n
\r\n שאלת אימות \r\n \r\n {question} \r\n \r\n\r\n
\r\n \r\n
\r\n שלח קוד לנייד שלי \r\n
\r\n
\r\n >\r\n )\r\n }\r\n }\r\n \r\n }\r\n\r\n return (
\r\n {form()}\r\n
\r\n )\r\n});\r\nexport default QuestionandAnswer;","import React, { useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst generateDefaultValues = (length, inputValues) => {\r\n if (length < 1) return [];\r\n return Array.from({ length }, (_, i) => inputValues[i] || '');\r\n};\r\n\r\nconst isValid = (regex, value) => regex.test(value);\r\n\r\nconst focusOnNextInput = (newValues, currentValues, setFocusInput) => {\r\n for (let [i, element] of newValues.entries()) {\r\n if (!element || i === currentValues.length - 1) {\r\n setFocusInput(i);\r\n break;\r\n }\r\n else{\r\n //finish\r\n }\r\n }\r\n \r\n};\r\n\r\nconst OTPField = ({\r\n value = '',\r\n onChange = value => console.log(value),\r\n numInputs = 6,\r\n onChangeRegex,\r\n labelText = 'הכנסו קוד אימות',\r\n classNames = 'otp-field',\r\n autoComplete = 'one-time-code',//'off',\r\n autoFocus = false,\r\n separator,\r\n isTypeNumber = false,\r\n hasError = false,\r\n inputProps,\r\n ...props\r\n}) => {\r\n const defaultValues = generateDefaultValues(numInputs, value.split(''));\r\n const [values, setValues] = useState(defaultValues);\r\n const [focusInput, setFocusInput] = useState(autoFocus ? 0 : null);\r\n const inputRefs = useRef([]);\r\n useEffect(() => {\r\n setFocusInput(0);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setValues(defaultValues);\r\n \r\n }, [value, numInputs]);\r\n\r\n useEffect(() => {\r\n const input = inputRefs.current[focusInput];\r\n !!input && input.focus();\r\n }, [focusInput]);\r\n\r\n const handleChange = (inputValue, index) => {\r\n if (!!onChangeRegex && !isValid(onChangeRegex, inputValue)) return;\r\n\r\n const newValues = [...values];\r\n\r\n let j = 0;\r\n values.forEach((element, i) => {\r\n const isNewValuesAndAnyEmptyInput = !element && !!inputValue;\r\n const isActionRemoveInputValue = !!element && index === i && !inputValue;\r\n\r\n if (isNewValuesAndAnyEmptyInput) {\r\n newValues[i] = inputValue.split('')[!values[index] ? j : j + 1] || '';\r\n j++;\r\n } else if (isActionRemoveInputValue) {\r\n newValues[i] = '';\r\n }\r\n });\r\n\r\n if (inputValue) {\r\n focusOnNextInput(newValues, values, setFocusInput);\r\n }\r\n\r\n onChange(newValues.join(''));\r\n };\r\n\r\n const onKeyPressed = (key, index) => {\r\n switch (key) {\r\n case 'Backspace':\r\n case 'ArrowLeft':\r\n return setFocusInput(index - 1);\r\n case 'ArrowRight':\r\n return setFocusInput(index + 1);\r\n default:\r\n return;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {values.map((element, index) => (\r\n <>\r\n (inputRefs.current[index] = el)}\r\n type='text'\r\n inputMode='numeric'\r\n value={element}\r\n onChange={e => handleChange(e.target.value, index)}\r\n aria-label={labelText}\r\n aria-required=\"true\"\r\n autoComplete={index === 0 ? autoComplete : 'off'}\r\n onKeyDown={({ key }) => onKeyPressed(key, index)}\r\n {...inputProps}\r\n />\r\n\r\n {/* {index !== values.length - 1 && separator && separator} */}\r\n >\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nOTPField.propTypes = {\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n numInputs: PropTypes.number.isRequired,\r\n onChangeRegex: PropTypes.instanceOf(RegExp),\r\n labelText: PropTypes.string,\r\n classNames: PropTypes.string,\r\n autoComplete: PropTypes.string,\r\n autoFocus: PropTypes.bool,\r\n separator: PropTypes.node,\r\n isTypeNumber: PropTypes.bool,\r\n hasError: PropTypes.bool,\r\n inputProps: PropTypes.object,\r\n};\r\n\r\nexport default OTPField;\r\n\r\n\r\n\r\n","import React, { useState, useEffect, useRef, useContext } from 'react'\r\nimport useForm from '../../formsFramework/core/useForm';\r\nimport { useLocation, useHistory, Link } from 'react-router-dom';\r\nimport api from '../../webApi';\r\nimport clsx from \"clsx\";\r\nimport moment from 'moment';\r\nimport './Login.css';\r\nimport loginbackground from '../../assets/images/loginbackground.png';\r\nimport usersignin from '../../assets/images/usersignin.png';\r\nimport usersms from '../../assets/images/usersms.png';\r\nimport { require, onlyNumbers, email, minLength, maxLength, length } from \"../../formsFramework/validators\";\r\nimport phonePrefixes from '../../assets/static-data/phonePrefixes';\r\nimport { FormContainer, FormField } from '../../formsFramework';\r\nimport { FormTextField } from \"../../formsFramework/MaterialComponents\";\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { async } from 'react-app-polyfill/node_modules/regenerator-runtime';\r\n//import ModSnakeBar from '../layout/ModSnakeBar/ModSnakeBar';\r\nimport ModModal from '../../components/layout/ModModal/ModModal';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { OutlinedInput, InputAdornment, FormControl, InputLabel, IconButton } from \"@material-ui/core\";\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport { AppContext } from '../../AppContext';\r\nimport LoginHeader from '../layout/Header/LoginHeader';\r\nimport OTPField from '../../formsFramework/core/OTPField';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { Button } from 'primereact/button';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\n\r\nconst getIsMobile = () => window.innerWidth <= 800;\r\nconst SMS = React.memo(props => {\r\n const location = useLocation();\r\n const [isMobile, setIsMobile] = useState(getIsMobile());\r\n const [isSMSview, setIsSMSview] = useState(false);\r\n const [typeTextsms, setTypeTextsms] = useState(0);\r\n const isTest = false;\r\n\r\n //const counterInt=120;\r\n //const[counter,SetCounter]=useState(counterInt);\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n const [displayModal, setDisplayModal] = useState(false);\r\n //const [disableButReg,setDisableButReg] = useState(true);\r\n //const [loading, setLoading] = useState(false);\r\n const [config, setConfig] = useState({\r\n numInputs: 6,\r\n optValue: '',\r\n separator: '-',\r\n isTypeNumber: true,\r\n hasError: true,\r\n isDisabled: false,\r\n });\r\n const history = useHistory();\r\n const [userCode, setUserCode] = useState('');\r\n const { Dispatcher, displaySnackbarHandler, setLoading } = useContext(AppContext);\r\n\r\n let btnRef = useRef();\r\n let btnSMSRef = useRef();\r\n const sleep = async (time) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve()\r\n }, time)\r\n })\r\n }\r\n useEffect(() => {\r\n\r\n if (isTest) {\r\n location.state = {\r\n UserKey: 'hq704767', isFirstEntry: true, loginDTO: {\r\n MODsmsID: '1',\r\n PhoneNumber: '0503404470',\r\n TypeTextsms:2\r\n }\r\n };\r\n }\r\n if (location.state == undefined || location.state.loginDTO == undefined || Dispatcher == null || Dispatcher.rootUrl == null) {\r\n history.push(\"/\");\r\n }\r\n else {\r\n setTimeout(() => {\r\n\r\n if ('OTPCredential' in window) {\r\n handleOtpRetrieval();\r\n }\r\n }, 5000);\r\n setTypeTextsms(location.state.loginDTO.TypeTextsms);\r\n\r\n // if('OPTCredential' in window)\r\n // {\r\n // window.addEventListener(\"DOMContentLoaded\", e=>{\r\n // handleOtpRetrieval();\r\n // })\r\n\r\n // }\r\n const onResize = () => {\r\n setIsMobile(getIsMobile);\r\n };\r\n window.addEventListener(\"resize\", onResize);\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n };\r\n }\r\n }, []);\r\n // setTimeout(()=>\r\n // {\r\n\r\n // if('OPTCredential' in window)\r\n // {\r\n // handleOtpRetrieval();\r\n // }\r\n // },2*60*1000);\r\n const handleOtpRetrieval = () => {\r\n try {\r\n //alert('OTPCredential' in window)\r\n const ac = new AbortController();\r\n navigator.credentials.get({\r\n otp: { transport: ['sms'] },\r\n signal: ac.signal\r\n }).then(otp => {\r\n //alert(`got otp from client--->${otp}`);\r\n //alert(`got otp from client--->`, otp.code);\r\n //console.log(`got otp from client--->`, otp.code);\r\n setUserCode(otp.code);\r\n }).catch(err => {\r\n console.console.error(err);\r\n //alert(`err: ${err}`);\r\n })\r\n\r\n }\r\n catch (e) {\r\n //alert(`handleOtpRetrieval:`, e.message);\r\n console.console.error(e);\r\n\r\n }\r\n }\r\n\r\n\r\n // useEffect(()=>{\r\n // const timeInt = counter>0 && setInterval(() => {\r\n // SetCounter((time)=>time-1);\r\n // }, 1000);\r\n // return()=>{\r\n // clearInterval(timeInt);\r\n // }\r\n // },[counter])\r\n const displaySnackbar = (variant, message = '', vertical = '', horizontal = '') => {\r\n //setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal });\r\n displaySnackbarHandler(variant, message, vertical, horizontal);\r\n setLoading(false);\r\n if (btnRef.current)\r\n btnRef.current.disabled = false;\r\n if (btnSMSRef.current)\r\n btnSMSRef.current.disabled = false;\r\n }\r\n const handleOnSubmit = async (validatioState, form) => {\r\n if (location.state == undefined || location.state.loginDTO == undefined || Dispatcher == null || Dispatcher.rootUrl == null) {\r\n history.push(\"/\");\r\n }\r\n if (btnRef.current) {\r\n btnRef.current.focus();\r\n btnRef.current.disabled = true;\r\n }\r\n try {\r\n if (userCode.length == 6) {\r\n setLoading(true);\r\n const loginDTO = {\r\n userCode: userCode,//form.userCode,\r\n MODsmsID: location.state.loginDTO.MODsmsID,\r\n PhoneNumber: location.state.loginDTO.PhoneNumber,\r\n Url: Dispatcher.PersonalAreaUrl,\r\n RootUrl: Dispatcher.rootUrl\r\n }\r\n const res = await api.post(`ModLogin/SignInWithSMSCode`, loginDTO).then(response => {\r\n //console.log(`SMS, response SignInWithSMSCode`, response);\r\n //debugger;\r\n if (response) {\r\n if (response.status == 200 && response.data == \"{'status':'OK'}\") {\r\n window.location.href = Dispatcher.PersonalAreaUrl;\r\n }\r\n //console.log(response.data);\r\n if (response && response.data == 2)//\"TimeEnded\"\r\n {\r\n displaySnackbar(\"error\", \"תם הזמן, יש לשלוח קוד חדש\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n else\r\n if (response && response.data &&\r\n (response.data == 0 ||\r\n response.data == 3 ||\r\n response.data == 4))//\"errors\"\r\n {\r\n displaySnackbar(\"error\", \"ארעה שגיאה, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n else\r\n if (response && response.data == 1) {\r\n //console.log('SignInWithSMSCode rseponse seccess ' + response);\r\n //window.location.href = \"https://logintest.mod.gov.il/onlineservice/lobby.html\";\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"משתמש לא קיים במערכת, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n }).catch((error) => {\r\n console.log(`error:`, error);\r\n if (error.message.indexOf(\"302\") > 0) {\r\n //window.location.href = \"https://logintest.mod.gov.il/onlineservice/lobby.html\";//(`${process.env.PUBLIC_URL}\\onlineservice\\lobby.html`);\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n else {\r\n console.log(error);\r\n setUserCode('');\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n }\r\n //window.location.href = Dispatcher.PersonalAreaUrl;\r\n\r\n });;\r\n }\r\n else {\r\n config.hasError = true;\r\n }\r\n //await sleep(8000);\r\n if (btnRef.current)\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n }\r\n catch (error) {\r\n displaySnackbar(\"error\", \"ארעה שגיאה, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n //btnRef.current.disabled = false;\r\n //setLoading(false);\r\n console.error(error);\r\n }\r\n };\r\n const handleOnReSendSMSSubmit = async (e) => {\r\n if (location.state == undefined || location.state.loginDTO == undefined || Dispatcher == null || Dispatcher.rootUrl == null) {\r\n history.push(\"/\");\r\n }\r\n setUserCode('');\r\n e.preventDefault();\r\n if (btnSMSRef.current)\r\n btnSMSRef.current.disabled = true;\r\n setLoading(true);\r\n //console.log(isTextsms);\r\n const loginDTO = {\r\n //IsVoiceMsg: !isTextsms,\r\n TypeTextsms: typeTextsms,\r\n MODsmsID: location.state.loginDTO.MODsmsID,\r\n PhoneNumber: location.state.loginDTO.PhoneNumber,\r\n RootUrl: Dispatcher.rootUrl\r\n }\r\n\r\n const res = await api.post(`ModLogin/SignInBySMS`, loginDTO).then(response => {\r\n if (response && response.data.status) {\r\n //SetCounter(counterInt);\r\n displaySnackbar('info', 'קוד נשלח במסרון', 'top', 'center');\r\n setTimeout(() => {\r\n if ('OTPCredential' in window) {\r\n handleOtpRetrieval();\r\n }\r\n }, 5000);\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"ארעה תקלה, אנא פנ/י למוקד התמיכה\", 'top', 'center');\r\n }\r\n\r\n }).catch((error) => {\r\n console.log(error);\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n });;\r\n if (btnSMSRef.current)\r\n btnSMSRef.current.disabled = false;\r\n setLoading(false);\r\n };\r\n const onUserCodeChange = (code) => {\r\n setUserCode(code);\r\n if (code.length == 6) {\r\n\r\n btnSMSRef.current.focus();\r\n }\r\n }\r\n const form = () => {\r\n return
\r\n {\r\n ({ values, submited, valid, validationState, reValidateField, resetField }) => {\r\n return (\r\n <>\r\n {!isMobile &&\r\n <>\r\n \r\n
\r\n
\r\n >\r\n }\r\n \r\n
\r\n אימות מסרון \r\n \r\n {/* */}\r\n {config.separator}}\r\n isTypeNumber={config.isTypeNumber}\r\n hasError={config.hasError}\r\n inputProps={{ className: 'otp-input', disabled: false }}\r\n />\r\n
\r\n \r\n
\r\n התחברות \r\n {/* handleOnReSendSMSSubmit(e)}>שלחו קוד חדש לנייד שלי */}\r\n\r\n
\r\n
\r\n לא קיבלת קוד? \r\n \r\n
\r\n setTypeTextsms(e.value)}\r\n checked={typeTextsms === 0}> \r\n סמס רגיל \r\n
\r\n
\r\n setTypeTextsms(e.value)}\r\n checked={typeTextsms === 1}> \r\n סמס קולי \r\n
\r\n {Dispatcher && Dispatcher.IsAllowMailLogin &&\r\n
\r\n setTypeTextsms(e.value)}\r\n checked={typeTextsms === 2}> \r\n דואר אלקטרוני \r\n
\r\n }\r\n
\r\n handleOnReSendSMSSubmit(e)}>שלחו שוב \r\n \r\n {/*
\r\n
קוד מסרון יפוג עוד\r\n {counter} \r\n שניות
\r\n
handleOnReSendSMSSubmit(e)}>שלחו קוד חדש לנייד שלי \r\n
*/}\r\n
\r\n >\r\n )\r\n }\r\n }\r\n \r\n }\r\n\r\n return (
\r\n {form()}\r\n
\r\n\r\n )\r\n});\r\nexport default SMS;","import React, { useState, useEffect, useRef, useContext } from 'react'\r\nimport useForm from '../../formsFramework/core/useForm';\r\nimport { useLocation, useHistory, Link } from 'react-router-dom';\r\nimport api from '../../webApi';\r\nimport clsx from \"clsx\";\r\nimport moment from 'moment';\r\nimport './Login.css';\r\nimport loginbackground from '../../assets/images/loginbackground.png';\r\nimport usersignin from '../../assets/images/usersignin.png';\r\nimport usersms from '../../assets/images/usersms.png';\r\nimport { require, onlyNumbers, email, minLength, maxLength, length } from \"../../formsFramework/validators\";\r\nimport phonePrefixes from '../../assets/static-data/phonePrefixes';\r\nimport { FormContainer, FormField } from '../../formsFramework';\r\nimport { FormTextField } from \"../../formsFramework/MaterialComponents\";\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { async } from 'react-app-polyfill/node_modules/regenerator-runtime';\r\n//import ModSnakeBar from '../layout/ModSnakeBar/ModSnakeBar';\r\nimport ModModal from '../layout/ModModal/ModModal';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { OutlinedInput, InputAdornment, FormControl, InputLabel, IconButton } from \"@material-ui/core\";\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport { AppContext } from '../../AppContext';\r\nimport LoginHeader from '../layout/Header/LoginHeader';\r\nimport OTPField from '../../formsFramework/core/OTPField';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { Button } from 'primereact/button';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\n\r\nconst getIsMobile = () => window.innerWidth <= 800;\r\nconst SMSFromLogin = React.memo(props => {\r\n const location = useLocation();\r\n const [isMobile, setIsMobile] = useState(getIsMobile());\r\n const [isSMSview, setIsSMSview] = useState(false);\r\n const [showPassword, setShowPassword] = React.useState(false);\r\n const [isTextsms, setIsTextsms] = useState(true);\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n const [displayModal, setDisplayModal] = useState(false);\r\n //const [disableButReg,setDisableButReg] = useState(true);\r\n //const [loading, setLoading] = useState(false);\r\n const [config, setConfig] = useState({\r\n numInputs: 6,\r\n optValue: '',\r\n separator: '-',\r\n isTypeNumber: true,\r\n hasError: true,\r\n isDisabled: false,\r\n });\r\n const history = useHistory();\r\n const [userCode, setUserCode] = useState('');\r\n const { Dispatcher, displaySnackbarHandler, setLoading } = useContext(AppContext);\r\n\r\n let btnRef = useRef();\r\n let btnSMSRef = useRef();\r\n const sleep = async (time) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve()\r\n }, time)\r\n })\r\n }\r\n const isTest=false;\r\n useEffect(() => {\r\n /*if (isTest) {\r\n location.state = {\r\n UserKey: 'hq704767', isFirstEntry: true, loginDTO: {\r\n MODsmsID: '1',\r\n PhoneNumber: '0503404470'\r\n }\r\n };\r\n }*/\r\n if (location.state == undefined || location.state.Id == undefined || Dispatcher==null ||Dispatcher.rootUrl==null) {\r\n history.push(\"/\");\r\n }\r\n setTimeout(() => {\r\n \r\n if ('OTPCredential' in window) {\r\n handleOtpRetrieval();\r\n }\r\n }, 5000);\r\n const onResize = () => {\r\n setIsMobile(getIsMobile);\r\n };\r\n window.addEventListener(\"resize\", onResize);\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n };\r\n }, []);\r\n const handleOtpRetrieval = () => {\r\n try {\r\n //alert('OTPCredential' in window)\r\n const ac = new AbortController();\r\n navigator.credentials.get({\r\n otp: { transport: ['sms'] },\r\n signal: ac.signal\r\n }).then(otp => {\r\n //alert(`got otp from client--->${otp}`);\r\n //alert(`got otp from client--->`, otp.code);\r\n console.log(`got otp from client--->`, otp.code);\r\n setUserCode(otp.code);\r\n }).catch(err => {\r\n console.console.error(err);\r\n //alert(`err: ${err}`);\r\n })\r\n\r\n }\r\n catch (e) {\r\n console.console.error(e);\r\n //alert(`handleOtpRetrieval:`, e.message);\r\n }\r\n }\r\n\r\n const displaySnackbar = (variant, message = '', vertical = '', horizontal = '') => {\r\n //setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal });\r\n displaySnackbarHandler(variant, message, vertical, horizontal);\r\n setLoading(false);\r\n if (btnRef.current) {\r\n btnRef.current.disabled = false;\r\n }\r\n }\r\n const handleOnSubmit = async (validatioState, form) => {\r\n if (location.state == undefined || location.state.Id == undefined || Dispatcher==null ||Dispatcher.rootUrl==null) {\r\n history.push(\"/\");\r\n }\r\n if (btnRef.current) {\r\n btnRef.current.focus();\r\n btnRef.current.disabled = true;\r\n }\r\n try {\r\n if (userCode.length == 6) {\r\n setLoading(true);\r\n const loginDTO = {\r\n userCode: userCode,\r\n ID: location.state.Id,\r\n Url: Dispatcher.PersonalAreaUrl,\r\n RootUrl: Dispatcher.rootUrl\r\n }\r\n const res = await api.post(`ModLogin/SignInWithLoginSMSCode`, loginDTO).then(response => {\r\n console.log(`response SignInWithSMSCode` , response);\r\n\r\n if (response) {\r\n if(response.status==200 && response.data==\"{'status':'OK'}\")\r\n {\r\n window.location.href = Dispatcher.PersonalAreaUrl;\r\n }\r\n console.log(response.data);\r\n if (response && response.data == 2)//\"TimeEnded\"\r\n {\r\n displaySnackbar(\"error\", \"תם הזמן, יש לשלוח קוד חדש\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n else\r\n if (response && response.data &&\r\n (response.data == 0 ||\r\n response.data == 3 ||\r\n response.data == 4))//\"errors\"\r\n {\r\n displaySnackbar(\"error\", \"ארעה שגיאה, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n else\r\n if (response && response.data == 1) {\r\n console.log('SignInWithSMSCode rseponse seccess ' + response);\r\n //window.location.href = \"https://logintest.mod.gov.il/onlineservice/lobby.html\";\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"משתמש לא קיים במערכת, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n setUserCode('');\r\n }\r\n }).catch((error) => {\r\n console.log(`error: `,error);\r\n if (error.message.indexOf(\"302\") > 0) {\r\n //window.location.href = \"https://logintest.mod.gov.il/onlineservice/lobby.html\";//(`${process.env.PUBLIC_URL}\\onlineservice\\lobby.html`);\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n else {\r\n \r\n setUserCode('');\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n }\r\n //window.location.href = Dispatcher.PersonalAreaUrl;\r\n\r\n });;\r\n }\r\n else {\r\n config.hasError = true;\r\n }\r\n //await sleep(8000);\r\n if (btnRef.current)\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n }\r\n catch (error) {\r\n console.log(`error:`,error);\r\n if (error.message.indexOf(\"302\") > 0) {\r\n //window.location.href = \"https://logintest.mod.gov.il/onlineservice/lobby.html\";//(`${process.env.PUBLIC_URL}\\onlineservice\\lobby.html`);\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"ארעה שגיאה, אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n //btnRef.current.disabled = false;\r\n //setLoading(false);\r\n console.error(error);\r\n }\r\n }\r\n };\r\n const handleOnReSendSMSSubmit = async (e) => {\r\n setUserCode('');\r\n e.preventDefault();\r\n if (btnSMSRef.current)\r\n btnSMSRef.current.disabled = true;\r\n setLoading(true);\r\n\r\n const loginDTO = {\r\n IsVoiceMsg: !isTextsms,\r\n ID: location.state.Id,\r\n RootUrl: Dispatcher.rootUrl\r\n }\r\n const res = await api.post(`ModLogin/ReSentSMSCode`, loginDTO).then(response => {\r\n if (response && response.data.status) {\r\n location.state.Id = response.data.Data.smsRowId;\r\n let shortphone = response.data.Data.shortPhone;\r\n let message = 'נשלח קוד במסרון למספר XXX-XXX' + shortphone;\r\n displaySnackbar('info', message, 'top', 'center');\r\n //displaySnackbar('info', 'קוד נשלח במסרון', 'top', 'center');\r\n setTimeout(() => { \r\n if ('OTPCredential' in window) {\r\n handleOtpRetrieval();\r\n }\r\n }, 5000);\r\n\r\n }\r\n else {\r\n displaySnackbar(\"error\", \"ארעה תקלה, אנא פנ/י למוקד התמיכה\", 'top', 'center');\r\n }\r\n\r\n }).catch((error) => {\r\n console.log(error);\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n });;\r\n btnSMSRef.current.disabled = false;\r\n setLoading(false);\r\n };\r\n const onUserCodeChange = (code) => {\r\n setUserCode(code);\r\n if (code.length == 6) {\r\n\r\n btnSMSRef.current.focus();\r\n }\r\n }\r\n const form = () => {\r\n return
\r\n {\r\n ({ values, submited, valid, validationState, reValidateField, resetField }) => {\r\n return (\r\n <>\r\n {!isMobile &&\r\n <>\r\n \r\n
\r\n
\r\n >\r\n }\r\n \r\n
\r\n אימות מסרון \r\n \r\n {/* */}\r\n {config.separator}}\r\n isTypeNumber={config.isTypeNumber}\r\n hasError={config.hasError}\r\n inputProps={{ className: 'otp-input', disabled: false }}\r\n />\r\n
\r\n \r\n
\r\n התחברות \r\n {/* handleOnReSendSMSSubmit(e)}>שלחו קוד חדש לנייד שלי */}\r\n
\r\n
\r\n לא קיבלת קוד? \r\n \r\n setIsTextsms(e.value)}\r\n checked={isTextsms === true}> \r\n סמס רגיל \r\n
\r\n \r\n setIsTextsms(e.value)}\r\n checked={isTextsms === false}> \r\n סמס קולי \r\n
\r\n handleOnReSendSMSSubmit(e)}>שלחו שוב \r\n \r\n {/*
\r\n \r\n setIsTextsms(e.value)}\r\n checked={isTextsms === true}> \r\n סמס רגיל \r\n
\r\n \r\n setIsTextsms(e.value)}\r\n checked={isTextsms === false}> \r\n סמס קולי \r\n
\r\n handleOnReSendSMSSubmit(e)}>שלחו קוד חדש לנייד שלי \r\n */}\r\n
\r\n >\r\n )\r\n }\r\n }\r\n \r\n }\r\n\r\n return (
\r\n {form()}\r\n
\r\n\r\n )\r\n});\r\nexport default SMSFromLogin;","export default {\r\n BusinessCategory:[\r\n {\r\n \"id\": 'שם בית הספר היסודי בו למדת',\r\n \"title\":'שם בית הספר היסודי בו למדת'\r\n },\r\n {\r\n \"id\": 'שם הנעורים של אמך',\r\n \"title\":'שם הנעורים של אמך'\r\n },\r\n {\r\n \"id\": 'שם העיר בה נולדת',\r\n \"title\":'שם העיר בה נולדת',\r\n },\r\n {\r\n \"id\": 'שם חיית המחמד הראשונה שלך',\r\n \"title\":'שם חיית המחמד הראשונה שלך',\r\n },\r\n {\r\n \"id\": 'מהי ארץ המוצא של אמך',\r\n \"title\":'מהי ארץ המוצא של אמך',\r\n }\r\n ]\r\n}","import React, { useState, useEffect, useRef, useContext } from 'react';\r\nimport { useHistory, useLocation, Link } from 'react-router-dom';\r\n\r\nimport useForm from '../../formsFramework/core/useForm';\r\nimport { TextField } from \"@material-ui/core\";\r\nimport api from '../../webApi';\r\nimport clsx from \"clsx\";\r\nimport moment from 'moment';\r\nimport '../Login/Login.css';\r\nimport loginbackground from '../../assets/images/loginbackground.png';\r\nimport { require, onlyNumbers, email, phoneNumber, minLength, maxLength, length, passwordvalidator ,rangeLength} from \"../../formsFramework/validators\";\r\nimport BusinessCategory from '../../assets/static-data/BusinessCategory';\r\nimport { FormContainer, FormField } from '../../formsFramework';\r\nimport { FormTextField, FormDatePicker, FormSelectField, FormPasswordField } from \"../../formsFramework/MaterialComponents\";\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { async } from 'react-app-polyfill/node_modules/regenerator-runtime';\r\nimport ModModal from '../../components/layout/ModModal/ModModal';\r\nimport { AppContext } from '../../AppContext';\r\n\r\n\r\n\r\nconst SecStepRegistration = React.memo(props => {\r\n const location = useLocation();\r\n const [displayModal, setDisplayModal] = useState(false);\r\n const { Dispatcher, displaySnackbarHandler, setLoading } = useContext(AppContext);\r\n const [userKey, setUserKey] = useState(null);\r\n const [isFirstEntry, setIsFirstEntry] = useState(false);\r\n const [reEnterPassError, setReEnterPassError] = useState(false);\r\n const history = useHistory();\r\n\r\n\r\n let btnRef = useRef();\r\n\r\n const sleep = async (time) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve()\r\n }, time)\r\n })\r\n }\r\n useEffect(() => {\r\n //debugger;\r\n //location.state = { UserKey: 'hq704767', isFirstEntry: true };\r\n if (location.state == undefined) {\r\n window.top.location.href = \"/\";\r\n //location.state = { UserKey: 'hq704767', isFirstEntry: true };\r\n }\r\n //else\r\n {\r\n setUserKey(location.state.UserKey);\r\n setIsFirstEntry(location.state.isFirstEntry);\r\n }\r\n // if (Dispatcher == null)\r\n // dispatcherHandler();\r\n }, [])\r\n const handleOnSubmit = async (validatioState, form) => {\r\n btnRef.current.focus();\r\n btnRef.current.disabled = true;\r\n if (form.newuserpassword != form.reEnteruserpassword) {\r\n setReEnterPassError(true);\r\n return;\r\n }\r\n else {\r\n setReEnterPassError(false);\r\n }\r\n if (validatioState) {\r\n setLoading(true);\r\n\r\n const loginDTO = {\r\n user: {\r\n uid: userKey,\r\n businessCategory: form.ModQuestion == undefined ? null : form.ModQuestion + \";\" + form.userAnswer,\r\n password: form.newuserpassword,\r\n },\r\n siteurl: Dispatcher.rootUrl,\r\n continueToUrl: Dispatcher.PersonalAreaUrl\r\n //isFirstEntry: isFirstEntry,\r\n //question: form.ModQuestion,\r\n //answer: form.userAnswer\r\n\r\n }\r\n //const res = await api.post(`ModLogin/SignIn`, loginDTO).then(response => {\r\n const res = await api.post(`ModLogin/UpdateRegistration`, loginDTO).then(response => {\r\n if (response && response.data && response.data.status) {\r\n console.log('UpdateRegistration rseponse seccess ' + response);\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n else\r\n if (!response || (response && response.data && !response.data.status)) {\r\n console.log('response error');\r\n displaySnackbar(\"error\", \"ארעה שגיאה , אנא פני/ה למוקד התמיכה\", 'top', 'center');\r\n }\r\n }).catch((error) => {\r\n if (error.message.indexOf(\"302\") > 0) {\r\n\r\n window.location.href = Dispatcher.PersonalAreaUrl;//Dispatcher.protocol + '://' + Dispatcher.rootUrl + Dispatcher.PersonalAreaUrl;\r\n }\r\n else {\r\n console.log(error);\r\n displaySnackbar(\"error\", \"בעיה בעת התחברות משתמש, אנא פנה/י למוקד התמיכה\", 'top', 'center');\r\n }\r\n });;\r\n\r\n }\r\n else {\r\n console.log('validation failed');\r\n displaySnackbar(\"error\", \"תבנית סיסמה אינה תקינה\", 'top', 'center');\r\n }\r\n //await sleep(8000);\r\n btnRef.current.disabled = false;\r\n setLoading(false);\r\n };\r\n\r\n\r\n function handleOnClose() {\r\n // setShowModal(false);\r\n }\r\n\r\n const displaySnackbar = (variant, message = '', vertical = '', horizontal = '') => {\r\n //setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal })\r\n displaySnackbarHandler(variant, message, vertical, horizontal);\r\n }\r\n\r\n const form = () => {\r\n return
\r\n {\r\n ({ values, submited, valid, validationState, reValidateField, resetField }) => {\r\n\r\n return (\r\n <>\r\n \r\n
\r\n שינוי סיסמה ראשונית \r\n \r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n
\r\n \r\n \r\n {reEnterPassError &&\r\n אימות נכשל }\r\n
\r\n {isFirstEntry && <>\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n >\r\n }\r\n \r\n\r\n
\r\n שליחה \r\n
\r\n
\r\n >\r\n )\r\n }\r\n }\r\n \r\n }\r\n return (
\r\n {form()}\r\n
\r\n\r\n );\r\n});\r\nexport default SecStepRegistration;\r\n","import React from 'react';\r\nimport modlog from '../assets/images/mod.png';\r\nimport imgrobot from '../assets/images/404.gif';\r\nconst Page404 = React.memo(props => {\r\n return (<>\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
כניסה לאיזור אישי \r\n
הדף לא נמצא \r\n\r\n
\r\n
\r\n >\r\n )\r\n});\r\nexport default Page404;","\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { AppContext } from './AppContext';\r\nimport api from './webApi';\r\n\r\nconst AppProvider = props => {\r\n const [Dispatcher, setDispatcher] = useState(null);\r\n const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n const [loading, setLoading] = useState(false);\r\n const history = useHistory();\r\n useEffect(() => {\r\n //var isStatusok = window.location.pathname.toLowerCase().indexOf(\"status\")>0;\r\n if (Dispatcher == null)//(!isStatusok && Dispatcher == null)\r\n dispatcherHandler();\r\n }, [])\r\n const dispatcherHandler = () => {\r\n //console.log('AppProvider dispatcherHandler')\r\n fillContext();\r\n\r\n }\r\n const fillContext = async () => {\r\n //console.log('fill context');\r\n try {\r\n let url='';\r\n let rootUrl='';\r\n let protocol=''\r\n let action='';\r\n \r\n if (window.location.pathname.indexOf(\"Dispatcher\") <= 0 && window.location.pathname.toLowerCase().indexOf(\"registration\")>0) {\r\n \r\n rootUrl = window.location.host;\r\n //console.log('provider Registration:'+rootUrl);\r\n }\r\n else {\r\n url = new URLSearchParams(window.location.search).get('URL');\r\n rootUrl = new URLSearchParams(window.location.search).get('h');\r\n protocol = new URLSearchParams(window.location.search).get('PROTOCOL');\r\n action = new URLSearchParams(window.location.search).get('TAM_OP');\r\n }\r\n\r\n if ((rootUrl && rootUrl.length > 0) || (action && (action.toLocaleLowerCase() == 'error' || action.toLocaleLowerCase()=='logout'))) {\r\n const body = {\r\n siteUrl: rootUrl\r\n }\r\n //const baseURL = `${process.env.REACT_APP_API_BASE_URL}api/`;\r\n //const res = await fetch(`${process.env.REACT_APP_API_BASE_URL}api/ModLogin/GetSiteStyle`, { method: 'post', body: body, headers: { 'Content-Type': 'application/json' } }).then(response => {\r\n const res = await api.post(`ModLogin/GetSiteStyle`, body).then(response => {\r\n if (response && response.data && response.data.status) {\r\n let siteLogo = response.data.Data.SiteLogo;\r\n let isLinkToMainSite = response.data.Data.IsLinkToMainSite;\r\n let siteName = response.data.Data.SiteName;\r\n let RegistrationUrl = response.data.Data.RegistrationUrl;\r\n let PersonalAreaUrl = response.data.Data.PersonalAreaUrl;\r\n let RegistrationText =response.data.Data.RegistrationText;\r\n let favIconpath = response.data.Data.FavIcon;\r\n let InfoText = response.data.Data.InfoText;\r\n let IsAllowMailLogin = response.data.Data.IsAllowMailLogin;\r\n const dispatcherDTO = {\r\n url: url,\r\n rootUrl: rootUrl,\r\n protocol: protocol,\r\n action: action,\r\n siteLogo: siteLogo,\r\n isLinkToMainSite: isLinkToMainSite,\r\n siteName: siteName,\r\n goToRegistration: RegistrationUrl ? RegistrationUrl : '',\r\n RegistrationText:RegistrationText?RegistrationText:'הרשמה לאיזור האישי',\r\n PersonalAreaUrl:PersonalAreaUrl,\r\n InfoText :InfoText?InfoText:'',\r\n IsAllowMailLogin:IsAllowMailLogin?IsAllowMailLogin:false\r\n }\r\n setDispatcher(dispatcherDTO);\r\n //console.log(`dispatcherDTO`,dispatcherDTO);\r\n const faviconel = document.getElementById(\"favicon\");\r\n faviconel.setAttribute(\"href\",favIconpath);\r\n }\r\n });\r\n \r\n }\r\n else {\r\n // console.error('dispatcher failed');\r\n // history.push({\r\n // pathname: \"./Page404\",\r\n // });\r\n // window.location.href ='./Page404';\r\n history.push({\r\n pathname: \"./\",\r\n });\r\n }\r\n } catch (error) {\r\n console.error('dispatcher failed', error);\r\n history.push({\r\n pathname: \"./Page404\",\r\n });\r\n }\r\n }\r\n const displaySnackbarHandler = (variant, message = '', vertical = '', horizontal = '') => {\r\n setSnackBarProps({ display: true, variant: variant, message: message, vertical: vertical, horizontal: horizontal });\r\n setLoading(false);\r\n setTimeout(() => {\r\n setSnackBarProps({ display: false, variant: variant, message: message, vertical: vertical, horizontal: horizontal });\r\n }, 3000);\r\n }\r\n return
\r\n\r\n {props.children}\r\n \r\n}\r\nexport default AppProvider;","import React, { useContext } from 'react';\r\nimport modlog from '../assets/images/mod.png';\r\nimport { AppContext } from '../AppContext';\r\n//import imgrobot from '../assets/images/404.gif';\r\nconst Logout = React.memo(props => {\r\n const { Dispatcher } = useContext(AppContext);\r\n return (<>\r\n
\r\n \r\n \r\n
\r\n
\r\n {/*
*/}\r\n
יציאה מאיזור אישי \r\n {Dispatcher && Dispatcher.PersonalAreaUrl.length > 0 &&\r\n
חזרה לאתר \r\n }\r\n
\r\n
\r\n >\r\n )\r\n});\r\nexport default Logout;","import React from 'react';\r\nimport modlog from '../assets/images/mod.png';\r\nimport imgrobot from '../assets/images/error.gif';\r\nconst ErrorPage = React.memo(props => {\r\n return (<>\r\n
\r\n
\r\n
\r\n
\r\n
אופס ארעה שגיאה \r\n \r\n
\r\n >\r\n )\r\n});\r\nexport default ErrorPage;","import React, { useState, useEffect, Component, Fragment } from 'react';\r\nimport { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom';\r\n\r\n// import LandingPage from '../LandingPage/LandingPage';\r\nimport Registration from '../../components/Registration/Registration';\r\nimport ImportersRegistration from '../../components/Registration/Importers/Registration';\r\nimport HachvanaRegistration from '../../components/Registration/Hachvana/Registration';\r\nimport HachvanaUserExist from '../../components/Registration/Hachvana/UserExists';\r\nimport RegistrationStatus from '../../components/Registration/RegistrationStatus';\r\nimport UserExist from '../../components/Registration/UserExists';\r\nimport Login from '../../components/Login/Login';\r\nimport ForgotPassword from '../../components/Login/ForgotPassword';\r\nimport QuestionandAnswer from '../../components/Login/QuestionandAnswer';\r\nimport SMS from '../../components/Login/SMS';\r\nimport SMSFromLogin from '../../components/Login/SMSFromLogin';\r\nimport SecStepRegistration from '../../components/Registration/SecStepRegistration';\r\nimport Page404 from '../../components/Page404';\r\n// import StatusOK from '../../components/statusok';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport AppProvider from '../../AppProvider';\r\nimport Logout from '../../components/Logout';\r\nimport ErrorPage from '../../components/ErrorPage';\r\n\r\nconst RoutingManager = () => {\r\n const [isDispatcher, setIsDispatcher] = useState(false);\r\n const [action, setAction] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n console.log('RoutingManager:', `${process.env.PUBLIC_URL}`);\r\n setIsDispatcher(window.location.pathname.indexOf(\"Dispatcher\") > 0);\r\n let actionType = new URLSearchParams(window.location.search).get('TAM_OP');\r\n if (actionType) {\r\n actionType = actionType.toLocaleLowerCase();\r\n }\r\n setAction(actionType);\r\n\r\n }, []);\r\n const hachvana = () => {\r\n return (
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n const mishpahot = () => {\r\n return (
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n //importers:\r\n const others = () => {\r\n return (
\r\n {/* */}\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n\r\n return (
\r\n \r\n {/* */}\r\n \r\n \r\n \r\n {isDispatcher\r\n ? action == 'logout'\r\n ? \r\n : action == 'error'? : \r\n\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isDispatcher && action == 'error' &&\r\n \r\n \r\n \r\n }\r\n {window.location.origin.indexOf(\"hachvana\") > 0 ?\r\n hachvana()\r\n : window.location.origin.indexOf(\"mishpahot\") > 0 || window.location.origin.indexOf(\"familyonline\") > 0 ?\r\n mishpahot()\r\n : others()\r\n\r\n }\r\n\r\n \r\n )\r\n};\r\n\r\n// class RoutingManager extends Component {\r\n\r\n\r\n// render() {\r\n// const { loading } = this.context;\r\n// const hachvana=()=>{\r\n// return (
\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n// const mishpahot=()=>{\r\n// return (
\r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// );\r\n// }\r\n// const others=()=>{\r\n// return (
\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n\r\n// return (\r\n// // if(window.location.origin.indexOf(\"Dispatcher\")> 0)\r\n// // {\r\n\r\n// // }\r\n//
\r\n// \r\n// {/* {window.location.origin.indexOf(\"hachvana\") > 0 ? \r\n// hachvana\r\n// :window.location.origin.indexOf(\"mishpahot\") > 0 ? \r\n// mishpahot\r\n// :others\r\n// } */}\r\n// \r\n// {/* \r\n// */}\r\n\r\n\r\n// { window.location.href.indexOf(\"hachvana\") > 0 ? \r\n// \r\n// :\r\n// \r\n// } \r\n// \r\n// {window.location.origin.indexOf(\"mishpahot\") > 0 ? \r\n// \r\n// : window.location.href.indexOf(\"hachvana\") > 0 ? \r\n// \r\n// : \r\n// \r\n\r\n// } \r\n\r\n// \r\n// {/* {loading ? : null} */}\r\n// \r\n// );\r\n// }\r\n// };\r\n\r\nexport default RoutingManager;\r\n","import React, { Component } from 'react';\r\nimport { create } from 'jss';\r\nimport rtl from 'jss-rtl';\r\nimport { StylesProvider, jssPreset } from '@material-ui/styles';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core/styles\";\r\nconst materialStyle = (WrappedComponent) => {\r\n // Configure JSS\r\n const jss = create({ plugins: [...jssPreset().plugins, rtl()] });\r\n const theme = createMuiTheme({\r\n direction: \"rtl\",\r\n typography: {\r\n fontFamily: [\"Open Sans Hebrew\"].join(\",\"),\r\n fontSize: 14\r\n },\r\n palette: {\r\n primary: {\r\n main: \"#364058\"\r\n },\r\n secondary: {\r\n main: \"#757575\"\r\n },\r\n error: {\r\n main: \"#DF0100\"\r\n }\r\n }\r\n });\r\n return class extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n}\r\nexport default materialStyle;\r\n","import React ,{useEffect,useState} from 'react';\r\nimport PropTypes from'prop-types';\r\nimport clsx from 'clsx';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Snackbar,SnackbarContent,MuiAlert, IconButton} from '@material-ui/core';\r\nimport './ModSnakeBar.css'\r\n\r\nconst variants ={\r\n success:{icon:CheckCircleIcon,class:'successSnack', message:'הפעולה התבצעה בהצלחה!'},\r\n error:{icon:ErrorIcon,class:'errorSnack', message:'אירעה שגיאה באתר, אנא פנה לשירות הלקוחות !'},\r\n info:{icon:InfoIcon,class:'infoSnack', message:'הודעת מערכת'},\r\n warning:{icon:WarningIcon,class:'warningSnack', message:'הודעת מערכת'}\r\n}\r\n\r\nexport default function ModSnakeBar(props){\r\n const {display, variant, message,vertical,horizontal} = props;\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(()=> {\r\n if(props.display === true){\r\n setOpen(true);\r\n } \r\n },[props])\r\n\r\n const handleOpen = ()=>{\r\n setOpen(true);\r\n }\r\n const handleClose = (event, reason)=>{\r\n if(reason === 'clickaway'){\r\n return;\r\n }\r\n window.scrollTo(0,0);\r\n setOpen(false);\r\n }\r\n\r\n const Icon = variants[variant].icon;\r\n return(\r\n
\r\n \r\n \r\n \r\n {message===''? variants[variant].message:message}\r\n \r\n } \r\n action={[\r\n \r\n \r\n \r\n ]} \r\n > \r\n \r\n\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState,useContext } from 'react';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { ContactSupportOutlined } from '@material-ui/icons';\r\nimport LoginHeader from './Header/LoginHeader';\r\nimport ModSnakeBar from './ModSnakeBar/ModSnakeBar';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { AppContext } from '../../AppContext';\r\n\r\n\r\n\r\nconst MainLayout = ({children})=> {\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n //const [loading, setLoading] = useState(false);\r\n const { Dispatcher,snackBarProps,loading } = useContext(AppContext);\r\n const gotomain=()=>{\r\n //props.history.push('/login');\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
כניסה לאיזור אישי \r\n
{Dispatcher && Dispatcher.siteName} \r\n {children}\r\n {/*
בחזרה לדף ראשי */}\r\n {/*
בחזרה לדף ראשי */}\r\n { Dispatcher &&
בחזרה לדף ראשי }\r\n {snackBarProps &&\r\n
\r\n }\r\n {loading ?
: null}\r\n
\r\n
\r\n >\r\n );\r\n}\r\nexport default MainLayout;","import React, { useEffect, useState } from 'react';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport './App.css';\r\nimport api from './webApi';\r\nimport RoutingManager from './containers/RoutingManager/RoutingManager';\r\nimport Registration from './components/Registration/Registration';\r\nimport materialStyle from './hoc/MaterialStyle';\r\nimport AppProvider from './AppProvider';\r\nimport { ContactSupportOutlined } from '@material-ui/icons';\r\nimport LoginHeader from './components/layout/Header/LoginHeader';\r\n//import ModSnakeBar from './components/layout/ModSnakeBar/ModSnakeBar';\r\nimport MainLayout from './components/layout/MainLayout';\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\nfunction App() {\r\n //const [snackBarProps, setSnackBarProps] = useState({ display: false, variant: 'info', message: '', vertical: '', horizontal: '' });\r\n //const [loading, setLoading] = useState(false);\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\nexport default materialStyle(App);","// This optional code is used to register a service worker.\r\n// register() is not called by default.\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 subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\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\nexport function register(config) {\r\n console.log(\"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.href); \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/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n console.log(publicUrl);\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\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 // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\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\nfunction checkValidServiceWorker(swUrl, config) {\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 const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.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, config);\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\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 './assets/Style/bootstrap4-rtl.css';\r\nimport 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport './assets/fonts/opensanshebrew.css'\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n import { BrowserRouter } from 'react-router-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\n\r\nconst app = (\r\n
\r\n \r\n \r\n);\r\nReactDOM.render(app, document.getElementById('ModLoginApp'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAiCAYAAABfqvm9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHxSURBVHgBvVbbccIwEDx78h93gDoI6cCpAHdAOoAO7FQAqSCkg6QCnApCBzgVYCpwds1pMI4l2zCTnbmRdNKt3iuJnDGDbYMgqIYa2h8YA3uwJIGmKRpkSPOqqj6QHmUYJoh7RmoQt0T6Sudce0sHEERqbayUox4pp7mVfqSNqf7pHP6DEgcYbVWgUPjY0C5Guw2yJfJL5PNWkyn8xZ02Lmg+QhCUzXIYhkWr3giXQ6cwl34sfFMG3lC3H0NoETn8NWEo41H6Kq8hlH8lvOup53pxfadazmHvvgDfCA3sGwu9hk3VNvSJe2O8hLxB9fmCParF8BnxXFMXIUdDogz5n4b/C761CkI0hnCiad5RlyvZvYwgtKMyHXXWdxxDuJOTWKzlPFpLllmR6Ap0HhsEJVirXFVlpwT0lbq2MmaERIJA3nWjR4Y7HNHHOmeUQxy2DVVp7qaRkwh0KY5Tbaycx+JGqm0WfYSmo6ELK5X9qEnYXkNOoxB9vXrwoulF5xeE6CHRIzEEpT65cdNpjw13jYrC4RsZ9qQS9QkAcarxEuialdKjxAMQ1RxXvCkuXP2meGEJI7kd5Cj4WbLfkCe5DXtRuZuN+Cy5YG/OhMfmk+rB7xwlHmWeraE7zmkm+u/J5FLd62/dqA8nr57+3GJL8gsjStOuHu471QAAAABJRU5ErkJggg==\""],"sourceRoot":""}