{"version":3,"sources":["components/support/Areas.js","components/support/Analytics.js","components/pages/Page.js","components/support/SearchBar.js","components/pages/PagePreview.js","components/support/NotFound.js","components/auth/Login.js","media/logo.svg","components/tags/TagService.js","components/support/TranscriptButton.js","components/navitems/NavService.js","components/tags/TagPicker.js","components/auth/useAuth.js","media/logo-horizontal.svg","media/aboriginalFlag.svg","media/torresFlag.svg","components/settings/SettingService.js","components/settings/useSettings.js","components/Home.js","components/NavMenu.js","components/Footer.js","components/support/Consent.js","components/support/ScrollToTop.js","components/pages/PageList.js","components/pages/Pages.js","components/glossary/Glossary.js","components/theme.js","App.js","registerServiceWorker.js","index.js","components/support/AppTitle.js","components/glossary/GlossaryLink.js","components/support/Popup.js","components/support/Hijack.js","components/glossary/GlossaryService.js","components/auth/PrivateRoute.js","components/pages/PageService.js","components/jss.js"],"names":["Areas","AnalyticsContext","React","createContext","ProvideAnalytics","children","analytics","settings","useSettings","useState","get","code","setCode","setAnalytics","initialised","setInitialised","useEffect","c","GA4React","isInitialized","initialize","then","ga4","err","tag","type","category","value","gtag","useProvideAnalytics","Provider","useAnalytics","useContext","VersionPicker","lazy","pageStyles","makeStyles","theme","page","overflowWrap","maxWidth","height","noprint","display","description","marginBottom","spacing","paddingBottom","marginTop","collapse","color","padding","fontSize","chipWarn","background","Category","props","items","collection","collapseOpen","setCollapse","contentRef","useRef","classes","inner","container","map","item","ii","pageDescription","key","id","sm","xs","selectedOptions","tags","uneditable","className","component","variant","name","dangerouslySetInnerHTML","__html","ref","size","collapseTitle","in","Page","auth","useAuth","overrideHead","byFamily","area","data","postProcess","PageService","getCached","setData","embed","canContribute","setCanContribute","canApprove","setCanApprove","canObserve","setCanObserve","isAdmin","setIsAdmin","needsApproval","setNeedsApproval","approving","setApproving","restoring","setRestoring","deleting","setDeleting","version","setVersion","GlossaryService","cachedList","setGlossary","loading","setLoading","location","useLocation","history","useHistory","d","categories","JSON","parse","lastGlossaryTime","setLastGlossaryTime","updated","getList","response","user","roles","indexOf","query","URLSearchParams","search","console","log","req","redirect","campaign","getPage","state","hasUrl","pathname","endsWith","url","hasId","hasFamily","family","redirectPath","replace","hash","catch","e","current","scrollTo","document","getElementById","setTimeout","scrollIntoView","behavior","scrollToHash","handleApprove","handleApproveClose","handleRestore","handleRestoreClose","handleRestoreConfirm","restorePage","error","handleDelete","handleDeleteClose","itemsForCategory","cat","out","i","length","push","baseUrl","getElementsByTagName","getAttribute","features","aria-label","to","title","plural","Fragment","AppTitle","rel","href","property","content","justifyContent","buttons","RouterLink","onClick","label","controlButtons","stringify","modified","thumbnail","index","renderContent","alignItems","edge","window","print","format","align","style","origin","open","onClose","aria-labelledby","approvePage","oldData","startIcon","fullWidth","fallback","onSelect","selpage","selected","revertPage","deletePage","useStyles","searchBar","flex","searchBarFull","searchText","fontFamily","fontWeight","searchInputBox","borderBottom","searchButton","textTransform","textDecoration","margin","cursor","marginLeft","marginRight","transition","SearchBar","filter","onSearch","onChange","tip","startAdornment","disabled","tempFilter","setTempFilter","applyFilter","preventDefault","handleFilterChange","target","InputProps","position","disableRipple","endAdornment","disableUnderline","autoFocus","placeholder","onKeyPress","which","previewStyles","root","flexDirection","borderColor","breakpoints","down","paddingLeft","width","edit","image","textAlign","chip","videoLink","flexGrow","marginBlockStart","marginBlockEnd","showcase","flexBasis","left","bottom","backgroundColor","PagePreview","previewTags","setPreviewTags","videoOpen","setVideoOpen","videoRef","showInPreview","j","options","elevation","square","src","alt","video","flexWrap","option","NotFound","Login","onLogin","canCancel","message","homeButton","username","setUsername","password","setPassword","errorMessage","setErrorMessage","showError","setShowError","from","login","signin","method","handleLogin","handleEditClose","handleEnter","mainContent","autoComplete","mainButtons","onSubmit","module","exports","TagService","cachedTime","request","updateTime","self","this","time","parseInt","localStorage","getItem","axios","params","withCredentials","setItem","Promise","resolve","reject","getEditList","updateTag","put","updateTagOrder","deleteTag","delete","pasteButton","TranscriptButton","saveSuccess","setSaveSuccess","hidden","setHidden","pasteHover","setPasteHover","hashName","toLowerCase","contentblock","big","setAttribute","border","classList","toggle","paste","handleSuccessClose","injectFirst","data-open","endIcon","html","createElement","innerHTML","pointerEvents","opacity","activeSheets","Array","prototype","slice","call","styleSheets","sheet","body","appendChild","getSelection","removeAllRanges","range","createRange","selectNode","addRange","execCommand","removeChild","copyFormatted","onMouseOver","onMouseLeave","autoHideDuration","severity","NavService","entries","update","pickerStyles","paddingTop","check","icon","minWidth","header","acc","boxShadow","accHead","minHeight","accContent","TagPicker","UpdateTags","enabled","isOpen","setIsOpen","expanded","mobile","expandIcon","optionId","labelId","button","checked","tabIndex","inputProps","primary","authContext","ProvideAuth","updateUser","u","setUser","toStore","Object","assign","init","setInit","signout","soft","standardAuth","isAuthenticated","ping","stored","restoreUser","useProvideAuth","post","SettingService","getSettings","updateSetting","settingValue","toString","SettingsContext","ProvideSettings","local","useReducer","newState","setSettings","updatedSettings","anyUpdate","s","set","setting","list","values","useProvideSettings","Home","Helmet","toolbar","up","toolbarMobile","toolbarRow","toolbarLink","flexShrink","toolbarLinkMobile","fg","logo","removePadding","removeMargin","selectedLink","iconLabel","borderRadius","menuUserName","menuLabelHeading","menuLabel","menuSubLabel","menuItem","verticalAlign","menuItemWithMenu","boxSizing","menuDesc","paddingRight","sectionDesktop","sectionMobile","navPopup","borderTop","b1","NavMenu","showSearch","setShowSearch","anchorEl","setAnchorEl","whichMenu","setWhichMenu","setLogin","showLogin","setShowLogin","menuRef","navItems","setNavItems","handleShowSearch","sections","handleClick","currentTarget","handleClose","setMobileOpen","handleLogout","handleSearch","search_term","lastNavTime","setLastNavTime","pm","querySelectorAll","parentNode","mobileOpen","toggleMobile","event","renderMenuItem","route","getRoute","isChild","MenuItem","Button","aria-controls","aria-haspopup","Link","renderMenu","Toolbar","Box","onTouchEnd","IconButton","disableGutters","logoHorizontal","anchorOrigin","vertical","horizontal","transformOrigin","keepMounted","Boolean","PaperProps","getContentAnchorEl","role","ListSubheader","find","r","whichId","isNaN","renderMenuPopup","SwipeableDrawer","anchor","onOpen","Typography","gutterBottom","success","borderTopStyle","borderTopColor","borderTopWidth","top","subhead","flag","flag2","statement","copy","Footer","aboriginalFlag","torresFlag","Date","getFullYear","Consent","cookie","split","some","includes","consent","setConsent","setOpen","applyConsent","date","newDate","setMonth","getMonth","toUTCString","Snackbar","Alert","main","right","zIndex","ScrollToTop","trigger","useScrollTrigger","threshold","disableHysteresis","scroll","Slide","appear","direction","Tooltip","Fab","filterListStyles","FilterList","toggleFilter","tagId","renderPickers","m","count","reduce","curr","o","pageListStyles","sort","transform","sortItem","filterWrapper","MSInputMethodContext","documentMode","PageList","match","useRouteMatch","canContributeCollection","setCanContributeCollection","setCanApproveCollection","setTags","pages","setPages","setFilter","setSort","canLoadMore","setCanLoadMore","pageSize","setPageSize","queryLoaded","setQueryLoaded","override","setOverride","f","changedTags","applyEnabled","findOverride","tgs","oldSelectedTags","changed","queryTags","getAll","t","newE","lastTagFetch","setLastTagFetch","isCategory","fetchPages","showMore","tagRequest","newPages","Math","floor","l","found","total","p","item_id","item_name","append","path","generateTitle","pickedTags","setPickedTags","Badge","badgeContent","overlap","showZero","generateIntro","oldTags","needUpdate","v","Select","Grid","CircularProgress","EditPage","PageManager","Area","exact","PrivateRoute","Pages","x","hasAccess","RichTextEditor","EditForm","errors","setErrors","setError","entry","setEntry","updateField","field","handleInput","isEditing","setIsEditing","myRef","encodeURI","TextField","defaultValue","helperText","resetData","multiline","FormHelperText","onEditorChange","updateGlossary","getTime","Hijack","Dialog","aria-describedby","DialogTitle","disableTypography","DialogContent","DialogContentText","DialogActions","deleteGlossary","onDelete","GlossaryList","glossaryEntries","setGlossaryEntries","dir","updateData","tempEntries","ind","splice","currentArray","g","Glossary","createMuiTheme","md","lg","xl","palette","secondary","danger","red","A400","default","Users","Tags","Settings","FileManager","Logs","NavItems","Trash","NoMatch","App","mainRef","ax","setAx","interceptors","use","status","ThemeProvider","StylesProvider","jss","generateClassName","getClassGen","prerendering","CssBaseline","Container","isLocalhost","hostname","registerValidSW","swUrl","onUpdate","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","waiting","postMessage","Element","remove","String","replaceAll","str","newStr","RegExp","rootElement","prerendered","NewVersionAlert","setState","action","Component","displayName","jsss","hasChildNodes","ReactDOM","hydrate","basename","URL","process","addEventListener","fetch","headers","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker","render","text","GlossaryLink","innerText","setTip","popupStyles","popupLink","popupButton","contentContainer","imageBox","EnlargeImage","Popup","htmlRef","isVideo","ApplyInjections","base","as","substr","glossary","glossaryLinks","getElementsByClassName","contents","hasAttribute","titles","contains","gridItems","iframes","par","add","h","w","parseFloat","insertBefore","NoRouterHijack","protocols","defaultProps","hostnames","protocol","startsWith","destination","test","host","port","getLocation","ctrlKey","shiftKey","metaKey","el","parentElement","nodeName","shouldRouterHandle","substring","withRouter","rest","allowed","canView","pageCache","prerenderedJSON","encid","encodeURIComponent","ls","jls","getListSimple","getListVersions","getAutocomplete","updatePage","head","childNodes","nodeType","nodeValue","styleNode","createComment","firstChild","nextSibling","create","jssPreset","insertionPoint","pre","createGenerateClassName","productionPrefix"],"mappings":"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","file":"static/js/main.eb323cdc.chunk.js","sourcesContent":["const Areas = [\r\n\t{\r\n\t\t\"url\": \"article\",\r\n\t\t\"name\": \"Article\",\r\n\t\t\"plural\": \"Articles\",\r\n\t\t\"roles\": [\"article.contributor\"],\r\n\t\t\"features\": [\"hiddenDescription\", \"content\", \"redirect\", \"tags\", \"private\", \"breadcrumbs\", \"print\", \"publicList\", \"socialButtons\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"showcase\",\r\n\t\t\"name\": \"Showcase page\",\r\n\t\t\"plural\": \"Showcase pages\",\r\n\t\t\"roles\": [\"showcase.contributor\"],\r\n\t\t\"features\": [\"hiddenDescription\", \"content\", \"video\", \"image\", \"tags\", \"redirect\", \"private\", \"breadcrumbs\", \"print\", \"publicList\", \"noChipsInSearchPreview\", \"socialButtons\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"collection\",\r\n\t\t\"name\": \"Collection\",\r\n\t\t\"plural\": \"Collections\",\r\n\t\t\"roles\": [\"collection.contributor\"],\r\n\t\t\"features\": [\"hiddenDescription\", \"content\", \"tags\", \"items\", \"redirect\", \"private\", \"breadcrumbs\", \"print\", \"socialButtons\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"page\",\r\n\t\t\"name\": \"Page\",\r\n\t\t\"plural\": \"Pages\",\r\n\t\t\"roles\": [\"page.contributor\"],\r\n\t\t\"features\": [\"hiddenDescription\", \"content\", \"tags\", \"redirect\", \"private\", \"breadcrumbs\", \"simplebreadcrumbs\", \"socialButtons\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"unlisted\",\r\n\t\t\"name\": \"Unlisted page\",\r\n\t\t\"plural\": \"Unlisted pages\",\r\n\t\t\"roles\": [\"unlisted.contributor\"],\r\n\t\t\"features\": [\"content\", \"redirect\", \"private\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"template\",\r\n\t\t\"name\": \"Template\",\r\n\t\t\"plural\": \"Templates\",\r\n\t\t\"roles\": [\"admin\"],\r\n\t\t\"features\": [\"hiddenDescription\", \"content\", \"video\", \"tags\"]\r\n\t},\r\n\t{\r\n\t\t\"url\": \"search\",\r\n\t\t\"name\": \"Search Result\",\r\n\t\t\"plural\": \"Search results\",\r\n\t\t\"meta\": true,\r\n\t\t\"roles\": [],\r\n\t\t\"features\": [\"publicList\"]\r\n\t}\r\n];\r\n\r\nexport default Areas;","import { GA4React } from \"ga-4-react\";\r\nimport useSettings from '../settings/useSettings.js';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\n\r\n//need this context to track the initialisation of the analytics\r\n//doing it with the library's normal methods resulted in a complete crash on browsers with adblock\r\n\r\nconst AnalyticsContext = React.createContext({});\r\nfunction useAnalytics() {\r\n return useContext(AnalyticsContext);\r\n}\r\nfunction useProvideAnalytics() {\r\n var settings = useSettings();\r\n const [code, setCode] = useState(settings.get(\"Google ID\") || \"\");\r\n const [analytics, setAnalytics] = useState(null);\r\n const [initialised, setInitialised] = useState(false);\r\n\r\n useEffect(function () {\r\n var c = settings.get(\"Google ID\");\r\n if (c && (code != c || !GA4React.isInitialized())) {\r\n setCode(c);\r\n const ga4react = new GA4React(c);\r\n ga4react.initialize().then((ga4) => {\r\n setInitialised(true);\r\n setAnalytics(ga4);\r\n }, (err) => {\r\n //console.error(err)\r\n });\r\n }\r\n }, [settings]);\r\n\r\n const tag = (type, category, value) => {\r\n if (initialised) {\r\n analytics.gtag(type, category, value)\r\n }\r\n };\r\n\r\n return { tag };\r\n}\r\n\r\nfunction ProvideAnalytics({ children }) {\r\n let analytics = useProvideAnalytics();\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default useAnalytics;\r\nexport { ProvideAnalytics };","import AppTitle from '../support/AppTitle.js';\r\nimport useAuth from \"../auth/useAuth.js\";\r\nimport useSettings from \"../settings/useSettings.js\";\r\nimport Hijack from '../support/Hijack.js';\r\nimport PageService from '../pages/PageService.js';\r\nimport PagePreview from '../pages/PagePreview.js';\r\nimport GlossaryService from '../glossary/GlossaryService.js';\r\nimport NotFound from '../support/NotFound.js';\r\nimport TranscriptButton from '../support/TranscriptButton.js';\r\n\r\nimport React, { useState, useEffect, useRef, lazy, Suspense } from 'react';\r\nimport { Link as RouterLink, useLocation, useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Helmet } from \"react-helmet\";\r\nimport Moment from 'react-moment';\r\nimport Button from '@material-ui/core/Button';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Edit from '@material-ui/icons/Edit';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Box from '@material-ui/core/Box';\r\nimport RestorePageIcon from '@material-ui/icons/RestorePage';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Collapse from '@material-ui/core/Collapse';\r\n\r\nimport FacebookIcon from '@material-ui/icons/Facebook';\r\nimport LinkedInIcon from '@material-ui/icons/LinkedIn';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\n\r\nimport { EmailShareButton, FacebookShareButton, LinkedinShareButton, TwitterShareButton} from \"react-share\";\r\n\r\nconst VersionPicker = lazy(() => import('../pages/VersionPicker.js'));\r\n\r\nconst pageStyles = makeStyles((theme) => ({\r\n page: {\r\n overflowWrap: \"break-word\",\r\n \"& img\": {\r\n maxWidth: \"100%\",\r\n height: \"auto\"\r\n }\r\n },\r\n noprint: {\r\n \"@media print\": {\r\n display: \"none !important\"\r\n }\r\n },\r\n description: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n category: {\r\n paddingBottom: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n marginTop: theme.spacing(3)\r\n },\r\n collapse: {\r\n color: \"var(--red) !important\",\r\n padding: \"0 !important\",\r\n marginBottom: theme.spacing(2),\r\n fontSize: \"0.9rem !important\"\r\n },\r\n chipWarn: {\r\n background: 'rgb(237, 108, 2)'\r\n }\r\n}));\r\nconst Page = (props) => {\r\n const auth = useAuth();\r\n const classes = pageStyles();\r\n const { id } = props;\r\n const [overrideHead, setOverrideHead] = useState(props?.overrideHead ?? true);\r\n const [byFamily, setByFamily] = useState(props?.byFamily ?? true);\r\n const [area, setArea] = useState(props?.area);\r\n const [data, setData] = useState(props?.data ?? postProcess(PageService.getCached(id)));\r\n const [embed, setEmbed] = useState(props?.embed ?? false);\r\n const [canContribute, setCanContribute] = useState(false);\r\n const [canApprove, setCanApprove] = useState(false);\r\n const [canObserve, setCanObserve] = useState(false);\r\n const [isAdmin, setIsAdmin] = useState(false);\r\n const [needsApproval, setNeedsApproval] = useState(false);\r\n const [approving, setApproving] = useState(false);\r\n const [restoring, setRestoring] = useState(false);\r\n const [deleting, setDeleting] = useState(false);\r\n const [version, setVersion] = useState(null);\r\n const [glossary, setGlossary] = useState(GlossaryService.cachedList);\r\n const [loading, setLoading] = useState(false);\r\n const settings = useSettings();\r\n const contentRef = useRef(null);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n function postProcess(d) {\r\n if (d && 'categories' in d && d.categories && typeof d.categories == \"string\") {\r\n d.categories = JSON.parse(d.categories);\r\n }\r\n return d;\r\n }\r\n\r\n const [lastGlossaryTime, setLastGlossaryTime] = useState(0);\r\n useEffect(() => {\r\n var updated = settings.get(\"Glossary last updated\");\r\n if (lastGlossaryTime != updated) {\r\n setLastGlossaryTime(updated);\r\n GlossaryService.getList({}, updated).then((response) => {\r\n setGlossary(response);\r\n });\r\n }\r\n }, [settings]);\r\n\r\n useEffect(() => {\r\n if (data) {\r\n if (data.area == \"article\" || data.area == \"showcase\" || data.area == \"collection\" || data.area == \"page\" || data.area == \"unlisted\") {\r\n setCanContribute(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(data.area + \".contributor\") !== -1);\r\n setCanApprove(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(data.area + \".approver\") !== -1);\r\n } else if (data.area != \"search\" && auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1) {\r\n setCanContribute(true);\r\n setCanApprove(true);\r\n }\r\n setIsAdmin(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1);\r\n setCanObserve(auth.user.id && auth.user?.roles\r\n && (auth.user.roles.indexOf(\"observer\") !== -1 || auth.user.roles.indexOf(data.area + \".observer\") !== -1));\r\n }\r\n }, [auth, data]);\r\n\r\n useEffect(() => {\r\n //setData({});\r\n if(!data)\r\n setLoading(true);\r\n var query = new URLSearchParams(location.search);\r\n console.log(id, isAdmin)\r\n var req = { id: id, byFamily: byFamily ? 1 : 0, redirect: isAdmin ? 0 : 1 };\r\n var campaign = query.get('campaign');\r\n if (campaign) \r\n req.campaign = campaign;\r\n\r\n PageService.getPage(req)\r\n .then((response) => {\r\n if ('data' in response && 'data' in response.data) {\r\n response.data.data = postProcess(response.data.data);\r\n setData(response.data.data);\r\n setVersion(response.data.data);\r\n setLoading(false);\r\n\r\n if (response.data.data.state == 'workflow')\r\n setNeedsApproval(true);\r\n else if (!embed) {\r\n var hasUrl = location.pathname.endsWith(\"/\"+response.data.data.url),\r\n hasId = location.pathname.endsWith(\"/\" +response.data.data.id),\r\n hasFamily = location.pathname.endsWith(\"/\" +response.data.data.family);\r\n var redirectPath = null;\r\n if (!hasUrl) {\r\n if (response.data.data.url)\r\n redirectPath = response.data.data.url;\r\n if (!hasId) {\r\n if (response.data.data.id)\r\n redirectPath = response.data.data.id;\r\n if (!hasFamily) {\r\n if (response.data.data.family)\r\n redirectPath = response.data.data.family;\r\n }\r\n }\r\n }\r\n if (redirectPath != null) {\r\n history.replace(\"/\" + response.data.data.area + \"/\" + redirectPath + location.search + location.hash);\r\n }\r\n }\r\n }\r\n })\r\n .catch(function (e) {\r\n //setData(null);\r\n setLoading(false);\r\n });\r\n }, [id]);\r\n\r\n\r\n const scrollToHash = () => {\r\n var scrollTo = document.getElementById(location.hash.replace(\"#\", \"\"));\r\n if (scrollTo)\r\n setTimeout(function () { scrollTo.scrollIntoView({ behavior: \"smooth\"}); }, 500);\r\n };\r\n useEffect(() => {\r\n if (contentRef.current == null) return;\r\n scrollToHash();\r\n }, [data]);\r\n\r\n const handleApprove = () => { setApproving(true); };\r\n const handleApproveClose = () => { setApproving(false); };\r\n const handleApproveConfirm = () => {\r\n return PageService.approvePage({ id: data.id }).then((response) => {\r\n setApproving(false);\r\n var oldData = { ...data };\r\n oldData.state = response.data.state;\r\n setNeedsApproval(response.data.state == 'workflow');\r\n setData(oldData);\r\n }).catch((error) => {\r\n\r\n });\r\n };\r\n\r\n const handleRestore = () => { setRestoring(true); setVersion(data); };\r\n const handleRestoreClose = () => { setRestoring(false); };\r\n const handleRestoreConfirm = () => {\r\n return PageService.restorePage({ id: version.id }).then((response) => {\r\n setRestoring(false);\r\n setData(postProcess(response.data.data));\r\n }).catch((error) => {\r\n\r\n });\r\n };\r\n const handleRevertConfirm = () => {\r\n return PageService.revertPage({ id: version.id }).then((response) => {\r\n setRestoring(false);\r\n setData(postProcess(response.data.data));\r\n }).catch((error) => {\r\n\r\n });\r\n };\r\n\r\n const handleDelete = () => { setDeleting(true); };\r\n const handleDeleteClose = () => { setDeleting(false); };\r\n const handleDeleteConfirm = () => {\r\n return PageService.deletePage({ id: data.id }).then((response) => {\r\n setDeleting(false);\r\n setData(null);\r\n }).catch((error) => {\r\n\r\n });\r\n };\r\n\r\n const controlButtons = function () {\r\n var buttons = [];\r\n if (canContribute) {\r\n buttons.push();\r\n }\r\n if (canApprove) {\r\n if (needsApproval) {\r\n buttons.push();\r\n }\r\n buttons.push();\r\n buttons.push();\r\n }\r\n if (buttons.length == 0 && canObserve && data?.state === \"workflow\") {\r\n buttons.push();\r\n }\r\n if (data?.redirect && isAdmin) {\r\n buttons.push(Redirects} className={classes.chipWarn} />);\r\n }\r\n return buttons;\r\n };\r\n\r\n const itemsForCategory = (cat) => {\r\n var out = [];\r\n if(data.items)\r\n for (var i = 0; i < data.items.length; i++) {\r\n if (data.items[i].category == cat)\r\n out.push(data.items[i]);\r\n }\r\n return out;\r\n };\r\n const renderContent = function () {\r\n if (!data) return;\r\n switch (data.area) {\r\n case \"collection\":\r\n return (\r\n
\r\n {data.categories ? data.categories.map((cat, index) => {\r\n return (\r\n
\r\n );\r\n }) : null}\r\n
);\r\n break;\r\n default:\r\n return (\r\n
\r\n
);\r\n }\r\n return null;\r\n }\r\n\r\n const print = () => {\r\n window.print();\r\n };\r\n\r\n const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n\r\n return (\r\n
\r\n {!embed && (area.features.indexOf(\"breadcrumbs\") !== -1 || (location.state && location.state.collection)) ?\r\n \r\n Home\r\n {(location.state && location.state.collection)\r\n ?\r\n {location.state.collection.title}\r\n :\r\n (area.url != \"collection\" ?\r\n (area.features.indexOf(\"simplebreadcrumbs\") === -1 ? {area.plural} : null)\r\n : Articles)\r\n }\r\n {data ? ({data.title}) : null}\r\n \r\n : null}\r\n {data ? (\r\n
\r\n {!embed ?\r\n
\r\n \r\n {AppTitle((data && data.title) ? data.title : (loading ? \"Loading...\" : \"Page not found\"))}\r\n \r\n \r\n \r\n {area.url == \"unlisted\" ? () : null}\r\n \r\n \r\n \r\n {data.title}\r\n {controlButtons()}\r\n \r\n \r\n
\r\n : \r\n \r\n \r\n \r\n \r\n }\r\n { overrideHead ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n
{renderContent()}
\r\n {data && !embed ?\r\n <>\r\n \r\n {area.features.indexOf(\"print\") !== -1 ? \r\n \r\n :
}\r\n Last changed: {data.modified}\r\n
\r\n {area.features.indexOf(\"socialButtonsx\") !== -1 ? \r\n \r\n Share:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {console.log(area.features)}\r\n \r\n : null}\r\n
\r\n ) : (loading ? : (!embed ? : null))\r\n }\r\n \r\n Approve Page\r\n Approve this page? It will become the active version which is displayed to end users.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Restore Page\r\n {data?.id ?\r\n }> { setVersion(selpage); }} selected={version ? version.id : 0} />\r\n : \"\"}\r\n \r\n {version && version.state == \"inactive\" ? \r\n : null}\r\n {version && version.state == \"active\" ? \r\n : null}\r\n {version && version.state == \"inactive\" ? \r\n : null}\r\n \r\n \r\n \r\n \r\n Delete Page\r\n Move this page to the recycling bin?\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst Category = (props) => {\r\n const { category, items, collection } = props;\r\n const [collapse, setCollapse] = useState(category.collapseOpen ?? false);\r\n const contentRef = useRef(null);\r\n const classes = pageStyles();\r\n\r\n const inner = () => {\r\n return \r\n {items.map((item) => {\r\n var ii = { ...item };\r\n if (!ii.description) ii.description = ii.pageDescription;\r\n return (\r\n \r\n );\r\n })}\r\n ;\r\n };\r\n\r\n return (
\r\n {category.name}\r\n
\r\n {category.collapse ?\r\n \r\n \r\n \r\n {inner()}\r\n \r\n \r\n :\r\n inner()}\r\n
);\r\n};\r\n\r\nexport default Page;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Box from '@material-ui/core/Box';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n searchBar: {\r\n marginBottom: '1em',\r\n display: \"inline-block\",\r\n flex: 1\r\n },\r\n searchBarFull: {\r\n display: \"block\", \r\n\r\n },\r\n searchText: {\r\n '& input': {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: 'var(--darkBlue)',\r\n fontWeight: '300',\r\n fontWeight: '700',\r\n fontSize: '.9rem',\r\n },\r\n '& input::placeholder': {\r\n color: 'var(--darkBlue)',\r\n }\r\n },\r\n searchInputBox: {\r\n borderBottom: '2px solid var(--red)',\r\n marginTop: 0,\r\n '&::before': {\r\n borderBottom: '2px solid var(--red)'\r\n },\r\n '&::after': {\r\n borderBottom: '2px solid var(--red)'\r\n },\r\n '&::hover': {\r\n borderBottom: '2px solid var(--red)'\r\n }\r\n\r\n },\r\n searchButton: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: \"var(--darkBlue)\",\r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n textDecoration: \"none\",\r\n display: \"block\",\r\n margin: '0 12px 0px 12px',\r\n cursor: 'pointer',\r\n '&:after': {\r\n content: '\">\"',\r\n marginLeft: '10px',\r\n marginRight: '5px',\r\n transition: \"margin-left .4s, margin-right .4s\"\r\n },\r\n '&:hover': {\r\n color: \"var(--red)\"\r\n },\r\n '&:hover:after': {\r\n textDecoration: 'none',\r\n marginLeft: '15px',\r\n marginRight: '0px',\r\n color: \"var(--red)\"\r\n }\r\n }\r\n}));\r\n\r\nconst SearchBar = (props) => {\r\n const location = useLocation();\r\n \r\n const classes = useStyles();\r\n const { filter, onSearch, onChange, tip, startAdornment, fullWidth, disabled } = props;\r\n const [tempFilter, setTempFilter] = useState((filter ?? (new URLSearchParams(location.search).get(\"filter\"))) || \"\");//can set initial search on URL args or props\r\n useEffect(() => {\r\n setTempFilter(filter);\r\n },[filter]);\r\n\r\n const applyFilter = (e) => {\r\n if (e) e.preventDefault();\r\n if (onSearch) onSearch(tempFilter);\r\n };\r\n\r\n const handleFilterChange = (e) => {\r\n setTempFilter(e.target.value);\r\n if(onChange) onChange(e.target.value);\r\n };\r\n\r\n const handleEnter = (e) => {\r\n if (e.which === 13 && !disabled) {\r\n applyFilter(e);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n startAdornment\r\n ? startAdornment\r\n : ((tempFilter != \"\" && tempFilter != null)\r\n ? {\r\n handleFilterChange({ target: { value: \"\" } });\r\n if (onSearch)\r\n onSearch(\"\");\r\n }}>\r\n : \r\n )\r\n },\r\n endAdornment:
Search
,\r\n disableUnderline: true\r\n }}\r\n autoFocus={props.autoFocus ? props.autoFocus : false}\r\n placeholder={tip}\r\n aria-label={tip}\r\n onChange={handleFilterChange}\r\n onKeyPress={handleEnter}\r\n fullWidth={fullWidth ?? true}\r\n margin=\"dense\"\r\n value={tempFilter ?? ''}\r\n disabled={disabled}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n","import useAuth from \"../auth/useAuth.js\";\r\nimport Hijack from \"../support/Hijack.js\";\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { Link as RouterLink} from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Edit from '@material-ui/icons/Edit';\r\nimport PlayCircleOutlineIcon from '@material-ui/icons/PlayCircleOutline';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\n\r\nconst previewStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n position: 'relative',\r\n flexDirection: 'row',\r\n padding: 15,\r\n marginBottom: 15,\r\n borderColor: 'var(--darkerGrey)',\r\n height: \"100%\",\r\n [theme.breakpoints.down(\"md\")]: {\r\n display: 'block'\r\n }\r\n },\r\n title: {\r\n fontSize: \"1.1em !important\"\r\n },\r\n content: {\r\n flex: '1 1 auto',\r\n paddingLeft: 15,\r\n display: 'flex',\r\n width: '100%',\r\n flexDirection: 'column'\r\n },\r\n edit: {\r\n\r\n },\r\n image: {\r\n flex: '0 0 200px',\r\n [theme.breakpoints.down(\"md\")]: {\r\n textAlign: 'center'\r\n }\r\n },\r\n chip: {\r\n background: 'transparent',\r\n textTransform: 'uppercase',\r\n fontWeight: 'bold',\r\n fontSize: '1rem',\r\n color: '#999',\r\n fontFamily: 'var(--secondaryText)'\r\n },\r\n chipWarn: {\r\n background: 'rgb(237, 108, 2)'\r\n },\r\n videoLink: {\r\n color: 'var(--red)',\r\n cursor: 'pointer',\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n \"&:hover\": {\r\n color: \"#000\"\r\n }\r\n },\r\n description: {\r\n flexGrow: 1,\r\n \"& p\": {\r\n marginBlockStart: \"0.5em\",\r\n marginBlockEnd: \"0.5em\"\r\n },\r\n \"& img\": {\r\n maxWidth: \"100%\",\r\n height: \"auto\"\r\n }\r\n },\r\n showcase: {\r\n //\"& h3\": {\r\n // fontFamily: \"var(--primaryText)\"\r\n //},\r\n \"& $description\": {\r\n display: 'flex',\r\n alignItems: 'flex-end'\r\n },\r\n \"& $image\": {\r\n flexBasis: '120px'\r\n },\r\n \"& $image img\": {\r\n maxWidth: '120px',\r\n [theme.breakpoints.down(\"md\")]: {\r\n maxWidth: '200px'\r\n }\r\n },\r\n \"& $edit\": {\r\n position: 'absolute',\r\n left: '0',\r\n bottom: '0',\r\n backgroundColor: 'rgba(255,255,255,0.6)'\r\n },\r\n }\r\n \r\n}));\r\nconst PagePreview = (props) => {\r\n const { area, page, tags, selectedOptions, uneditable, collection } = props;\r\n const classes = previewStyles();\r\n const auth = useAuth();\r\n const [canContribute, setCanContribute] = useState(false);\r\n const [canApprove, setCanApprove] = useState(false);\r\n const [needsApproval, setNeedsApproval] = useState(false);\r\n const [previewTags, setPreviewTags] = useState([]);\r\n const [videoOpen, setVideoOpen] = useState(false);\r\n const contentRef = useRef(null);\r\n const videoRef = useRef(null);\r\n\r\n const getPreviewTags = () => {\r\n var out = [];\r\n if (!selectedOptions) {\r\n for (var i = 0; i < tags.length; i++) {\r\n if (tags[i].showInPreview) {\r\n for (var j = 0; j < tags[i].options.length; j++) {\r\n if (page.options && page.options.indexOf(tags[i].options[j].id) != -1) {\r\n out.push(tags[i].options[j].name);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n out = selectedOptions;\r\n }\r\n setPreviewTags(out);\r\n };\r\n useEffect(getPreviewTags, [page, tags]);\r\n\r\n useEffect(() => {\r\n if (page) {\r\n if (page.area == \"article\" || page.area == \"showcase\" || page.area == \"collection\" || page.area == \"page\" || page.area == \"unlisted\") {\r\n setCanContribute(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(page.area + \".contributor\") !== -1);\r\n setCanApprove(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(page.area + \".approver\") !== -1);\r\n } else if (page.area != \"search\" && auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1) {\r\n setCanContribute(true);\r\n setCanApprove(true);\r\n }\r\n }\r\n }, [auth, page]);\r\n\r\n return (\r\n \r\n {(page.area != \"article\" && page?.thumbnail) ?\r\n \r\n {page.title}\r\n \r\n : null}\r\n \r\n \r\n \r\n {page.title}\r\n {page.state == \"workflow\" ? () : \"\"}\r\n {page.redirect ? () : \"\"}\r\n \r\n {(canContribute && uneditable !== true) ? : \"\"}\r\n \r\n {(page.area == \"showcase\" && page?.video) ?\r\n \r\n { setVideoOpen(true); }}>  Overview video\r\n { setVideoOpen(false); }} aria-labelledby={\"form-dialog-video-\" + page.id}>\r\n {page.title}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !area || (area && area.features.indexOf(\"noChipsInSearchPreview\") === -1) ?\r\n previewTags.map((option) => {\r\n return ();\r\n })\r\n : null\r\n }\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PagePreview;\r\n","import React from 'react';\r\nconst NotFound = () => {\r\n return (\r\n \r\n

Page not found

Sorry we couldn't find the page you were looking for.

\r\n

The page you were looking for is no longer at this location. This is usually due to one of the following reasons:

\r\n
    \r\n
  • It's been moved or deleted.
  • \r\n
  • You may have been provided the wrong web page address.
  • \r\n
  • It was mis-typed in the URL address bar.
  • \r\n
\r\n

If you came to this message through a web bookmark/favourite, please delete it as it appears to be out of date.

\r\n

To find what you are looking for:

\r\n \r\n
\r\n )\r\n}\r\nexport default NotFound;","import AppTitle from '../support/AppTitle.js';\r\nimport useAuth from '../auth/useAuth.js';\r\n\r\nimport React, { useState } from 'react';\r\nimport useAnalytics from '../support/Analytics.js';\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useLocation, useHistory } from 'react-router';\r\nimport { Link } from \"react-router-dom\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst Login = (props) => {\r\n const { embed, open, onLogin, canCancel, message, homeButton } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [username, setUsername] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [errorMessage, setErrorMessage] = useState('');\r\n const [showError, setShowError] = useState(false);\r\n const analytics = useAnalytics();\r\n\r\n let history = useHistory();\r\n let location = useLocation();\r\n let auth = useAuth();\r\n let { from } = location.state || { from: { pathname: \"/\" } };\r\n \r\n let login = () => {\r\n auth.signin(username, password)\r\n .then((response) => {\r\n setLoading(false);\r\n setShowError(false);\r\n if (!embed) {\r\n history.replace(from == \"/login\" ? \"/\" : from);\r\n } else {\r\n if(onLogin) onLogin(true);\r\n }\r\n analytics.tag('event', 'login', { method: 'default' });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n setShowError(true);\r\n if (error.response) {\r\n setErrorMessage(error.response.data.message);\r\n }\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const handleLogin = (e) => {\r\n e.preventDefault();\r\n setLoading(true);\r\n login();\r\n }\r\n const handleEditClose = () => {\r\n if(onLogin) onLogin(false);\r\n };\r\n const handleEnter = (e) => {\r\n if (e.which === 13) {\r\n handleLogin(e);\r\n }\r\n }\r\n\r\n const mainContent = () => {\r\n return (\r\n \r\n

{message ? message : \"Please login using your UOW username and password.\"}

\r\n setUsername(e.target.value)} autoFocus label=\"Username/email\" fullWidth={embed} onKeyPress={handleEnter} />\r\n setPassword(e.target.value)} label=\"Password\" fullWidth={embed} onKeyPress={handleEnter} />\r\n {showError ?

Something went wrong: {errorMessage}

: }\r\n
\r\n );\r\n };\r\n\r\n const mainButtons = () => {\r\n return (\r\n \r\n {homeButton ? : null }\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
handleLogin(e)} autoComplete=\"on\">\r\n
\r\n {embed ?\r\n \r\n Login\r\n {mainContent()}\r\n \r\n {mainButtons()}\r\n {canCancel ? : null}\r\n \r\n \r\n :\r\n \r\n {AppTitle(\"Login\")}\r\n {mainContent()}\r\n {mainButtons()}\r\n \r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Login;","module.exports = __webpack_public_path__ + \"static/media/logo.f1dfda34.svg\";","import axios from 'axios';\r\n\r\nconst TagService = {\r\n cachedList: { \"article\": [], \"showcase\": [], \"page\": [], \"unlisted\": [], \"template\": [], \"search\": [] },\r\n cachedTime: { \"article\": 0, \"showcase\": 0, \"page\": 0, \"unlisted\": 0, \"template\": 0, \"search\": 0 },\r\n getList: function (request, updateTime = null) {\r\n var self = this;\r\n //check local storage\r\n var time = parseInt(localStorage.getItem(\"lthub_cached_tags_time_\" + request.area));\r\n if (time && time > self.cachedTime[request.area]) {\r\n self.cachedTime[request.area] = time;\r\n var tags = localStorage.getItem(\"lthub_cached_tags_\" + request.area);\r\n if (tags) {\r\n try {\r\n self.cachedList[request.area] = JSON.parse(tags);\r\n } catch (e) {\r\n self.cachedList[request.area] = null;\r\n }\r\n }\r\n\r\n }\r\n if (typeof updateTime == \"string\")\r\n updateTime = parseInt(updateTime);\r\n\r\n //if current version is old than timestamp from settings\r\n if (updateTime === null || updateTime > self.cachedTime[request.area] || !self.cachedList[request.area] || self.cachedList[request.area].length == 0) {\r\n return axios.get(\"api/tags/list\", { params: request }, { withCredentials: true })\r\n .then((response) => {\r\n self.cachedTime[request.area] = updateTime;\r\n self.cachedList[request.area] = response.data.data;\r\n localStorage.setItem(\"lthub_cached_tags_\" + request.area, JSON.stringify(self.cachedList[request.area]));\r\n localStorage.setItem(\"lthub_cached_tags_time_\" + request.area, self.cachedTime[request.area] + \"\");\r\n return self.cachedList[request.area];\r\n });\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n resolve(self.cachedList[request.area]);\r\n });\r\n }\r\n },\r\n getEditList: (request) => {\r\n return axios.get(\"api/tags/editlist\", { params: request }, { withCredentials: true });\r\n },\r\n updateTag: (request) => {\r\n return axios.put(\"api/tags\", request, { withCredentials: true });\r\n },\r\n updateTagOrder: (request) => {\r\n return axios.put(\"api/tags/order\", request, { withCredentials: true });\r\n },\r\n deleteTag: (request) => {\r\n return axios.delete(\"api/tags/\" + request.id, {}, { withCredentials: true });\r\n }\r\n};\r\n\r\nexport default TagService;","import React, { useState, useEffect } from 'react';\r\nimport AddBoxOutlinedIcon from '@material-ui/icons/AddBoxOutlined';\r\nimport FileCopy from '@material-ui/icons/FileCopy';\r\nimport IndeterminateCheckBoxOutlinedIcon from '@material-ui/icons/IndeterminateCheckBoxOutlined';\r\nimport Button from '@material-ui/core/Button';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { StylesProvider, makeStyles } from '@material-ui/core/styles';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n pasteButton: {\r\n fontSize: \"0.8rem !important\",\r\n marginTop: \"0 !important\",\r\n textTransform: \"none !important\",\r\n paddingLeft: \"4px !important\"\r\n }\r\n}));\r\n\r\nconst TranscriptButton = (props) => {\r\n const classes = useStyles();\r\n const [saveSuccess, setSaveSuccess] = useState(false);\r\n const [hidden, setHidden] = useState(props?.hidden ?? true)\r\n const [pasteHover, setPasteHover] = useState(false)\r\n const [hashName, setHashName] = useState(props?.hashName ?? '');\r\n\r\n useEffect(() => {\r\n console.log(window.location.hash);\r\n if (hashName != '') {\r\n if (window.location.hash.toLowerCase() == '#' + hashName) {\r\n setHidden(false);\r\n } else {\r\n if (props?.hidden !== false)\r\n setHidden(true);\r\n }\r\n }\r\n }, [window.location.hash, hashName]);\r\n\r\n const handleTranscript = () => {\r\n setHidden(!hidden);\r\n }\r\n useEffect(() => {\r\n if (hidden) {\r\n props.contentblock.style.display = 'none';\r\n\r\n } else {\r\n props.contentblock.style.display = 'block';\r\n if(props.big)\r\n props.contentblock.setAttribute(\"data-big\", \"\");\r\n }\r\n if (pasteHover) {\r\n props.contentblock.style.border = \"2px dashed rgb(153, 153, 153)\";\r\n\r\n } else {\r\n props.contentblock.style.border = '2px solid transparent';\r\n\r\n }\r\n }, [hidden, pasteHover]);\r\n useEffect(() => {\r\n props.contentblock.classList.toggle(\"pastable\", props.paste);\r\n }, [props.paste]);\r\n\r\n function copyFormatted(html) {\r\n var container = document.createElement('div')\r\n container.innerHTML = html\r\n container.style.position = 'fixed'\r\n container.style.pointerEvents = 'none'\r\n container.style.opacity = 0\r\n var activeSheets = Array.prototype.slice.call(document.styleSheets)\r\n .filter(function (sheet) {\r\n return !sheet.disabled\r\n })\r\n document.body.appendChild(container)\r\n window.getSelection().removeAllRanges()\r\n var range = document.createRange()\r\n range.selectNode(container)\r\n window.getSelection().addRange(range)\r\n document.execCommand('copy')\r\n for (var i = 0; i < activeSheets.length; i++)\r\n activeSheets[i].disabled = true\r\n document.execCommand('copy')\r\n for (var i = 0; i < activeSheets.length; i++)\r\n activeSheets[i].disabled = false\r\n document.body.removeChild(container)\r\n }\r\n\r\n const handleCopy = () => {\r\n copyFormatted(props.contentblock.innerHTML); setSaveSuccess(true);\r\n\r\n }; const handleSuccessClose = function () {\r\n setSaveSuccess(false);\r\n };\r\n return (\r\n \r\n \r\n \r\n {props.paste && !hidden ? \r\n \r\n : null}\r\n \r\n Copied to clipboard \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TranscriptButton;","import axios from 'axios';\r\n\r\nconst NavService = {\r\n cachedList: [],\r\n cachedTime: 0,\r\n getList: function (request, updateTime = null) {\r\n var self = this;\r\n\r\n //check local storage\r\n var time = parseInt(localStorage.getItem(\"lthub_cached_nav_time\"));\r\n if (time && time > self.cachedTime) {\r\n self.cachedTime = time;\r\n var entries = localStorage.getItem(\"lthub_cached_nav\");\r\n if (entries)\r\n self.cachedList = JSON.parse(entries);\r\n if (entries) {\r\n try {\r\n self.cachedList = JSON.parse(entries);\r\n } catch (e) {\r\n self.cachedList = null;\r\n }\r\n }\r\n }\r\n\r\n if (typeof updateTime == \"string\")\r\n updateTime = parseInt(updateTime);\r\n\r\n //if current version is old than timestamp from settings\r\n if (updateTime === null || updateTime > self.cachedTime || !self.cachedList || self.cachedList.length == 0) {\r\n return axios.get(\"api/nav\", { params: request }, { withCredentials: true })\r\n .then((response) => {\r\n self.cachedTime = updateTime;\r\n self.cachedList = response.data.data;\r\n localStorage.setItem(\"lthub_cached_nav\", JSON.stringify(self.cachedList));\r\n localStorage.setItem(\"lthub_cached_nav_time\", self.cachedTime + \"\");\r\n return self.cachedList;\r\n });\r\n } else {\r\n return new Promise((resolve, reject) => {\r\n resolve(self.cachedList);\r\n });\r\n }\r\n },\r\n update: (request) => {\r\n return axios.put(\"api/nav\", request, { withCredentials: true });\r\n }\r\n};\r\n\r\nexport default NavService;","import React, { useState } from 'react';\r\nimport List from '@material-ui/core/List';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport HelpOutline from '@material-ui/icons/HelpOutline';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\n\r\nconst pickerStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n paddingTop: '0px',\r\n paddingBottom: '0px'\r\n },\r\n item: {\r\n paddingTop: '0',\r\n paddingBottom: '0'\r\n },\r\n check: {\r\n padding: '4px'\r\n },\r\n icon: {\r\n minWidth: 'auto'\r\n },\r\n header: {\r\n fontSize: '1.1em !important',\r\n marginBottom: '0px !important'\r\n },\r\n acc: {\r\n border: '0px solid rgba(0, 0, 0, .125)',\r\n boxShadow: 'none',\r\n marginBottom: '4px',\r\n '&:not(:last-child)': {\r\n borderBottom: 0,\r\n },\r\n '&:before': {\r\n display: 'none',\r\n },\r\n '&.Mui-expanded': {\r\n margin: '0',\r\n marginBottom: '4px'\r\n },\r\n '& .MuiAccordionSummary-content': {\r\n margin: '0',\r\n },\r\n paddingLeft: '0px',\r\n marginLeft: '0px'\r\n },\r\n accHead: {\r\n margin: 0,\r\n flexDirection: \"row-reverse\",\r\n minHeight: 'auto !important',\r\n alignItems: 'flex-start',\r\n '&$expanded': {\r\n margin: '0',\r\n minHeight: 'auto !important'\r\n },\r\n '& .MuiIconButton-root': {\r\n padding: '2px',\r\n margin: 0\r\n },\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: '#eee'\r\n },\r\n '& .MuiAccordionSummary-content': {\r\n justifyContent: 'space-between'\r\n },\r\n paddingLeft: '0px',\r\n marginLeft: '0px'\r\n },\r\n accContent: {\r\n paddingTop: '0px',\r\n paddingBottom: '0px',\r\n paddingLeft: '0px',\r\n marginLeft: '0px'\r\n }\r\n}));\r\nconst TagPicker = (props) => {\r\n const classes = pickerStyles();\r\n const { tag, UpdateTags, open, enabled } = props;\r\n const [isOpen, setIsOpen] = useState(open ?? false);\r\n const handleOpen = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n const handleToggle = (optionId) => {\r\n return function () {\r\n if (enabled)\r\n UpdateTags(optionId);\r\n }\r\n };\r\n\r\n return (\r\n \r\n } >\r\n {tag.name}\r\n {tag.description ?\r\n \r\n : \"\"\r\n }\r\n \r\n \r\n \r\n {tag.options.map((option) => {\r\n const labelId = `checkbox-list-label-${option.id}`;\r\n return (\r\n \r\n \r\n {tag.type === \"multiple\" ? () : ()\r\n }\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TagPicker;\r\n","import React, { useState, useContext, createContext } from \"react\";\r\nimport axios from 'axios';\r\n\r\nconst authContext = createContext();\r\n\r\nfunction ProvideAuth({ children }) {\r\n const auth = useProvideAuth();\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nconst standardAuth = {\r\n isAuthenticated: false,\r\n ping() {\r\n return axios.get('api/auth', {}, { withCredentials: true })\r\n .then(response => { standardAuth.isAuthenticated = true; return response.data; })\r\n .catch(response => { standardAuth.isAuthenticated = false; return response; });\r\n },\r\n signin(username, password) {\r\n return axios.post('api/auth/login', { username: username, password: password }, { withCredentials: true })\r\n .then(response => {\r\n standardAuth.isAuthenticated = true;\r\n return response.data;\r\n });\r\n },\r\n signout() {\r\n return axios.post('api/auth/logout', {}, { withCredentials: true })\r\n .then(response => { standardAuth.isAuthenticated = false; return response; });\r\n }\r\n};\r\n\r\nfunction useAuth() {\r\n return useContext(authContext);\r\n}\r\n\r\nfunction useProvideAuth() {\r\n const updateUser = (u) => {\r\n setUser(() => {\r\n var toStore = Object.assign({}, u);\r\n delete toStore.updateUser;\r\n localStorage.setItem(\"lthub_user\", JSON.stringify(toStore));\r\n toStore.updateUser = updateUser;\r\n return toStore;\r\n });\r\n };\r\n\r\n const [user, setUser] = useState({ \"updateUser\": updateUser, \"id\": 0 });\r\n\r\n const [init, setInit] = useState(true);\r\n var restoreUser = function () {\r\n var stored = localStorage.getItem(\"lthub_user\");\r\n updateUser(stored ? JSON.parse(stored) : null);\r\n setInit(false);\r\n };\r\n\r\n const signin = (username, password) => {\r\n return standardAuth.signin(username, password).then(response => { window.localStorage.setItem(\"lthub_has_loggedin\", \"1\"); updateUser(response.user); return response; });\r\n };\r\n\r\n const signout = (soft = false) => {\r\n if (soft) {\r\n standardAuth.isAuthenticated = false;\r\n updateUser({ id: 0 });\r\n return Promise.resolve();\r\n } else {\r\n return standardAuth.signout().then(response => {\r\n updateUser({ id: 0 });\r\n standardAuth.isAuthenticated = false;\r\n return response;\r\n });\r\n }\r\n };\r\n\r\n const ping = () => {\r\n return standardAuth.ping()\r\n .then(response => {\r\n if (response == \"yes\")\r\n return response;\r\n else\r\n signout(true);\r\n })\r\n .catch(response => { signout(true); });\r\n };\r\n\r\n\r\n if (init) {\r\n restoreUser();\r\n setTimeout(ping, 5000);\r\n }\r\n\r\n return {\r\n user,\r\n signin,\r\n signout,\r\n ping\r\n };\r\n}\r\n\r\nexport default useAuth;\r\nexport { ProvideAuth };","module.exports = __webpack_public_path__ + \"static/media/logo-horizontal.69940079.svg\";","module.exports = __webpack_public_path__ + \"static/media/aboriginalFlag.5713c521.svg\";","module.exports = __webpack_public_path__ + \"static/media/torresFlag.3fb341e2.svg\";","import axios from 'axios';\r\n\r\nconst SettingService = {\r\n getSettings: () => {\r\n return axios.get(\"api/settings\", {}, { withCredentials: true });\r\n },\r\n updateSetting: (request) => {\r\n if (typeof request.settingValue != \"string\")\r\n request.settingValue = request.settingValue.toString();\r\n return axios.put(\"api/settings\", request, { withCredentials: true });\r\n }\r\n};\r\n\r\nexport default SettingService;","import SettingService from '../settings/SettingService.js';\r\n\r\nimport React, { useContext, useEffect, useReducer } from 'react';\r\n\r\nconst SettingsContext = React.createContext({});\r\nfunction useSettings() {\r\n return useContext(SettingsContext);\r\n}\r\nfunction useProvideSettings() {\r\n let local = localStorage.getItem(\"lthub_config\");\r\n const [settings, setSettings] = useReducer((state, newState) => ({ ...state, ...newState }), local ? JSON.parse(local) : {});\r\n\r\n var loadSettings = function () {\r\n SettingService.getSettings()\r\n .then((response) => {\r\n if ('data' in response && 'data' in response.data) {\r\n var updatedSettings = { ...settings };\r\n var anyUpdate = false;\r\n for (var name in response.data.data) {\r\n var s = response.data.data[name];\r\n if (s.name in updatedSettings) {\r\n if (updatedSettings[s.name].settingValue != s.settingValue || updatedSettings[s.name].type != s.type) {\r\n updatedSettings[s.name] = s;\r\n setSettings({ [s.name]: s });\r\n anyUpdate = true;\r\n }\r\n } else {\r\n updatedSettings[s.name] = s;\r\n setSettings({ [s.name]: s });\r\n anyUpdate = true;\r\n }\r\n }\r\n if (anyUpdate) {\r\n //setSettings(updatedSettings);\r\n localStorage.setItem(\"lthub_config\", JSON.stringify(updatedSettings));\r\n console.log(\"updated settings\", updatedSettings);\r\n } else {\r\n console.log(\"local settings up to date\");\r\n }\r\n }\r\n })\r\n .catch(function (e) {\r\n\r\n }\r\n );\r\n };\r\n useEffect(loadSettings, []);//only run once\r\n\r\n const list = () => {\r\n return [...Object.values(settings)];\r\n };\r\n const get = (name) => {\r\n if (name in settings)\r\n return settings[name].settingValue;\r\n else return 0;\r\n };\r\n const set = (setting) => {\r\n setSettings({ [setting.name]: setting });\r\n return SettingService.updateSetting(setting);\r\n };\r\n\r\n return { get, set, list };\r\n}\r\n\r\nfunction ProvideSettings({ children }) {\r\n let settings = useProvideSettings();\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default useSettings;\r\nexport { ProvideSettings };","import Page from \"./pages/Page.js\";\r\nimport Areas from './support/Areas.js';\r\nimport AppTitle from './support/AppTitle.js';\r\n\r\nimport React from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst Home = (props) => {\r\n return (\r\n
\r\n \r\n {AppTitle(\"\")}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Home;","import useAuth from \"./auth/useAuth.js\";\r\nimport Login from './auth/Login.js';\r\nimport SearchBar from './support/SearchBar.js';\r\nimport useAnalytics from './support/Analytics.js';\r\nimport useSettings from './settings/useSettings.js';\r\n\r\nimport NavService from './navitems/NavService.js';\r\nimport { getRoute } from './support/Hijack.js';\r\n\r\nimport logo from '../media/logo.svg';\r\nimport logoHorizontal from '../media/logo-horizontal.svg';\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport ListSubheader from '@material-ui/core/ListSubheader';\r\nimport Button from '@material-ui/core/Button';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport Box from '@material-ui/core/Box';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Clear from '@material-ui/icons/Clear';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n toolbar: {\r\n borderBottom: 'none',\r\n padding: '10px 0 20px 0',\r\n display: 'none',\r\n alignItems: 'start',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n \"@media print\": {\r\n display: \"none !important\"\r\n }\r\n },\r\n toolbarMobile: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: '5px 0 20px 0',\r\n margin: '0',\r\n alignItems: 'start',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n toolbarRow: {\r\n width: '100%',\r\n display: 'flex',\r\n\r\n },\r\n toolbarLink: {\r\n padding: '0',\r\n flexShrink: '0',\r\n\r\n\r\n },\r\n toolbarLinkMobile: {\r\n paddingTop: 0,\r\n marginTop:0,\r\n alignItems: 'start',\r\n\r\n },\r\n fg: {\r\n flexGrow: \"1\"\r\n },\r\n logo: {\r\n height: '95px'\r\n },\r\n removePadding: {\r\n padding: '0'\r\n },\r\n removeMargin: {\r\n margin: '0'\r\n },\r\n searchBar: { \r\n height: '30px'\r\n },\r\n selectedLink: {\r\n color: 'var(--red)'\r\n },\r\n searchText: {\r\n '& input': {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: 'var(--darkBlue)',\r\n fontWeight: '300',\r\n fontWeight: '700',\r\n fontSize: '.9rem',\r\n },\r\n '& input::placeholder': {\r\n color: 'var(--darkBlue)',\r\n }\r\n\r\n },\r\n iconLabel: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n flexShrink: '0',\r\n color: \"var(--darkBlue)\",\r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n textDecoration: \"none\",\r\n padding: '0 12px 5px 12px',\r\n borderRadius: 0,\r\n [theme.breakpoints.up('md')]: {\r\n padding: '4px 12px 4px 0px',\r\n },\r\n '&:hover': {\r\n color: \"var(--red)\",\r\n backgroundColor: \"rgba(0, 0, 0, 0)\",\r\n textDecoration: \"none\"\r\n },\r\n \"&:focus-visible\": {\r\n borderBottom: \"2px solid #000\"\r\n }\r\n },\r\n menuUserName: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: \"var(--red)\",\r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n textDecoration: \"none\",\r\n margin: '0 12px 5px 12px',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n menuLabelHeading: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: \"var(--red)\",\r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n textDecoration: \"none\",\r\n display: \"block\",\r\n margin: '0 12px 0px 12px',\r\n '& a': {\r\n color: \"var(--red)\",\r\n '&:hover': {\r\n textDecoration: 'none'\r\n }\r\n }\r\n\r\n },\r\n menuLabel: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: \"var(--darkBlue)\",\r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n textDecoration: \"none\",\r\n display: \"block\",\r\n margin: '0 12px 0px 12px',\r\n '& a': {\r\n color: \"var(--darkBlue)\",\r\n '&:hover': {\r\n textDecoration: 'none'\r\n }\r\n },\r\n minHeight: \"auto\",\r\n paddingTop: \"6px\",\r\n paddingBottom: \"6px\"\r\n \r\n },\r\n menuSubLabel: {\r\n fontSize: \".8rem\",\r\n fontWeight: 400,\r\n marginLeft: \"20px\"\r\n },\r\n menuItem: {\r\n verticalAlign: \"middle\",\r\n '&::after': {\r\n content: '\"|\"',\r\n paddingLeft: \"8px\",\r\n color: \"var(--darkBlue)\",\r\n fontSize: \"1.1em\",\r\n display: \"inline-block\",\r\n marginTop: \"-2px\"\r\n }\r\n },\r\n menuItemWithMenu: {\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0 !important\",\r\n margin: \"0 !important\",\r\n boxSizing: \"border-box\",\r\n fontSize: \"0.9rem !important\",\r\n \"&:hover\": {\r\n background: \"none\"\r\n },\r\n \"&:focus-visible\": {\r\n borderBottom: \"2px solid #000\"\r\n }\r\n },\r\n menuDesc: {\r\n fontFamily: \"'Montserrat', Verdana, Geneva, sans-serif\",\r\n color: \"var(--darkGrey)\",\r\n fontSize: \".8rem\",\r\n textDecoration: \"none\",\r\n display: \"block\",\r\n margin: '0 12px 0px 12px',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n minHeight: \"auto\"\r\n }, \r\n searchInputBox: { \r\n borderBottom: '2px solid var(--red)', \r\n marginTop: 0,\r\n '&::before': { \r\n borderBottom: '2px solid var(--red)'\r\n },\r\n '&::after': { \r\n borderBottom: '2px solid var(--red)'\r\n },\r\n '&::hover': { \r\n borderBottom: '2px solid var(--red)'\r\n }\r\n\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'block',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'block',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n '& > .MuiPaper-root': {\r\n padding: '1em',\r\n maxWidth: '75%',\r\n width: 'auto',\r\n display: 'block'\r\n }\r\n },\r\n navPopup: {\r\n borderTop: 'none',\r\n borderColor: 'var(--lightGrey)',\r\n paddingBottom: '15px'\r\n },\r\n b1: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\"\r\n }\r\n}));\r\n\r\nexport default function NavMenu(props) {\r\n const settings = useSettings();\r\n const [showSearch, setShowSearch] = useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [whichMenu, setWhichMenu] = React.useState('');\r\n const [filter, setFilter] = React.useState('');\r\n const [login, setLogin] = useState(false);\r\n const [showLogin, setShowLogin] = useState(0);\r\n const menuRef = useRef(0);\r\n\r\n const [navItems, setNavItems] = useState(NavService.cachedList);\r\n\r\n const classes = useStyles();\r\n const auth = useAuth();\r\n let location = useLocation();\r\n let history = useHistory();\r\n const analytics = useAnalytics();\r\n const { sections, title } = props;\r\n const handleShowSearch = (e) => {\r\n setShowSearch(!showSearch);\r\n };\r\n const handleClick = (e, which) => {\r\n setAnchorEl(e.currentTarget);\r\n setWhichMenu(which);\r\n }; \r\n const handleClose = (e) => {\r\n setAnchorEl(null);\r\n setMobileOpen(false);\r\n };\r\n const handleLogout = () => {\r\n auth.signout(); \r\n setAnchorEl(null);\r\n };\r\n const handleLogin = () => {\r\n setLogin(true);\r\n setAnchorEl(null);\r\n };\r\n const handleSearch = (search) => {\r\n analytics.tag('event', 'search', { search_term: search });\r\n history.push(\"/search?sort=score&filter=\" + search);\r\n setShowSearch(false);\r\n };\r\n const onLogin = (success) => {\r\n if (success) {\r\n\r\n } else {\r\n\r\n }\r\n setLogin(false);\r\n };\r\n\r\n const [lastNavTime, setLastNavTime] = useState(0);\r\n useEffect(() => {\r\n var updated = settings.get(\"Nav last updated\");\r\n if (lastNavTime != updated) {\r\n setLastNavTime(updated);\r\n NavService.getList({}, updated).then((response) => {\r\n setNavItems(response);\r\n });\r\n }\r\n }, [settings]);\r\n\r\n useEffect(() => {\r\n var pm = document.querySelectorAll(\"#popup-menu\");\r\n for (var i = 0; i < pm.length; i++) {\r\n if (pm[i] != menuRef.current) {\r\n pm[i].parentNode.removeChild(pm[i]);\r\n }\r\n }\r\n }, []);\r\n\r\n const [mobileOpen, setMobileOpen] = React.useState(false);\r\n const toggleMobile = (open) => (event) => {\r\n setMobileOpen(open);\r\n };\r\n\r\n const renderMenuItem = (index, mobile = false) => {\r\n var el = null;\r\n var item = navItems[index];\r\n var route = item.url ? getRoute(item.url) : \"\";\r\n if (route !== false) {\r\n if (index !== navItems.length - 1 && navItems[index + 1].isChild && item.isChild == false) {\r\n if (!mobile) {\r\n //desktop heading\r\n el = ;\r\n } else {\r\n //mobile heading\r\n el = {item.name};\r\n }\r\n } else {\r\n if (!item.isChild) {\r\n if (!mobile) {\r\n //desktop main\r\n el = {item.name};\r\n } else {\r\n //mobile main\r\n el = \r\n {item.name};\r\n }\r\n } else {\r\n if (!mobile) {\r\n //desktop sub\r\n el = \r\n {item.name};\r\n } else {\r\n //mobile sub\r\n el = \r\n {item.name};\r\n }\r\n }\r\n }\r\n } else {\r\n if (!mobile) {\r\n //desktop external\r\n if (item.isChild) {\r\n el = \r\n {item.name};\r\n } else {\r\n el = {item.name};\r\n }\r\n } else {\r\n //mobile external\r\n if (item.isChild) {\r\n el = \r\n {item.name};\r\n } else {\r\n el = \r\n {item.name};\r\n }\r\n\r\n }\r\n }\r\n\r\n return el;\r\n };\r\n const renderMenu = (mobile = false) => {\r\n let out = [];\r\n if(navItems)\r\n for (var i = 0; i < navItems.length; i++) {\r\n if (mobile || !navItems[i].isChild) {\r\n out.push(renderMenuItem(i, mobile));\r\n }\r\n }\r\n return out;\r\n };\r\n const renderMenuPopup = () => {\r\n let out = [];\r\n switch (whichMenu) {\r\n case \"account\":\r\n if (auth.user?.id) {\r\n out.push(Log out);\r\n if (auth.user.id && auth.user.roles && auth.user.roles.indexOf(\"admin\") > -1) {\r\n out.push(Administration);\r\n out.push(Users);\r\n out.push(Tags);\r\n out.push(Site Settings);\r\n out.push(Page Templates);\r\n }\r\n if (auth.user.id && auth.user.roles && (auth.user.roles.indexOf(\"page.contributor\") > -1 || auth.user.roles.indexOf(\"page.approver\") > -1)) {\r\n out.push(Loose pages);\r\n }\r\n if (auth.user.id && auth.user.roles && (auth.user.roles.indexOf(\"unlisted.contributor\") > -1 || auth.user.roles.indexOf(\"unlisted.approver\") > -1)) {\r\n out.push(Unlisted pages);\r\n }\r\n if (auth.user.id && auth.user.roles && auth.user.roles.indexOf(\"admin\") > -1) {\r\n out.push(Glossary);\r\n out.push(Navigation);\r\n }\r\n \r\n if (auth.user.id && auth.user.roles && auth.user.roles.find((r) => r.endsWith(\".contributor\"))) {\r\n out.push(File Manager);\r\n }\r\n\r\n if (auth.user.id && auth.user.roles && auth.user.roles.indexOf(\"admin\") > -1) {\r\n out.push(Recycling bin);\r\n }\r\n if (auth.user.id && auth.user.roles && auth.user.roles.indexOf(\"data/reporting\") > -1) {\r\n out.push(Logs);\r\n }\r\n } else {\r\n out.push(Log in);\r\n }\r\n break;\r\n default:\r\n var whichId = parseInt(whichMenu);\r\n if (!isNaN(whichId)) {\r\n for (var i = whichId + 1; i < navItems.length; i++) {\r\n if (navItems[i].isChild) {\r\n out.push(renderMenuItem(i, false));\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n\r\n return (\r\n \r\n {/* DESKTOP TOOLBAR */}\r\n \r\n {/* LOGO */}\r\n \r\n \"UOW { setShowLogin(showLogin + 1); }} onTouchEnd={() => { setShowLogin(showLogin + 1); }}/>\r\n \r\n \r\n \r\n \r\n {/* MOBILE TOOLBAR */}\r\n \r\n \r\n {/* LOGO */}\r\n \r\n \"UOW { setShowLogin(showLogin + 1); }} onTouchEnd={() => { setShowLogin(showLogin + 1); }} />\r\n \r\n \r\n {/* ACCOUNT */}\r\n \r\n {/* FULL MENU */}\r\n \r\n {(showLogin > 5 || auth.user.id) ?\r\n handleClick(e, 'account')} tabIndex=\"0\">\r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* SEARCH */}\r\n {showSearch ?\r\n \r\n\r\n } />\r\n \r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n {/* MENU */}\r\n \r\n {renderMenuPopup()}\r\n \r\n \r\n \r\n Menu\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import logo from '../media/logo.svg'\r\nimport aboriginalFlag from '../media/aboriginalFlag.svg'\r\nimport torresFlag from '../media/torresFlag.svg'\r\n\r\nimport useSettings from \"./settings/useSettings.js\";\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n fontSize: '0.9em',\r\n borderTopStyle: 'solid',\r\n borderTopColor: '#eee',\r\n borderTopWidth: '1px',\r\n paddingTop: '2em',\r\n \"@media print\": {\r\n display: \"none !important\"\r\n }\r\n },\r\n top: {\r\n marginBottom: '2em'\r\n },\r\n bottom: {\r\n paddingBottom: '15px'\r\n },\r\n subhead: {\r\n fontSize: '1em',\r\n fontWeight: \"bold !important\"\r\n },\r\n logo: {\r\n height: '95px'\r\n },\r\n flag: {\r\n width: '50px',\r\n height: 'auto',\r\n display: 'inline-block',\r\n margin: '2px'\r\n },\r\n flag2: {\r\n width: '45px',\r\n height: 'auto',\r\n display: 'inline-block',\r\n margin: '2px'\r\n },\r\n statement: {\r\n width: '40%'\r\n },\r\n copy: {\r\n textAlign: 'right',\r\n width: '50%'\r\n },\r\n b1: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\"\r\n }\r\n}));\r\n\r\nexport default function Footer(props) {\r\n //const settings = useSettings();\r\n const classes = useStyles();\r\n /*const mailto = useRef();\r\n const [email, setEmail] = useState(settings.get(\"Email\") || \"ltc-central@uow.edu.au\");\r\n\r\n useEffect(() => {\r\n setEmail(settings.get(\"Email\"));\r\n mailto.current.setAttribute(\"href\", \"mailto:\" + settings.get(\"Email\"));\r\n }, [settings]);*/\r\n return (\r\n \r\n \r\n \r\n Contact Learning, Teaching & Curriculum\r\n

\r\n Request support\r\n

\r\n

\r\n Contribute to the Hub\r\n

\r\n

\r\n Provide feedback\r\n

\r\n
\r\n \r\n \"UOW\r\n \r\n
\r\n \r\n \r\n \"Aboriginal\r\n \"Torres\r\n \r\n \r\n \r\n \r\n On the lands that we study, we walk, and we live, we acknowledge and respect the traditional custodians and cultural knowledge holders of these lands.\r\n \r\n \r\n Copyright © {new Date().getFullYear()} University of Wollongong\r\n
CRICOS Provider No: 00102E | Privacy & cookie usage | Copyright & disclaimer\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n textAlign: 'center'\r\n }\r\n}));\r\n\r\nconst Consent = () => {\r\n const classes = useStyles();\r\n\r\n const getConsent = function () {\r\n return document.cookie.split(';').some((item) => item.includes('.AspNet.Consent=yes'));\r\n };\r\n\r\n const [consent, setConsent] = useState(getConsent());\r\n const [open, setOpen] = useState(!consent);\r\n\r\n const applyConsent = function () {\r\n setConsent(true);\r\n var date = new Date();\r\n var newDate = new Date(date.setMonth(date.getMonth() + 1));\r\n document.cookie = \".AspNet.Consent=yes; expires=\" + (newDate.toUTCString())+\"; path=/; secure; samesite=strict\";\r\n };\r\n const handleConsent = () => {\r\n applyConsent(true);\r\n setOpen(false);\r\n }\r\n const handleClose = () => {\r\n setOpen(false);\r\n applyConsent(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n We use cookies to improve your experience on our site. To find out more, read our privacy & cookie usage information
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Consent;\r\n","import React, { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Box from '@material-ui/core/Box';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport useScrollTrigger from '@material-ui/core/useScrollTrigger';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n main: {\r\n position: \"fixed\",\r\n right: \"0.5em\",\r\n bottom: \"0.5em\",\r\n zIndex: 99,\r\n \"@media print\": {\r\n display: \"none !important\"\r\n }\r\n },\r\n button: {\r\n border: \"1px solid\",\r\n padding: \"4px\",\r\n boxShadow: \"none\",\r\n background: \"#FFF\",\r\n },\r\n icon: {\r\n fontSize: \"4em\"\r\n }\r\n}));\r\n\r\nconst ScrollToTop = function () {\r\n const classes = useStyles();\r\n const { pathname } = useLocation();\r\n\r\n const trigger = useScrollTrigger({ threshold: 1, disableHysteresis: true });\r\n\r\n const scroll = () => {\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n useEffect(() => {\r\n scroll();\r\n }, [pathname]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ScrollToTop;","import AppTitle from '../support/AppTitle.js';\r\nimport useAuth from \"../auth/useAuth.js\";\r\nimport useSettings from \"../settings/useSettings.js\";\r\nimport TagPicker from '../tags/TagPicker.js';\r\nimport TagService from '../tags/TagService.js';\r\nimport PageService from '../pages/PageService.js';\r\nimport Page from '../pages/Page.js';\r\nimport PagePreview from '../pages/PagePreview.js';\r\nimport SearchBar from '../support/SearchBar.js';\r\n\r\nimport React, { useState, useEffect } from 'react';\r\nimport useAnalytics from '../support/Analytics.js';\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Link as RouterLink, useLocation, useRouteMatch, useHistory} from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Box from '@material-ui/core/Box';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Clear from '@material-ui/icons/Clear';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nconst filterListStyles = makeStyles((theme) => ({\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'block',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'block',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n '& > .MuiPaper-root': {\r\n padding: '1em',\r\n maxWidth: '75%',\r\n width: 'auto'\r\n }\r\n }\r\n}));\r\nconst FilterList = (props) => {\r\n const { tags, UpdateTags, mobileOpen, toggleMobile, enabled } = props;\r\n const classes = filterListStyles();\r\n \r\n\r\n const toggleFilter = (tagId) => {\r\n return function (optionId) {\r\n UpdateTags(tagId, optionId);\r\n }\r\n };\r\n\r\n const renderPickers = (m) => {\r\n var out = [], count = 0;\r\n for (var i = 0; i < tags.length; i++) {\r\n if (!tags[i].hidden) {\r\n out.push( { return curr ? true : o.enabled; }, false) == true}\r\n key={ 'mobile-filter-' + tags[i].id } \r\n UpdateTags={ toggleFilter(tags[i].id)} tag={tags[i]} />);\r\n count++;\r\n }\r\n }\r\n return out;\r\n };\r\n\r\n return (\r\n
\r\n { toggleMobile(false) }} onOpen={() => { toggleMobile(true) }}>\r\n \r\n Filter\r\n { toggleMobile(false) }} color=\"inherit\">\r\n \r\n {renderPickers(true)}\r\n \r\n
\r\n Filter\r\n {renderPickers(false)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst pageListStyles = makeStyles((theme) => ({\r\n main: {\r\n flexGrow: 1\r\n },\r\n list: {\r\n \r\n },\r\n sort: { \r\n color: \"var(--darkBlue)\",\r\n textTransform: \"uppercase\",\r\n '& > .MuiInputBase-input': {\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n padding: '5px 24px 5px 5px'\r\n },\r\n textDecoration: \"none\",\r\n marginLeft: \"1em\", \r\n [theme.breakpoints.down('sm')]: {\r\n flex: '0 0 100%',\r\n marginLeft: 0,\r\n marginBottom: '10px'\r\n },\r\n\r\n fontFamily: \"var(--secondaryText)\",\r\n border: 'none',\r\n content: 'none',\r\n transition: 'none',\r\n transform: 'none',\r\n borderBottom: '2px solid var(--red)', \r\n //marginTop: 0,\r\n '&::before': {\r\n content: 'none',\r\n border: 'none',\r\n transition: 'none',\r\n transform: 'none'\r\n },\r\n '&::after': {\r\n content: 'none',\r\n border: 'none',\r\n transition: 'none',\r\n transform: 'none'\r\n },\r\n '&::hover': {\r\n content: 'none',\r\n border: 'none',\r\n transition: 'none',\r\n transform: 'none'\r\n },\r\n \r\n \r\n },\r\n sortItem: { \r\n fontFamily: \"var(--secondaryText)\",\r\n color: \"var(--darkBlue)\", \r\n textTransform: \"uppercase\",\r\n fontWeight: 700,\r\n fontSize: \".9rem\",\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'block',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'unset',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n '& > .MuiPaper-root': {\r\n padding: '1em',\r\n maxWidth: '75%',\r\n width: 'auto'\r\n }\r\n },\r\n filterWrapper: {\r\n flexBasis: '0%',\r\n flexShrink: '0',\r\n [theme.breakpoints.up('md')]: {\r\n flexBasis: (!!window.MSInputMethodContext && !!document.documentMode)?'auto':'25%',\r\n }\r\n }\r\n}));\r\nconst PageList = (props) => {\r\n let location = useLocation();\r\n let history = useHistory();\r\n let match = useRouteMatch();\r\n let settings = useSettings();\r\n const analytics = useAnalytics();\r\n\r\n var query = new URLSearchParams(location.search);\r\n const classes = pageListStyles();\r\n const auth = useAuth();\r\n const { area } = props;\r\n const [canContribute, setCanContribute] = useState(false);\r\n const [canApprove, setCanApprove] = useState(false);\r\n const [canContributeCollection, setCanContributeCollection] = useState(false);\r\n const [canApproveCollection, setCanApproveCollection] = useState(false);\r\n const [tags, setTags] = useState(TagService.cachedList[area.url]);\r\n const [pages, setPages] = useState([]);\r\n const [filter, setFilter] = useState(props?.filter ?? query.get('filter') ?? '');//can set initial search on URL args or props\r\n const [sort, setSort] = useState(props?.sort ?? query.get('sort') ?? 'popularity');//can set initial search on URL args or props\r\n const [canLoadMore, setCanLoadMore] = useState(false);//for infinite loading\r\n const [initialised, setInitialised] = useState(false);//make sure tags are loaded before initial pages load to prevent double load\r\n const [pageSize, setPageSize] = useState(parseInt(settings.get(\"Pages fetch size\")) || 10);\r\n const [mobileOpen, setMobileOpen] = React.useState(false);\r\n const [queryLoaded, setQueryLoaded] = useState(query.get(\"loaded\"));\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [override, setOverride] = useState(null);\r\n\r\n useEffect(() => {\r\n if (area.url == \"article\" || area.url == \"showcase\" || area.url == \"page\" || area.url == \"unlisted\") {\r\n setCanContribute(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(area.url + \".contributor\") !== -1);\r\n setCanApprove(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(area.url + \".approver\") !== -1);\r\n if (area.url == \"article\") {\r\n setCanContributeCollection(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"collection.contributor\") !== -1);\r\n setCanApproveCollection(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"collection.approver\") !== -1);\r\n }\r\n } else if (area.url != \"search\" && auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1) {\r\n setCanContribute(true);\r\n setCanApprove(true);\r\n } else {\r\n setCanContribute(false);\r\n setCanApprove(false);\r\n setCanContributeCollection(false);\r\n setCanApproveCollection(false);\r\n }\r\n }, [area,auth]);\r\n\r\n useEffect(() => {\r\n query = new URLSearchParams(location.search);\r\n var f = query.get('filter') ?? filter ?? '';\r\n if(f != filter){}\r\n setFilter(f);\r\n var changedTags = applyEnabled(tags);\r\n if (changedTags) {\r\n findOverride(changedTags);\r\n setTags(changedTags);\r\n }\r\n },[location]);\r\n\r\n var applyEnabled = function (tgs) {\r\n var oldSelectedTags = [], response = [...tgs];\r\n\r\n var changed = false;\r\n var queryTags = query.getAll('options');\r\n if (queryTags.length > 0) {\r\n oldSelectedTags = queryTags.map((t) => parseInt(t));\r\n }\r\n for (var i = 0; i < response.length; i++) {\r\n for (var j = 0; j < response[i].options.length; j++) {\r\n var newE = (oldSelectedTags.indexOf(response[i].options[j].id) !== -1);\r\n if (newE != response[i].options[j].enabled) {\r\n changed = true;\r\n }\r\n response[i].options[j].enabled = newE;\r\n }\r\n }\r\n if (changed)\r\n return response;\r\n else\r\n return null;\r\n };\r\n const [lastTagFetch, setLastTagFetch] = useState(0);\r\n var fetchTags = function () {\r\n var time = settings.get(\"Tags last updated\");\r\n if (lastTagFetch !== time) {\r\n setLastTagFetch(time);\r\n setPageSize(parseInt(settings.get(\"Pages fetch size\")) || 10);\r\n TagService.getList({ area: area.url }, time)\r\n .then((response) => {\r\n var changed = applyEnabled(response);\r\n setTags(changed ? changed : response);\r\n setInitialised(true);\r\n setLoading(true);\r\n findOverride(changed ? changed : response);\r\n })\r\n .catch(function (e) {\r\n setTags([]);\r\n });\r\n }\r\n };\r\n useEffect(fetchTags, [settings]);\r\n\r\n const findOverride = (tgs) => {\r\n if (!tgs) tgs = tags;\r\n //determine override tag if enabled\r\n var cat = null, tgs = [...tgs];\r\n for (var i = 0; i < tgs.length; i++) {\r\n if (tgs[i].isCategory) {\r\n for (var j = 0; j < tgs[i].options.length; j++) {\r\n if (tgs[i].options[j].enabled) {\r\n cat = tgs[i].options[j];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n setOverride(cat);\r\n };\r\n\r\n const fetchPages = (showMore = false) => {\r\n\r\n if (!initialised) return false;\r\n\r\n var tagRequest = [];\r\n for (var i = 0; i < tags.length; i++) {\r\n for (var j = 0; j < tags[i].options.length; j++) {\r\n if (tags[i].options[j].enabled) {\r\n tagRequest.push(tags[i].options[j].id);\r\n }\r\n }\r\n }\r\n\r\n if (pageSize) {\r\n var newPages = (showMore ? [...pages] : []);\r\n var req = { filter: filter, page: Math.floor(newPages.length / pageSize), pageSize: pageSize, options: tagRequest, area: area.url, sort: sort };\r\n \r\n //initial query load\r\n if (queryLoaded && queryLoaded > pageSize) {\r\n req.page = 0;\r\n req.pageSize = queryLoaded;\r\n setQueryLoaded(0);\r\n }\r\n\r\n setLoading(true);\r\n PageService.getList(req)\r\n .then((response) => {\r\n if ('data' in response && 'data' in response.data) {\r\n var l = newPages.length;\r\n for (var i = 0; i < response.data.data.length; i++) {\r\n var found = false;\r\n for (var j = 0; j < l; j++) {\r\n if (newPages[j].id == response.data.data[i].id) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n newPages.push(response.data.data[i]);\r\n }\r\n }\r\n\r\n setPages(newPages);\r\n console.log(\"fetched\", newPages.length, \"of\", response.data.total, \"pages\");\r\n setCanLoadMore(response.data.total != newPages.length);\r\n analytics.tag('event', 'view_search_results', {\r\n search_term: filter,\r\n items: newPages.map((p) => { return { item_id: p.id, item_name: p.title }; })\r\n });\r\n\r\n const params = new URLSearchParams();\r\n if (filter) params.append('filter', filter); else params.delete('filter');\r\n if (sort) params.append('sort', sort); else params.delete('sort');\r\n params.delete('options');\r\n if (tagRequest.length > 0) {\r\n for (var i = 0; i < tagRequest.length; i++)\r\n params.append('options', tagRequest[i]);\r\n }\r\n params.append('loaded', newPages.length);\r\n history.replace(match.path + \"?\" + params.toString());\r\n\r\n setLoading(false);\r\n }\r\n })\r\n .catch(function (e) {\r\n\r\n });\r\n }\r\n };\r\n useEffect(fetchPages, [filter, sort, tags, initialised]);\r\n\r\n const UpdateTags = () => {\r\n return function (tagId, optionId) {\r\n var oldTags = [...tags];\r\n var needUpdate = false;\r\n //for each in the tag db\r\n for (var t = 0; t < oldTags.length; t++) {\r\n if (oldTags[t].id == tagId) {\r\n var enabled = false;\r\n for (var o = 0; o < oldTags[t].options.length; o++) {\r\n if (oldTags[t].options[o].id == optionId) {\r\n oldTags[t].options[o].enabled = !oldTags[t].options[o].enabled;\r\n enabled = oldTags[t].options[o].enabled;\r\n needUpdate = true;\r\n break;\r\n }\r\n }\r\n\r\n //turn off other group members if needed\r\n if (oldTags[t].type == \"single\" && enabled) {\r\n for (var o = 0; o < oldTags[t].options.length; o++) {\r\n if (oldTags[t].options[o].id != optionId) {\r\n oldTags[t].options[o].enabled = false;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n if (needUpdate) {\r\n setTags(oldTags);\r\n findOverride(oldTags);\r\n var selectedOptions = [];\r\n for (var t = 0; t < oldTags.length; t++) {\r\n for (var o = 0; o < oldTags[t].options.length; o++) {\r\n if (oldTags[t].options[o].enabled) {\r\n selectedOptions.push(oldTags[t].options[o].id);\r\n }\r\n }\r\n }\r\n //localStorage.setItem(\"lthub_selected_tags\", JSON.stringify(selectedOptions));\r\n }\r\n }\r\n };\r\n\r\n const applyFilter = (v) => {\r\n if ((sort != \"\" && v == \"\") || v != \"\") {\r\n setSort(\"score\");\r\n analytics.tag('event', 'search', { search_term: v });\r\n }\r\n setFilter(v);\r\n };\r\n const applySort = (e) => {\r\n setSort(e.target.value);\r\n };\r\n const handleShowMore = () => {\r\n setCanLoadMore(false);\r\n fetchPages(true);\r\n };\r\n\r\n const generateTitle = () => {\r\n if (override == null) {\r\n return area.plural;\r\n } else {\r\n return override.name;\r\n }\r\n };\r\n const generateIntro = () => {\r\n if (override == null) {\r\n switch (area.url) {\r\n case \"showcase\":\r\n case \"article\":\r\n case \"search\":\r\n return ();\r\n case \"template\":\r\n return (

Templates are a special page type which does not show up in search results,\r\n they are intended to be used as a starting point for other page types.\r\n For example, if you make a template page setting out the basic headings and structure\r\n for an Article and then assign it as the article template in the Site Settings area,\r\n any new Articles created will start with the content of the template.

);\r\n break;\r\n case \"page\":\r\n return (

Loose pages are normal pages in the system but are not articles or showcase pages. Unlike Unlisted pages, they can be found using the sitewide search.

);\r\n break;\r\n case \"unlisted\":\r\n return (

Unlisted pages are normal pages in the system but are not articles or showcase pages. Unlike Loose pages, they cannot be found using the sitewide search.

);\r\n break;\r\n case \"collection\":\r\n return (

Collections are a curated, commentated list of other articles and resources in the hub.

);\r\n break;\r\n\r\n }\r\n } else {\r\n return (

{override.description}

);\r\n }\r\n };\r\n\r\n const [pickedTags, setPickedTags] = React.useState(0);\r\n const calcPickedTags = () => {\r\n var count = 0;\r\n for (var i = 0; i < tags.length; i++) {\r\n if (tags[i].hidden == false) {\r\n for (var j = 0; j < tags[i].options.length; j++) {\r\n if (tags[i].options[j].enabled)\r\n count++;\r\n }\r\n }\r\n }\r\n setPickedTags(count);\r\n };\r\n useEffect(calcPickedTags, [tags]);\r\n\r\n const toggleMobile = (o) => {\r\n setMobileOpen(o);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n { toggleMobile(true) }} color=\"inherit\">\r\n \r\n \r\n \r\n \r\n {generateTitle()}\r\n \r\n {(canContribute || canContributeCollection) ?
\r\n {canContribute ?\r\n \r\n \r\n \r\n : null}\r\n  \r\n {canContributeCollection ?\r\n \r\n \r\n \r\n : null}\r\n
: null }\r\n
\r\n {generateIntro()}\r\n \r\n \r\n \r\n {AppTitle(generateTitle())}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Results\r\n \r\n {pages.length > 0 ?\r\n pages.map((page) => {\r\n return (\r\n \r\n );\r\n })\r\n :\r\n (loading ? : No {generateTitle()} matching your criteria were found.)\r\n }\r\n \r\n {canLoadMore ? () : null}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PageList;\r\n","import Areas from '../support/Areas.js';\r\nimport PrivateRoute from \"../auth/PrivateRoute.js\";\r\nimport PageList from \"../pages/PageList.js\";\r\nimport Page from \"../pages/Page.js\";\r\nimport useAuth from \"../auth/useAuth.js\";\r\n\r\nimport React, { useState, useEffect, lazy, Suspense } from 'react';\r\nimport { Route, Switch, useRouteMatch } from \"react-router-dom\";\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nconst EditPage = lazy(() => import('./EditPage.js'));\r\n\r\nconst Pages = () => {\r\n const auth = useAuth();\r\n const [isAdmin, setIsAdmin] = useState(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1);\r\n const [canView, setCanView] = useState(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1);\r\n const [search, setSearch] = useState(Areas.find(x => x.url === 'search'));\r\n\r\n useEffect(() => {\r\n setIsAdmin(auth.user.id && auth.user?.roles && auth.user.roles.indexOf(\"admin\") !== -1);\r\n }, [auth]);\r\n\r\n const hasAccess = (area) => {\r\n if (auth.user.id && auth.user?.roles) {\r\n if (auth.user.roles.indexOf(area.url + \".contributor\") !== -1 || auth.user.roles.indexOf(area.url + \".approver\") !== -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return (\r\n \r\n {Areas.map((value, index) => {\r\n return (\r\n \r\n {(value.features.indexOf(\"publicList\") !== -1 || hasAccess(value)) ? : }\r\n \r\n );\r\n })}\r\n {Areas.map((value, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n\r\n//this can only be run through router. pages themselves need to be rendered independently of the router\r\nconst PageManager = (props) => {\r\n const [Area, setArea] = useState(props?.area);\r\n let match = useRouteMatch();\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n }>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Pages;\r\n","import AppTitle from '../support/AppTitle.js';\r\nimport useAuth from \"../auth/useAuth.js\";\r\nimport Hijack from '../support/Hijack.js';\r\nimport useSettings from \"../settings/useSettings.js\";\r\nimport GlossaryService from '../glossary/GlossaryService.js';\r\n\r\nimport React, { useState, useEffect, useReducer, useRef, lazy, Suspense } from 'react';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Box from '@material-ui/core/Box';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Check from '@material-ui/icons/Check';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { FormHelperText } from '@material-ui/core';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Helmet } from \"react-helmet\";\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nconst RichTextEditor = lazy(() => import('../support/RichTextEditor.js'));\r\n\r\nconst Glossary = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst EditForm = (props) => {\r\n const [errors, setErrors] = useState({});\r\n const [error, setError] = useState(null);\r\n const [entry, setEntry] = useReducer((state, newState) => ({ ...state, ...newState }), props.entry);\r\n const updateField = (field, value) => { setEntry({ [field]: value }); }\r\n const handleInput = (e) => { updateField(e.target.name, e.target.value); };\r\n const [isEditing, setIsEditing] = useState((entry.id == 0));\r\n const [open, setOpen] = useState(false);\r\n const myRef = useRef(null);\r\n const contentRef = useRef(null);\r\n const settings = useSettings();\r\n let location = useLocation();\r\n useEffect(() => {\r\n if (location.hash.toLowerCase() == encodeURI((\"#\" + entry.name).toLowerCase())) {\r\n myRef.current.scrollIntoView(true);\r\n }\r\n \r\n }, [location]);\r\n\r\n\r\n const showEditForm = () => {\r\n setIsEditing(!isEditing);\r\n }\r\n const handleCancel = () => {\r\n props.resetData();\r\n setIsEditing(false);\r\n\r\n }\r\n const handleSave = (e) => {\r\n if (e) e.preventDefault(); \r\n return GlossaryService.updateGlossary(entry).then((response) => { \r\n settings.set({ \"name\": \"Glossary last updated\", \"settingValue\": (new Date()).getTime() });\r\n props.resetData();\r\n setIsEditing(false);\r\n }).catch((error) => {\r\n if ('response' in error && 'data' in error.response) {\r\n setError(error.response.data.title);\r\n setErrors(error.response.data.errors);\r\n }\r\n });\r\n };\r\n const handleDelete = (entry) => {\r\n GlossaryService.deleteGlossary(entry).then((response) => {\r\n props.onDelete(entry);\r\n settings.set({ \"name\": \"Glossary last updated\", \"settingValue\": (new Date()).getTime() });\r\n setOpen(false);\r\n });\r\n };\r\n const showConfirmDialog = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n
\r\n {isEditing ?\r\n
\r\n

{entry.id == 0 ? Create new entry : Editing {entry.name}}

\r\n \r\n \r\n \r\n
\r\n Content\r\n }>\r\n { updateField('content', content); }}\r\n />\r\n \r\n \r\n {error ? {error} : \"\"}\r\n \r\n
\r\n\r\n :\r\n
\r\n \r\n

{entry.name} \r\n {props.canContribute ?\r\n \r\n \r\n \r\n \r\n :\r\n \r\n }\r\n

\r\n

{entry.description}

\r\n

\r\n \r\n \r\n {\"Are you sure you wish to delete \" + entry.name + \"?\"}\r\n \r\n \r\n WARNING: Deleting a glossary entry will not automatically remove links from content pages!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n }\r\n \r\n
\r\n );\r\n}\r\nconst GlossaryList = () => {\r\n const auth = useAuth();\r\n const [glossaryEntries, setGlossaryEntries] = useState([]);\r\n const [filter, setFilter] = useState(\"\");\r\n const [tempFilter, setTempFilter] = useState(\"\");\r\n const [sort, setSort] = useState(\"name\");\r\n const [dir, setDir] = useState(\"asc\");\r\n const [page, setPage] = useState(0);\r\n const pageSizes = [0];\r\n const settings = useSettings();\r\n\r\n \r\n const [pageSize, setPageSize] = useState(pageSizes[0]);\r\n \r\n const [total, setTotal] = useState(0);\r\n const [canContribute, setCanContribute] = useState(false);\r\n\r\n\r\n const [lastGlossaryTime, setLastGlossaryTime] = useState(0);\r\n const updateData = () => {\r\n var updated = settings.get(\"Glossary last updated\");\r\n if (lastGlossaryTime != updated) {\r\n setLastGlossaryTime(updated);\r\n GlossaryService.getList({ filter: filter, sort: sort, dir: dir, page: page, pageSize: pageSize }, updated)\r\n .then((response) => {\r\n setGlossaryEntries(response);\r\n // setTotal(response.data.total);\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n };\r\n useEffect(updateData, [page, pageSize, dir, sort, filter, settings]);\r\n\r\n useEffect(() => {\r\n if (auth.user.id) {\r\n if (auth.user?.roles.indexOf(\"admin\") > -1) {\r\n setCanContribute(true);\r\n }\r\n else {\r\n setCanContribute(false);\r\n }\r\n } else { setCanContribute(false); }\r\n }, [auth]);\r\n\r\n const handleAdd = (e) => {\r\n var currentArray = [];\r\n currentArray.push({\r\n id: 0,\r\n name: \"\",\r\n description: \"\",\r\n content: \"\"\r\n });\r\n glossaryEntries.map((g) => (currentArray.push(g))); \r\n \r\n setGlossaryEntries(currentArray);\r\n\r\n };\r\n const resetData = () => {\r\n updateData([page, pageSize, dir, sort, filter]);\r\n }\r\n const handleDelete = (entry) => {\r\n let tempEntries = [...glossaryEntries], ind = -1;\r\n for (var i = 0; i < tempEntries.length; i++) {\r\n if (tempEntries[i].id == entry.id) {\r\n ind = i;\r\n break;\r\n }\r\n }\r\n if (ind != -1) {\r\n tempEntries.splice(ind, 1);\r\n setGlossaryEntries(tempEntries);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {AppTitle(\"Glossary\")}\r\n \r\n

Glossary {canContribute ? : }

\r\n \r\n {glossaryEntries.map((g) => (\r\n
\r\n \r\n
\r\n
\r\n ))\r\n }\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Glossary;","import { red } from '@material-ui/core/colors';\r\nimport { createMuiTheme } from '@material-ui/core/styles';\r\n\r\n// A custom theme for this app\r\nconst theme = createMuiTheme({\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1180,\r\n xl: 1920,\r\n },\r\n },\r\n palette: {\r\n primary: {\r\n main: '#556cd6',\r\n },\r\n secondary: {\r\n main: '#19857b',\r\n },\r\n danger: {\r\n main: \"#9a0036\",\r\n },\r\n error: {\r\n main: red.A400,\r\n },\r\n background: {\r\n default: '#fff',\r\n }, \r\n },\r\n});\r\n\r\nexport default theme;","import Home from './components/Home.js';\r\nimport NavMenu from './components/NavMenu.js';\r\nimport Footer from './components/Footer.js';\r\nimport Consent from './components/support/Consent.js';\r\nimport NotFound from './components/support/NotFound.js';\r\n\r\nimport Areas from './components/support/Areas.js';\r\nimport ScrollToTop from './components/support/ScrollToTop.js';\r\nimport useAuth from './components/auth/useAuth.js';\r\nimport { ProvideAuth } from './components/auth/useAuth.js';\r\nimport PrivateRoute from './components/auth/PrivateRoute.js';\r\nimport { ProvideSettings } from './components/settings/useSettings.js';\r\nimport { ProvideAnalytics } from './components/support/Analytics.js';\r\n\r\nimport Pages from './components/pages/Pages.js';\r\nimport Glossary from './components/glossary/Glossary.js';\r\n\r\nimport theme from './components/theme';\r\nimport jss from './components/jss';\r\nimport { getClassGen } from './components/jss';\r\n\r\nimport React, { useState, useRef, lazy, Suspense } from 'react';\r\nimport axios from 'axios';\r\nimport { Route, Switch, useLocation, Redirect } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { ThemeProvider } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Container from '@material-ui/core/Container';\r\nimport { StylesProvider } from '@material-ui/core/styles';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport './custom.css';\r\n\r\nconst Login = lazy(() => import('./components/auth/Login.js'));\r\nconst Users = lazy(() => import('./components/users/Users.js'));\r\nconst Tags = lazy(() => import('./components/tags/Tags.js'));\r\nconst Settings = lazy(() => import('./components/settings/Settings.js'));\r\nconst FileManager = lazy(() => import('./components/files/FileManager.js'));\r\nconst Logs = lazy(() => import('./components/logs/Logs.js'));\r\nconst NavItems = lazy(() => import('./components/navitems/NavItems.js'));\r\nconst Trash = lazy(() => import('./components/pages/Trash.js'));\r\n\r\nconst App = (props) => {\r\n let auth = useAuth();\r\n const mainRef = useRef();\r\n\r\n const [login, setLogin] = useState(false);\r\n\r\n const [ax, setAx] = React.useState(false);\r\n if (!ax) {\r\n axios.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n var err = error;\r\n if ('response' in err) {\r\n err = error.response;\r\n }\r\n if (err) {\r\n if (err.status === 401) {\r\n setLogin(true);\r\n auth.signout(true);\r\n } else if (err.status === 403) {\r\n console.log(\"invalid permissions\", err.message);\r\n }\r\n } else if (error.request) {\r\n console.log(error.request);\r\n } else {\r\n console.log('Error', error.message);\r\n }\r\n return Promise.reject(error);\r\n });\r\n setAx(true);\r\n }\r\n\r\n const onLogin = (success) => {\r\n if (success) {\r\n\r\n } else {\r\n\r\n }\r\n setLogin(false);\r\n };\r\n\r\n const unauthDev = () => {\r\n if (process.env.REACT_APP_ENV !== \"Development\")\r\n return false;\r\n if (auth?.user?.id)\r\n return false;\r\n if (window.localStorage.getItem(\"lthub_has_loggedin\") === \"1\")\r\n return false;\r\n return true;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n mainRef.current.scrollIntoView({ behavior: 'smooth' })}>Skip to Content\r\n \r\n
\r\n \r\n {typeof window != \"undefined\" ? : null}\r\n {!unauthDev() ? \r\n \r\n\r\n {Areas.map((value, index) => {\r\n return ();\r\n })}\r\n \r\n\r\n }>\r\n }>\r\n }>\r\n }>\r\n }>\r\n }>\r\n }>\r\n }>\r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n
\r\n