{"version":3,"sources":["Layout/Footer.tsx","Layout/Layout.tsx","Assets/vector_background.svg","Assets/vector_background_2.svg","Features/Meetings/Models.tsx","Models/Routes.ts","Components/Navigation/NavigationTypes.tsx","Features/Committees/Committees.tsx","Features/Committees/CommitteeProvider.tsx","Features/Committees/ViewCommittee.tsx","Context/RouteStore.ts","Utilities/CommonHooks.tsx","Components/Form/SmartFileUploader.tsx","Components/Form/SmartFileUploadDrawerInput.tsx","Components/Form/FormFiltersPageCard.tsx","Features/Meetings/CurrentAndUpcomingMeetings.tsx","Features/Meetings/ArchivedMeetings.tsx","Features/Meetings/Meetings.tsx","Features/Committees/CommitteeMeetings.tsx","Features/Committees/CommitteeMembers.tsx","Features/Committees/CommitteeProfile.tsx","Features/Committees/CommitteeOpenPositions.tsx","Features/Committees/AddCommitteeApplication.tsx","Navigation/SubRoutes/CommitteesSubRoutes.tsx","Navigation/SubRouteMaps.tsx","Components/Navigation/DocumentTitle.tsx","Components/Navigation/NavigationPillBar.tsx","Components/Display/PageHeaders.tsx","Components/Display/LayoutComponents.tsx","Components/Grid/ActionsEllipsisCell.tsx","Components/Grid/ConditionalDetailColumnCell.tsx","Components/Grid/FileDownloadCell.tsx","Features/Meetings/HtmlAgenda.tsx","Navigation/RouteNames.ts","Navigation/RouteTypes.ts","Features/PublicNotices/PublicNotices.tsx","Features/OpenPositions/OpenPositions.tsx","Navigation/RouteMaps.ts","Navigation/NavigationHelpers.tsx","App.tsx","Constants/CommonEndpoints.ts","index.tsx"],"names":["Footer","versionNumber","environmentName","useGlobalState","_jsxs","className","children","_jsx","Layout","_ref","Fragment","id","Header","HtmlAgendaModel","constructor","countyName","meetingName","meetingHeader","preMeetingText","meetingStartDisplay","logo","videoId","UpcomingMeetingSearchModel","title","meetingDateFrom","meetingDateTo","meetingTypes","committeeId","CONTROLLERS","METHODS","Endpoint","controller","base","read","create","destroy","update","get","dropdownItems","post","put","addedit","this","controllerActionString","READ","CREATE","DESTROY","UPDATE","GET","DROPDOWN_ITEMS","PUT","POST","ADDEDIT","method","AgendaEndpoints","actionitemattachments","ActionItemAttachments","committees","Committees","committeeapplicationattachments","CommitteeApplicationAttachments","meetings","Meetings","meetingtypes","MeetingTypes","meetingattachments","MeetingAttachments","publicnotices","PublicNotices","openpositions","OpenPositions","temporaryattachments","TemporaryAttachments","SubRouteConfig","route","label","component","icon","isDefault","arguments","length","undefined","permissions","hideInSidebar","routeProps","showInDropdown","path","default","AdminSubRouteConfig","super","CommitteeSearch","name","isActive","hasOpenPositions","ActionsCell","props","dataItem","TextIconButton","Visibility","onClick","async","window","location","href","Routes","CommitteesView","CommitteeStateContext","React","createContext","globalReducer","state","CommitteeProvider","providedCommitteeId","EMPTY_GUID","useParams","useReducer","Provider","value","useCommitteeState","globalStateContext","useContext","Error","CommitteeBasicInfoModel","allowPublicApplications","ViewCommittee","useIdParam","data","loadingStatus","useDataFetcher","buildEndpoint","defaultDataTransform","AsyncLoadingSection","Render","condition","AdminSubHeaderMainLayout","subRoute","OpenCommitteesView","useRouteStore","set","routeLabels","addRoute","clearRoutes","removeRoute","filter","r","DEFAULT_TITLE","useFileDownloader","API","useApiWorker","toast","useToasts","showLoadingToast","hideLoadingToast","useDownloadingToast","downloadFile","endpoint","objectName","forceDownload","onSuccess","onError","headers","responseType","mimeType","download","fileURL","URL","createObjectURL","open","err","error","ErrorMessage","console","log","maxSize","oneMB","SmartFileUploader","MultiModalProvider","SmartFileUploaderContent","fileEndpoint","required","requireAttachmentType","allowMultiple","vertical","isEdit","withComments","isAdministrativeAttachmentType","renderAdditionalFormComponents","allowScanning","acceptedFileTypes","defaultAttachmentType","filePondProps","formValues","formErrors","useFormState","sendUpdate","useFormUpdater","filePondRef","useRef","hasFiles","setHasFiles","useState","canAddSingle","setCanAddSingle","fileErrors","setFileErrors","toggle","toggleScanModal","useModalHelpers","attachmentTypeFieldName","commentsFieldname","uploadUrl","some","t","Upload","deleteUrl","DeleteTempBlob","formatFieldName","fieldName","registerPlugin","FilePondPluginFileValidateType","useEffect","_getPropertyByString","_formValues$fileId","hasValues","getPropertyByString","fileId","fileErrorValues","attachmentType","setAttachmentType","useFormStateValue","_filePondRef$current","current","removeFiles","formatFile","_ref2","filename","fileSize","serverId","fileName","size","getEmptyFileFields","description","handleFileFieldChange","e","type","getValueFromChangeEvent","newFileList","getFieldValue","map","file","FormActionTypes","UpdateValue","field","updateCanAddSingle","_filePondRef$current3","getFiles","server","process","metadata","load","progress","abort","_parseInt","handleAbort","CHUNK_SIZE","parseInt","FILE_UPLOAD_CHUNK_SIZE","chunk","uuidv4","numChunks","Math","ceil","blob","slice","formData","FormData","append","revert","uniqueFileId","buildQueryUrl","filteredFiles","clearFileFields","clearedValues","SetValues","Row","Col","xs","DefaultInputLabel","toggledClass","FilePond","onprocessfiles","handleProcessedFiles","_filePondRef$current2","files","fileValue","onaddfile","onremovefile","ref","ErrorDisplay","errors","SmartInputBlock","otherErrorNames","onChangeOverride","InputType","DropDown","readEndpoint","noSidePadding","useDiv","width","TextArea","placeholder","colProps","ColumnLayout","Full","LocalCollapsibleFormFiltersPageCard","collapsibleRightButtons","filterChipsProps","collapsiblePageCardProps","PageCard","PageCardSection","CurrentAndUpcomingMeetings","UpcomingMeetingSearchFields","GridProvider","entityName","CurrentAndUpcomingMeetingsGrid","isCardOpen","toggleIsCardOpen","useLocalState","updateCurrentSearch","useDetailedSearch","collapsibleTitle","isOpen","toggleIsOpen","onClear","PageCardRow","thin","short","Text","DatePicker","hidden","DetailedSearchButton","_ref3","searchValues","shouldClearGridData","setShouldClearGridData","total","setData","setTotal","useGridState","MainGrid","search","refreshOnSearchChange","sortable","groupable","defaultGridProps","pageSize","pageable","ariaLabel","Column","cell","DateCell","refreshGrid","ariaColumnIndex","colSpan","role","isPublished","Link","meetingStartDateTimeDisplay","to","HtmlAgenda","target","DesktopWindowsSharp","hasAgenda","url","agendaAttachmentId","PictureAsPdfSharp","hasMinutes","minutesAttachmentId","LibraryBooksSharp","tabIndex","DateCellContent","dateFormat","DEFAULT_DATETIME_FORMAT","runLastSearch","setFormValues","useFormHelpers","SecondaryButton","stopPropagation","disabled","isNullEmptyOrUndefined","PrimaryButton","setSearchValues","shouldUpdateSearch","setSearchModel","getPreviousSearchModel","useLocalStorage","ArchivedMeetings","ArchivedMeetingsGrid","UpdateAriaLabels","setTimeout","document","querySelectorAll","forEach","el","getAttribute","setAttribute","test","str","replace","onFetchSuccess","buttonCount","PlayVideoCell","pathname","LiveTvSharp","useToggler","SubHeaderLayout","MainArea","FormProvider","LocalStateProvider","initialValue","CommitteeMeetings","CommitteeMembersTabModel","committeeMembers","CommitteeMembers","_data$committeeMember","committeeMember","index","DisplayBlock","position","CommitteeProfileModel","dateCreatedDisplay","details","meetingTimes","CommitteeProfile","SummarizeSharp","CommitteeApplication","CommitteeApplicationModel","committeePositionId","configuration","captchaToken","firstName","middleInitial","lastName","emailAddress","phoneNumber","currentEmployer","jobTitle","yearsLived","describeInterest","summaryOfIssues","summaryOfParticipation","whatYouHaveToOffer","conflictsOfInterest","allowPublicAccess","attachments","PublicInformationNotice","AddEditActionItemContent","_data$configuration","_data$configuration2","_data$configuration3","_data$configuration4","_data$configuration5","_data$configuration6","_data$configuration7","_data$configuration8","_data$configuration9","_data$configuration10","_data$configuration11","_data$configuration12","_data$configuration13","_data$configuration14","_data$configuration15","_data$configuration16","_data$configuration17","_data$configuration18","_data$configuration19","_data$configuration20","_data$configuration21","_data$configuration22","_data$configuration23","_data$configuration24","_data$configuration25","_data$configuration26","_data$configuration27","_data$configuration28","_data$configuration29","_data$configuration30","_data$configuration31","_data$configuration32","_data$configuration33","_data$configuration34","_data$configuration35","_data$configuration36","_data$configuration37","_data$configuration38","_data$configuration39","_data$configuration40","_data$configuration41","_data$configuration42","_data$configuration43","_data$configuration44","_data$configuration45","_data$configuration46","_data$configuration47","_data$configuration48","captchaRef","useEnums","PageCardRowSection","applicationNotice","Auto","isMiddleInitialVisible","XXS","isMiddleInitialRequired","Large","EnumDropdown","Med","PhoneNumber","isCurrentEmployerVisible","isCurrentEmployerRequired","isJobTitleVisible","isJobTitleRequired","isYearsLivedVisible","Number","XS","isYearsLivedRequired","publicInformationNotice","isDescribeInterestVisible","isSummaryOfIssuesVisible","isSummaryOfParticipationVisible","isWhatYouHaveToOfferVisible","isConflictsOfInterestVisible","isDescribeInterestRequired","isSummaryOfIssuesRequired","isSummaryOfParticipationRequired","isWhatYouHaveToOfferRequired","YesNoBooleanRadioGroup","isConflictsOfInterestRequired","openRecordsNotice","isAllowPublicAccessVisible","isAllowPublicAccessRequired","attachmentsNotice","isAddAttachmentVisible","isAddAttachmentRequired","ReCAPTCHA","sitekey","CommitteeSubRoute","SUBROUTES_MAP","Profile","Members","CommitteeOpenPositions","AsyncGrid","isMainGrid","GridColumn","DateDisplayCell","SUB_NAV_CONFIG_MAP","mapValues","subRoutes","Object","entries","subRouteName","active","mapSubroutesToNavConfigItems","DocumentTitle","subTitle","nestRoutes","clearOnDismount","fullTitle","useMemo","join","v","useDocumentTitle","Helmet","SecondaryNavigationPillBar","parentRoute","largeFont","navConfig","useSubNavigation","useRouteMatch","pill","SmartLink","fullRoute","buildRoute","Unauthorized","fullClassName","SecondaryHeader","pillBarProps","useNestedTabs","TabbedHeaderLayout","header","useNestedSubRouteTabs","mapSubRoutes","useSubRoutes","withNoSubroutes","cloneElement","TabbedHeaderNestedTabBar","activeItem","find","item","activeRoute","_Fragment","TabbedHeaderNestedTabBarContents","_ref4","subNavConfigItems","TabbedHeaderNestedTab","_ref5","ConditionalDetailColumnCell","matchField","expanded","newData","onExpandChange","FileDownloadButtonCell","downloadFileTextProps","IconButton","iconElement","DownloadIcon","HtmlAgendaHeader","youtubeUrl","setYoutubeUrl","setPreMeetingText","columnWidth","ColSize","TwoThirds","noTitleMargin","noTopPadding","OneThird","style","backgroundImage","dangerouslySetInnerHTML","__html","HtmlAgendaGrid","meetingId","height","src","allow","referrerPolicy","allowFullScreen","expandField","useSubGrid","detail","FilesDetailGrid","DetailColumnCell","headerCell","EmptyHeaderCell","SubjectCellWrapper","FilePacketDownloadCell","_props$dataItem","hasAttachments","actionItemId","FileViewCell","FileNameDownloadCell","FileDownloadCell","fileControllerEndpoint","fileNameWithoutExtension","container","extension","display","timeStamp","WrappableCell","cursor","SubjectCellContent","_ref6","tabs","fullDisplay","itemDescription","staffRecommendationDisplay","_ref7","hasPacketAttachment","RouteConfig","alternateTitle","substring","alternatePath","isExact","navItemsUrl","PublicNoticesInfoModel","disclaimer","PublicNoticesGrid","NameCell","getFormattedDisplayCell","Download","CommitteeLinkCell","LinkCell","linkField","ROUTES","filters","FilterConfig","FilterBarFilterType","SearchText","FilterBarMainGrid","filterBarProps","filterConfigurations","filterValues","YesNoBooleanCell","AddCommitteeApplication","handleSuccess","useAddEditSuccessHandler","TaskPageHeaderLayout","formProviderProps","formModel","handleSubmitConfirmation","token","getValue","reset","getFullDefaultRoute","_len","parentRoutes","Array","_key","defaultSubRoute","values","x","getSubNavItems","_SUB_NAV_CONFIG_MAP$p","useActiveRouteSetter","getInitialValue","setNavConfig","useLocation","tempConfig","routeParts","split","s","includes","renderDocumentTitle","routeLabel","exact","otherRouteProps","Component","Route","render","AppContent","routes","keys","routeName","config","ToastProvider","EnumerationProvider","Switch","App","configObj","baseUrl","BASE_URL","apiEndpoint","API_ENDPOINT","VERSION_NUMBER","ENVIRONMENT_NAME","noAuth","GlobalProvider","ReactDOM","StrictMode","BrowserRouter","getElementById"],"mappings":"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","file":"static/js/main.0584fe57.chunk.js","sourcesContent":["import { useGlobalState } from '@techsharegov/react-ui';\nimport React from 'react';\n\nexport const Footer: React.FC = () => {\n const { versionNumber, environmentName } = useGlobalState();\n\n return (\n
\n TechShare Agenda Management Public Portal\n v{versionNumber}\n \n {environmentName}\n \n
\n );\n};\n","import { useGlobalState } from \"@techsharegov/react-ui\";\nimport { Footer } from \"./Footer\";\nimport \"./Layout.scss\";\nimport React, { Fragment } from \"react\";\n\nexport const Layout: React.FC = ({ children }) => {\n return (\n \n
\n
\n
\n
\n
\n
{children}
\n
\n
\n );\n};\n\nexport const Header = () => {\n const { environmentName } = useGlobalState();\n\n return (\n
\n

\n Agenda Management Public Access Portal\n \n {environmentName}\n \n

\n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/vector_background.4f285b19.svg\";","export default __webpack_public_path__ + \"static/media/vector_background_2.ca906eae.svg\";","import { DropdownItemModel } from \"@techsharegov/react-ui\";\n\nexport class HtmlAgendaModel {\n id?: string;\n countyName?: string;\n meetingName?: string;\n meetingHeader?: string;\n preMeetingText?: string;\n meetingStartDisplay?: string;\n logo?: string;\n videoId?: string;\n}\n\nexport class UpcomingMeetingSearchModel {\n title?: string;\n meetingDateFrom?: Date;\n meetingDateTo?: Date;\n meetingTypes?: DropdownItemModel[];\n committeeId?: string;\n}\n","\n\nexport enum IDS {\n Id = \"{id}\",\n OptionalId = \"{id?}\",\n UserId = \"{userId}\"\n}\n\nexport enum CONTROLLERS {\n ControllerLiteral = \"[controller]\",\n ActionItemAttachments = \"actionitemattachments\",\n Committees = \"committees\",\n CommitteeApplicationAttachments = \"committeeapplicationattachments\",\n Meetings = \"meetings\",\n MeetingTypes = \"meetingtypes\",\n MeetingAttachments = \"meetingattachments\",\n PublicNotices = \"publicnotices\",\n OpenPositions = \"openpositions\",\n TemporaryAttachments = \"temporaryattachments\"\n}\n\nexport enum METHODS {\n ActionLiteral = \"[action]\",\n IdActionLiteral = \"{id}/[action]\",\n READ = \"Read\",\n CREATE = \"Create\",\n GetAddFromEFileEnvelope = \"GetAddFromEFileEnvelope\",\n GET = \"Get\",\n POST = \"Post\",\n PUT = \"Put\",\n DESTROY = \"Destroy\",\n UPDATE = \"Update\",\n ADDEDIT = \"AddEdit\",\n EXPORT = \"Export\",\n REORDER = \"Reorder\",\n DROPDOWN_ITEMS = \"DropdownItems\",\n Upload = \"Upload\",\n Download = \"Download\",\n DownloadSignaturePlaceholder = \"DownloadSignaturePlaceholder\",\n DownloadImagePlaceholder = \"DownloadImagePlaceholder\",\n Stream = \"Stream\",\n DeleteTempBlob = \"DeleteTempBlob\"\n}\n\nexport enum URLS {\n Api = \"publicportal/api\",\n ApiPrefix = \"publicportal/api/\",\n ApiController = \"publicportal/api/[controller]\",\n Default = \"publicportal/api/[controller]/[action]/{id?}\",\n Validate = \"validate\",\n AddEdit = \"AddEdit/{id?}\",\n ActionIdLiteral = \"[action]/{id}\",\n ActionOptionalIdLiteral = \"[action]/{id?}\",\n IdActionLiteral = \"{id}/[action]\",\n ActionFilter = \"[action]/{filter}\",\n ActionItemAttachments = \"publicportal/api/actionitemattachments\",\n Committees = \"publicportal/api/committees\",\n CommitteeApplicationAttachments = \"publicportal/api/committeeapplicationattachments\",\n Meetings = \"publicportal/api/meetings\",\n MeetingTypes = \"publicportal/api/meetingtypes\",\n MeetingAttachments = \"publicportal/api/meetingattachments\",\n PublicNotices = \"publicportal/api/publicnotices\",\n OpenPositions = \"publicportal/api/openpositions\",\n TemporaryAttachments = \"publicportal/api/temporaryattachments\"\n}\n\nexport class Endpoint {\n constructor(controller: string) {\n this.base = controller;\n this.read = this.controllerActionString(METHODS.READ);\n this.create = this.controllerActionString(METHODS.CREATE);\n this.destroy = this.controllerActionString(METHODS.DESTROY);\n this.update = this.controllerActionString(METHODS.UPDATE);\n this.get = this.controllerActionString(METHODS.GET);\n this.dropdownItems = this.controllerActionString(METHODS.DROPDOWN_ITEMS);\n this.put = this.controllerActionString(METHODS.PUT);\n this.post = this.controllerActionString(METHODS.POST);\n this.addedit = this.controllerActionString(METHODS.ADDEDIT);\n } \n\n controllerActionString(method: string) {\n return `${this.base}/${method}`;\n }\n\n readonly base: string;\n readonly read: string;\n readonly create: string;\n readonly destroy: string;\n readonly update: string;\n readonly get: string;\n readonly dropdownItems: string;\n readonly post: string;\n readonly put: string;\n readonly addedit: string;\n}\n\nexport const AgendaEndpoints = {\n actionitemattachments: new Endpoint(CONTROLLERS.ActionItemAttachments),\n committees: new Endpoint(CONTROLLERS.Committees),\n committeeapplicationattachments: new Endpoint(CONTROLLERS.CommitteeApplicationAttachments),\n meetings: new Endpoint(CONTROLLERS.Meetings),\n meetingtypes: new Endpoint(CONTROLLERS.MeetingTypes),\n meetingattachments: new Endpoint(CONTROLLERS.MeetingAttachments),\n publicnotices: new Endpoint(CONTROLLERS.PublicNotices),\n openpositions: new Endpoint(CONTROLLERS.OpenPositions),\n temporaryattachments: new Endpoint(CONTROLLERS.TemporaryAttachments)\n};\n","import { NavConfigItem } from \"Navigation\";\n\nexport class SubRoutes {\n [x: string]: SubRouteConfig;\n}\n\nexport type FunctionalComponent = React.FC;\n\nexport class SubRouteConfig {\n constructor(\n route: string,\n label: string,\n component: FunctionalComponent,\n icon?: any,\n isDefault = false,\n permissions?: number[],\n hideInSidebar = false,\n routeProps = {},\n showInDropdown = false,\n path = route,\n ) {\n this.route = route;\n this.label = label;\n this.component = component;\n this.icon = icon;\n this.default = isDefault;\n this.permissions = permissions;\n this.hideInSidebar = hideInSidebar;\n this.routeProps = routeProps;\n this.showInDropdown = showInDropdown;\n this.path = path;\n }\n\n label: string;\n icon?: any;\n route: string;\n component: FunctionalComponent;\n default: boolean;\n hideInSidebar: boolean;\n permissions?: number[];\n routeProps?: any;\n showInDropdown?: boolean;\n path: string;\n}\n\nexport class DropdownSubRouteConfig extends SubRouteConfig {\n constructor(\n route: string,\n label: string,\n component: FunctionalComponent,\n permissions?: number[],\n isDefault = false,\n routeProps = {},\n ) {\n super(\n route,\n label,\n component,\n undefined,\n isDefault,\n permissions,\n false,\n routeProps,\n true,\n undefined,\n );\n }\n}\n\nexport class AdminSubRouteConfig extends SubRouteConfig {\n constructor(\n route: string,\n label: string,\n component: FunctionalComponent,\n isDefault = false,\n permissions?: number[],\n hideInSidebar = false,\n routeProps = {}\n ) {\n super(\n route,\n label,\n component,\n undefined,\n isDefault,\n permissions,\n hideInSidebar,\n routeProps\n );\n }\n}\n\nexport type SubNavConfigMap = {\n [x: string]: NavConfigItem[];\n};\n","import { GridCellProps, GridColumn } from '@progress/kendo-react-grid';\nimport {\n defaultGridProps,\n FilterBarFilterType,\n FilterBarMainGrid,\n FilterConfig,\n GridProvider,\n IFilterConfig,\n MainArea,\n PageCard,\n PageCardSection,\n TextIconButton,\n YesNoBooleanCell,\n} from '@techsharegov/react-ui';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { Routes } from 'Navigation';\nimport Visibility from '@mui/icons-material/Visibility';\n\nclass CommitteeSearch {\n constructor() {\n this.isActive = true;\n }\n\n name?: string;\n isActive?: boolean;\n hasOpenPositions?: boolean;\n}\n\nexport const Committees: React.FC = () => {\n const filters: IFilterConfig[] = [\n new FilterConfig(\n \"name\",\n FilterBarFilterType.SearchText,\n \"Name...\"\n ),\n new FilterConfig(\"isActive\", FilterBarFilterType.YesNoBooleanRadioGroup, \"Active\"),\n new FilterConfig(\"hasOpenPositions\", FilterBarFilterType.YesNoBooleanRadioGroup, \"Has Open Positions\"),\n ];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const dataItem = props.dataItem;\n \n const openCommittee = async () => {\n window.location.href = Routes.CommitteesView + \"/\" + dataItem?.id + \"/Profile\";\n };\n \n return (\n \n \n \n );\n};\n","import { EMPTY_GUID } from \"@techsharegov/react-ui\";\nimport React from \"react\";\nimport { useParams } from \"react-router-dom\";\n\nexport type CommitteeProviderProps = {\n providedCommitteeId?: string;\n};\n\nexport interface CommitteeState {\n committeeId: string;\n}\n\nconst CommitteeStateContext = React.createContext(undefined);\n\nfunction globalReducer(state: CommitteeState): CommitteeState {\n return {...state};\n}\n\nexport const CommitteeProvider: React.FC = ({\n providedCommitteeId = EMPTY_GUID,\n children,\n}) => {\n let { committeeId = providedCommitteeId } = useParams();\n\n const [state] = React.useReducer(globalReducer, {\n committeeId: committeeId,\n });\n\n return (\n \n {children}\n \n );\n};\n\nexport const useCommitteeState = () => {\n const globalStateContext = React.useContext(CommitteeStateContext);\n if (globalStateContext === undefined) {\n throw new Error('useCommitteeState must be used within a CommitteeProvider');\n }\n return globalStateContext;\n};\n","import { AsyncLoadingSection, Render, buildEndpoint, defaultDataTransform, useDataFetcher, useIdParam } from '@techsharegov/react-ui';\nimport { Routes } from 'Navigation';\nimport React from 'react';\nimport { CommitteeProvider } from './CommitteeProvider';\nimport { AdminSubHeaderMainLayout } from 'Components/Display';\nimport { AgendaEndpoints } from 'Models/Routes';\n\nexport class CommitteeBasicInfoModel {\n name?: string;\n allowPublicApplications?: boolean\n}\n\nexport const ViewCommittee: React.FC = () => {\n const [id] = useIdParam();\n\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(AgendaEndpoints.committees.controllerActionString(\"basicInfo\"), id),\n new CommitteeBasicInfoModel(),\n defaultDataTransform,\n CommitteeBasicInfoModel\n );\n\n return ( \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import create from 'zustand';\n\nexport interface RouteState {\n routeLabels: string[];\n addRoute: (route: string) => void;\n clearRoutes: () => void;\n removeRoute: (route: string) => void;\n}\n\nexport const useRouteStore = create((set) => ({\n routeLabels: [],\n addRoute: (route: string) =>\n set((state: RouteState) => {\n return { routeLabels: [...state.routeLabels, route] };\n }),\n clearRoutes: () => set({ routeLabels: [] }),\n removeRoute: (route: string) =>\n set((state: RouteState) => {\n return { routeLabels: state.routeLabels.filter((r) => r !== route) };\n }),\n}));\n","import {\n AsyncStatus,\n isNullEmptyOrUndefined,\n useApiWorker,\n useDownloadingToast,\n useSafeStateUpdate,\n useToasts,\n } from '@techsharegov/react-ui';\n import { RouteState, useRouteStore } from 'Context/RouteStore';\n import axios, { CancelTokenSource } from 'axios';\n import download from 'downloadjs';\n import { useCallback, useEffect, useMemo, useState } from 'react';\n\n export const DEFAULT_TITLE = '';\n \n export const useFileDownloader = () => {\n const API = useApiWorker();\n const toast = useToasts();\n const [showLoadingToast, hideLoadingToast] = useDownloadingToast();\n \n const downloadFile = async (\n endpoint: string,\n objectName: string,\n forceDownload?: boolean,\n onSuccess?: (response: any) => void,\n onError?: (response: any) => void\n ) => {\n showLoadingToast(`Downloading ${objectName}, please wait...`);\n try {\n const { data, headers } = await API.get(endpoint, {\n responseType: 'blob',\n });\n \n const mimeType = headers['content-type'];\n if (mimeType === 'application/pdf' && !forceDownload) {\n var fileURL = URL.createObjectURL(data);\n window.open(fileURL, objectName);\n } else {\n download(data, objectName, mimeType);\n }\n onSuccess && onSuccess(data);\n } catch (err) {\n toast.error(\n err\n ? (err as any).ErrorMessage\n : `Error: Unable to download ${objectName}`\n );\n console.log(err);\n onError && onError(err);\n }\n hideLoadingToast();\n };\n \n return { downloadFile };\n };\n \nexport function useBlobFetcher(url: string, condition = true) {\n const API = useApiWorker();\n const [fetchStatus, setFetchStatus] = useState(AsyncStatus.Idle);\n const [data, setData] = useState();\n const safeStateUpdate = useSafeStateUpdate();\n\n const getData = useCallback(\n async (cancelTokenSource?: CancelTokenSource) => {\n safeStateUpdate(() => setFetchStatus(AsyncStatus.Pending));\n\n try {\n const { data: blobData, headers } = await API.get(url, {\n cancelToken: cancelTokenSource?.token,\n responseType: 'blob',\n });\n\n if (blobData !== undefined) {\n safeStateUpdate(() => setData(blobData));\n\n safeStateUpdate(() => setFetchStatus(AsyncStatus.Success));\n\n return blobData;\n } else {\n safeStateUpdate(() => {\n setFetchStatus(AsyncStatus.Error);\n });\n\n return null;\n }\n } catch (err) {\n if (axios.isCancel(err)) {\n safeStateUpdate(() => setFetchStatus(AsyncStatus.Cancelled));\n }\n\n safeStateUpdate(() => {\n setFetchStatus(AsyncStatus.Error);\n });\n\n return null;\n }\n },\n [url, condition]\n );\n\n useEffect(() => {\n let cancelTokenSource = axios.CancelToken.source();\n if (condition) {\n getData(cancelTokenSource);\n } else {\n setFetchStatus(AsyncStatus.Idle);\n }\n\n return () => cancelTokenSource.cancel();\n }, [url, condition, getData]);\n\n return [data, fetchStatus, { getData }] as const;\n}\n\nexport const useDocumentTitle = (\n subTitle: string,\n nestRoutes = true,\n clearOnDismount = false\n) => {\n const routeLabels = useRouteStore((state: RouteState) => state.routeLabels);\n const addRoute = useRouteStore((state: RouteState) => state.addRoute);\n const removeRoute = useRouteStore((state: RouteState) => state.removeRoute);\n const clearRoutes = useRouteStore((state: RouteState) => state.clearRoutes);\n const fullTitle = useMemo(() => {\n let title = nestRoutes ? routeLabels.join(' - ') : subTitle;\n return [DEFAULT_TITLE, title]\n .filter((v) => !isNullEmptyOrUndefined(v))\n .join(' - ');\n }, [subTitle, routeLabels, nestRoutes]);\n\n useEffect(() => {\n if (nestRoutes && !isNullEmptyOrUndefined(subTitle)) {\n addRoute(subTitle);\n }\n\n return () => {\n clearOnDismount ? clearRoutes() : removeRoute(subTitle);\n };\n }, [subTitle]);\n\n return fullTitle;\n};\n","import {\n buildEndpoint,\n buildQueryUrl,\n ColumnLayout,\n DefaultInputLabel,\n DropdownItemModel,\n ErrorDisplay,\n FormActionTypes,\n getFieldValue,\n getPropertyByString,\n getValueFromChangeEvent,\n InputType,\n METHODS,\n MultiModalProvider,\n Render,\n SmartInputBlock,\n toggledClass,\n useApiWorker,\n useFormState,\n useFormStateValue,\n useFormUpdater,\n useModalHelpers,\n useToasts,\n} from \"@techsharegov/react-ui\";\nimport Dynamsoft from \"dwt\";\nimport { WebTwain } from \"dwt/dist/types/WebTwain\";\nimport {\n FilePondFile,\n ProcessServerConfigFunction,\n RevertServerConfigFunction,\n} from \"filepond\";\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\nimport \"filepond/dist/filepond.min.css\";\nimport { AgendaEndpoints } from \"Models/Routes\";\nimport React, { Fragment, useEffect, useRef, useState } from \"react\";\nimport { FilePond, FilePondProps, registerPlugin } from \"react-filepond\";\nimport { Col, Row } from \"reactstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst scanModalId = \"fileUploadScanDocumentsModal\";\n\nconst oneMB = 1048576;\nconst maxSize = oneMB * 4;\n\nexport type RenderAdditionalFormComponentsProp = (\n handleFileFieldChange: (e: any, type: InputType, fieldName: string) => void,\n formatFieldName: (name: string) => string\n) => React.ReactElement;\n\nexport type SmartFileUploaderProps = FilePondProps & {\n fileEndpoint: string;\n name?: string;\n requireAttachmentType?: boolean;\n vertical?: boolean;\n isEdit?: boolean;\n withComments?: boolean;\n label?: string;\n isAdministrativeAttachmentType?: boolean;\n renderAdditionalFormComponents?: RenderAdditionalFormComponentsProp;\n allowScanning?: boolean;\n defaultAttachmentType?: DropdownItemModel;\n};\n\nexport const SmartFileUploader: React.FC = (props) => {\n return (\n \n \n \n );\n};\n\nexport const SmartFileUploaderContent: React.FC = ({\n fileEndpoint,\n name = \"files\",\n label,\n required,\n requireAttachmentType,\n allowMultiple,\n vertical,\n isEdit,\n withComments,\n isAdministrativeAttachmentType,\n renderAdditionalFormComponents,\n allowScanning = true,\n acceptedFileTypes = [],\n defaultAttachmentType,\n ...filePondProps\n}) => {\n const { formValues, formErrors } = useFormState();\n const sendUpdate = useFormUpdater();\n const API = useApiWorker();\n var filePondRef = useRef(null);\n const toast = useToasts();\n const [hasFiles, setHasFiles] = useState(isEdit ?? false);\n const [canAddSingle, setCanAddSingle] = useState(true);\n const [fileErrors, setFileErrors] = useState([]);\n const { toggle: toggleScanModal } = useModalHelpers(scanModalId);\n const attachmentTypeFieldName = \"attachmentType\";\n const commentsFieldname = \"description\";\n const acceptsPdf =\n !acceptedFileTypes.length ||\n acceptedFileTypes.some(\n (t) => t === \"application/pdf\" || t === \"application/*\"\n );\n const isAbleToScan =\n allowScanning && !isEdit && acceptsPdf && (allowMultiple || canAddSingle);\n const uploadUrl = buildEndpoint(fileEndpoint, METHODS.Upload);\n const deleteUrl = buildEndpoint(fileEndpoint, METHODS.DeleteTempBlob);\n\n const deleteUrlWithId = (id: string) => {\n return buildQueryUrl(deleteUrl, { id: id });\n };\n\n const formatFieldName = (fieldName: string) => {\n return allowMultiple ? `${name}[0].${fieldName}` : fieldName;\n };\n\n registerPlugin(FilePondPluginFileValidateType);\n\n useEffect(() => {\n var hasValues =\n (allowMultiple && getPropertyByString(formValues, name)?.length > 0) ||\n (!allowMultiple && formValues?.fileId?.length > 0);\n\n if (hasFiles !== hasValues) {\n setHasFiles(hasValues);\n }\n }, [formValues]);\n\n useEffect(() => {\n const fileErrorValues = allowMultiple\n ? formErrors[formatFieldName(\"fileid\")]\n : formErrors[\"fileid\"];\n\n setFileErrors(fileErrorValues);\n }, [formErrors]);\n\n const [attachmentType, setAttachmentType] =\n useFormStateValue(\n formatFieldName(attachmentTypeFieldName)\n );\n useEffect(() => {\n if (filePondRef && !hasFiles) {\n filePondRef.current?.removeFiles();\n }\n\n if (defaultAttachmentType !== undefined && hasFiles) {\n setAttachmentType(defaultAttachmentType);\n }\n }, [hasFiles]);\n\n const formatFile = ({ filename, fileSize, serverId }: FilePondFile) => {\n return {\n fileId: serverId,\n fileName: filename,\n size: fileSize,\n };\n };\n\n const getEmptyFileFields = () => {\n return {\n ...formValues,\n fileId: undefined,\n fileName: undefined,\n size: undefined,\n description: undefined,\n attachmentType: undefined,\n };\n };\n\n const clearFileFields = () => {\n var clearedValues = getEmptyFileFields();\n\n sendUpdate(FormActionTypes.SetValues, {\n field: name,\n value: clearedValues,\n });\n };\n\n /* Handles chunking + posting temp file in chunks */\n const handleProcess: ProcessServerConfigFunction = async (\n fieldName,\n file,\n metadata,\n load,\n error,\n progress,\n abort\n ) => {\n var aborted = false;\n const handleAbort = () => {\n aborted = true;\n abort();\n };\n\n if (maxSize !== undefined && file.size > maxSize) {\n toast.error(\n \"File is too large. Please make sure your upload is less than \" +\n maxSize\n );\n return handleAbort();\n }\n\n const CHUNK_SIZE =\n 1024 *\n 1024 *\n (parseInt(\n process.env.NODE_ENV === \"development\"\n ? `${process.env.REACT_APP_FILE_UPLOAD_CHUNK_SIZE}`\n : `${window.FILE_UPLOAD_CHUNK_SIZE}`\n ) ?? 1);\n var chunk = 0;\n const fileId = uuidv4();\n var numChunks = Math.ceil(file.size / CHUNK_SIZE);\n\n while (chunk * CHUNK_SIZE < file.size) {\n var blob = file.slice(CHUNK_SIZE * chunk, CHUNK_SIZE * (chunk + 1));\n const formData = new FormData();\n formData.append(\"contentType\", file.type);\n formData.append(\"fileName\", file.name);\n formData.append(\"chunk\", `${chunk}`);\n formData.append(\"chunks\", `${numChunks}`);\n formData.append(\"id\", fileId);\n formData.append(\"file\", blob);\n const response = await API.post(uploadUrl, formData);\n chunk++;\n progress(true, chunk, numChunks);\n }\n\n load(fileId);\n return {\n abort: handleAbort,\n };\n };\n\n /* Handles deleting temp file */\n const handleRevert: RevertServerConfigFunction = async (\n uniqueFileId,\n load,\n error\n ) => {\n try {\n await API.post(deleteUrlWithId(uniqueFileId));\n } catch (err: any) {\n error(err);\n }\n\n if (allowMultiple) {\n const filteredFiles = (getFieldValue(formValues, name) || []).filter(\n (file: any) => file.fileId !== uniqueFileId\n );\n\n sendUpdate(FormActionTypes.UpdateValue, {\n field: name,\n value: filteredFiles,\n });\n } else {\n clearFileFields();\n }\n\n load();\n };\n\n const handleProcessedFiles = () => {\n const files = filePondRef.current?.getFiles();\n\n if (allowMultiple) {\n sendUpdate(FormActionTypes.UpdateValue, {\n field: name,\n value: files?.map((file) => formatFile(file)),\n });\n } else {\n var fileValue = files ? formatFile(files[0]) : getEmptyFileFields();\n sendUpdate(FormActionTypes.SetValues, {\n ...formValues,\n ...fileValue,\n });\n }\n };\n\n const handleFileFieldChange = (\n e: any,\n type: InputType,\n fieldName: string\n ) => {\n const value = getValueFromChangeEvent(e, type);\n const fileList = getFieldValue(formValues, name);\n const newFileList = [\n ...(fileList || []).map((file: any) => {\n return { ...file, [fieldName]: value };\n }),\n ];\n\n sendUpdate(FormActionTypes.UpdateValue, {\n field: name,\n value: newFileList,\n });\n };\n\n const updateCanAddSingle = () => {\n setCanAddSingle(!filePondRef.current?.getFiles().length);\n };\n\n const handleScannedDocumentUploaded = async (\n fileName: string,\n fileBlob: Blob\n ) => {\n try {\n const name = fileName.toLowerCase().endsWith(\".pdf\")\n ? fileName\n : fileName + \".pdf\";\n\n if (!allowMultiple) {\n filePondRef.current?.removeFiles();\n }\n await filePondRef.current?.addFile(new File([fileBlob], name));\n toggleScanModal();\n } catch (e) {\n toast.error(\"An error occurred uploading the scanned document.\");\n }\n };\n\n const uploadScannedDocument = (\n fileName: string,\n pages: number,\n dwObject: WebTwain\n ) => {\n dwObject.ConvertToBlob(\n Array.from(Array(pages).keys()),\n Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,\n (blob) => handleScannedDocumentUploaded(fileName, blob),\n () => toast.error(\"An error occurred uploading the scanned document.\")\n );\n };\n\n const server = {\n process: handleProcess,\n revert: handleRevert,\n };\n\n return (\n \n {/* \n \n \n \n \n \n */}\n \n \n \n \n 0)}\n >\n (filePondRef.current = ref)}\n allowMultiple={allowMultiple}\n acceptedFileTypes={acceptedFileTypes}\n {...filePondProps}\n />\n \n \n \n \n\n {/* \n \n \n Scan document instead\n \n \n \n */}\n \n \n \n \n handleFileFieldChange(\n e,\n InputType.DropDown,\n attachmentTypeFieldName\n )\n : undefined\n }\n label=\"Attachment Type\"\n type={InputType.DropDown}\n readEndpoint={\n AgendaEndpoints.actionitemattachments.dropdownItems\n }\n required\n noSidePadding\n useDiv\n value={defaultAttachmentType}\n width=\"100%\"\n />\n \n \n \n handleFileFieldChange(\n e,\n InputType.TextArea,\n commentsFieldname\n )\n : undefined\n }\n label=\"Description\"\n placeholder=\"Enter description here...\"\n type={InputType.TextArea}\n colProps={ColumnLayout.Full}\n noSidePadding\n />\n \n \n {renderAdditionalFormComponents &&\n renderAdditionalFormComponents(\n handleFileFieldChange,\n formatFieldName\n )}\n \n \n \n );\n};\n\nexport interface ScannerModalContentProps {\n uploadFile: (fileName: string, pages: number, dwObject: WebTwain) => void;\n}\n\n// const ScannerModalContent: React.FC = ({\n// uploadFile,\n// }) => {\n// const toast = useToasts();\n// const { setFormErrors, clearFormErrors } = useFormHelpers();\n// const { fileName, pageCount, dwObject } = useDwtScannerState();\n\n// const submitAction = () => {\n// clearFormErrors();\n\n// if (!fileName.trim().length) {\n// toast.error('Please set a file name.');\n// setFormErrors({ filename: [\"'File Name' must not be empty.\"] });\n// return;\n// }\n\n// if (!pageCount) {\n// toast.error('No scanned document found.');\n// return;\n// }\n\n// if (dwObject.current === null) {\n// toast.error('An error occurred uploading the scanned document.');\n// return;\n// }\n\n// uploadFile(fileName, pageCount, dwObject.current);\n// };\n\n// return (\n// \n// \n// \n//
\n// \n// Upload\n//
\n//
\n//
\n// );\n// };\n","import './SmartFileUploadDrawerInput.scss';\nimport { Grid, GridColumn } from '@progress/kendo-react-grid';\nimport { EditDeleteCell } from 'Components/Grid';\nimport React, { useState } from 'react';\nimport { SmartFileUploader, SmartFileUploaderProps } from './SmartFileUploader';\nimport { plural } from 'pluralize';\nimport { Col } from 'reactstrap';\nimport { ButtonSize, ControlledModalFormDrawer, DefaultInputLabel, DownloadFileText, DropdownItemModel, FileDownloadCell, FormActionTypes, FormErrorDisplay, GridColumnWidth, ModalDrawerButtonRow, PrimaryButton, Render, RowCol, SecondaryButton, ToggleProvider, buildEndpoint, buildQueryUrl, isNullEmptyOrUndefined, isNullOrUndefined, useApiWorker, useFormState, useFormStateValue, useFormUpdater, useToasts, useToggleState } from '@techsharegov/react-ui';\nimport { AgendaEndpoints, CONTROLLERS } from 'Models/Routes';\n\nconst defaultEntityName = 'File';\nconst defaultFileListName = 'files';\nconst tempFileEndpoint = AgendaEndpoints.temporaryattachments.base;\n\nexport type SmartFileUploadDrawerInputProps =\n Partial & {\n entityName?: string;\n fileListName?: string;\n label?: string;\n required?: boolean;\n isSingleUpload?: boolean;\n useDiv?: boolean;\n isEdit?: boolean;\n mainFileController: CONTROLLERS | string;\n requireAttachmentType?: boolean;\n defaultAttachmentType?: DropdownItemModel;\n };\n\nexport const SmartFileUploadDrawerInput: React.FC<\n SmartFileUploadDrawerInputProps\n> = ({ label, required, useDiv = label === undefined, ...props }) => {\n const Wrapper = useDiv ? 'div' : Col;\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nconst DrawerToggler: React.FC> = ({\n entityName = defaultEntityName,\n isSingleUpload,\n fileListName = defaultFileListName,\n requireAttachmentType,\n}) => {\n const [, toggle] = useToggleState();\n const pluralEntityName = plural(entityName);\n const isFileUploaded = useIsFileUploaded(\n isSingleUpload,\n fileListName,\n requireAttachmentType\n );\n\n return (\n \n \n \n Upload {isSingleUpload ? entityName : pluralEntityName}\n \n \n \n \n );\n};\n\nconst FileDisplay: React.FC = ({\n fileListName = defaultFileListName,\n isSingleUpload,\n entityName = defaultEntityName,\n isEdit = false,\n mainFileController,\n}) => {\n const { formValues } = useFormState();\n const [files, setFiles] = useFormStateValue(fileListName, []);\n const [, toggle] = useToggleState();\n const { clearFileFields, isFileUploaded, deleteTempFiles } =\n useFileUploadHelpers(isSingleUpload, fileListName);\n const [isOldFile, setIsOldFile] = useState(\n isEdit && !isNullOrUndefined(formValues?.fileId)\n );\n\n const fileControllerName = isOldFile ? mainFileController : tempFileEndpoint;\n const downloadActionName = isOldFile ? 'download' : 'downloadTemp';\n\n const onClickReplace = async () => {\n if (!isOldFile) {\n await deleteTempFiles();\n }\n setIsOldFile(false);\n clearFileFields();\n toggle();\n };\n\n return isSingleUpload ? (\n \n
\n \n \n Replace {entityName}\n \n
\n
\n ) : (\n \n \n (\n \n )}\n />\n (\n \n setFiles([...files].filter((f) => f !== dataItem))\n }\n usePostForDelete\n useDeleteQueryParam\n {...props}\n />\n )}\n />\n \n \n );\n};\n\nconst FileUploadDrawer: React.FC = ({\n entityName = defaultEntityName,\n isSingleUpload,\n fileListName = defaultFileListName,\n isEdit,\n requireAttachmentType,\n defaultAttachmentType,\n ...filePondProps\n}) => {\n const { clearFileFields, deleteTempFiles } = useFileUploadHelpers(\n isSingleUpload,\n fileListName\n );\n const [isOpen, toggle] = useToggleState();\n const { formValues } = useFormState();\n const toastr = useToasts();\n\n const handleButtonClick = async (isSave: boolean = false) => {\n if (isSingleUpload) {\n if (\n !isNullEmptyOrUndefined(formValues.fileId) &&\n (isNullEmptyOrUndefined(\n formValues.attachmentType?.id || !requireAttachmentType\n ) ||\n !isSave)\n ) {\n await deleteTempFiles();\n }\n } else {\n if (!isSave) {\n await deleteTempFiles();\n }\n }\n\n if (!isSave) {\n clearFileFields();\n }\n\n if (\n isSave &&\n requireAttachmentType &&\n ((isSingleUpload &&\n isNullEmptyOrUndefined(formValues.attachmentType?.id)) ||\n (!isSingleUpload &&\n formValues[fileListName] != null &&\n isNullEmptyOrUndefined(\n formValues[fileListName][0]?.attachmentType?.id\n )))\n ) {\n toastr.error('Attachment Type is missing.');\n } else {\n toggle();\n }\n };\n\n return (\n \n \n \n await handleButtonClick()}\n className=\"mr-regular\"\n >\n Cancel\n \n await handleButtonClick(true)}>\n Save\n \n \n \n );\n};\n\nexport const useClearFileFields = (\n isSingleUpload = false,\n fileListName = defaultFileListName\n) => {\n const sendUpdate = useFormUpdater();\n const { formValues } = useFormState();\n const [, setFileList] = useFormStateValue(fileListName, []);\n\n const clearFileFields = () => {\n if (isSingleUpload) {\n sendUpdate(FormActionTypes.SetValues, {\n ...formValues,\n fileId: undefined,\n fileName: undefined,\n size: undefined,\n comments: undefined,\n attachmentType: undefined,\n });\n } else {\n setFileList([]);\n }\n };\n\n return clearFileFields;\n};\n\nexport const useIsFileUploaded = (\n isSingleUpload = false,\n fileListName = defaultFileListName,\n requireAttachmentType = false\n) => {\n const { formValues } = useFormState();\n const [files] = useFormStateValue(fileListName, []);\n\n return isSingleUpload\n ? !isNullEmptyOrUndefined(formValues?.fileId) &&\n ((requireAttachmentType &&\n !isNullEmptyOrUndefined(formValues?.attachmentType?.id)) ||\n !requireAttachmentType)\n : !isNullEmptyOrUndefined(files) &&\n files.every(\n (f) =>\n !isNullEmptyOrUndefined(f?.attachmentType?.id) ||\n !requireAttachmentType\n );\n};\n\nexport const useDeleteTempFiles = (\n isSingleUpload = false,\n fileListName = defaultFileListName\n) => {\n const { formValues } = useFormState();\n const [fileList] = useFormStateValue(fileListName, []);\n const API = useApiWorker();\n const deleteUrl = buildEndpoint(tempFileEndpoint, 'DeleteTempBlob');\n const deleteUrlWithId = (id: string) => {\n return buildQueryUrl(deleteUrl, { id });\n };\n\n const deleteTempFiles = async () => {\n if (isSingleUpload) {\n await API.post(deleteUrlWithId(formValues.fileId));\n } else {\n fileList.map(async (f) => {\n await API.post(deleteUrlWithId(f?.fileId));\n });\n }\n };\n\n return deleteTempFiles;\n};\n\nexport const useFileUploadHelpers = (\n isSingleUpload = false,\n fileListName = defaultFileListName,\n requireAttachmentType = false\n) => {\n const clearFileFields = useClearFileFields(isSingleUpload, fileListName);\n const isFileUploaded = useIsFileUploaded(\n isSingleUpload,\n fileListName,\n requireAttachmentType\n );\n const deleteTempFiles = useDeleteTempFiles(isSingleUpload, fileListName);\n\n return { clearFileFields, isFileUploaded, deleteTempFiles };\n};\n","import {\n CollapsiblePageCardProps,\n FormFilterChipsProps,\n PageCard,\n PageCardSection,\n} from \"@techsharegov/react-ui\";\n\nexport type CollapsibleFormFiltersPageCardProps = CollapsiblePageCardProps & {\n filterChipsProps?: FormFilterChipsProps;\n};\n\nexport const LocalCollapsibleFormFiltersPageCard: React.FC<\n CollapsibleFormFiltersPageCardProps\n> = ({\n children,\n collapsibleRightButtons,\n filterChipsProps,\n ...collapsiblePageCardProps\n}) => {\n return (\n \n {children}\n \n );\n};\n","import DesktopWindowsSharp from \"@mui/icons-material/DesktopWindowsSharp\";\nimport LibraryBooksSharp from \"@mui/icons-material/LibraryBooksSharp\";\nimport PictureAsPdfSharp from \"@mui/icons-material/PictureAsPdfSharp\";\nimport {\n GridColumn as Column,\n GridCellProps,\n} from \"@progress/kendo-react-grid\";\nimport {\n DateCellContent,\n DateCellProps,\n DEFAULT_DATETIME_FORMAT,\n defaultGridProps,\n GridProvider,\n InputType,\n isNullEmptyOrUndefined,\n MainGrid,\n MultiModalProvider,\n PageCard,\n PageCardRow,\n PageCardSection,\n PrimaryButton,\n Render,\n SecondaryButton,\n SmartInputBlock,\n TextIconButton,\n TimeStampCell,\n useFormHelpers,\n useFormState,\n useGridState,\n useLocalState,\n useLocalStorage,\n useToasts,\n} from \"@techsharegov/react-ui\";\nimport { LocalCollapsibleFormFiltersPageCard } from \"Components/Form\";\nimport { AgendaEndpoints } from \"Models/Routes\";\nimport { Routes } from \"Navigation\";\nimport { Fragment, useEffect, useRef } from \"react\";\nimport { Row } from \"reactstrap\";\nimport { useFileDownloader } from \"Utilities\";\nimport { UpcomingMeetingSearchModel } from \"./Models\";\nimport { Link } from \"react-router-dom\";\n\nexport type MeetingsGridProps = {\n committeeId?: string;\n};\n\nexport type UpcomingMeetingLocalState = {\n isCardOpen: boolean;\n toggleIsCardOpen: () => void;\n searchValues: UpcomingMeetingSearchModel;\n setSearchValues: React.Dispatch<\n React.SetStateAction\n >;\n shouldClearGridData: boolean;\n setShouldClearGridData: React.Dispatch>;\n};\n\nexport const CurrentAndUpcomingMeetings: React.FC = ({\n committeeId = undefined,\n}) => {\n return (\n \n \n \n \n \n \n );\n};\n\nconst UpcomingMeetingSearchFields: React.FC = ({\n committeeId,\n}) => {\n const [{ isCardOpen, toggleIsCardOpen }] =\n useLocalState();\n\n const { updateCurrentSearch } = useDetailedSearch();\n\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CurrentAndUpcomingMeetingsGrid: React.FC = ({\n committeeId,\n}) => {\n const [{ searchValues, shouldClearGridData, setShouldClearGridData }] =\n useLocalState();\n const { total, setData, setTotal } = useGridState();\n\n useEffect(() => {\n if (shouldClearGridData) {\n setData([]);\n setTotal(0);\n setShouldClearGridData(false);\n }\n }, [shouldClearGridData]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const { refreshGrid } = useGridState();\n const toast = useToasts();\n const { downloadFile } = useFileDownloader();\n const dataItem = props.dataItem;\n\n const goToHtmlAgenda = async () => {\n window.location.href = `${Routes.HtmlAgenda}/${dataItem?.id}`;\n };\n\n const downloadAgenda = async () => {\n try {\n var url =\n AgendaEndpoints.meetingattachments.controllerActionString(\"download\") +\n \"?id=\" +\n dataItem.agendaAttachmentId;\n\n downloadFile(url, \"MeetingAgenda\");\n refreshGrid();\n } catch {\n toast.error(\"Error downloading document.\");\n }\n };\n\n const downloadMinutes = async () => {\n try {\n var url =\n AgendaEndpoints.meetingattachments.controllerActionString(\"download\") +\n \"?id=\" +\n dataItem.minutesAttachmentId;\n\n downloadFile(url, \"MeetingMinutes\");\n refreshGrid();\n } catch {\n toast.error(\"Error downloading document.\");\n }\n };\n\n return (\n \n \n \n \n Html Agenda\n \n \n
\n
\n \n \n \n Agenda\n \n \n
\n
\n \n \n \n Minutes\n \n \n \n \n );\n};\n\nconst DateCell: React.FC = (props) => {\n return (\n \n \n \n );\n};\n\nconst DetailedSearchButton: React.FC = () => {\n const { formValues, runLastSearch, search, updateCurrentSearch } =\n useDetailedSearch();\n const { setFormValues } = useFormHelpers();\n\n const handleClearAll = (e: any) => {\n e.stopPropagation();\n setFormValues({});\n updateCurrentSearch();\n };\n\n return (\n \n \n \n Clear all\n \n \n Run Last Search\n \n \n Search\n \n \n \n );\n};\n\nexport const useDetailedSearch = () => {\n const [{ isCardOpen, toggleIsCardOpen, setSearchValues }] =\n useLocalState();\n\n const shouldUpdateSearch = useRef(false);\n const { formValues } = useFormState();\n const { setFormValues } = useFormHelpers();\n const [{ setShouldClearGridData }] =\n useLocalState();\n const [, setSearchModel, getPreviousSearchModel] =\n useLocalStorage(\n \"searchModel\",\n new UpcomingMeetingSearchModel()\n );\n\n const saveSearchFilters = () => {\n if (!isNullEmptyOrUndefined(formValues)) {\n setSearchModel(formValues);\n }\n };\n\n const runLastSearch = () => {\n setFormValues(getPreviousSearchModel());\n shouldUpdateSearch.current = true;\n };\n\n const updateCurrentSearch = () => {\n shouldUpdateSearch.current = true;\n };\n\n const search = () => {\n saveSearchFilters();\n setSearchValues(formValues);\n if (isNullEmptyOrUndefined(formValues)) {\n setShouldClearGridData(true);\n }\n if (!isNullEmptyOrUndefined(formValues) && isCardOpen) {\n toggleIsCardOpen();\n }\n };\n\n useEffect(() => {\n if (shouldUpdateSearch.current) {\n search();\n shouldUpdateSearch.current = false;\n }\n }, [formValues]);\n\n return { formValues, runLastSearch, search, updateCurrentSearch };\n};\n","import DesktopWindowsSharp from \"@mui/icons-material/DesktopWindowsSharp\";\nimport LibraryBooksSharp from \"@mui/icons-material/LibraryBooksSharp\";\nimport LiveTvSharp from \"@mui/icons-material/LiveTvSharp\";\nimport PictureAsPdfSharp from \"@mui/icons-material/PictureAsPdfSharp\";\nimport {\n GridColumn as Column,\n GridCellProps,\n} from \"@progress/kendo-react-grid\";\nimport {\n CollapsibleFormFiltersPageCard,\n DateCellContent,\n DateCellProps,\n DEFAULT_DATETIME_FORMAT,\n defaultGridProps,\n DropdownItemModel,\n GridProvider,\n InputType,\n isNullEmptyOrUndefined,\n MainGrid,\n MultiModalProvider,\n PageCard,\n PageCardRow,\n PageCardSection,\n PrimaryButton,\n Render,\n SecondaryButton,\n SmartInputBlock,\n TextIconButton,\n useGridState,\n useLocalState,\n useToasts,\n} from \"@techsharegov/react-ui\";\nimport { AgendaEndpoints } from \"Models/Routes\";\nimport { Routes } from \"Navigation\";\nimport { useFileDownloader } from \"Utilities\";\nimport React, { useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Row } from \"reactstrap\";\nimport {\n MeetingsGridProps,\n UpcomingMeetingLocalState,\n useDetailedSearch,\n} from \"./CurrentAndUpcomingMeetings\";\nexport const ArchivedMeetings: React.FC = ({\n committeeId = undefined,\n}) => {\n return (\n \n \n \n );\n};\n\nexport class MeetingSearch {\n constructor(committeeId?: string) {\n this.committeeId = committeeId;\n }\n description?: string;\n meetingType?: DropdownItemModel[];\n startDateFrom?: Date;\n startDateTo?: Date;\n committeeId?: string;\n}\n\nconst ArchivedMeetingSearchFields: React.FC = ({\n committeeId,\n}) => {\n const [{ isCardOpen, toggleIsCardOpen }] =\n useLocalState();\n\n const { updateCurrentSearch } = useDetailedSearch();\n\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport const ArchivedMeetingsGrid: React.FC = ({\n committeeId,\n}) => {\n const [{ searchValues, shouldClearGridData, setShouldClearGridData }] =\n useLocalState();\n const { total, setData, setTotal } = useGridState();\n useEffect(() => {\n if (shouldClearGridData) {\n setData([]);\n setTotal(0);\n setShouldClearGridData(false);\n }\n }, [shouldClearGridData]);\n\n const UpdateAriaLabels = () => {\n setTimeout(() => {\n document.querySelectorAll(\"button.k-pager-nav\").forEach(function (el) {\n var title = el.getAttribute(\"title\");\n el.setAttribute(\"aria-label\", title as string);\n });\n document\n .querySelectorAll(\"div.k-pager-numbers > button\")\n .forEach(function (el) {\n var test = el.getAttribute(\"aria-label\");\n var str = test?.replace(\"undefined\", \"page\");\n el.setAttribute(\"aria-label\", str as string);\n });\n }, 2500);\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const { refreshGrid } = useGridState();\n const toast = useToasts();\n const { downloadFile } = useFileDownloader();\n const dataItem = props.dataItem;\n const downloadAgenda = async () => {\n try {\n var url =\n AgendaEndpoints.meetingattachments.controllerActionString(\"download\") +\n \"?id=\" +\n dataItem.agendaAttachmentId;\n\n downloadFile(url, \"MeetingAgenda\");\n refreshGrid();\n } catch {\n toast.error(\"Error downloading document.\");\n }\n };\n\n const downloadMinutes = async () => {\n try {\n var url =\n AgendaEndpoints.meetingattachments.controllerActionString(\"download\") +\n \"?id=\" +\n dataItem.minutesAttachmentId;\n\n downloadFile(url, \"MeetingMinutes\");\n refreshGrid();\n } catch {\n toast.error(\"Error downloading document.\");\n }\n };\n\n return (\n \n \n \n \n Html Agenda\n \n \n
\n
\n \n \n \n Agenda\n \n \n
\n
\n \n \n \n Minutes\n \n \n \n \n );\n};\n\nconst PlayVideoCell: React.FC = (props: GridCellProps) => {\n const dataItem = props.dataItem;\n\n return (\n \n {dataItem?.videoId != null && dataItem?.videoId !== \"\" && (\n \n \n \n )}\n \n );\n};\n\nconst DateCell: React.FC = (props) => {\n return (\n \n \n \n );\n};\n\nconst DetailedSearchButton: React.FC = () => {\n const { formValues, runLastSearch, search } = useDetailedSearch();\n\n return (\n
\n
\n \n Run Last Search\n \n \n Search\n \n
\n );\n};\n","import {\n FormProvider,\n LocalStateProvider,\n MainArea,\n SubHeaderLayout,\n useToggler,\n} from \"@techsharegov/react-ui\";\nimport { ArchivedMeetings } from \"./ArchivedMeetings\";\nimport { CurrentAndUpcomingMeetings } from \"./CurrentAndUpcomingMeetings\";\nimport { useState } from \"react\";\nimport { UpcomingMeetingSearchModel } from \"./Models\";\n\nexport const Meetings: React.FC = () => {\n const [isCardOpen, toggleIsCardOpen] = useToggler(true);\n const [searchValues, setSearchValues] =\n useState(null);\n const [shouldClearGridData, setShouldClearGridData] =\n useState(false);\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {\n FormProvider,\n LocalStateProvider,\n MainArea,\n useToggler,\n} from \"@techsharegov/react-ui\";\nimport {\n ArchivedMeetings,\n CurrentAndUpcomingMeetings,\n UpcomingMeetingSearchModel,\n} from \"Features/Meetings\";\nimport { useCommitteeState } from \"./CommitteeProvider\";\nimport { useState } from \"react\";\n\nexport const CommitteeMeetings: React.FC = () => {\n const { committeeId } = useCommitteeState();\n const [isCardOpen, toggleIsCardOpen] = useToggler(true);\n const [searchValues, setSearchValues] =\n useState(null);\n const [shouldClearGridData, setShouldClearGridData] =\n useState(false);\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import { AsyncLoadingSection, DisplayBlock, PageCard, PageCardSection, buildEndpoint, defaultDataTransform, useDataFetcher } from '@techsharegov/react-ui';\nimport { useCommitteeState } from './CommitteeProvider';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { Row } from 'reactstrap';\n\nexport class CommitteeMembersTabModel {\n countyName?: string;\n name?: string;\n committeeMembers?: CommitteeMemberModel[];\n}\n\nexport class CommitteeMemberModel {\n id?: string;\n name?: string;\n position?: string;\n}\n\nexport const CommitteeMembers: React.FC = () => {\n const { committeeId } = useCommitteeState();\n\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(AgendaEndpoints.committees.controllerActionString(\"members\"), committeeId),\n new CommitteeMembersTabModel(),\n defaultDataTransform,\n CommitteeMembersTabModel\n );\n\n return (\n \n \n \n \n {data?.committeeMembers?.map((committeeMember, index) => \n \n )}\n \n \n \n \n );\n};\n","import { AsyncLoadingSection, DisplayBlock, PageCard, PageCardSection, buildEndpoint, defaultDataTransform, useDataFetcher } from '@techsharegov/react-ui';\nimport { useCommitteeState } from './CommitteeProvider';\nimport { AgendaEndpoints } from 'Models/Routes';\n\nexport class CommitteeProfileModel {\n countyName?: string;\n name?: string;\n description?: string;\n dateCreatedDisplay?: string;\n location?: string;\n details?: string;\n meetingTimes?: string;\n}\n\nexport const CommitteeProfile: React.FC = () => {\n const { committeeId } = useCommitteeState();\n\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(AgendaEndpoints.committees.controllerActionString(\"profile\"), committeeId),\n new CommitteeProfileModel(),\n defaultDataTransform,\n CommitteeProfileModel\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { GridCellProps, GridColumn } from '@progress/kendo-react-grid';\nimport {\n AsyncGrid,\n DateDisplayCell,\n defaultGridProps,\n GridProvider,\n MainArea,\n PageCard,\n PageCardSection,\n TextIconButton,\n} from '@techsharegov/react-ui';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { Routes } from 'Navigation';\nimport SummarizeSharp from '@mui/icons-material/SummarizeSharp';\nimport { useCommitteeState } from './CommitteeProvider';\n\nexport const CommitteeOpenPositions: React.FC = () => {\n const { committeeId }= useCommitteeState();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const dataItem = props.dataItem;\n \n const openApplication = async () => {\n window.location.href = Routes.CommitteeApplication + \"/\" + dataItem?.id;\n };\n \n return (\n \n \n Apply\n \n \n );\n};\n","import {\n AsyncLoadingSection,\n buildEndpoint,\n ColumnLayout,\n defaultDataTransform,\n DisplayBlock,\n DropdownItemModel,\n InputType,\n PageCard,\n PageCardRowSection,\n Render,\n SmartInputBlock,\n TaskPageHeaderLayout,\n useAddEditSuccessHandler,\n useDataFetcher,\n useEnums,\n useIdParam,\n useToasts,\n} from '@techsharegov/react-ui';\nimport React, { Fragment, useRef } from 'react';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { Row } from 'reactstrap';\nimport { SmartFileUploader } from 'Components/Form';\nimport ReCAPTCHA from 'react-google-recaptcha';\n\nexport class CommitteeApplicationModel {\n id?: string;\n committeeId?: string;\n committeePositionId?: string;\n configuration?: CommitteeApplicationConfigurationModel;\n captchaToken?: string;\n\n // Applicant\n firstName?: string;\n middleInitial?: string;\n lastName?: string;\n emailAddress?: string;\n phoneNumber?: string;\n currentEmployer?: string;\n jobTitle?: string;\n yearsLived?: number;\n\n // Interests & Experience\n describeInterest?: string;\n summaryOfIssues?: string;\n summaryOfParticipation?: string;\n whatYouHaveToOffer?: string;\n conflictsOfInterest?: boolean;\n\n // Open Records and Public Information Act Acknowledgement\n allowPublicAccess?: boolean;\n\n // Attachments\n attachments?: DropdownItemModel[];\n}\n\nexport class CommitteeApplicationConfigurationModel {\n id?: string;\n countyName?: string;\n\n // Applicant\n applicationNotice?: string;\n isMiddleInitialVisible?: boolean;\n isMiddleInitialRequired?: boolean;\n isCurrentEmployerVisible?: boolean;\n isCurrentEmployerRequired?: boolean;\n isJobTitleVisible?: boolean;\n isJobTitleRequired?: boolean;\n isYearsLivedVisible?: boolean;\n isYearsLivedRequired?: boolean;\n\n // Interests & Experience\n publicInformationNotice?: string;\n isDescribeInterestVisible?: boolean;\n isDescribeInterestRequired?: boolean;\n isSummaryOfIssuesVisible?: boolean;\n isSummaryOfIssuesRequired?: boolean;\n isSummaryOfParticipationVisible?: boolean;\n isSummaryOfParticipationRequired?: boolean;\n isWhatYouHaveToOfferVisible?: boolean;\n isWhatYouHaveToOfferRequired?: boolean;\n isConflictsOfInterestVisible?: boolean;\n isConflictsOfInterestRequired?: boolean;\n\n // Open Records and Public Information Act Acknowledgement\n openRecordsNotice?: string;\n isAllowPublicAccessVisible?: boolean;\n isAllowPublicAccessRequired?: boolean;\n\n // Attachments\n attachmentsNotice?: string;\n isAddAttachmentVisible?: boolean;\n isAddAttachmentRequired?: boolean;\n}\n\nexport const PublicInformationNotice: React.FC = () => {\n return (\n
OPEN RECORDS AND PUBLIC INFORMATION ACT ACKNOWLEDGEMENT
\n );\n}\n\nexport const AddCommitteeApplication: React.FC = () => {\n const entityName = 'Committee Application';\n const [id] = useIdParam();\n const handleSuccess = useAddEditSuccessHandler(entityName, true, undefined, \"Application sent to the committee.\");\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(AgendaEndpoints.committees.controllerActionString(\"OpenPosition\"), id),\n new CommitteeApplicationModel(),\n defaultDataTransform,\n CommitteeApplicationModel\n );\n const captchaRef = useRef(null);\n const toast = useToasts();\n \n const handleSubmit = async () => {\n if(captchaRef !== undefined && captchaRef !== null &&\n captchaRef.current !== undefined && captchaRef.current !== null) {\n const token = captchaRef.current.getValue();\n captchaRef.current.reset();\n\n if(token === undefined || token === null || token === '') {\n toast.error(\"You must complete the captcha to submit this application.\");\n return false;\n }\n data.captchaToken = token as string;\n }\n\n return true;\n }\n\n return (\n \n \n \n \n \n );\n};\n\n\nexport const AddEditActionItemContent: React.FC<{\n data: CommitteeApplicationModel;\n captchaRef: React.RefObject;\n}> = ({data, captchaRef}) => {\n const { state } = useEnums();\n const docxFileType =\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n const pdfFileType = 'application/pdf'; \n\n return (\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 \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
\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 \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
\n \n
\n );\n};\n","import { AdminSubRouteConfig, SubRoutes } from \"Components/Navigation/NavigationTypes\";\nimport { CommitteeMeetings, CommitteeMembers, CommitteeOpenPositions, CommitteeProfile } from \"Features/Committees\";\n\nexport enum CommitteeSubRoute {\n Profile = '/Profile',\n Members = '/Members',\n Vacancies = '/Vacancies',\n Meetings = '/Meetings',\n OpenPositions = '/OpenPositions',\n}\n\nexport type CommitteeSubRoutesProps = {\n isOpen?: boolean;\n}\n\nexport const CommitteeSubRoutes: SubRoutes = {\n [CommitteeSubRoute.Profile]: new AdminSubRouteConfig(\n CommitteeSubRoute.Profile,\n 'Profile',\n CommitteeProfile,\n true,\n ),\n [CommitteeSubRoute.Members]: new AdminSubRouteConfig(\n CommitteeSubRoute.Members,\n 'Members',\n CommitteeMembers,\n false,\n ),\n [CommitteeSubRoute.Meetings]: new AdminSubRouteConfig(\n CommitteeSubRoute.Meetings,\n 'Meetings',\n CommitteeMeetings,\n false,\n ),\n};\n\nexport const OpenCommitteeSubRoutes: SubRoutes = {\n [CommitteeSubRoute.Profile]: new AdminSubRouteConfig(\n CommitteeSubRoute.Profile,\n 'Profile',\n CommitteeProfile,\n true,\n ),\n [CommitteeSubRoute.Members]: new AdminSubRouteConfig(\n CommitteeSubRoute.Members,\n 'Members',\n CommitteeMembers,\n false,\n ),\n [CommitteeSubRoute.Meetings]: new AdminSubRouteConfig(\n CommitteeSubRoute.Meetings,\n 'Meetings',\n CommitteeMeetings,\n false,\n ),\n [CommitteeSubRoute.OpenPositions]: new AdminSubRouteConfig(\n CommitteeSubRoute.OpenPositions,\n 'Open Positions',\n CommitteeOpenPositions,\n false,\n ),\n};\n","import { SubNavConfigMap, SubRoutes } from \"Components/Navigation/NavigationTypes\";\nimport { NavConfigItem } from \"Navigation\";\nimport mapValues from 'lodash/mapValues';\nimport { CommitteeSubRoutes, OpenCommitteeSubRoutes } from \"./SubRoutes\";\n\ntype SubRoutesMapType = {\n [x: string]: SubRoutes;\n};\n\nexport const SUBROUTES_MAP: SubRoutesMapType = {\n [\"/CommitteesView\"]:\n CommitteeSubRoutes,\n [\"/OpenCommitteesView\"]:\n OpenCommitteeSubRoutes,\n};\n\n\nexport const mapSubroutesToNavConfigItems = (\n subRoutes: SubRoutes\n): NavConfigItem[] => {\n return Object.entries(subRoutes)\n .filter(([, subRoute]) => !subRoute.hideInSidebar)\n .map(([subRouteName, subRoute]) => {\n return { ...subRoute, subRouteName, active: false };\n });\n};\n\nexport const SUB_NAV_CONFIG_MAP: SubNavConfigMap = mapValues(\n SUBROUTES_MAP,\n (subRoutes) => mapSubroutesToNavConfigItems(subRoutes)\n);\n","import { useDocumentTitle } from \"Utilities\";\nimport { Helmet } from \"react-helmet\";\n\nexport type DocumentTitleProps = {\n subTitle: string;\n nestRoutes?: boolean;\n clearOnDismount?: boolean;\n};\n\nexport const DocumentTitle = ({\n subTitle,\n nestRoutes,\n clearOnDismount,\n}: DocumentTitleProps) => {\n const title = useDocumentTitle(subTitle, nestRoutes, clearOnDismount);\n \n return (\n \n {title}\n \n );\n};\n","import {\n buildRoute,\n fullClassName,\n Render,\n SmartLink,\n toggledClass,\n} from '@techsharegov/react-ui';\nimport {\n useSubNavigation,\n NavConfigItem,\n Routes,\n} from 'Navigation';\nimport { Fragment } from 'react';\nimport { useRouteMatch } from 'react-router-dom';\n\nexport const NavigationPillBar: React.FC> = ({\n className,\n ...others\n}) => {\n return (\n \n
\n );\n};\n\nexport type SecondaryNavigationPillBarProps = {\n parentRoute?: string;\n largeFont?: boolean;\n};\n\nexport const SecondaryNavigationPillBar: React.FC<\n SecondaryNavigationPillBarProps\n> = ({ parentRoute, largeFont }) => {\n const navConfig = useSubNavigation(parentRoute);\n const { url } = useRouteMatch();\n\n return (\n 0}>\n
\n {navConfig.map((pill: NavConfigItem, index: number) => (\n \n \n
{pill.label}
\n
\n \n \n ))}\n
\n \n );\n};\n","import FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';\nimport {\n ActionsDropdownConfig,\n fullClassName,\n Render,\n} from '@techsharegov/react-ui';\nimport { Fragment, HTMLProps, ReactNode } from 'react';\nimport { SecondaryNavigationPillBar, SecondaryNavigationPillBarProps } from 'Components/Navigation';\n\ntype PageHeaderProps = HTMLProps & {\n title?: string;\n dropdownConfig?: ActionsDropdownConfig;\n tall?: boolean;\n};\n\nexport type TaskHeaderProps = PageHeaderProps & {\n saveButtonText?: string;\n disableSaveButton?: boolean;\n customButtons?: ReactNode;\n tall?: boolean;\n};\n\nconst HeaderBullet: React.FC = () => (\n
\n \n
\n);\n\nexport type HeaderBulletedListProps = {\n list: (string | undefined)[];\n header?: boolean;\n wrapperProps?: HTMLProps;\n};\n\nexport const HeaderBulletedList: React.FC = ({\n list,\n header,\n wrapperProps,\n}) => {\n return (\n \n {list\n .filter((item) => item && item.length > 0)\n .map((item, index) => (\n \n \n \n \n \n {item}\n \n \n ))}\n
\n );\n};\n\nexport type BulletedHeadingProps = {\n mainBulletItems: (string | undefined)[];\n subBulletItems?: (string | undefined)[];\n smallerMainBullets?: boolean;\n};\n\nexport const BulletedHeading: React.FC = ({\n mainBulletItems,\n subBulletItems = [],\n smallerMainBullets,\n}) => {\n const MainBulletWrapper = smallerMainBullets ? 'h2' : 'h1';\n\n return (\n
\n
\n \n \n \n
\n \n
\n );\n};\n\n\nexport type SecondaryHeaderProps = PageHeaderProps &\n SecondaryNavigationPillBarProps;\n\nexport const SecondaryHeader: React.FC = ({\n children,\n title,\n className,\n ...pillBarProps\n}) => {\n\n return (\n \n
\n {title ?

{title}

: children}\n
\n \n \n );\n};\n","import { MainArea, Render, SmartLink, buildRoute, fullClassName, toggledClass } from \"@techsharegov/react-ui\";\nimport { SUBROUTES_MAP } from \"Navigation/SubRouteMaps\";\nimport { NavConfigItem, Routes, useSubNavigation, useSubRoutes } from \"Navigation\";\nimport React from \"react\";\nimport { SecondaryHeader } from \"./PageHeaders\";\n\nexport type AdminSubHeaderMainLayoutProps = {\n title: string;\n subRoute?: string;\n useNestedTabs?: boolean;\n};\n\nexport const AdminSubHeaderMainLayout: React.FC<\n AdminSubHeaderMainLayoutProps\n> = ({ title, subRoute = '', children, useNestedTabs }) => {\n return (\n \n }\n useNestedSubRouteTabs={useNestedTabs}\n >\n {children}\n \n );\n};\n\nexport type TabbedHeaderLayoutProps = {\n subRoute?: string;\n useNestedSubRouteTabs?: boolean;\n header: any;\n};\n\nexport const TabbedHeaderLayout: React.FC = ({\n subRoute = '',\n children,\n header,\n useNestedSubRouteTabs,\n}) => {\n const mapSubRoutes = useSubRoutes();\n const withNoSubroutes = subRoute.length === 0;\n\n return (\n \n {React.cloneElement(header as React.ReactElement, {\n className: 'admin-header',\n })}\n \n \n \n \n {withNoSubroutes ? children : mapSubRoutes(SUBROUTES_MAP[subRoute])}\n \n \n );\n};\n\nexport type TabbedHeaderNestedTabBarProps = {\n subRoute: string;\n};\n\nexport const TabbedHeaderNestedTabBar = ({\n subRoute,\n}: TabbedHeaderNestedTabBarProps) => {\n const navConfigItems = useSubNavigation(subRoute);\n const activeItem = navConfigItems.find((item) => item.active);\n const activeRoute = buildRoute(subRoute, activeItem?.route);\n\n return (\n <>\n {activeItem ? (\n
\n \n
\n ) : null}\n \n );\n};\n\nexport type TabbedHeaderNestedTabBarContentsProps = {\n activeRoute: string;\n};\n\nexport const TabbedHeaderNestedTabBarContents = ({\n activeRoute,\n}: TabbedHeaderNestedTabBarContentsProps) => {\n const subNavConfigItems = useSubNavigation(activeRoute);\n\n return (\n <>\n {subNavConfigItems.map((item) => (\n \n ))}\n \n );\n};\n\n\nexport type TabbedHeaderNestedTabProps = NavConfigItem & {\n parentRoute: string;\n};\n\nexport const TabbedHeaderNestedTab = ({\n active,\n label,\n route,\n parentRoute,\n}: TabbedHeaderNestedTabProps) => {\n return (\n \n \n {label}\n
\n
\n
\n );\n};\n","import React from 'react';\nimport {\n GridActionsDropdown,\n GridActionsDropdownSpecificProps,\n} from 'Components/Display';\nimport {\n GridCellProps,\n GRID_COL_INDEX_ATTRIBUTE,\n} from '@progress/kendo-react-grid';\nimport {\n ActionsDropdownConfig,\n EMPTY_GUID,\n GridRefreshableOptionalProps,\n} from '@techsharegov/react-ui';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\n\ntype ActionsEllipsisCellProps = Partial &\n GridActionsDropdownSpecificProps &\n GridRefreshableOptionalProps & {\n actionsConfig: ActionsDropdownConfig;\n };\n\nexport const ActionsEllipsisCell: React.FC = ({\n actionsConfig,\n ...gridCellProps\n}) => {\n const navigationAttributes = useTableKeyboardNavigation(\n gridCellProps.id ?? EMPTY_GUID\n );\n\n return (\n \n \n \n );\n};\n","import { GridCellProps } from '@progress/kendo-react-grid';\nimport { useGridState } from '@techsharegov/react-ui';\nimport React from 'react';\n\nexport type ConditionalDetailColumnCellProps = GridCellProps & {\n condition?: boolean;\n matchField: string;\n};\n\nexport const ConditionalDetailColumnCell: React.FC<\n ConditionalDetailColumnCellProps\n> = ({ dataItem, condition = false, matchField = 'id' }) => {\n const { data, setData } = useGridState();\n const className = dataItem.expanded ? 'k-icon k-minus' : 'k-icon k-plus';\n const onExpandChange = (dataItem: any) => {\n if (data != null && (data as any[]).length > 0) {\n let newData = (data as any[]).map((item: any) => {\n if (item[matchField] === dataItem[matchField]) {\n item.expanded = !dataItem.expanded;\n }\n return item;\n });\n setData(newData);\n }\n };\n\n if (condition) {\n return (\n \n onExpandChange(dataItem)}\n className={className}\n href=\"#\"\n tabIndex={-1}\n >\n \n );\n }\n return ;\n};\n","import React from 'react';\nimport { GridCellProps } from '@progress/kendo-react-grid';\nimport { useFileDownloader } from 'Utilities';\nimport DownloadIcon from '@mui/icons-material/Download';\nimport { DownloadFileText, FileModel, IconButton } from '@techsharegov/react-ui';\n\nexport type FileDownloadCellProps = {\n fileControllerEndpoint: string;\n optionalParams?: any;\n fileId?: string;\n filename?: string;\n display?: any;\n endpointActionName?: string;\n className?: string;\n};\n\nexport const FileDownloadCell: React.FC<\n GridCellProps & FileDownloadCellProps\n> = ({ dataItem, fileId, filename, ...downloadFileTextProps }) => {\n const rowModel = dataItem as FileModel;\n const fileName = filename || rowModel.fileName;\n const entityId = fileId || rowModel.id;\n\n return (\n \n \n \n );\n};\n\nexport type FileDownloadButtonCellProps = {\n endpoint: string;\n entityName: string;\n title?: string;\n icon?: any;\n};\n\nexport const FileDownloadButtonCell: React.FC = ({ \n dataItem, \n endpoint, \n entityName, \n title,\n icon = undefined,\n ...downloadFileTextProps \n}) => {\n const { downloadFile } = useFileDownloader();\n const downloadClick = async () => {\n downloadFile(endpoint, entityName);\n };\n return (\n \n \n \n );\n};\n","import {\n AsyncGrid,\n AsyncLoadingSection,\n ButtonCore,\n ButtonStyle,\n ColSize,\n EmptyHeaderCell,\n FileDownloadCell,\n GridProvider,\n MainArea,\n PageCard,\n PageCardRow,\n PageCardSection,\n Render,\n ThemeColor,\n WrappableCell,\n buildEndpoint,\n defaultDataTransform,\n defaultGridProps,\n useDataFetcher,\n useIdParam,\n useSubGrid,\n} from \"@techsharegov/react-ui\";\nimport React, {\n Dispatch,\n Fragment,\n SetStateAction,\n useEffect,\n useState,\n} from \"react\";\nimport { HtmlAgendaModel } from \"./Models\";\nimport { AgendaEndpoints } from \"Models/Routes\";\nimport {\n GridCellProps,\n GridColumn,\n GridDetailRowProps,\n} from \"@progress/kendo-react-grid\";\nimport {\n ConditionalDetailColumnCell,\n FileDownloadButtonCell,\n} from \"Components\";\nimport { Button, Col, Row } from \"reactstrap\";\n\nexport const HtmlAgenda: React.FC = () => {\n return (\n \n \n \n );\n};\n\nexport const HtmlAgendaHeader: React.FC = () => {\n const [id] = useIdParam();\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(\n AgendaEndpoints.meetings.controllerActionString(\"getHtmlAgenda\"),\n id\n ),\n new HtmlAgendaModel(),\n defaultDataTransform,\n HtmlAgendaModel\n );\n const [youtubeUrl, setYoutubeUrl] = useState();\n const [preMeetingText, setPreMeetingText] = useState(\"\");\n\n useEffect(() => {\n if (data?.preMeetingText !== undefined) {\n setPreMeetingText(data?.preMeetingText);\n }\n if (data?.videoId != null) {\n setYoutubeUrl(\"https://www.youtube.com/embed/\" + data?.videoId);\n }\n }, [data]);\n\n return (\n \n \n \n \n \n \n
\n \n
\n \n \n
\n {data.countyName}\n
\n {data.meetingName}\n
\n \n
\n \n \n \n
\n {data.meetingHeader}\n
\n \n
\n \n \n\n \n
\n {data.meetingStartDisplay}\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\nexport type HtmlAgendaGridProps = {\n meetingId: string | undefined;\n videoId: string | undefined;\n setYoutubeUrl: Dispatch>;\n};\n\nexport const HtmlAgendaGrid: React.FC = ({\n meetingId,\n setYoutubeUrl,\n videoId,\n}) => {\n const search = {\n id: meetingId,\n };\n const { expandField } = useSubGrid();\n\n return (\n \n \n \n SubjectCellWrapper({ meetingId, videoId, setYoutubeUrl, ...props })\n }\n />\n \n \n );\n};\n\nconst DetailColumnCell: React.FC = (props: GridCellProps) => {\n return (\n \n );\n};\n\nconst FilesDetailGrid: React.FC = ({ dataItem }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nconst FileViewCell: React.FC = ({ ...props }) => {\n return (\n \n );\n};\n\nconst FileNameDownloadCell: React.FC = ({ ...props }) => {\n return (\n \n );\n};\n\nconst SubjectCellWrapper: React.FC = ({\n dataItem,\n setYoutubeUrl,\n videoId,\n}) =>\n videoId != null && dataItem?.timeStamp != null ? (\n <>\n \n \n setYoutubeUrl(\n \"https://www.youtube.com/embed/\" +\n videoId +\n \"?start=\" +\n dataItem.timeStamp +\n \"&autoplay=1\"\n )\n }\n >\n \n \n \n \n ) : (\n <>\n \n \n \n \n );\n\nconst SubjectCellContent: React.FC<{ dataItem: any }> = ({ dataItem }) => (\n
\n
\n \n
\n \n \n \n
\n \n
\n);\n\nconst FilePacketDownloadCell: React.FC = ({ ...props }) => {\n return props.dataItem.hasPacketAttachment ? (\n \n ) : (\n \n );\n};\n","export enum Routes {\n Committees = \"/Committees\",\n CommitteesView = \"/CommitteesView\",\n OpenCommitteesView = \"/OpenCommitteesView\",\n CommitteeApplication = \"/CommitteeApplication\",\n Meetings = \"/Meetings\",\n HtmlAgenda = \"/HtmlAgenda\", \n PublicNotices = \"/PublicNotices\",\n OpenPositions = \"/OpenPositions\",\n Unauthorized = \"/Unauthorized\", \n}\n","import { ReactComponentType } from \"Types\";\n\nexport type FunctionalComponent = React.FC;\n\nexport interface IRouteConfig {\n isExact: boolean;\n title: string;\n path: string;\n component: ReactComponentType;\n active?: boolean;\n permissions?: number[];\n}\n\nexport class RouteConfig implements IRouteConfig {\n constructor(\n subRoute: string,\n component: ReactComponentType,\n alternateTitle = subRoute.substring(1),\n alternatePath = subRoute,\n isExact = true,\n permissions: number[] = []\n ) {\n this.isExact = isExact;\n this.component = component;\n this.title = alternateTitle;\n this.path = alternatePath;\n this.permissions = permissions;\n this.route = alternatePath;\n this.fullRoute = alternatePath;\n this.label = \"\";\n }\n\n isExact: boolean;\n component: ReactComponentType;\n title: string;\n path: string;\n active?: boolean;\n permissions?: number[];\n icon?: React.ReactNode;\n route: string;\n label: string;\n fullRoute?: string;\n navItemsUrl?: string;\n default?: boolean;\n hideInSidebar?: boolean;\n children?: NavConfigItem[];\n showInDropdown?: boolean;\n subRouteName?: string;\n}\n\nexport interface IRouteMap {\n [x: string]: IRouteConfigMap;\n}\n\nexport interface IRouteConfigMap {\n [x: string]: IRouteConfig;\n}\n\nexport type NavConfigItem = {\n label: string;\n icon?: React.ReactNode;\n route: string;\n fullRoute?: string;\n navItemsUrl?: string;\n permissions?: number[];\n active?: boolean;\n default?: boolean;\n component?: FunctionalComponent;\n hideInSidebar?: boolean;\n children?: NavConfigItem[];\n showInDropdown?: boolean;\n subRouteName?: string;\n};\n","import {\n GridCellProps,\n GridColumn as Column,\n} from '@progress/kendo-react-grid';\nimport {\n AsyncLoadingSection,\n buildEndpoint,\n defaultDataTransform,\ndefaultGridProps,\ngetFormattedDisplayCell,\nGridProvider,\nMainGrid,\nMultiModalProvider,\nPageCard,\nPageCardSection,\nRender,\nTextIconButton,\nuseDataFetcher,\nuseToasts,\nWrappableCell,\n} from '@techsharegov/react-ui';\nimport Download from '@mui/icons-material/Download';\nimport Visibility from '@mui/icons-material/Visibility';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { useFileDownloader } from 'Utilities';\nimport React from 'react';\n\nexport class PublicNoticesInfoModel {\n disclaimer?: string;\n}\n\nexport const PublicNotices: React.FC = () => {\n return (\n \n \n \n );\n};\n\nexport const PublicNoticesGrid: React.FC = () => {\n const [data, loadingStatus] = useDataFetcher(\n buildEndpoint(AgendaEndpoints.publicnotices.controllerActionString(\"disclaimer\")),\n new PublicNoticesInfoModel(),\n defaultDataTransform,\n PublicNoticesInfoModel\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst NameCell: React.FC = ({dataItem}) => (\n \n {dataItem.name}\n \n);\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const toast = useToasts();\n const { downloadFile } = useFileDownloader();\n const dataItem = props.dataItem;\n \n const downloadPdf = async () => {\n try {\n var url = \n AgendaEndpoints.publicnotices.controllerActionString('downloadPacket') + \n '?publicNoticeId=' +\n dataItem.id;\n \n downloadFile(url, 'PublicNotice', true);\n } catch {\n toast.error('Error downloading document.');\n }\n };\n \n const openPdf = async () => {\n try {\n var url = \n AgendaEndpoints.publicnotices.controllerActionString('downloadPacket') + \n '?publicNoticeId=' +\n dataItem.id;\n \n downloadFile(url, 'PublicNotice');\n } catch {\n toast.error('Error downloading document.');\n }\n };\n \n return (\n \n \n \n \n \n \n \n \n );\n};\n","import { GridCellProps, GridColumn } from '@progress/kendo-react-grid';\nimport {\n AsyncGrid,\n DateDisplayCell,\n defaultGridProps,\n GridProvider,\n LinkCell,\n MainArea,\n PageCard,\n PageCardSection,\n TextIconButton,\n} from '@techsharegov/react-ui';\nimport { AgendaEndpoints } from 'Models/Routes';\nimport { CommitteeSubRoute, Routes } from 'Navigation';\nimport SummarizeSharp from '@mui/icons-material/SummarizeSharp';\n\nexport const OpenPositions: React.FC = () => {\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CommitteeLinkCell: React.FC = ({ dataItem, ...props }) => (\n \n);\n\nconst ActionsCell: React.FC = (props: GridCellProps) => {\n const dataItem = props.dataItem;\n \n const openApplication = async () => {\n window.location.href = Routes.CommitteeApplication + \"/\" + dataItem?.id;\n };\n \n return (\n \n \n Apply\n \n \n );\n};\n","import { HtmlAgenda } from \"Features/Meetings/HtmlAgenda\";\nimport { Routes } from \"./RouteNames\";\nimport { IRouteConfigMap, IRouteMap, RouteConfig } from \"./RouteTypes\";\nimport { Meetings } from \"Features/Meetings\";\nimport { PublicNotices } from \"Features/PublicNotices\";\nimport { AddCommitteeApplication, Committees, ViewCommittee } from \"Features/Committees\";\nimport { OpenPositions } from \"Features/OpenPositions\";\n\nexport const ROUTE_MAP: IRouteMap = {};\n\nexport const ROUTES: IRouteConfigMap = {\n [Routes.Committees]: new RouteConfig(\n Routes.Committees,\n Committees,\n \"Committees\",\n undefined,\n false\n ),\n [Routes.CommitteesView]: new RouteConfig(\n `${Routes.CommitteesView}/:id?`,\n ViewCommittee,\n \"Committee\",\n undefined,\n false\n ),\n [Routes.OpenCommitteesView]: new RouteConfig(\n `${Routes.OpenCommitteesView}/:id?`,\n ViewCommittee,\n \"Committee\",\n undefined,\n false\n ),\n [Routes.CommitteeApplication]: new RouteConfig(\n `${Routes.CommitteeApplication}/:id?`,\n AddCommitteeApplication,\n \"Committee Application\",\n undefined,\n false\n ),\n [Routes.Meetings]: new RouteConfig(\n Routes.Meetings,\n Meetings,\n \"Meetings\",\n undefined,\n false\n ),\n [Routes.HtmlAgenda]: new RouteConfig(\n `${Routes.HtmlAgenda}/:id?`,\n HtmlAgenda,\n \"HTML Agenda\",\n undefined,\n false\n ),\n [Routes.PublicNotices]: new RouteConfig(\n Routes.PublicNotices,\n PublicNotices,\n \"Public Notices\",\n undefined,\n false\n ),\n [Routes.OpenPositions]: new RouteConfig(\n Routes.OpenPositions,\n OpenPositions,\n \"Open Positions\",\n undefined,\n false\n ),\n};\n","import { Route, useHistory, useLocation, useRouteMatch } from \"react-router-dom\";\nimport { ROUTES, ROUTE_MAP } from \"./RouteMaps\";\nimport { IRouteConfig, NavConfigItem, RouteConfig } from \"./RouteTypes\";\nimport { Routes } from \"./RouteNames\";\nimport { buildRoute, isNullEmptyOrUndefined } from \"@techsharegov/react-ui\";\nimport { useEffect, useState } from \"react\";\nimport { DocumentTitle, SubRouteConfig, SubRoutes } from \"Components/Navigation\";\nimport { SUBROUTES_MAP, SUB_NAV_CONFIG_MAP } from \"Navigation/SubRouteMaps\";\n\n\n//helper constants\nexport const ADD_EDIT = 'AddEdit';\nexport const VIEW = 'View';\n\nexport const useGetRoutes = () => {\n return Object.keys(ROUTES).map((routeName: string) => {\n var config = ROUTES[routeName];\n return (\n \n );\n });\n};\n\nexport const useGetSubRoutes = (route: Routes) => {\n const routeMap = ROUTE_MAP[route];\n const routeConfig = ROUTES[route]; \n\n return routeMap\n ? Object.values(routeMap).map((subRouteConfig: IRouteConfig) => (\n \n ))\n : null;\n};\n\nexport interface RouteMapperProps {\n route: Routes;\n}\n\nexport const RouteMapper = ({ route }: RouteMapperProps) => {\n const subRoutes = useGetSubRoutes(route);\n\n return <>{subRoutes};\n};\n\nexport const useNavigation = (navItems: RouteConfig[]) => {\n const [navConfig, setNavConfig] = useState(navItems || []);\n const { pathname } = useLocation();\n let history = useHistory();\n\n useEffect(() => {\n var tempConfig: RouteConfig[] = [];\n var defaultRoute;\n if (pathname === '/') {\n tempConfig = navConfig.map((x: RouteConfig) => {\n x.active = x.path === Routes.Meetings || false;\n return x;\n });\n defaultRoute = tempConfig.find((x) => x.path === Routes.Meetings);\n } else {\n tempConfig = navConfig.map((x: RouteConfig) => {\n x.active = pathname.startsWith(x.path);\n return x;\n });\n }\n setNavConfig(\n tempConfig\n .map((x) => {\n return x;\n })\n );\n if (defaultRoute) {\n history.push(defaultRoute.path);\n }\n }, [pathname]);\n\n return { navConfig };\n};\n\n\n\n/*\n * @param route\n * Builds the full route path recursively from default subroutes\n */\nexport const getFullDefaultRoute = (\n route: string,\n ...parentRoutes: string[]\n): string => {\n var fullRoute = parentRoutes?.length\n ? buildRoute(...parentRoutes, route)\n : route;\n var subRoutes = SUBROUTES_MAP[fullRoute];\n\n if (subRoutes !== undefined) {\n var defaultSubRoute =\n Object.values(subRoutes).find((x) => x.default) ||\n Object.values(subRoutes)[0];\n\n if (defaultSubRoute !== undefined) {\n return route + getFullDefaultRoute(defaultSubRoute.route, fullRoute);\n }\n }\n\n return route;\n};\n\nexport const useGetSecureSubNavItems = (\n filter?: (x: NavConfigItem) => boolean,\n noPermissionsFilter = false\n) => {\n\n const getSubNavItems = (parentRoute?: string) => {\n if (parentRoute) {\n return (\n SUB_NAV_CONFIG_MAP[parentRoute]\n ?.filter(filter || ((x) => x))\n .map((x) => {\n return {\n fullRoute: getFullDefaultRoute(x.route, parentRoute),\n ...x,\n };\n })\n );\n } else {\n return [];\n }\n };\n\n return getSubNavItems;\n};\n\nexport const useSubNavigation = (parentRoute?: string) => {\n const getSubNavItems = useGetSecureSubNavItems();\n const navConfig = useActiveRouteSetter(() => {\n return getSubNavItems(parentRoute);\n });\n\n return navConfig;\n};\n\nexport const useActiveRouteSetter = (\n getInitialValue: () => NavConfigItem[]\n) => {\n const [navConfig, setNavConfig] = useState(\n getInitialValue()\n );\n const { pathname } = useLocation();\n\n useEffect(() => {\n var tempConfig: NavConfigItem[] = getInitialValue();\n tempConfig = tempConfig.map((x: NavConfigItem) => {\n const routeParts = pathname\n .split('?')[0]\n .split('/')\n .filter((s) => !isNullEmptyOrUndefined(s));\n x.active = routeParts.includes(x.route.replace('/', ''));\n return x;\n });\n\n setNavConfig(tempConfig);\n }, [pathname]);\n return navConfig;\n};\n\n/*\n Returns function for mapping SubRoutes instance to individual Route Components,\n filters by permissions\n*/\nexport const useSubRoutes = (\n filter = (x: [string, SubRouteConfig]) => true,\n renderDocumentTitle = (routeLabel: string) => routeLabel,\n nestRoutes = true\n) => {\n let { url } = useRouteMatch();\n \n const mapSubRoutesToRoutes = (subRoutes: SubRoutes) => {\n \n return Object.entries(subRoutes)\n .filter(\n ([, subRoute]) =>\n subRoute.component !== undefined\n )\n .filter(filter)\n .map(([, subRoute], index) => {\n const { exact, ...otherRouteProps } = subRoute.routeProps;\n const Component = subRoute.component;\n\n return (\n (\n <>\n \n \n \n )\n : (props) => \n }\n {...otherRouteProps}\n />\n );\n });\n };\n\n return mapSubRoutesToRoutes;\n};\n\nexport function getSubRouteName(mainRoute: Routes | string, subRoute: string) {\n return mainRoute + subRoute;\n}\n","import \"./App.scss\";\nimport {\n EnumerationProvider,\n FormProvider,\n GlobalProvider,\n ToastProvider,\n} from \"@techsharegov/react-ui\";\nimport { Layout } from \"./Layout\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { useGetRoutes } from \"Navigation\";\nimport { PUBLIC_PORTAL_API_PREFIX } from \"Constants\";\nimport { Meetings } from \"Features/Meetings\";\n\nfunction App() {\n var configObj =\n process.env.NODE_ENV === \"development\"\n ? {\n baseUrl:\n (process.env.REACT_APP_BASE_URL || \"localhost:3001\") +\n PUBLIC_PORTAL_API_PREFIX,\n apiEndpoint: process.env.REACT_APP_API_ENDPOINT,\n environmentName: process.env.REACT_APP_ENVIRONMENT_NAME,\n versionNumber: \"0.0.0.0\",\n noAuth: true,\n }\n : {\n baseUrl: window.BASE_URL + PUBLIC_PORTAL_API_PREFIX,\n apiEndpoint: window.API_ENDPOINT,\n versionNumber: window.VERSION_NUMBER,\n environmentName: window.ENVIRONMENT_NAME,\n noAuth: true,\n };\n\n return (\n \n \n \n );\n}\n\nconst AppContent: React.FC = () => {\n const routes = useGetRoutes();\n\n return (\n \n \n \n \n \n {routes}\n \n \n \n \n \n \n );\n};\n\nexport default App;\n","export const PUBLIC_PORTAL_API_PREFIX = \"publicportal/\";\n","import \"../node_modules/@techsharegov/react-ui/dist/theme/style.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport { BrowserRouter } from \"react-router-dom\";\n\ndeclare global {\n interface Window {\n API_ENDPOINT: string;\n VERSION_NUMBER: string;\n BASE_URL: string;\n ENVIRONMENT_NAME: string;\n FILE_UPLOAD_CHUNK_SIZE: string;\n DWT_ORGANIZATION_ID: string;\n REDIRECT_URI: string;\n }\n}\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}