{"version":3,"sources":["components/card-container/card/card.module.scss","components/card-container/card-container.module.scss","services/service-keys.js","app-info.js","services/auth-service-msal.jsx","services/fetch-data.js","services/staff-list-api-service.js","services/member-api-service.js","services/address-verification-postgrid-api-service.js","services/membership-api-service.js","configure-services.js","services/index.js","helpers/ui.jsx","contexts/global-state.jsx","contexts/page-title.jsx","contexts/edit-profile.jsx","utils/media-query.js","components/header/header.jsx","components/address-auto-complete/address-auto-complete.jsx","components/back-button/back-button.jsx","components/pass-route-params/pass-route-params.jsx","components/auth-outlet/auth-outlet.jsx","components/selected-school-route/selected-school-route.jsx","components/footer/footer.jsx","app-const.js","components/card-container/card/card.jsx","components/card-container/card-container.jsx","layouts/single-card/single-card.jsx","pages/home/home.jsx","pages/locate-membership/locate-membership.jsx","pages/request-membership/request-membership.jsx","pages/staff-list/staff-list.jsx","pages/staff-details/staff-details.jsx","pages/review-records-request/review-records-request.jsx","pages/add-staff-request/add-staff-request.jsx","pages/edit-profile/edit-profile.jsx","pages/signed-out/signed-out.jsx","content.jsx","app.jsx","report-web-vitals.js","index.jsx"],"names":["module","exports","SERVICE_KEYS","STAFF_LIST_API","MEMBER_API","AUTH","ADDRESS_VERIFICATION_API","MEMBERSHIP_API","INTERACTION_TYPE","InteractionType","Redirect","MsalAuthService","getActiveAccount","msalApp","getAllAccounts","length","setActiveAccount","getAuthorizedOutletElement","authRequest","scopes","window","env","defaultScopes","interactionType","authenticationRequest","errorComponent","ErrorComponent","loadingComponent","LoadingComponent","error","errorCode","errorMessage","replace","signOut","Popup","logoutPopup","logoutRedirect","getPublicClientApplicationInstance","a","request","account","acquireTokenSilent","accessToken","console","oAuthConfig","PublicClientApplication","auth","cache","cacheLocation","storeAuthStateInCookie","ua","navigator","userAgent","msie","indexOf","msie11","isEdge","isIE","system","iframeHashTimeout","navigateFrameWait","logger","Logger","_logLevel","message","log","level","LogLevel","Verbose","piiLoggingEnabled","telemetry","applicationName","appInfo","applicationVersion","telemetryEmitter","events","urlEncodedContentType","jsonContentType","fetchData","url","getAuthHeaderAsync","method","contentType","body","ApiKey","authHeaderValue","fetch","headers","Headers","Authorization","response","json","data","ok","Error","status","staffListApiConfig","timeZone","StaffListApiService","getAuthorizationHeaderAsync","this","getSchoolsForWhichUserIsACommRepAsync","bind","getStaffListBySchoolAsync","requestRecordReviewAsync","requestSchoolAssociationRemovalAsync","updateStaffListCurrentDateAsync","findMemberByNameAsync","requestSchoolAssociationAdditionAsync","getCurrentSchoolYearInfo","params","fetchUrl","URLSearchParams","schoolId","createStore","key","loadUrl","onBeforeSend","_","ajaxOptions","Object","assign","memberIds","JSON","stringify","emailAddresses","memberApiConfig","MemberApiService","getByIdAsync","requestEditSchoolAssociationAsync","requestAddSchoolAssociationAsync","requestEditDesignationAsync","requestAddDesignationAsync","updateByIdAsync","memberId","AddressVerificationPostGridApiService","getAutoCompleteAddresses","getAddressDetails","addressVerificationPostGridApiConfig","requestUrl","addresses","map","n","index","place_id","description","preview","address","city","prov","searchTerm","province","split","join","baseRequestUrl","getAddressData","partialStreet","stateFilter","cityFilter","pc","membershipApiConfig","lookupUrl","MembershipApiService","sendRequestToLocateMembershipAsync","getLookupsAsync","requestMembershipRecordAsync","submittedInfo","useApiKey","undefined","serviceLocator","ServiceLocator","authService","AuthService","register","useAuthService","useServices","useStaffListApiService","useMembershipApiService","showError","notify","showSuccess","compareAddresses","e","storedAddress","setAddressVerified","component","NAME","val","value","option","toUpperCase","event","addressVerified","provinceId","postalCode","address1","iSAddressVerified","getStoredAddress","GlobalStateContext","createContext","useGlobalState","useContext","GlobalStateProvider","props","useState","lookupData","setLookupData","managedSchools","setManagedSchools","selectedMembers","setSelectedMembers","selectedSchool","setSelectedSchool","defaultSuggestedSAStartAndEndDates","setDefaultSuggestedSAStartAndEndDates","user","useAccount","handleSuggestedDefaultDates","useCallback","schoolYearInfo","defaultStartDate","currentDate","Date","schoolStartDate","startDate","schoolEndDate","endDate","getFullYear","defaultEndDate","now","currentYear","june30","getNearestPastJune30","useLayoutEffect","r","useEffect","getOps","then","salutations","genders","pronouns","emailAddressTypes","phoneNumberTypes","schools","divisions","designations","provinces","Promise","all","Provider","PageTitleContext","usePageTitle","PageTitleProvider","title","setTitleInternal","document","setTitle","AppInfo","EditProfileContext","useEditProfile","EditProfileProvider","editProfileInfo","setEditProfileInfoInternal","setEditProfileInfo","useScreenSize","getScreenSize","screenSize","setScreenSize","onSizeChanged","subscribe","unsubscribe","handlers","xSmallMedia","matchMedia","smallMedia","mediumMedia","largeMedia","forEach","media","addListener","matches","handler","push","filter","item","isXSmall","isSmall","isMedium","isLarge","signedOutPath","editProfilePath","pathname","useLocation","navigate","useNavigate","backButtonVisible","signOutVisible","className","location","visible","height","width","cssClass","id","includes","text","type","icon","onClick","undo","btn","form","getButton","saveButtonId","_clickAction","style","display","fontWeight","textAlign","paddingRight","recordReviewedByMember","debounce","require","AddressAutoComplete","ref","items","setItems","setSearchTerm","updateAddressFields","handleChange","process","JEST_WORKER_ID","handleSubmit","handleSelectionAsync","details","postal_code","txtEl","getElementById","autoCompleteTextBoxId","txt","TB","getInstance","useImperativeHandle","getAddress","showClearButton","valueChangeEvent","defaultValue","onValueChanged","onKeyDown","inputAttr","name","options","hint","elementAttr","showScrollbar","Math","min","keyExpr","dataSource","itemRender","selectionMode","onSelectionChanged","addedItems","forwardRef","path","state","otherProps","children","useParams","React","cloneElement","parseInt","school","find","s","staffList","scrollViewRef","scrollToGroupIndex","current","instance","scrollToElement","querySelector","scrollTo","selectDateBoxSetDate","trim","format","moment","isValid","date","reset","appConst","dateDisplayFormat","dateAndTimeDisplayFormat","defaultSelectBoxOptions","valueExpr","displayExpr","searchEnabled","searchMode","minSearchLength","showDataBeforeSearch","searchTimeout","postalCodePattern","postalCodeValidationMessage","emailPattern","emailPatternEpsbDomain","emailValidationMessage","emailValidationMessageEpsbDomain","phonePattern","phone10DigitsPattern","phoneEditorOptions","mask","maskRules","X","useMaskedValue","maskInvalidMessage","defaultSelectDateBoxOptions","displayFormat","invalidDateMessage","dateSerializationFormat","onFocusOut","slideDuration","defaultGridOptions","remoteOperations","rowAlternationEnabled","showBorders","allowColumnReordering","allowColumnResizing","columnResizingMode","hoverStateEnabled","wordWrapEnabled","pager","showPageSizeSelector","allowedPageSizes","showInfo","showInGroupFooter","summary","groupItems","column","summaryType","grouping","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupPanel","allowColumnDragging","filterPanel","filterRow","export","enabled","allowExportSelectedData","onExporting","fileName","element","scrolling","mode","rowRenderingMode","searchPanel","Card","containerId","updatePrimaryToFalse","updateSADivision","updateSAStartDate","updatePrinaryToTrue","showAddNewSAPopupVisible","primary","divisionId","endDatePopupVisible","setEndDatePopupVisible","toDateString","selectedEndDate","setSelectedEndDate","makeMainPopupVisible","setMakeMainPopupVisible","availableSchools","setAvailableSchools","selectedSAIndex","setSelectedSAIndex","okButonCaption","setOKButtonCaption","readOnly","hideEndDatePopup","validateEndDate","updateMain","hideMakeMainPopup","styles","card","label","selectByClick","stylingMode","onHiding","dragEnabled","hideOnOutsideClick","showCloseButton","showTitle","container","contentRender","showSelectNewLocation","fn","schoolIndex","findIndex","x","confirm","dialogResult","setEndDate","wrapperAttr","maxWidth","onShown","temp","sa","addNewSAPopupVisible","setAddNewSAPopupVisible","userHasWorkLocation","addNewSA","updatePrinaryToFalse","showAddNewLocationButton","newSA","setNewSA","schoolEditorOptions","divisionEditorOptions","startDateEditorOptions","addNewSaFormId","saIndexToEnd","cardData","formData","colCount","caption","dataField","editorType","editorOptions","hasOwn","layout","itemType","horizontalAlignment","verticalAlignment","buttonOptions","formEl","DxForm","validate","schoolName","getEditor","addNew","resetValues","useRef","menuToggleEnabled","toggleMenu","useNative","idTokenClaims","givenName","count","username","emailSent","setEmailSent","UserName","MemberCount","submitBtnText","setSubmitBtnText","submitButtonOptions","disabled","useSubmitBehavior","otherInformationEditorOptions","preventDefault","renderUsernameMessage","onSubmit","showValidationSummary","scrollingEnabled","render","pattern","userName","Schools","SchoolId","DivisionId","setFormData","setCity","setProvince","addressObj","HomeMailingAddress","City","PostalCode","Province","salutationEditorOptions","genderEditorOptions","pronounEditorOptions","provinceEditorOptions","phoneNumberTypeEditorOptions","marginTop","colSpan","sv","ScrollView","tmp","splice","scrollHeight","switchedOnText","switchedOffText","renderFillOutInformation","showActionSheet","setShowActionSheet","showList","showRemoveMemberPopup","setShowRemoveMemberPopup","showLoadingPanel","setShowLoadingPanel","renderRemoveMemberPopup","shadingColor","columnHidingEnabled","allowAdding","allowDeleting","allowUpdating","allowEditing","dataType","justifyContent","gap","Id","EndDate","renderMember","hasHomeEmailAddress","fullName","listHasSelectedItems","listInstance","getSelectedRowKeys","saveSelectedMembersToGlobalState","getSelectedRowsData","pushHistory","updateStaffListToCurrentDateAsync","tmpSelectedSchool","staffListReviewedByCommRep","tmpManagedSchools","setHeight","resizeInstance","resizeElement","List","DataGrid","innerHeight","getBoundingClientRect","y","addEventListener","removeEventListener","principalName","selectAllMode","showSelectionControls","searchExpr","useNativeScrolling","pageLoadMode","onContentReady","itemContent","querySelectorAll","on","stopImmediatePropagation","i","delegateTarget","innerHTML","j","substring","ds","FullName","SchoolAssociationId","schoolAssociationId","showCheckBoxesMode","summaryItem","sortOrder","editCellRender","cell","rowType","showCancelButton","onItemClick","action","itemData","containerElement","containerInstance","selectAll","deselectAll","onActionSheetCancelClick","rowData","personalizedMessage","setPersonalizedMessage","maxItemCount","placeholder","primarySchool","selectedItem","el","tb","TextBox","emailTxt","email","emailAddress","onEditorPreparing","row","hasOwnProperty","DxGrid","saveEditData","members","StartDate","emails","member","setMember","fetchingData","setFetchingData","setStoredAddress","grouped","emailAddressTypeEditorOptions","designationEditorOptions","handleFetchMember","saveProfile","getFormInstance","res","brokenRules","validator","focus","addressNameAndVerfication","addressAutoCompleteRef","firstName","lastName","preferredFirstName","previousLastName","address2","pronounsId","salutationId","phoneNumbers","birthDate","certificateNumber","genderId","concat","previousSchools","setPreferredEmailOrPhone","property","preferred","setMemberAndKeepScrollPosition","scrollTop","getElementsByClassName","selectedSAToBePrimary","newSa","saveButtonName","onOptionChanged","isNotFirstLoad","xs","sm","md","lg","currentState","p","newState","updateStateAddressFields","createStoredAddress","emailEditor","phone","phoneEditor","designation","showIndicator","shading","showPane","closeOnOutsideClick","to","screenSizeClass","useScreenSizeClass","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","pca","resolve","enableAccountStorageEvents","addEventCallback","eventType","EventType","ACCOUNT_ADDED","payload","ACCOUNT_REMOVED","ReactDOM","StrictMode","locator"],"mappings":"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","file":"static/js/main.3a0a70f1.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"card_card__1ueT6\",\"card-header\":\"card_card-header__1aUiy\",\"make-main-popup-body\":\"card_make-main-popup-body__2o_qd\",\"end-date-popup-body\":\"card_end-date-popup-body__3bEqi\",\"start-date\":\"card_start-date__3rJYI\",\"end-date\":\"card_end-date__lMYPe\",\"division\":\"card_division__2FoS8\",\"end-position-button\":\"card_end-position-button__2-bim\",\"make-main-button\":\"card_make-main-button__1J-b0\",\"card-body\":\"card_card-body__lJLjC\",\"make-main-popup-wrapper\":\"card_make-main-popup-wrapper__1OP8U\",\"end-date-popup-wrapper\":\"card_end-date-popup-wrapper__3TVM9\",\"make-main-popup-content\":\"card_make-main-popup-content__2-a3W\",\"end-date-popup-content\":\"card_end-date-popup-content__1_JT-\",\"make-main-popup-footer\":\"card_make-main-popup-footer__1aApB\",\"end-date-popup-footer\":\"card_end-date-popup-footer__DjG3E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card-container\":\"card-container_card-container__1oy6E\",\"add-new-sa-container\":\"card-container_add-new-sa-container__1cRYf\"};","const SERVICE_KEYS = {\n STAFF_LIST_API: 'StaffListApiService',\n MEMBER_API:'Member',\n AUTH: 'AuthService',\n ADDRESS_VERIFICATION_API: 'AddressVerificationApiService',\n MEMBERSHIP_API:\"MembershipApiService,\"\n};\n\nexport default SERVICE_KEYS;\n","export default {\n title: 'Epitome Member Access',\n version: '2024.1'\n};\n","import React from 'react';\nimport {\n Logger,\n LogLevel,\n PublicClientApplication,\n InteractionType,\n} from '@azure/msal-browser';\nimport { MsalAuthenticationTemplate } from '@azure/msal-react';\nimport { Outlet } from 'react-router-dom';\nimport appInfo from '../app-info';\n\nconst INTERACTION_TYPE = InteractionType.Redirect;\n\nexport default class MsalAuthService {\n async getAuthorizationHeaderAsync(scopes) {\n const request = {\n account: msalApp.getActiveAccount(),\n scopes\n };\n\n try {\n const { accessToken } = await msalApp.acquireTokenSilent(request);\n if (accessToken) {\n return `Bearer ${accessToken}`;\n }\n }\n catch (error) {\n //We can't fall back to interactive token acquisition here.\n //See https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/FAQ.md#what-can-i-do-outside-of-azuremsal-react-context\n console.error('Non-interactive error:', error);\n }\n return null;\n };\n\n getActiveAccount = () => {\n //Set the active account if one is already signed in or when one does.\n if (!msalApp.getActiveAccount() && msalApp.getAllAccounts().length > 0) {\n msalApp.setActiveAccount(msalApp.getAllAccounts()[0]);\n }\n\n return msalApp.getActiveAccount();\n }\n\n getAuthorizedOutletElement = () => {\n const authRequest = {\n scopes: window.env.defaultScopes\n }\n\n return (\n \n \n \n );\n }\n\n ErrorComponent = ({ error }) => {\n return
\n

An Error Occurred:

\n

Error Code: {error.errorCode}

\n

Error Message: {error.errorMessage.replace(/(\\r\\n|\\n\\r|\\r|\\n)/g, ' ')}

\n
;\n }\n\n LoadingComponent = () => {\n return

Signing in. Please wait...

;\n }\n\n signOut = () => {\n if (InteractionType.Popup === INTERACTION_TYPE) {\n msalApp.logoutPopup();\n } else {\n msalApp.logoutRedirect();\n }\n };\n\n //This method is not part of the \"interface\" for an auth service.\n //It's necessary to facilitate the singleton instance of the PublicClientApplication\n //to be used by this service and the MsalProvider.\n getPublicClientApplicationInstance = () => msalApp;\n}\n\nconst isIE = () => {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ') > -1;\n const msie11 = ua.indexOf('Trident/') > -1;\n\n // If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\n const isEdge = ua.indexOf('Edge/') > -1;\n\n return msie || msie11 || isEdge;\n};\n\nconst { oAuthConfig } = window.env;\n\nconst msalApp = new PublicClientApplication({\n auth: oAuthConfig,\n cache: {\n cacheLocation: 'localStorage',\n storeAuthStateInCookie: isIE(),\n },\n system: {\n iframeHashTimeout: 10000,\n navigateFrameWait: 500,\n logger: new Logger(\n (_logLevel, message) => {\n console.log(message);\n },\n {\n level: LogLevel.Verbose,\n piiLoggingEnabled: true,\n },\n ),\n telemetry: {\n applicationName: appInfo.title,\n applicationVersion: appInfo.version,\n telemetryEmitter: (events) => {\n console.log('Telemetry Events:', events);\n },\n },\n },\n});","export const urlEncodedContentType = 'application/x-www-form-urlencoded';\nexport const jsonContentType = 'application/json';\n\nexport async function fetchData(url, getAuthHeaderAsync, scopes, method, contentType, body, ApiKey) {\n let response;\n if (!ApiKey) {\n const authHeaderValue = await getAuthHeaderAsync(scopes);\n response = await fetch(url, {\n method: method,\n headers: new Headers({\n 'Content-Type': contentType,\n Authorization: authHeaderValue,\n 'Accept': 'application/json'\n }),\n body: body,\n })\n } else {\n response = await fetch(url, {\n method: method,\n headers: new Headers({\n 'Content-Type': contentType,\n 'ApiKey': ApiKey,\n 'Accept': 'application/json'\n }),\n body: body,\n })\n }\n const data = await response.json();\n if (response.ok) {\n return { data: data };\n } else {\n throw new Error(`Status:${response.status} ${data}`)\n }\n}","import { createStore } from \"devextreme-aspnet-data-nojquery\";\nimport { urlEncodedContentType, jsonContentType, fetchData } from './fetch-data';\n\n\nconst {\n staffListApiConfig: { url },\n defaultScopes: scopes,\n timeZone\n} = window.env;\n\nexport default class StaffListApiService {\n getAuthHeaderAsync = async () => { };\n constructor({ getAuthorizationHeaderAsync }) {\n if (!getAuthorizationHeaderAsync)\n throw Error(\n \"An authorization service must be specified for the protected graph API.\"\n );\n this.getAuthHeaderAsync = getAuthorizationHeaderAsync;\n this.getSchoolsForWhichUserIsACommRepAsync = this.getSchoolsForWhichUserIsACommRepAsync.bind(this);\n this.getStaffListBySchoolAsync = this.getStaffListBySchoolAsync.bind(this);\n this.requestRecordReviewAsync = this.requestRecordReviewAsync.bind(this);\n this.requestSchoolAssociationRemovalAsync = this.requestSchoolAssociationRemovalAsync.bind(this);\n this.updateStaffListCurrentDateAsync = this.updateStaffListCurrentDateAsync.bind(this);\n this.findMemberByNameAsync = this.findMemberByNameAsync.bind(this);\n this.requestSchoolAssociationAdditionAsync = this.requestSchoolAssociationAdditionAsync.bind(this);\n this.getCurrentSchoolYearInfo = this.getCurrentSchoolYearInfo.bind(this);\n }\n\n async getSchoolsForWhichUserIsACommRepAsync() {\n const params = {\n timeZone: window.env.timeZone,\n };\n const fetchUrl = `${url}/GetSchoolsForWhichUserIsACommRep?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'GET', urlEncodedContentType);\n return response;\n }\n\n async getStaffListBySchoolAsync(schoolId) {\n const params = {\n schoolId,\n timeZone \n };\n const fetchUrl = `${url}/GetStaffListBySchool?${new URLSearchParams(params)}`;\n return await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'GET', urlEncodedContentType);\n }\n\n async getCurrentSchoolYearInfo() {\n const fetchUrl = `${url}/GetCurrentSchoolYearInfo`;\n return await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'GET', urlEncodedContentType);\n }\n\n findMemberByNameAsync() {\n return createStore({\n key: \"Id\",\n loadUrl: `${url}/FindMemberByName`,\n onBeforeSend: async (_, ajaxOptions) => {\n const authHeaderValue = await this.getAuthHeaderAsync(scopes);\n if (authHeaderValue) {\n if (!ajaxOptions.headers) {\n ajaxOptions.headers = {};\n }\n Object.assign(ajaxOptions.headers, {\n Authorization: authHeaderValue,\n });\n }\n },\n });\n }\n\n async requestRecordReviewAsync(schoolId, memberIds, message) {\n const body = JSON.stringify({ 'SchoolId': schoolId, 'MemberIds': memberIds, 'Message': message });\n const fetchUrl = `${url}/RequestRecordReview`\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async requestSchoolAssociationRemovalAsync(schoolId, memberIds, message) {\n const body = JSON.stringify({ 'SchoolId': schoolId, 'MemberSchoolInfo': memberIds, 'Message': message });\n const fetchUrl = `${url}/RequestSchoolAssociationRemoval`\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async updateStaffListCurrentDateAsync(schoolId) {\n const params = {\n schoolId: schoolId,\n };\n const fetchUrl = `${url}/UpdateStaffListCurrentDate?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', urlEncodedContentType);\n return response;\n }\n\n async requestSchoolAssociationAdditionAsync(schoolId, memberIds, emailAddresses) {\n const body = JSON.stringify({ 'SchoolId': schoolId, 'MemberSchoolInfo': memberIds, 'EmailAddresses': emailAddresses });\n const fetchUrl = `${url}/RequestSchoolAssociationAddition`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n}","import { urlEncodedContentType, jsonContentType, fetchData } from './fetch-data';\n\nconst {\n memberApiConfig: { url },\n defaultScopes: scopes,\n timeZone,\n} = window.env;\n\nexport default class MemberApiService {\n getAuthHeaderAsync = async () => { };\n\n constructor({ getAuthorizationHeaderAsync }) {\n if (!getAuthorizationHeaderAsync)\n throw Error(\n \"An authorization service must be specified for the protected graph API.\"\n )\n this.getAuthHeaderAsync = getAuthorizationHeaderAsync;\n\n this.getByIdAsync = this.getByIdAsync.bind(this);\n this.requestEditSchoolAssociationAsync = this.requestEditSchoolAssociationAsync.bind(this);\n this.requestAddSchoolAssociationAsync = this.requestAddSchoolAssociationAsync.bind(this);\n this.requestEditDesignationAsync = this.requestEditDesignationAsync.bind(this);\n this.requestAddDesignationAsync = this.requestAddDesignationAsync.bind(this);\n this.updateByIdAsync = this.updateByIdAsync.bind(this);\n }\n\n async getByIdAsync(memberId) {\n const params = {\n memberId: memberId,\n timeZone: timeZone,\n };\n const fetchUrl = `${url}/GetById?${new URLSearchParams(params)}`;\n return await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'GET', urlEncodedContentType);\n }\n\n async requestEditSchoolAssociationAsync(memberId, data) {\n const params = {\n memberId: memberId\n };\n const body = JSON.stringify(data);\n const fetchUrl = `${url}/RequestEditSchoolAssociation?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async requestAddSchoolAssociationAsync(memberId, data) {\n const params = {\n memberId: memberId\n };\n const body = JSON.stringify(data);\n const fetchUrl = `${url}/RequestAddSchoolAssociation?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async requestEditDesignationAsync(memberId, data) {\n const params = {\n memberId: memberId\n };\n const body = JSON.stringify(data);\n const fetchUrl = `${url}/RequestEditDesignation?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async requestAddDesignationAsync(memberId, data) {\n const params = {\n memberId: memberId\n };\n const body = JSON.stringify(data);\n const fetchUrl = `${url}/RequestAddDesignation?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n\n async updateByIdAsync(memberId, data) {\n const params = {\n memberId: memberId,\n timeZone: window.env.timeZone,\n };\n const body = JSON.stringify(data);\n const fetchUrl = `${url}/UpdateById?${new URLSearchParams(params)}`;\n const response = await fetchData(fetchUrl, this.getAuthHeaderAsync, scopes, 'POST', jsonContentType, body);\n return response;\n }\n}","const urlEncodedContentType = 'application/x-www-form-urlencoded';\nconst jsonContentType = 'application/json';\n\nexport default class AddressVerificationPostGridApiService {\n constructor() {\n this.getAutoCompleteAddresses = this.getAutoCompleteAddresses.bind(this);\n this.getAddressDetails = this.getAddressDetails.bind(this);\n }\n\n async fetchData(url, method, body, contentType) {\n const response = await fetch(url, {\n method: method,\n headers: {\n 'Content-Type': contentType,\n 'x-api-key': window.env.addressVerificationPostGridApiConfig.key,\n },\n body: body,\n })\n if (response.status !== 200) {\n throw new Error(\"Error in calling the API.\");\n }\n const data = await response.json();\n return { data: data };\n }\n\n async getAddressData(requestUrl) {\n let response = await this.fetchData(requestUrl, 'GET', null, urlEncodedContentType);\n let addresses = response.data.data.map((n, index) => {\n return {\n place_id: index,\n description: `${n.preview.address}, ${n.preview.city}, ${n.preview.prov}`,\n };\n })\n return addresses;\n }\n\n async getAutoCompleteAddresses(searchTerm, city, province) {\n if ('' === searchTerm) return [];\n searchTerm = searchTerm.split(' ').join('+');\n let baseRequestUrl = `https://api.postgrid.com/v1/addver/completions?partialStreet=${searchTerm}&countryFilter=CA&provInsteadOfPC=true`;\n let requestUrl = baseRequestUrl;\n if (city !== '' && city !== null && typeof city !== 'undefined') {\n city = city.split(' ').join('+');\n requestUrl += `&cityFilter=${city}`;\n }\n\n if (province !== '' && province !== null && typeof province !== 'undefined') {\n province = province.split(' ').join('+');\n requestUrl += `&stateFilter=${province}`;\n }\n\n let addresses = await this.getAddressData(requestUrl, false);\n if (addresses.length === 0) {\n requestUrl = baseRequestUrl;\n addresses = await this.getAddressData(requestUrl, true);\n }\n return addresses;\n }\n\n async getAddressDetails(place_id, partialStreet, city, province) {\n let requestUrl = `https://api.postgrid.com/v1/addver/completions?index=${place_id}`;\n let body = JSON.stringify({ 'partialStreet': partialStreet, 'countryFilter': 'CA', stateFilter: province, cityFilter: city });\n let response = await this.fetchData(requestUrl, 'POST', body, jsonContentType);\n if (response.data.data.length === 0) {\n body = JSON.stringify({ 'partialStreet': partialStreet, 'countryFilter': 'CA' });\n response = await this.fetchData(requestUrl, 'POST', body, jsonContentType);\n }\n return {\n 'address': response.data.data.address.address,\n 'city': response.data.data.address.city,\n 'postal_code': response.data.data.address.pc,\n 'province': response.data.data.address.prov,\n }\n }\n}","//import { createStore } from \"devextreme-aspnet-data-nojquery\";\nimport {\n jsonContentType,\n urlEncodedContentType,\n fetchData\n} from './fetch-data';\n\n\nconst {\n membershipApiConfig: { url },\n defaultScopes: scopes,\n lookupUrl,\n ApiKey\n} = window.env;\n\nexport default class MembershipApiService {\n getAuthHeaderAsync = async () => { };\n constructor({ getAuthorizationHeaderAsync }) {\n if (!getAuthorizationHeaderAsync)\n throw Error(\n \"An authorization service must be specified for the protected graph API.\"\n );\n\n this.getAuthHeaderAsync = getAuthorizationHeaderAsync;\n this.sendRequestToLocateMembershipAsync = this.sendRequestToLocateMembershipAsync.bind(this);\n this.getLookupsAsync = this.getLookupsAsync.bind(this);\n this.requestMembershipRecordAsync = this.requestMembershipRecordAsync.bind(this);\n }\n\n async sendRequestToLocateMembershipAsync(submittedInfo) {\n let body = JSON.stringify(submittedInfo);\n return await fetchData(`${url}/SendRequestToLocateMembership`, this.getAuthHeaderAsync, scopes, \"POST\", jsonContentType, body, ApiKey);\n }\n\n async requestMembershipRecordAsync(submittedInfo) {\n let body = JSON.stringify(submittedInfo);\n return await fetchData(`${url}/RequestMembershipRecord`, this.getAuthHeaderAsync, scopes, \"POST\", jsonContentType, body, ApiKey);\n }\n\n async getLookupsAsync(method, useApiKey) {\n return await fetchData(`${lookupUrl}/${method}`, this.getAuthHeaderAsync, scopes, \"GET\", urlEncodedContentType, undefined, ApiKey);\n // return createStore({\n // key: \"value\",\n // loadUrl: `${lookupUrl}/${method}`,\n // onBeforeSend: async (_, ajaxOptions) => {\n // if (!ajaxOptions.headers) {\n // ajaxOptions.headers = {};\n // }\n // if (!useApiKey) {\n // const authHeaderValue = await this.getAuthHeaderAsync(scopes);\n // if (authHeaderValue) {\n // Object.assign(ajaxOptions.headers, {\n // Authorization: authHeaderValue,\n // });\n // }\n // } else {\n // Object.assign(ajaxOptions.headers, {\n // \"ApiKey\": ApiKey,\n // })\n // }\n // },\n // });\n }\n}","import { ServiceLocator } from 'react-decoupler';\nimport SERVICE_KEYS from './services/service-keys';\nimport AuthService from './services/auth-service-msal';\nimport StaffListApiService from './services/staff-list-api-service';\nimport MemberApiService from './services/member-api-service';\nimport AddressVerificationPostGridApiService from './services/address-verification-postgrid-api-service';\nimport MembershipApiService from './services/membership-api-service';\n\nconst serviceLocator = new ServiceLocator();\n\nconst authService = new AuthService();\n\nserviceLocator.register(SERVICE_KEYS.AUTH, authService);\nserviceLocator.register(SERVICE_KEYS.STAFF_LIST_API, new StaffListApiService(authService));\nserviceLocator.register(SERVICE_KEYS.MEMBER_API, new MemberApiService(authService));\nserviceLocator.register(SERVICE_KEYS.ADDRESS_VERIFICATION_API, new AddressVerificationPostGridApiService(authService));\nserviceLocator.register(SERVICE_KEYS.MEMBERSHIP_API, new MembershipApiService(authService));\n\nexport default serviceLocator;\n","import { useServices } from 'react-decoupler';\nimport SERVICE_KEYS from './service-keys';\n\nexport const useAuthService = () => useServices([SERVICE_KEYS.AUTH])[0];\nexport const useStaffListApiService = () =>\n useServices([SERVICE_KEYS.STAFF_LIST_API])[0];\nexport const useMemberApiService = () =>\n useServices([SERVICE_KEYS.MEMBER_API])[0];\nexport const useAddressVerificationApiService = () =>\n useServices([SERVICE_KEYS.ADDRESS_VERIFICATION_API])[0];\nexport const useMembershipApiService = () =>\n useServices([SERVICE_KEYS.MEMBERSHIP_API])[0];\n\n","import React from 'react';\nimport notify from 'devextreme/ui/notify';\nimport { Button as TextBoxButton } from 'devextreme-react/text-box';\n\nexport function showError(message) {\n notify(message, 'error', 4000);\n}\n\nexport function showSuccess(message) {\n notify(message, 'success', 2000);\n}\n\nexport function renderVerificationIcon(isValid) {\n const imgUrl = isValid ? '../../imgs/valid.svg' : '../../imgs/invalid.svg';\n return (\n \n )\n}\n\nfunction iSAddressVerified(data, storedAddress) {\n if (storedAddress.addressVerified) {\n if (data.city.toUpperCase() === storedAddress.city.toUpperCase()\n && data.provinceId === storedAddress.provinceId\n && data.postalCode.toUpperCase() === storedAddress.postalCode.toUpperCase()\n && data.address1.toUpperCase() === storedAddress.address1.toUpperCase()\n ) {\n return true\n } else {\n return false\n }\n } else {\n return false;\n }\n}\n\nexport function compareAddresses(e, data, storedAddress, setAddressVerified) {\n if (e.component.NAME === \"dxTextBox\") {\n const val = e.value ?? \"\";\n e.component.option(\"value\", val.toUpperCase());\n }\n if (typeof e.event !== 'undefined') {\n if (iSAddressVerified(data, storedAddress)) {\n setAddressVerified(true);\n } else {\n setAddressVerified(false);\n }\n }\n}\n\nexport function getStoredAddress(data) {\n const obj = {\n addressVerified: data.addressVerified,\n city: data.city && data.city.toUpperCase(),\n provinceId: data.provinceId,\n postalCode: data.postalCode && data.postalCode.toUpperCase(),\n address1: data.address1 && data.address1.toUpperCase(),\n }\n return obj;\n}\n\nexport function createStoredAddress(addressObj) {\n const obj = {\n addressVerified: true,\n city: addressObj.city,\n provinceId: addressObj.provinceId,\n postalCode: addressObj.postalCode,\n address1: addressObj.address,\n }\n return obj;\n}\n\nexport function updateStateAddressFields(addressObj, currentState, provinces) {\n const province = provinces && provinces.find(p => p.text === addressObj.province);\n addressObj.provinceId = province && province.value;\n\n const newState = { ...currentState };\n newState.address1 = addressObj.address;\n newState.city = addressObj.city;\n newState.provinceId = addressObj.provinceId;\n newState.postalCode = addressObj.postalCode;\n newState.addressVerified = true;\n return newState;\n}","import React, {\n useLayoutEffect,\n useEffect,\n useState,\n createContext,\n useContext,\n useCallback,\n} from 'react';\nimport { useAccount } from '@azure/msal-react';\nimport {\n useMembershipApiService,\n useStaffListApiService,\n} from \"../services\";\nimport { showError } from '../helpers/ui';\n\nconst GlobalStateContext = createContext({});\nconst useGlobalState = () => useContext(GlobalStateContext);\n\nfunction GlobalStateProvider(props) {\n const [lookupData, setLookupData] = useState({});\n const [managedSchools, setManagedSchools] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState([]);\n const [selectedSchool, setSelectedSchool] = useState();\n const { getLookupsAsync } = useMembershipApiService();\n const { getSchoolsForWhichUserIsACommRepAsync, getCurrentSchoolYearInfo } = useStaffListApiService();\n const [defaultSuggestedSAStartAndEndDates, setDefaultSuggestedSAStartAndEndDates] = useState();\n const user = useAccount();\n\n function getNearestPastJune30() {\n const now = new Date(); // Current date\n const currentYear = now.getFullYear(); // Current year\n\n // Create a Date object for June 30 of the current year\n let june30 = new Date(currentYear, 5, 30); // Months are 0-indexed, so 5 is June\n\n // If today is before June 30 of this year, return June 30 of the previous year\n if (now < june30) {\n june30 = new Date(currentYear - 1, 5, 30);\n }\n\n return june30;\n }\n\n const handleSuggestedDefaultDates = useCallback((schoolYearInfo) => {\n let currentDate = new Date();\n let schoolStartDate = new Date(schoolYearInfo.startDate);\n let schoolEndDate = new Date(schoolYearInfo.endDate);\n\n let defaultStartDate;\n if (currentDate <= schoolEndDate) {\n defaultStartDate = new Date(schoolStartDate.getFullYear(), 8, 1);\n } else {\n defaultStartDate = new Date(schoolEndDate.getFullYear() + 1 , 8, 1);\n }\n\n let defaultEndDate = getNearestPastJune30();\n\n setDefaultSuggestedSAStartAndEndDates({ defaultStartDate: defaultStartDate, defaultEndDate: defaultEndDate });\n }, []);\n\n\n useLayoutEffect(() => {\n (async () => {\n if (user) {\n try {\n let r = await getSchoolsForWhichUserIsACommRepAsync();\n if (r.data) {\n setManagedSchools(r.data);\n } else {\n showError('Error getting schools for which the signed on user is a communication rep.')\n }\n\n r = await getCurrentSchoolYearInfo();\n if (r.data) {\n handleSuggestedDefaultDates(r.data);\n } else {\n showError('Error getting schools for which the signed on user is a communication rep.')\n }\n\n }\n catch (error) {\n showError(error.message);\n }\n }\n })();\n }, [\n setManagedSchools,\n getSchoolsForWhichUserIsACommRepAsync,\n user,\n getCurrentSchoolYearInfo,\n handleSuggestedDefaultDates\n ]);\n\n useEffect(() => {\n (async () => {\n let lookupData = {};\n const getOps = [\n getLookupsAsync('GetSalutations').then((response) => lookupData.salutations = response.data.data),\n getLookupsAsync('GetGenders').then((response) => lookupData.genders = response.data.data),\n getLookupsAsync('GetPronouns').then((response) => lookupData.pronouns = response.data.data),\n getLookupsAsync('GetEmailAddressTypes').then((response) => lookupData.emailAddressTypes = response.data.data),\n getLookupsAsync('GetPhoneNumberTypes').then((response) => lookupData.phoneNumberTypes = response.data.data),\n getLookupsAsync('GetSchools').then((response) => lookupData.schools = response.data.data),\n getLookupsAsync('GetDivisions').then((response) => lookupData.divisions = response.data.data),\n getLookupsAsync('GetDesignations').then((response) => lookupData.designations = response.data.data),\n getLookupsAsync('GetProvinces').then((response) => lookupData.provinces = response.data.data),\n ];\n await Promise.all(getOps);\n setLookupData(lookupData);\n })();\n }, [\n getLookupsAsync,\n setLookupData\n ]);\n\n return (\n \n );\n}\n\nexport {\n GlobalStateProvider,\n useGlobalState,\n};\n\n","import React, {\n useState,\n createContext,\n useContext,\n useLayoutEffect\n} from 'react';\nimport AppInfo from '../app-info';\n\nconst PageTitleContext = createContext({});\n\nconst usePageTitle = () => useContext(PageTitleContext);\n\nfunction PageTitleProvider(props) {\n const [title, setTitleInternal] = useState('');\n\n const setTitle = (value) => {\n if (!value)\n value = AppInfo.title;\n setTitleInternal(value);\n };\n\n useLayoutEffect(() => {\n document.title = title;\n }, [title]);\n\n return (\n \n );\n}\n\nexport {\n PageTitleProvider,\n usePageTitle\n};","import React, {\n useState,\n createContext,\n useContext,\n} from 'react';\n\nconst EditProfileContext = createContext({});\n\nconst useEditProfile = () => useContext(EditProfileContext);\n\nfunction EditProfileProvider(props) {\n const [editProfileInfo, setEditProfileInfoInternal] = useState({});\n\n const setEditProfileInfo = (value) => {\n setEditProfileInfoInternal(value);\n };\n\n return (\n \n );\n}\n\nexport {\n EditProfileProvider,\n useEditProfile\n};","import {\n useState,\n useCallback,\n useEffect,\n} from 'react';\n\nexport const useScreenSize = () => {\n const [screenSize, setScreenSize] = useState(getScreenSize());\n const onSizeChanged = useCallback(() => {\n setScreenSize(getScreenSize());\n }, []);\n\n useEffect(() => {\n subscribe(onSizeChanged);\n\n return () => {\n unsubscribe(onSizeChanged);\n };\n }, [onSizeChanged]);\n\n return screenSize;\n};\n\nexport const useScreenSizeClass = () => {\n const screenSize = useScreenSize();\n\n if (screenSize.isLarge) {\n return 'screen-large';\n }\n\n if (screenSize.isMedium) {\n return 'screen-medium';\n }\n\n if (screenSize.isSmall) {\n return 'screen-small';\n }\n\n return 'screen-x-small';\n};\n\nlet handlers = [];\nconst xSmallMedia = window.matchMedia('(max-width: 599.99px)');\nconst smallMedia = window.matchMedia('(min-width: 600px) and (max-width: 959.99px)');\nconst mediumMedia = window.matchMedia('(min-width: 960px) and (max-width: 1279.99px)');\nconst largeMedia = window.matchMedia('(min-width: 1280px)');\n\n[xSmallMedia, smallMedia, mediumMedia, largeMedia].forEach((media) => {\n media.addListener((e) => {\n if (e.matches) {\n handlers.forEach((handler) => handler());\n }\n });\n});\n\nconst subscribe = (handler) => handlers.push(handler);\n\nconst unsubscribe = (handler) => {\n handlers = handlers.filter((item) => item !== handler);\n};\n\nfunction getScreenSize() {\n return {\n isXSmall: xSmallMedia.matches,\n isSmall: smallMedia.matches,\n isMedium: mediumMedia.matches,\n isLarge: largeMedia.matches,\n };\n}\n","import React from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\nimport Button from 'devextreme-react/button';\nimport {\n useAuthService\n} from \"../../services\";\nimport {\n BackButton,\n} from '../';\nimport './header.scss';\n//{ title, recordReviewedByMember, form, saveButtonId }\nexport default ({ title, editProfileInfo }) => {\n const signedOutPath = \"/signed-out\";\n const editProfilePath = \"/edit-profile\";\n\n const { pathname } = useLocation();\n const { signOut } = useAuthService();\n const navigate = useNavigate();\n const backButtonVisible = pathname !== \"/\" &&\n pathname !== signedOutPath;\n const signOutVisible = pathname !== signedOutPath;\n return (\n <>\n
\n \n \n \n \n \n
\n {title}\n
\n \n\n \n
\n
\n

