{"version":3,"sources":["SiteConfig.js","i18n.js","components/Helpers.js","pages/Cookies.js","components/spinners/ButtonSpinner.js","components/spinners/LoadingSpinner.js","components/RecaptchaComponent.js","helpers/handleResponse.js","services/authenticationService.js","helpers/authHeader.js","services/apiService.js","components/forms/ContactForm.js","pages/Contact.js","pages/FAQS.js","pages/Home.js","components/spinners/ModalSpinner.js","components/modals/ErrorModal.js","services/listsService.js","services/myListCounterService.js","components/forms/ListSaveToForm.js","components/modals/ListSaveToFormModal.js","components/forms/ListNewRenameForm.js","components/modals/ListFormModal.js","services/guidelinesService.js","components/modals/GuidelineDetailsModal.js","services/notificationService.js","components/grids/GuidelineLinksGrid.js","pages/Links.js","components/forms/ListDeleteForm.js","components/modals/ListDeleteModal.js","components/grids/ListsGrid.js","pages/Lists.js","services/notificationsPolling.js","components/forms/LoginForm.js","pages/Login.js","components/grids/GuidelinesPagination.js","components/MyListCSVDownload.js","components/modals/GuidelineDetailsCarousel.js","components/grids/SortableTableHeader.js","components/grids/GuidelinesListGrid.js","pages/MyList.js","components/grids/GuidelinesSelectedListGrid.js","pages/MyLists.js","components/grids/GuidelinesGridSingle.js","components/grids/GuidelinesGrids.js","pages/Notifications.js","components/modals/Terms.js","components/forms/RegisterForm.js","pages/Register.js","components/forms/ForgottenPasswordForm.js","pages/ForgottenPassword.js","components/forms/ResetPasswordForm.js","pages/ResetPassword.js","components/grids/GuidelinesGrid.js","pages/Search.js","components/grids/GuidelinesSharedGrid.js","pages/Shared.js","pages/Terms.js","pages/PrivacyPolicy.js","components/grids/TermsGrid.js","pages/GlossaryTerms.js","components/LanguageSwitcher.js","components/NavBar.js","assets/img/UNSaferGuardLogo.png","assets/img/FCDO-For-Online.png","assets/img/gichd-logo.svg","components/Footer.js","components/ScrollHandler/index.js","components/NavResize.js","hooks/PrivateRoute.jsx","components/HeaderTop.js","assets/img/AMAT-logo-dark-resize.png","App.js","reportWebVitals.js","index.js"],"names":["SiteConfig","process","i18n","use","HttpApi","LanguageDetector","initReactI18next","init","languages","fallbackLng","debug","load","keySeparator","interpolation","escapeValue","ns","defaultNS","backend","loadPath","allowMultiLoading","crossDomain","parse","data","JSON","detection","order","lookupQuerystring","lookupCookie","lookupHeader","lookupFromPathIndex","err","t","console","error","Helpers","badgeVariant","type","variant","trim","arrayAsBadges","arr","map","item","Badge","className","bg","createMarkup","str","doc","DOMParser","parseFromString","querySelectorAll","elm","s","style","i","length","removeProperty","removeAttribute","__html","body","innerHTML","getWindowDimensions","window","width","innerWidth","height","innerHeight","setCookieEU","c_name","value","exdays","exdate","Date","setDate","getDate","c_value","escape","toUTCString","document","cookie","getCookieEU","x","y","ARRcookies","split","substr","indexOf","replace","unescape","docTypeIdToDocType","doctypeId","retStr","Cookies","useTranslation","Helmet","dangerouslySetInnerHTML","ButtonSpinner","Spinner","as","animation","size","role","aria-hidden","LoadingSpinner","props","spinnerStyle","fixedHeight","String","heightOffset","RecaptchaComponent","action","sitekey","onToken","handleLoaded","useCallback","async","grecaptcha","ready","_","getToken","execute","then","token","setInterval","useEffect","script","createElement","src","addEventListener","appendChild","data-sitekey","data-size","handleResponse","response","text","ok","status","authenticationService","logout","message","statusText","Promise","reject","currentUserSubject","BehaviorSubject","localStorage","getItem","login","email","password","FormData","append","fetch","method","user","setItem","stringify","next","register","name","reCaptchaToken","sign_up","site_tag","requestResetPassword","host","apiService","apiPostForm","resetPassword","confirm_password","removeItem","currentUser","asObservable","authHeader","currentUserValue","Authorization","url","formData","requestOptions","headers","res","Error","json","result","apiDelete","apiGet","ContactForm","submitting","setSubmitting","useState","submitted","setSubmitted","setReCaptchaToken","feedbackText","setFeedbackText","initialValues","phone","validationSchema","Yup","shape","required","onSubmit","fields","errors","touched","Alert","htmlFor","InputGroup","Text","id","disabled","placeholder","component","rows","target","rel","href","Contact","FAQS","class","Home","to","ModalSpinner","ErrorModal","handleClose","onCloseErrorModal","Modal","show","showerrormodal","onHide","backdrop","Header","closeButton","Title","Body","Footer","Button","onClick","listsService","getListById","language_code","getLists","doc_type","newList","list_name","renameList","list_id","deleteList","getListsForGuidelineId","saveGuidelineToLists","guideline_ids","list_ids","saveAllGuidelinesToLists","getShareForGuidelineId","getSharedForListId","currentMyListCountSubject","myListCounterService","getMyListCount","count","setMyListCount","currentMyListCount","ListSaveToForm","initiallyLoaded","setInitiallyLoaded","cmLists","setCmLists","selectedCmLists","setSelectedCmLists","setShow","canCreateLists","setCanCreateLists","formik","useFormik","enableReinitialize","element","onSuccessfulFormSubmit","retrieveData","resultsInLists","inlistids","filter","list","resultsCMLists","lists","inlist","forEach","handleSubmit","Dropdown","e","stopPropagation","Toggle","Menu","sort","a","b","Item","active","preventDefault","temp","foundIdx","key","index","push","splice","dropDownItemClick","ListFormModal","handleModalOpenClose","reloadData","showAddListModal","ListForm","listName","setListName","values","setFieldValue","iatg_list","onChange","handleChange","onBlur","handleBlur","handleModalClose","ListNewRenameForm","guidelinesService","getTerms","sitetag","getTermsWithCount","getSearchFilters","all","terms","rrpls","modules","guidelines","getGuidelineById","getLinkedGuidelinesById","getList","getListExport","postList","sortColumn","sortType","page","page_size","postSelectedList","postDetailedList","putToList","ids","deleteFromList","GuidelineDetailsModal","guideline","setGuideline","showErrorModal","setShowErrorModal","currentTimestamp","setCurrentTimestamp","guideline_id","guideline_id_timestamp","handleShow","language","fetchData","module","number","title","link","edition","ammendment","section","section_title","term","rrpl","currentNotificationsSubject","notifications","getNotifications","notificationService","items","setNotifications","markNotificationAsRead","notification_id","currentNotificationsData","notification","read_at","parseInt","markNotificationAsReadAPI","currentNotifications","GuidelineLinksGrid","linkedGuidelines","setLinkedGuidelines","recordsTotal","setRecordsTotal","selectedGuidelineId","setSelectedGuidelineId","selectedGuidelineIdTimestamp","setSelectedGuidelineIdTimestamp","selectedListGuidelineIds","setSelectedListGuidelineIds","showListFormModal","setShowListFormModal","loadingData","setLoadingData","showListSaveToFormModal","setShowListSaveToFormModal","history","useHistory","showGuidelinesModal","valueOf","showListSaveToForm","arrGuidelines","ListSaveToFormModal","Table","striped","bordered","hover","Links","useParams","receiveGuideline","ListDeleteModal","ListDeleteForm","setLists","listRecordsTotal","setListRecordsTotal","selectedListId","setSelectedListId","loadingListData","setLoadingListData","showListDeleteFormModal","setShowListDeleteFormModal","listsInitiallyLoaded","setListsInitiallyLoaded","showListForm","retrieveListData","data-count","get_mylist_count","ButtonGroup","aria-label","OverlayTrigger","placement","rootClose","rootCloseEvent","trigger","overlay","Popover","Content","Form","Control","location","protocol","share_link","sharePath","navigator","clipboard","writeText","addToClipboard","showListDeleteForm","Lists","running","notificationsPolling","singletonHook","LoginForm","notificationsPollingMode","useLocation","min","from","state","pathname","Login","GuidelinesPagination","setItems","startPage","endPage","pages_total","pages","Array","keys","Pagination","onItemClick","DropdownButton","onSelect","onPageSizeChange","eventKey","First","Prev","Ellipsis","Next","Last","MyListCSVDownload","setHeaders","setData","fetching","setFetching","csvInstance","useRef","current","setTimeout","click","filename","ref","data-interception","GuidelineDetailsCarousel","setIndex","setGuidelines","reset_timestamp","pageSize","modifiedData","setModifiedData","Carousel","useModifiedData","sort_column","sort_type","activeIndex","selectedIndex","interval","SortableTableHeader","addClass","field","onHeaderClick","label","GuidelinesListGrid","upperPaginationRef","setSortColumn","setSortType","setPage","setPageSize","pagesTotal","setPagesTotal","rowUpdating","setRowUpdating","remove_all_updating","setRemove_all_updating","canExportList","setCanExportList","selected_guideline_id","setSelected_guideline_id","selected_guideline_id_timestamp","setSelected_guideline_id_timestamp","handleSortColumn","pageSizeEventHandler","scrollToTop","paginationEventHandler","handleRemoveAllClick","row_updating","clnGuidelines","guidelineIds","last_page","total","canexportlist","print","module_number","decoded_summary_text","newRowUpdating","updatedGuidelines","handleRemoveClick","scrollTo","top","getBoundingClientRect","bottom","behavior","MyLists","myListCount","subscribe","GuidelinesSelectedListGrid","receiveListInfo","setPageListName","setPageListCount","reset_carousel_timestamp","setReset_carousel_timestamp","listCount","setListCount","GuidelinesGridSingle","updated_at","doc_type_text","colSpan","GuidelinesGrids","readNotifications","setReadNotifications","unreadNotifications","setUnreadNotifications","unReadNotifications","currentNotificationsValue","Notifications","Terms","RegisterForm","feedbackAreaRef","termsShow","setTermsShow","toggleTermsShow","accept_terms","oneOf","Register","ForgottenPasswordForm","successText","setSuccessText","ForgottenPassword","ResetPasswordForm","ResetPassword","GuidelinesGrid","setState","onCloseShowListSaveToFormModalCallback","onCloseListFormModalCallback","handleShare","window_location","toggleShowToast","show_toast","handleClearAll","getElementById","selected_terms","selected_rrpls","text_search","selected_modules","selected_page","guidelines_only","iatg_terms_select_values","iatg_rrpls_select_values","iatg_modules_select_values","this","fetchGuidelinesData","replaceQueryString","onTextSearchChange","event","persist","debouncedFn","debounce","searchString","determineDisabledOptions","returnTerms","iatg_terms","allTerms","returnRrpls","iatg_rrpls","allRRPLlements","returnModules","iatg_modules","allModules","lowerPaginationEventHandler","lowerPageSizeEventHandler","handleSaveAllClick","GuidelineIds","saveHoverStatus","clone","save_row_hover","handleSaveClick","is_saved_to_list","updateRowStatus","foundIndex","findIndex","handleSelectChange","selectedOption","ev","stateItem","newIds","option","areFiltersLoaded","numResults","resultsPerPage","allQMPPrinciples","allStakeholders","save_all_updating","iatg_modules_input_value","iatg_terms_input_value","iatg_rrpls_input_value","search","bind","fetchFilterData","onInputChange","handleInputChanged","onCloseErrorModalCallback","navigateToLinkPage","popOverContainerRef","React","createRef","locationarea","Guidelines","input","reason","Number","query","queryString","qsState","on","lng","stateString","join","substring","replaceState","moduleFilterConfig","ignoreCase","ignoreAccents","matchFrom","renderModuleOption","Translation","Toast","onClose","readOnly","hideSelectedOptions","isMulti","closeMenuOnSelect","blurInputOnSelect","inputValue","getOptionLabel","getOptionValue","options","isOptionDisabled","filterOption","createFilter","defaultValue","Component","withTranslation","Search","GuidelinesSharedGrid","listOwner","Shared","setListOwner","PrivacyPolicy","TermsGrid","setTerms","originalTerms","setOriginalTerms","setTermRecordsTotal","loadingTermData","setLoadingTermData","termsInitiallyLoaded","setTermsInitiallyLoaded","filterInput","componentMounted","termsArray","definition","localeCompare","retrieveTermData","Label","updatedList","toLowerCase","term_id","GlossaryTerms","setExpanded","dir","lang","documentElement","availableLanguages","NavDropdown","find","code","changeLanguage","NavBar","setCurrentUser","expanded","Navbar","expand","aria-controls","Collapse","Nav","activeClassName","exact","color","GICHD","alt","UNSaferGuardLogo","FCDO","ScrollHandler","hash","offsetTop","propTypes","PropTypes","string","isRequired","withRouter","NavResize","componentDidMount","resizeHeaderOnScroll","distanceY","pageYOffset","scrollTop","headerEl","classList","add","remove","render","PrivateRoute","roles","rest","initialised","setInitialised","HeaderTop","App","fallback","path","MyList","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM"],"mappings":"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","file":"static/js/main.03af9ecc.chunk.js","sourcesContent":["\r\n\r\n\r\nlet docType = 3;\r\nlet siteTag = 'iatg';\r\nlet recapchaV3SiteKey = process.env.REACT_APP_RECAPCHA_V3_SITE_KEY_MINEACTION;\r\n\r\n\r\nexport const SiteConfig = { docType: docType, siteTag: siteTag, recapchaV3SiteKey: recapchaV3SiteKey};\r\n","import i18n from \"i18next\";\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport HttpApi from 'i18next-http-backend';\r\n\r\nimport { SiteConfig } from './SiteConfig';\r\n\r\ni18n\r\n .use(HttpApi) // passes i18n down to react-i18next\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n //languages: ['ar','de','en','es','fr','ru'],\r\n languages: ['ar','en','es','fr','pt','ru'],\r\n fallbackLng: 'en',\r\n debug: true,\r\n load: 'languageOnly',\r\n /*languageOnly : true,*/\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n interpolation: {\r\n escapeValue: false // react already safes from xss\r\n },\r\n ns: [SiteConfig.siteTag],\r\n defaultNS: SiteConfig.siteTag,\r\n backend: {\r\n loadPath: process.env.REACT_APP_i18_URL + '/{{lng}}.json',\r\n allowMultiLoading: true,\r\n crossDomain: true,\r\n parse: function(data) {\r\n return JSON.parse(data);\r\n }\r\n }, detection: {\r\n // order and from where user language should be detected\r\n order: ['localStorage', 'querystring', 'cookie', 'header'],\r\n lookupQuerystring: 'locale',\r\n lookupCookie: 'locale',\r\n lookupHeader: 'accept-language',\r\n lookupFromPathIndex: 0,\r\n\r\n }\r\n }, (err: Error, t: (...params: any[]) => string) => {\r\n if (err) return console.error(err)\r\n});\r\n\r\nexport default i18n;\r\n","\r\nimport Badge from 'react-bootstrap/Badge';\r\n\r\nconst Helpers = () => {\r\n\r\n const docTypeIdToDocType = (doctypeId) => {\r\n\r\n var retStr = '';\r\n\r\n switch (doctypeId) {\r\n case 1:\r\n retStr = \"IMAS\"\r\n break;\r\n case 2:\r\n retStr = \"IATG\"\r\n break;\r\n case 3:\r\n retStr = \"AMAS\"\r\n break;\r\n default:\r\n retStr = '';\r\n }\r\n return retStr;\r\n\r\n }\r\n\r\n const badgeVariant = (type) => {\r\n\r\n var variant = '';\r\n\r\n switch (type.trim()) {\r\n case 'Shall':\r\n variant = 'danger';\r\n break;\r\n case 'Should':\r\n variant = 'success';\r\n break;\r\n case 'May':\r\n variant = 'info';\r\n break;\r\n default:\r\n variant = 'info';\r\n }\r\n\r\n return variant;\r\n\r\n }\r\n const arrayAsBadges = (arr,type) => {\r\n return arr.map((item) => {item})\r\n }\r\n\r\n const createMarkup = (str) => {\r\n const doc = new DOMParser().parseFromString(str, 'text/html');\r\n //need to remove all dir attributes as conflict with site css\r\n for (const elm of doc.querySelectorAll('*')) {\r\n\r\n var s = elm.style;\r\n \r\n for (var i = s.length - 1; i >= 0; i--)\r\n if (s[i] === 'text-align')\r\n s.removeProperty(s[i]);\r\n \r\n elm.removeAttribute('dir'); \r\n }\r\n return {__html:doc.body.innerHTML};\r\n }\r\n\r\n const getWindowDimensions = () => {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height\r\n };\r\n }\r\n\r\n const setCookieEU = (c_name,value,exdays) =>\r\n {\r\n var exdate = new Date();\r\n exdate.setDate(exdate.getDate() + exdays);\r\n var c_value = escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());\r\n document.cookie = c_name + \"=\" + c_value+\"; path=/\";\r\n }\r\n\r\n const getCookieEU = (c_name) =>\r\n {\r\n var i,x,y,ARRcookies=document.cookie.split(\";\");\r\n for (i=0;i\r\n \r\n {t('Cookie Policy')}\r\n \r\n
\r\n
\r\n
\r\n

{t('Cookie Policy')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n}\r\n\r\nexport default Cookies;\r\n","import Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction ButtonSpinner() {\r\n\r\n return (\r\n \r\n )\r\n};\r\n\r\nexport default ButtonSpinner;\r\n","import Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction LoadingSpinner(props) {\r\n\r\n const spinnerStyle = {\r\n height: props.fixedHeight ? props.fixedHeight + 'px' : 'calc(100vh - ' + String(props.heightOffset ? props.heightOffset : 0) + 'px)'\r\n };\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n Loading...\r\n \r\n
\r\n
\r\n\r\n )\r\n};\r\n\r\n\r\nexport default LoadingSpinner;\r\n","import React, { useEffect, useCallback } from 'react';\r\n\r\n\r\nconst RecaptchaComponent = ({ action, sitekey, onToken }) => {\r\n\r\n const handleLoaded = useCallback(async() => {\r\n window.grecaptcha.ready(_ => {\r\n\r\n const getToken = () => {\r\n\r\n window.grecaptcha\r\n .execute(sitekey, { action: action })\r\n .then(token => {\r\n\r\n onToken(token)\r\n })\r\n };\r\n\r\n getToken();\r\n\r\n //need to refresh the token periodically\r\n // as it expires every two minutes, should really\r\n // be done on form submit\r\n \r\n setInterval(() => {\r\n getToken();\r\n },90000);\r\n\r\n })\r\n },[action, sitekey,onToken])\r\n\r\n useEffect(() => {\r\n // Add reCaptcha\r\n const script = document.createElement(\"script\")\r\n script.src = \"https://www.google.com/recaptcha/api.js?render=\"+ sitekey\r\n script.addEventListener(\"load\", handleLoaded)\r\n document.body.appendChild(script)\r\n },[handleLoaded,sitekey])\r\n\r\n return (\r\n <>\r\n \r\n \r\n )\r\n}\r\n\r\nexport default RecaptchaComponent;\r\n","import { authenticationService } from '../services/authenticationService';\r\n\r\nexport function handleResponse(response) {\r\n return response.text().then(text => {\r\n const data = text && JSON.parse(text);\r\n if (!response.ok) {\r\n if ([401, 403].indexOf(response.status) !== -1) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n authenticationService.logout();\r\n //window.location.reload(true);\r\n }\r\n\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n\r\n return data;\r\n });\r\n}\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { handleResponse } from '../helpers/handleResponse';\r\nimport { apiService } from './apiService';\r\nconst currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\n\r\nexport const authenticationService = {\r\n login,\r\n register,\r\n requestResetPassword,\r\n resetPassword,\r\n logout,\r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue () { return currentUserSubject.value }\r\n};\r\n\r\nfunction login(email, password) {\r\n\r\n let data = new FormData();\r\n data.append('email',email);\r\n data.append('password',password);\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n //headers: { 'Content-Type': 'application/json' },\r\n body: data\r\n };\r\n\r\n return fetch(process.env.REACT_APP_API_URL + '/login', requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n currentUserSubject.next(user);\r\n\r\n return user;\r\n });\r\n}\r\n\r\nfunction register(name, email, password, reCaptchaToken, sign_up, site_tag) {\r\n\r\n\r\n let data = new FormData();\r\n data.append('name',name);\r\n data.append('email',email);\r\n data.append('password',password);\r\n data.append('token',reCaptchaToken);\r\n data.append('opted_in', sign_up);\r\n data.append('referrer', site_tag);\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n //headers: { 'Content-Type': 'application/json' },\r\n body: data\r\n };\r\n\r\n return fetch(process.env.REACT_APP_API_URL + '/register', requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n currentUserSubject.next(user);\r\n\r\n return user;\r\n });\r\n}\r\n\r\nfunction requestResetPassword(email,host) {\r\n\r\n let data = new FormData();\r\n data.append('email',email);\r\n data.append('host',host);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/reset-password', data);\r\n\r\n /*\r\n return fetch(process.env.REACT_APP_API_URL + '/reset-password', data)\r\n .then(handleResponse)\r\n .then(response => {\r\n return response;\r\n });\r\n */\r\n}\r\nfunction resetPassword(token,email,password,confirm_password) {\r\n\r\n let data = new FormData();\r\n data.append('token',token);\r\n data.append('email',email);\r\n data.append('password',password);\r\n data.append('password_confirmation',confirm_password);\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: data\r\n };\r\n\r\n return fetch(process.env.REACT_APP_API_URL + '/reset/password', requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n currentUserSubject.next(user);\r\n\r\n return user;\r\n });\r\n\r\n //return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/reset/password', data);\r\n\r\n /*\r\n return fetch(process.env.REACT_APP_API_URL + '/reset-password', data)\r\n .then(handleResponse)\r\n .then(response => {\r\n return response;\r\n });\r\n */\r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('currentUser');\r\n currentUserSubject.next(null);\r\n}\r\n","import { authenticationService } from '../services/authenticationService';\r\n\r\nexport function authHeader() {\r\n // return authorization header with jwt token\r\n const currentUser = authenticationService.currentUserValue;\r\n if (currentUser && currentUser.token) {\r\n return {\r\n \r\n Authorization: `Bearer ${currentUser.token}`,\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n","import { authHeader } from '../helpers/authHeader';\r\n\r\n\r\n\r\nexport const apiService = {\r\n apiPostForm ,\r\n apiDelete ,\r\n apiGet,\r\n};\r\n\r\n\r\nfunction apiPostForm(url,formData) {\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: formData\r\n };\r\n\r\n return fetch(url, requestOptions)\r\n .then(res =>\r\n {\r\n if(res.status!==200 && res.status!==201)\r\n {\r\n throw new Error(res.status)\r\n } else {\r\n return res.json()\r\n }\r\n }\r\n )\r\n .then(result => {\r\n return result;\r\n });\r\n}\r\n\r\nfunction apiDelete(url) {\r\n\r\n const requestOptions = {\r\n method: 'DELETE',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(url, requestOptions)\r\n .then(res =>\r\n {\r\n if(res.status!==200 && res.status!==201)\r\n {\r\n throw new Error(res.status)\r\n } else {\r\n return res.json()\r\n }\r\n }\r\n )\r\n .then(result => {\r\n return result;\r\n });\r\n}\r\n\r\nfunction apiGet(url) {\r\n\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(url, requestOptions)\r\n .then(res =>\r\n {\r\n if(res.status!==200 && res.status!==201)\r\n {\r\n throw new Error(res.status)\r\n } else {\r\n return res.json()\r\n }\r\n }\r\n )\r\n .then(result => {\r\n return result;\r\n });\r\n}\r\n","\r\nimport React, { useState, useCallback} from \"react\";\r\n\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport RecaptchaComponent from '../RecaptchaComponent';\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nimport * as Yup from \"yup\";\r\n\r\n\r\nimport { apiService } from '../../services/apiService';\r\n\r\nfunction ContactForm(props) {\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitted, setSubmitted] = useState(false);\r\n const [reCaptchaToken, setReCaptchaToken] = useState(null);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const initiallyLoaded = true;\r\n\r\n const onToken = useCallback(async(token) => {\r\n setReCaptchaToken(token);\r\n },[setReCaptchaToken]);\r\n\r\n return (\r\n {\r\n\r\n setFeedbackText('');\r\n\r\n setSubmitting(true);\r\n // Fetch the accessToken from the server\r\n let data = new FormData();\r\n data.append('name',fields.name);\r\n data.append('email',fields.email);\r\n data.append('phone',fields.phone);\r\n data.append('message',fields.message);\r\n data.append('token',reCaptchaToken);\r\n data.append('site_tag',SiteConfig.siteTag);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/cm_contact',data)\r\n .then(\r\n response => {\r\n setSubmitted(true);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Contact form error'));\r\n }\r\n );\r\n }}\r\n >\r\n {({ errors, status, touched }) => (\r\n\r\n <>\r\n { initiallyLoaded ?\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {submitted &&\r\n
\r\n
\r\n \r\n {t('Contact form success')}\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {t('This site is protected by reCAPTCHA and the Google')} \r\n {t('Privacy Policy')} {t('and')} \r\n {t('Terms of Service')} {t('apply')}.\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n \r\n\r\n )}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default ContactForm;\r\n","\r\nimport React from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ContactForm from '../components/forms/ContactForm';\r\n\r\nfunction Contact() {\r\n const { t } = useTranslation();\r\n return
\r\n \r\n {t('Contact')}\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

{t('Contact')}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Contact;\r\n","\r\nimport React from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport Helpers from '../components/Helpers'\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction FAQS() {\r\n const { t } = useTranslation();\r\n\r\n const {createMarkup} = Helpers();\r\n\r\n return
\r\n \r\n {t('FAQS')}\r\n \r\n \r\n
\r\n
\r\n
\r\n

{t('Frequently Asked Questions')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default FAQS;\r\n","\r\nimport React from \"react\";\r\nimport { Link } from 'react-router-dom';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nfunction Home() {\r\n const { t } = useTranslation();\r\n //const [currentUser, setCurrentUser] = useState(null);\r\n\r\n /*\r\n useEffect(() => {\r\n redirect to home if already logged in\r\n setCurrentUser( authenticationService.currentUserValue);\r\n\r\n },[]);\r\n */\r\n\r\n return
\r\n \r\n {t('Home')}\r\n \r\n \r\n\r\n
\r\n
\r\n
{t('IATG online digital tool')}
\r\n
\r\n
{t('IATG HomePage Description')}
\r\n
\r\n
\r\n {t('Search')}
\r\n {t('My Lists')}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n}\r\n\r\nexport default Home;\r\n","import Spinner from 'react-bootstrap/Spinner';\r\n\r\nfunction ModalSpinner(props) {\r\n return (\r\n
\r\n \r\n Loading...\r\n \r\n
\r\n )\r\n};\r\n\r\n\r\nexport default ModalSpinner;\r\n","import React from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nfunction ErrorModal(props) {\r\n\r\n\r\n const handleClose = () =>\r\n {\r\n props.onCloseErrorModal();\r\n }\r\n const { t } = useTranslation();\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n

{t('Something has gone wrong')}

\r\n
\r\n
\r\n \r\n {t('We are aware of the problem and are working to fix it. Please try again later')}.\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default ErrorModal\r\n","import { apiService } from './apiService';\r\n\r\nexport const listsService = {\r\n\r\n getListById,\r\n getLists,\r\n newList,\r\n renameList,\r\n deleteList,\r\n getListsForGuidelineId,\r\n saveGuidelineToLists,\r\n saveAllGuidelinesToLists,\r\n getShareForGuidelineId,\r\n getSharedForListId\r\n};\r\n\r\nfunction getListById(id, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('language',language_code);\r\n\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list/list/'+ id,data);\r\n}\r\n\r\nfunction getLists(doc_type, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('doc_type',doc_type);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list/all_lists',data);\r\n}\r\n\r\nfunction newList(list_name, doc_type) {\r\n\r\n let data = new FormData();\r\n data.append('list_name',list_name);\r\n data.append('doc_type',doc_type);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/new',data);\r\n}\r\n\r\nfunction renameList(list_id, list_name) {\r\n\r\n let data = new FormData();\r\n data.append('list_name',list_name);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/rename/' + list_id, data);\r\n}\r\n\r\nfunction deleteList(list_id, doc_type) {\r\n\r\n let data = new FormData();\r\n data.append('doc_type',doc_type);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/delete/' + list_id, data);\r\n}\r\n\r\nfunction getListsForGuidelineId(id) {\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list/listsforguideline/'+ id);\r\n}\r\n\r\nfunction saveGuidelineToLists(guideline_ids, list_ids) {\r\n\r\n let data = new FormData();\r\n data.append('guideline_ids', guideline_ids);\r\n data.append('list_ids', list_ids);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/save_guideline', data);\r\n}\r\n\r\nfunction saveAllGuidelinesToLists(guideline_ids, list_ids) {\r\n\r\n let data = new FormData();\r\n data.append('guideline_ids', guideline_ids);\r\n data.append('list_ids', list_ids);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/save_all', data);\r\n}\r\nfunction getShareForGuidelineId(id) {\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list/share/'+ id);\r\n}\r\n\r\nfunction getSharedForListId(id,language_code) {\r\n\r\n let data = new FormData();\r\n data.append('language',language_code);\r\n\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list/shared/'+ id,data);\r\n}\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { apiService } from './apiService';\r\n\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nconst currentMyListCountSubject = new BehaviorSubject(null);\r\n\r\nexport const myListCounterService = {\r\n getMyListCount,\r\n setMyListCount,\r\n currentMyListCount: currentMyListCountSubject.asObservable(),\r\n get currentMyListCountValue () { return currentMyListCountSubject.value }\r\n};\r\n\r\nfunction getMyListCount() {\r\n\r\n let data = new FormData();\r\n data.append('doc_type',SiteConfig.docType);\r\n\r\n apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/count',data )\r\n .then(\r\n (count) => {\r\n currentMyListCountSubject.next(count);\r\n },\r\n error => {\r\n if (error.message === '401'\r\n || error.message === '500') {\r\n currentMyListCountSubject.next(0);\r\n }\r\n }\r\n );\r\n\r\n}\r\n\r\nfunction setMyListCount(count) {\r\n currentMyListCountSubject.next(count);\r\n}\r\n","import React, { useEffect , useState, useCallback } from \"react\";\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport LoadingSpinner from '../spinners/LoadingSpinner';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Formik, Form, useFormik } from 'formik';\r\n\r\nimport * as Yup from \"yup\";\r\n\r\nimport { listsService } from '../../services/listsService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nfunction ListSaveToForm(props) {\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const [cmLists, setCmLists] = useState([]);\r\n const [selectedCmLists, setSelectedCmLists] = useState([]);\r\n const [ show, setShow ] = useState(false);\r\n const [canCreateLists, setCanCreateLists] = useState(false);\r\n\r\n\r\n const dropDownItemClick = (e,element) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const temp = [...selectedCmLists];\r\n\r\n var foundIdx = -1;\r\n\r\n temp.map((key,index) => {\r\n if (key.id === element.id)\r\n foundIdx = index;\r\n\r\n return 0;\r\n })\r\n\r\n if (-1 === foundIdx) {\r\n temp.push(element)\r\n } else {\r\n temp.splice(foundIdx,1)\r\n }\r\n\r\n setSelectedCmLists(temp);\r\n }\r\n\r\n\r\n const validationSchema=Yup.object().shape({\r\n\r\n })\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: {\r\n list_name: '',\r\n },\r\n validationSchema: validationSchema,\r\n onSubmit: async (values) => {\r\n\r\n setFeedbackText('');\r\n setSubmitting(true);\r\n\r\n if (1 element.id))\r\n .then(\r\n data => {\r\n setSubmitting(false);\r\n props.onSuccessfulFormSubmit(true);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Save to list error'));\r\n }\r\n );\r\n\r\n } else {\r\n listsService.saveGuidelineToLists(props.guideline_ids, selectedCmLists.map(element => element.id))\r\n .then(\r\n data => {\r\n setSubmitting(false);\r\n props.onSuccessfulFormSubmit(true);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Save to list error'));\r\n }\r\n );\r\n }\r\n }\r\n\r\n });\r\n\r\n const addNewList = () => {\r\n props.onSuccessfulFormSubmit(false,true);\r\n }\r\n\r\n const retrieveData = useCallback(async () => {\r\n\r\n listsService.getListsForGuidelineId(1 === props.guideline_ids.length ? props.guideline_ids[0] : -1 )\r\n .then(\r\n (result) => {\r\n setInitiallyLoaded(true);\r\n //we are filtering returning data for the move facillity\r\n //as we dont want to display the current list or any lists that the guideline\r\n //already belongs to .\r\n let resultsInLists = result.inlistids.filter(list => list.id !== props.list_id);\r\n let resultsCMLists = (!props.list_id) ? result.lists : result.lists.filter(function(list) {\r\n return list.id !== props.list_id && 0 === resultsInLists.filter(function(inlist) {\r\n return inlist.id === list.id\r\n }).length;\r\n });\r\n\r\n resultsCMLists.forEach((item, i) => {\r\n resultsCMLists[i].list_name = t(item.list_name);\r\n });\r\n\r\n setCmLists(resultsCMLists);\r\n setSelectedCmLists(resultsInLists);\r\n setCanCreateLists(result.canCreateLists);\r\n },\r\n error => {\r\n\r\n if (error.message === '401' ) {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n //setShowErrorModal(true);\r\n } else if (error.message === '403') {\r\n // history.push('/');\r\n }\r\n\r\n }\r\n );\r\n },[props.guideline_ids,props.list_id,t]);\r\n\r\n useEffect(() => {\r\n retrieveData();\r\n },[props.guideline_ids, retrieveData]);\r\n\r\n return (\r\n <>\r\n { initiallyLoaded ?\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n \r\n <>\r\n
\r\n
\r\n
\r\n
\r\n\r\n e.stopPropagation()}\r\n show = {show}\r\n >\r\n setShow(!show)}\r\n >\r\n
{t('Select one or more lists')} ...
\r\n \r\n \r\n {cmLists.sort((a, b) => a.list_name - b.list_name).map(element =>\r\n item.id).indexOf(element.id) >= 0}\r\n key={element.id}\r\n onClick={(e) => dropDownItemClick(e,element)}\r\n >\r\n {element.list_name}\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n {t('Save')} {submitting && }\r\n \r\n
\r\n
\r\n
\r\n { canCreateLists &&\r\n
\r\n \r\n {t('Add new list')}\r\n \r\n
\r\n }\r\n \r\n
\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n );\r\n};\r\n\r\nexport default ListSaveToForm;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListSaveToForm from '../forms/ListSaveToForm'\r\n\r\nfunction ListFormModal(props) {\r\n\r\n useEffect(() => {\r\n setShow(props.show);\r\n }, [props.show]);\r\n\r\n const [show, setShow] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const handleFormSubmit = (reloadData,showAddListModal) => {\r\n props.handleModalOpenClose(reloadData,showAddListModal)\r\n }\r\n\r\n return (\r\n\r\n props.handleModalOpenClose(false) }\r\n backdrop=\"static\"\r\n size=\"md\"\r\n >\r\n \r\n \r\n

{props.list_id ? t('Move guideline to list') : 1 === props.guideline_ids.length ? t('Save guideline to list') : t('Save guidelines to list') }

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default ListFormModal\r\n","\r\nimport React, { useEffect , useState } from \"react\";\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\n\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Formik, Field, Form, useFormik } from 'formik';\r\n\r\nimport * as Yup from \"yup\";\r\n\r\nimport { listsService } from '../../services/listsService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nfunction ListForm(props) {\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const [listName, setListName] = useState(\"\");\r\n\r\n const validationSchema=Yup.object().shape({\r\n list_name: Yup.string()\r\n .required(t('List name is required'))\r\n })\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: {\r\n list_name: '',\r\n },\r\n validationSchema: validationSchema,\r\n onSubmit: async (values) => {\r\n setFeedbackText('');\r\n setSubmitting(true);\r\n\r\n if (!props.list_id) {\r\n\r\n listsService.newList(values.list_name, SiteConfig.docType)\r\n .then(\r\n data => {\r\n setSubmitting(false);\r\n props.onSuccessfulFormSubmit(true);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Add list error'));\r\n }\r\n );\r\n } else {\r\n listsService.renameList(props.list_id,values.list_name)\r\n .then(\r\n user => {\r\n setSubmitting(false);\r\n props.onSuccessfulFormSubmit(true);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Rename list error'));\r\n //setValidated(false);\r\n }\r\n );\r\n }\r\n }\r\n });\r\n\r\n const setFieldValue = formik.setFieldValue;\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (!props.list_id) {\r\n //setList(null);\r\n setInitiallyLoaded(true);\r\n } else {\r\n\r\n listsService.getListById(props.list_id)\r\n .then(\r\n (result) => {\r\n setInitiallyLoaded(true);\r\n setFieldValue('list_name', t(result.iatg_list.list_name));\r\n setListName(t(result.iatg_list.list_name))\r\n },\r\n error => {\r\n\r\n if (error.message === '401' ) {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n //setShowErrorModal(true);\r\n } else if (error.message === '403') {\r\n // history.push('/');\r\n }\r\n\r\n }\r\n );\r\n }\r\n },[props.list_id, setFieldValue, t]);\r\n\r\n return (\r\n <>\r\n\r\n { initiallyLoaded ?\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {formik.errors.list_name && formik.touched.list_name &&
{formik.errors.list_name}
}\r\n
\r\n
\r\n
\r\n {t('Your list name will be visible when you share with others')}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n :\r\n \r\n }\r\n \r\n\r\n );\r\n};\r\n\r\nexport default ListForm;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListNewRenameForm from '../forms/ListNewRenameForm'\r\n\r\nfunction ListFormModal(props) {\r\n\r\n useEffect(() => {\r\n setShow(props.show);\r\n }, [props.show]);\r\n\r\n const [show, setShow] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const handleFormSubmit = (reloadData) => {\r\n props.handleModalClose(reloadData)\r\n }\r\n\r\n return (\r\n\r\n props.handleModalClose(false) }\r\n backdrop=\"static\"\r\n size=\"md\"\r\n >\r\n \r\n \r\n

{props.list_id ? t('Rename List') : t('Create New List') }

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default ListFormModal\r\n","import { apiService } from './apiService';\r\n\r\nexport const guidelinesService = {\r\n getTerms,\r\n getTermsWithCount,\r\n getSearchFilters,\r\n guidelines,\r\n getGuidelineById,\r\n getLinkedGuidelinesById,\r\n getList,\r\n getListExport,\r\n postList,\r\n postSelectedList,\r\n postDetailedList,\r\n putToList,\r\n deleteFromList,\r\n};\r\n\r\nfunction getTerms(doc_type, sitetag, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('site_tag',sitetag);\r\n data.append('doc_type',doc_type);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/terms',data);\r\n}\r\n\r\nfunction getTermsWithCount(doc_type, sitetag, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('site_tag',sitetag);\r\n data.append('doc_type',doc_type);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/terms_count',data);\r\n\r\n}\r\nfunction getSearchFilters(doc_type, sitetag, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('site_tag',sitetag);\r\n data.append('doc_type',doc_type);\r\n data.append('language',language_code);\r\n\r\n return Promise.all([\r\n apiService.apiPostForm(process.env.REACT_APP_API_URL + '/terms',data),\r\n apiService.apiPostForm(process.env.REACT_APP_API_URL + '/rrpls',data),\r\n apiService.apiPostForm(process.env.REACT_APP_API_URL + '/modules',data)\r\n ])\r\n .then(([terms, rrpls, modules]) => {\r\n return {\r\n terms,\r\n rrpls,\r\n modules\r\n };\r\n })\r\n}\r\n\r\nfunction guidelines(data) {\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/guidelines',data);\r\n}\r\n\r\nfunction getGuidelineById(id,language_code) {\r\n\r\n let data = new FormData();\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/guideline/'+ id,data);\r\n}\r\n\r\nfunction getLinkedGuidelinesById(id) {\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/links/'+ id);\r\n}\r\n\r\nfunction getList() {\r\n return apiService.apiGet(process.env.REACT_APP_API_URL + '/iatg_list');\r\n}\r\n\r\nfunction getListExport(list_id,doc_type,language_code) {\r\n\r\n let data = new FormData();\r\n data.append('list_id',list_id);\r\n data.append('doc_type',doc_type);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/export',data);\r\n}\r\n\r\nfunction postList(sortColumn,sortType,page,doc_type,page_size,language_code) {\r\n\r\n let data = new FormData();\r\n data.append('sort_column',sortColumn);\r\n data.append('sort_type',sortType);\r\n data.append('selected_page',page);\r\n data.append('doc_type',doc_type);\r\n data.append('page_size',page_size);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list',data);\r\n}\r\n\r\nfunction postSelectedList(list_id, sortColumn,sortType,page,doc_type,page_size,language_code) {\r\n\r\n let data = new FormData();\r\n data.append('sort_column',sortColumn);\r\n data.append('sort_type',sortType);\r\n data.append('selected_page',page);\r\n data.append('doc_type',doc_type);\r\n data.append('page_size',page_size);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/view/' + list_id,data);\r\n}\r\n\r\nfunction postDetailedList(list_id, sortColumn,sortType,page,doc_type,page_size, language_code) {\r\n\r\n let data = new FormData();\r\n data.append('list_id',list_id);\r\n data.append('sort_column',sortColumn);\r\n data.append('sort_type',sortType);\r\n data.append('selected_page',page);\r\n data.append('doc_type',doc_type);\r\n data.append('page_size',page_size);\r\n data.append('language',language_code);\r\n\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/detailed',data);\r\n}\r\n\r\nfunction putToList(ids,doc_type) {\r\n let data = new FormData();\r\n data.append('guideline_ids',ids);\r\n data.append('doc_type',doc_type);\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/items/attach', data);\r\n}\r\n\r\nfunction deleteFromList(list_id, ids,doc_type) {\r\n let data = new FormData();\r\n data.append('list_id',list_id);\r\n data.append('guideline_ids',ids);\r\n data.append('doc_type',doc_type);\r\n return apiService.apiPostForm(process.env.REACT_APP_API_URL + '/iatg_list/items/detach', data);\r\n}\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport Helpers from '../Helpers'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\n\r\nfunction GuidelineDetailsModal(props) {\r\n\r\n const { i18n } = useTranslation();\r\n\r\n const [guideline, setGuideline] = useState(null);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [currentTimestamp, setCurrentTimestamp] = useState(null);\r\n\r\n const [show, setShow] = useState(false);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n handleShow();\r\n guidelinesService.getGuidelineById(props.guideline_id, i18n.language)\r\n .then(\r\n (data) => {\r\n setGuideline(data.guideline);\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShow(false);\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n\r\n };\r\n if (props.guideline_id && currentTimestamp !== props.guideline_id_timestamp) {\r\n setCurrentTimestamp(props.guideline_id_timestamp);\r\n fetchData();\r\n }\r\n\r\n }, [props.guideline_id,props.guideline_id_timestamp,i18n.language,currentTimestamp]);\r\n\r\n\r\n\r\n const {createMarkup} = Helpers();\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n const handleClose = () =>\r\n {\r\n setShow(false);\r\n setGuideline(null);\r\n }\r\n const handleShow = () => setShow(true);\r\n const { t } = useTranslation();\r\n\r\n const {arrayAsBadges} = Helpers();\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n { guideline ?\r\n <>\r\n \r\n \r\n {guideline?.module && <>

{guideline?.module.number} - {guideline?.module.title}

\r\n {guideline?.module && guideline?.module.link &&

{t('Source')}: {guideline?.module.link}

}\r\n\r\n

{t('Edition')}: {guideline?.module.edition}, {t('Amendment')}: {guideline?.module.ammendment}

}\r\n

{t('Section')}: {guideline?.section}

\r\n

{t('Section title')}: {guideline?.section_title}

\r\n {guideline?.term && 0{t('Terms')}: {guideline?.term && arrayAsBadges(guideline?.term.map(item => {\r\n return item.title;\r\n }) ,'orange')}\r\n }\r\n {guideline?.rrpl && 0{t('RRPL')}: { arrayAsBadges(guideline?.rrpl.map(item => {\r\n return item.title;\r\n }) ,'orange')}\r\n }\r\n
\r\n \r\n \r\n
\r\n        \r\n        \r\n          \r\n        \r\n         :\r\n          \r\n        }\r\n      \r\n    \r\n  );\r\n}\r\n\r\nexport default GuidelineDetailsModal\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { apiService } from './apiService';\r\n\r\nconst currentNotificationsSubject = new BehaviorSubject({notifications: [], getNotifications : false});\r\n\r\nexport const notificationService = {\r\n    getNotifications,\r\n    setNotifications,\r\n    markNotificationAsRead,\r\n    markNotificationAsReadAPI,\r\n    currentNotifications: currentNotificationsSubject.asObservable(),\r\n    get currentNotificationsValue () { return currentNotificationsSubject.value }\r\n};\r\n\r\nfunction getNotifications() {\r\n\r\n  apiService.apiGet(process.env.REACT_APP_API_URL + '/notify/get')\r\n    .then(\r\n        (data) => {\r\n          currentNotificationsSubject.next(\r\n            {notifications: data.items, getNotifications : data.getNotifications}\r\n          );\r\n        },\r\n        error => {\r\n          if (error.message === '401') {\r\n              currentNotificationsSubject.next({notifications: [], getNotifications : false});\r\n          }\r\n          if(error.message === '500') {\r\n            //tbd\r\n          }\r\n        }\r\n    );\r\n\r\n}\r\n\r\nfunction markNotificationAsReadAPI(notification_id) {\r\n  return apiService.apiGet(process.env.REACT_APP_API_URL + '/notify/read/' +  notification_id);\r\n}\r\n\r\nfunction setNotifications(notifications) {\r\n  currentNotificationsSubject.next(notifications);\r\n}\r\n\r\nfunction markNotificationAsRead(notification_id) {\r\n\r\n  var currentNotificationsData = currentNotificationsSubject.value;\r\n\r\n  for (const notification of currentNotificationsData.notifications.filter(x=> !x.read_at)) {\r\n    if (notification.data.guideline.id === parseInt(notification_id,10)) {\r\n      markNotificationAsReadAPI(notification.id).then(\r\n        (result) => {\r\n          notification.read_at = new Date();\r\n          //debugger;\r\n      });\r\n    }\r\n  }\r\n\r\n  setNotifications({notifications: currentNotificationsData.notifications, getNotifications : currentNotificationsData.getNotifications});\r\n\r\n}\r\n","import React, { useEffect , useState} from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Table from 'react-bootstrap/Table'\r\nimport Button from 'react-bootstrap/Button'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport ListSaveToFormModal from '../modals/ListSaveToFormModal';\r\nimport ListFormModal from '../modals/ListFormModal';\r\nimport { useTranslation } from 'react-i18next';\r\nimport GuidelineDetailsModal from '../modals/GuidelineDetailsModal';\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { notificationService } from '../../services/notificationService';\r\nimport Helpers from '../Helpers';\r\n\r\nexport default function GuidelineLinksGrid(props) {\r\n\r\n  const [linkedGuidelines, setLinkedGuidelines] = useState([]);\r\n  const [guideline, setGuideline] = useState(null);\r\n  const [recordsTotal, setRecordsTotal] = useState(null);\r\n  const [selectedGuidelineId, setSelectedGuidelineId] = useState(null);\r\n  const [selectedGuidelineIdTimestamp, setSelectedGuidelineIdTimestamp] = useState(null);\r\n  const [selectedListGuidelineIds, setSelectedListGuidelineIds] = useState([]);\r\n  const [showListFormModal, setShowListFormModal] = useState(false);\r\n  const [loadingData, setLoadingData] = useState(false);\r\n  const [showErrorModal, setShowErrorModal] = useState(false);\r\n  const [showListSaveToFormModal, setShowListSaveToFormModal] = useState(false);\r\n  const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n  const { t } = useTranslation();\r\n  const history = useHistory();\r\n\r\n  const {docTypeIdToDocType, createMarkup} = Helpers();\r\n\r\n  const onCloseListFormModalCallback = (reloadData) => {\r\n    if (reloadData)\r\n      setSelectedGuidelineId(selectedGuidelineId);\r\n\r\n    setShowListFormModal(false);\r\n    setShowListSaveToFormModal(true);\r\n  }\r\n\r\n  const onCloseErrorModalCallback = () => {\r\n    setShowErrorModal(false);\r\n  }\r\n\r\n  const showGuidelinesModal = (guideline_id) => {\r\n    setSelectedGuidelineId(guideline_id);\r\n    setSelectedGuidelineIdTimestamp(new Date().valueOf());\r\n  }\r\n\r\n  const onCloseShowListSaveToFormModalCallback = (reloadData,showAddListModal) => {\r\n    setShowListSaveToFormModal(false);\r\n    setShowListFormModal(showAddListModal);\r\n  }\r\n\r\n  const showListSaveToForm = (e,guideline_id) => {\r\n    e.preventDefault();\r\n    e.stopPropagation();\r\n    setShowListSaveToFormModal(true);\r\n    setSelectedListGuidelineIds([guideline_id]);\r\n  }\r\n\r\n  useEffect(() => {\r\n\r\n    const retrieveData  = async () => {\r\n\r\n        setLoadingData(true);\r\n          guidelinesService.getLinkedGuidelinesById(props.guideline_id)\r\n          .then(\r\n              (result) => {\r\n                  var arrGuidelines =  [];\r\n\r\n                  for(var i in result.items)\r\n                      arrGuidelines.push(result.items[i]);\r\n\r\n                  setInitiallyLoaded(true);\r\n                  setLoadingData(false);\r\n                  setLinkedGuidelines(arrGuidelines);\r\n                  setGuideline(result.guideline);\r\n                  setRecordsTotal(arrGuidelines.length);\r\n                  //props.receiveGuideline(result.guideline);\r\n\r\n                  //update local notifications\r\n                  notificationService.markNotificationAsRead(props.guideline_id);\r\n              },\r\n              error => {\r\n\r\n                if (error.message === '401' ) {\r\n                  authenticationService.logout();\r\n                } else if (error.message === '500') {\r\n                  setShowErrorModal(true);\r\n                } else if (error.message === '403') {\r\n                  history.push('/');\r\n                }\r\n\r\n              }\r\n          );\r\n\r\n    }\r\n\r\n    retrieveData();\r\n\r\n  }, [props.guideline_id, history]);\r\n\r\n\r\n\r\n  return (\r\n\r\n      <>\r\n      \r\n      \r\n      \r\n      { initiallyLoaded && loadingData &&\r\n        \r\n      }\r\n      { initiallyLoaded  ?\r\n        <>\r\n          
\r\n
\r\n showGuidelinesModal(props.guideline_id)}\r\n >\r\n
\r\n

{docTypeIdToDocType(guideline?.module.doc_type)} {guideline?.module.number} - {guideline?.module.title}

\r\n

{t('Edition')} {guideline?.module.edition}, {t('Amendment')} {guideline?.module.edition}

\r\n

{t('Section')} {guideline?.section}

\r\n
\r\n \r\n\r\n
\r\n showListSaveToForm(e,guideline?.id)}\r\n >\r\n {t('Save')}\r\n \r\n
\r\n \r\n
\r\n { recordsTotal > 0 ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {linkedGuidelines.sort((a, b) => a.module.number - b.module.number).map(function(value, index){\r\n return( showGuidelinesModal(value.id)}>\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
{t('Section')}{t('Text')}
{docTypeIdToDocType(value.module.doc_type)} {value.module.number}{value.section}\r\n \r\n \r\n showListSaveToForm(e,value.id)}\r\n >\r\n {t('Save')}\r\n \r\n
\r\n \r\n\r\n \r\n :\r\n <>{t('No linked items')}.\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, { useState } from \"react\";\r\nimport { useParams } from 'react-router-dom';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport Helpers from '../components/Helpers'\r\n\r\nimport GuidelineLinksGrid from '../components/grids/GuidelineLinksGrid';\r\n\r\nfunction Links() {\r\n\r\n const { t } = useTranslation();\r\n const { id } = useParams();\r\n\r\n const [guideline, setGuideline] = useState(null);\r\n\r\n const {docTypeIdToDocType} = Helpers();\r\n\r\n const receiveGuideline = (guideline) =>\r\n {\r\n setGuideline(guideline);\r\n }\r\n\r\n return
\r\n \r\n {t('Links')}\r\n \r\n
\r\n
\r\n
\r\n

{t('Guidelines linked to guideline')}: {guideline &&\r\n {docTypeIdToDocType(guideline.module.doc_type)} {guideline.module.number}
{t('Section')} {guideline.section}
\r\n }

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Links;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { listsService } from '../../services/listsService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nfunction ListForm(props) {\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [loadingData, setLoadingData] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const [listName, setListName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n\r\n setLoadingData(true);\r\n listsService.getListById(props.list_id)\r\n .then(\r\n (result) => {\r\n setInitiallyLoaded(true);\r\n setLoadingData(false);\r\n setListName(t(result.iatg_list.list_name));\r\n },\r\n error => {\r\n\r\n if (error.message === '401' ) {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n //setShowErrorModal(true);\r\n } else if (error.message === '403') {\r\n // history.push('/');\r\n }\r\n\r\n }\r\n );\r\n\r\n },[props.list_id, t]);\r\n\r\n const handleSubmit = async(e) => {\r\n e.preventDefault();\r\n\r\n listsService.deleteList(props.list_id, SiteConfig.docType)\r\n .then(\r\n data => {\r\n setSubmitting(false);\r\n props.onSuccessfulFormSubmit(true);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('Delete list error'));\r\n //setValidated(false);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n return (\r\n\r\n <>\r\n { initiallyLoaded && loadingData &&\r\n \r\n }\r\n { initiallyLoaded ?\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n\r\n
\r\n
\r\n {t('Are you sure you want to delete the list') + ' \\'' + listName + '\\' '}? {t('This will not delete the guidelines')}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n :\r\n \r\n\r\n }\r\n \r\n\r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default ListForm;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\nimport ListDeleteForm from '../forms/ListDeleteForm'\r\n\r\nfunction ListDeleteModal(props) {\r\n\r\n useEffect(() => {\r\n setShow(props.show);\r\n }, [props.show]);\r\n\r\n const [show, setShow] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const handleFormSubmit = (reloadData) => {\r\n props.handleModalClose(reloadData)\r\n }\r\n\r\n return (\r\n\r\n props.handleModalClose(false) }\r\n backdrop=\"static\"\r\n size=\"md\"\r\n >\r\n \r\n \r\n

{t('Delete list')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default ListDeleteModal;\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Button from 'react-bootstrap/Button';\r\nimport ButtonGroup from 'react-bootstrap/ButtonGroup';\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport Popover from 'react-bootstrap/Popover';\r\nimport Form from 'react-bootstrap/Form';\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport ListFormModal from '../modals/ListFormModal';\r\nimport ListDeleteModal from '../modals/ListDeleteModal';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { listsService } from '../../services/listsService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nexport default function GuidelineLinksGrid(props) {\r\n\r\n const [lists, setLists] = useState([]);\r\n const [listRecordsTotal, setListRecordsTotal] = useState(null);\r\n const [selectedListId, setSelectedListId] = useState(null);\r\n const [loadingListData, setLoadingListData] = useState(false);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [showListFormModal, setShowListFormModal] = useState(false);\r\n const [showListDeleteFormModal, setShowListDeleteFormModal] = useState(false);\r\n const [listsInitiallyLoaded, setListsInitiallyLoaded] = useState(false);\r\n const [canCreateLists, setCanCreateLists] = useState(false);\r\n\r\n const { t, i18n } = useTranslation();\r\n const history = useHistory();\r\n\r\n const addToClipboard = (e, sharePath) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n navigator.clipboard.writeText(window.location.protocol + \"//\" + window.location.host + sharePath);\r\n }\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n const onCloseListFormModalCallback = (reloadData) => {\r\n setShowListFormModal(false);\r\n if (reloadData)\r\n retrieveListData();\r\n }\r\n\r\n const onCloseListDeleteFormModalCallback = (reloadData) => {\r\n setShowListDeleteFormModal(false);\r\n if (reloadData)\r\n retrieveListData();\r\n }\r\n\r\n const showListForm = (e, list_id) => {\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setShowListFormModal(true);\r\n setSelectedListId(list_id);\r\n }\r\n\r\n const showListDeleteForm = (e, list_id) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setShowListDeleteFormModal(true);\r\n setSelectedListId(list_id);\r\n }\r\n\r\n const selectList = (list_id) => {\r\n history.push('/lists/' + list_id);\r\n }\r\n\r\n const retrieveListData = useCallback(async () => {\r\n\r\n setLoadingListData(true);\r\n listsService.getLists(SiteConfig.docType, i18n.language)\r\n .then(\r\n (result) => {\r\n\r\n result.lists.forEach((item, i) => {\r\n result.lists[i].list_name = t(item.list_name);\r\n });\r\n\r\n setListsInitiallyLoaded(true);\r\n setLoadingListData(false);\r\n setLists(result.lists);\r\n setListRecordsTotal(result.lists.length);\r\n setCanCreateLists(result.canCreateLists);\r\n\r\n },\r\n error => {\r\n\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n } else if (error.message === '403') {\r\n history.push('/');\r\n }\r\n\r\n }\r\n );\r\n\r\n }, [history, i18n.language, t]);\r\n\r\n useEffect(() => {\r\n retrieveListData();\r\n\r\n }, [retrieveListData]);\r\n\r\n\r\n\r\n return (\r\n\r\n <>\r\n \r\n \r\n \r\n {listsInitiallyLoaded && loadingListData &&\r\n \r\n }\r\n {listsInitiallyLoaded ?\r\n <>\r\n\r\n
\r\n {listRecordsTotal > 0 ?\r\n <>\r\n\r\n\r\n
\r\n
\r\n {canCreateLists &&\r\n showListForm(e)}\r\n variant=\"dannoneger\"\r\n >{t('New list')}\r\n\r\n
\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n {t('#')}\r\n
\r\n
\r\n {t('List name')}\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n {lists.sort((a, b) => a.id - b.id).map(function (value, index) {\r\n return ( selectList(value.id)}\r\n >\r\n {index + 1}
\r\n \r\n \r\n {value.list_name}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {t('Added to Clipboard!')}\r\n \r\n \r\n
\r\n \r\n \r\n {t('Highlight text above and copy if clipboard is empty')}\r\n \r\n \r\n
\r\n \r\n }\r\n >\r\n addToClipboard(e, value.share_link)}\r\n variant=\"dannoneger\"\r\n >{t('Share')}
\r\n \r\n showListForm(e, value.id)}\r\n variant=\"dannoneger\"\r\n >{t('Rename')}
\r\n showListDeleteForm(e, value.id)}\r\n variant=\"dannoneger\"\r\n >{t('Delete')}
\r\n\r\n \r\n \r\n\r\n\r\n )\r\n })\r\n }\r\n\r\n \r\n :\r\n <>{t('No lists')}.\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 {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ListsGrid from '../components/grids/ListsGrid';\r\n\r\nfunction Lists() {\r\n\r\n const { t } = useTranslation();\r\n\r\n return
\r\n \r\n {t('My Lists')}\r\n \r\n
\r\n
\r\n
\r\n

{t('My Lists')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Lists;\r\n","import { useEffect} from 'react';\r\nimport { singletonHook } from 'react-singleton-hook';\r\nimport { notificationService } from './notificationService';\r\nimport { apiService } from './apiService';\r\n\r\n//const api = { async getMe() { return { name: 'test' }; } };\r\n\r\nconst init = { running: true };\r\n\r\nconst useNotificationsPollingImpl = () => {\r\n\r\n useEffect(() => {\r\n\r\n const retrieveData = () => {\r\n\r\n if (init.running) {\r\n apiService.apiGet(process.env.REACT_APP_API_URL + '/notify/get')\r\n .then(\r\n (data) => {\r\n notificationService.setNotifications({notifications: data.items, getNotifications : data.getNotifications});\r\n },\r\n error => {\r\n if (error.message === '401'\r\n || error.message === '500') {\r\n init.running = false;\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n retrieveData();\r\n setInterval(retrieveData,process.env.REACT_APP_NOTIFICATIONS_POLL_INTERVAL_MILLISECONDS);\r\n }, []);\r\n\r\n return init;\r\n};\r\n\r\nexport const notificationsPolling = singletonHook(init, useNotificationsPollingImpl);\r\n","\r\nimport React, { useEffect , useState} from \"react\";\r\nimport { Link, useHistory , useLocation } from \"react-router-dom\";\r\n\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\n\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\n\r\nimport * as Yup from \"yup\";\r\n\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\nimport { notificationService } from '../../services/notificationService';\r\nimport { notificationsPolling } from '../../services/notificationsPolling';\r\n\r\nfunction LoginForm(props) {\r\n\r\n const notificationsPollingMode = notificationsPolling();\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n // redirect to home if already logged in\r\n if (authenticationService.currentUserValue) {\r\n history.push('/');\r\n }\r\n },[history]);\r\n\r\n\r\n\r\n return (\r\n {\r\n\r\n setFeedbackText('');\r\n\r\n setSubmitting(true);\r\n // Fetch the accessToken from the server\r\n authenticationService.login(fields.email, fields.password)\r\n .then(\r\n user => {\r\n setSubmitting(false);\r\n myListCounterService.getMyListCount();\r\n notificationService.getNotifications()\r\n //start the notifications polling\r\n notificationsPollingMode.running = true;\r\n const { from } = location.state || { from: { pathname: \"/\" } };\r\n history.push(from);\r\n\r\n },\r\n error => {\r\n\r\n setSubmitting(false);\r\n setFeedbackText(t('Login error'));\r\n //setValidated(false);\r\n }\r\n );\r\n }}\r\n >\r\n {({ errors, status, touched }) => (\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n {t('Create account')}\r\n {t('Forgot your password?')}\r\n\r\n

\r\n
\r\n
\r\n {t('This site is protected by reCAPTCHA and the Google')} \r\n {t('Privacy Policy')} {t('and')} \r\n {t('Terms of Service')} {t('apply')}.\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n )}\r\n \r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","\r\nimport React from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport LoginForm from '../components/forms/LoginForm';\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction Login() {\r\n const { t } = useTranslation();\r\n return
\r\n \r\n {t('Login')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{t('Login')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Login;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Pagination from 'react-bootstrap/Pagination';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nfunction GuidelinesPagination(props) {\r\n\r\n const [items, setItems] = useState([]);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n // calculate total pages\r\n //const totalPages = Math.ceil(props.pages_total / pageSize);\r\n //debugger;\r\n let startPage, endPage;\r\n if (props.pages_total <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = props.pages_total;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (props.page <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (props.page + 4 >= props.pages_total) {\r\n startPage = props.pages_total - 9;\r\n endPage = props.pages_total;\r\n } else {\r\n startPage = props.page - 5;\r\n endPage = props.page + 4;\r\n }\r\n }\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n let pages = [...Array((endPage + 1) - startPage).keys()].map(i => startPage + i);\r\n\r\n let items = [];\r\n\r\n pages.forEach((number, i) => {\r\n items.push(\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(e.target.text);\r\n }}\r\n key={number}\r\n className={number === props.page ? '' : 'visible-desktop'}\r\n active={number === props.page}>\r\n {number}\r\n ,\r\n );\r\n });\r\n\r\n setItems(items);\r\n\r\n }, [props]);\r\n\r\n return (\r\n \r\n {\r\n if (props.onPageSizeChange)\r\n props.onPageSizeChange(e);\r\n }}\r\n >\r\n 5\r\n 10\r\n 20\r\n 50\r\n 100\r\n 200\r\n\r\n \r\n \r\n\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(1);\r\n }}\r\n />\r\n\r\n\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(props.page-1);\r\n }}\r\n />\r\n\r\n { props.pages_total > 10 &&\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(1);\r\n }}>{1}\r\n \r\n }\r\n { 0 < props.pages_total &&\r\n <>\r\n \r\n {items}\r\n \r\n \r\n }\r\n { 0 < props.pages_total && props.pages_total > 10 &&\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(props.pages_total);\r\n }}\r\n >{props.pages_total}\r\n }\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(props.page+1);\r\n }}\r\n />\r\n\r\n\r\n {\r\n if (props.onItemClick)\r\n props.onItemClick(props.pages_total);\r\n }}\r\n />\r\n\r\n \r\n\r\n \r\n )\r\n\r\n};\r\n\r\n\r\nexport default GuidelinesPagination\r\n","import React, { useEffect , useState, useRef} from \"react\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { guidelinesService } from '../services/guidelinesService';\r\nimport ButtonSpinner from './spinners/ButtonSpinner';\r\n\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction MyListCSVDownload({list_id,disabled}) {\r\n\r\n const { t, i18n } = useTranslation();\r\n\r\n const [headers, setHeaders] = useState([]);\r\n const [data, setData] = useState(null);\r\n const [fetching, setFetching] = useState(false);\r\n\r\n const csvInstance = useRef();\r\n\r\n useEffect(() => {\r\n if (data && csvInstance.current && csvInstance.current.link) {\r\n setTimeout(() => {\r\n csvInstance.current.link.click();\r\n setFetching(false);\r\n });\r\n }\r\n\r\n }, [data]);\r\n\r\n\r\n return (\r\n <>{disabled}\r\n {\r\n if (disabled) {\r\n return;\r\n }\r\n setFetching(true);\r\n guidelinesService.getListExport(list_id,SiteConfig.docType, i18n.language)\r\n .then(\r\n (result) => {\r\n\r\n result.headers.forEach((item, i) => {\r\n result.headers[i] = t(item);\r\n });\r\n\r\n setHeaders(result.headers);\r\n setData(result.data);\r\n },\r\n error => {\r\n\r\n }\r\n );\r\n\r\n }}\r\n >\r\n  {t('Export as CSV')}{fetching && }\r\n \r\n\r\n {data &&\r\n \r\n }\r\n \r\n )\r\n};\r\n\r\nexport default MyListCSVDownload;\r\n","\r\nimport React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport Carousel from 'react-bootstrap/Carousel'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport Helpers from '../Helpers'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\n\r\nfunction GuidelineDetailsCarousel(props) {\r\n //const [items, setItems] = useState([]);\r\n const [index, setIndex] = useState(0);\r\n\r\n const handleSelect = (selectedIndex, e) => {\r\n setIndex(selectedIndex);\r\n };\r\n\r\n const { createMarkup } = Helpers();\r\n\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [loadingData, setLoadingData] = useState(false);\r\n const [guidelines, setGuidelines] = useState([]);\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n const handleClose = () =>\r\n {\r\n setShow(false);\r\n }\r\n\r\n const handleShow = () => setShow(true);\r\n const {arrayAsBadges} = Helpers();\r\n const { t, i18n } = useTranslation();\r\n\r\n const useModifiedData = (reset_timestamp,sortColumn, sortType, page, pageSize, language) => {\r\n\r\n const [modifiedData, setModifiedData] = useState([])\r\n\r\n useEffect(() => {\r\n\r\n const retrieveData = async () => {\r\n\r\n setLoadingData(true);\r\n guidelinesService.postDetailedList(props.list_id, sortColumn, sortType, page, SiteConfig.docType, pageSize, language)\r\n .then(\r\n (result) => {\r\n setLoadingData(false);\r\n setGuidelines(result.guidelines.data);\r\n\r\n let items = [];\r\n\r\n result.guidelines.data.forEach((guideline, i) => {\r\n\r\n items.push(\r\n \r\n {guideline?.module && <>

{guideline?.module.number} - {guideline?.module.title}

\r\n {guideline?.module && guideline?.module.link &&

{t('Source')}: {guideline?.module.link}

}\r\n

{t('Edition')}: {guideline?.module.edition}, {t('Amendment')}: {guideline?.module.ammendment}

}\r\n

{t('Section')}: {guideline?.section}

\r\n

{t('Section title')}: {guideline?.section_title}

\r\n {guideline?.term && 0{t('Terms')}: {guideline?.term && arrayAsBadges(guideline?.term.map(item => {\r\n return item.title;\r\n }) ,'orange')}\r\n }\r\n {guideline?.rrpl && 0{t('RRPL')}: { arrayAsBadges(guideline?.rrpl.map(item => {\r\n return item.title;\r\n }) ,'orange')}\r\n }\r\n
\r\n \r\n
\r\n\r\n\r\n ,\r\n );\r\n });\r\n\r\n setModifiedData(items);\r\n\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n }\r\n }\r\n );\r\n }\r\n\r\n retrieveData();\r\n\r\n }, [reset_timestamp,sortColumn, sortType, page, pageSize, language])\r\n\r\n return modifiedData;\r\n }\r\n\r\n const items = useModifiedData(props.reset_timestamp, props.sort_column, props.sort_type, props.page, props.page_size, i18n.language )\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (props.guideline_id) {\r\n //set the carousel index\r\n guidelines.forEach((guideline, i) => {\r\n if (props.guideline_id === guideline.id)\r\n setIndex(i);\r\n });\r\n }\r\n\r\n }, [props.guideline_id, guidelines]);\r\n\r\n useEffect(() => {\r\n\r\n if (props.guideline_id_timestamp) {\r\n handleShow();\r\n }\r\n\r\n }, [props.guideline_id_timestamp]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n { !loadingData ?\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n {items}\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default GuidelineDetailsCarousel\r\n","\r\nfunction SortableTableHeader(props) {\r\n\r\n const sort = field => {\r\n let sort_type = props.sort_column !== field ? 'asc' : props.sort_type === 'asc' ? 'desc' : 'asc';\r\n props.onHeaderClick(field,sort_type);\r\n }\r\n return (\r\n {\r\n sort(props.field);\r\n }}>\r\n \r\n {props.label}\r\n {props.sort_column === props.field ?\r\n <>\r\n { props.sort_type === 'asc' ?\r\n \r\n :\r\n \r\n }\r\n \r\n : \r\n }\r\n \r\n \r\n )\r\n};\r\n\r\nexport default SortableTableHeader;\r\n","import React, { useEffect , useState, useRef} from \"react\";\r\nimport GuidelinesPagination from './GuidelinesPagination';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport Button from 'react-bootstrap/Button'\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger'\r\nimport Popover from 'react-bootstrap/Popover'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport MyListCSVDownload from '../MyListCSVDownload'\r\nimport Helpers from '../Helpers'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport GuidelineDetailsCarousel from '../modals/GuidelineDetailsCarousel';\r\nimport SortableTableHeader from './SortableTableHeader';\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nexport default function GuidelinesListGrid(props) {\r\n\r\n const upperPaginationRef = useRef(null);\r\n\r\n const [guidelines, setGuidelines] = useState([]);\r\n const [sortColumn, setSortColumn] = useState('module_number');\r\n const [sortType, setSortType] = useState('asc');\r\n const [page, setPage] = useState(1);\r\n const [pageSize, setPageSize] = useState(process.env.REACT_APP_REQUIREMENTS_RESULTS_PER_PAGE);\r\n const [pagesTotal, setPagesTotal] = useState(10);\r\n const [recordsTotal, setRecordsTotal] = useState(null);\r\n\r\n const [rowUpdating, setRowUpdating] = useState([]);\r\n const [remove_all_updating, setRemove_all_updating] = useState(false);\r\n const [loadingData, setLoadingData] = useState(false);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const [canExportList, setCanExportList] = useState(false);\r\n\r\n const [selected_guideline_id, setSelected_guideline_id] = useState(null);\r\n const [selected_guideline_id_timestamp, setSelected_guideline_id_timestamp] = useState(null);\r\n\r\n const { t } = useTranslation();\r\n const {createMarkup} = Helpers();\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n const handleSortColumn = (sortColumn, sortType) => {\r\n setSortColumn(sortColumn);\r\n setSortType(sortType);\r\n setPage(1);\r\n return true;\r\n }\r\n\r\n const lowerPageSizeEventHandler = (page_size) => {\r\n window.scrollTo({top: upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"});\r\n pageSizeEventHandler(page_size, true);\r\n }\r\n\r\n const pageSizeEventHandler = (page_size, scrollToTop) => {\r\n setPageSize(page_size);\r\n setPage(1);\r\n }\r\n\r\n const lowerPaginationEventHandler = (page_size) => {\r\n window.scrollTo({top: upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"});\r\n paginationEventHandler(page_size, true);\r\n }\r\n\r\n const paginationEventHandler = (page, scrollToTop) => {\r\n setPage(parseInt(page, 10));\r\n }\r\n\r\n const handleRemoveClick = (e, id) => {\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let newRowUpdating = [...rowUpdating];\r\n newRowUpdating[id] = true;\r\n setRowUpdating(newRowUpdating);\r\n setLoadingData(true);\r\n\r\n guidelinesService.deleteFromList(id, SiteConfig.docType)\r\n .then(\r\n (data) => {\r\n\r\n //newRowUpdating[id] = true;\r\n setRowUpdating(newRowUpdating);\r\n let updatedGuidelines = guidelines.filter(x=> x.id !== id);\r\n myListCounterService.setMyListCount(recordsTotal - 1);\r\n\r\n setRecordsTotal(recordsTotal - 1);\r\n\r\n if (0 === updatedGuidelines.length) {\r\n if (pagesTotal === page) {\r\n setPage(page-1);\r\n } else {\r\n //trigger a fetch\r\n setPage(0);\r\n setPage(1);\r\n }\r\n } else {\r\n setGuidelines(updatedGuidelines);\r\n }\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n }\r\n\r\n const handleRemoveAllClick = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n\r\n let row_updating = [...rowUpdating];\r\n let clnGuidelines = [...guidelines];\r\n\r\n let guidelineIds = clnGuidelines.map(item => {\r\n //row_updating[item.id] = true;\r\n return item.id;\r\n });\r\n\r\n clnGuidelines.forEach((item, i) => {\r\n row_updating[item.id] = true;\r\n });\r\n\r\n setRemove_all_updating(true);\r\n setRowUpdating(row_updating);\r\n setLoadingData(true);\r\n\r\n guidelinesService.deleteFromList(guidelineIds)\r\n .then(\r\n (data) => {\r\n clnGuidelines.forEach((item, i) => {\r\n row_updating[item.id] = false;\r\n });\r\n\r\n setRemove_all_updating(false);\r\n setRowUpdating(row_updating);\r\n\r\n if (pagesTotal === page) {\r\n setPage(page-1);\r\n } else {\r\n //trigger a fetch\r\n setPage(0);\r\n setPage(page);\r\n }\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const retrieveData = async () => {\r\n\r\n setLoadingData(true);\r\n guidelinesService.postList(sortColumn, sortType, page, SiteConfig.docType, pageSize)\r\n .then(\r\n (result) => {\r\n setInitiallyLoaded(true);\r\n setGuidelines(result.guidelines.data);\r\n setPagesTotal(result.guidelines.last_page);\r\n setRecordsTotal(result.guidelines.total);\r\n myListCounterService.setMyListCount(result.guidelines.total);\r\n setCanExportList(result.canexportlist);\r\n setLoadingData(false);\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n retrieveData();\r\n\r\n }, [sortColumn,sortType,page, pageSize]);\r\n\r\n\r\n\r\n return (\r\n\r\n <>\r\n \r\n { initiallyLoaded && loadingData &&\r\n \r\n }\r\n { initiallyLoaded ?\r\n <>\r\n
\r\n { recordsTotal > 0 ?\r\n <>
\r\n \r\n {\r\n window.print();\r\n }\r\n }\r\n > {t('Print')}\r\n \r\n { canExportList && }\r\n
\r\n\r\n
\r\n handleRemoveAllClick(e)}\r\n disabled={remove_all_updating}\r\n >\r\n {t('Remove all')}\r\n {(remove_all_updating) && }\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n {\r\n 0 < guidelines.length ?\r\n guidelines.map((value, index) => {\r\n return (\r\n {\r\n //need to set a timestamp just in case the same row is clicked twice\r\n setSelected_guideline_id(value.id);\r\n setSelected_guideline_id_timestamp(new Date().valueOf());\r\n }}>\r\n \r\n
\r\n \r\n \r\n
{value.module.title}
\r\n
\r\n \r\n }\r\n >\r\n {value.module_number}\r\n \r\n
\r\n
\r\n
{t('Module')}
\r\n {value.module_number} {value.module.title}\r\n
\r\n
\r\n {value.section}
\r\n \r\n
\r\n \r\n \r\n
\r\n                                          \r\n                                        \r\n                                      }\r\n                                      >\r\n                                      \r\n                                    \r\n                                  
\r\n
\r\n
\r\n \r\n handleRemoveClick(e,value.id)}\r\n disabled={rowUpdating[value.id] || false}>\r\n {t('Save')}\r\n {(rowUpdating[value.id] || false) && }\r\n \r\n\r\n\r\n\r\n \r\n )\r\n ;\r\n })\r\n :
\r\n
{t('No guidelines')}
\r\n
\r\n }\r\n \r\n \r\n
\r\n handleRemoveAllClick(e)}\r\n disabled={remove_all_updating}\r\n >\r\n {t('Remove all')}\r\n {(remove_all_updating) && }\r\n \r\n \r\n
\r\n \r\n\r\n \r\n :\r\n
{t('No List Items')} {t('Search page')}.
\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, useState} from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport Badge from 'react-bootstrap/Badge'\r\nimport { useTranslation } from 'react-i18next';\r\nimport GuidelinesListGrid from '../components/grids/GuidelinesListGrid';\r\nimport { myListCounterService } from '../services/myListCounterService';\r\n\r\nfunction MyLists() {\r\n\r\n const { t } = useTranslation();\r\n const [myListCount, setMyListCount] = useState(0);\r\n\r\n useEffect(() => {\r\n const unsubscribe = myListCounterService.currentMyListCount.subscribe(count => {\r\n setMyListCount(count);\r\n });\r\n\r\n return unsubscribe;\r\n\r\n },[]);\r\n\r\n return (\r\n
\r\n \r\n {t('My Lists')}\r\n \r\n
\r\n
\r\n
\r\n

{t('My List')} {myListCount} {t('results')}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default MyLists;\r\n","import React, { useEffect , useState, useRef, useCallback} from \"react\";\r\nimport GuidelinesPagination from './GuidelinesPagination';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport Button from 'react-bootstrap/Button'\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger'\r\nimport Popover from 'react-bootstrap/Popover'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\n\r\nimport ListFormModal from '../modals/ListFormModal';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport MyListCSVDownload from '../MyListCSVDownload'\r\nimport Helpers from '../Helpers'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport GuidelineDetailsCarousel from '../modals/GuidelineDetailsCarousel';\r\nimport SortableTableHeader from './SortableTableHeader';\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nexport default function GuidelinesSelectedListGrid({ receiveListInfo, list_id, setPageListName , setPageListCount}) {\r\n\r\n const upperPaginationRef = useRef(null);\r\n\r\n const [guidelines, setGuidelines] = useState([]);\r\n const [sortColumn, setSortColumn] = useState('module_number');\r\n const [sortType, setSortType] = useState('asc');\r\n const [page, setPage] = useState(1);\r\n const [pageSize, setPageSize] = useState(process.env.REACT_APP_REQUIREMENTS_RESULTS_PER_PAGE);\r\n const [pagesTotal, setPagesTotal] = useState(10);\r\n const [recordsTotal, setRecordsTotal] = useState(null);\r\n\r\n const [rowUpdating, setRowUpdating] = useState([]);\r\n const [remove_all_updating, setRemove_all_updating] = useState(false);\r\n const [loadingData, setLoadingData] = useState(false);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const [canExportList, setCanExportList] = useState(false);\r\n const [showListFormModal, setShowListFormModal] = useState(false);\r\n\r\n const [listName, setListName] = useState(\"\");\r\n const [selected_guideline_id, setSelected_guideline_id] = useState(null);\r\n const [selected_guideline_id_timestamp, setSelected_guideline_id_timestamp] = useState(null);\r\n const [reset_carousel_timestamp, setReset_carousel_timestamp] = useState(null);\r\n\r\n\r\n const { t, i18n } = useTranslation();\r\n const { createMarkup} = Helpers();\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n const handleSortColumn = (sortColumn, sortType) => {\r\n setSortColumn(sortColumn);\r\n setSortType(sortType);\r\n setPage(1);\r\n return true;\r\n }\r\n\r\n const lowerPageSizeEventHandler = (page_size) => {\r\n window.scrollTo({top: upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"});\r\n pageSizeEventHandler(page_size, true);\r\n }\r\n\r\n const pageSizeEventHandler = (page_size, scrollToTop) => {\r\n setPageSize(page_size);\r\n setPage(1);\r\n }\r\n\r\n const lowerPaginationEventHandler = (page_size) => {\r\n window.scrollTo({top: upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"});\r\n paginationEventHandler(page_size, true);\r\n }\r\n\r\n const paginationEventHandler = (page, scrollToTop) => {\r\n setPage(parseInt(page, 10));\r\n }\r\n\r\n const onCloseListFormModalCallback = (reloadData) => {\r\n setShowListFormModal(false);\r\n\r\n }\r\n\r\n const handleRemoveClick = (e, id) => {\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let newRowUpdating = [...rowUpdating];\r\n newRowUpdating[id] = true;\r\n setRowUpdating(newRowUpdating);\r\n setLoadingData(true);\r\n\r\n guidelinesService.deleteFromList(list_id, id, SiteConfig.docType)\r\n .then(\r\n (data) => {\r\n\r\n //newRowUpdating[id] = true;\r\n setLoadingData(false);\r\n setRowUpdating(newRowUpdating);\r\n let updatedGuidelines = guidelines.filter(x=> x.id !== id);\r\n\r\n receiveListInfo(listName, recordsTotal - 1);\r\n setRecordsTotal(recordsTotal - 1);\r\n\r\n myListCounterService.setMyListCount(data.count);\r\n\r\n if (0 === updatedGuidelines.length) {\r\n if (pagesTotal === page) {\r\n setPage(page-1);\r\n } else {\r\n //trigger a fetch\r\n setPage(0);\r\n setPage(1);\r\n }\r\n } else {\r\n setReset_carousel_timestamp(new Date().valueOf());\r\n setGuidelines(updatedGuidelines);\r\n }\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setLoadingData(false);\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n }\r\n\r\n const handleRemoveAllClick = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n\r\n let row_updating = [...rowUpdating];\r\n let clnGuidelines = [...guidelines];\r\n\r\n let guidelineIds = clnGuidelines.map(item => {\r\n //row_updating[item.id] = true;\r\n return item.id;\r\n });\r\n\r\n clnGuidelines.forEach((item, i) => {\r\n row_updating[item.id] = true;\r\n });\r\n\r\n setRemove_all_updating(true);\r\n setRowUpdating(row_updating);\r\n setLoadingData(true);\r\n\r\n guidelinesService.deleteFromList(list_id, guidelineIds)\r\n .then(\r\n (data) => {\r\n clnGuidelines.forEach((item, i) => {\r\n row_updating[item.id] = false;\r\n });\r\n\r\n setRemove_all_updating(false);\r\n setRowUpdating(row_updating);\r\n\r\n if (pagesTotal === page) {\r\n setPage(page-1);\r\n } else {\r\n //trigger a fetch\r\n setPage(0);\r\n setPage(page);\r\n\r\n }\r\n setReset_carousel_timestamp(new Date().valueOf());\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n const retrieveData = useCallback(async () => {\r\n\r\n setLoadingData(true);\r\n guidelinesService.postSelectedList(list_id, sortColumn, sortType, page, SiteConfig.docType, pageSize, i18n.language)\r\n .then(\r\n (result) => {\r\n\r\n setInitiallyLoaded(true);\r\n setGuidelines(result.guidelines.data);\r\n setPagesTotal(result.guidelines.last_page);\r\n setRecordsTotal(result.guidelines.total);\r\n setCanExportList(result.canexportlist);\r\n setListName(result.listName);\r\n receiveListInfo(result.listName,result.guidelines.total);\r\n setLoadingData(false);\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n setShowErrorModal(true);\r\n }\r\n }\r\n );\r\n }\r\n ,[receiveListInfo, list_id, sortColumn, sortType, page, pageSize,i18n.language]);\r\n\r\n useEffect(() => {\r\n retrieveData();\r\n }, [retrieveData]);\r\n\r\n return (\r\n\r\n <>\r\n \r\n \r\n\r\n { initiallyLoaded && loadingData &&\r\n \r\n }\r\n { initiallyLoaded ?\r\n <>\r\n
\r\n { recordsTotal > 0 ?\r\n <>
\r\n \r\n {\r\n window.print();\r\n }\r\n }\r\n > {t('Print')}\r\n \r\n { canExportList && }\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n handleRemoveAllClick(e)}\r\n disabled={remove_all_updating}\r\n >\r\n {t('Remove all')}\r\n {(remove_all_updating) && }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {t('Text')}\r\n \r\n
\r\n
\r\n \r\n {t('Remove')}\r\n \r\n
\r\n
\r\n {\r\n 0 < guidelines.length ?\r\n guidelines.map((value, index) => {\r\n return (\r\n {\r\n //need to set a timestamp just in case the same row is clicked twice\r\n setSelected_guideline_id(value.id);\r\n setSelected_guideline_id_timestamp(new Date().valueOf());\r\n }}>\r\n \r\n
\r\n\r\n \r\n \r\n
{value.module.title}
\r\n
\r\n \r\n }\r\n >\r\n {value.module_number}\r\n \r\n
\r\n
\r\n
{t('Module')}
\r\n {value.module_number} {value.module.title}\r\n
\r\n
\r\n {value.section}
\r\n \r\n
\r\n \r\n \r\n
\r\n                                          \r\n                                        \r\n                                      }\r\n                                      >\r\n                                      \r\n                                    \r\n                                  
\r\n
\r\n
\r\n \r\n \r\n \r\n handleRemoveClick(e,value.id)}\r\n disabled={rowUpdating[value.id] || false}>\r\n {t('Remove')}\r\n {(rowUpdating[value.id] || false) && }\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n )\r\n ;\r\n })\r\n :
\r\n
{t('No guidelines')}
\r\n
\r\n }\r\n \r\n \r\n
\r\n\r\n \r\n handleRemoveAllClick(e)}\r\n disabled={remove_all_updating}\r\n >\r\n {t('Remove all')}\r\n {(remove_all_updating) && }\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n :\r\n
{t('No List Items')} {t('Search page')}.
\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, { useState , useCallback} from \"react\";\r\nimport { useParams } from 'react-router-dom';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport Badge from 'react-bootstrap/Badge'\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nimport GuidelinesSelectedListGrid from '../components/grids/GuidelinesSelectedListGrid';\r\n\r\nfunction MyLists() {\r\n\r\n const { t } = useTranslation();\r\n const { id } = useParams();\r\n\r\n const [listName, setListName] = useState(null);\r\n\r\n const [listCount, setListCount] = useState(null);\r\n\r\n\r\n const receiveListInfo = useCallback((name,count) =>\r\n {\r\n setListName(name);\r\n setListCount(count);\r\n },[setListName,setListCount]);\r\n\r\n\r\n return
\r\n \r\n {t('My lists')}\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n { listName &&

{ t(listName) } {listCount} {t('results')}

}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n}\r\n\r\nexport default MyLists;\r\n","import React from \"react\";\r\nimport Table from 'react-bootstrap/Table'\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nexport default function GuidelinesGridSingle(props) {\r\n\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n\r\n const selectGuideline = (guideline_id) => {\r\n history.push('/links/' + guideline_id);\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 0 < props.notifications.length ?\r\n props.notifications?.sort((a, b) => (new Date(a.updated_at).valueOf > new Date(b.updated_at).valueOf ) ? -1 : 1).map(function(value, index){\r\n return selectGuideline(value.data.guideline?.id)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ;\r\n })\r\n : \r\n }\r\n
{t('Date')}{t('Document type')}{t('Module ID')}{t('Number')}
{value.updated_at}{value.data.guideline?.doc_type_text}{value.data.guideline?.module_number}{value.data.guideline?.section}
{value.data.message} \r\n {t('Click here to view')}.\r\n
{t('No notifications')}
\r\n );\r\n}\r\n","import React, { useEffect , useState} from \"react\";\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport { useTranslation } from 'react-i18next';\r\nimport GuidelinesGridSingle from './GuidelinesGridSingle';\r\nimport { notificationService } from '../../services/notificationService';\r\nimport { apiService } from '../../services/apiService';\r\n\r\nexport default function GuidelinesGrids(props) {\r\n\r\n const [readNotifications, setReadNotifications] = useState([]);\r\n const [unreadNotifications, setUnreadNotifications] = useState([]);\r\n const [recordsTotal, setRecordsTotal] = useState(null);\r\n\r\n const [loadingData, setLoadingData] = useState(true);\r\n const [showErrorModal, setShowErrorModal] = useState(false);\r\n const [initiallyLoaded, setInitiallyLoaded] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const onCloseErrorModalCallback = () => {\r\n setShowErrorModal(false);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n\r\n apiService.apiGet(process.env.REACT_APP_API_URL + '/notify/get')\r\n .then(\r\n (data) => {\r\n setInitiallyLoaded(true);\r\n\r\n let unReadNotifications = data.items.filter(x=> !x.read_at);\r\n let readNotifications = data.items.filter(x=> x.read_at);\r\n\r\n //debugger;\r\n setReadNotifications(readNotifications);\r\n setUnreadNotifications(unReadNotifications);\r\n\r\n //mark all the unread notifications\r\n //as read\r\n //notificationService.setNotifications([]);\r\n unReadNotifications.forEach(x => {\r\n\r\n notificationService.markNotificationAsReadAPI(x.id)\r\n .then(\r\n (data) => {},\r\n error => {}\r\n )\r\n });\r\n\r\n notificationService.setNotifications({notifications: [], getNotifications: notificationService.currentNotificationsValue.getNotifications});\r\n setRecordsTotal(data.items.length);\r\n setLoadingData(false);\r\n },\r\n error => {\r\n if (error.message === '401'\r\n || error.message === '500') {\r\n setShowErrorModal(true);\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 { initiallyLoaded && loadingData &&\r\n \r\n }\r\n { initiallyLoaded ?\r\n <>\r\n\r\n
\r\n { recordsTotal > 0 ?\r\n <>\r\n

{t('Unread')}

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

{t('Read')}

\r\n \r\n\r\n \r\n :\r\n <>{t('No notifications')}.\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 { useParams } from 'react-router-dom';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport GuidelinesGrids from '../components/grids/GuidelinesGrids';\r\n\r\nfunction Notifications() {\r\n\r\n const { t } = useTranslation();\r\n const { id } = useParams()\r\n\r\n return
\r\n \r\n {t('Notifications')}\r\n \r\n
\r\n
\r\n
\r\n

{t('Notifications')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Notifications;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { useTranslation } from 'react-i18next';\r\nimport Helpers from '../Helpers'\r\n\r\nfunction Terms(props) {\r\n\r\n useEffect(() => {\r\n setShow(props.show);\r\n }, [props.show]);\r\n\r\n const [show, setShow] = useState(false);\r\n\r\n const { t } = useTranslation();\r\n const {createMarkup} = Helpers();\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n

{t('Terms & conditions of use')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default Terms\r\n","\r\nimport React, { useEffect, useState, useRef, useCallback } from \"react\";\r\nimport { Link, useHistory , useLocation } from \"react-router-dom\";\r\n\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport Terms from '../modals/Terms';\r\n\r\nimport RecaptchaComponent from '../RecaptchaComponent';\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\n\r\nimport * as Yup from \"yup\";\r\n\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\n\r\nfunction RegisterForm(props) {\r\n\r\n const feedbackAreaRef = useRef(null);\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [termsShow, setTermsShow] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const [reCaptchaToken, setReCaptchaToken] = useState(null);\r\n\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n // redirect to home if already logged in\r\n if (authenticationService.currentUserValue) {\r\n history.push('/');\r\n }\r\n },[history]);\r\n\r\n const onToken = useCallback(async(token) => {\r\n setReCaptchaToken(token);\r\n },[setReCaptchaToken]);\r\n\r\n /*const regenerateToken = () => {\r\n window.grecaptcha.ready(function() {\r\n window.grecaptcha\r\n .execute(SiteConfig.recapchaV3SiteKey, { action: \"registerform\" })\r\n .then(token => {\r\n onToken(token)\r\n });\r\n })\r\n };*/\r\n\r\n // setInterval(function(){regenerateToken();}, 90*1000);\r\n\r\n const toggleTermsShow = () => setTermsShow(!termsShow);\r\n\r\n return (\r\n {\r\n\r\n setFeedbackText('');\r\n\r\n setSubmitting(true);\r\n\r\n window.grecaptcha.ready(function() {\r\n window.grecaptcha\r\n .execute(SiteConfig.recapchaV3SiteKey, { action: \"registerform\" })\r\n .then(token => {\r\n // debugger;\r\n setReCaptchaToken(token);\r\n authenticationService.register(fields.name, fields.email, fields.password, reCaptchaToken, false, SiteConfig.siteTag )\r\n .then(\r\n user => {\r\n setSubmitting(false);\r\n myListCounterService.getMyListCount();\r\n const { from } = location.state || { from: { pathname: \"/\" } };\r\n history.push(from);\r\n \r\n },\r\n error => {\r\n \r\n setSubmitting(false);\r\n setFeedbackText(t('Create account error. If you already have an account using this email please try logging in') + '.');\r\n window.scrollTo({top: feedbackAreaRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"});\r\n //regenerateToken();\r\n }\r\n );\r\n });\r\n })\r\n // Fetch the accessToken from the server\r\n \r\n }}\r\n >\r\n {({ errors, status, touched }) => (\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n

\r\n {t('Forgot your password?')}\r\n

\r\n
\r\n
\r\n {t('This site is protected by reCAPTCHA and the Google')} \r\n {t('Privacy Policy')} {t('and')} \r\n {t('Terms of Service')} {t('apply')}.\r\n \r\n
\r\n
\r\n \r\n )}\r\n \r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default RegisterForm;\r\n","import React from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport RegisterForm from '../components/forms/RegisterForm';\r\n\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction Register() {\r\n const { t } = useTranslation();\r\n return
\r\n \r\n {t('Create account')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{t('Create account')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Register;\r\n","\r\nimport React, { useEffect , useState} from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport * as Yup from \"yup\";\r\nimport { authenticationService } from '../../services/authenticationService';\r\n\r\nfunction ForgottenPasswordForm(props) {\r\n\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const [successText, setSuccessText] = useState(\"\");\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n // redirect to home if already logged in\r\n if (authenticationService.currentUserValue) {\r\n history.push('/');\r\n }\r\n },[history]);\r\n\r\n\r\n\r\n return (\r\n {\r\n setFeedbackText('');\r\n setSuccessText('');\r\n setSubmitting(true);\r\n\r\n\r\n // Fetch the accessToken from the server\r\n authenticationService.requestResetPassword(fields.email,window.location.protocol + \"//\" + window.location.host)\r\n .then(\r\n data => {\r\n //debugger;\r\n setSubmitting(false);\r\n setSuccessText(t('We have e-mailed your password reset link! If this does not show up within 2 minutes please check your junk mail folder.'));\r\n setFeedbackText('');\r\n\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setSuccessText('');\r\n setFeedbackText(t('There was a problem with your password request, did you enter the correct email address?'));\r\n }\r\n );\r\n }}\r\n >\r\n {({ errors, status, touched }) => (\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n {successText &&\r\n \r\n {successText}\r\n \r\n }\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {props.token}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n {t('Create account')}\r\n\r\n

\r\n\r\n
\r\n\r\n \r\n )}\r\n \r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default ForgottenPasswordForm;\r\n","\r\nimport React from 'react';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ForgottenPasswordForm from '../components/forms/ForgottenPasswordForm';\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction ForgottenPassword() {\r\n const { t } = useTranslation();\r\n return
\r\n \r\n {t('Forgotten password')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{t('Forgotten 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\nexport default ForgottenPassword;\r\n","import React, { useEffect , useState} from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport InputGroup from 'react-bootstrap/InputGroup';\r\nimport Alert from 'react-bootstrap/Alert';\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport * as Yup from \"yup\";\r\n\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nfunction ResetPasswordForm(props) {\r\n\r\n const { t } = useTranslation();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [feedbackText, setFeedbackText] = useState(\"\");\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n // redirect to home if already logged in\r\n if (authenticationService.currentUserValue) {\r\n history.push('/');\r\n }\r\n },[history]);\r\n\r\n\r\n\r\n return (\r\n {\r\n setFeedbackText('');\r\n setSubmitting(true);\r\n // Fetch the accessToken from the server\r\n authenticationService.resetPassword(props.token,fields.email,fields.password,fields.confirm_password)\r\n .then(\r\n data => {\r\n setSubmitting(false);\r\n myListCounterService.getMyListCount();\r\n const { from } = { from: { pathname: \"/\" } };\r\n history.push(from);\r\n },\r\n error => {\r\n setSubmitting(false);\r\n setFeedbackText(t('There was a problem with the password reset, did you enter the correct details?'));\r\n }\r\n );\r\n }}\r\n >\r\n {({ errors, status, touched }) => (\r\n\r\n <>\r\n {feedbackText && \r\n {feedbackText}\r\n }\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n {t('This site is protected by reCAPTCHA and the Google')} \r\n {t('Privacy Policy')} {t('and')} \r\n {t('Terms of Service')} {t('apply')}.\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n )}\r\n \r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default ResetPasswordForm;\r\n","import React from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport {Helmet} from \"react-helmet\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ResetPasswordForm from '../components/forms/ResetPasswordForm';\r\nimport { SiteConfig } from '../SiteConfig';\r\n\r\nfunction ResetPassword() {\r\n\r\n const { t } = useTranslation();\r\n const { token } = useParams();\r\n\r\n return
\r\n \r\n {t('Reset password')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{t('Reset 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\r\nexport default ResetPassword;\r\n","import React from 'react';\r\nimport { Translation, withTranslation } from 'react-i18next';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Toast from 'react-bootstrap/Toast';\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport Popover from 'react-bootstrap/Popover'\r\nimport LoadingSpinner from '../spinners/LoadingSpinner'\r\nimport ModalSpinner from '../spinners/ModalSpinner'\r\nimport ButtonSpinner from '../spinners/ButtonSpinner';\r\nimport ErrorModal from '../modals/ErrorModal';\r\nimport Form from 'react-bootstrap/Form';\r\nimport ListSaveToFormModal from '../modals/ListSaveToFormModal';\r\nimport ListFormModal from '../modals/ListFormModal';\r\nimport Select, { createFilter } from 'react-select'\r\nimport debounce from 'lodash.debounce';\r\nimport queryString from 'query-string';\r\nimport GuidelineDetailsModal from '../modals/GuidelineDetailsModal';\r\nimport GuidelinesPagination from './GuidelinesPagination';\r\nimport SortableTableHeader from './SortableTableHeader';\r\n\r\nimport { guidelinesService } from '../../services/guidelinesService';\r\nimport { authenticationService } from '../../services/authenticationService';\r\nimport { myListCounterService } from '../../services/myListCounterService';\r\n\r\nimport { SiteConfig } from '../../SiteConfig';\r\n\r\nimport Helpers from '../../components/Helpers'\r\n\r\n\r\n\r\nclass GuidelinesGrid extends React.Component {\r\n\r\n constructor({ props,i18n }) {\r\n\r\n super(props);\r\n\r\n this.i18n = i18n;\r\n\r\n\r\n\r\n this.state = {\r\n error: null,\r\n initiallyLoaded: false,\r\n loadingData: false,\r\n areFiltersLoaded: false,\r\n page_size: process.env.REACT_APP_REQUIREMENTS_RESULTS_PER_PAGE,\r\n iatg_terms: [],\r\n\r\n iatg_rrpls: [],\r\n iatg_modules: [],\r\n doc_type: null,\r\n selected_guideline_id: null,\r\n selected_guideline_id_timestamp: null,\r\n selected_terms: [],\r\n selected_rrpls: [],\r\n text_search: '',\r\n selected_modules: [],\r\n sort_column: 'module_number',\r\n sort_type: 'asc',\r\n selected_page: 1,\r\n guidelines_only: false,\r\n numResults: 0,\r\n page: 0,\r\n resultsPerPage: 0,\r\n pagesTotal: 0,\r\n allQMPPrinciples: [],\r\n allRRPLlements:[],\r\n allTerms: [],\r\n allStakeholders: [],\r\n allModules: [],\r\n guidelines: [],\r\n cmLists: [],\r\n save_row_hover: [],\r\n row_updating: [],\r\n save_all_updating: false,\r\n show_toast : false,\r\n iatg_modules_input_value: '',\r\n iatg_terms_input_value: '',\r\n iatg_rrpls_input_value: '',\r\n window_location : window.location+window.location.search,\r\n showErrorModal: false,\r\n showListSaveToFormModal: false,\r\n showListFormModal: false,\r\n selectedListGuidelineIds: []\r\n\r\n };\r\n this.handleSortColumn = this.handleSortColumn.bind(this);\r\n this.handleSelectChange = this.handleSelectChange.bind(this);\r\n this.handleClearAll = this.handleClearAll.bind(this);\r\n this.handleShare = this.handleShare.bind(this);\r\n this.toggleShowToast = this.toggleShowToast.bind(this);\r\n this.handleSaveClick = this.handleSaveClick.bind(this);\r\n this.handleSaveAllClick = this.handleSaveAllClick.bind(this);\r\n this.fetchGuidelinesData = this.fetchGuidelinesData.bind(this);\r\n this.paginationEventHandler = this.paginationEventHandler.bind(this);\r\n this.pageSizeEventHandler = this.pageSizeEventHandler.bind(this);\r\n this.lowerPaginationEventHandler = this.lowerPaginationEventHandler.bind(this);\r\n this.lowerPageSizeEventHandler = this.lowerPageSizeEventHandler.bind(this);\r\n\r\n this.fetchFilterData = this.fetchFilterData.bind(this);\r\n this.determineDisabledOptions = this.determineDisabledOptions.bind(this);\r\n this.onTextSearchChange = this.onTextSearchChange.bind(this);\r\n this.updateRowStatus = this.updateRowStatus.bind(this);\r\n this.replaceQueryString = this.replaceQueryString.bind(this);\r\n this.onInputChange = this.handleInputChanged.bind(this);\r\n this.onCloseErrorModalCallback = this.onCloseErrorModalCallback.bind(this);\r\n this.showErrorModal = this.showErrorModal.bind(this);\r\n this.navigateToLinkPage = this.navigateToLinkPage.bind(this);\r\n this.saveHoverStatus = this.saveHoverStatus.bind(this);\r\n this.onCloseShowListSaveToFormModalCallback = this.onCloseShowListSaveToFormModalCallback.bind(this);\r\n this.onCloseListFormModalCallback = this.onCloseListFormModalCallback.bind(this);\r\n this.showListSaveToForm = this.showListSaveToForm.bind(this);\r\n this.popOverContainerRef = React.createRef();\r\n this.upperPaginationRef = React.createRef();\r\n this.locationarea = React.createRef();\r\n\r\n\r\n\r\n }\r\n\r\n showListSaveToForm = (e, guideline_id) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.setState({\r\n showListSaveToFormModal: true,\r\n selectedListGuidelineIds: [guideline_id]\r\n });\r\n }\r\n\r\n\r\n onCloseShowListSaveToFormModalCallback = (reloadData,showAddListModal) => {\r\n this.setState({\r\n showListSaveToFormModal: false,\r\n showListFormModal:showAddListModal\r\n });\r\n };\r\n\r\n onCloseListFormModalCallback = (reloadData) => {\r\n if (reloadData) {\r\n this.setState({\r\n selectedGuidelineId: this.state.selectedGuidelineId\r\n });\r\n }\r\n\r\n this.setState({\r\n showListSaveToFormModal: true,\r\n showListFormModal:false\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n fetchGuidelinesData(scrollToTop) {\r\n\r\n this.setState({\r\n loadingData: true\r\n });\r\n\r\n let data = new FormData();\r\n data.append('doc_type',SiteConfig.docType);\r\n data.append('text_search',this.state.text_search);\r\n data.append('selected_modules',this.state.selected_modules);\r\n data.append('selected_terms',this.state.selected_terms);\r\n data.append('selected_rrpls',this.state.selected_rrpls);\r\n data.append('selected_page',this.state.selected_page);\r\n data.append('page_size',this.state.page_size);\r\n data.append('sort_column',this.state.sort_column);\r\n data.append('sort_type',this.state.sort_type);\r\n data.append('language',this.i18n.language);\r\n\r\n guidelinesService.guidelines(data)\r\n .then(\r\n (result) => {\r\n\r\n\r\n this.setState({\r\n initiallyLoaded: true,\r\n loadingData: false,\r\n numResults: result.numResults,\r\n page: result.page,\r\n resultsPerPage: result.resultsPerPage,\r\n pagesTotal: result.pagesTotal,\r\n allQMPPrinciples: result.allQMPPrinciples,\r\n allRRPLlements: result.allRRPLlements,\r\n allStakeholders: result.allStakeholders,\r\n allTerms: result.allTerms,\r\n allModules: result.allModules,\r\n cmLists: result.Lists,\r\n guidelines: result.Guidelines.data\r\n\r\n }, function() {\r\n if (!this.state.areFiltersLoaded) {\r\n //get the filter data\r\n this.fetchFilterData();\r\n }\r\n //persist the state in the query string\r\n this.replaceQueryString();\r\n\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 if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n this.showErrorModal();\r\n } else {\r\n this.setState({\r\n loadingData: false,\r\n error\r\n });\r\n }\r\n }\r\n )\r\n }\r\n\r\n navigateToLinkPage(e, id) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.props.history.push('/links/' + id);\r\n }\r\n\r\n onCloseErrorModalCallback() {\r\n this.setState({\r\n showErrorModal : false\r\n });\r\n }\r\n\r\n showErrorModal() {\r\n this.setState({\r\n showErrorModal : true\r\n });\r\n }\r\n\r\n handleInputChanged(input, reason ,name) {\r\n\r\n if (reason.action === \"set-value\") {\r\n return;\r\n }\r\n\r\n switch (name) {\r\n case 'iatg_terms':\r\n this.setState({\r\n iatg_terms_input_value: input\r\n });\r\n break;\r\n case 'iatg_rrpls':\r\n this.setState({\r\n iatg_rrpls_input_value: input\r\n });\r\n break;\r\n case 'iatg_modules':\r\n this.setState({\r\n iatg_modules_input_value: input\r\n });\r\n break;\r\n default:\r\n };\r\n }\r\n\r\n handleShare = (e) => {\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n navigator.clipboard.writeText(this.state.window_location);\r\n\r\n this.toggleShowToast(e);\r\n }\r\n\r\n toggleShowToast = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.setState({\r\n show_toast: !this.state.show_toast\r\n });\r\n }\r\n\r\n handleClearAll = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n document.getElementById(\"text_search\").value = '';\r\n\r\n this.setState({\r\n selected_terms: [],\r\n selected_rrpls: [],\r\n text_search: '',\r\n selected_modules: [],\r\n sort_column: 'module_number',\r\n sort_type: 'asc',\r\n selected_page: 1,\r\n guidelines_only: false,\r\n iatg_terms_select_values: [],\r\n iatg_rrpls_select_values: [],\r\n iatg_modules_select_values: [],\r\n }, function() {\r\n this.fetchGuidelinesData();\r\n this.replaceQueryString();\r\n });\r\n }\r\n\r\n onTextSearchChange = (event) => {\r\n /* signal to React not to nullify the event object */\r\n event.persist();\r\n\r\n if (!this.debouncedFn) {\r\n this.debouncedFn = debounce(() => {\r\n let searchString = event.target.value;\r\n this.setState({\r\n guidelines_only: false,\r\n selected_page: 1,\r\n text_search: searchString\r\n }, function() {\r\n this.fetchGuidelinesData();\r\n });\r\n }, 500);\r\n } this.debouncedFn();\r\n }\r\n\r\n fetchFilterData() {\r\n\r\n guidelinesService.getSearchFilters(SiteConfig.docType,SiteConfig.siteTag,this.i18n.language)\r\n .then(\r\n (data) => {\r\n this.setState({\r\n areFiltersLoaded: true,\r\n iatg_terms: data.terms.items,\r\n iatg_terms_select_values: data.terms.items.filter(item => -1 < this.state.selected_terms.map(Number).indexOf(item.id)),\r\n iatg_rrpls: data.rrpls.items,\r\n iatg_rrpls_select_values: data.rrpls.items.filter(item => -1 < this.state.selected_rrpls.map(Number).indexOf(item.id)),\r\n iatg_modules: data.modules.items,\r\n iatg_modules_select_values: data.modules.items.filter(item => -1 < this.state.selected_modules.map(Number).indexOf(item.id))\r\n\r\n },function() {\r\n\r\n })\r\n //this.determineDisabledOptions();\r\n },\r\n error => {\r\n if (error.message === '401') {\r\n authenticationService.logout();\r\n } else if (error.message === '500') {\r\n this.showErrorModal();\r\n }\r\n }\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n\r\n //read in state from query string\r\n const query = queryString.parse(window.location.search);\r\n\r\n let qsState = {};\r\n\r\n if (query.text) {\r\n qsState.text_search = query.text;\r\n }\r\n if (query.modules) {\r\n qsState.selected_modules = query.modules.split(',');\r\n }\r\n if (query.terms) {\r\n qsState.selected_terms = query.terms.split(',');\r\n }\r\n if (query.rrpls) {\r\n qsState.selected_rrpls = query.rrpls.split(',');\r\n }\r\n if (query.page) {\r\n qsState.selected_page = query.page;\r\n }\r\n if (query.sort_column) {\r\n qsState.sort_column = query.sort_column;\r\n }\r\n if (query.page_size) {\r\n qsState.page_size = query.page_size;\r\n }\r\n\r\n if (query.sort_type) {\r\n qsState.sort_type = query.sort_type;\r\n }\r\n\r\n this.setState(qsState, function() {\r\n this.fetchGuidelinesData();\r\n });\r\n\r\n var fetchGuidelinesData = this.fetchGuidelinesData;\r\n var fetchFilterData = this.fetchFilterData;\r\n\r\n this.i18n.on('languageChanged', function(lng) {\r\n fetchFilterData()\r\n fetchGuidelinesData(true);\r\n });\r\n\r\n }\r\n\r\n replaceQueryString() {\r\n\r\n let stateString = '';\r\n\r\n if (this.state.text_search !=='')\r\n stateString = stateString + \"text=\" + this.state.text_search + '&';\r\n\r\n if (0 < this.state.selected_modules.length)\r\n stateString = stateString + \"modules=\" + this.state.selected_modules.join(',') + '&';\r\n\r\n if (0 < this.state.selected_terms.length)\r\n stateString = stateString + \"terms=\" + this.state.selected_terms.join(',') + '&';\r\n\r\n if (0 < this.state.selected_rrpls.length)\r\n stateString = stateString + \"rrpls=\" + this.state.selected_rrpls.join(',') + '&';\r\n\r\n\r\n if (1 !== this.state.selected_page)\r\n stateString = stateString + \"page=\" + this.state.selected_page + '&';\r\n\r\n if ('module_number' !== this.state.sort_column)\r\n stateString = stateString + \"sort_column=\" + this.state.sort_column + '&';\r\n\r\n if (\"asc\" !== this.state.sort_type)\r\n stateString = stateString + \"sort_type=\" + this.state.sort_type + '&';\r\n\r\n if (process.env.REACT_APP_REQUIREMENTS_RESULTS_PER_PAGE !== this.state.page_size)\r\n stateString = stateString + \"page_size=\" + this.state.page_size + '&'\r\n\r\n if (0 < stateString.length) {\r\n stateString = '?' + stateString.substring(0, stateString.length - 1);\r\n } else {\r\n stateString = window.location.href.split('?')[0];\r\n }\r\n window.history.replaceState({}, '', stateString);\r\n\r\n\r\n this.setState({\r\n window_location : -1 < window.location.href.indexOf('?') ? window.location.href : window.location.href+window.location.search\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n handleSortColumn(sortColumn, sortType) {\r\n this.setState({\r\n guidelines_only: true,\r\n selected_page: 1,\r\n sort_column: sortColumn,\r\n sort_type: sortType\r\n }, function() {\r\n this.fetchGuidelinesData();\r\n });\r\n }\r\n\r\n determineDisabledOptions = () => {\r\n //once we have all the data we can disble options\r\n let returnTerms = this.state.iatg_terms.map(x => (-1 < this.state.allTerms.indexOf(x.id) ? x : { ...x, disabled: 'yes' }));\r\n let returnRrpls = this.state.iatg_rrpls.map(x => (-1 < this.state.allRRPLlements.indexOf(x.id) ? x : { ...x, disabled: 'yes' }));\r\n let returnModules = this.state.iatg_modules.map(x => (-1 < this.state.allModules.indexOf(x.id) ? x : { ...x, disabled: 'yes' }));\r\n\r\n this.setState({\r\n iatg_terms : returnTerms,\r\n iatg_rrpls : returnRrpls,\r\n iatg_modules : returnModules\r\n });\r\n }\r\n\r\n lowerPaginationEventHandler = (page) => {\r\n this.paginationEventHandler(page,true);\r\n window.scrollTo({top: this.upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"})\r\n }\r\n\r\n paginationEventHandler = (page,scrollToTop) => {\r\n this.setState({\r\n guidelines_only: true,\r\n selected_page: parseInt(page,10)\r\n }, function() {\r\n this.fetchGuidelinesData(scrollToTop);\r\n });\r\n }\r\n\r\n lowerPageSizeEventHandler = (page) => {\r\n this.pageSizeEventHandler(page,true);\r\n window.scrollTo({top: this.upperPaginationRef.current.getBoundingClientRect().bottom, behavior: \"smooth\"})\r\n\r\n }\r\n\r\n pageSizeEventHandler = (page,scrollToTop) => {\r\n this.setState({\r\n guidelines_only: true,\r\n selected_page: 1,\r\n page_size: page\r\n }, function() {\r\n this.fetchGuidelinesData();\r\n });\r\n }\r\n\r\n handleSaveAllClick = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n var GuidelineIds = this.state.guidelines.map(item => {\r\n //row_updating[item.id] = true;\r\n return item.id;\r\n });\r\n\r\n this.setState({\r\n showListSaveToFormModal: true,\r\n selectedListGuidelineIds: GuidelineIds\r\n });\r\n }\r\n\r\n saveHoverStatus = (value, index) => {\r\n const clone = [...this.state.save_row_hover];\r\n clone[index] = value;\r\n this.setState({\r\n save_row_hover: clone\r\n });\r\n }\r\n\r\n handleSaveClick = (e, id, is_saved_to_list) => {\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n //update the is_saved_to_list\r\n\r\n let row_updating = [...this.state.row_updating];\r\n row_updating[id] = true;\r\n this.setState({\r\n row_updating: row_updating\r\n });\r\n\r\n if (!is_saved_to_list) {\r\n\r\n guidelinesService.putToList([id], SiteConfig.docType)\r\n .then(\r\n (data) => {\r\n this.updateRowStatus(id, is_saved_to_list, row_updating);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {}\r\n );\r\n } else {\r\n\r\n guidelinesService.deleteFromList([id], SiteConfig.docType)\r\n .then(\r\n (data) => {\r\n this.updateRowStatus(id, is_saved_to_list, row_updating);\r\n myListCounterService.setMyListCount(data.count);\r\n },\r\n error => {}\r\n );\r\n }\r\n\r\n }\r\n\r\n updateRowStatus = (id, is_saved_to_list, row_updating) => {\r\n let guidelines = [...this.state.guidelines];\r\n var foundIndex = guidelines.findIndex(x => x.id === id);\r\n guidelines[foundIndex].is_saved_to_list = !is_saved_to_list;\r\n\r\n row_updating[id] = false;\r\n\r\n this.setState({\r\n row_updating: row_updating,\r\n guidelines: guidelines\r\n });\r\n }\r\n\r\n handleSelectChange = (selectedOption,ev) => {\r\n var stateItem = {\r\n guidelines_only: false,\r\n selected_page: 1,\r\n };\r\n\r\n var newIds = []\r\n\r\n if (selectedOption) {\r\n newIds = selectedOption.map(option => {\r\n return option.id;\r\n });\r\n }\r\n\r\n\r\n switch (ev.name) {\r\n case 'iatg_terms':\r\n stateItem.selected_terms = newIds;\r\n stateItem.iatg_terms_select_values = selectedOption;\r\n break;\r\n case 'iatg_rrpls':\r\n stateItem.selected_rrpls = newIds;\r\n stateItem.iatg_rrpls_select_values = selectedOption;\r\n break;\r\n case 'iatg_modules':\r\n stateItem.selected_modules = newIds;\r\n stateItem.iatg_modules_select_values = selectedOption;\r\n break;\r\n default:\r\n };\r\n\r\n this.setState(\r\n stateItem,\r\n function() {\r\n this.fetchGuidelinesData();\r\n }\r\n );\r\n\r\n }\r\n render() {\r\n const { error, numResults, text_search , show_toast, window_location, initiallyLoaded, loadingData, page_size, guidelines, iatg_terms, iatg_terms_select_values , iatg_rrpls, iatg_rrpls_select_values, iatg_modules, iatg_modules_select_values, iatg_modules_input_value, iatg_terms_input_value, iatg_rrpls_input_value } = this.state;\r\n\r\n const {createMarkup} = Helpers();\r\n\r\n const moduleFilterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n matchFrom: 'any',\r\n stringify: option => `${option.data.number} ${option.data.title}`,\r\n trim: true\r\n };\r\n\r\n const renderModuleOption = (option: Readonly