{"version":3,"sources":["components/Config.custom.js","_services/sessionTools.js","_services/authenticationService.js","components/NavMenu.js","components/Layout.js","components/SignUp/FormModel/inputField.js","components/SignUp/FormModel/SelectField.js","components/SignUp/FormModel/SelectFieldAPI.js","_api/connector.js","components/SignUp/AddressForm.js","components/SignUp/AccountForm.js","components/SignUp/Review.js","components/SignUp/FormModel/checkoutFormModel.js","_services/userService.js","components/SignUp/FormModel/validationSchema.js","components/SignUp/FormModel/formInitialValues.js","_services/staticList.js","_services/creativeworksStore.js","components/ValidationMessage.js","components/SignUp/Checkout.js","components/SignUp/SignUp.js","components/Home.js","components/Components.js","components/CardContainer.js","components/Vocabulary.js","components/Pronunciation.js","components/CASSignUp.js","components/myAccount/formModel.js","components/myAccount/validationSchema.js","components/CashNetForm.js","components/SubscribeStudent.js","components/InlineQuiz.js","components/VerbParsing.js","components/About.js","components/ResetPassword.js","components/Grammar.js","components/Translation.js","components/CashNetTransfer.js","components/sign-in.js","components/SignInButton.js","components/PaymentResponse.js","components/MyAccount.js","App.js","registerServiceWorker.js","_constants/action-types.js","_reducers/index.js","_store/index.js","index.js"],"names":["config","api_url","api_cwo","domain","captcha_site","captcha_secret","options","sessionTools","getCookie","key","reload","cookie","Cookies","get","JSON","parse","window","setInterval","location","error","setCookie","value","option","set","stringify","removeCookie","remove","currentUserSubject","BehaviorSubject","authenticationService","login","username","password","setSubmitting","setOpenValidation","setAlertMessage","setLogginIn","bearer","fetch","method","headers","body","then","res","json","result","next","token","validation","console","log","catch","logout","isAuthenticate","user","TokenExpired","isSubscribed","currentSubscription","VerifyCaptcha","setCaptchaVerified","requestOptions","captchaResponse","secret","success","GetToken","currentUser","asObservable","localStorage","removeItem","_token","isExpired","decodedToken","jwt","decode","complete","dateNow","Date","payload","exp","getTime","NavMenu","props","toggleNavbar","bind","state","collapsed","subsExpired","analyticKeysUrl","vocabularyFrequencyUrl","advancedSubscription","setExpiration","subscribe","x","setState","biblicalSubscription","e","this","loading","slot","active-selector","className","to","class","href","Component","displayName","name","Layout","authenticated","Container","children","InputField","errorText","rest","useField","field","meta","TextField","type","touched","helperText","at","_renderHelperText","SelectField","label","data","myChange","selectedValue","isError","disable","FormControl","InputLabel","Select","map","item","index","MenuItem","FormHelperText","fullWidth","defaultProps","SelectFieldAPI","getData","passingvalue","prevProps","handleChange","resultArray","getItem","states","filter","entry","countryId","elm","resultArray2","countries","disabled","AuthenticatePublicRequest","process","Connector","serverValidationToken","verifyToken","resetToken","resetUser","tokenCookie","userCookie","AddressForm","React","useState","setStates","formField","firstName","lastName","address1","address2","city","zipcode","country","Fragment","Typography","variant","gutterBottom","Grid","container","spacing","xs","sm","AccountForm","email","passwordRepeat","StudentButton","casUser","tabindex","tabIndex","useStyles","makeStyles","theme","listItem","padding","total","fontWeight","title","marginTop","formControl","margin","minWidth","subslabel","width","info","marginBottom","Review","classes","items","setItems","subscription","useEffect","Authorization","Accept","Student","sitekey","onChange","formModel","formId","guid","requiredErrorMsg","requiredExistErrorMsg","requiredValidErrorMsg","requiredLengthErrorMsg","invalidStateMsg","invalidErrorMsg","UserService","usernameValidation","Promise","resolve","reject","length","exist","emailValidation","update","getUserInformation","loggedUser","updateAccount","values","finalizeSaving","parseInt","isSubscriptionExpired","expired","ResetPassword","checkoutFormModel","validationArray","Yup","shape","required","test","uid","val","matches","nullable","oneOf","ctx","passedTest","parent","forEach","element","defaultValues","staticList","getCountry","getStates","getVocabulary_VocabularyStudyList","getVocabulary_VocabularySets","getBiblical_UnitSets","getBiblical_AlphabetSets","a","setItem","creativeworksStore","saveOrder","setGoToCashNet","setshowWarningWrong","setisSubmitting","react_app_client_id","react_app_key","byuUser","getGLCode","setGLCode","toString","gl","getCustomerName","setCustomerName","createAccount","getCashNetConfiguration","setSettings","setgotoCashNet","resubscribe","Alert","elevation","ValidationMessage","handleClose","event","reason","Snackbar","open","autoHideDuration","onClose","severity","message","backdrop","zIndex","drawer","color","layout","marginLeft","marginRight","breakpoints","up","paper","stepper","buttons","display","justifyContent","button","steps","_renderStepContent","step","Checkout","activeStep","setActiveStep","currentValidationSchema","validationSchema","isLastStep","isSubmitting","goToCashNet","captchaVerified","showWarningWrong","showWarningCaptcha","setshowWarningCaptcha","setformField","cashnetConfiguration","setCashNetConfiguration","AccountGLCode","customerName","handleBack","CashNetForm","formRef","useRef","current","submit","itemDescription","itemPrice","subs","byucas","CssBaseline","ref","id","action","actionURLTraining","zip","cashNetItemCode","signouturl","incompletesignouturl","Stepper","Step","StepLabel","Backdrop","CircularProgress","initialValues","formInitialValues","onSubmit","actions","setTouched","Button","onClick","wrapper","DialogTitle","withStyles","root","closeButton","position","right","top","palette","grey","other","disableTypography","IconButton","aria-label","DialogContent","MuiDialogContent","SignUp","homepage","setOpen","handleClickOpen","Dialog","aria-labelledby","maxWidth","disableBackdropClick","disableEscapeKeyDown","dividers","Link","style","cursor","Home","goAbout","role","flexGrow","textAlign","text","secondary","course","minHeight","SkeletonBox","wrap","Box","my","Skeleton","height","pt","SkeletonCourse","direction","justify","alignItems","Paper","Avatar","Course","link","CoursesGrid","Components","CardFront","front","showExplanationIconClick","shuffleListClick","verbShuffle","termtext","onVerbShuffle","SetCurrentCard","translationBox","translationValue","getElementsByClassName","styletermtext","fontSize","flipCard","explanationIcon","displayExplanationIcon","Tooltip","explanationIconSubText","size","explanationIconText","ShuffleButton","verbParsingShuffle","displayShuffleButton","termexplanation","showExplanation","reference","dir","currentCard","maxItems","RadioButtonsGroup","setValue","component","RadioGroup","target","onChildClick","FormControlLabel","control","Radio","AudioPlayer","createRef","AudioReload","play","styleIcon","extensionFile","canPlayType","nextProps","src","load","pause","controls","onEnded","Card","audioRef","handlerGenderChange","handleClick_back","handleClick_foward","getAudioSrc","ShuffleList","genderAudio","audiosrc_ogg","definition","maxIndex","styleContainter","currentWordId","displayExplanationText","a1","a2","textPropertyName","wordsList","defaultText","defaultDefinition","definitionPropertyName","wordIdPropertyName","pathaudioFile","groupName","slice","substring","optionValue","nextIndex","onSetCurrentCard","temp","array","i","j","Math","floor","random","leftArrow","rightArrow","audioPlayerrow","audioPlayer","multiline","rowsMax","handleMyTranslationChange","rows","el","cardTerm","termdefinition","displayDefinitionButton","isLoading","Vocabulary","vocabularySetId","getVocabularyWordsList","cardChild","awsPathAudio","vocabularysetList","vocabularywordsList","ready","setListReady","audioUrl","getVocabularySetList","showError","_firstList","setId","resultpart","d","vocabularySetsId","htmlFor","selectEmpty","selectStudyList","selectStudyListLabel","fontVariant","SelectList","studylist","setList","wordList","setWordsList","biblicalList","setBiblicalList","handleWordsList","handleBiblicalList","WordsList","labelId","BiblicalUnitList","biblicalLiteraryUnits","handleChangeStudyList","Pronunciation","alphabetList","cardwordsList","wordPropertyId","getAlphabet","getBiblicalLiteraryUnits","getBiblicalLiteraryUnitsVerses","CASSignUp","successfulCAS","CasClient","auth","successRes","errorRes","AppBar","Toolbar","noWrap","expirationdate","subscriptiontype","myAccountFormModel","msg","exclusive","params","path","equalTo","formValues","cashNetConfiguration","GLCode","setitemDescription","setitemPrice","gotoCashNet","setgoto","setLoading","setOpenCashNet","appBar","divider","SubscriptionDialog","openCashNet","useFormikContext","cashNetConfig","setCashNetConfig","getSubscriptionData","DialogContentText","DialogActions","getFormInitialValues","SubscribeOption","setMessage","setSeverety","MyAccountForm","saving","setSaving","alertMessage","severety","subscriptionExpired","setsubscriptionExpired","handleNext","showMessage","handleChangeCountry","handleChangeState","InputProps","readOnly","Divider","clearonblur","SubscribeStudent","authenticate","userName","postalCode","stateName","paddingRight","labelCorrectAnswer","labelWrongAnswer","labelHelper","bottom","CheckAnswer","capitalizeFirstLetter","string","charAt","toUpperCase","toLocaleLowerCase","selectedOption","ItemQuiz","cardNum","noresults","setDisplay","error1","setError1","error2","setError2","error3","setError3","error4","setError4","error5","setError5","valueGroup1","setValueGroup1","valueGroup2","setValueGroup2","valueGroup3","setValueGroup3","valueGroup4","setValueGroup4","valueGroup5","setValueGroup5","preventDefault","dvForm","tenseForm","personForm","numberForm","genderForm","reset","FormLabel","Quiz","flexDirection","FormDialog","onDialogClick","dvforms","setDvforms","tense","setTense","slideValue","setSliderValue","qal","niphal","piel","pual","hiphil","hophal","hithpael","perfect","imperfect","imperative","participle","infinitive","handleChangeVerb","checked","toRemove","indexOf","splice","handleChangeTense","FormGroup","row","Checkbox","Slider","defaultValue","valueLabelDisplay","marks","min","max","newValue","RadioTypeVerb","radioChangeType","typeVerb","setSelectedValue","VerbParsing","maxSize","getVerbLists","dialogActionClick","typeVerbchange","pverbForm","ptense","pmaxList","hebrewVerb","explanationText","maxList","verbForm","join","onShuffleList","About","scrollTo","columnStyle","columns","yup","avatar","backgroundColor","main","form","ResetPasswordForm","openValidation","formik","useFormik","handleSubmit","autoFocus","Boolean","errors","typeList","setTypeList","levelList","setLevelList","handleChangeTypeList","grammarTypeSetList","handleChangeLevelList","grammarLevelSetList","Grammar","grammarSetId","grammarLevelSetId","selectedLeveId","selectedTypeId","myTranslation","translationError","getGrammarTypeSets","getGrammarLevelSets","getGrammarPhrases","typeId","levelId","shuffle","_typeid","_leveid","hebrewPhrase","translation","level","RadioVersion","version","setVersion","handleChangeVersion","Translation","kjv","CashNetTransfer","fname","lname","SignInForm","logginSuccessfull","setSucess","checkUserState","SignInButton","borderColor","image","img","maxHeight","CenterMessage","bodyMessage","subtext","transactionNumber","PaymentResponse","match","MyAccount","App","handleLogoutClick","forceUpdate","exact","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ADD_ARTICLE","initialState","articles","rootReducer","Object","assign","concat","store","createStore","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","CookiesProvider","URL","origin","addEventListener","response","status","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.e1d852df.chunk.js","sourcesContent":["// Constants.js\r\nconst prod = {\r\n api_url: 'https://creativeworks.byu.edu/apiBiblicalHebrew/',\r\n api_cwo: 'https://creativeworks.byu.edu/api.CreativeWorks/',\r\n domain: 'https://creativeworks.byu.edu/BiblicalHebrew/',\r\n captcha_site: '6LfQ374ZAAAAAIABKCNqeng8MHjbcrQTfwbBJXBZ',\r\n captcha_secret: '6LfQ374ZAAAAALGsVUfu7wumeM3FFwgC8ZehmS3w'\r\n};\r\n//api_cwo: 'http://54.71.38.62/apiCreativeWorks/',\r\n//api_cwo: 'http://train.creativeworks.byu.edu/apiCreativeWorks/',\r\n\r\n//const dev = {\r\n// api_url: 'http://localhost/apiBiblicalHebrew/' ,\r\n// api_cwo: 'http://localhost/apiCreativeWorks/' \r\n//};\r\nexport const config = process.env.NODE_ENV === 'development' ? prod : prod;","import Cookies from 'js-cookie'\r\n\r\n//const cookies = new Cookies();\r\nconst options = {\r\n 'expires': 0.0417,\r\n //'path': '/',\r\n //'domain': config.domain\r\n}\r\n\r\n\r\nexport const sessionTools = {\r\n getCookie,\r\n setCookie,\r\n removeCookie\r\n};\r\n\r\nfunction getCookie(key, reload = false) {\r\n try {\r\n let cookie = Cookies.get(key);\r\n if (!cookie) {\r\n if (reload) {\r\n window.setInterval(window.location.reload(false), 200000);\r\n return cookie;\r\n }\r\n else {\r\n return cookie;\r\n }\r\n }\r\n //console.log('getCookie - ', key, ': ', cookie);\r\n return JSON.parse(cookie);\r\n }\r\n catch (error) {\r\n //console.log(key);\r\n //console.log(error);\r\n window.setInterval(window.location.reload(false), 200000);\r\n return error;\r\n }\r\n}\r\n\r\nfunction setCookie(key, value, option = options) {\r\n try {\r\n Cookies.set(key, JSON.stringify(value), option);\r\n //console.log('setCookie - ', key, ': ', JSON.stringify(value));\r\n //getCookie(key);\r\n return ('Success')\r\n }\r\n catch (error) {\r\n //console.log(error);\r\n return error;\r\n }\r\n}\r\n\r\nfunction removeCookie(key, option = options) {\r\n try {\r\n Cookies.remove(key, option);\r\n //console.log('removedCookie - ', key);\r\n return ('Success');\r\n }\r\n catch (error) {\r\n //console.log(error);\r\n return error;\r\n }\r\n}","import { BehaviorSubject } from 'rxjs';\r\nimport { config } from '../components/Config.custom';\r\nimport jwt from 'jsonwebtoken'\r\nimport { sessionTools } from '../_services/sessionTools';\r\n\r\n//import { handleResponse } from '@/_helpers';\r\nconst currentUserSubject = new BehaviorSubject(sessionTools.getCookie('btu_'));\r\nexport const authenticationService = {\r\n login,\r\n logout,\r\n isAuthenticate,\r\n isSubscribed,\r\n VerifyCaptcha,\r\n GetToken,\r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue() { return currentUserSubject.value }\r\n};\r\n\r\nfunction login(username, password, setSubmitting, setOpenValidation, setAlertMessage,setLogginIn) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(config.api_cwo + `User/SignIn/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ username: username, password: password })\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n //console.log(result)\r\n if (result.result === \"0\") {\r\n sessionTools.setCookie('btu_', result)\r\n sessionTools.setCookie('btl_', true);\r\n currentUserSubject.next(JSON.stringify(result));\r\n sessionTools.setCookie('bt_', result.token);\r\n setSubmitting(true);\r\n setLogginIn(true);\r\n } else {\r\n sessionTools.setCookie('btl_', false);\r\n sessionTools.removeCookie('btu_');\r\n sessionTools.removeCookie('bt_');\r\n currentUserSubject.next(null);\r\n if (result.validation) {\r\n setOpenValidation(true);\r\n setAlertMessage(result.validation);\r\n }\r\n setLogginIn(false);\r\n }\r\n setSubmitting(false);\r\n },\r\n (error) => {\r\n console.log(error)\r\n return [];\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n};\r\n\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n sessionTools.removeCookie('btu_');\r\n sessionTools.removeCookie('biblicalLearningGuid');\r\n sessionTools.removeCookie('chekoutForm');\r\n sessionTools.removeCookie('btl_');\r\n sessionTools.removeCookie('bt_');\r\n localStorage.removeItem('states');\r\n localStorage.removeItem('countries');\r\n localStorage.removeItem('bhlt');\r\n localStorage.removeItem('hebrew_VocabularySets');\r\n localStorage.removeItem('hebrew_VocabularyStudyList');\r\n localStorage.removeItem('hebrew_AlphabetSets');\r\n localStorage.removeItem('hebrew_BiblicalUnitSets');\r\n localStorage.removeItem('hebrew_VocabularyStudyList');\r\n localStorage.removeItem('checkoutForm');\r\n currentUserSubject.next(null);\r\n}\r\n\r\n\r\nfunction isAuthenticate() { \r\n const _logginIn = sessionTools.getCookie('btl_');\r\n if (_logginIn) {\r\n //validate information\r\n //console.log(_logginIn);\r\n const user = sessionTools.getCookie('btu_');\r\n if (user) {\r\n if (TokenExpired(user.token)) {\r\n logout();\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n}\r\n\r\nfunction isSubscribed() {\r\n const _logginIn = sessionTools.getCookie('btl_');\r\n if (_logginIn) {\r\n //validate information\r\n //console.log(_logginIn);\r\n const user = sessionTools.getCookie('btu_');\r\n if (user) {\r\n if (TokenExpired(user.token)) {\r\n logout();\r\n return \"login\";\r\n }\r\n else if (user.currentSubscription === 0) {\r\n return \"nosubscription\";\r\n }\r\n else {\r\n return \"good\";\r\n }\r\n }\r\n }\r\n else {\r\n //console.log(\"nologin\")\r\n return \"login\";\r\n }\r\n\r\n}\r\n\r\n\r\nfunction TokenExpired(_token) {\r\n if (_token) {\r\n var isExpired = false;\r\n var decodedToken = jwt.decode(_token, { complete: true });\r\n if (decodedToken) {\r\n var dateNow = new Date();\r\n if (decodedToken.payload.exp * 1000 < dateNow.getTime()) {\r\n isExpired = true;\r\n }\r\n }\r\n else//invalid\r\n isExpired = true;\r\n return isExpired;\r\n }\r\n else\r\n return true;\r\n}\r\n\r\n\r\nfunction VerifyCaptcha(value, setCaptchaVerified) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ captchaResponse: value, secret: config.captcha_secret })\r\n };\r\n fetch(config.api_cwo + `Authorization/Captcha/`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n if (result.success) {\r\n setCaptchaVerified(true);\r\n console.log('Captcha Passed');\r\n } else {\r\n setCaptchaVerified(false);\r\n console.log('Captcha Failed');\r\n console.log(result)\r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n setCaptchaVerified(false);\r\n console.log('Captcha Errror');\r\n }\r\n )\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n console.log('Captcha Verification Failed: ', error)\r\n setCaptchaVerified(false);\r\n });\r\n}\r\n\r\nfunction GetToken() {\r\n const token = sessionTools.getCookie('bt_');\r\n return token\r\n}","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\nimport { authenticationService } from '../_services/authenticationService'\r\nimport { connectAdvanced } from 'react-redux';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true,\r\n currentUser: null,\r\n currentSubscription: null,\r\n subsExpired: false,\r\n analyticKeysUrl: '',\r\n vocabularyFrequencyUrl: '',\r\n advancedSubscription: false\r\n };\r\n this.setExpiration = this.setExpiration.bind(this);\r\n }\r\n componentDidMount() {\r\n //UserService.isSubscriptionExpired(this.setExpiration);\r\n authenticationService.currentUser.subscribe(x => {\r\n if (x != null) {\r\n try {\r\n this.setState({ currentUser: x, currentSubscription: JSON.parse(x).biblicalSubscription });\r\n }\r\n catch (e) {\r\n this.setState({ currentUser: x, currentSubscription: x.biblicalSubscription });\r\n }\r\n if (x.username == 'devtam') {\r\n this.setState({\r\n advancedSubscription: true\r\n })\r\n }\r\n }\r\n });\r\n var token = authenticationService.GetToken();\r\n this.setState({\r\n analyticKeysUrl: \"https://hebrew.byu.edu/bible?userId=\" + token,\r\n vocabularyFrequencyUrl: \"https://hebrew.byu.edu/frequency?userId=\" + token\r\n })\r\n \r\n }\r\n setExpiration(value) {\r\n this.setState({ subsExpired: value, loading: false });\r\n }\r\n\r\n toggleNavbar() {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n \r\n render() {\r\n const { currentUser } = this.state;\r\n const { currentSubscription } = this.state;\r\n const { analyticKeysUrl } = this.state;\r\n const { vocabularyFrequencyUrl } = this.state;\r\n const { advancedSubscription } = this.state;\r\n //console.log('NavMenu58')\r\n //console.log(currentUser)\r\n //console.log(currentSubscription)\r\n\r\n return (\r\n \r\n Home \r\n About\r\n {currentSubscription &&\r\n Components\r\n }\r\n {advancedSubscription &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {/*

Hebrew Bible with Analytic Keys

\r\n {currentSubscription &&\r\n Vocabulary by Frequency\r\n }*/}\r\n {currentUser &&\r\n My Account\r\n } \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\nimport { authenticationService } from '../_services/authenticationService';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n authenticated: authenticationService.isSubscribed(),\r\n subsExpired: false,\r\n loading: true\r\n };\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { at } from 'lodash';\r\nimport { useField } from 'formik';\r\nimport { TextField } from '@material-ui/core';\r\n\r\nexport default function InputField(props) {\r\n const { errorText, ...rest } = props;\r\n const [field, meta] = useField(props);\r\n\r\n function _renderHelperText() {\r\n const [touched, error] = at(meta, 'touched', 'error');\r\n if (touched && error) {\r\n return error;\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { at } from 'lodash';\r\nimport { useField } from 'formik';\r\nimport InputField from \"../FormModel/inputField\";\r\nimport {\r\n InputLabel,\r\n FormControl,\r\n Select,\r\n MenuItem,\r\n FormHelperText\r\n} from '@material-ui/core';\r\n\r\nfunction SelectField(props) {\r\n const { label, data, name, myChange, ...rest } = props;\r\n const [field, meta] = useField(props);\r\n const { value: selectedValue } = field;\r\n const [touched, error] = at(meta, 'touched', 'error');\r\n const isError = touched && error && true;\r\n\r\n function _renderHelperText() {\r\n if (isError) {\r\n return {error};\r\n }\r\n }\r\n \r\n function _receiveChanges() {\r\n props.myChange(selectedValue);\r\n }\r\n if (props.disable) {\r\n return (\r\n\r\n \r\n {label}\r\n \r\n {_receiveChanges()}\r\n {_renderHelperText()}\r\n \r\n );\r\n }\r\n else {\r\n return (< InputField name = { name } label = { label } fullWidth />)}\r\n}\r\n\r\nSelectField.defaultProps = {\r\n data: []\r\n};\r\n\r\nSelectField.propTypes = {\r\n data: PropTypes.array.isRequired\r\n};\r\nexport default SelectField;\r\n","import React, { Component } from 'react';\r\nimport SelectField from '../FormModel/SelectField'\r\n\r\nexport default class SelectFieldAPI extends Component {\r\n static displayName = SelectFieldAPI.name;\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n data: [],\r\n selectedValue:''\r\n };\r\n this.getData = this.getData.bind(this);\r\n this.passingvalue = this.passingvalue.bind(this); \r\n }\r\n\r\n componentDidMount() { \r\n if (this.props.name === 'country') {\r\n this.getData('country');\r\n }\r\n if (this.props.name === 'state') {\r\n this.getData('state');\r\n }\r\n }\r\n componentDidUpdate(prevProps) {\r\n // Typical usage (don't forget to compare props):\r\n \r\n }\r\n\r\n passingvalue(value) { \r\n this.setState({selectedValue: value});\r\n if(this.props.handleChange)\r\n this.props.handleChange(value);\r\n }\r\n\r\n\r\n getData(method) {\r\n \r\n if (method === 'state') { \r\n var data = JSON.parse(localStorage.getItem('states')).states\r\n .filter(function (entry) {\r\n return entry.countryId === 1;\r\n });\r\n var resultArray = data.map(function (elm) {\r\n return { value: elm['name'], label: elm['name'] };\r\n });\r\n\r\n this.setState({ data: resultArray }); \r\n \r\n }\r\n else if (method === 'country') { \r\n var data2 = JSON.parse(localStorage.getItem('countries'));\r\n var resultArray2 = data2.countries.map(function (elm) {\r\n return { value: elm['countryId'], label: elm['name'] };\r\n });\r\n this.setState({ data: resultArray2 }); \r\n }\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}","import { config } from '../components/Config.custom'\r\nimport jwt from 'jsonwebtoken'\r\nimport { sessionTools } from '../_services/sessionTools'\r\n\r\n\r\nconst AuthenticatePublicRequest = {\r\n Username: process.env.REACT_APP_CLIENT_ID,\r\n Password: process.env.REACT_APP_KEY/*,\r\nToken:''*/\r\n};\r\n\r\n\r\nexport const Connector = {\r\n serverValidationToken,\r\n verifyToken,\r\n resetToken\r\n};\r\n\r\n\r\nfunction serverValidationToken() {\r\n // Subscribe to changes \r\n try {\r\n //var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n //'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify({ username: AuthenticatePublicRequest.Username, password: AuthenticatePublicRequest.Password })\r\n };\r\n fetch(config.api_cwo + 'Authorization', requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n sessionTools.setCookie('bt_', result.token);\r\n //return result.token;\r\n //if (response.status === 401) {\r\n // authenticationService.logout();\r\n // return (\"Unauthorized\")\r\n //}\r\n //else if (response.status !== 200) {\r\n // //throw new Error(response.status) \r\n // return (response.status)\r\n //} else {\r\n // if (response) {\r\n // if (JSON.parse(response).tokenStatus === 'Valid') {\r\n // return (\"Valid\")\r\n // } else {\r\n // return (\"NoValid\")\r\n // }\r\n // }\r\n //}\r\n })\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n console.log(error);\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n}\r\n\r\n\r\nfunction verifyToken() {\r\n const _token = sessionTools.getCookie('bt_');\r\n if (_token) {\r\n console.log('verifytoken')\r\n var isExpired = false;\r\n var decodedToken = jwt.decode(_token, { complete: true });\r\n var dateNow = new Date();\r\n if (decodedToken.payload.exp * 1000 < dateNow.getTime()) {\r\n isExpired = true;\r\n }\r\n return isExpired;\r\n }\r\n else\r\n return true;\r\n}\r\n\r\nfunction resetToken(resetUser = true) {\r\n var tokenCookie = sessionTools.getCookie('bt_');\r\n if (typeof tokenCookie === 'undefined' || tokenCookie === null || JSON.stringify(tokenCookie) === '{}') {\r\n tokenCookie = serverValidationToken();\r\n }else {\r\n sessionTools.setCookie('bt_', tokenCookie);\r\n }\r\n if (resetUser) {\r\n var userCookie = sessionTools.getCookie('btu_');\r\n if (typeof userCookie !== 'undefined' && userCookie !== null && JSON.stringify(userCookie) !== '{}') {\r\n sessionTools.setCookie('btu_', userCookie);\r\n }\r\n else {\r\n sessionTools.removeCookie('btu_');\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputField from \"../SignUp/FormModel/inputField\";\r\nimport SelectFieldAPI from \"../SignUp/FormModel/SelectFieldAPI\";\r\nimport { Connector } from \"../../_api/connector.js\"\r\nimport { keys } from \"@material-ui/core/styles/createBreakpoints\";\r\n\r\nexport default function AddressForm(props) {\r\n const [states, setStates] = React.useState(false);\r\n const {\r\n formField: {\r\n firstName,\r\n lastName,\r\n address1,\r\n address2,\r\n city,\r\n state,\r\n zipcode,\r\n country,\r\n },\r\n } = props;\r\n const handleChangeCountry = (value) => {\r\n if (value === 1) {\r\n setStates(true);\r\n }\r\n else setStates(false);\r\n };\r\n const handleChangeState = (value) => {\r\n //document.getElementsByName('state')[0].value = '';\r\n //console.log(document.getElementsByName(\"state\"));\r\n };\r\n Connector.resetToken();\r\n return (\r\n \r\n \r\n Billing Information\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}\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport InputField from \"../SignUp/FormModel/inputField\";\r\nimport { Connector } from \"../../_api/connector.js\"\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport default function AccountForm(props) {\r\n const {\r\n formField: { email, username, password, passwordRepeat },\r\n } = props;\r\n Connector.resetToken();\r\n var StudentButton = '';\r\n if (!props.casUser) {\r\n StudentButton = ;\r\n }\r\n\r\n return (\r\n \r\n \r\n Account Information\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 {StudentButton}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { config } from \"../Config.custom\";\r\nimport SelectField from \"../SignUp/FormModel/SelectField\";\r\nimport { sessionTools } from \"../../_services/sessionTools\";\r\nimport { autenticationService, authenticationService } from \"../../_services/authenticationService\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n listItem: {\r\n padding: theme.spacing(1, 0),\r\n },\r\n total: {\r\n fontWeight: 700,\r\n },\r\n title: {\r\n marginTop: theme.spacing(2),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n subslabel: {\r\n width: 300,\r\n },\r\n info: {\r\n marginTop: 30,\r\n marginBottom: 20,\r\n },\r\n}));\r\n\r\nexport default function Review(props) {\r\n const classes = useStyles();\r\n const [items, setItems] = React.useState([]);\r\n const {\r\n formField: { subscription },\r\n setCaptchaVerified\r\n } = props;\r\n\r\n useEffect(() => {\r\n var bearer = \"Bearer \" + sessionTools.getCookie(\"bt_\");\r\n fetch(config.api_cwo + \"Subscription?itemName=BiblicalSubscription\", {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: bearer,\r\n Accept: \"application/json\",\r\n },\r\n })\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n if (result.items) {\r\n var items = JSON.parse(result.items);\r\n var resultArray;\r\n sessionTools.setCookie(\"Subscription\", result.items);\r\n if (props.casUser === true) {\r\n resultArray = items.filter(function (user) {\r\n return user.Student === 1;\r\n }).map(function (elm) {\r\n return {\r\n value: elm[\"Months\"],\r\n label: elm[\"Name\"] + \" - $\" + elm[\"Price\"],\r\n };\r\n })\r\n }\r\n else {\r\n resultArray = items.filter(function (user) {\r\n return user.Student === 0;\r\n }).map(function (elm) {\r\n return {\r\n value: elm[\"Months\"],\r\n label: elm[\"Name\"] + \" - $\" + elm[\"Price\"],\r\n };\r\n });\r\n }\r\n setItems(resultArray);\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n return [];\r\n }\r\n )\r\n .catch((error) => {\r\n console.log(error);\r\n return [];\r\n });\r\n }, []);\r\n\r\n\r\n function onChange(value) {\r\n //console.log('howdy', value)\r\n //console.log(props)\r\n //setCaptchaVerified(true);\r\n\r\n authenticationService.VerifyCaptcha(value, setCaptchaVerified)\r\n }\r\n function myChange(value) {\r\n \r\n }\r\n\r\n return (\r\n \r\n \r\n Choose Subscription\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {/* \r\n \r\n \r\n {/*

For information about purchasing a subscription, please contact catalog@byu.edu or go to our\r\n Contact page

\r\n
\r\n
*/}\r\n
\r\n );\r\n}\r\n","var formModel = {\r\n formId: 'checkoutForm',\r\n formField: {\r\n guid: {\r\n name: 'guid' ,\r\n label: 'Guid' \r\n },\r\n email: {\r\n name: 'email',\r\n label: 'Email',\r\n requiredErrorMsg: 'Email is required',\r\n requiredExistErrorMsg: 'This email address is already being used.',\r\n requiredValidErrorMsg: 'Valid email is required'\r\n },\r\n username: {\r\n name: 'username',\r\n label: 'Username',\r\n requiredErrorMsg: 'Username is required',\r\n requiredExistErrorMsg: 'This Username is already being used.',\r\n requiredLengthErrorMsg: 'Username must be at least 6 characters'\r\n },\r\n password: {\r\n name: 'password',\r\n label: 'Password',\r\n requiredErrorMsg: 'Password is required',\r\n requiredLengthErrorMsg: 'Password must be at least 6 characters'\r\n },\r\n passwordRepeat: {\r\n name: 'passwordRepeat',\r\n label: 'Password Repeat',\r\n requiredErrorMsg: 'Password repeat is required',\r\n },\r\n firstName: {\r\n name: 'firstName',\r\n label: 'First name',\r\n requiredErrorMsg: 'First name is required'\r\n },\r\n lastName: {\r\n name: 'lastName',\r\n label: 'Last name',\r\n requiredErrorMsg: 'Last name is required'\r\n },\r\n address1: {\r\n name: 'address1',\r\n label: 'Address Line 1',\r\n requiredErrorMsg: 'Address Line 1 is required'\r\n },\r\n address2: {\r\n name: 'address2',\r\n label: 'Address Line 2'\r\n },\r\n city: {\r\n name: 'city',\r\n label: 'City',\r\n requiredErrorMsg: 'City is required'\r\n },\r\n state: {\r\n name: 'state',\r\n label: 'State/Province/Region',\r\n requiredErrorMsg: 'State/Province/Region is required',\r\n invalidStateMsg: 'Addresses in the United States must select a valid state'\r\n },\r\n zipcode: {\r\n name: 'zipcode',\r\n label: 'Zipcode',\r\n requiredErrorMsg: 'Zipcode is required',\r\n invalidErrorMsg: 'Zipcode is not valid (e.g. 70000)'\r\n },\r\n country: {\r\n name: 'country',\r\n label: 'Country',\r\n requiredErrorMsg: 'Country is required', \r\n },\r\n subscription: {\r\n name: 'subscription',\r\n label: 'Subscription plans',\r\n requiredErrorMsg: 'Subscription plan is required'\r\n }\r\n }\r\n};\r\n\r\nexport default formModel;\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { config } from '../components/Config.custom'\r\nimport { sessionTools } from './sessionTools';\r\n//import { handleResponse } from '@/_helpers';\r\nconst currentUserSubject = new BehaviorSubject(sessionTools.getCookie('btu_'));\r\n\r\nexport const UserService = {\r\n usernameValidation,\r\n emailValidation,\r\n getUserInformation,\r\n updateAccount,\r\n isSubscriptionExpired,\r\n ResetPassword,\r\n \r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue() { return currentUserSubject.value }\r\n};\r\n\r\nfunction getUserInformation() {\r\n return new Promise(function (resolve, reject) {\r\n if (!currentUserSubject) return reject(null);\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/${loggedUser.guid}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n const { currentUser } = res;\r\n return resolve(currentUser)\r\n })\r\n });\r\n}\r\nfunction isSubscriptionExpired(setExpiration) {\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n if (!loggedUser) return setExpiration(true);\r\n \r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/GetSubscription?id=${loggedUser.guid}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n const { expired } = res;\r\n if (expired === true) {\r\n setExpiration(true)\r\n } else {\r\n setExpiration(false)\r\n }\r\n });\r\n}\r\nfunction usernameValidation(username) {\r\n return new Promise(function (resolve, reject) {\r\n /*stuff using username, password*/\r\n if (!username) return resolve(true);\r\n if (username.length >= 6) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_', true);\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/UsernameValidation?username=${username}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n const { exist } = res;\r\n resolve(!exist)\r\n })\r\n }\r\n });\r\n}\r\nfunction emailValidation(email, update) {\r\n return new Promise(function (resolve, reject) {\r\n /*stuff using username, password*/\r\n if (!email) return resolve(true);\r\n if (email.length >= 6) {\r\n //var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n var guid = '';\r\n if (update) {\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n guid = loggedUser.guid;\r\n }\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_', true);\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/EmailValidation?email=${email}&guid=${guid}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n const { exist } = res;\r\n resolve(!exist)\r\n })\r\n }\r\n });\r\n}\r\n\r\nfunction updateAccount(values, finalizeSaving) {\r\n if (!currentUserSubject) return (null);\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n values.country = parseInt(values.country);\r\n values.guid = loggedUser.guid;\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(values)\r\n };\r\n fetch(config.api_cwo + 'User/UpdateUser', requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n if (result.result !== \"0\") {\r\n finalizeSaving(false);\r\n } else {\r\n sessionTools.setCookie('btu_', result);\r\n sessionTools.setCookie('bt_', result.token);\r\n currentUserSubject.next(JSON.stringify(result));\r\n finalizeSaving(true);\r\n }\r\n return (result)\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n finalizeSaving(false);\r\n return (error);\r\n }\r\n )\r\n}\r\n\r\nfunction ResetPassword(email, setSubmitting, setOpenValidation, setAlertMessage) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(config.api_cwo + `User/ResetPassword?inputResetPasswordEmail=${email}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json'\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n //console.log(result);\r\n if (result.result === \"0\") {\r\n setSubmitting(true);\r\n setOpenValidation(true);\r\n setAlertMessage('Your password has been reset. Please check your email.');\r\n \r\n } else {\r\n if (result.validation) {\r\n setOpenValidation(true);\r\n setAlertMessage(result.validation);\r\n }\r\n }\r\n setSubmitting(false);\r\n },\r\n (error) => {\r\n console.log(error)\r\n return [];\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n}","import * as Yup from 'yup';\r\n//import moment from 'moment';\r\nimport checkoutFormModel from './checkoutFormModel';\r\nimport { UserService } from '../../../_services/userService'\r\n\r\nconst {\r\n formField: {\r\n email,\r\n username,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n city,\r\n state,\r\n country,\r\n zipcode,\r\n subscription\r\n }\r\n} = checkoutFormModel;\r\n\r\nconst visaRegEx = /^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/;\r\n\r\nvar validationArray = [\r\n //step1\r\n Yup.object().shape({\r\n [username.name]: Yup.string()\r\n .required(`${username.requiredErrorMsg}`)\r\n .test(\"ValidateExist\", `${username.requiredExistErrorMsg}`, function (value) { // Use function\r\n return UserService.usernameValidation(value)\r\n .then(function (uid) {\r\n return (uid)\r\n })\r\n })\r\n .test(\r\n 'len',\r\n `${username.requiredLengthErrorMsg}`,\r\n val => val && val.length >= 6\r\n ),\r\n [email.name]: Yup.string()\r\n .required(`${email.requiredErrorMsg}`)\r\n .matches(visaRegEx, email.requiredValidErrorMsg)\r\n .test(\"ValidateExist\", `${email.requiredExistErrorMsg}`, function (value) { // Use function\r\n return UserService.emailValidation(value)\r\n .then(function (uid) {\r\n return (uid)\r\n })\r\n })\r\n .test(\r\n 'len',\r\n `${username.requiredLengthErrorMsg}`,\r\n val => val && val.length >= 6\r\n ),\r\n [password.name]: Yup.string()\r\n .required(`${password.requiredErrorMsg}`)\r\n .test(\r\n 'len',\r\n `${password.requiredLengthErrorMsg}`,\r\n val => val && val.length >= 6\r\n ),\r\n [passwordRepeat.name]: Yup.string()\r\n .nullable()\r\n .required(`${passwordRepeat.requiredErrorMsg}`)\r\n .oneOf([Yup.ref('password'), null], 'Passwords must match')\r\n }),\r\n //step2\r\n Yup.object().shape({\r\n [firstName.name]: Yup.string().required(`${username.requiredErrorMsg}`),\r\n [lastName.name]: Yup.string().required(`${lastName.requiredErrorMsg}`),\r\n [zipcode.name]: Yup.string()\r\n .required(`${zipcode.requiredErrorMsg}`)\r\n .test(\r\n 'len',\r\n `${zipcode.invalidErrorMsg}`,\r\n val => val && val.length >= 5\r\n ),\r\n [address1.name]: Yup.string().required(`${address1.requiredErrorMsg}`),\r\n [city.name]: Yup.string().required(`${city.requiredErrorMsg}`),\r\n [state.name]: Yup.string().required(`${state.requiredErrorMsg}`)\r\n .test(\r\n 'US State',\r\n `${state.invalidStateMsg}`,\r\n (val, ctx) => {\r\n var passedTest = false\r\n if (ctx.parent.country == 1) {\r\n JSON.parse(localStorage.getItem('states'))['states'].forEach(element => {\r\n if (val == element.name) {\r\n passedTest = true\r\n }\r\n })\r\n }\r\n else { passedTest = true }\r\n return passedTest\r\n }),\r\n [country.name]: Yup.string().required(`${country.requiredErrorMsg}`)\r\n }),\r\n // step3\r\n Yup.object().shape({ \r\n [subscription.name]: Yup.string().required(`${subscription.requiredErrorMsg}`)\r\n }),\r\n];\r\n\r\nexport default validationArray;","import checkoutFormModel from './checkoutFormModel';\r\nconst {\r\n formField: {\r\n username,\r\n email,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n city,\r\n zipcode,\r\n country, \r\n state, \r\n subscription,\r\n guid\r\n }\r\n} = checkoutFormModel;\r\n\r\nvar defaultValues = {\r\n [username.name]: '',\r\n [email.name]: '',\r\n [password.name]: '',\r\n [passwordRepeat.name]: '',\r\n [firstName.name]: '',\r\n [lastName.name]: '',\r\n [address1.name]: '',\r\n [city.name]: '',\r\n [zipcode.name]: '',\r\n [country.name]: '', \r\n [state.name]: '', \r\n [subscription.name]: '', \r\n [guid.name]: ''\r\n};\r\n\r\nexport default defaultValues;\r\n","import { config } from '../components/Config.custom';\r\nimport { sessionTools } from './sessionTools';\r\n\r\nexport const staticList = {\r\n getCountry,\r\n getStates,\r\n getVocabulary_VocabularyStudyList,\r\n getVocabulary_VocabularySets,\r\n getBiblical_UnitSets,\r\n getBiblical_AlphabetSets\r\n};\r\n\r\nasync function getCountry() {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8',\r\n \r\n },\r\n };\r\n fetch(config.api_cwo + `Country`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n localStorage.setItem('countries', JSON.stringify(result));\r\n }\r\n )\r\n .catch(function (error) {\r\n });\r\n}\r\n\r\nasync function getStates() {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8',\r\n 'Authorization': bearer\r\n }\r\n };\r\n fetch(config.api_cwo + `State`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n localStorage.setItem('states', JSON.stringify(result));\r\n }\r\n )\r\n .catch(function (error) {\r\n });\r\n}\r\n\r\nasync function getVocabulary_VocabularyStudyList() {\r\n try {\r\n fetch(config.api_url + 'VocabularySets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.setItem('hebrew_VocabularyStudyList', JSON.stringify(result)); \r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n}\r\n\r\nasync function getVocabulary_VocabularySets() {\r\n try {\r\n fetch(config.api_url + 'VocabularyWords')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.setItem('hebrew_VocabularySets', JSON.stringify(result)); \r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n}\r\n\r\nasync function getBiblical_AlphabetSets() {\r\n try {\r\n fetch(config.api_url + 'AlphabetSets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.setItem('hebrew_AlphabetSets', JSON.stringify(result)); \r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n}\r\n\r\nasync function getBiblical_UnitSets() {\r\n try {\r\n fetch(config.api_url + 'TranslationSets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.setItem('hebrew_BiblicalUnitSets', JSON.stringify(result)); \r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n}","import { BehaviorSubject } from 'rxjs';\r\nimport { config } from '../components/Config.custom'\r\nimport { sessionTools } from './sessionTools';\r\n//import { handleResponse } from '@/_helpers';\r\n\r\nconst currentUserSubject = new BehaviorSubject(sessionTools.getCookie('btu_'));\r\n\r\nconst AuthenticatePublicRequest = {\r\n Username: process.env.REACT_APP_CLIENT_ID,\r\n Password: process.env.REACT_APP_KEY/*,\r\nToken:''*/\r\n};\r\nexport const creativeworksStore = {\r\n saveOrder,\r\n getGLCode,\r\n getCustomerName,\r\n createAccount,\r\n getCashNetConfiguration,\r\n resubscribe,\r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue() { return currentUserSubject.value }\r\n};\r\n\r\nfunction saveOrder(values, casUser, setGoToCashNet, setshowWarningWrong, setisSubmitting) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n //console.log(values.state);\r\n values.react_app_client_id = AuthenticatePublicRequest.Username;\r\n values.react_app_key = AuthenticatePublicRequest.Password;\r\n if (casUser) {\r\n values.byuUser = 1;\r\n }\r\n else {\r\n values.byuUser = 0;\r\n }\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(values)\r\n };\r\n fetch(config.api_cwo + 'BiblicalLearningOrder', requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n values.guid = result.data.guid;\r\n setGoToCashNet(true);\r\n } else {\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false);\r\n setisSubmitting(false);\r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false);\r\n setisSubmitting(false);\r\n }\r\n )\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false);\r\n setisSubmitting(false);\r\n });\r\n}\r\n\r\nfunction getGLCode(country, state, casUser, setGLCode) {\r\n\r\n //var data = JSON.parse(localStorage.getItem('states'));\r\n //var resultArray = data.states.map(function (elm) {\r\n // if (elm['abbreviation'] === state) {\r\n // //console.log('abbrev');\r\n // return elm['name'];\r\n\r\n // }\r\n // else {\r\n // //console.log('state');\r\n // return state;\r\n // }\r\n //});\r\n //console.log('getGLCode')\r\n\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(\r\n config.api_cwo +\r\n \"GLCode?itemName=BiblicalSubscription&countryid=\" +\r\n country +\r\n \"&statename=\" +\r\n state +\r\n \"&casUser=\" +\r\n casUser.toString(),\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: bearer,\r\n Accept: \"application/json\",\r\n },\r\n }\r\n )\r\n\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n setGLCode(result.gl);\r\n } else {\r\n setGLCode(\"00000000000000000\");\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n setGLCode(\"\");\r\n }\r\n )\r\n .catch((error) => {\r\n console.log(error);\r\n setGLCode(\"\");\r\n });\r\n};\r\n\r\nfunction getCustomerName(firstName, lastName, setCustomerName) {\r\n var custName = firstName + ' ' + lastName;\r\n setCustomerName(custName);\r\n}\r\n\r\n\r\nfunction resubscribe(values, casUser, setGoToCashNet, setshowWarningWrong) { \r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n if (casUser) {\r\n values.byuUser = 1;\r\n }\r\n else {\r\n values.byuUser = 0;\r\n }\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(values)\r\n };\r\n fetch(config.api_cwo + 'BiblicalLearningOrder/ReSubscribe', requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n values.guid = result.data.guid;\r\n sessionTools.setCookie('chekoutForm', values)\r\n setGoToCashNet(true);\r\n } else {\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false); \r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false); \r\n }\r\n )\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n setshowWarningWrong(true);\r\n setGoToCashNet(false); \r\n console.log('Resubscribe Error');\r\n });\r\n}\r\n\r\nfunction createAccount(values) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(values)\r\n };\r\n fetch(config.api_cwo + 'User/SignUp', requestOptions)\r\n .then(res => (res.json()))\r\n .then(\r\n (result) => {\r\n sessionTools.setCookie('btu_', result);\r\n return result;\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error)\r\n console.log('Create Account Error');\r\n }\r\n )\r\n\r\n}\r\n\r\n\r\n\r\n\r\nfunction getCashNetConfiguration(casUser, setSettings, setgotoCashNet) {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_', true);\r\n\r\n return new Promise(function (resolve, reject) {\r\n fetch(config.api_cwo + `CashNetResponse/GetConfiguration?itemName=BiblicalSubscription&casUser=` + casUser.toString(), {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json'\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n if (setSettings) {\r\n setSettings(result)\r\n }\r\n if(setgotoCashNet)\r\n setgotoCashNet(true)\r\n\r\n resolve(result);\r\n } else {\r\n resolve(null);\r\n }\r\n },\r\n (error) => {\r\n console.log(error)\r\n return [];\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n });\r\n}","import React from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\n\r\nexport const severty_error = \"error\";\r\nexport const severty_warning = \"warning\";\r\nexport const severty_info = \"info\";\r\nexport const severty_success = \"success\";\r\n\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\n\r\nexport default function ValidationMessage(props) { \r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n } \r\n props.setshowWarningWrong(false); \r\n }; \r\n\r\n return (\r\n \r\n \r\n {props.message}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport { config } from \"../Config.custom\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport AddressForm from \"./AddressForm\";\r\nimport AccountForm from \"./AccountForm\";\r\nimport Review from \"./Review\";\r\nimport { Formik, Form } from \"formik\";\r\nimport validationSchema from \"./FormModel/validationSchema\";\r\nimport checkoutFormModel from \"./FormModel/checkoutFormModel\";\r\nimport formInitialValues from \"./FormModel/formInitialValues\";\r\nimport { staticList } from \"../../_services/staticList\";\r\nimport { sessionTools } from \"../../_services/sessionTools\"\r\n\r\nimport { creativeworksStore } from \"../../_services/creativeworksStore\";\r\n\r\nimport ValidationMessage from \"../ValidationMessage\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n width: 600,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n },\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(3) * 2)]: {\r\n marginTop: theme.spacing(6),\r\n marginBottom: theme.spacing(6),\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n stepper: {\r\n padding: theme.spacing(3, 0, 5),\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst steps = [\"Account\", \"Billing information\", \"Choose Subscription\"];\r\nconst { formId, formField } = checkoutFormModel;\r\n\r\nfunction _renderStepContent(step, casUser, captchaResponse) {\r\n switch (step) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n default:\r\n return
Not Found
;\r\n }\r\n}\r\n\r\nexport default function Checkout({ casUser }) {\r\n const classes = useStyles();\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const currentValidationSchema = validationSchema[activeStep];\r\n const isLastStep = activeStep === steps.length - 1;\r\n\r\n const [isSubmitting, setisSubmitting] = React.useState(false);\r\n const [goToCashNet, setGoToCashNet] = React.useState(false);\r\n const [captchaVerified, setCaptchaVerified] = React.useState(false);\r\n const [showWarningWrong, setshowWarningWrong] = React.useState(false);\r\n const [showWarningCaptcha, setshowWarningCaptcha] = React.useState(false);\r\n const [formField, setformField] = React.useState(\"\");\r\n const [cashnetConfiguration, setCashNetConfiguration] = React.useState([]);\r\n const [AccountGLCode, setGLCode] = React.useState(\"\");\r\n const [customerName, setCustomerName] = React.useState(\"\");\r\n\r\n useEffect(() => {\r\n getCashNetConfiguration();\r\n staticList.getCountry();\r\n staticList.getStates();\r\n }, []);\r\n\r\n \r\n const getCashNetConfiguration = () => {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(\r\n config.api_cwo +\r\n `CashNetResponse/GetConfiguration?itemName=BiblicalSubscription&casUser=`+ casUser.toString(),\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n Authorization: bearer\r\n },\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n setCashNetConfiguration(result);\r\n } else {\r\n setCashNetConfiguration(null);\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n return [];\r\n }\r\n )\r\n .catch((error) => {\r\n console.log(error);\r\n return [];\r\n });\r\n };\r\n\r\n const _handleSubmit = (values, actions) => {\r\n if (isLastStep) {\r\n setisSubmitting(true);\r\n if (captchaVerified) {\r\n creativeworksStore.saveOrder(\r\n values,\r\n casUser,\r\n setGoToCashNet,\r\n setshowWarningWrong,\r\n setisSubmitting\r\n );\r\n }\r\n else {\r\n setisSubmitting(false);\r\n setshowWarningCaptcha(true);\r\n }\r\n setformField(values);\r\n } else {\r\n setActiveStep(activeStep + 1);\r\n actions.setTouched([]);\r\n actions.setSubmitting(false);\r\n if (AccountGLCode === '' && values.country !== '' && values.state !== '') {\r\n //console.log('setGLCode')\r\n creativeworksStore.getGLCode(values.country, values.state, casUser, setGLCode);\r\n };\r\n if (customerName === '' && values.firstName !== '' && values.lastName !== '') {\r\n creativeworksStore.getCustomerName(values.firstName, values.lastName, setCustomerName);\r\n }\r\n }\r\n }\r\n\r\n const handleBack = () => {\r\n setCaptchaVerified(false);\r\n setActiveStep(activeStep - 1);\r\n };\r\n\r\n const CashNetForm = ({ formField }) => {\r\n const formRef = useRef(null);\r\n useEffect(() => {\r\n formRef.current.submit();\r\n }, []);\r\n let itemDescription = \"\";\r\n let itemPrice = \"\";\r\n var subs = JSON.parse(sessionTools.getCookie(\"Subscription\"));\r\n let byucas = 0;\r\n if (casUser) {\r\n byucas = 1;\r\n }\r\n subs.map(function (elm) {\r\n if (elm[\"Months\"] === formField.subscription) {\r\n if (elm[\"Student\"] === byucas) {\r\n itemDescription = elm[\"Name\"];\r\n itemPrice = elm[\"Price\"];\r\n }\r\n }\r\n return true;\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 \r\n \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\r\n
\r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {goToCashNet ? (\r\n \r\n \r\n Opening payment platform\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n {_renderStepContent(activeStep, casUser, setCaptchaVerified)}\r\n
\r\n {activeStep !== 0 && (\r\n \r\n )}\r\n
\r\n \r\n {isLastStep ? \"Place order\" : \"Next\"}\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","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Checkout from './Checkout';\r\nimport Link from '@material-ui/core/Link';\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n}))(MuiDialogContent);\r\n\r\n\r\n\r\n\r\n export default function SignUp( { homepage } ) {\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n //Returns signup link as a button if for the homepage, but as an account link looking thing if not \r\n if (homepage) {\r\n return (\r\n
\r\n \r\n \r\n \r\n Sign Up \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n else {\r\n return (\r\n
\r\n Don't have an account? Sign Up \r\n \r\n \r\n Sign Up \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport SignUp from './SignUp/SignUp';\r\nimport { Connector } from '../_api/connector';\r\n\r\nimport { authenticationService } from '../_services/authenticationService'\r\n\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentUser: null\r\n };\r\n }\r\n goAbout = () => {\r\n return \r\n }\r\n\r\n componentDidMount() { \r\n authenticationService.currentUser.subscribe(x => this.setState({ currentUser: x }));\r\n }\r\n\r\n render() {\r\n const { currentUser } = this.state;\r\n Connector.resetToken();\r\n return (\r\n
\r\n
\r\n
\r\n

BIBLICAL HEBREW

\r\n

Learning Tool

\r\n

The Biblical Hebrew Learning Tool is designed for beginning and intermediate students of Biblical Hebrew.

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

About

\r\n

\r\n The Biblical Hebrew Learning Tool is designed for beginning and intermediate students of Biblical Hebrew.\r\n The Learning Tool features five components: Vocabulary, Pronunciation, Verb Parsing, Grammar, and Translation.\r\n

\r\n

\r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n

Contact

\r\n

For information about the program, please contact donald_parry@byu.edu.

\r\n

For information about purchasing a subscription, please contact catalog@byu.edu or go to our\r\n Contact page.

\r\n

For technical difficulties, please contact cwprog@byu.edu or go to our\r\n Contact page.

\r\n
\r\n
\r\n

Subscription Details

\r\n

Biblical Hebrew is available through two subscription plans: $30 for six months or $50 for one year.\r\n Click on the button below to sign up for or view your subscription.


\r\n {!currentUser &&\r\n \r\n }\r\n {currentUser &&\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","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Redirect } from 'react-router-dom'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Skeleton from '@material-ui/lab/Skeleton';\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport { UserService } from '../_services/userService'\r\n//import Backdrop from '@material-ui/core/Backdrop';\r\n//import CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { sessionTools } from '../_services/sessionTools';\r\nimport { Connector } from '../_api/connector';\r\nimport './FlippingCardt.scss';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n textAlign: 'center',\r\n color: theme.palette.text.secondary,\r\n },\r\n course: {\r\n padding: theme.spacing(2),\r\n textAlign: 'left',\r\n minHeight: 235\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff',\r\n },\r\n}));\r\n\r\nfunction SkeletonBox(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\nexport function SkeletonCourse(props) {\r\n const classes = useStyles();\r\n //console.log(props)\r\n let message='';\r\n if(props.expired) { \r\n message = 'Your subscription has expired. To keep using please repurchase subscription from \"My Account\" menu.';\r\n }\r\n//console.log(message)\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 \r\n B\r\n \r\n \r\n {message}\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\nfunction Course(props) {\r\n const classes = useStyles();\r\n const { title, text, link } = props;\r\n return (\r\n \r\n {title}\r\n {text}\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nfunction CoursesGrid(props) {\r\n //const classes = useStyles();\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 \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n//function LoadingBox(props) {\r\n// const classes = useStyles();\r\n// const { loading } = props;\r\n// return (\r\n// \r\n// \r\n// \r\n// );\r\n//}\r\n\r\nexport class Components extends Component {\r\n static displayName = Components.name;\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n subsExpired: false,\r\n loading: true,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n };\r\n this.setExpiration = this.setExpiration.bind(this);\r\n }\r\n componentDidMount() {\r\n UserService.isSubscriptionExpired(this.setExpiration);\r\n //this.setState({ authenticate:authenticationService.isSubscribed() })\r\n //authenticationService.currentUser.subscribe(x => {\r\n // if (x != null) {\r\n // try {\r\n // this.setState({ currentUser: x, currentSubscription: JSON.parse(x).biblicalSubscription });\r\n // //console.log('subscribe')\r\n // //console.log(x.biblicalSubscription)\r\n // }\r\n // catch (e) {\r\n // this.setState({ currentUser: x, currentSubscription: x.biblicalSubscription });\r\n // //console.log('failsubscribe')\r\n // }\r\n // }\r\n //});\r\n }\r\n setExpiration(value) { \r\n this.setState({ subsExpired: value, loading: false });\r\n }\r\n render() {\r\n const isExpired = this.state.subsExpired;\r\n Connector.resetToken();\r\n //const currentUser = this.state;\r\n //const currentSubscription = this.state;\r\n if (!this.state.currentUser) {\r\n return ;\r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (!subscription) {\r\n let infoCourse;\r\n infoCourse = \r\n return infoCourse;\r\n }\r\n else {\r\n let infoCourse;\r\n if (isExpired) {\r\n infoCourse = \r\n } else {\r\n //console.log(isExpired)\r\n infoCourse = \r\n }\r\n return infoCourse;\r\n }\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Button from '@material-ui/core/Button';\r\nimport './FlippingCardt.scss';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { Connector } from '../_api/connector';\r\n\r\n\r\n\r\n\r\n// React component for the front side of the card\r\nexport class CardFront extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n front: true\r\n };\r\n\r\n this.showExplanationIconClick = this.showExplanationIconClick.bind(this);\r\n this.shuffleListClick = this.shuffleListClick.bind(this);\r\n this.verbShuffle = this.verbShuffle.bind(this);\r\n }\r\n FlipCard() {\r\n this.setState({ front: !this.state.front })\r\n }\r\n\r\n //Calls function in Card class component to set state that is held there\r\n showExplanationIconClick(e) {\r\n this.props.showExplanationIconClick();\r\n }\r\n\r\n shuffleListClick() {\r\n this.props.shuffleListClick();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // Typical usage (don't forget to compare props):\r\n\r\n }\r\n\r\n verbShuffle(){\r\n if(this.props.termtext !== 'No available cards for current settings'){\r\n this.props.onVerbShuffle();\r\n this.props.SetCurrentCard(0);\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n }\r\n }\r\n render() {\r\n\r\n Connector.resetToken();\r\n\r\n let styletermtext = null;\r\n if (this.props.fontSize) {\r\n styletermtext = { fontSize: this.props.fontSize }\r\n }\r\n \r\n //let showTranslationButton = null;\r\n if (this.props.flipCard) {\r\n //showTranslationButton = ();\r\n }\r\n\r\n let explanationIcon = null;\r\n if (this.props.displayExplanationIcon) {\r\n explanationIcon = (\r\n \r\n \r\n );\r\n }\r\n\r\n\r\n //Shuffle button\r\n let ShuffleButton = null;\r\n if (this.props.verbParsingShuffle) {\r\n ShuffleButton = (
\r\n \r\n \r\n
);\r\n }\r\n else if (this.props.displayShuffleButton) {\r\n ShuffleButton = (
\r\n \r\n \r\n
);\r\n }\r\n let termexplanation = null;\r\n if (this.props.showExplanation) {\r\n if (this.props.termexplanation.length <= 300){\r\n termexplanation = (
\r\n {this.props.termexplanation}\r\n
);\r\n }\r\n else {\r\n termexplanation = (
\r\n {this.props.termexplanation}\r\n
);\r\n }\r\n }\r\n return (\r\n
\r\n
{this.props.reference}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.props.termtext}\r\n
\r\n
\r\n {this.props.showExplanation ? termexplanation : null}\r\n
\r\n
\r\n
\r\n {explanationIcon}\r\n
\r\n
\r\n
{ this.props.currentCard} / {this.props.maxItems}
\r\n
\r\n
\r\n {ShuffleButton}\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// React component for the back side of the card\r\n// Used for flipping the card (removed by request from Parry)\r\n// export class CardBack extends React.Component {\r\n// constructor() {\r\n// super();\r\n// this.state = {\r\n\r\n// }\r\n// }\r\n// render() {\r\n// return (\r\n//
\r\n//
\r\n//
\r\n//
\r\n//
\r\n// {this.props.termdefinition}\r\n//
\r\n//
\r\n//
\r\n//
\r\n//
\r\n// )\r\n// }\r\n// }\r\n\r\nexport function RadioButtonsGroup(props) {\r\n const [value, setValue] = React.useState('female');\r\n const handleChange = (event) => {\r\n setValue(event.target.value);\r\n props.onChildClick(event.target.value);\r\n };\r\n return (\r\n \r\n \r\n } label=\"Female\" />\r\n } label=\"Male\" />\r\n \r\n \r\n );\r\n}\r\n\r\nexport class AudioPlayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.AudioPlayer = React.createRef();\r\n this.AudioReload = this.AudioReload.bind(this);\r\n this.play = this.play.bind(this);\r\n this.state = {\r\n styleIcon: 'fas fa-volume-up fa-3x iconPlay',\r\n extensionFile: '.mp3'\r\n }\r\n }\r\n async componentDidMount() {\r\n if (this.AudioPlayer.current.canPlayType('audio/mpeg') === 'probably') {\r\n this.setState({ extensionFile: '.mp3' }); \r\n } else {\r\n this.setState({ extensionFile: '.mp3' });\r\n } \r\n }\r\n componentWillReceiveProps(nextProps) {\r\n // When the url changes, we refresh the component manually so it reloads the loaded file\r\n if ((nextProps.src) && (nextProps.src !== this.props.src)) {\r\n // Change the source\r\n this.AudioPlayer.current.src = nextProps.src + this.state.extensionFile;\r\n // Cause the audio element to load the new source \r\n this.AudioPlayer.current.load();\r\n //this.AudioPlayer.current.play();\r\n }\r\n } \r\n play() {\r\n this.setState({\r\n styleIcon: 'fas fa-volume-up fa-3x iconPlayPlaying'\r\n }, () => {\r\n this.AudioPlayer.current.play();\r\n });\r\n }\r\n AudioReload() {\r\n this.setState({\r\n styleIcon: 'fas fa-volume-up fa-3x iconPlay'\r\n }, () => {\r\n this.AudioPlayer.current.pause();\r\n this.AudioPlayer.current.load();\r\n //this.AudioPlayer.current.play();\r\n });\r\n } \r\n render() {\r\n let styleHide = { display: 'none' }\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nfunction arraysEqual(a1, a2) {\r\n /* WARNING: arrays must not contain {objects} or behavior may be undefined */\r\n return JSON.stringify(a1) === JSON.stringify(a2);\r\n}\r\n// React component for the card (main component)\r\nexport class Card extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.audioRef = React.createRef();\r\n this.handlerGenderChange = this.handlerGenderChange.bind(this);\r\n this.handleClick_back = this.handleClick_back.bind(this);\r\n this.handleClick_foward = this.handleClick_foward.bind(this);\r\n this.getAudioSrc = this.getAudioSrc.bind(this);\r\n this.SetCurrentCard = this.SetCurrentCard.bind(this);\r\n this.ShuffleList = this.ShuffleList.bind(this);\r\n this.showExplanationIconClick = this.showExplanationIconClick.bind(this);\r\n //this.handleMyTranslationChange = this.handleMyTranslationChange.bind(this);\r\n this.state = {\r\n genderAudio: 'female',\r\n audiosrc_ogg: '',\r\n currentCard: 0,\r\n text: '',\r\n definition: '',\r\n maxIndex: 0,\r\n reference: '',\r\n flipCard: true, //by default\r\n styleContainter: 'card-container', // no flip : card-container-no-Flip\r\n currentWordId: 0,\r\n displayExplanationText: false\r\n };\r\n }\r\n async componentDidMount() {\r\n //this.state.text = this.props.defaultText;\r\n //this.state.definition = this.props.defaultDefinition;\r\n //this.state.wordsList = this.props.wordslist;\r\n if (this.props.flipCard === true) {\r\n this.setState({\r\n flipCard: this.props.flipCard,\r\n styleContainter: 'card-container'\r\n });\r\n } else {\r\n this.setState({\r\n flipCard: this.props.flipCard,\r\n styleContainter: 'card-container-no-Flip'\r\n });\r\n }\r\n }\r\n componentDidUpdate(prevProps) {\r\n\r\n // Typical usage (don't forget to compare props):\r\n if (this.props.textPropertyName !== prevProps.textPropertyName\r\n && prevProps.textPropertyName !== '') {\r\n if (this.props.wordsList) {\r\n this.setState({\r\n text: this.props.wordsList[this.state.currentCard][this.props.textPropertyName]\r\n });\r\n }\r\n }\r\n if (this.props.flipCard !== prevProps.flipCard) {\r\n if (this.props.flipCard === true) {\r\n this.setState({\r\n flipCard: this.props.flipCard,\r\n styleContainter: 'card-container'\r\n });\r\n } else {\r\n this.setState({\r\n flipCard: this.props.flipCard,\r\n styleContainter: 'card-container-no-Flip'\r\n });\r\n }\r\n }\r\n if (this.props.defaultText !== prevProps.defaultText) {\r\n this.SetCurrentCard(0);\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n this.setState({\r\n text: this.props.defaultText,\r\n currentCard: 0\r\n }, () => {\r\n // this.audioChangeClick(this.state.genderAudio);\r\n });\r\n }\r\n if (this.props.defaultDefinition !== prevProps.defaultDefinition) {\r\n this.setState({\r\n definition: this.props.defaultDefinition,\r\n reference: ''\r\n });\r\n }\r\n if (this.props.definitionPropertyName !== prevProps.definitionPropertyName) {\r\n this.setState({\r\n definition: this.props.wordsList[this.state.currentCard][this.props.definitionPropertyName] \r\n });\r\n }\r\n if (!arraysEqual(this.props.wordsList, prevProps.wordsList)) { \r\n if(this.props.wordsList.length !== 0) { \r\n this.SetCurrentCard(0);\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n this.setState({\r\n maxIndex: this.props.wordsList.length - 1,\r\n currentCard: 0,\r\n currentWordId: this.props.wordsList[0][this.props.wordIdPropertyName],\r\n }, () => {\r\n if (this.props.wordsList[0].reference) {\r\n this.setState({ reference: this.props.wordsList[0].reference });\r\n }\r\n });\r\n }\r\n else {\r\n this.setState({\r\n maxIndex: 0\r\n });\r\n } \r\n }\r\n }\r\n\r\n getAudioSrc() {\r\n var _newAudio = null; \r\n if (this.props.wordIdPropertyName) {\r\n _newAudio = this.props.pathaudioFile + this.props.groupName + (\"0\" + (this.state.currentWordId)).slice(-2) + this.state.genderAudio.substring(0, 1);\r\n } else {\r\n _newAudio = this.props.pathaudioFile + this.props.groupName + (\"0\" + (this.state.currentCard + 1)).slice(-2) + this.state.genderAudio.substring(0, 1);\r\n } \r\n return _newAudio;\r\n }\r\n handlerGenderChange(optionValue) {\r\n this.setState({ genderAudio: optionValue });\r\n this.setState ({ explanationIcon: false})\r\n }\r\n handleClick_back() {\r\n if (this.props.wordsList.length !== 0) {\r\n var nextIndex = this.state.currentCard;\r\n this.setState ({ displayExplanationText: false})\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n if (this.state.currentCard > 0) {\r\n nextIndex = (this.state.currentCard - 1);\r\n this.SetCurrentCard(nextIndex);\r\n } else {\r\n this.SetCurrentCard(this.state.maxIndex);\r\n }\r\n }\r\n }\r\n handleClick_foward() {\r\n if (this.props.wordsList.length !== 0){\r\n var nextIndex = this.state.currentCard;\r\n this.setState ({ displayExplanationText: false})\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n if (nextIndex < this.state.maxIndex) {\r\n nextIndex = (this.state.currentCard + 1);\r\n this.SetCurrentCard(nextIndex);\r\n } else {\r\n this.SetCurrentCard(0);\r\n }\r\n }\r\n }\r\n SetCurrentCard(nextIndex) {\r\n try {\r\n this.setState({\r\n text: this.props.wordsList[nextIndex][this.props.textPropertyName],\r\n definition: this.props.wordsList[nextIndex][this.props.definitionPropertyName],\r\n reference: this.props.wordsList[nextIndex].reference,\r\n currentCard: nextIndex,\r\n currentWordId: this.props.wordsList[nextIndex][this.props.wordIdPropertyName],\r\n showExplanation: false,\r\n displayShuffleButton: true,\r\n }, () => {\r\n if (this.props.onSetCurrentCard) {\r\n this.props.onSetCurrentCard(nextIndex);\r\n }\r\n });\r\n } catch (e) {\r\n //console.log('catch')\r\n this.setState({\r\n text: 'No available cards for current settings',\r\n definition: '',\r\n reference: '',\r\n currentCard: nextIndex,\r\n currentWordId: '',\r\n showExplanation: false,\r\n displayShuffleButton: false\r\n })\r\n }\r\n }\r\n //Shuffle List Function\r\n ShuffleList() {\r\n if (this.props.wordsList.length !== 0) {\r\n var array = this.props.wordsList\r\n var i = array.length,\r\n j = 0,\r\n temp;\r\n while (i--) {\r\n j = Math.floor(Math.random() * (i + 1));\r\n\r\n temp = array[i];\r\n array[i] = array[j];\r\n array[j] = temp;\r\n }\r\n this.setState({\r\n wordsList: array, \r\n })\r\n this.SetCurrentCard(0);\r\n if (this.props.translationBox === true){\r\n this.translationValue.getElementsByClassName(\"MuiInputBase-input\")[0].value=\"\";\r\n }\r\n }\r\n }\r\n\r\n //Handles changes to the translation (as they type function) removed by request\r\n // handleMyTranslationChange = event => {\r\n // if (event.target.value.length >= 2) {\r\n // if (event.target.value.toLowerCase() === this.state.definition.toLowerCase()) {\r\n // this.setState({ translationError: false, helperText: 'Good job!' });\r\n // } else {\r\n // this.setState({ translationError: true, helperText: 'Keep trying!' });\r\n // }\r\n // } else {\r\n // this.setState({ translationError: false, helperText: '' });\r\n // }\r\n // this.setState({ myTranslation: event.target.value });\r\n // };\r\n\r\n showExplanationIconClick(e) {\r\n this.setState({\r\n showExplanation: !(this.state.showExplanation)\r\n });\r\n }\r\n\r\n render() {\r\n\r\n let leftArrow;\r\n leftArrow = (
\r\n \r\n
);\r\n let rightArrow;\r\n rightArrow = (
\r\n \r\n
);\r\n let audioPlayerrow;\r\n if (this.props.audioPlayer === false) {\r\n audioPlayerrow = null;\r\n } else {\r\n audioPlayerrow = (
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n //For grammar and translation pages (translation textBox)\r\n let translationBox;\r\n if(this.props.translationBox === false) {\r\n translationBox = null;\r\n } else {\r\n translationBox = (
\r\n
\r\n this.translationValue = el}\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 {leftArrow}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n
\r\n {rightArrow}\r\n
\r\n
\r\n {audioPlayerrow}\r\n {translationBox}\r\n
\r\n
\r\n\r\n\r\n\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Card } from './CardContainer';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Redirect } from 'react-router-dom'\r\nimport { sessionTools } from '../_services/sessionTools';\r\nimport { config } from './Config.custom';\r\n\r\n//for old shuffle button\r\n/* export function ShuffleButton({ shuffleChange }) {\r\n function handleClick(e) {\r\n e.preventDefault();\r\n shuffleChange(e);\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n} */\r\n\r\nexport class Vocabulary extends Component {\r\n static displayName = Vocabulary.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.cardChild = React.createRef()\r\n this.awsPathAudio = 'https://creativeworks-store.s3-us-west-2.amazonaws.com/Material/BiblicalHebrew/audio';\r\n this.state = {\r\n vocabularySetId: 0,\r\n vocabularysetList: [],\r\n vocabularywordsList: [],\r\n ready: false,\r\n setListReady: false,\r\n defaultText: '',\r\n defaultDefinition: '',\r\n groupName: 'vocab',\r\n audioUrl: this.awsPathAudio,\r\n fontSize: 70,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n textPropertyName: 'text',\r\n definitionPropertyName: 'definition',\r\n };\r\n this.getVocabularySetList = this.getVocabularySetList.bind(this);\r\n this.getVocabularyWordsList = this.getVocabularyWordsList.bind(this);\r\n\r\n }\r\n componentDidMount() {\r\n this.getVocabularySetList();\r\n //console.log(config.api_url);\r\n }\r\n hideError() {\r\n this.setState({ showError: !this.state.showError });\r\n }\r\n getVocabularySetList() {\r\n try {\r\n fetch(config.api_url + 'VocabularySets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.removeItem('hebrew_VocabularyStudyList');\r\n //var result = result;\r\n this.setState({\r\n vocabularysetList: result,\r\n setListReady: true,\r\n isLoading: false\r\n });\r\n var _firstList = result[0];\r\n this.getVocabularyWordsList(_firstList.id);\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n \r\n\r\n }\r\n getVocabularyWordsList(setId) {\r\n try {\r\n fetch(config.api_url + 'VocabularyWords')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n localStorage.removeItem('hebrew_VocabularySets')\r\n var data = result;\r\n const resultpart = data.filter(d => d.vocabularySetsId === parseInt(setId));\r\n if (resultpart) {\r\n this.setState({\r\n ready: true,\r\n vocabularywordsList: resultpart,\r\n groupName: 'vocab' + (\"0\" + setId).slice(-2) + '-',\r\n vocabularySetId: setId,\r\n defaultText: resultpart[0].text,\r\n defaultDefinition: resultpart[0].definition,\r\n audioUrl: this.awsPathAudio + '/vocabulary/' + (\"0\" + setId).slice(-2) + '/'\r\n }, () => {\r\n //this.cardChild.current.NewListSelected();\r\n });\r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n handleChange = (event) => {\r\n this.setState({ vocabularySetId: event.target.value });\r\n this.getVocabularyWordsList(event.target.value);\r\n };\r\n //Old Shuffle List button\r\n/* onShuffleList() { \r\n try { \r\n fetch(config.api_url + `VocabularyWords/GetRandom?id=${this.state.vocabularySetId}`)\r\n .then(res => res.json())\r\n .then(\r\n (result) => { \r\n this.setState({ \r\n ready: true,\r\n vocabularywordsList: result,\r\n //groupName: 'vocab' + (\"0\" + setId).slice(-2) + '-',\r\n //vocabularySetId: setId,\r\n defaultText: result[0].text,\r\n defaultDefinition: result[0].definition,\r\n //audioUrl: this.awsPathAudio + '/vocabulary/' + (\"0\" + setId).slice(-2) + '/'\r\n }, () => { \r\n //this.cardChild.current.NewListSelected();\r\n }); \r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error); \r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }*/\r\n \r\n render() {\r\n //console.log(this.state.authenticate);\r\n if (this.state.currentUser == null) {\r\n return \r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (subscription === false) {\r\n //console.log(this.state.currentUser)\r\n return \r\n }\r\n else {\r\n return (\r\n
\r\n \r\n Vocabulary\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","import React, { Component } from 'react';\r\nimport { Card } from './CardContainer';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { Redirect } from 'react-router-dom'\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { config } from './Config.custom'\r\nimport { sessionTools } from '../_services/sessionTools';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n marginTop: 25\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n selectStudyList: {\r\n width: 300\r\n },\r\n selectStudyListLabel: {\r\n fontSize: 18,\r\n fontVariant: 'h3'\r\n }\r\n}));\r\n\r\nexport default function SelectList(props) {\r\n const classes = useStyles();\r\n const [studylist, setList] = React.useState(10);\r\n const [wordList, setWordsList] = React.useState('');\r\n const [biblicalList, setBiblicalList] = React.useState('');\r\n\r\n const handleChange = (event) => {\r\n setList(parseInt(event.target.value));\r\n setWordsList('');\r\n setBiblicalList('');\r\n props.handleChangeStudyList(parseInt(event.target.value));\r\n };\r\n const handleWordsList = (event) => {\r\n setWordsList(event.target.value);\r\n props.handleWordsList(event.target.value);\r\n };\r\n const handleBiblicalList = (event) => {\r\n setBiblicalList(event.target.value);\r\n props.handleBiblicalList(event.target.value);\r\n };\r\n\r\n const WordsList = () => (\r\n \r\n Words list\r\n \r\n \r\n )\r\n const BiblicalUnitList = () => (\r\n \r\n Units\r\n \r\n \r\n )\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 {studylist === 20 ? : null}\r\n {studylist === 30 ? : null}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport class Pronunciation extends Component {\r\n static displayName = Pronunciation.name;\r\n constructor(props) {\r\n super(props);\r\n this.cardChild = React.createRef()\r\n this.awsPathAudio = 'https://creativeworks-store.s3-us-west-2.amazonaws.com/Material/BiblicalHebrew/audio';\r\n this.state = {\r\n vocabularySetId: 1,\r\n vocabularysetList: [],\r\n alphabetList: [],\r\n biblicalLiteraryUnits: [],\r\n ready: false,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n cardwordsList: [''],\r\n audioUrl: this.awsPathAudio,\r\n defaultText: null,\r\n defaultDefinition: null,\r\n groupName: 'alpha',\r\n fontSize: 48,\r\n flipCard: false,\r\n wordPropertyId: '',\r\n\r\n textPropertyName: 'text',\r\n definitionPropertyName: 'definition'\r\n };\r\n //get data methods\r\n this.getAlphabet = this.getAlphabet.bind(this);\r\n this.getVocabularySetList = this.getVocabularySetList.bind(this);\r\n this.getBiblicalLiteraryUnits = this.getBiblicalLiteraryUnits.bind(this);\r\n //Handle events\r\n this.handleChangeStudyList = this.handleChangeStudyList.bind(this);\r\n this.handleWordsList = this.handleWordsList.bind(this);\r\n this.handleBiblicalList = this.handleBiblicalList.bind(this);\r\n this.getBiblicalLiteraryUnitsVerses = this.getBiblicalLiteraryUnitsVerses.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.getAlphabet();\r\n this.getVocabularySetList();\r\n this.getBiblicalLiteraryUnits();\r\n }\r\n hideError() {\r\n this.setState({ showError: !this.state.showError });\r\n }\r\n getVocabularySetList() {\r\n try {\r\n fetch(config.api_url + 'VocabularySets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result) {\r\n this.setState({\r\n ready: true,\r\n vocabularysetList: result\r\n });\r\n } },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getVocabularyWordsList(setId) {\r\n try {\r\n fetch(config.api_url + 'VocabularyWords')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n const data = result.filter(d => d.vocabularySetsId === parseInt(setId));\r\n if (data) {\r\n this.setState({\r\n ready: true,\r\n cardwordsList: data,\r\n groupName: 'vocab' + (\"0\" + setId).slice(-2) + '-',\r\n vocabularySetId: setId,\r\n defaultText: data[0].text,\r\n defaultDefinition: data[0].definition,\r\n audioUrl: this.awsPathAudio + '/vocabulary/' + (\"0\" + setId).slice(-2) + '/',\r\n fontSize: 70\r\n }, () => {\r\n\r\n });\r\n } },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n }\r\n catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getAlphabet() {\r\n try {\r\n fetch(config.api_url + 'AlphabetSets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result) {\r\n this.setState({\r\n ready: true,\r\n alphabetList: result,\r\n flipCard: false\r\n }, () => {\r\n this.handleChangeStudyList(10);\r\n });\r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getBiblicalLiteraryUnits() {\r\n try {\r\n fetch(config.api_url + 'TranslationSets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result) {\r\n this.setState({\r\n ready: true,\r\n biblicalLiteraryUnits: result\r\n });\r\n };\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getBiblicalLiteraryUnitsVerses(setId) {\r\n try {\r\n fetch(config.api_url + 'TranslationVerses/' + setId)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n ready: true,\r\n cardwordsList: result,\r\n groupName: 'verse' + (\"0\" + setId).slice(-2) + '-',\r\n vocabularySetId: setId,\r\n defaultText: result[0].text,\r\n defaultDefinition: result[0].definition,\r\n audioUrl: this.awsPathAudio + '/translation/' + (\"0\" + setId).slice(-2) + '/',\r\n fontSize: 48,\r\n flipCard: false\r\n }, () => {\r\n\r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n handleChangeStudyList(optionValue) {\r\n //10 = Show alphabet list\r\n if (optionValue === 10) {\r\n this.setState({\r\n cardwordsList: this.state.alphabetList,\r\n audioUrl: this.awsPathAudio + '/alphabet/',\r\n groupName: 'alpha',\r\n defaultText: this.state.alphabetList[0].text,\r\n defaultDefinition: this.state.alphabetList[0].text,\r\n fontSize: 130,\r\n flipCard: false,\r\n wordPropertyId: 'id',\r\n });\r\n }\r\n //20 = show word list by selected words group\r\n if (optionValue === 20) {\r\n this.setState({\r\n cardwordsList: [''],\r\n }, () => {\r\n this.setState({\r\n defaultText: '',\r\n defaultDefinition: '',\r\n flipCard: false,\r\n wordPropertyId: 'wordId',\r\n });\r\n });\r\n }\r\n //30 = show biblical list by selected unit\r\n if (optionValue === 30) {\r\n this.setState({\r\n cardwordsList: [''],\r\n }, () => {\r\n this.setState({\r\n defaultText: '',\r\n defaultDefinition: '',\r\n flipCard: false,\r\n wordPropertyId: 'verseId',\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleWordsList(value) {\r\n if (value > 0)\r\n this.getVocabularyWordsList(value);\r\n }\r\n handleBiblicalList(value) {\r\n if (value > 0)\r\n this.getBiblicalLiteraryUnitsVerses(value);\r\n }\r\n \r\n render() {\r\n if (this.state.currentUser == null) {\r\n return \r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (!subscription) {\r\n return \r\n } else {\r\n return (\r\n
\r\n \r\n Pronunciation\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","import React, { Component } from 'react';\r\nimport Checkout from './SignUp/Checkout';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CasClient from \"react-cas-client\";\r\nimport { Redirect } from 'react-router-dom'\r\n\r\n\r\n\r\n\r\nexport class CASSignUp extends Component {\r\n static displayName = CASSignUp.name;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentUser: null,\r\n successfulCAS: false\r\n };\r\n }\r\n\r\n render() {\r\n let casEndpoint = 'cas.byu.edu';\r\n let casOptions = {\r\n 'protocol': 'http'\r\n };\r\n let gateway = false;\r\n let successfulCAS = this.state;\r\n\r\n let casClient = new CasClient(casEndpoint, casOptions);\r\n casClient\r\n .auth(gateway)\r\n .then(successRes => {\r\n successfulCAS = true;\r\n\r\n })\r\n .catch(errorRes => {\r\n console.error(errorRes);\r\n })\r\n if (successfulCAS) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Student Sign-Up\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n )\r\n }\r\n else { return }\r\n\r\n\r\n\r\n }\r\n\r\n}","var formModel = {\r\n formId: 'myAccountForm',\r\n formField: {\r\n guid: {\r\n name: 'guid' ,\r\n label: 'Guid' \r\n },\r\n email: {\r\n name: 'email',\r\n label: 'Email',\r\n requiredErrorMsg: 'Email is required',\r\n requiredExistErrorMsg: 'This email address is already being used.',\r\n requiredValidErrorMsg: 'Valid email is required'\r\n },\r\n username: {\r\n name: 'username',\r\n label: 'Username',\r\n requiredErrorMsg: 'Username is required',\r\n requiredExistErrorMsg: 'This Username is already being used.',\r\n requiredLengthErrorMsg: 'Username must be at least 6 characters'\r\n },\r\n password: {\r\n name: 'password',\r\n label: 'Password',\r\n requiredErrorMsg: 'Password is required',\r\n requiredLengthErrorMsg: 'Password must be at least 6 characters'\r\n },\r\n passwordRepeat: {\r\n name: 'passwordRepeat',\r\n label: 'Password Repeat',\r\n requiredErrorMsg: 'Password repeat is required',\r\n },\r\n firstName: {\r\n name: 'firstName',\r\n label: 'First name',\r\n requiredErrorMsg: 'First name is required'\r\n },\r\n lastName: {\r\n name: 'lastName',\r\n label: 'Last name',\r\n requiredErrorMsg: 'Last name is required'\r\n },\r\n address1: {\r\n name: 'address1',\r\n label: 'Address Line 1',\r\n requiredErrorMsg: 'Address Line 1 is required'\r\n },\r\n address2: {\r\n name: 'address2',\r\n label: 'Address Line 2'\r\n },\r\n city: {\r\n name: 'city',\r\n label: 'City',\r\n requiredErrorMsg: 'City is required'\r\n },\r\n state: {\r\n name: 'state',\r\n label: 'State/Province/Region',\r\n requiredErrorMsg: 'State/Province/Region is required',\r\n },\r\n zipcode: {\r\n name: 'zipcode',\r\n label: 'Zipcode',\r\n requiredErrorMsg: 'Zipcode is required',\r\n invalidErrorMsg: 'Zipcode is not valid (e.g. 70000)'\r\n },\r\n country: {\r\n name: 'country',\r\n label: 'Country',\r\n requiredErrorMsg: 'Country is required', \r\n },\r\n subscription: {\r\n name: 'subscription',\r\n label: 'Subscription plans',\r\n requiredErrorMsg: 'Subscription plan is required'\r\n },\r\n expirationdate: {\r\n name: 'expirationdate',\r\n label: 'Subscription Ends'\r\n },\r\n subscriptiontype: {\r\n name: 'subscriptiontype',\r\n label: 'Subscription Type'\r\n },\r\n }\r\n};\r\n\r\nexport default formModel;\r\n ","import * as Yup from 'yup';\r\n//import moment from 'moment';\r\nimport myAccountFormModel from '../SignUp/FormModel/checkoutFormModel';\r\nimport { UserService } from '../../_services/userService'\r\n\r\nconst {\r\n formField: {\r\n email,\r\n username,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n city,\r\n state,\r\n country,\r\n zipcode,\r\n //subscription\r\n }\r\n} = myAccountFormModel;\r\n\r\nconst emailRegEx = /^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/;\r\n\r\nfunction equalTo(ref, msg) {\r\n\treturn this.test({\r\n\t\tname: 'equalTo',\r\n\t\texclusive: false,\r\n message: msg, // || '${path} must be the same as ${reference}',\r\n\t\tparams: {\r\n\t\t\treference: ref.path\r\n\t\t},\r\n\t\ttest: function(value) {\r\n return value === this.resolve(ref) \r\n\t\t}\r\n\t})\r\n};\r\nYup.addMethod(Yup.string, 'equalTo', equalTo);\r\nvar validationArray = [\r\n //step1\r\n Yup.object().shape({\r\n [username.name]: Yup.string()\r\n .required(`${username.requiredErrorMsg}`)\r\n .test(\r\n 'len',\r\n `${username.requiredLengthErrorMsg}`,\r\n val => val && val.length >= 6\r\n ),\r\n [email.name]: Yup.string()\r\n .required(`${email.requiredErrorMsg}`)\r\n .matches(emailRegEx, email.requiredValidErrorMsg)\r\n .test(\"ValidateExist\", `${email.requiredExistErrorMsg}`, function (value) { // Use function\r\n return UserService.emailValidation(value, true)\r\n .then(function (uid) {\r\n return (uid)\r\n })\r\n })\r\n .test(\r\n 'len',\r\n `${username.requiredLengthErrorMsg}`,\r\n val => val && val.length >= 6\r\n ),\r\n [password.name]: Yup.string()\r\n .nullable()\r\n .test(\r\n 'len',\r\n `${password.requiredLengthErrorMsg}`,\r\n function (val) {\r\n if (val) {\r\n return val.length >= 6;\r\n }\r\n return true;\r\n }\r\n ),\r\n [passwordRepeat.name]: Yup.string() \r\n .oneOf([Yup.ref('password'), null], 'Passwords must match')\r\n .equalTo(Yup.ref('password')), \r\n [firstName.name]: Yup.string().required(`${username.requiredErrorMsg}`),\r\n [lastName.name]: Yup.string().required(`${lastName.requiredErrorMsg}`),\r\n [zipcode.name]: Yup.string()\r\n .required(`${zipcode.requiredErrorMsg}`)\r\n .test(\r\n 'len',\r\n `${zipcode.invalidErrorMsg}`,\r\n val => val && val.length >= 5\r\n ),\r\n [address1.name]: Yup.string().required(`${address1.requiredErrorMsg}`),\r\n [city.name]: Yup.string().required(`${city.requiredErrorMsg}`),\r\n [state.name]: Yup.string().required(`${state.requiredErrorMsg}`)\r\n .test(\r\n 'US State',\r\n `${state.invalidStateMsg}`,\r\n (val, ctx) => {\r\n var passedTest = false\r\n if (ctx.parent.country == 1) {\r\n JSON.parse(localStorage.getItem('states'))['states'].forEach(element => {\r\n if (val == element.name) {\r\n passedTest = true\r\n }\r\n })\r\n }\r\n else { passedTest = true }\r\n return passedTest\r\n }),\r\n [country.name]: Yup.string().required(`${country.requiredErrorMsg}`)\r\n })\r\n];\r\n\r\nexport default validationArray;","import React, { useEffect, useRef } from 'react';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport { config } from './Config.custom'\r\nimport { creativeworksStore } from '../_services/creativeworksStore'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ValidationMessage from './ValidationMessage'\r\nimport { sessionTools } from '../_services/sessionTools'\r\n\r\n//const AuthenticatePublicRequest = {\r\n// Username: process.env.REACT_APP_CLIENT_ID,\r\n// Password: process.env.REACT_APP_KEY\r\n//};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff',\r\n }\r\n}));\r\n\r\n\r\nexport default function CashNetForm(props) {\r\n const formRef = useRef(null);\r\n const { formValues, casUser, cashNetConfiguration } = props;\r\n const { email, country, state, subscription, guid, firstName, lastName } = formValues;\r\n const [GLCode, setGLCode] = React.useState('');\r\n const [itemDescription, setitemDescription] = React.useState('');\r\n const [itemPrice, setitemPrice] = React.useState('');\r\n //const [cashnetConfiguration, setCashNetConfiguration] = React.useState([]);\r\n const [gotoCashNet, setgoto] = React.useState(false);\r\n const [loading, setLoading] = React.useState(true);\r\n const classes = useStyles();\r\n const [showWarningWrong, setshowWarningWrong] = React.useState(false);\r\n\r\n useEffect(() => {\r\n //\r\n const getGLCode = () => {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(config.api_cwo + 'GLCode?itemName=BiblicalSubscription&countryid=' + country + '&statename=' + state + '&CasUser=' + casUser, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json'\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result.result === \"0\") {\r\n setGLCode(result.gl);\r\n //console.log(result.gl)\r\n } else {\r\n setGLCode('00000000000000000');\r\n }\r\n },\r\n (error) => {\r\n console.log(error)\r\n setGLCode('00000000000000000');\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n };\r\n\r\n const setgotoCashNet = (value) => {\r\n if (value) {\r\n setgoto(true);\r\n formRef.current.submit();\r\n } else {\r\n setLoading(false);\r\n props.setOpenCashNet(false);\r\n }\r\n }\r\n\r\n getGLCode();\r\n //setCashNetConfiguration(creativeworksStore.getCashNetConfiguration(true, setgoto));\r\n creativeworksStore.resubscribe(formValues, casUser, setgotoCashNet, setshowWarningWrong);\r\n\r\n var subs = JSON.parse(sessionTools.getCookie('Subscription'));\r\n subs.map(function (elm) {\r\n if (elm['Months'] === subscription) {\r\n if (casUser === true) {\r\n if (elm['Student'] === 1) {\r\n setitemDescription(elm['Name'])\r\n setitemPrice(elm['Price'])\r\n }\r\n }\r\n else {\r\n if (elm['Student'] === 0) {\r\n setitemDescription(elm['Name'])\r\n setitemPrice(elm['Price'])\r\n }\r\n }\r\n \r\n }\r\n return true;\r\n });\r\n\r\n }, [formValues, subscription, props, country, state]);\r\n\r\n \r\n\r\n\r\n //console.log('Cashnetform is being used')\r\n return (\r\n\r\n \r\n\r\n \r\n {(!gotoCashNet) ? (\r\n \r\n \r\n \r\n ) : (\r\n
\r\n
//This needs to change when you are publishing to training/production\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};","import React, { Component, useEffect } from 'react';\r\nimport { authenticationService } from '../_services/authenticationService'\r\nimport { UserService } from '../_services/userService'\r\nimport { config } from '../components/Config.custom'\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Connector } from '../_api/connector';\r\n\r\nimport { Formik, Form, useFormikContext } from 'formik';\r\nimport myAccountFormModel from './myAccount/formModel';\r\nimport validationSchema from '../components/myAccount/validationSchema';\r\n//import formInitialValues from '../components/SignUp/FormModel/formInitialValues';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport InputField from '../components/SignUp/FormModel/inputField'\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ValidationMessage from './ValidationMessage'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport SelectFieldAPI from '../components/SignUp/FormModel/SelectFieldAPI';\r\nimport SelectField from '../components/SignUp/FormModel/SelectField';\r\nimport { sessionTools } from '../_services/sessionTools';\r\nimport CasClient from \"react-cas-client\";\r\n\r\nimport CashNetForm from './CashNetForm'\r\nimport { creativeworksStore } from '../_services/creativeworksStore';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff',\r\n },\r\n paper: {\r\n //marginTop: theme.spacing(3),\r\n //marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(400 + theme.spacing(3) * 2)]: {\r\n //marginTop: theme.spacing(6),\r\n //marginBottom: theme.spacing(6),\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n buttons: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1),\r\n },\r\n divider: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n },\r\n}));\r\n\r\n\r\n\r\nexport function SubscriptionDialog() {\r\n const [open, setOpen] = React.useState(true);\r\n const classes = useStyles();\r\n const [items, setItems] = React.useState([]);\r\n const { formField: { subscription } } = myAccountFormModel;\r\n const [openCashNet, setOpenCashNet] = React.useState(false);\r\n const { values: formValues } = useFormikContext();\r\n const [cashNetConfig, setCashNetConfig] = React.useState([]);\r\n\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleSubscribe = () => {\r\n setOpenCashNet(true)\r\n };\r\n\r\n const getSubscriptionData = () => {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(config.api_cwo + 'Subscription?itemName=BiblicalSubscription', {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json'\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result.items) {\r\n var items = JSON.parse(result.items);\r\n var resultArray = items.filter(function (user) {\r\n return user.Student === 1;\r\n }).map(function (elm) {\r\n return { value: elm['Months'], label: elm['Name'] + ' - $' + elm['Price'] };\r\n });\r\n setItems(resultArray);\r\n }\r\n },\r\n (error) => {\r\n console.log(error)\r\n return [];\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n }\r\n\r\n useEffect(() => {\r\n getSubscriptionData();\r\n creativeworksStore.getCashNetConfiguration(true, setCashNetConfig, setOpenCashNet)\r\n }, []);\r\n const handleChangeSubscription = () => { }\r\n\r\n\r\n\r\n return (\r\n
\r\n {(openCashNet) ? (\r\n \r\n \r\n Opening payment platform\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
\r\n \r\n Purchase Subscription\r\n \r\n \r\n BYU Student Subscription\r\n \r\n \r\n Biblical Hebrew is available through two subscription plans: $30 for six months or $50 for one year.\r\n Click on the select list below to subscribe for your subscription.\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\nfunction getFormInitialValues(props) {\r\n const {\r\n formField: {\r\n username,\r\n email,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n address2,\r\n city,\r\n zipcode,\r\n country,\r\n state,\r\n subscriptiontype,\r\n expirationdate,\r\n guid\r\n }\r\n } = myAccountFormModel;\r\n return {\r\n [username.name]: props.formField.username,\r\n [email.name]: props.formField.email,\r\n [password.name]: props.formField.password,\r\n [passwordRepeat.name]: props.formField.passwordRepeat,\r\n [firstName.name]: props.formField.firstName,\r\n [lastName.name]: props.formField.lastName,\r\n [address1.name]: props.formField.address1,\r\n [address2.name]: props.formField.address2,\r\n [city.name]: props.formField.city,\r\n [zipcode.name]: props.formField.zipcode,\r\n [country.name]: props.formField.country,\r\n [state.name]: props.formField.state,\r\n [subscriptiontype.name]: props.formField.subscriptiontype,\r\n [expirationdate.name]: props.formField.expirationdate,\r\n [guid.name]: props.formField.guid\r\n };\r\n}\r\n\r\n\r\n\r\nfunction SubscribeOption(props) {\r\n const isExpired = props.expired;\r\n if (isExpired) {\r\n\r\n props.setMessage('Your subscription has expired. To keep using it please repurchase subscription.');\r\n props.setAlertMessage(true);\r\n props.setSeverety(\"warning\");\r\n\r\n return (
\r\n Repurchase Subscription\r\n \r\n \r\n
);\r\n }\r\n return null;\r\n}\r\n\r\n\r\nexport function MyAccountForm(props) {\r\n const classes = useStyles();\r\n const currentValidationSchema = validationSchema[0];\r\n const [saving, setSaving] = React.useState(false);\r\n const [alertMessage, setAlertMessage] = React.useState(false);\r\n const [message, setMessage] = React.useState('');\r\n const [severety, setSeverety] = React.useState('');\r\n const [subscriptionExpired, setsubscriptionExpired] = React.useState('');\r\n const [states, setStates] = React.useState('false');\r\n\r\n const { formId, formField: {\r\n email,\r\n username,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n address2,\r\n city,\r\n state,\r\n country,\r\n zipcode,\r\n subscriptiontype,\r\n expirationdate,\r\n byucas\r\n } } = myAccountFormModel;\r\n\r\n useEffect(() => {\r\n try {\r\n UserService.isSubscriptionExpired(setsubscriptionExpired);\r\n }\r\n catch (e) {\r\n console.log(e)\r\n }\r\n }, []);\r\n const handleNext = () => {\r\n\r\n };\r\n\r\n const showMessage = (result) => {\r\n if (result) {\r\n setMessage(\"Your profile has been updated.\");\r\n setSeverety(\"success\")\r\n setAlertMessage(true);\r\n } else {\r\n setMessage(\"Oops, something went wrong. Please, try again.\");\r\n setSeverety(\"warning\")\r\n setAlertMessage(true);\r\n }\r\n setSaving(false);\r\n }\r\n\r\n const _handleSubmit = (values, actions) => {\r\n setSaving(true);\r\n UserService.updateAccount(values, showMessage);\r\n actions.setTouched({});\r\n actions.setSubmitting(false);\r\n\r\n }\r\n\r\n const handleChangeCountry = (value) => {\r\n if (value === 1) setStates(true);\r\n else setStates(false);\r\n };\r\n const handleChangeState = (value) => {\r\n };\r\n\r\n\r\n if (props.loading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n My account\r\n \r\n \r\n \r\n \r\n \r\n {({ isSubmitting }) => (\r\n \r\n
\r\n \r\n User information\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 Contact Information\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 Change password\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 Save\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\nexport class SubscribeStudent extends Component {\r\n static displayName = SubscribeStudent.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n authenticate: authenticationService.isAuthenticate(), //by default\r\n loading: true,\r\n formField: myAccountFormModel,\r\n currentUser: null,\r\n successfulCAS: false\r\n };\r\n this.getData = this.getData.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.state.authenticate)\r\n this.getData();\r\n }\r\n\r\n getData() {\r\n try {\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n var bearer = 'Bearer ' + loggedUser.token;\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/${loggedUser.guid}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n //console.log(res)\r\n if (res.result === \"0\") {\r\n const { currentUser } = res;\r\n //console.log(currentUser);\r\n const { formField } = this.state;\r\n formField['username'] = currentUser.userName;\r\n formField['email'] = currentUser.email;\r\n formField['firstName'] = currentUser.firstName;\r\n formField['lastName'] = currentUser.lastName;\r\n formField['address1'] = currentUser.address1;\r\n formField['address2'] = currentUser.address2;\r\n formField['city'] = currentUser.city;\r\n formField['zipcode'] = currentUser.postalCode;\r\n formField['password'] = '';\r\n formField['passwordRepeat'] = '';\r\n formField['state'] = currentUser.stateName;\r\n formField['country'] = currentUser.country;\r\n formField['subscriptiontype'] = res.subscriptiontype;\r\n formField['expirationdate'] = res.expirationdate;\r\n formField['guid'] = currentUser.guid;\r\n formField['casUser'] = true;\r\n this.setState({ formField }, () => {\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n console.log(error)\r\n });\r\n } catch (e) {\r\n this.setState({ loading: false });\r\n }\r\n }\r\n\r\n handleClose = (value) => {\r\n this.setState({ alertMessage: value });\r\n }\r\n\r\n\r\n\r\n render() {\r\n let casEndpoint = 'cas.byu.edu';\r\n let casOptions = {\r\n 'protocol': 'https'\r\n };\r\n let gateway = false;\r\n let successfulCAS = this.state;\r\n\r\n let casClient = new CasClient(casEndpoint, casOptions);\r\n casClient\r\n .auth(gateway)\r\n .then(successRes => {\r\n successfulCAS = true;\r\n\r\n })\r\n .catch(errorRes => {\r\n console.error(errorRes);\r\n })\r\n if (successfulCAS) {\r\n Connector.resetToken();\r\n if (!this.state.authenticate) {\r\n return \r\n } else {\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","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n textAlign: 'justify',\r\n color: theme.palette.text.secondary,\r\n },\r\n RadioGroup: {\r\n paddingRight: theme.spacing(2),\r\n height:190\r\n }, \r\n control: {\r\n padding: theme.spacing(0),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n marginTop: theme.spacing(-1),\r\n marginBottom: theme.spacing(-1), \r\n },\r\n button: {\r\n margin: theme.spacing(1, 1, 0, 7),\r\n },\r\n labelCorrectAnswer: {\r\n color: \"#239B56\", \r\n },\r\n labelWrongAnswer: {\r\n color: \"#E74C3C\", \r\n },\r\n labelHelper: { \r\n bottom:0\r\n }\r\n}));\r\n\r\nfunction CheckAnswer(props) {\r\n const classes = useStyles();\r\n const capitalizeFirstLetter = (string) => {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n } \r\n if (props.display === true && (props.wordsList)) {\r\n if(props.wordsList[props.field].toLocaleLowerCase() === \"\" && props.selectedOption === \"N/A\"){\r\n return (
N/A
);\r\n } \r\n else if(props.wordsList[props.field].toLocaleLowerCase() === \"\"){\r\n return (
N/A
);\r\n }\r\n else if (props.wordsList[props.field].toLocaleLowerCase() === props.selectedOption.toLocaleLowerCase()) {\r\n return (
{capitalizeFirstLetter(props.wordsList[props.field])}
);\r\n }\r\n else {\r\n return (
{capitalizeFirstLetter(props.wordsList[props.field])}
);\r\n }\r\n } else {\r\n return (\r\n null\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default function ItemQuiz({ wordsList, currentCard, cardNum, noresults }) {\r\n const classes = useStyles();\r\n const [display, setDisplay] = React.useState(false);\r\n\r\n const [error1, setError1] = React.useState(false);\r\n const [error2, setError2] = React.useState(false);\r\n const [error3, setError3] = React.useState(false);\r\n const [error4, setError4] = React.useState(false);\r\n const [error5, setError5] = React.useState(false);\r\n\r\n const [valueGroup1, setValueGroup1] = React.useState('');\r\n const [valueGroup2, setValueGroup2] = React.useState('');\r\n const [valueGroup3, setValueGroup3] = React.useState('');\r\n const [valueGroup4, setValueGroup4] = React.useState('');\r\n const [valueGroup5, setValueGroup5] = React.useState('');\r\n\r\n \r\n\r\n\r\n const handleRadioChange1 = (event) => {\r\n try {\r\n setValueGroup1(event.target.value);\r\n if (display === true) {\r\n if (event.target.value.toLocaleLowerCase() === wordsList[currentCard].dvForm.toLocaleLowerCase()) {\r\n setError1(false);\r\n } else {\r\n setError1(true);\r\n }\r\n }\r\n else {\r\n setError1(false);\r\n }\r\n } catch (e) { }\r\n };\r\n const handleRadioChange2 = (event) => {\r\n try {\r\n setValueGroup2(event.target.value);\r\n if (display === true) {\r\n if (event.target.value.toLocaleLowerCase() === wordsList[currentCard].tenseForm.toLocaleLowerCase()) {\r\n setError2(false);\r\n } else {\r\n setError2(true);\r\n }\r\n }\r\n else {\r\n setError2(false);\r\n }\r\n } catch (e) { }\r\n };\r\n const handleRadioChange3 = (event) => {\r\n try {\r\n setValueGroup3(event.target.value);\r\n if (display === true) {\r\n if (event.target.value.toLocaleLowerCase() === wordsList[currentCard].personForm.toLocaleLowerCase() || (event.target.value === 'N/A' && wordsList[currentCard].personForm.toLocaleLowerCase() === \"\")) {\r\n setError3(false);\r\n } else {\r\n setError3(true);\r\n }\r\n }\r\n else {\r\n setError3(false);\r\n }\r\n } catch(e) { }\r\n };\r\n const handleRadioChange4 = (event) => {\r\n try {\r\n setValueGroup4(event.target.value);\r\n if (display === true) {\r\n if (event.target.value.toLocaleLowerCase() === wordsList[currentCard].numberForm.toLocaleLowerCase() || (event.target.value === 'N/A' && wordsList[currentCard].numberForm.toLocaleLowerCase() === \"\")) {\r\n setError4(false);\r\n } else {\r\n setError4(true);\r\n }\r\n }\r\n else {\r\n setError4(false);\r\n }\r\n } catch (e) { }\r\n };\r\n const handleRadioChange5 = (event) => {\r\n try {\r\n setValueGroup5(event.target.value);\r\n if (display === true) {\r\n if (event.target.value.toLocaleLowerCase() === wordsList[currentCard].genderForm.toLocaleLowerCase() || (event.target.value === 'N/A' && wordsList[currentCard].genderForm.toLocaleLowerCase() === \"\")) {\r\n setError5(false);\r\n } else {\r\n setError5(true);\r\n }\r\n }\r\n else {\r\n setError5(false);\r\n }\r\n } catch (e) { }\r\n };\r\n\r\n useEffect(() => {\r\n \r\n setDisplay(false);\r\n \r\n setError1(false);\r\n setError2(false);\r\n setError3(false);\r\n setError4(false);\r\n setError5(false);\r\n\r\n setValueGroup1('');\r\n setValueGroup2('');\r\n setValueGroup3('');\r\n setValueGroup4('');\r\n setValueGroup5('');\r\n }, [cardNum]);\r\n\r\n \r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n setDisplay(true);\r\n try {\r\n if (noresults === false){\r\n //check the answers\r\n if (valueGroup1.toLocaleLowerCase() === wordsList[currentCard].dvForm.toLocaleLowerCase()) {\r\n setError1(false);\r\n } else {\r\n setError1(true);\r\n }\r\n if (valueGroup2.toLocaleLowerCase() === wordsList[currentCard].tenseForm.toLocaleLowerCase()) {\r\n setError2(false);\r\n } else {\r\n setError2(true);\r\n }\r\n if (valueGroup3.toLocaleLowerCase() === wordsList[currentCard].personForm.toLocaleLowerCase() || (valueGroup3 === 'N/A' && wordsList[currentCard].personForm.toLocaleLowerCase()===\"\")) {\r\n setError3(false);\r\n } else {\r\n setError3(true);\r\n }\r\n if (valueGroup4.toLocaleLowerCase() === wordsList[currentCard].numberForm.toLocaleLowerCase() || (valueGroup4 === 'N/A' && wordsList[currentCard].numberForm.toLocaleLowerCase()===\"\")) {\r\n setError4(false);\r\n } else {\r\n setError4(true);\r\n }\r\n if (valueGroup5.toLocaleLowerCase() === wordsList[currentCard].genderForm.toLocaleLowerCase() || (valueGroup5 === 'N/A' && wordsList[currentCard].genderForm.toLocaleLowerCase()===\"\")) {\r\n setError5(false);\r\n } else {\r\n setError5(true);\r\n }\r\n event.target.reset();\r\n }\r\n } catch (e) { }\r\n \r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n Derived Verb\r\n \r\n } label=\"Qal\" />\r\n } label=\"Niphal\" />\r\n } label=\"Piel\" />\r\n } label=\"Pual\" />\r\n } label=\"Hiphil\" />\r\n } label=\"Hophal\" />\r\n } label=\"Hithpael\" />\r\n \r\n \r\n \r\n \r\n Tense\r\n \r\n } label=\"Perfect\" />\r\n } label=\"Imperfect\" />\r\n } label=\"Imperative\" />\r\n } label=\"Participle\" />\r\n } label=\"Infinitive\" />\r\n \r\n \r\n \r\n \r\n Person\r\n \r\n } label=\"First\" />\r\n } label=\"Second\" />\r\n } label=\"Third\" />\r\n } label=\"N/A\" />\r\n \r\n \r\n \r\n \r\n Number\r\n \r\n } label=\"Singular\" />\r\n } label=\"Plural\" />\r\n } label=\"N/A\" />\r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n } label=\"Masculine\" />\r\n } label=\"Feminine\" />\r\n } label=\"Common\" />\r\n } label=\"N/A\" />\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// React component for the card (main component)\r\nexport class Quiz extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n }\r\n async componentDidMount() {\r\n //this.state.text = this.props.defaultText;\r\n\r\n }\r\n componentDidUpdate(prevProps) {\r\n // Typical usage (don't forget to compare props):\r\n if (this.props.wordsList[this.props.currentCard] !== prevProps.wordsList[prevProps.currentCard] && prevProps.wordsList[prevProps.currentCard] !== '') {\r\n\r\n } \r\n }\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Card } from './CardContainer';\r\nimport { Quiz } from './InlineQuiz';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { Redirect } from 'react-router-dom'\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Slider from '@material-ui/core/Slider';\r\n\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nimport { sessionTools } from '../_services/sessionTools';\r\nimport { config } from './Config.custom'\r\n\r\nimport \"./FlippingCardt.scss\"\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n RadioGroup: {\r\n fontSize: '50%',\r\n margin: theme.spacing(0),\r\n display: 'flex',\r\n flexDirection: 'row'\r\n }\r\n}));\r\n\r\n\r\nexport default function FormDialog({ onDialogClick }) {\r\n const [open, setOpen] = React.useState(true);\r\n //const [valuetext] = React.useState('');\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const [dvforms, setDvforms] = React.useState([]);\r\n const [tense, setTense] = React.useState([]);\r\n const [slideValue, setSliderValue] = React.useState(50);\r\n const handleClose = () => {\r\n setOpen(false);\r\n\r\n onDialogClick(dvforms, tense, slideValue);\r\n };\r\n const [state, setState] = React.useState({\r\n qal: false,\r\n niphal: false,\r\n piel: false,\r\n pual: false,\r\n hiphil: false,\r\n hophal: false,\r\n hithpael: false,\r\n perfect: false,\r\n imperfect: false,\r\n imperative: false,\r\n participle: false,\r\n infinitive: false,\r\n });\r\n const handleChangeVerb = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n if (event.target.checked) {\r\n let value = event.target.name;\r\n setDvforms(dvforms => [...dvforms, value]);\r\n }\r\n else {\r\n var toRemove = event.target.name;\r\n var index = dvforms.indexOf(toRemove);\r\n if (index > -1) { //Make sure item is present in the array, without if condition, -n indexes will be considered from the end of the array.\r\n dvforms.splice(index, 1);\r\n }\r\n }\r\n };\r\n const handleChangeTense = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n if (event.target.checked) {\r\n let value = event.target.name;\r\n setTense(tense => [...tense, value]);\r\n }\r\n else {\r\n var toRemove = event.target.name;\r\n var index = tense.indexOf(toRemove);\r\n if (index > -1) { //Make sure item is present in the array, without if condition, -n indexes will be considered from the end of the array.\r\n tense.splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n const handleChangeSlider = (event, newValue) => {\r\n setSliderValue(newValue);\r\n };\r\n\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n Derived Verbs\r\n \r\n }\r\n label=\"Qal\" />\r\n }\r\n label=\"Niphal\" />\r\n }\r\n label=\"Piel\" />\r\n }\r\n label=\"Pual\" />\r\n \r\n \r\n }\r\n label=\"Hiphil\" />\r\n }\r\n label=\"Hophal\" />\r\n }\r\n label=\"Hithpael\" />\r\n \r\n \r\n \r\n Tense\r\n \r\n }\r\n label=\"Perfect\" />\r\n }\r\n label=\"Imperfect\" />\r\n }\r\n label=\"Imperative\" />\r\n \r\n \r\n }\r\n label=\"Participle\" />\r\n }\r\n label=\"Infinitive\" />\r\n \r\n \r\n \r\n \r\n Maximum Sample Size\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 function RadioTypeVerb({ radioChangeType }) {\r\n \r\n const [typeVerb, setSelectedValue] = React.useState('hebrewVerb');\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n radioChangeType(event.target.value);\r\n };\r\n const style1 = { display: 'flex', flexDirection: 'row' };\r\n return (\r\n
\r\n \r\n \r\n } label=\"Inflected verb\" />\r\n } label=\"Verb Root\" />\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n//For old shuffle button\r\nexport function ShuffleButton({ shuffleChange }) { \r\n function handleClick(e) {\r\n e.preventDefault();\r\n shuffleChange(e);\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport class VerbParsing extends Component {\r\n static displayName = VerbParsing.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.cardChild = React.createRef()\r\n this.awsPathAudio = ''; ///we dont need it in this course\r\n this.state = {\r\n ready: false,\r\n typeVerb: 'inflected',\r\n vocabularywordsList: [],\r\n defaultText: '',\r\n defaultDefinition: '',\r\n groupName: null,\r\n audioUrl: null,\r\n fontSize: 64,\r\n textPropertyName: 'hebrewVerb',\r\n definitionPropertyName: 'explanationText',\r\n currentCard: 0,\r\n dvForm: 'qal',\r\n tense: 'perfect',\r\n maxSize: 50,\r\n cardNum: 1,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n noresults:false\r\n };\r\n this.getVerbLists = this.getVerbLists.bind(this);\r\n this.dialogActionClick = this.dialogActionClick.bind(this);\r\n this.typeVerbchange = this.typeVerbchange.bind(this);\r\n //this.onShuffleList = this.onShuffleList.bind(this);\r\n }\r\n async componentDidMount() {\r\n }\r\n\r\n getVerbLists(pverbForm, ptense, pmaxList) {\r\n try {\r\n if(pverbForm === ''){\r\n pverbForm = 'qal,niphal,piel,pual,hithpael,hophal,hiphil';\r\n }\r\n if(ptense === ''){\r\n ptense = 'perfect,imperfect,imperative,infinitive,participle';\r\n }\r\n this.setState({\r\n dvForm: pverbForm,\r\n tense: ptense,\r\n maxSize: pmaxList,\r\n }, () => { \r\n // console.log(this.state.dvForm)\r\n // console.log(this.state.tense)\r\n // console.log(this.state.maxSize)\r\n fetch(config.api_url + 'VerbParsing/GetQuery?dvform=' + this.state.dvForm + '&tense=' + this.state.tense + '&maxSize=' + this.state.maxSize)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result) {\r\n this.onSetCurrentCard(0);\r\n //console.log(result)\r\n if(result.length === 0){\r\n //console.log('no results')\r\n this.setState({\r\n noresults:true,\r\n ready:true,\r\n vocabularywordsList: result,\r\n defaultText: 'No available cards for current settings',\r\n defaultDefinition: ''\r\n });\r\n\r\n }\r\n else {\r\n this.setState({\r\n noresults:false,\r\n ready: true,\r\n vocabularywordsList: result,\r\n defaultText: result[0].hebrewVerb,\r\n defaultDefinition: result[0].explanationText\r\n });\r\n }\r\n }\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n }\r\n \r\n )\r\n });\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n \r\n dialogActionClick(pverbForm, ptense, maxList) {\r\n var verbForm; var tense;\r\n if (pverbForm.length > 0) {\r\n verbForm = pverbForm.join(\",\")\r\n } else {\r\n verbForm = \"\";\r\n }\r\n if (ptense.length > 0) {\r\n tense = ptense.join(\",\")\r\n } else {\r\n tense = \"\";\r\n }\r\n this.getVerbLists(verbForm, tense, maxList);\r\n }\r\n typeVerbchange(type) {\r\n if (this.state.noresults === false) {\r\n this.setState({\r\n textPropertyName: type\r\n });\r\n }\r\n }\r\n onSetCurrentCard(index) {\r\n this.setState({ currentCard: index });\r\n this.setState({ cardNum: this.state.cardNum + 1 });\r\n }\r\n onShuffleList() {\r\n this.getVerbLists(this.state.dvForm, this.state.tense, this.state.maxSize);\r\n } \r\n render() {\r\n if (!this.state.currentUser) {\r\n return \r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (!subscription) {\r\n return \r\n } else {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n Verb Parsing\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","import React, { Component } from 'react';\r\nimport { Connector } from '../_api/connector';\r\n\r\nexport class About extends Component {\r\n static displayName = About.name;\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n render() {\r\n const columnStyle = {\r\n columns: 2,\r\n 'marginLeft': '15px',\r\n };\r\n Connector.resetToken();\r\n return (\r\n
\r\n
\r\n

Biblical Hebrew Learning Tool

\r\n\r\n

The Biblical Hebrew Learning Tool is designed for beginning and intermediate students of Biblical Hebrew. The Learning Tool features five components:\r\n Vocabulary, Pronunciation, Verb Parsing, Grammar, and Translation.

\r\n\r\n

Vocabulary: This component presents the 1,000 most frequent words in the Hebrew Bible, listed according to their frequency. \r\n Users can select and study vocabulary words, shuffle the list, listen to the pronunciation (either a male or female voice), and show the translation.\r\n

\r\n\r\n

Pronunciation: This component allows users to practice pronouncing (1) the Hebrew alphabet; (2) the most frequent 1,000 Hebrew words; and (3) 27 selected literary units (about 500 verses) \r\n from the Hebrew Bible. Users see the letter, word, or phrase as they listen to a female or male voice (modern Israeli pronunciation) enunciate the selected study unit. \r\n

\r\n\r\n

Verb Parsing: This component comprises approximately 3,000 verbs, selected directly from the Hebrew Bible, \r\n for users to parse. Users may select any or all of the following forms—Qal, Niphal, Piel, Pual, Hiphil, Hophal, and Hithpael as well as any or all of \r\n the following tenses—perfect, imperfect, participle, infinitive, and imperative. The “Explanation” button provides verb parsing indicators, so that \r\n users can improve their parsing skills.\r\n

\r\n\r\n

Grammar: This component contains over 2,000 phrases derived from the Hebrew Bible\r\n that pertain to the following grammatical concepts:

\r\n\r\n
    \r\n
  • Construct forms with and without definite article
  • \r\n
  • Definite article with attached preposition
  • \r\n
  • Adjective and Noun Combinations
  • \r\n
  • The Object Marker
  • \r\n
  • Preposition Mem + Comparative Mem
  • \r\n
  • Demonstrative Adjectives and Pronouns
  • \r\n
  • Narrative Sequences
  • \r\n
  • Pronominal Suffixes on Prepositions
  • \r\n
  • Pronominal Suffixes on Nouns
  • \r\n
  • Object Suffixes on Verbs
  • \r\n
\r\n\r\n \r\n

The grammar phrases used in this component are sorted both by the concepts mentioned above as well as vocabulary frequency. Users may type their translation into a window and then click the “Translate” button to compare their response with the correct translation.

\r\n\r\n

Translation: This component provides translation exercises from 28 different literary units (about 500 verses), \r\n including examples from historical narrative, poetry, or legal verses found in the Hebrew Bible:

\r\n\r\n
    \r\n
  • The Creation (Gen. 1:1-31)
  • \r\n
  • Adam and Eve (Gen. 3:1-24)
  • \r\n
  • Noah and the Ark (Gen. 6:1-22)
  • \r\n
  • Sarah Bears Isaac (Gen. 21:1-8)
  • \r\n
  • Jacob Meets Rachel at the Well (Gen. 29:1-14)
  • \r\n
  • Joseph of Egypt (Gen. 37:1-36)
  • \r\n
  • Moses and the Burning Bush (Exod. 3:1-22)
  • \r\n
  • The Passover (Exod. 12:1-28)
  • \r\n
  • Manna, Bread from Heaven (Exod. 16:11-35)
  • \r\n
  • Moses Smites the Rock (Exod. 17:1-7)
  • \r\n
  • The Ten Commandments (Exod. 20:1-17)
  • \r\n
  • Joshua Sends Spies to Jericho (Josh. 2:1-24)
  • \r\n
  • Deborah, the Prophetess (Judges 4:1-24)
  • \r\n
  • Gideon and His Army (Judges 7:1-23)
  • \r\n
  • Samson and His Wife (Judges 14:1-20)
  • \r\n
  • Naomi and Ruth (Ruth 1:1-19)
  • \r\n
  • Hannah and Samuel (1 Sam. 1:1-23)
  • \r\n
  • The Lord Calls Samuel (1 Sam. 3:1-10)
  • \r\n
  • David and Goliath (1 Sam. 17:32-54)
  • \r\n
  • Elijah and the Chariot of Fire (2 Kings 2:1-11)
  • \r\n
  • Elisha Multiplies the Widow's Oil (2 Kings 4:1-17)
  • \r\n
  • Esther Is Chosen Queen (Esther 2:1-17)
  • \r\n
  • The Lord Is My Shepherd (Ps. 23:1-6)
  • \r\n
  • Who Shall Ascend into the Lord's Mountain (Ps. 24:1-10)
  • \r\n
  • The Lord Sitting upon the Throne (Isa. 6:1-8)
  • \r\n
  • Hezekiah's Life Is Lengthened (Isa. 38:1-8)
  • \r\n
  • Hosea and His Family (Hosea 1:1-9)
  • \r\n
  • Jonah and the Fish (Jonah 1:1-4, 10-17)
  • \r\n
\r\n\r\n \r\n

Users may type their translation into a window and then click the “Translate” button to compare their own translation with either the King James Version or the New International Version translations. \r\n

\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { authenticationService } from '../_services/authenticationService'\r\nimport { UserService } from '../_services/userService'\r\nimport myAccountFormModel from './myAccount/formModel';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport LockOutlinedIcon from \"@material-ui/icons/LockOutlined\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { useFormik } from \"formik\";\r\nimport * as yup from \"yup\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\n\r\n\r\nconst validationSchema = yup.object({\r\n email: yup.string(\"Enter your Email\").required(\"Email is required\")\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(400 + theme.spacing(2) * 2)]: {\r\n width: 400,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n },\r\n },\r\n Paper: {\r\n marginTop: theme.spacing(8),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n //marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(3) * 2)]: {\r\n marginTop: theme.spacing(6),\r\n marginBottom: theme.spacing(6),\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: \"100%\", // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport function ResetPasswordForm(props) {\r\n const classes = useStyles();\r\n const [isSubmitting, setSubmitting] = React.useState(false);\r\n const [openValidation, setOpenValidation] = React.useState(false);\r\n const [alertMessage, setAlertMessage] = React.useState(false);\r\n //const [message, setMessage] = React.useState('');\r\n //const [severity, setSeverety] = React.useState('');\r\n const formik = useFormik({\r\n initialValues: {\r\n email: \"\"\r\n },\r\n validationSchema: validationSchema,\r\n\r\n onSubmit: (values) => {\r\n setSubmitting(true);\r\n UserService.ResetPassword(\r\n values.email,\r\n setSubmitting,\r\n setOpenValidation,\r\n setAlertMessage\r\n );\r\n //showMessage(setAlertMessage)\r\n },\r\n });\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n setOpenValidation(false);\r\n };\r\n\r\n const showMessage = (result) => {\r\n if (!result) {\r\n //setMessage(\"Your password has been reset.\");\r\n //setSeverety(\"success\")\r\n setAlertMessage(true);\r\n } else {\r\n //setMessage(\"Oops, something went wrong. Please, try again.\");\r\n //setSeverety(\"warning\")\r\n setAlertMessage(true);\r\n }\r\n //setSaving(false);\r\n }\r\n\r\n const _handleSubmit = (values, actions) => {\r\n //setSaving(true);\r\n UserService.ResetPassword(values, showMessage);\r\n actions.setTouched({});\r\n actions.setSubmitting(false);\r\n\r\n }\r\n\r\n if (props.loading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Reset Password\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Email Reset Password\r\n \r\n\r\n \r\n \r\n {alertMessage}\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 class ResetPassword extends Component {\r\n //static displayName = MyAccount.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n authenticate: authenticationService.isAuthenticate(), //by default\r\n loading: true,\r\n formField: myAccountFormModel,\r\n };\r\n this.getData = this.getData.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.state.authenticate)\r\n this.getData();\r\n }\r\n\r\n\r\n handleClose = (value) => {\r\n this.setState({ alertMessage: value });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Card } from './CardContainer';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport { config } from './Config.custom'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Redirect } from 'react-router-dom'\r\nimport { sessionTools } from '../_services/sessionTools'\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport default function SelectList(props) {\r\n const classes = useStyles();\r\n const [typeList, setTypeList] = React.useState(1);\r\n const [levelList, setLevelList] = React.useState(1);\r\n\r\n const handleChangeType = (event) => {\r\n setTypeList(event.target.value);\r\n\r\n props.handleChangeTypeList(event.target.value, levelList);\r\n };\r\n const handleChangeLevel = (event) => {\r\n setLevelList(event.target.value);\r\n\r\n props.handleChangeLevelList(typeList, event.target.value);\r\n };\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n Study list\r\n \r\n {\r\n props.grammarTypeSetList.map(data =>\r\n {data.title})\r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n Words list\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\n//For old shuffle button\r\n/* export function ShuffleButton({ shuffleChange }) {\r\n function handleClick(e) {\r\n e.preventDefault();\r\n shuffleChange(e);\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n} */\r\n\r\n\r\nexport class Grammar extends Component {\r\n static displayName = Grammar.name;\r\n constructor(props) {\r\n super(props);\r\n this.cardChild = React.createRef()\r\n this.awsPathAudio = '';\r\n this.state = {\r\n grammarSetId: '',\r\n grammarTypeSetList: [],\r\n grammarLevelSetId: '',\r\n grammarLevelSetList: [],\r\n\r\n ready: false,\r\n selectedLeveId: '',\r\n selectedTypeId: '',\r\n currentCard: 0,\r\n cardwordsList: [],\r\n audioUrl: this.awsPathAudio,\r\n defaultText: null,\r\n defaultDefinition: null,\r\n groupName: '',\r\n fontSize: 48,\r\n flipCard: false,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n textPropertyName: 'hebrewPhrase',\r\n definitionPropertyName: 'translation',\r\n\r\n myTranslation: '',\r\n translationError: false\r\n };\r\n //get data methods \r\n this.getGrammarTypeSets = this.getGrammarTypeSets.bind(this);\r\n this.getGrammarLevelSets = this.getGrammarLevelSets.bind(this);\r\n this.getGrammarPhrases = this.getGrammarPhrases.bind(this);\r\n\r\n\r\n //Handle events\r\n this.handleChangeTypeList = this.handleChangeTypeList.bind(this);\r\n this.handleChangeLevelList = this.handleChangeLevelList.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.getGrammarTypeSets();\r\n this.getGrammarLevelSets();\r\n this.getGrammarPhrases(1, 1);\r\n }\r\n\r\n hideError() {\r\n this.setState({ showError: !this.state.showError });\r\n }\r\n getGrammarTypeSets() {\r\n try {\r\n fetch(config.api_url + 'GrammarTypeSets')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n ready: true,\r\n grammarTypeSetList: result\r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getGrammarLevelSets() {\r\n try {\r\n fetch(config.api_url + 'GrammarTypeSets/GetLevelSet')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n ready: true,\r\n grammarLevelSetList: result\r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getGrammarPhrases(typeId, levelId, shuffle) {\r\n try {\r\n var _typeid = typeId;\r\n var _leveid = levelId;\r\n\r\n this.setState({\r\n selectedLeveId: _leveid,\r\n selectedTypeId: _typeid\r\n }, () => {\r\n if (!shuffle) shuffle = false;\r\n fetch(config.api_url + 'GrammarTypeSets/GetPhrases?typeId=' + _typeid + '&levelId=' + _leveid + '&shuffle=' + shuffle)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n //console.log (result);\r\n this.setState({\r\n ready: true,\r\n cardwordsList: result,\r\n defaultText: result[0].hebrewPhrase,\r\n defaultDefinition: result[0].translation,\r\n audioUrl: null, \r\n }, () => {\r\n\r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n })\r\n\r\n\r\n\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n handleChangeTypeList(type, level) {\r\n //console.log('type:' + type + ' level: ' + level)\r\n this.getGrammarPhrases(type, level, false)\r\n }\r\n handleChangeLevelList(type, level) {\r\n //console.log('type:' + type + ' level: ' + level)\r\n this.getGrammarPhrases(type, level, false)\r\n }\r\n\r\n \r\n/* onShuffleList() {\r\n this.getGrammarPhrases(this.state.selectedTypeId\r\n , this.state.selectedLeveId\r\n , true)\r\n }\r\n */ \r\n onSetCurrentCard(index) {\r\n this.setState({ currentCard: index, helperText: '' });\r\n }\r\n render() {\r\n if (!this.state.currentUser) {\r\n return \r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (!subscription) {\r\n return \r\n }\r\n else {\r\n return (\r\n
\r\n \r\n Grammar\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","import React, { Component } from 'react';\r\nimport { Card } from './CardContainer';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { config } from './Config.custom'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { sessionTools } from '../_services/sessionTools';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n },\r\n RadioGroup: {\r\n fontSize: '50%',\r\n margin: theme.spacing(0),\r\n display: 'flex',\r\n flexDirection: 'row'\r\n }\r\n}));\r\n\r\nexport default function SelectList(props) {\r\n const classes = useStyles();\r\n const [biblicalList, setBiblicalList] = React.useState(1);\r\n\r\n const handleBiblicalList = (event) => {\r\n setBiblicalList(event.target.value);\r\n props.handleBiblicalList(event.target.value);\r\n };\r\n return ( \r\n
\r\n
\r\n \r\n Select Study list\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\nexport function RadioVersion(props) {\r\n const [version, setVersion] = React.useState('kjv');\r\n const handleChange = (event) => {\r\n setVersion(event.target.value);\r\n props.handleChangeVersion(event);\r\n };\r\n const style1 = { display: 'flex', flexDirection: 'row' };\r\n return (\r\n
\r\n \r\n Translation version\r\n \r\n } label=\"King James\" />\r\n } label=\"NIV\" />\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport class Translation extends Component {\r\n static displayName = Translation.name;\r\n constructor(props) {\r\n super(props);\r\n this.cardChild = React.createRef()\r\n this.awsPathAudio = ''; ///we dont need it in this course\r\n this.state = {\r\n currentCard:0,\r\n ready: false,\r\n studylist: 1,\r\n biblicalLiteraryUnits: [],\r\n vocabularywordsList: [],\r\n defaultText: '',\r\n defaultDefinition: '',\r\n groupName: null,\r\n audioUrl: null,\r\n fontSize: 32,\r\n currentUser: sessionTools.getCookie('btu_'),\r\n textPropertyName: 'text',\r\n definitionPropertyName: 'kjv'\r\n };\r\n this.getBiblicalLiteraryUnits = this.getBiblicalLiteraryUnits.bind(this);\r\n this.getBiblicalLiteraryUnitsVerses = this.getBiblicalLiteraryUnitsVerses.bind(this);\r\n\r\n this.handleChangeStudyList = this.handleChangeStudyList.bind(this);\r\n this.handleChangeVersion = this.handleChangeVersion.bind(this);\r\n }\r\n async componentDidMount() {\r\n this.getBiblicalLiteraryUnits();\r\n }\r\n\r\n getBiblicalLiteraryUnits() {\r\n try {\r\n fetch(config.api_url + 'TranslationSets/')\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n ready: true,\r\n biblicalLiteraryUnits: result\r\n }, () => {\r\n this.getBiblicalLiteraryUnitsVerses(result[0].id);\r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n getBiblicalLiteraryUnitsVerses(setId) {\r\n try {\r\n fetch(config.api_url + 'TranslationVerses/' + setId)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n ready: true,\r\n vocabularywordsList: result, \r\n studylist: setId,\r\n defaultText: result[0].text,\r\n defaultDefinition: result[0].kjv \r\n }, () => {\r\n \r\n });\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n console.log(error);\r\n this.setState({\r\n ready: false,\r\n error\r\n });\r\n }\r\n )\r\n } catch (e) {\r\n console.info(e);\r\n }\r\n }\r\n\r\n handleChangeVersion = (event) => { \r\n this.setState({\r\n definitionPropertyName: event.target.value \r\n }, () =>{\r\n \r\n } );\r\n }\r\n\r\n handleChangeStudyList = (value) => {\r\n this.getBiblicalLiteraryUnitsVerses(value);\r\n this.onSetCurrentCard(0); \r\n };\r\n onSetCurrentCard(index) {\r\n this.setState({ currentCard: index, helperText:'' });\r\n }\r\n render() {\r\n if (!this.state.currentUser) {\r\n return \r\n }\r\n else {\r\n var subscription = this.state.currentUser.biblicalSubscription\r\n if (!subscription) {\r\n return \r\n } else {\r\n return (\r\n
\r\n \r\n Translation\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","import React, { Component } from 'react';\r\n\r\n\r\n\r\nexport class CashNetTransfer extends Component {\r\n static displayName = CashNetTransfer.name;\r\n constructor() {\r\n super();\r\n this.state = {\r\n fname: '',\r\n lname: '',\r\n email: '',\r\n };\r\n }\r\n\r\n onChange = (e) => {\r\n /*\r\n Because we named the inputs to match their\r\n corresponding values in state, it's\r\n super easy to update the state\r\n */\r\n this.setState({ [e.target.name]: e.target.value });\r\n }\r\n\r\n render() {\r\n //const { fname, lname, email } = this.state;\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 \r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Link from '@material-ui/core/Link';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Container from '@material-ui/core/Container';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { useFormik } from 'formik';\r\nimport * as yup from 'yup';\r\nimport { Redirect } from 'react-router-dom'\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport SignUp from './SignUp/SignUp';\r\nimport { sessionTools } from '../_services/sessionTools';\r\nimport { Connector } from '../_api/connector';\r\n\r\n\r\nimport { authenticationService } from '../_services/authenticationService';\r\nimport { staticList } from '../_services/staticList';\r\n\r\n\r\nconst validationSchema = yup.object({\r\n username: yup\r\n .string('Enter your Username')\r\n .required('Username is required'),\r\n password: yup\r\n .string('Enter your password')\r\n .min(6, 'Password should be of minimum 6 characters length')\r\n .required('Password is required'),\r\n});\r\nconst useStyles = makeStyles((theme) => ({\r\n layout: {\r\n width: 'auto',\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(400 + theme.spacing(2) * 2)]: {\r\n width: 400,\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n },\r\n },\r\n Paper: {\r\n marginTop: theme.spacing(8),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n //marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(3) * 2)]: {\r\n marginTop: theme.spacing(6),\r\n marginBottom: theme.spacing(6),\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff',\r\n }\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport default function SignInForm() {\r\n const classes = useStyles();\r\n const [isSubmitting, setSubmitting] = React.useState(false);\r\n const [openValidation, setOpenValidation] = React.useState(false);\r\n const [alertMessage, setAlertMessage] = React.useState(''); \r\n const [logginSuccessfull, setSucess] = React.useState(false);\r\n const [homepage] = React.useState(false);\r\n const formik = useFormik({\r\n initialValues: {\r\n username: '',\r\n password: '',\r\n },\r\n validationSchema: validationSchema,\r\n\r\n onSubmit: (values) => {\r\n setSubmitting(true);\r\n authenticationService.login(values.username\r\n , values.password\r\n , setSubmitting\r\n , setOpenValidation\r\n , setAlertMessage\r\n , setLogginIn);\r\n },\r\n });\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenValidation(false);\r\n };\r\n\r\n const setLogginIn = (value) => {\r\n if (value === true) {\r\n staticList.getCountry();\r\n staticList.getStates();\r\n if (sessionTools.getCookie('btu_')['biblicalSubscription']) {\r\n localStorage.setItem('bhlt', true);\r\n //staticList.getVocabulary_VocabularySets();\r\n //staticList.getVocabulary_VocabularyStudyList();\r\n //staticList.getBiblical_AlphabetSets();\r\n //staticList.getBiblical_UnitSets();\r\n //staticList.getVocabulary_VocabularyStudyList();\r\n }\r\n setSucess(true);\r\n } \r\n };\r\n\r\n \r\n\r\n Connector.resetToken(false);\r\n var checkUserState = localStorage.getItem('bhlt');\r\n var currentUser = sessionTools.getCookie('btu_')\r\n if (checkUserState && !currentUser) {\r\n authenticationService.logout();\r\n window.location.reload();\r\n }\r\n\r\n if (logginSuccessfull) {\r\n return \r\n }\r\n else {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Sign in\r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Remember me\"\r\n />\r\n \r\n Sign In\r\n \r\n \r\n \r\n Forgot password?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {alertMessage}\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","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport SignInForm from './sign-in';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\n\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n}))(MuiDialogContent);\r\n\r\n\r\nexport default function SignInButton() {\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n Sign in\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n","import React, { Component,useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport Divider from '@material-ui/core/Divider';\r\nimport SignInButton from './SignInButton';\r\nimport { sessionTools } from '../_services/sessionTools';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n margin: 'auto',\r\n maxWidth: '100%',\r\n backgroundColor: '#cee3f5',\r\n borderColor: '#cee3f5',\r\n color: '#002e5d',\r\n textAlign: \"center\"\r\n\r\n },\r\n image: {\r\n width: 128,\r\n height: 128,\r\n },\r\n img: {\r\n margin: 'auto',\r\n display: 'block',\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n },\r\n}));\r\n\r\nexport default function CenterMessage(props) {\r\n const classes = useStyles();\r\n let bodyMessage;\r\n let button=props.subtext;\r\n if (props.success) {\r\n button = ;\r\n bodyMessage = {props.transactionNumber} ;\r\n } else {\r\n button = ;\r\n //bodyMessage = props.subtext;\r\n }\r\n useEffect(() => {\r\n \r\n }, []);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.message}\r\n \r\n \r\n {props.subtext} {bodyMessage}\r\n \r\n \r\n \r\n \r\n \r\n {button}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport class PaymentResponse extends Component {\r\n static displayName = PaymentResponse.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n success: false,\r\n transactionNumber: this.props.match.params.id,\r\n message: '',\r\n subtext: ''\r\n };\r\n }\r\n componentDidMount() {\r\n //const params = new URLSearchParams(this.props.location.search);\r\n //var data = params.get('data');\r\n //var uri_dec = decodeURIComponent(data);\r\n //if (uri_dec) {\r\n // //const _json = JSON.parse(uri_dec);\r\n //} \r\n if (this.state.transactionNumber === '0') {\r\n this.setState({\r\n message: 'Something went wrong.',\r\n success: false,\r\n subtext: 'Please, go back to checkout so you can try again.'\r\n }); \r\n } else {\r\n sessionTools.removeCookie('chekoutForm')\r\n this.setState({\r\n message: 'Your transaction was completed successfully.', success: true,\r\n subtext: 'You will receive a confirmation email from our credit card processing company shortly. Your transaction number is '\r\n });\r\n } \r\n }\r\n\r\n render() {\r\n return (\r\n );\r\n }\r\n}\r\n","import React, { Component, useEffect } from 'react';\r\nimport { authenticationService } from '../_services/authenticationService'\r\nimport { UserService } from '../_services/userService'\r\nimport { config } from '../components/Config.custom'\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Connector } from '../_api/connector';\r\n\r\nimport { Formik, Form, useFormikContext } from 'formik';\r\nimport myAccountFormModel from './myAccount/formModel';\r\nimport validationSchema from '../components/myAccount/validationSchema';\r\n//import formInitialValues from '../components/SignUp/FormModel/formInitialValues';\r\n\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport InputField from '../components/SignUp/FormModel/inputField'\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ValidationMessage from './ValidationMessage'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport SelectFieldAPI from '../components/SignUp/FormModel/SelectFieldAPI';\r\nimport SelectField from '../components/SignUp/FormModel/SelectField';\r\nimport { Link } from 'react-router-dom';\r\nimport { sessionTools } from '../_services/sessionTools';\r\n\r\nimport CashNetForm from './CashNetForm'\r\nimport { creativeworksStore } from '../_services/creativeworksStore';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff',\r\n },\r\n paper: {\r\n //marginTop: theme.spacing(3),\r\n //marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(400 + theme.spacing(3) * 2)]: {\r\n //marginTop: theme.spacing(6),\r\n //marginBottom: theme.spacing(6),\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n buttons: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1),\r\n },\r\n divider: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n },\r\n}));\r\n\r\n\r\n\r\nexport function SubscriptionDialog() {\r\n const [open, setOpen] = React.useState(false);\r\n const classes = useStyles();\r\n const [items, setItems] = React.useState([]);\r\n const { formField: { subscription } } = myAccountFormModel;\r\n const [openCashNet, setOpenCashNet] = React.useState(false);\r\n const { values: formValues } = useFormikContext();\r\n //const [glCode, setGLCode] = React.useState('');\r\n\r\n const [cashNetConfig, setCashNetConfig] = React.useState([]);\r\n //const [glcode, setGLCode] = React.useState('');\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n //creativeworksStore.getGLCode(formValues.country, formValues.state, casUser, setGLCode);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleSubscribe = () => {\r\n setOpenCashNet(true)\r\n };\r\n\r\n const getSubscriptionData = () => {\r\n var bearer = 'Bearer ' + sessionTools.getCookie('bt_');\r\n fetch(config.api_cwo + 'Subscription?itemName=BiblicalSubscription', {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json'\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result.items) {\r\n var items = JSON.parse(result.items);\r\n sessionTools.setCookie(\"Subscription\", result.items);\r\n //var resultArray = items.map(function (elm) {\r\n var resultArray = items.filter(function (user) {\r\n return user.Student === 0;\r\n }).map(function (elm) {\r\n return { value: elm['Months'], label: elm['Name'] + ' - $' + elm['Price'] };\r\n });\r\n setItems(resultArray);\r\n }\r\n },\r\n (error) => {\r\n console.log(error)\r\n return [];\r\n }\r\n ).catch(error => { console.log(error); return []; });\r\n }\r\n\r\n useEffect(() => {\r\n getSubscriptionData();\r\n creativeworksStore.getCashNetConfiguration(false, setCashNetConfig, setOpenCashNet)\r\n }, []);\r\n const handleChangeSubscription = () => { }\r\n\r\n\r\n return (\r\n
\r\n {(openCashNet) ? (\r\n \r\n \r\n Opening payment platform\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n
\r\n \r\n Purchase Subscription\r\n \r\n \r\n Subscribe\r\n \r\n \r\n Biblical Hebrew is available through two subscription plans: $30 for six months or $50 for one year.\r\n Click on the select list below to subscribe for your subscription.\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\nfunction getFormInitialValues(props) {\r\n const {\r\n formField: {\r\n username,\r\n email,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n address2,\r\n city,\r\n zipcode,\r\n country,\r\n state,\r\n subscriptiontype,\r\n expirationdate,\r\n guid\r\n }\r\n } = myAccountFormModel;\r\n return {\r\n [username.name]: props.formField.username,\r\n [email.name]: props.formField.email,\r\n [password.name]: props.formField.password,\r\n [passwordRepeat.name]: props.formField.passwordRepeat,\r\n [firstName.name]: props.formField.firstName,\r\n [lastName.name]: props.formField.lastName,\r\n [address1.name]: props.formField.address1,\r\n [address2.name]: props.formField.address2,\r\n [city.name]: props.formField.city,\r\n [zipcode.name]: props.formField.zipcode,\r\n [country.name]: props.formField.country,\r\n [state.name]: props.formField.state,\r\n [subscriptiontype.name]: props.formField.subscriptiontype,\r\n [expirationdate.name]: props.formField.expirationdate,\r\n [guid.name]: props.formField.guid\r\n };\r\n}\r\n\r\n\r\n\r\nfunction SubscribeOption(props) { \r\n const isExpired = props.expired;\r\n if (isExpired) {\r\n props.setMessage('Your subscription has expired. To keep using it please repurchase subscription.');\r\n props.setAlertMessage(true);\r\n props.setSeverety(\"warning\");\r\n\r\n return (
\r\n Repurchase Subscription\r\n \r\n \r\n
);\r\n }\r\n return null;\r\n}\r\n\r\n\r\nexport function MyAccountForm(props) {\r\n const classes = useStyles();\r\n const currentValidationSchema = validationSchema[0];\r\n const [saving, setSaving] = React.useState(false);\r\n const [alertMessage, setAlertMessage] = React.useState(false);\r\n const [message, setMessage] = React.useState('');\r\n const [severety, setSeverety] = React.useState('');\r\n const [subscriptionExpired, setsubscriptionExpired] = React.useState('');\r\n const [states, setStates] = React.useState('false');\r\n\r\n const { formId, formField: {\r\n email,\r\n username,\r\n password,\r\n passwordRepeat,\r\n firstName,\r\n lastName,\r\n address1,\r\n address2,\r\n city,\r\n state,\r\n country,\r\n zipcode,\r\n subscriptiontype,\r\n expirationdate\r\n } } = myAccountFormModel;\r\n\r\n useEffect(() => {\r\n try {\r\n UserService.isSubscriptionExpired(setsubscriptionExpired);\r\n }\r\n catch (e) {\r\n console.log(e)\r\n }\r\n }, []);\r\n const handleNext = () => {\r\n\r\n };\r\n\r\n const showMessage = (result) => {\r\n if (result) {\r\n setMessage(\"Your profile has been updated.\");\r\n setSeverety(\"success\")\r\n setAlertMessage(true);\r\n } else {\r\n setMessage(\"Oops, something went wrong. Please, try again.\");\r\n setSeverety(\"warning\")\r\n setAlertMessage(true);\r\n }\r\n setSaving(false);\r\n }\r\n\r\n const _handleSubmit = (values, actions) => {\r\n setSaving(true);\r\n UserService.updateAccount(values, showMessage);\r\n actions.setTouched({});\r\n actions.setSubmitting(false);\r\n\r\n }\r\n\r\n const handleChangeCountry = (value) => {\r\n if (value === 1) setStates(true);\r\n else setStates(false);\r\n };\r\n const handleChangeState = (value) => {\r\n };\r\n\r\n\r\n if (props.loading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n My account\r\n \r\n \r\n \r\n \r\n \r\n {({ isSubmitting }) => (\r\n \r\n
\r\n \r\n User information\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 Contact Information\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 Change password\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 Save\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\nexport class MyAccount extends Component {\r\n static displayName = MyAccount.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n authenticate: authenticationService.isAuthenticate(), //by default\r\n loading: true,\r\n formField: myAccountFormModel,\r\n };\r\n this.getData = this.getData.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.state.authenticate)\r\n this.getData();\r\n\r\n var bearer = \"Bearer \" + sessionTools.getCookie(\"bt_\");\r\n fetch(config.api_cwo + \"Subscription?itemName=BiblicalSubscription\", {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: bearer,\r\n Accept: \"application/json\",\r\n },\r\n })\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n if (result.items) {\r\n\r\n sessionTools.setCookie(\"Subscription\", result.items);\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n return [];\r\n }\r\n )\r\n .catch((error) => {\r\n console.log(error);\r\n return [];\r\n });\r\n }\r\n getData() {\r\n try {\r\n var loggedUser = sessionTools.getCookie('btu_');\r\n var bearer = 'Bearer ' + loggedUser.token;\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': bearer,\r\n 'Accept': 'application/json, text/plain',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n };\r\n fetch(config.api_cwo + `User/${loggedUser.guid}`, requestOptions)\r\n .then(res => (res.json()))\r\n .then(res => {\r\n //console.log(res)\r\n if (res.result === \"0\") {\r\n const { currentUser } = res;\r\n //console.log(currentUser);\r\n const { formField } = this.state;\r\n formField['username'] = currentUser.userName;\r\n formField['email'] = currentUser.email;\r\n formField['firstName'] = currentUser.firstName;\r\n formField['lastName'] = currentUser.lastName;\r\n formField['address1'] = currentUser.address1;\r\n formField['address2'] = currentUser.address2;\r\n formField['city'] = currentUser.city;\r\n formField['zipcode'] = currentUser.postalCode;\r\n formField['password'] = '';\r\n formField['passwordRepeat'] = '';\r\n formField['state'] = currentUser.stateName;\r\n formField['country'] = currentUser.country;\r\n formField['subscriptiontype'] = res.subscriptiontype;\r\n formField['expirationdate'] = res.expirationdate;\r\n formField['guid'] = currentUser.guid;\r\n this.setState({ formField }, () => {\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n ///if status code 401. Need help here\r\n console.log(error)\r\n });\r\n } catch (e) {\r\n this.setState({ loading: false });\r\n }\r\n }\r\n\r\n handleClose = (value) => {\r\n this.setState({ alertMessage: value });\r\n }\r\n\r\n\r\n\r\n render() {\r\n Connector.resetToken();\r\n if (!this.state.authenticate) {\r\n return \r\n } else {\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","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { Components } from './components/Components';\r\nimport { Vocabulary } from './components/Vocabulary';\r\nimport { Pronunciation } from './components/Pronunciation';\r\nimport { CASSignUp } from './components/CASSignUp';\r\nimport { SubscribeStudent } from './components/SubscribeStudent';\r\nimport { VerbParsing } from './components/VerbParsing';\r\nimport { About } from './components/About';\r\nimport { ResetPasswordForm } from './components/ResetPassword';\r\nimport './custom.css'\r\nimport { Grammar } from './components/Grammar';\r\nimport { Translation } from './components/Translation';\r\nimport { CashNetTransfer } from './components/CashNetTransfer';\r\nimport { PaymentResponse } from './components/PaymentResponse';\r\nimport SignInForm from './components/sign-in';\r\nimport { Link } from 'react-router-dom';\r\n// Add these lines to the top of the file\r\nimport { authenticationService } from './_services/authenticationService'\r\nimport { MyAccount } from './components/MyAccount';\r\n\r\nimport CashNetForm from './components/CashNetForm';\r\n\r\n\r\n\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentUser: null,\r\n username: '',\r\n authenticate: false\r\n };\r\n this.handleLogoutClick = this.handleLogoutClick.bind(this);\r\n }\r\n componentDidMount() {\r\n var authenticate = authenticationService.isAuthenticate();\r\n //console.log(authenticate);\r\n \r\n authenticationService.currentUser.subscribe(x => {\r\n if (typeof x !== 'undefined' & x !== null & JSON.stringify(x) !== '{}') {\r\n if (x.username) {\r\n this.setState({ currentUser: x, username: x.username })\r\n } else {\r\n this.setState({ currentUser: JSON.parse(x), username: JSON.parse(x).username })\r\n }\r\n }\r\n });\r\n\r\n if (!authenticate) {\r\n this.setState({ currentUser: null, username: '' })\r\n \r\n }\r\n \r\n }\r\n componentDidUpdate(prevProps) {\r\n \r\n }\r\n handleLogoutClick() {\r\n this.setState({username:''})\r\n authenticationService.logout();\r\n this.forceUpdate();\r\n }\r\n\r\n render() {\r\n const { currentUser } = this.state;\r\n return (\r\n
\r\n \r\n Biblical Hebrew Learning Tool\r\n \r\n {!currentUser &&\r\n Sign In \r\n }\r\n {!currentUser &&\r\n \r\n }\r\n {currentUser &&\r\n Sign Out\r\n }\r\n {currentUser &&\r\n \r\n }\r\n {currentUser &&\r\n {this.state.username}\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 Contact\r\n

\r\n Creative Works Office\r\n
\r\n 3760 HBLL
\r\n Brigham Young University
\r\n Provo, Utah 84602
\r\n catalog@byu.edu

\r\n \r\n Creative Works\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","// 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","export const ADD_ARTICLE = \"ADD_ARTICLE\";","import { ADD_ARTICLE } from \"../_constants/action-types\";\r\n\r\nconst initialState = {\r\n articles: []\r\n };\r\n \r\n function rootReducer(state = initialState, action) {\r\n if (action.type === ADD_ARTICLE) {\r\n localStorage.setItem('articles', JSON.stringify(state.articles))\r\n return Object.assign({}, state, {\r\n articles: state.articles.concat(action.payload) \r\n });\r\n }\r\n return state;\r\n };\r\n \r\n export default rootReducer;","import { createStore } from \"redux\";\r\nimport rootReducer from \"../_reducers/index\";\r\n\r\nconst store = createStore(rootReducer);\r\n\r\nexport default store;","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { CookiesProvider } from 'react-cookie'\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\n\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./_store/index\";\r\n\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}