{`Last Review On: ${(editProfileInfo.recordReviewedByMember === null) ? \"\" : editProfileInfo.recordReviewedByMember}`}

\n
\n \n )\n};\n","import React, { useState, forwardRef, useImperativeHandle } from 'react';\nimport TextBox, { Button as TextBoxButton } from 'devextreme-react/text-box';\nimport List from 'devextreme-react/list';\nimport TB from 'devextreme/ui/text_box';\nimport { useAddressVerificationApiService } from '../../services';\nimport './address-auto-complete.scss';\nimport { showError } from '../../helpers/ui';\n\nconst debounce = require('debounce');\nconst AddressAutoComplete = function (props, ref) {\n const [items, setItems] = useState([]);\n const [searchTerm, setSearchTerm] = useState(props.value);\n const { getAutoCompleteAddresses, getAddressDetails } = useAddressVerificationApiService();\n const { updateAddressFields, city, province } = props;\n const [ addressVerified, setAddressVerified ] = useState(props.addressVerified)\n\n useImperativeHandle(ref, () => ({\n getAddress() {\n return { address: searchTerm, addressVerified: addressVerified };\n },\n }));\n\n async function handleChange(e) {\n if (typeof e.event !== 'undefined'\n || typeof process.env.JEST_WORKER_ID !== 'undefined') {\n if (addressVerified) setAddressVerified(false);\n if (e.value === '') {\n setItems([]);\n setSearchTerm(e.value);\n } else {\n setSearchTerm(e.value);\n debounce(await handleSubmit(), 250);\n }\n }\n }\n\n async function handleSelectionAsync(place_id) {\n try {\n const details = await getAddressDetails(place_id, searchTerm, city, province);\n setAddressVerified(true);\n updateAddressFields({\n address: details.address,\n city: details.city,\n postalCode: details.postal_code,\n province: details.province,\n });\n } catch (error) {\n showError('Error in getting the address.')\n }\n }\n\n async function handleSubmit() {\n // I changed the way of getting the textbox value because in\n //the props.value the text comes without the last character.\n let txtEl = document.getElementById(props.autoCompleteTextBoxId);\n let txt = TB.getInstance(txtEl);\n //brad\n //const data = await getAutoCompleteAddresses(props.value);\n try {\n const data = await getAutoCompleteAddresses(txt.option('value'), city, province);\n setItems(data);\n } catch (error) {\n showError('Error in getting the addresses.')\n }\n }\n\n function itemRender(item) {\n return (
\n {item.description}\n
);\n }\n\n const { autoCompleteTextBoxId } = props;\n return (\n
\n
\n {\n await handleChange(e)\n }\n }\n onKeyDown={\n (e) => {\n if (e.event.key === \"Escape\") {\n setItems([]);\n }\n if (e.event.key === \"Tab\") {\n //ToDO: move the focus to the list when we press tab on the text box.\n }\n }\n }\n inputAttr={{ 'style': \"text-transform: uppercase\" }}\n >\n \n \n
\n 0}\n itemRender={itemRender}\n selectionMode=\"single\"\n onSelectionChanged={\n async (e) => {\n setItems([]);\n if (e.addedItems.length === 0) return;\n await handleSelectionAsync(e.addedItems[0].place_id);\n }\n }\n />\n
\n
\n
\n );\n}\n\nexport default forwardRef(AddressAutoComplete);\n\n","import React from 'react';\nimport { useNavigate } from \"react-router-dom\";\nimport Button from 'devextreme-react/button';\n\nexport default function (props) {\n const { path, state, ...otherProps } = props;\n const navigate = useNavigate();\n return (\n {\n if (path)\n navigate(path, { state });\n else\n navigate(-1);\n }\n }\n />\n );\n}","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nexport default function ({ children }) {\n const params = useParams();\n return React.cloneElement(children, params);\n}","import { useAuthService } from '../../services';\n\nexport default function () {\n\treturn useAuthService().getAuthorizedOutletElement();\n}","import React, {\n useLayoutEffect,\n} from 'react';\nimport { Outlet, useNavigate } from 'react-router-dom';\nimport { useStaffListApiService } from '../../services';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { showError } from '../../helpers/ui';\n\nexport default ({ schoolId }) => {\n const {\n selectedSchool,\n setSelectedSchool,\n managedSchools } = useGlobalState();\n const {\n getStaffListBySchoolAsync\n } = useStaffListApiService();\n\n const navigate = useNavigate();\n\n if (!schoolId) {\n showError(\"No school was specified.\");\n navigate(-1);\n }\n\n useLayoutEffect(() => {\n if (!selectedSchool || selectedSchool.schoolId !== parseInt(schoolId)) {\n const school = managedSchools.find(s => s.schoolId === parseInt(schoolId));\n school && (getStaffListBySchoolAsync(schoolId).then(r => {\n school.staffList = r.data;\n setSelectedSchool(school);\n })\n );\n }\n }, [\n selectedSchool,\n setSelectedSchool,\n managedSchools,\n schoolId,\n getStaffListBySchoolAsync,\n ]);\n\n return ;\n}","import React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\nimport Button from 'devextreme-react/button';\nimport './footer.scss';\n\nexport default ({ form, scrollViewRef }) => {\n const editProfilePath = \"/edit-profile\";\n\n const { pathname } = useLocation();\n\n function scrollToGroupIndex(index) {\n const items = form.option(\"items\");\n scrollViewRef.current.instance.scrollToElement(document.querySelector(`.${items[index].cssClass}`))\n }\n\n return (\n (pathname && pathname.includes(editProfilePath)) &&\n
\n \n \n {\n scrollViewRef && scrollViewRef.current.instance.scrollTo(0);\n }}\n />\n \n \n {\n scrollToGroupIndex(1);\n }}\n />\n \n \n {\n scrollToGroupIndex(2);\n }}\n />\n \n \n {\n scrollToGroupIndex(4);\n }}\n />\n \n \n
\n )\n};\n","import moment from 'moment';\n\nfunction selectDateBoxSetDate(e) {\n var txt = e.component.option('text').trim();\n let acceptedDateInputs = [\n //One-digit month and day, no year\n 'M-D',\n 'M/D',\n 'M.D',\n 'M D',\n //Two-digit month and day, no year\n 'MM-DD',\n 'MM/DD',\n 'MM.DD',\n 'MM DD',\n //One-digit month and day, two-digit year\n 'M-D-YY',\n 'M/D/YY',\n 'M.D.YY',\n 'M D YY',\n //Two-digit month and day, two-digit year\n 'MM-DD-YY',\n 'MM/DD/YY',\n 'MM.DD.YY',\n 'MM DD YY',\n //One-digit month and day, four-digit year\n 'M-D-YYYY',\n 'M/D/YYYY',\n 'M.D.YYYY',\n 'M D YYYY',\n //Two-digit month and day, four-digit year\n 'MM-DD-YYYY',\n 'MM/DD/YYYY',\n 'MM.DD.YYYY',\n 'MM DD YYYY',\n //Two-digit year, one-digit month and day\n 'YY-M-D',\n 'YY/M/D',\n 'YY.M.D',\n 'YY M D',\n //Two-digit year, two-digit month and day\n 'YY-MM-DD',\n 'YY/MM/DD',\n 'YY.MM.DD',\n 'YY MM DD',\n 'YYMMDD',\n //Four-digit year, one-digit month and day\n 'YY-M-D',\n 'YY/M/D',\n 'YY.M.D',\n 'YY M D',\n //Four-digit year, two-digit month and day\n 'YYYY-MM-DD',\n 'YYYY/MM/DD',\n 'YYYY.MM.DD',\n 'YYYY MM DD',\n 'YYYYMMDD',\n //One-digit day, short month name, no year\n 'D-MMM',\n 'D/MMM',\n 'D.MMM',\n 'D MMM',\n //Two-digit day, short month name, no year\n 'DD-MMM',\n 'DD/MMM',\n 'DD.MMM',\n 'DD MMM',\n //One-digit day, short month name, two-digit year\n 'D-MMM-YY',\n 'D/MMM/YY',\n 'D.MMM.YY',\n 'D MMM YY',\n //Two-digit day, short month name, two-digit year\n 'DD-MMM-YY',\n 'DD/MMM/YY',\n 'DD.MMM.YY',\n 'DD MMM YY',\n //One-digit day, short month name, four-digit year\n 'D-MMM-YYYY',\n 'D/MMM/YYYY',\n 'D.MMM.YYYY',\n 'D MMM YYYY',\n //Two-digit day, short month name, four-digit year\n 'DD-MMM-YYYY',\n 'DD/MMM/YYYY',\n 'DD.MMM.YYYY',\n 'DD MMM YYYY',\n //Short month name, one-digit day, no year\n 'MMM-D',\n 'MMM/D',\n 'MMM.D',\n 'MMM D',\n //Short month name, two-digit day, no year\n 'MMM-DD',\n 'MMM/DD',\n 'MMM.DD',\n 'MMM DD',\n //Short month name, one-digit day, two-digit year\n 'MMM-D-YY',\n 'MMM/D/YY',\n 'MMM.D.YY',\n 'MMM D YY',\n 'MMM D, YY',\n //Short month name, two-digit day, two-digit year\n 'MMM-DD-YY',\n 'MMM/DD/YY',\n 'MMM.DD.YY',\n 'MMM DD YY',\n 'MMM DD, YY',\n //Short month name, one-digit day, four-digit year\n 'MMM-D-YYYY',\n 'MMM/D/YYYY',\n 'MMM.D.YYYY',\n 'MMM D YYYY',\n 'MMM D, YYYY',\n //Short month name, two-digit day, four-digit year\n 'MMM-DD-YYYY',\n 'MMM/DD/YYYY',\n 'MMM.DD.YYYY',\n 'MMM DD YYYY',\n 'MMM DD, YYYY',\n //One-digit day, long month name, no year\n 'D-MMMM',\n 'D/MMMM',\n 'D.MMMM',\n 'D MMMM',\n //Two-digit day, long month name, no year\n 'DD-MMMM',\n 'DD/MMMM',\n 'DD.MMMM',\n 'DD MMMM',\n //One-digit day, long month name, two-digit year\n 'D-MMMM-YY',\n 'D/MMMM/YY',\n 'D.MMMM.YY',\n 'D MMMM YY',\n //Two-digit day, long month name, two-digit year\n 'DD-MMMM-YY',\n 'DD/MMMM/YY',\n 'DD.MMMM.YY',\n 'DD MMMM YY',\n //One-digit day, long month name, four-digit year\n 'D-MMMM-YYYY',\n 'D/MMMM/YYYY',\n 'D.MMMM.YYYY',\n 'D MMMM YYYY',\n //Two-digit day, long month name, four-digit year\n 'DD-MMMM-YYYY',\n 'DD/MMMM/YYYY',\n 'DD.MMMM.YYYY',\n 'DD MMMM YYYY',\n //long month name, one-digit day, no year\n 'MMMM-D',\n 'MMMM/D',\n 'MMMM.D',\n 'MMMM D',\n //long month name, two-digit day, no year\n 'MMMM-DD',\n 'MMMM/DD',\n 'MMMM.DD',\n 'MMMM DD',\n //long month name, one-digit day, two-digit year\n 'MMMM-D-YY',\n 'MMMM/D/YY',\n 'MMMM.D.YY',\n 'MMMM D YY',\n 'MMMM D, YY',\n //long month name, two-digit day, two-digit year\n 'MMMM-DD-YY',\n 'MMMM/DD/YY',\n 'MMMM.DD.YY',\n 'MMMM DD YY',\n 'MMMM DD, YY',\n //long month name, one-digit day, four-digit year\n 'MMMM-D-YYYY',\n 'MMMM/D/YYYY',\n 'MMMM.D.YYYY',\n 'MMMM D YYYY',\n 'MMMM D, YYYY',\n //long month name, two-digit day, four-digit year\n 'MMMM-DD-YYYY',\n 'MMMM/DD/YYYY',\n 'MMMM.DD.YYYY',\n 'MMMM DD YYYY',\n 'MMMM DD, YYYY',\n ]\n for (const format of acceptedDateInputs) {\n let isValid = moment(txt, format, true).isValid();\n if (isValid) {\n var date = moment(txt, format).format('YYYY-MM-DD');\n e.component.reset();\n e.component.option('value', date);\n break; //this will stop further evaluation\n }\n }\n}\n\nexport const appConst = {\n dateDisplayFormat: 'yyyy-MM-dd',\n dateAndTimeDisplayFormat: 'yyyy-MM-dd hh:mm a',\n defaultSelectBoxOptions: {\n valueExpr: 'value',\n displayExpr: 'text',\n searchEnabled: true,\n searchMode: 'startswith',\n minSearchLength: 0,\n showDataBeforeSearch: true,\n searchTimeout: 200,\n showClearButton: true,\n },\n postalCodePattern: \"^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$\",\n postalCodeValidationMessage: \"Invalid postal code.\",\n emailPattern: \"^[\\\\w-\\\\.]+@([\\\\w-]+\\\\.)+[\\\\w-]{2,4}$\",\n emailPatternEpsbDomain: \"^[\\\\w-\\\\.]+@([eE][pP][sS][bB].[cC][aA])$\",\n emailValidationMessage: \"Invalid email format.\",\n emailValidationMessageEpsbDomain: \"Email must be in epsb.ca\",\n phonePattern: \"^\\\\(([0-9]{3})\\\\)\\\\s([0-9]{3})-([0-9]{4})$\",\n phone10DigitsPattern: \"^\\\\d{10}$\",\n phoneEditorOptions: {\n mask: '(X00) 000-0000',\n maskRules: {\n X: /[02-9]/\n },\n useMaskedValue: false,\n maskInvalidMessage: 'Invalid phone format.'\n },\n defaultSelectDateBoxOptions: {\n showClearButton: true,\n displayFormat: 'yyyy-MM-dd',\n invalidDateMessage: 'Value must be a date.',\n dateSerializationFormat: 'yyyy-MM-dd',\n onKeyDown: (e) => {\n if (e.event.key === 'Enter') {\n selectDateBoxSetDate(e);\n }\n },\n onFocusOut: (e) => {\n selectDateBoxSetDate(e);\n }\n },\n slideDuration: 150,\n defaultGridOptions: {\n remoteOperations: true,\n rowAlternationEnabled: true,\n showBorders: true,\n allowColumnReordering: true,\n allowColumnResizing: true,\n columnResizingMode: \"nextColumn\",\n hoverStateEnabled: true,\n wordWrapEnabled: true,\n pager: {\n showPageSizeSelector: true,\n allowedPageSizes: [10, 20, 50, 100],\n showInfo: true,\n visible: false,\n showInGroupFooter: true\n },\n summary: {\n groupItems: [{\n column: \"Id\",\n summaryType: \"count\"\n }]\n },\n grouping: {\n allowCollapsing: true,\n autoExpandAll: false,\n contextMenuEnabled: true,\n expandMode: \"rowClick\"\n },\n groupPanel: {\n visible: false,\n allowColumnDragging: true\n },\n filterPanel: {\n visible: false,\n },\n filterRow: {\n visible: false,\n },\n export: {\n enabled: false,\n allowExportSelectedData: true,\n },\n onExporting: (e) => {\n e.fileName = e.element.id;\n },\n scrolling: {\n mode: \"virtual\",\n rowRenderingMode: \"virtual\",\n },\n searchPanel: {\n visible: true,\n }\n }\n}\n\n","import React, { useState } from 'react';\nimport DateBox from 'devextreme-react/date-box';\nimport SelectBox from 'devextreme-react/select-box';\nimport Button from 'devextreme-react/button';\nimport RadioGroup from 'devextreme-react/radio-group';\nimport notify from 'devextreme/ui/notify';\nimport { confirm } from 'devextreme/ui/dialog';\nimport { Popup } from 'devextreme-react/popup';\nimport { useGlobalState } from '../../../contexts/global-state';\nimport { appConst } from '../../../app-const';\nimport styles from './card.module.scss';\n\nexport function Card(props) {\n const { data, containerId, updatePrimaryToFalse, updateSADivision, updateSAStartDate, updatePrinaryToTrue, schools, showAddNewSAPopupVisible } = props;\n const { index, school, primary, startDate, endDate, divisionId } = data;\n const [endDatePopupVisible, setEndDatePopupVisible] = useState(false);\n const [selectedEndDate, setSelectedEndDate] = useState(new Date().toDateString());\n const [makeMainPopupVisible, setMakeMainPopupVisible] = useState(false);\n const [availableSchools, setAvailableSchools] = useState([]);\n const [selectedSAIndex, setSelectedSAIndex] = useState(null);\n const [okButonCaption, setOKButtonCaption] = useState('Ok');\n const { lookupData } = useGlobalState();\n const readOnly = (endDate !== null);\n\n function updateSelectedEndDate(value) {\n setSelectedEndDate(value);\n }\n\n function hideEndDatePopup(e) {\n setEndDatePopupVisible(false);\n setSelectedEndDate(new Date().toDateString());\n setSelectedSAIndex(null);\n }\n\n function validateEndDate() {\n if (!selectedEndDate) {\n notify('Please select an end date.', 'error');\n return false;\n }\n\n const d1 = new Date(selectedEndDate);\n const d2 = new Date();\n\n if (d1 > d2) {\n notify(\"You can't set an end date in the future.\", \"error\");\n return false;\n }\n\n return true;\n }\n function setEndDate() {\n //If the user does not select a new main location and there are other\n //locations available, error is shown\n if (selectedSAIndex===null && (availableSchools.length-1) > 0 && primary) {\n notify('Please select your main work location or add a new one.', 'error');\n return;\n }\n\n if (!validateEndDate()) return;\n\n const fn = () => {\n hideEndDatePopup();\n updatePrimaryToFalse(index, selectedEndDate, selectedSAIndex);\n }\n if (selectedSAIndex !== null) {\n //Display a confirmation dialog that a new main location has been selected.\n const schoolIndex = availableSchools.findIndex(x => x.value === selectedSAIndex);\n const result = confirm(`If you change your main work location to ${availableSchools[schoolIndex].text}, this will become the location at which you receive member communications.`, \"Confirm changes\");\n result.then(async (dialogResult) => {\n if (dialogResult) {\n fn();\n }\n });\n } else {\n fn();\n }\n }\n\nfunction updateMain() {\n hideMakeMainPopup();\n updatePrinaryToTrue(index)\n}\n\nfunction hideMakeMainPopup(e) {\n setMakeMainPopupVisible(false);\n}\n\nfunction setEndDateContent() {\n const showSelectNewLocation = (primary || primary===1) && availableSchools && availableSchools.length > 0;\n return (\n
\n
\n On what date did you stop working at {school.name}?\n {\n updateSelectedEndDate(e.value);\n }}\n {...appConst.defaultSelectDateBoxOptions}\n />\n {showSelectNewLocation && Select your new main location}\n {\n setSelectedSAIndex(e.value);\n if (-1 === e.value) {\n setOKButtonCaption(\"Next\");\n } else {\n setOKButtonCaption(\"Ok\");\n }\n }}\n />\n
\n
\n
\n
\n );\n}\n\nfunction makeMainContent() {\n return (\n
\n
\n \n If you change your main work location to {school.name}, this will become the location at which you receive member communications.\n \n
\n
\n
\n
\n );\n}\n\nreturn (\n
\n
\n

{school.name}

\n {(primary || primary===1) &&

Main Location

}\n
\n
\n {startDate && (\n
\n {\n updateSAStartDate(index, e.value);\n }}\n />\n
\n )}\n {endDate && (\n
\n \n
\n )}\n
\n {\n updateSADivision(index, e.value);\n }}\n />\n
\n {!endDate && (\n
\n \n
\n )}\n {!primary && !endDate && (\n
\n \n
\n )}\n
\n {\n let temp = [];\n schools && schools.map((sa, index) => {\n if (sa.index !== data.index) {\n temp.push({ text: sa.school.name, value: sa.index });\n }\n return index;\n });\n temp.push({ text: 'Other', value: -1 });\n setAvailableSchools(temp);\n }}\n >\n \n
\n);\n}\n","import React, { useState } from 'react';\nimport { Button } from 'devextreme-react/button';\n/* eslint-disable no-unused-vars */\nimport RadioGroup from 'devextreme-react/radio-group';\n/* eslint-enable no-unused-vars */\nimport DxForm from \"devextreme/ui/form\";\nimport { Popup } from 'devextreme-react/popup';\nimport { confirm } from 'devextreme/ui/dialog';\nimport { Form, SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form'\nimport { useGlobalState } from '../../contexts/global-state';\nimport { appConst } from '../../app-const';\nimport { Card } from './card/card';\n\nimport styles from './card-container.module.scss';\n\nexport default (props) => {\n const [addNewSAPopupVisible, setAddNewSAPopupVisible] = useState(false);\n const { data, userHasWorkLocation, addNewSA, updatePrinaryToFalse, showAddNewLocationButton, updateSADivision } = props;\n const [newSA, setNewSA] = useState({});\n const { lookupData } = useGlobalState();\n\n const schoolEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.schools,\n };\n\n const divisionEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.divisions,\n };\n\n const startDateEditorOptions = {\n ...appConst.defaultSelectDateBoxOptions,\n };\n\n const addNewSaFormId = \"addNewSAForm\";\n\n function showAddNewSAPopupVisible(id, selectedEndDate) {\n setNewSA({ ...newSA, saIndexToEnd: id, selectedEndDate: selectedEndDate, primary:true });\n setAddNewSAPopupVisible(true);\n }\n\n function renderAddNewSA() {\n return (\n {\n setAddNewSAPopupVisible(false);\n }}\n dragEnabled={false}\n hideOnOutsideClick={false}\n showCloseButton={false}\n showTitle={false}\n maxWidth={'400px'}\n height={'auto'}\n >\n \n \n \n \n \n \n );\n }\n\n return (\n <>\n
\n {data && data.map((cardData, index) => {\n cardData.index = index;\n return ;\n })}\n
\n
\n {\n setAddNewSAPopupVisible(true);\n }}\n />\n
\n {renderAddNewSA()}\n \n );\n}\n","import React, {useRef } from 'react';\nimport ScrollView from 'devextreme-react/scroll-view';\nimport { Outlet } from 'react-router-dom';\nimport {\n Header, Footer\n} from '../../components';\nimport './single-card.scss';\n\nexport default function ({ title, editProfileInfo }) {\n const scrollViewRef = useRef(null);\n\n return (\n
\n \n \n
\n \n
\n \n \n
);\n}\n","import React, {\n useLayoutEffect,\n} from 'react';\nimport LoadPanel from 'devextreme-react/load-panel';\nimport Button from 'devextreme-react/button';\nimport { useNavigate } from \"react-router-dom\";\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport {\n useAuthService,\n} from \"../../services\";\n\nimport '../../components/component.scss';\nimport './home.scss';\n\nexport default function () {\n const { managedSchools } = useGlobalState();\n const navigate = useNavigate();\n const user = useAuthService().getActiveAccount();\n const { idTokenClaims: { givenName, memberId } } = user || { idTokenClaims: {} }\n const { setTitle } = usePageTitle();\n\n useLayoutEffect(() => setTitle(\"Epitome Member Access\"), [setTitle]);\n\n return (user ? (\n
\n
\n

Welcome To Epitome Member Access, {givenName}

\n
\n
\n {\n navigate(`/edit-profile/${memberId}`);\n }\n }\n />\n
\n
\n {(managedSchools && managedSchools.length > 0) &&
Staff Lists You Manage
}\n {managedSchools && managedSchools.map((school) => {\n const {\n schoolId,\n name\n } = school;\n return {\n navigate(`/school/${schoolId}`);\n }\n }\n />\n })\n }\n
\n
\n ) : );\n}\n","import React, {\n useState,\n useLayoutEffect,\n} from 'react';\n// eslint-disable-next-line no-unused-vars\nimport TextArea from 'devextreme-react/text-area';\nimport Form, {\n ButtonItem,\n SimpleItem,\n Label,\n RequiredRule,\n PatternRule,\n} from 'devextreme-react/form';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport { appConst } from '../../app-const';\nimport { useMembershipApiService } from \"../../services\";\nimport { showError } from '../../helpers/ui';\nimport '../../components/component.scss';\n\nexport default function ({ count, username }) {\n const {\n sendRequestToLocateMembershipAsync } = useMembershipApiService();\n const [emailSent, setEmailSent] = useState(false);\n const [formData] = useState({\n UserName: username,\n MemberCount: count\n });\n const [submitBtnText, setSubmitBtnText] = useState(\"Submit\");\n const { setTitle } = usePageTitle();\n const { lookupData } = useGlobalState();\n\n const { schools } = lookupData;\n const schoolEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: schools,\n };\n\n useLayoutEffect(() => setTitle(\"Locate Membership\"), [setTitle]);\n\n const submitButtonOptions = {\n disabled: (submitBtnText === 'Submitting...'),\n text: submitBtnText,\n type: 'default',\n useSubmitBehavior: 'true'\n }\n\n const otherInformationEditorOptions = {\n height: '8em'\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault && e.preventDefault();\n try {\n setSubmitBtnText('Submitting...');\n const result = await sendRequestToLocateMembershipAsync(formData);\n if (result.data) {\n setEmailSent(true);\n } else {\n showError('Error sending request to locate membership information.')\n }\n setSubmitBtnText('Submit');\n } catch (error) {\n showError(error.message);\n setSubmitBtnText('Submit');\n }\n }\n\n const renderUsernameMessage = () =>

You signed in as {username}, so please try to provide an alternate email or phone number below to help us locate your record.

\n\n function renderFillOutInformation() {\n if (!emailSent) {\n return (\n <>\n
\n {(parseInt(count) === 0) &&\n

Please provide some identifying information and our staff will try to locate your membership record.

\n }\n {(parseInt(count) > 1) &&\n

Please provide some identifying information and our staff will try to resolve the multiple membership record situation.

\n }\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n } else {\n return <>\n }\n }\n\n function renderInformationPosted() {\n if (emailSent) {\n return (\n <>\n
\n Thanks!\n
\n

Our staff will attempt to resolve your sign-in problem using the info you provided. Someone will reach out to you by email or phone when they have completed the review.

\n );\n } else {\n return <>\n }\n }\n\n return (\n
\n {renderFillOutInformation()}\n {renderInformationPosted()}\n
\n );\n}\n","import React, {\n useState,\n useLayoutEffect,\n} from 'react';\n\n// eslint-disable-next-line no-unused-vars\nimport '../../components/component.scss';\nimport Form, {\n SimpleItem,\n Label,\n RequiredRule,\n PatternRule,\n GroupItem,\n Item,\n EmptyItem,\n} from 'devextreme-react/form';\nimport ScrollView from 'devextreme/ui/scroll_view';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport './request-membership.scss';\nimport { useMembershipApiService } from \"../../services\";\nimport { appConst } from '../../app-const';\nimport { showError } from '../../helpers/ui';\nimport { AddressAutoComplete } from '../../components/'\n\nexport default function ({ username }) {\n const {\n requestMembershipRecordAsync,\n } = useMembershipApiService();\n const [emailSent, setEmailSent] = useState(false);\n const [formData, setFormData] = useState({\n userName: username,\n Schools: [{\n SchoolId: null,\n DivisionId: null\n }]\n });\n\n const [submitBtnText, setSubmitBtnText] = useState('Submit');\n const [city, setCity] = useState();\n const [province, setProvince] = useState();\n const { setTitle } = usePageTitle();\n const { lookupData } = useGlobalState();\n\n useLayoutEffect(() => setTitle(\"Request Membership\"), [setTitle]);\n\n function updateAddressFields(addressObj) {\n setFormData({\n ...formData,\n HomeMailingAddress: addressObj.address,\n City: addressObj.city,\n PostalCode: addressObj.postalCode,\n Province: addressObj.province,\n })\n }\n\n const salutationEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.salutations,\n };\n\n const genderEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.genders\n };\n\n const pronounEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.pronouns,\n };\n\n const provinceEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.provinces,\n onValueChanged: (e) => setProvince(e.value)\n };\n\n const phoneNumberTypeEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.phoneNumberTypes,\n };\n\n const schoolEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.schools,\n };\n\n const divisionEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.divisions,\n };\n\n const handleSubmit = async (e) => {\n try {\n e.preventDefault();\n setSubmitBtnText('Submitting...');\n const result = await requestMembershipRecordAsync(formData);\n if (result.data) {\n setEmailSent(true);\n } else {\n showError('Error in sending request new membership information.')\n }\n setSubmitBtnText('Submit');\n } catch (error) {\n showError('Error in sending request new membership information.')\n setSubmitBtnText('Submit');\n }\n };\n\n function renderFillOutInformation() {\n if (!emailSent) {\n return (\n <>\n
\n

Welcome to the teaching profession and Edmonton Public Teachers Local 37 of the Alberta Teachers' Association!

\n
\n
\n

As a new member, your assistance in keeping the information on our database current is appreciated. All information is confidential and used only by the Local in conducting its regular business.

\n
\n
\n \n \n \n
\n

Personal Information

\n
\n
\n \n
\n \n \n \n )\n }\n }\n\n function renderInformationPosted() {\n if (emailSent) {\n return (\n <>\n
\n Thanks!\n
\n

The staff at the the Local office have been notified of your request to create a new membership record. Someone will reach out to you by email or phone when they have reviewed your request.

\n \n );\n } else {\n return <>\n }\n }\n return (\n
\n {renderFillOutInformation()}\n {renderInformationPosted()}\n
\n );\n}\n","import React, {\n useState,\n useLayoutEffect,\n} from 'react';\nimport { useNavigate } from \"react-router-dom\";\nimport { on } from \"devextreme/events\";\nimport ListWidget from 'devextreme-react/list';\nimport List from \"devextreme/ui/list\";\nimport DataGrid from \"devextreme/ui/data_grid\";\nimport Button from 'devextreme-react/button';\nimport { Popup } from 'devextreme-react/popup';\nimport LoadPanel from 'devextreme-react/load-panel';\nimport ActionSheet from 'devextreme-react/action-sheet';\nimport moment from 'moment';\nimport {\n DataGrid as DataGridWidget,\n Column,\n Editing,\n SortByGroupSummaryInfo,\n Selection,\n} from 'devextreme-react/data-grid';\nimport { appConst } from '../../app-const';\nimport { useStaffListApiService } from '../../services';\nimport {\n showError,\n showSuccess,\n} from '../../helpers/ui';\nimport { useScreenSize } from '../../utils/media-query';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport '../../components/component.scss';\nimport './staff-list.scss';\n\nexport default function ({ schoolId }) {\n const navigate = useNavigate();\n const {\n updateStaffListCurrentDateAsync,\n requestSchoolAssociationRemovalAsync,\n getStaffListBySchoolAsync,\n } = useStaffListApiService();\n const [showActionSheet, setShowActionSheet] = useState(false);\n const { isXSmall, isSmall } = useScreenSize();\n const showList = isXSmall || isSmall;\n const {\n setSelectedMembers,\n selectedMembers,\n selectedSchool,\n setSelectedSchool,\n managedSchools,\n setManagedSchools,\n defaultSuggestedSAStartAndEndDates,\n } = useGlobalState();\n const { setTitle } = usePageTitle();\n const [showRemoveMemberPopup, setShowRemoveMemberPopup] = useState(false);\n const [showLoadingPanel, setShowLoadingPanel] = useState(false);\n\n const actionSheetItems = [\n { text: 'Select All Staff', id: 1 },\n { text: 'Unselect All Staff', id: 2 },\n { text: 'Request Selected Staff To Review Their Records', id: 3 },\n { text: 'Remove Selected Staff From List', id: 4 },\n { text: 'Add Members To Join Staff List', id: 5 },\n { text: 'This Staff List Is Up To Date', id: 6, type: \"default\" },\n { text: 'Cancel', id: 7 },\n ];\n\n useLayoutEffect(() => {\n selectedSchool && setTitle(selectedSchool.name);\n window.addEventListener('resize', setHeight);\n setHeight();\n return () => window.removeEventListener('resize', setHeight);\n }, [\n selectedSchool,\n setTitle,\n ]);\n\n function renderRemoveMemberPopup() {\n return (\n <>\n setShowRemoveMemberPopup(false)}\n >\n \n \n \n \n \n \n
\n {\n setShowLoadingPanel(true);\n try {\n await requestSchoolAssociationRemovalAsync(selectedSchool.schoolId,\n selectedMembers.map(a => ({ Id: a.Id, EndDate: a.EndDate })));\n } catch (error) {\n showError(error.message)\n setShowLoadingPanel(false);\n return;\n }\n\n const school = managedSchools.find(s => s.schoolId === parseInt(schoolId));\n school && (getStaffListBySchoolAsync(schoolId).then(r => {\n school.staffList = r.data;\n setSelectedSchool(school);\n setShowRemoveMemberPopup(false);\n setShowLoadingPanel(false);\n }));\n }}\n />\n { setShowRemoveMemberPopup(false) }}\n />\n
\n \n \n );\n }\n function renderMember(item) {\n const className = item.hasHomeEmailAddress ? \"home-email-badge-text-container-list home-email-badge-text-container-green\" : \"home-email-badge-text-container-list home-email-badge-text-container-red\";\n const text = item.hasHomeEmailAddress ? \"Present\" : \"Missing\";\n return (\n <>\n
\n
{item.fullName}
\n
\n {`MemberId=${item.memberId}`}\n
\n
\n
Record last reviewed {(item.recordReviewedByMember !== null) ? moment(new Date(item.recordReviewedByMember)).format('MMM D, YYYY') : '(never)'}
\n
\n

Home Email

\n
{text}
\n
\n )\n }\n\n function listHasSelectedItems(listInstance) {\n let selectedRows;\n if (listInstance.NAME === 'dxDataGrid') {\n selectedRows = listInstance.getSelectedRowKeys();\n } else {\n selectedRows = listInstance.option(\"selectedItemKeys\")\n }\n if (selectedRows.length === 0) {\n showError('No members are selected.')\n return false;\n }\n return true;\n }\n\n function saveSelectedMembersToGlobalState(listInstance) {\n const selectedMembers = (listInstance.NAME === 'dxDataGrid') ? listInstance.getSelectedRowsData() : listInstance.option(\"selectedItems\");\n setSelectedMembers(selectedMembers);\n }\n\n function pushHistory(path, listInstance) {\n saveSelectedMembersToGlobalState(listInstance);\n navigate(path);\n }\n\n async function updateStaffListToCurrentDateAsync() {\n try {\n const r = await updateStaffListCurrentDateAsync(selectedSchool.schoolId);\n if (r.data) {\n const tmpSelectedSchool = { ...selectedSchool };\n tmpSelectedSchool.staffListReviewedByCommRep = moment(new Date()).format('yyyy-MM-DD hh:mm a')\n setSelectedSchool(tmpSelectedSchool);\n\n const index = managedSchools.findIndex(s => s.schoolId === selectedSchool.schoolId);\n const tmpManagedSchools = [...managedSchools];\n tmpManagedSchools[index] = tmpSelectedSchool;\n setManagedSchools(tmpManagedSchools);\n\n showSuccess('Thank you for ensuring the staff list is up to date!');\n } else {\n showError('There was an error updating the staff list review date.')\n }\n }\n catch (error) {\n showError(error.message);\n }\n }\n\n function renderList() {\n return (\n <>\n {\n //if (e.component.option('items').length > 0 && firstContentReady) {\n // e.component.option('selectedItemKeys', selectedMemberKeys)\n // firstContentReady = false;\n //}\n var itemContent = e.element.querySelectorAll(\".dx-item-content\");\n on(itemContent, \"dxclick\", function (event) {\n event.stopImmediatePropagation();\n saveSelectedMembersToGlobalState(e.component);\n let i = event.delegateTarget.innerHTML.indexOf(\"MemberId=\") + \"MemberId=\".length;\n let j = event.delegateTarget.innerHTML.indexOf(\"<\", i);\n let memberId = event.delegateTarget.innerHTML.substring(i, j);\n navigate(`/school/${schoolId}/${memberId}`);\n })\n }}\n onSelectionChanged={\n (e) => {\n const tmp = e.component.option(\"selectedItems\");\n const ds = tmp && tmp.map(a => ({ Id: a.memberId, FullName: a.fullName, EndDate: defaultSuggestedSAStartAndEndDates.defaultEndDate }));\n setSelectedMembers(ds);\n }\n }\n />\n {renderRemoveMemberPopup()}\n \n );\n }\n\n function renderGrid() {\n return (\n <>\n {\n const tmp = e.component.getSelectedRowsData();\n const ds = tmp && tmp.map(a => ({ Id: a.memberId, FullName: a.fullName, EndDate: defaultSuggestedSAStartAndEndDates.defaultEndDate, SchoolAssociationId: a.schoolAssociationId }));\n setSelectedMembers(ds);\n }\n }\n >\n \n \n \n \n \n \n \n {\n if (cell.rowType === 'data') {\n const className = cell.data.hasHomeEmailAddress ? \"home-email-badge-text-container home-email-badge-text-container-green\" : \"home-email-badge-text-container home-email-badge-text-container-red\";\n const text = cell.data.hasHomeEmailAddress ? \"Present\" : \"Missing\";\n\n return (
{text}
)\n }\n }}\n />\n \n \n \n {renderRemoveMemberPopup()}\n \n )\n }\n\n function setHeight() {\n let resizeElement = document.getElementById(\"memberList\");\n let resizeInstance;\n if (resizeElement) {\n resizeInstance = List.getInstance(resizeElement);\n } else {\n resizeElement = document.getElementById(\"memberGrid\");\n if (resizeElement) {\n resizeInstance = DataGrid.getInstance(resizeElement);\n }\n }\n if (resizeInstance) {\n resizeInstance.option(\"height\", window.innerHeight - resizeElement.getBoundingClientRect().y - 20);\n }\n }\n\n return ((selectedSchool && selectedSchool.staffList) ?\n
\n
\n
\n
\n Principal: {selectedSchool && selectedSchool.principalName}\n
\n
\n Member Count: {selectedSchool && selectedSchool.staffList && selectedSchool.staffList.length}\n
\n
\n {`Last Reviewed: ${selectedSchool && moment(new Date(selectedSchool.staffListReviewedByCommRep)).format('yyyy-MM-DD hh:mm a')}`}\n
\n
\n
\n {\n setShowActionSheet(!showActionSheet);\n }\n }\n />\n
\n
\n
\n {showList ? renderList() : renderGrid()}\n
\n {\n setShowActionSheet(false);\n let action = e.itemData.id;\n let containerElement = showList ? document.getElementById(\"memberList\") : document.getElementById(\"memberGrid\");\n let containerInstance = (showList) ? List.getInstance(containerElement) : DataGrid.getInstance(containerElement);\n switch (action) {\n case 1:\n containerInstance.selectAll();\n break;\n case 2:\n if (containerInstance.NAME === 'dxList') {\n containerInstance.option(\"selectedItemKeys\", []);\n }\n else {\n containerInstance.deselectAll();\n }\n break;\n case 3:\n if (!listHasSelectedItems(containerInstance)) return;\n pushHistory('review-records-request', containerInstance);\n break;\n case 4:\n if (!listHasSelectedItems(containerInstance)) return;\n setShowRemoveMemberPopup(true);\n break;\n case 5:\n pushHistory('add-staff-request', containerInstance);\n break;\n case 6:\n await updateStaffListToCurrentDateAsync();\n break;\n default:\n break;\n }\n }\n }\n onActionSheetCancelClick={\n (e) => {\n setShowActionSheet(false);\n }\n }\n />\n
\n : (<>)\n );\n}","import React, {\n useLayoutEffect,\n} from 'react';\nimport { useNavigate } from \"react-router-dom\";\nimport Form, {\n SimpleItem,\n Label,\n} from 'devextreme-react/form';\nimport { showError } from '../../helpers/ui';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport './staff-details.scss';\n\nexport default function ({ schoolId, memberId }) {\n\n const navigate = useNavigate();\n const {\n setSelectedMembers,\n selectedSchool\n } = useGlobalState();\n const { setTitle } = usePageTitle();\n\n useLayoutEffect(() => setTitle(\"Staff Details\"), [setTitle]);\n\n let rowData = {};\n\n if (!memberId) {\n showError('No member is selected.');\n navigate(-1);\n return;\n } else {\n rowData = selectedSchool &&\n selectedSchool.staffList &&\n selectedSchool.staffList.find(x => x.memberId === parseInt(memberId))\n }\n\n return (rowData ? (\n
\n \n \n \n \n \n \n \n \n \n \n \n {\n setSelectedMembers([rowData]);\n navigate(`../review-records-request`);\n }\n }} />\n \n
\n ) : <>);\n}","import React, {\n\tuseState,\n\tuseLayoutEffect,\n} from 'react';\nimport Form, {\n\tSimpleItem,\n\tLabel,\n} from 'devextreme-react/form';\nimport List from 'devextreme-react/list';\nimport { useNavigate } from \"react-router-dom\";\nimport { showError, showSuccess } from '../../helpers/ui';\nimport { useStaffListApiService } from '../../services';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport './review-records-request.scss';\n\nexport default function ({ schoolId }) {\n\tconst navigate = useNavigate();\n\tconst { requestRecordReviewAsync } = useStaffListApiService();\n\tconst [personalizedMessage, setPersonalizedMessage] = useState();\n\tconst {\n\t\tselectedMembers,\n\t\tsetSelectedMembers\n\t} = useGlobalState();\n\tconst { setTitle } = usePageTitle();\n\n\tuseLayoutEffect(() => setTitle(\"Request Record Review\"), [setTitle]);\n\n\tfunction renderMember(item) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
{item.fullName}
\n\t\t\t
\n\t\t);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

Please include an optional personalized message below to send to the members with your request.

\n\t\t\t

By sending this message, you are requesting selected members to review their records for correctness and completion.

\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\t\t\tsetPersonalizedMessage(e.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}>\n\t\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (typeof (selectedMembers) === 'undefined') {\n\t\t\t\t\t\t\t\t\tshowError('No member is selected.');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\te.component.option(\"disabled\", true);\n\t\t\t\t\t\t\t\tconst r = await requestRecordReviewAsync(\n\t\t\t\t\t\t\t\t\tschoolId,\n\t\t\t\t\t\t\t\t\tselectedMembers.map(a => a.memberId),\n\t\t\t\t\t\t\t\t\tpersonalizedMessage\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (r.data) {\n\t\t\t\t\t\t\t\t\tshowSuccess('Email message has been sent.');\n\t\t\t\t\t\t\t\t\tif (process.env.JEST_WORKER_ID !== undefined) return;\n\t\t\t\t\t\t\t\t\tsetSelectedMembers([]);\n\t\t\t\t\t\t\t\t\tnavigate(-1);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tshowError('There was an error sending the request email.');\n\t\t\t\t\t\t\t\t\te.component.option(\"disabled\", false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\tshowError(error.message);\n\t\t\t\t\t\t\t\te.component.option(\"disabled\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}} />\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}","import React, {\n useState,\n useLayoutEffect,\n} from 'react';\nimport { useNavigate } from \"react-router-dom\";\nimport { Autocomplete } from 'devextreme-react/autocomplete';\nimport {\n DataGrid,\n Column,\n Editing,\n} from 'devextreme-react/data-grid';\nimport DxGrid from \"devextreme/ui/data_grid\";\nimport LoadPanel from 'devextreme-react/load-panel';\nimport { TextBox as TB, Button as TextBoxButton } from 'devextreme-react/text-box';\nimport TextBox from \"devextreme/ui/text_box\";\nimport Button from 'devextreme-react/button';\nimport {\n Validator,\n PatternRule\n} from 'devextreme-react/validator';\nimport ValidationGroup from 'devextreme-react/validation-group';\nimport { appConst } from '../../app-const';\nimport { useStaffListApiService } from '../../services';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport '../../components/component.scss';\nimport './add-staff-request.scss';\nimport { showError, showSuccess } from '../../helpers/ui';\n\nexport default function () {\n const [selectedMembers, setSelectedMembers] = useState([]);\n const [showLoadingPanel, setShowLoadingPanel] = useState(false);\n const { findMemberByNameAsync, requestSchoolAssociationAdditionAsync, getStaffListBySchoolAsync } = useStaffListApiService();\n const { selectedSchool, defaultSuggestedSAStartAndEndDates, managedSchools, setSelectedSchool } = useGlobalState();\n const { setTitle } = usePageTitle();\n const navigate = useNavigate();\n\n useLayoutEffect(() => setTitle(\"Add Staff\"), [setTitle]);\n\n function autoCompleteItemRender(item) {\n return (\n
\n
{item.fullName}
\n
{item.primarySchool}
\n
\n );\n }\n\n return (\n
\n

{\"Enter the name of the member that you want to send the sign-up link to, one per line:\"}

\n {\n if (null !== e.selectedItem) {\n let tmp = [...selectedMembers];\n let item = { ...e.selectedItem };\n item.startDate = defaultSuggestedSAStartAndEndDates.defaultStartDate;\n tmp.push(item);\n setSelectedMembers(tmp);\n e.component.reset();\n }\n }}\n >\n \n

{\"If you can't find a member by searching above (for example, if the staff member hasn't worked in Edmonton Public before), you can type their email address below.\"}

\n \n \n {\n let el = document.getElementById(\"emailTextBox\");\n let tb = TextBox.getInstance(el);\n let emailTxt = tb.option('value');\n if ('' === emailTxt || !tb.option(\"isValid\")) return;\n tb.reset();\n\n let tmp = [...selectedMembers];\n const email = {\n emailAddress: emailTxt\n }\n tmp.push(email);\n setSelectedMembers(tmp);\n }\n }\n }\n />\n \n \n \n \n \n \n
\n {\n if (e.row.rowType === 'data' && e.row.data.hasOwnProperty(e.dataField)) {\n e.editorOptions.disabled = false;\n } else {\n e.editorOptions.disabled = true;\n }\n }\n }\n >\n \n \n \n \n \n
\n {\n if (selectedMembers.length === 0) {\n showError('There is no data to process.');\n return;\n }\n let el = document.getElementById(\"processGrid\");\n let grd = DxGrid.getInstance(el);\n grd.saveEditData();\n\n setShowLoadingPanel(true);\n let members = selectedMembers.filter(function (e) {\n if (e.hasOwnProperty('fullName')) {\n return e;\n } else {\n return null;\n }\n }).map(a => ({ Id: a.id, StartDate: a.startDate }));\n let emails = selectedMembers.filter(function (e) {\n if (e.hasOwnProperty('emailAddress')) {\n return e;\n } else {\n return null;\n }\n }).map(a => a.emailAddress);\n try {\n e.component.option(\"disabled\", true);\n const r = await requestSchoolAssociationAdditionAsync(selectedSchool.schoolId, members, emails);\n if (r.data) {\n showSuccess('Email has been sent.')\n const school = managedSchools.find(s => s.schoolId === parseInt(selectedSchool.schoolId));\n school && (getStaffListBySchoolAsync(selectedSchool.schoolId).then(r => {\n school.staffList = r.data;\n setSelectedSchool(school);\n navigate(-1);\n }));\n } else {\n showError('There was an error sending the data.')\n }\n e.component.option(\"disabled\", false);\n setShowLoadingPanel(false);\n } catch (error) {\n showError(error.message)\n e.component.option(\"disabled\", false);\n setShowLoadingPanel(false);\n }\n }\n }\n />\n
\n );\n}","import React, {\n useState,\n useEffect,\n useLayoutEffect,\n useRef,\n useCallback,\n} from 'react';\nimport { useNavigate } from \"react-router-dom\";\n/* eslint-disable no-unused-vars */\nimport TextArea from 'devextreme-react/text-area';\nimport Switch from 'devextreme-react/switch';\n/* eslint-enable no-unused-vars */\nimport Form, {\n SimpleItem,\n Label,\n PatternRule,\n RequiredRule,\n GroupItem,\n EmptyItem,\n ColCountByScreen,\n Item,\n} from 'devextreme-react/form';\nimport DxForm from \"devextreme/ui/form\";\nimport { LoadPanel } from 'devextreme-react/load-panel';\nimport { confirm } from 'devextreme/ui/dialog';\nimport { AddressAutoComplete, CardContainer } from '../../components';\nimport { useMemberApiService } from '../../services';\nimport {\n showError,\n showSuccess,\n getStoredAddress,\n createStoredAddress,\n compareAddresses,\n updateStateAddressFields,\n} from '../../helpers/ui';\nimport { useScreenSize } from '../../utils/media-query';\nimport { appConst } from '../../app-const';\nimport { useGlobalState } from '../../contexts/global-state';\nimport { usePageTitle } from '../../contexts/page-title';\nimport { useEditProfile } from '../../contexts/edit-profile';\n\nimport './edit-profile.scss';\n\nexport default function ({ memberId }) {\n const {\n getByIdAsync,\n updateByIdAsync\n } = useMemberApiService();\n const [member, setMember] = useState();\n const [fetchingData, setFetchingData] = useState(true);\n const [city, setCity] = useState();\n const [province, setProvince] = useState();\n const { isLarge, isSmall, isXSmall } = useScreenSize();\n const { lookupData } = useGlobalState();\n const [storedAddress, setStoredAddress] = useState();\n const navigate = useNavigate();\n const { setTitle } = usePageTitle();\n const { setEditProfileInfo} = useEditProfile();\n\n const salutationEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.salutations,\n };\n\n const genderEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.genders\n };\n\n const pronounEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.pronouns,\n };\n\n const provinceEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.provinces,\n onValueChanged: (e) => {\n setProvince(e.component.option(\"text\"));\n compareAddresses(e, member, storedAddress, setAddressVerified);\n }\n }\n\n const phoneNumberTypeEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.phoneNumberTypes,\n grouped: false,\n };\n\n const emailAddressTypeEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n items: lookupData.emailAddressTypes,\n grouped: false,\n };\n\n const designationEditorOptions = {\n ...appConst.defaultSelectBoxOptions,\n grouped: true,\n items: lookupData.designations,\n };\n\n useLayoutEffect(() => setTitle(\"Edit Profile\"), [setTitle]);\n\n const handleFetchMember = useCallback(async () => {\n setFetchingData(true);\n const { data } = await getByIdAsync(memberId);\n if (data) {\n setMember(data);\n setStoredAddress(getStoredAddress(data));\n setFetchingData(false);\n }\n }, [getByIdAsync, memberId]);\n\n const undo = async () => {\n const result = confirm(\"Are you sure to undo all the changes?\", \"Confirm changes\");\n result.then(async (dialogResult) => {\n if (!dialogResult) {\n } else {\n await handleFetchMember();\n }\n });\n }\n\n\n useEffect(() => {\n (async () => {\n try {\n if (memberId) {\n await handleFetchMember();\n return;\n }\n throw new Error(\"Your member profile could not be loaded.\");\n }\n catch (error) {\n showError(error.message);\n setFetchingData(false);\n navigate(-1);\n }\n })();\n }, [getByIdAsync, memberId, navigate, handleFetchMember]);\n\n async function saveProfile() {\n let form = getFormInstance(\"memberForm\");\n let res = form.validate();\n let isValid = res.isValid;\n\n if (!isValid) {\n res.brokenRules[0].validator.focus();\n return false;\n }\n\n const result = confirm(\"Are you sure you have reviewed ALL of your information?\", \"Confirm changes\");\n result.then(async (dialogResult) => {\n if (!dialogResult) {\n } else {\n try {\n const addressNameAndVerfication = addressAutoCompleteRef.current.getAddress();\n\n let data = {\n firstName: member.firstName,\n lastName: member.lastName,\n preferredFirstName: member.preferredFirstName,\n previousLastName: member.previousLastName,\n address1: addressNameAndVerfication.address,\n address2: member.address2,\n city: member.city,\n provinceId: member.provinceId,\n postalCode: member.postalCode,\n pronounsId: member.pronounsId,\n salutationId: member.salutationId,\n emailAddresses: member.emailAddresses,\n phoneNumbers: member.phoneNumbers,\n birthDate: member.birthDate,\n certificateNumber: member.certificateNumber,\n startDate: member.startDate,\n genderId: member.genderId,\n addressVerified: addressNameAndVerfication.addressVerified,\n schools: member.schools.concat(member.previousSchools),\n designations: member.designations,\n }\n const response = await updateByIdAsync(member.id, data);\n if (response.data) {\n showSuccess('Your profile has been updated.')\n navigate(-1);\n } else {\n showError('An error occurred while saving your profile.');\n }\n } catch (error) {\n setFetchingData(false);\n showError(error.message);\n }\n }\n });\n }\n\n function setPreferredEmailOrPhone(index, property) {\n if (member[property].length === 0) return;\n let tmp = { ...member };\n if (tmp[property][index].preferred) {\n for (var i = 0; i < tmp[property].length; i++) {\n if (i !== index)\n tmp[property][i].preferred = false;\n }\n setMemberAndKeepScrollPosition(tmp);\n }\n }\n\n function getFormInstance(id) {\n let formEl = document.getElementById(id);\n return DxForm.getInstance(formEl);\n }\n\n function updateAddressFields(addressObj) {\n const { provinces } = lookupData;\n setMember(updateStateAddressFields(addressObj, member, provinces));\n setStoredAddress(createStoredAddress(addressObj));\n }\n\n function setAddressVerified(value) {\n setMember({ ...member, addressVerified: value });\n }\n\n const addressAutoCompleteRef = useRef();\n\n function setMemberAndKeepScrollPosition(member) {\n const scrollTop = document.getElementsByClassName('dx-scrollable-container')[0].scrollTop;\n setMember(member);\n document.getElementsByClassName('dx-scrollable-container')[0].scrollTop = scrollTop;\n }\n\n function updatePrimaryToFalse(index, endDate, selectedSAToBePrimary) {\n //This function is used to end a school association and\n //it is used to to set a new main location if the parameter selectedSAToBePrimary\n //is passed.\n let temp = { ...member };\n const schools = member.schools;\n const previousSchools = member.previousSchools;\n\n if (selectedSAToBePrimary!==null) {\n if (typeof temp.schools[selectedSAToBePrimary] !== 'undefined') {\n schools[selectedSAToBePrimary].primary = true;\n }\n }\n\n let el;\n if (index > -1) {\n el = schools[index];\n el.primary = false;\n el.endDate = endDate;\n previousSchools.push(el);\n schools.splice(index, 1);\n temp.previousSchools = previousSchools;\n }\n\n temp.schools = schools;\n setMember(temp);\n }\n\n function updatePrinaryToTrue(index) {\n //this function is used to set a main location\n let temp = { ...member };\n\n if (index > -1) {\n temp.schools[index].primary = true;\n temp.schools.forEach((school, i) => {\n if (i !== index) {\n school.primary = false;\n }\n });\n setMember(temp);\n }\n }\n\n function updateSADivision(index, divisionId) {\n if (index > -1) {\n member.schools[index].divisionId = divisionId;\n }\n }\n\n function updateSAStartDate(index, startDate) {\n if (index > -1) {\n member.schools[index].startDate = startDate;\n }\n }\n\n function addNewSA(sa) {\n //this function is used to add a new school association and\n //to end a location if the object has the two properties saIndexToEnd and selectedEndDate\n const b = Object.hasOwn(sa, 'saIndexToEnd') && Object.hasOwn(sa, 'selectedEndDate');\n if (b) {\n updatePrimaryToFalse(sa.saIndexToEnd, sa.selectedEndDate)\n }\n let temp = { ...member };\n if (sa.primary) {\n temp.schools.forEach((school, i) => {\n school.primary = false;\n });\n }\n const newSa = {\n schoolId: sa.schoolId,\n startDate: sa.startDate,\n divisionId: sa.divisionId,\n endDate:null,\n primary: sa.primary,\n school: { id: sa.schoolId, name: sa.schoolName }\n }\n temp.schools.push(newSa);\n setMember(temp);\n }\n\n const saveButtonName = \"doneButton\";\n\n return (\n
\n {\n if (member) {\n if (!e.component.isNotFirstLoad) {\n e.component.isNotFirstLoad = true;\n setEditProfileInfo({\n recordReviewedByMember: member.recordReviewedByMember,\n form: e.component,\n saveButtonId: saveButtonName,\n undo: undo,\n })\n }\n }\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {member && member.emailAddresses && member.emailAddresses.map((email, index) => (\n \n \n \n \n ))}\n {\n let tmp = { ...member };\n tmp.emailAddresses.push({ address: '', preferred: (member.emailAddresses && !member.emailAddresses.length) });\n setMember(tmp);\n let form = getFormInstance('memberForm');\n let emailEditor = form.getEditor(`emailAddresses[${tmp.emailAddresses.length - 1}].address`);\n if (typeof (emailEditor) !== 'undefined')\n emailEditor.focus();\n },\n }} />\n \n \n {member && member.phoneNumbers && member.phoneNumbers.map((phone, index) => (\n \n \n \n \n ))}\n {\n let tmp = { ...member };\n tmp.phoneNumbers.push({ address: '', preferred: (member.phoneNumbers && !member.phoneNumbers.length) });\n setMember(tmp);\n let form = getFormInstance('memberForm');\n let phoneEditor = form.getEditor(`phoneNumbers[${tmp.phoneNumbers.length - 1}].number`);\n if (typeof (phoneEditor) !== 'undefined')\n phoneEditor.focus();\n },\n }}\n />\n \n \n \n \n

Current Work Location(s)

\n
\n {\n return (\n 0}\n showAddNewLocationButton={true}\n />\n )\n }}>\n \n
\n \n \n

Previous Work Locations

\n

If you have returned to work at one of these locations, please click “Add Another Work Location +” and indicate the date you returned to that location.

\n
\n { return () }}>\n \n
\n 0}>\n {member && member.designations && member.designations.map((designation, index) => (\n \n \n \n \n ))}\n \n \n {\n let tmp = { ...member };\n tmp.designations.push({});\n setMember(tmp);\n let form = getFormInstance('memberForm');\n let emailEditor = form.getEditor(`designations[${tmp.designations.length - 1}].designationId`);\n if (typeof (emailEditor) !== 'undefined')\n emailEditor.focus();\n },\n }}\n />\n \n await saveProfile(),\n }}\n />\n \n \n
\n )\n}","import React, { } from 'react';\nimport { Link } from 'react-router-dom';\nimport { usePageTitle } from '../../contexts/page-title';\n\nexport default () => {\n const { setTitle } = usePageTitle();\n setTitle(\"Epitome Member Access\");\n return (\n
\n You are signed out. Click here to sign in again.\n
\n );\n}\n","import React from 'react';\nimport {\n Routes,\n Route,\n} from 'react-router-dom';\nimport { usePageTitle } from './contexts/page-title';\nimport { useEditProfile } from './contexts/edit-profile';\nimport {\n AuthOutlet,\n PassRouteParams,\n SelectedSchoolRoute,\n} from './components';\nimport { SingleCard } from './layouts';\nimport {\n HomePage,\n ReviewRecordsRequest,\n StaffList,\n StaffDetails,\n AddStaffRequest,\n EditProfile,\n LocateMembership,\n RequestMembership,\n SignedOut\n} from './pages';\n\nexport default function () {\n const { title } = usePageTitle();\n const { editProfileInfo } = useEditProfile();\n\n return (\n \n }>\n }>\n } />\n } />\n }>\n } />\n } />\n } />\n } />\n \n \n } />\n } />\n Page not found!

} />\n } />\n \n
\n );\n}","import React from 'react';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport { GlobalStateProvider } from './contexts/global-state';\nimport { PageTitleProvider } from './contexts/page-title';\nimport { EditProfileProvider } from './contexts/edit-profile';\nimport { useScreenSizeClass } from './utils/media-query';\nimport Content from './content';\n\nimport 'devextreme/dist/css/dx.common.css';\nimport './themes/generated/theme.base.css';\nimport './themes/generated/theme.additional.css';\nimport './app.scss';\n\nexport default function () {\n const screenSizeClass = useScreenSizeClass();\n return (\n \n \n \n \n
\n \n
\n
\n
\n
\n
\n );\n}\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({\n getCLS, getFID, getFCP, getLCP, getTTFB,\n }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { EventType } from \"@azure/msal-browser\";\nimport { MsalProvider } from \"@azure/msal-react\";\nimport { DecouplerProvider } from 'react-decoupler';\nimport serviceLocator from './configure-services';\nimport SERVICE_KEYS from './services/service-keys';\nimport App from './app';\nimport reportWebVitals from './report-web-vitals';\nimport '@fortawesome/fontawesome-free/css/solid.min.css';\nimport '@fortawesome/fontawesome-free/css/fontawesome.css';\nimport './polyfills';\nimport './index.css';\n\n\nconst pca = serviceLocator.resolve([SERVICE_KEYS.AUTH])[0].getPublicClientApplicationInstance();\n\npca.enableAccountStorageEvents();\npca.addEventCallback((message) => {\n if (message.eventType === EventType.ACCOUNT_ADDED) {\n const account = message.payload;\n pca.setActiveAccount(account);\n } else if (message.eventType === EventType.ACCOUNT_REMOVED) {\n pca.setActiveAccount(null);\n }\n});\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}