@aarhus-university/au-lib-react-components 9.11.17 → 9.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/.eslintrc +18 -18
  2. package/README.md +20 -20
  3. package/babel.config.js +6 -6
  4. package/build/dev.html +328 -328
  5. package/build/umd/all.css +2 -2
  6. package/build/umd/all.css.map +1 -1
  7. package/build/umd/all.js +1 -1
  8. package/build/umd/alphabox.js +1 -1
  9. package/build/umd/alphabox.js.map +1 -1
  10. package/build/umd/auAuth.js +1 -1
  11. package/build/umd/auAuth.js.map +1 -1
  12. package/build/umd/databox.js +2 -2
  13. package/build/umd/databox.js.LICENSE.txt +5 -5
  14. package/build/umd/databox.js.map +1 -1
  15. package/build/umd/diagramme.js +1 -1
  16. package/build/umd/flowbox.js +1 -1
  17. package/build/umd/flowbox.js.map +1 -1
  18. package/build/umd/news.js +1 -1
  19. package/build/umd/news.js.map +1 -1
  20. package/build/umd/universe.js +1 -1
  21. package/build/umd/universe.js.map +1 -1
  22. package/package.json +60 -60
  23. package/src/all.js +3 -3
  24. package/src/app.js +263 -263
  25. package/src/components/AUAlertComponent.js +158 -158
  26. package/src/components/AUAmountComponent.js +84 -84
  27. package/src/components/AUBannerComponent.js +99 -99
  28. package/src/components/AUCalendarComponent.js +393 -393
  29. package/src/components/AUCollapsibleComponent.js +173 -173
  30. package/src/components/AUDatepickerComponent.js +105 -105
  31. package/src/components/AUDiagrammeComponent.js +310 -310
  32. package/src/components/AUFilterCheckboxComponent.js +122 -122
  33. package/src/components/AUFocusComponent.js +55 -55
  34. package/src/components/AUModalComponent.js +94 -94
  35. package/src/components/AUPaginationComponent.js +103 -103
  36. package/src/components/AUSpinnerComponent.js +125 -125
  37. package/src/components/AutoSuggestComponent.js +157 -132
  38. package/src/components/alphabox/AlphaBoxComponent.js +145 -140
  39. package/src/components/alphabox/AlphaBoxContentComponent.js +136 -125
  40. package/src/components/context/AUUserContextComponent.js +91 -91
  41. package/src/components/context/ImpersonateComponent.js +54 -54
  42. package/src/components/databox/DataBoxAlphabetComponent.js +144 -144
  43. package/src/components/databox/DataBoxAssociationComponent.js +122 -122
  44. package/src/components/databox/DataBoxButtonComponent.js +153 -153
  45. package/src/components/databox/DataBoxComponent.js +297 -297
  46. package/src/components/databox/DataBoxGroupingComponent.js +62 -62
  47. package/src/components/databox/DataBoxSearchResultComponent.js +40 -40
  48. package/src/components/databox/DataBoxStackedAssociationComponent.js +58 -58
  49. package/src/components/databox/DataBoxSuggestionComponent.js +39 -39
  50. package/src/components/delphinus/AUAlertComponent.js +85 -85
  51. package/src/components/delphinus/AUCalendarComponent.js +487 -487
  52. package/src/components/delphinus/AUContentToggleComponent.js +32 -32
  53. package/src/components/delphinus/AUDatepickerComponent.js +164 -164
  54. package/src/components/delphinus/AULoginComponent.js +65 -65
  55. package/src/components/delphinus/AUModalComponent.js +94 -94
  56. package/src/components/delphinus/AUSpinnerComponent.js +114 -114
  57. package/src/components/delphinus/AUSubNavComponent.js +53 -53
  58. package/src/components/delphinus/AUTabbedContentComponent.js +150 -150
  59. package/src/components/delphinus/AUTableComponent.js +28 -28
  60. package/src/components/delphinus/AUToastComponent.js +91 -91
  61. package/src/components/delphinus/AUToolbarComponent.js +48 -48
  62. package/src/components/delphinus/hooks.js +28 -28
  63. package/src/components/flowbox/FlowBoxComponent.js +126 -126
  64. package/src/components/flowbox/FlowBoxPhoneComponent.js +106 -106
  65. package/src/components/form/AUMobilePrefixComponent.js +18 -18
  66. package/src/components/form/AUReceiptComponent.js +40 -40
  67. package/src/components/form/AUSubmitButtonContainerComponent.js +39 -39
  68. package/src/components/news/EventLayout1Component.js +94 -94
  69. package/src/components/news/EventLayout2Component.js +90 -90
  70. package/src/components/news/EventLayout3Component.js +68 -68
  71. package/src/components/news/NewsCategoriesComponent.js +21 -21
  72. package/src/components/news/NewsCollageBannerComponent.js +71 -71
  73. package/src/components/news/NewsCollageBannerRSSComponent.js +79 -79
  74. package/src/components/news/NewsColumnsComponent.js +125 -125
  75. package/src/components/news/NewsLanguageChangeComponent.js +74 -74
  76. package/src/components/news/NewsLayout1Component.js +80 -80
  77. package/src/components/news/NewsLayout2Component.js +80 -80
  78. package/src/components/news/NewsLayout3Component.js +81 -81
  79. package/src/components/news/NewsLayout4Component.js +80 -80
  80. package/src/components/news/NewsLayout5Component.js +61 -61
  81. package/src/components/news/NewsLayout6Component.js +55 -55
  82. package/src/components/news/NewsLayout7Component.js +58 -58
  83. package/src/components/news/NewsLayout8Component.js +57 -57
  84. package/src/components/news/NewsListComponent.js +291 -291
  85. package/src/components/news/NewsPopUpComponent.js +591 -591
  86. package/src/components/news/NewsRSSComponent.js +74 -74
  87. package/src/components/news/NewsSocialComponent.js +104 -104
  88. package/src/components/news/NewsSubHeaderComponent.js +19 -19
  89. package/src/components/password/AUChangePasswordComponent.js +190 -177
  90. package/src/components/password/AUCurrentPasswordComponent.js +72 -72
  91. package/src/components/password/AUNewPasswordComponent.js +143 -143
  92. package/src/components/password/AUPasswordActions.js +101 -101
  93. package/src/components/password/AUPasswordHooks.js +47 -47
  94. package/src/components/password/AUPasswordReducer.js +78 -78
  95. package/src/components/password/AUPasswordRequirementsComponent.js +29 -29
  96. package/src/components/profile/AUProfileActions.js +128 -128
  97. package/src/components/profile/AUProfileAvatar2016Component.js +99 -99
  98. package/src/components/profile/AUProfileAvatarComponent.js +83 -83
  99. package/src/components/profile/AUProfileAvatarV2Component.js +91 -91
  100. package/src/components/profile/AUProfileAvatarV3Component.js +80 -80
  101. package/src/components/profile/AUProfileContainerComponent.js +283 -283
  102. package/src/components/profile/AUProfileHooks.js +30 -30
  103. package/src/components/profile/AUProfileItemComponent.js +54 -54
  104. package/src/components/profile/AUProfileLanguageComponent.js +131 -131
  105. package/src/components/profile/AUProfileLoginComponent.js +41 -41
  106. package/src/components/profile/AUProfileMailComponent.js +307 -307
  107. package/src/components/profile/AUProfileMobileComponent.js +164 -164
  108. package/src/components/profile/AUProfileNameComponent.js +253 -253
  109. package/src/components/profile/AUProfileNextOfKinComponent.js +216 -216
  110. package/src/components/profile/AUProfileReducer.js +230 -230
  111. package/src/components/profile/AUProfileWidgetComponent.js +95 -95
  112. package/src/components/profile/AUProfileWidgetV2Component.js +116 -116
  113. package/src/components/profile/AUProfileWidgetV3Component.js +130 -130
  114. package/src/components/universe/StaffTopComponent.js +362 -362
  115. package/src/components/universe/StudentTopComponent.js +137 -137
  116. package/src/components/universe/UniverseContainerComponent.js +62 -62
  117. package/src/components/wrapping/AUEmbedComponent.js +47 -47
  118. package/src/config/webpack.dev.config.js +47 -47
  119. package/src/config/webpack.umd.config.js +86 -85
  120. package/src/index.js +6 -6
  121. package/src/lib/au-alphabox.js +102 -102
  122. package/src/lib/au-auth.js +227 -227
  123. package/src/lib/au-databox.js +403 -403
  124. package/src/lib/au-diagramme.js +87 -87
  125. package/src/lib/au-flowbox.js +95 -95
  126. package/src/lib/au-news.js +371 -371
  127. package/src/lib/helpers.js +222 -216
  128. package/src/lib/i18n.js +603 -601
  129. package/src/lib/menu.js +10 -10
  130. package/src/lib/tracking.js +65 -65
  131. package/src/lib/universe.js +9 -9
  132. package/src/lib/urlHandler.js +63 -63
  133. package/src/lib/validation.js +219 -181
  134. package/src/lib/wrapping.js +16 -16
  135. package/src/styles/_settings.scss +10 -10
  136. package/src/styles/alert.scss +39 -39
  137. package/src/styles/alphabox.scss +222 -208
  138. package/src/styles/app.scss +13 -13
  139. package/src/styles/autosuggest.scss +57 -57
  140. package/src/styles/calendar.scss +111 -111
  141. package/src/styles/databox.scss +563 -563
  142. package/src/styles/diagramme.scss +119 -119
  143. package/src/styles/filtercheckbox.scss +4 -4
  144. package/src/styles/flowbox.scss +72 -72
  145. package/src/styles/maps.scss +395 -395
  146. package/src/styles/modal.scss +34 -34
  147. package/src/styles/pagination.scss +10 -10
  148. package/src/styles/spinner.scss +30 -30
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("axios"),require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define(["axios","react","react-dom"],t);else{var n="object"==typeof exports?t(require("axios"),require("react"),require("react-dom")):t(e.axios,e.React,e.ReactDOM);for(var a in n)("object"==typeof exports?exports:e)[a]=n[a]}}(self,(function(e,t,n){return(()=>{var a={168:(e,t,n)=>{"use strict";n.r(t);var a=n(383),r=n.n(a),i=n(949),s=n.n(i),l=n(376),o=n.n(l);const d={da:{staffTitleLink:'<a href="//medarbejdere.au.dk"><strong>medarbejdere</strong>.au.dk</a>',studentTitleLink:'<a href="//studerende.au.dk"><strong>studerende</strong>.au.dk</a>',mainPageLink:'<a href="//www.au.dk">au.dk</a>',iconSystems:"Systemer",iconPin:"Personer og bygninger",iconBurger:"Menu",mitstudieText:"mitstudie",mitstudieUrl:"https://mitstudie.au.dk"},en:{staffTitleLink:'<a href="//staff.au.dk"><strong>staff</strong>.au.dk</a>',studentTitleLink:'<a href="//students.au.dk"><strong>students</strong>.au.dk</a>',mainPageLink:'<a href="//international.au.dk">au.dk</a>',iconSystems:"Systems",iconPin:"Persons and buildings",iconBurger:"Menu",mitstudieText:"mystudies.au.dk",mitstudieUrl:"https://mystudies.au.dk/"}},u={da:{login:"Log ind",logout:"Log ud",edit:"Ret",auId:"AU-id",studentNumber:"Studienummer",changeLanguage:"Change language",headerContainer:"Profilindstillinger",headerName:"Profilnavn",headerMail:"Mailadresser",headerMobile:"Privat mobilnummer",headerLanguage:"Sprog i systemer",headerNextOfKin:"Pårørende",otherMail:"Se øvrige AU-mailadresser",languageIn:"Du har valgt dansk som standardsprog",legendName:"Vælg dit profilnavn til universitetets systemer",legendNameHint:"Vær opmærksom på, at ændringer ikke slår igennem i alle systemer.",formNameHint:"Dit navn fra CPR-registeret",formNameDisplayName:"Skriv et andet navn",firstName:"Fornavn",firstNameHint:"Undlad mellemnavne, hvis du kun vil vises med ét fornavn",lastName:"Efternavn",workMail:"AU-mailadresse",workMailHint:"Ændringer i din medarbejder-mailadresse skal afspejle dit navn",workMailScreenreader:"Din medarbejder-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.",studentMail:"Studie-mailadresse",studentMailScreenreader:"Din studie-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.",privateMail:"Privat mailadresse",privateMailHint:"Vi sender en mail til din private mailadresse, hvis du glemmer dit brugernavn eller adgangskode til universitetets systemer.",countryCode:"Landekode",number:"Nummer",languageLegend:"Vælg dit foretrukne sprog til universitetets systemer ",danish:"Dansk",english:"Engelsk",nextOfKinParagraph:"Du kan oplyse navn og telefonnummer på en pårørende, så universitetet kan kontakte vedkommende i et nødstilfælde.",nextOfKinName:"Navn",nextOfKinTelephone:"Telefonnummer",headerPassword:"Skift adgangskode",save:"Gem",saved:"Dine ændringer er blevet gemt.",mailNotice:"<strong>Vær opmærksom på, at der kan gå op til 15 minutter, før ændringer til din e-mailadresse slår igennem.</strong>",cancel:"Annuller",validMail:"Mailadressen du har skrevet er ikke gyldig.",validMobile:"Telefonnummeret du har skrevet er ikke gyldigt.",validName:"Skriv et navn.",validFirstName:"Skriv et fornavn.",validLastName:"Skriv et efternavn.",emptyMail:"Du har endnu ikke tilføjet en privat mailadresse",emptyMobile:"Du har endnu ikke tilføjet et mobilnummer",emptyNok:"Du har endnu ikke tilføjet en pårørende",copyAuid:"Kopiér dit AU-id",copyStudentNumber:"Kopiér dit studienummer",headerVacationAbsence:"Ferie og fravær",myProfile:"Min profil",helpModalHeader:"Nyt: Medarbejderprofil",helpModalText:'Nu kan du rette dine profiloplysninger, skifte adgangskode og se din ferie- og fraværsoversigt på medarbejdere.au.dk. Klik på "Min profil" for at logge ind og se din medarbejderprofil.',helpModalBtn:"Ok, vis ikke igen",profileFor:"Profilmenu for"},en:{login:"Sign in",logout:"Sign out",edit:"Edit",auId:"AU ID",studentNumber:"Student registration number",changeLanguage:"Skift sprog",headerContainer:"Profile settings",headerName:"Profile name",headerMail:"Email addresses",headerMobile:"Private mobile phone number",headerLanguage:"System language",headerNextOfKin:"Relatives",otherMail:"See other AU email addresses",languageIn:"You have selected English as the standard language",legendName:"Select your profile name for the university's systems",legendNameHint:"Please note that changes will not take effect in all systems.",formNameHint:"Your name from the CPR (civil registration number) register",formNameDisplayName:"Enter another name",firstName:"First name",firstNameHint:"Omit any middle names if you only want one first name to be displayed.",lastName:"Last name",workMail:"AU email address",workMailHint:"Changes to your work mail must reflect your name",workMailScreenreader:"Your work mail is ###MAIL###. You are only able to edit the part before the @.",studentMail:"Student mail address",studentMailScreenreader:"Your student mail address is ###MAIL###. You are only able to edit the part before the @.",privateMail:"Private mail address",privateMailHint:"If you forget your username or password for the university’s systems, we will send an email to your private email address.",countryCode:"Country code",number:"Number",languageLegend:"Select your preferred language for the university’s systems.",danish:"Danish",english:"English",nextOfKinParagraph:"State the name and phone number of a relative so the university can contact the person in question in case of an emergency.",nextOfKinName:"Name",nextOfKinTelephone:"Telephone number",headerPassword:"Change password",save:"Save",saved:"Your changes have been saved",mailNotice:"<strong>Please note that it may take up to 15 minutes for changes to your email address to take effect.</strong>",cancel:"Cancel",validMail:"The email address you have entered is not valid.",validMobile:"The phone number you have entered is not valid.",validName:"Enter a name.",validFirstName:"Enter a first name.",validLastName:"Enter a last name.",emptyMail:"You have not yet added a private email address",emptyMobile:"You have not yet added a mobile number",emptyNok:"You have not yet added information about a relative ",copyAuid:"Copy your AU ID",copyStudentNumber:"Copy your student registration number",headerVacationAbsence:"Holiday and absence",myProfile:"My profile",helpModalHeader:"New features at staff.au.dk",helpModalText:'You can now edit your profile settings, change your password and see your holiday and absence overview at staff.au.dk. Click "My profile" to log in and see your staff profile.',helpModalBtn:"OK, don't show again",profileFor:"Profile menu for"}};var c=n(697),m=n.n(c);class p extends r().Component{constructor(e){super(e),this.state={collapsed:e.collapsed}}componentDidMount(){const{attributes:e}=this.props;e.forEach((e=>{if(e.selector){const t=this.node.querySelector(e.selector);t&&t.setAttribute(e.attr,e.value)}else this.node.setAttribute(e.attr,e.value)}))}render(){const{header:e,level:t,content:n,classNames:a,onClick:i,children:s,dataID:l,headerElement:o}=this.props,{collapsed:d}=this.state;let u="csc-frame au_collapsible";return d&&(u+=" au_collapsed"),a&&(u+=` ${a}`),r().createElement("div",{"data-id":l,ref:e=>{this.node=e},className:u},(()=>t>-1?r().createElement("div",{className:"csc-header",onClick:()=>{this.setState((e=>({collapsed:!e.collapsed})),(()=>{const{collapsed:e}=this.state;i(e,this.node)}))},onKeyUp:()=>{},role:"button",tabIndex:0},(()=>{switch(t){case 0:return o;case 1:return r().createElement("h1",null,e);case 2:return r().createElement("h2",null,e);case 3:return r().createElement("h3",null,e);case 4:return r().createElement("h4",null,e);case 5:return r().createElement("h5",null,e);default:return r().createElement("h6",null,e)}})()):null)(),s||n)}}p.defaultProps={dataID:null,children:null,content:null,header:"",headerElement:null,level:1,classNames:"",onClick:()=>{},attributes:[]},p.propTypes={dataID:m().string,children:m().element,collapsed:m().bool.isRequired,header:m().string,headerElement:m().element,level:m().number,content:m().element,classNames:m().string,onClick:m().func,attributes:m().arrayOf(m().shape({attr:m().string,value:m().string,selector:m().string}))},p.displayName="AUCollapsibleComponent";const g=p,h=({loggedIn:e,loginUri:t,children:n,text:a})=>e?n:r().createElement("a",{className:"nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label","data-icon":"",href:t},a);h.defaultProps={loggedIn:!1,loginUri:"",lang:"da"},h.propTypes={loggedIn:m().bool,loginUri:m().string,children:m().element.isRequired,lang:m().string,text:m().string.isRequired},h.displayName="AUProfileLoginComponent";const f=h;var y,v,b;y=Event.prototype,v=document,b=window,y.composedPath||(y.composedPath=function(){if(this.path)return this.path;let{target:e}=this;for(this.path=[];null!==e.parentNode;)this.path.push(e),e=e.parentNode;return this.path.push(v,b),this.path});const k=r().memo((({lang:e,name:t,auid:n,studentNumber:i,settings:s,changeLanguageUrl:l,logoutUri:o,profileLabels:d})=>{const[u,c]=(0,a.useState)(!1),m=s.map((e=>r().createElement("a",{key:e.url,className:"sub-nav__item",href:e.url},e.text)));return(0,a.useEffect)((()=>{n>0&&!u&&(((e="da")=>{document.querySelectorAll(".copy-to-clipboard__this").forEach((t=>{const n=t.parentNode,a=()=>{const r=t.innerText;(e=>{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)})(r),t.innerText="da"===e?"Kopieret":"Copied",n.removeEventListener("click",a),setTimeout((()=>{t.innerText=r,n.addEventListener("click",a)}),1200)};n.classList.contains("copy-to-clipboard")&&n.addEventListener("click",a)}))})(e),c(!0))})),r().createElement("div",{className:"sub-nav__content theme--normal","aria-labelledby":"profile-menu-toggle"},r().createElement("div",{className:"sub-nav__user"},r().createElement("h2",{className:"sub-nav__user-name"},t),r().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[e].copyAuid,"aria-label":`${d[e].auId}: AU${n}`},`${d[e].auId}: `,r().createElement("span",{className:"copy-to-clipboard__this"},`AU${n}`)),i&&r().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[e].copyStudentNumber,"aria-label":`${d[e].studentNumber}: ${i}`},`${d[e].studentNumber}: `,r().createElement("span",{className:"copy-to-clipboard__this"},i))),r().createElement("hr",null),m,r().createElement("hr",null),l&&r().createElement(r().Fragment,null,r().createElement("a",{className:"sub-nav__item sub-nav__item--icon",href:l,"data-icon":""},d[e].changeLanguage),r().createElement("hr",null)),r().createElement("a",{className:"sub-nav__item sub-nav__item--icon","data-icon":"",href:o},d[e].logout))}));k.defaultProps={studentNumber:null,changeLanguageUrl:null},k.propTypes={lang:m().string.isRequired,name:m().string.isRequired,auid:m().number.isRequired,studentNumber:m().string,settings:m().arrayOf(m().shape({url:m().string.isRequired,text:m().string.isRequired})).isRequired,profileLabels:m().shape({}).isRequired,changeLanguageUrl:m().string,logoutUri:m().string.isRequired},k.displayName="AUProfileWidgetComponent";const E=k,{serviceScopeProfile:N}=window;class L extends r().Component{constructor(e){super(e),this.state={loading:!0,visible:e.visible},this.lazyLoad=this.lazyLoad.bind(this)}componentDidMount(){this.lazyLoad(),window.addEventListener("scroll",(()=>{this.lazyLoad()}))}componentDidUpdate(){this.lazyLoad()}static getDerivedStateFromProps(e,t){return e.visible!==t.visible?{visible:e.visible}:null}lazyLoad(){const{loadingCondition:e,loaded:t,domID:n,onLoad:a}=this.props,{loading:r,visible:i}=this.state,s=document.getElementById(n);!t&&r&&e&&(i||(e=>{if(null===e)return!1;const t=e.getBoundingClientRect();return t.bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)})(s))&&this.setState({loading:!1},(()=>{a()}))}render(){const{className:e,content:t,loaded:n,domID:a,children:i,height:s,init:l}=this.props;return n?i||t:"table"===l?r().createElement("div",{id:a,className:`processing-state processing-state--init-table ${e}`,style:{minHeight:s}}):"box"===l?r().createElement("div",{id:a,className:`processing-state processing-state--init-box ${e}`,style:{minHeight:s}}):r().createElement("div",{id:a,className:`processing-state ${e}`,style:{minHeight:s}})}}L.defaultProps={domID:"au-spinner-component",visible:!1,className:"",content:null,children:null,onLoad:()=>{},height:"auto",init:""},L.propTypes={domID:m().string,visible:m().bool,className:m().string,content:m().element,children:m().element,loaded:m().bool.isRequired,loadingCondition:m().bool.isRequired,onLoad:m().func,height:m().string,init:m().string},L.displayName="AUSpinnerComponent";const S=L,x=({auid:e,contextKey:t,spinner:n,children:i,handleContext:s,handleError:l,loginComponent:o,emptyComponent:d,clearCache:u,loggedIn:c,enrichContext:m})=>{const{auAuth:p}=window,[g,h]=(0,a.useState)(!1),f=()=>{!c&&null==p.getUser()||g||p.setUserContext(e,t,u,(e=>{h(!0),s(e),console.log(`Context for key ${t} has been received and sent to handler`)}),((e,t)=>{h(!0),l(e,t)}),!0,c,m)};return(0,a.useEffect)((()=>{n||f()})),null==o||null!=p.getUser()||c?n?r().createElement(S,{onLoad:f,loadingCondition:!g,loaded:g},i):g?i:d:o};x.defaultProps={auid:0,spinner:!0,loginComponent:null,emptyComponent:null,clearCache:!1,loggedIn:!1,handleError:(e,t)=>console.error(e,t),enrichContext:async e=>e},x.propTypes={auid:m().number,contextKey:m().string,spinner:m().bool,children:m().element.isRequired,handleContext:m().func.isRequired,handleError:m().func.isRequired,loginComponent:m().element,emptyComponent:m().element,clearCache:m().bool,loggedIn:m().bool,enrichContext:m().func.isRequired},x.displayName="AUUserContextComponent";const w=x,C=({lang:e,user:t,settings:n,toggled:a,onToggle:i,onLoad:s,profileLabels:l,logoutUri:o})=>{const{chosenFirstNames:d,chosenLastName:u,auId:c,studentNumber:m}=t,p=r().createElement("div",{className:"sub-nav"+(a?" sub-nav--toggled":"")},r().createElement("button",{id:"profile-menu-toggle",type:"button","aria-label":a?`${l[e].profileFor} ${d} ${u}`:l[e].myProfile,"aria-expanded":a,onClick:()=>{i()}},d||l[e].myProfile),a&&r().createElement(E,{lang:e,name:`${d} ${u}`,auid:c,studentNumber:m,settings:n,profileLabels:l,logoutUri:o}));return 0===c?null:r().createElement(w,{auid:c,loggedIn:!0,contextKey:"staff-user",handleContext:e=>{s(e)},handleError:(e,t)=>{console.log(e,t)},spinner:!1,emptyComponent:p,clearCache:!1},p)};C.propTypes={lang:m().string.isRequired,user:m().shape({chosenFirstNames:m().string.isRequired,chosenLastName:m().string.isRequired,preferredLanguage:m().string.isRequired,auId:m().number.isRequired,studentNumber:m().string.isRequired}).isRequired,auAuth:m().shape({}).isRequired,settings:m().arrayOf(m().shape({url:m().string.isRequired,text:m().string.isRequired})).isRequired,toggled:m().bool.isRequired,onToggle:m().func.isRequired,onLoad:m().func.isRequired,profileLabels:m().shape({}).isRequired,logoutUri:m().string.isRequired},C.displayName="AUProfileAvatar2016Component";const q=C;function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const P=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("a");t.push({url:n.getAttribute("href"),title:n.innerText,className:e.getAttribute("class")})})),t},T=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("div"),a=n.querySelector("h3").innerText,r=n.querySelector("p").innerText,i=n.querySelectorAll("ul > li > a"),s={header:a,text:r,actions:[]};i.forEach((e=>{s.actions.push({url:e.getAttribute("href"),title:e.innerText})})),t.push(s)})),t};class _ extends r().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[],systemLinks:[],loggedIn:!1,showHelp:!1}}componentDidMount(){const{promiseHandler:e,user:t,onLoad:n}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const n=t.querySelectorAll("ul.burger-links > li"),a=t.querySelectorAll("ul.systems > li");this.setState({burgerLinks:P(n),systemLinks:T(a)})})),document.querySelector("body").classList.contains("login")&&fetch(`${window.profileApiUri}/v1/person/isauthenticated`,{method:"GET",credentials:"include"}).then((e=>e.json())).then((e=>{this.setState({loggedIn:e.isAuthenticated},(()=>{n(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){M(e,t,n[t])}))}return e}({},t,{auId:e.auId}))}))})).catch((e=>{console.log(e)}))}componentDidUpdate(){const{active:e}=this.state,t=document.getElementById("fade");t.style.display=e>0?"block":"none",t.style.opacity=0,2===e&&void 0!==window.findWidgetInit&&window.findWidgetInit(".universe-utility .find-container"),3===e&&AU.alphabox.init()}render(){const{lang:e,user:t,onLoad:n,universeLabels:a,profileLabels:i}=this.props,{active:l,burgerLinks:o,systemLinks:d,loggedIn:u,showHelp:c}=this.state,m=(e=>{let t=document.cookie,n=t.indexOf(" mystaff-help=");if(-1===n&&(n=t.indexOf("mystaff-help=")),-1===n)t=null;else{n=t.indexOf("=",n)+1;let e=t.indexOf(";",n);-1===e&&(e=t.length),t=decodeURI(t.substring(n,e))}return t})(),p=document.querySelector("body").classList.contains("login"),h=!m&&!u&&document.querySelector("body").classList.contains("help"),y=o.map((e=>r().createElement("li",{key:e.title,className:e.className},r().createElement("a",{href:e.url},e.title)))),v=d.map((e=>r().createElement("li",{key:e.header},r().createElement(g,{collapsed:!0,header:e.header,level:3},r().createElement("div",null,r().createElement("p",null,e.text),r().createElement("ul",{className:"resetlist"},e.actions.map((e=>r().createElement("li",{key:e.url},r().createElement("a",{href:e.url},e.title))))))))));return[r().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},r().createElement("div",null,r().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:a[e].staffTitleLink}}),r().createElement("div",{className:4===l?"avatar active":"avatar"},p&&r().createElement(r().Fragment,null,r().createElement(f,{text:i[e].myProfile,loggedIn:u,loginUri:`${window.profileApiUri}/auth/login?redirectUri=${window.location.href}`},r().createElement(q,{lang:e,user:t,settings:[{url:`${window.profileApiUri}/${e}/profile`,text:i[e].headerContainer},{url:`${window.profileApiUri}/${e}/password`,text:i[e].headerPassword},{url:`${window.profileApiUri}/${e}/holiday`,text:i[e].headerVacationAbsence}],profileLabels:i,toggled:4===l,onToggle:()=>{this.setState((e=>({active:4===e.active?0:4})))},onLoad:n,logoutUri:`${window.profileApiUri}/auth/logout?redirectUri=${window.location.href}`})),h&&r().createElement(r().Fragment,null,r().createElement("button",{type:"button",className:"btn-help","aria-label":"Hjælp / help",onClick:()=>{this.setState({showHelp:!0})}},""),c&&s().createPortal(r().createElement("div",{className:"help-modal"},r().createElement("h2",null,i[e].helpModalHeader),r().createElement("p",null,i[e].helpModalText),r().createElement("button",{type:"button",className:"button bg-staff",onClick:()=>{((e,t,n=null,a=null,r=";path=/;domain=au.dk")=>{let i=encodeURI(!0);if(null!=a){const e=new Date;e.setDate(e.getDate()+a),i=`${i}; expires=${e.toUTCString()}`}else null!=n&&(i=`${i}; max-age=${n}`);document.cookie=`${e}=${i}${r}`})("mystaff-help",0,null,365,";path=/;domain=medarbejdere.au.dk"),this.setState({showHelp:!1})}},i[e].helpModalBtn)),document.querySelector(".main"),"modal")))),c&&r().createElement("div",{key:"overlay",className:"help-modal-overlay",role:"button",onClick:()=>{this.setState({showHelp:!1})}}),r().createElement("ul",{className:"resetlist universe-icons"},r().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:a[e].mainPageLink}}),r().createElement("li",{className:1===l?"active":null},r().createElement("button",{type:"button",className:"btn-system",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"System")),r().createElement("li",{className:2===l?"active":null},r().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Find")),r().createElement("li",{className:3===l?"active":null},r().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:3===e.active?0:3})))}},"Menu"))))),r().createElement("div",{key:1,className:"universe-utility"+(1===l?" active":"")},r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},v))),r().createElement("div",{key:2,className:"universe-utility"+(2===l?" active":"")},r().createElement("div",{className:"find-container au-map"})),r().createElement("div",{key:3,className:"universe-utility"+(3===l?" active":"")},r().createElement("div",{className:"au_alphabox",id:"au_alphabox_staff_utility"}),r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},y)))]}}_.propTypes={lang:m().string.isRequired,user:m().shape({}).isRequired,promiseHandler:m().func.isRequired,onLoad:m().func.isRequired,universeLabels:m().shape({}).isRequired,profileLabels:m().shape({}).isRequired},_.displayName="StaffTopComponent";const U=_,I=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("a");t.push({url:n.getAttribute("href"),title:n.innerText,className:e.getAttribute("class")})})),t};class R extends r().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[]}}componentDidMount(){const{promiseHandler:e}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const n=t.querySelectorAll("ul.burger-links > li");this.setState({burgerLinks:I(n)})}))}componentDidUpdate(){const{active:e}=this.state,t=document.getElementById("fade");t.style.display=e>0?"block":"none",t.style.opacity=0,1===e&&void 0!==window.findWidgetInit&&window.findWidgetInit(".universe-utility .find-container"),2===e&&AU.alphabox.init()}render(){const{lang:e,universeLabels:t}=this.props,{active:n,burgerLinks:a}=this.state,i=a.map((e=>r().createElement("li",{key:e.title,className:e.className},r().createElement("a",{href:e.url},e.title))));return[r().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},r().createElement("div",null,r().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:t[e].studentTitleLink}}),r().createElement("ul",{className:"resetlist universe-icons"},r().createElement("li",{className:"mitstudie"},r().createElement("a",{href:t[e].mitstudieUrl},t[e].mitstudieText)),r().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:t[e].mainPageLink}}),r().createElement("li",{className:1===n?"active":null},r().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"Find")),r().createElement("li",{className:2===n?"active":null},r().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Menu"))))),r().createElement("div",{key:1,className:"universe-utility"+(1===n?" active":"")},r().createElement("div",{className:"find-container au-map"})),r().createElement("div",{key:2,className:"universe-utility"+(2===n?" active":"")},r().createElement("div",{className:"au_alphabox",id:"au_alphabox_student_utility"}),r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},i)))]}}R.propTypes={lang:m().string.isRequired,promiseHandler:m().func.isRequired,universeLabels:m().shape({}).isRequired},R.displayName="StudentTopComponent";const A=R,O=()=>{const[e,t]=(0,a.useState)({chosenFirstNames:"",chosenLastName:"",preferredLanguage:"",auId:0}),{auAuth:n}=window,i=document.querySelector("html").getAttribute("lang"),s=document.querySelector("body"),{universeGlobalContentPath:l}=window;let c=r().createElement("div",null);return s.classList.contains("staff")&&(c=r().createElement(U,{lang:i,user:e,promiseHandler:e=>{o().get(l).then((t=>{e(t.data)}))},onLoad:e=>{t(e)},auAuth:n,universeLabels:d,profileLabels:u})),s.classList.contains("student")&&(c=r().createElement(A,{lang:i,user:e,promiseHandler:e=>{o().get(l).then((t=>{e(t.data)}))},universeLabels:d,profileLabels:u})),c};O.displayName="UniverseContainerComponent";const D=O;s().render(r().createElement(D,null),document.querySelector(".universeheader"))},703:(e,t,n)=>{"use strict";var a=n(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,s){if(s!==a){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},376:t=>{"use strict";t.exports=e},383:e=>{"use strict";e.exports=t},949:e=>{"use strict";e.exports=n}},r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={exports:{}};return a[e](t,t.exports,i),t.exports}return i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(168)})()}));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("axios"),require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define(["axios","react","react-dom"],t);else{var n="object"==typeof exports?t(require("axios"),require("react"),require("react-dom")):t(e.axios,e.React,e.ReactDOM);for(var a in n)("object"==typeof exports?exports:e)[a]=n[a]}}(self,(function(e,t,n){return(()=>{var a={168:(e,t,n)=>{"use strict";n.r(t);var a=n(383),r=n.n(a),i=n(949),s=n.n(i),l=n(376),o=n.n(l);const d={da:{staffTitleLink:'<a href="//medarbejdere.au.dk"><strong>medarbejdere</strong>.au.dk</a>',studentTitleLink:'<a href="//studerende.au.dk"><strong>studerende</strong>.au.dk</a>',mainPageLink:'<a href="//www.au.dk">au.dk</a>',iconSystems:"Systemer",iconPin:"Personer og bygninger",iconBurger:"Menu",mitstudieText:"mitstudie",mitstudieUrl:"https://mitstudie.au.dk"},en:{staffTitleLink:'<a href="//staff.au.dk"><strong>staff</strong>.au.dk</a>',studentTitleLink:'<a href="//students.au.dk"><strong>students</strong>.au.dk</a>',mainPageLink:'<a href="//international.au.dk">au.dk</a>',iconSystems:"Systems",iconPin:"Persons and buildings",iconBurger:"Menu",mitstudieText:"mystudies.au.dk",mitstudieUrl:"https://mystudies.au.dk/"}},u={da:{login:"Log ind",logout:"Log ud",edit:"Ret",auId:"AU-id",studentNumber:"Studienummer",changeLanguage:"Change language",headerContainer:"Profilindstillinger",headerName:"Profilnavn",headerMail:"Mailadresser",headerMobile:"Privat mobilnummer",headerLanguage:"Sprog i systemer",headerNextOfKin:"Pårørende",otherMail:"Se øvrige AU-mailadresser",languageIn:"Du har valgt dansk som standardsprog",legendName:"Vælg dit profilnavn til universitetets systemer",legendNameHint:"Vær opmærksom på, at ændringer ikke slår igennem i alle systemer.",formNameHint:"Dit navn fra CPR-registeret",formNameDisplayName:"Skriv et andet navn",firstName:"Fornavn",firstNameHint:"Undlad mellemnavne, hvis du kun vil vises med ét fornavn",lastName:"Efternavn",workMail:"AU-mailadresse",workMailHint:"Ændringer i din medarbejder-mailadresse skal afspejle dit navn",workMailScreenreader:"Din medarbejder-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.",studentMail:"Studie-mailadresse",studentMailScreenreader:"Din studie-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.",privateMail:"Privat mailadresse",privateMailHint:"Vi sender en mail til din private mailadresse, hvis du glemmer dit brugernavn eller adgangskode til universitetets systemer.",countryCode:"Landekode",number:"Nummer",languageLegend:"Vælg dit foretrukne sprog til universitetets systemer ",danish:"Dansk",english:"Engelsk",nextOfKinParagraph:"Du kan oplyse navn og telefonnummer på en pårørende, så universitetet kan kontakte vedkommende i et nødstilfælde.",nextOfKinName:"Navn",nextOfKinTelephone:"Telefonnummer",headerPassword:"Skift adgangskode",save:"Gem",saved:"Dine ændringer er blevet gemt.",mailNotice:"<strong>Vær opmærksom på, at der kan gå op til 15 minutter, før ændringer til din e-mailadresse slår igennem.</strong>",cancel:"Annuller",validMail:"Mailadressen du har skrevet er ikke gyldig.",validMailPrivate:"Mailadressen du har skrevet er ikke gyldig, eller du har forsøgt at benytte din AU-mailadresse som privat mailadresse.",validMobile:"Telefonnummeret du har skrevet er ikke gyldigt.",validName:"Skriv et navn.",validFirstName:"Skriv et fornavn.",validLastName:"Skriv et efternavn.",emptyMail:"Du har endnu ikke tilføjet en privat mailadresse",emptyMobile:"Du har endnu ikke tilføjet et mobilnummer",emptyNok:"Du har endnu ikke tilføjet en pårørende",copyAuid:"Kopiér dit AU-id",copyStudentNumber:"Kopiér dit studienummer",headerVacationAbsence:"Ferie og fravær",myProfile:"Min profil",helpModalHeader:"Nyt: Medarbejderprofil",helpModalText:'Nu kan du rette dine profiloplysninger, skifte adgangskode og se din ferie- og fraværsoversigt på medarbejdere.au.dk. Klik på "Min profil" for at logge ind og se din medarbejderprofil.',helpModalBtn:"Ok, vis ikke igen",profileFor:"Profilmenu for",changeLanguageButton:"Switch to English"},en:{login:"Sign in",logout:"Sign out",edit:"Edit",auId:"AU ID",studentNumber:"Student registration number",changeLanguage:"Skift sprog",headerContainer:"Profile settings",headerName:"Profile name",headerMail:"Email addresses",headerMobile:"Private mobile phone number",headerLanguage:"System language",headerNextOfKin:"Relatives",otherMail:"See other AU email addresses",languageIn:"You have selected English as the standard language",legendName:"Select your profile name for the university's systems",legendNameHint:"Please note that changes will not take effect in all systems.",formNameHint:"Your name from the CPR (civil registration number) register",formNameDisplayName:"Enter another name",firstName:"First name",firstNameHint:"Omit any middle names if you only want one first name to be displayed.",lastName:"Last name",workMail:"AU email address",workMailHint:"Changes to your work mail must reflect your name",workMailScreenreader:"Your work mail is ###MAIL###. You are only able to edit the part before the @.",studentMail:"Student mail address",studentMailScreenreader:"Your student mail address is ###MAIL###. You are only able to edit the part before the @.",privateMail:"Private mail address",privateMailHint:"If you forget your username or password for the university’s systems, we will send an email to your private email address.",countryCode:"Country code",number:"Number",languageLegend:"Select your preferred language for the university’s systems.",danish:"Danish",english:"English",nextOfKinParagraph:"State the name and phone number of a relative so the university can contact the person in question in case of an emergency.",nextOfKinName:"Name",nextOfKinTelephone:"Telephone number",headerPassword:"Change password",save:"Save",saved:"Your changes have been saved",mailNotice:"<strong>Please note that it may take up to 15 minutes for changes to your email address to take effect.</strong>",cancel:"Cancel",validMail:"The email address you have entered is not valid.",validMailPrivate:"The email address you have entered is not valid, or you have tried to use your AU email address as your private email address.",validMobile:"The phone number you have entered is not valid.",validName:"Enter a name.",validFirstName:"Enter a first name.",validLastName:"Enter a last name.",emptyMail:"You have not yet added a private email address",emptyMobile:"You have not yet added a mobile number",emptyNok:"You have not yet added information about a relative ",copyAuid:"Copy your AU ID",copyStudentNumber:"Copy your student registration number",headerVacationAbsence:"Holiday and absence",myProfile:"My profile",helpModalHeader:"New features at staff.au.dk",helpModalText:'You can now edit your profile settings, change your password and see your holiday and absence overview at staff.au.dk. Click "My profile" to log in and see your staff profile.',helpModalBtn:"OK, don't show again",profileFor:"Profile menu for",changeLanguageButton:"Skift til dansk"}};var c=n(697),m=n.n(c);class p extends r().Component{constructor(e){super(e),this.state={collapsed:e.collapsed}}componentDidMount(){const{attributes:e}=this.props;e.forEach((e=>{if(e.selector){const t=this.node.querySelector(e.selector);t&&t.setAttribute(e.attr,e.value)}else this.node.setAttribute(e.attr,e.value)}))}render(){const{header:e,level:t,content:n,classNames:a,onClick:i,children:s,dataID:l,headerElement:o}=this.props,{collapsed:d}=this.state;let u="csc-frame au_collapsible";return d&&(u+=" au_collapsed"),a&&(u+=` ${a}`),r().createElement("div",{"data-id":l,ref:e=>{this.node=e},className:u},(()=>t>-1?r().createElement("div",{className:"csc-header",onClick:()=>{this.setState((e=>({collapsed:!e.collapsed})),(()=>{const{collapsed:e}=this.state;i(e,this.node)}))},onKeyUp:()=>{},role:"button",tabIndex:0},(()=>{switch(t){case 0:return o;case 1:return r().createElement("h1",null,e);case 2:return r().createElement("h2",null,e);case 3:return r().createElement("h3",null,e);case 4:return r().createElement("h4",null,e);case 5:return r().createElement("h5",null,e);default:return r().createElement("h6",null,e)}})()):null)(),s||n)}}p.defaultProps={dataID:null,children:null,content:null,header:"",headerElement:null,level:1,classNames:"",onClick:()=>{},attributes:[]},p.propTypes={dataID:m().string,children:m().element,collapsed:m().bool.isRequired,header:m().string,headerElement:m().element,level:m().number,content:m().element,classNames:m().string,onClick:m().func,attributes:m().arrayOf(m().shape({attr:m().string,value:m().string,selector:m().string}))},p.displayName="AUCollapsibleComponent";const g=p,h=({loggedIn:e,loginUri:t,children:n,text:a})=>e?n:r().createElement("a",{className:"nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label","data-icon":"",href:t},a);h.defaultProps={loggedIn:!1,loginUri:"",lang:"da"},h.propTypes={loggedIn:m().bool,loginUri:m().string,children:m().element.isRequired,lang:m().string,text:m().string.isRequired},h.displayName="AUProfileLoginComponent";const f=h;var y,v,b;y=Event.prototype,v=document,b=window,y.composedPath||(y.composedPath=function(){if(this.path)return this.path;let{target:e}=this;for(this.path=[];null!==e.parentNode;)this.path.push(e),e=e.parentNode;return this.path.push(v,b),this.path});const k=r().memo((({lang:e,name:t,auid:n,studentNumber:i,settings:s,changeLanguageUrl:l,logoutUri:o,profileLabels:d})=>{const[u,c]=(0,a.useState)(!1),m=s.map((e=>r().createElement("a",{key:e.url,className:"sub-nav__item",href:e.url},e.text)));return(0,a.useEffect)((()=>{n>0&&!u&&(((e="da")=>{document.querySelectorAll(".copy-to-clipboard__this").forEach((t=>{const n=t.parentNode,a=()=>{const r=t.innerText;(e=>{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)})(r),t.innerText="da"===e?"Kopieret":"Copied",n.removeEventListener("click",a),setTimeout((()=>{t.innerText=r,n.addEventListener("click",a)}),1200)};n.classList.contains("copy-to-clipboard")&&n.addEventListener("click",a)}))})(e),c(!0))})),r().createElement("div",{className:"sub-nav__content theme--normal","aria-labelledby":"profile-menu-toggle"},r().createElement("div",{className:"sub-nav__user"},r().createElement("h2",{className:"sub-nav__user-name"},t),r().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[e].copyAuid,"aria-label":`${d[e].auId}: AU${n}`},`${d[e].auId}: `,r().createElement("span",{className:"copy-to-clipboard__this"},`AU${n}`)),i&&r().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[e].copyStudentNumber,"aria-label":`${d[e].studentNumber}: ${i}`},`${d[e].studentNumber}: `,r().createElement("span",{className:"copy-to-clipboard__this"},i))),r().createElement("hr",null),m,r().createElement("hr",null),l&&r().createElement(r().Fragment,null,r().createElement("a",{className:"sub-nav__item sub-nav__item--icon",href:l,"data-icon":""},d[e].changeLanguage),r().createElement("hr",null)),r().createElement("a",{className:"sub-nav__item sub-nav__item--icon","data-icon":"",href:o},d[e].logout))}));k.defaultProps={studentNumber:null,changeLanguageUrl:null},k.propTypes={lang:m().string.isRequired,name:m().string.isRequired,auid:m().number.isRequired,studentNumber:m().string,settings:m().arrayOf(m().shape({url:m().string.isRequired,text:m().string.isRequired})).isRequired,profileLabels:m().shape({}).isRequired,changeLanguageUrl:m().string,logoutUri:m().string.isRequired},k.displayName="AUProfileWidgetComponent";const E=k,{serviceScopeProfile:N}=window;class L extends r().Component{constructor(e){super(e),this.state={loading:!0,visible:e.visible},this.lazyLoad=this.lazyLoad.bind(this)}componentDidMount(){this.lazyLoad(),window.addEventListener("scroll",(()=>{this.lazyLoad()}))}componentDidUpdate(){this.lazyLoad()}static getDerivedStateFromProps(e,t){return e.visible!==t.visible?{visible:e.visible}:null}lazyLoad(){const{loadingCondition:e,loaded:t,domID:n,onLoad:a}=this.props,{loading:r,visible:i}=this.state,s=document.getElementById(n);!t&&r&&e&&(i||(e=>{if(null===e)return!1;const t=e.getBoundingClientRect();return t.bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)})(s))&&this.setState({loading:!1},(()=>{a()}))}render(){const{className:e,content:t,loaded:n,domID:a,children:i,height:s,init:l}=this.props;return n?i||t:"table"===l?r().createElement("div",{id:a,className:`processing-state processing-state--init-table ${e}`,style:{minHeight:s}}):"box"===l?r().createElement("div",{id:a,className:`processing-state processing-state--init-box ${e}`,style:{minHeight:s}}):r().createElement("div",{id:a,className:`processing-state ${e}`,style:{minHeight:s}})}}L.defaultProps={domID:"au-spinner-component",visible:!1,className:"",content:null,children:null,onLoad:()=>{},height:"auto",init:""},L.propTypes={domID:m().string,visible:m().bool,className:m().string,content:m().element,children:m().element,loaded:m().bool.isRequired,loadingCondition:m().bool.isRequired,onLoad:m().func,height:m().string,init:m().string},L.displayName="AUSpinnerComponent";const S=L,x=({auid:e,contextKey:t,spinner:n,children:i,handleContext:s,handleError:l,loginComponent:o,emptyComponent:d,clearCache:u,loggedIn:c,enrichContext:m})=>{const{auAuth:p}=window,[g,h]=(0,a.useState)(!1),f=()=>{!c&&null==p.getUser()||g||p.setUserContext(e,t,u,(e=>{h(!0),s(e),console.log(`Context for key ${t} has been received and sent to handler`)}),((e,t)=>{h(!0),l(e,t)}),!0,c,m)};return(0,a.useEffect)((()=>{n||f()})),null==o||null!=p.getUser()||c?n?r().createElement(S,{onLoad:f,loadingCondition:!g,loaded:g},i):g?i:d:o};x.defaultProps={auid:0,spinner:!0,loginComponent:null,emptyComponent:null,clearCache:!1,loggedIn:!1,handleError:(e,t)=>console.error(e,t),enrichContext:async e=>e},x.propTypes={auid:m().number,contextKey:m().string,spinner:m().bool,children:m().element.isRequired,handleContext:m().func.isRequired,handleError:m().func.isRequired,loginComponent:m().element,emptyComponent:m().element,clearCache:m().bool,loggedIn:m().bool,enrichContext:m().func.isRequired},x.displayName="AUUserContextComponent";const w=x,C=({lang:e,user:t,settings:n,toggled:a,onToggle:i,onLoad:s,profileLabels:l,logoutUri:o})=>{const{chosenFirstNames:d,chosenLastName:u,auId:c,studentNumber:m}=t,p=r().createElement("div",{className:"sub-nav"+(a?" sub-nav--toggled":"")},r().createElement("button",{id:"profile-menu-toggle",type:"button","aria-label":a?`${l[e].profileFor} ${d} ${u}`:l[e].myProfile,"aria-expanded":a,onClick:()=>{i()}},d||l[e].myProfile),a&&r().createElement(E,{lang:e,name:`${d} ${u}`,auid:c,studentNumber:m,settings:n,profileLabels:l,logoutUri:o}));return 0===c?null:r().createElement(w,{auid:c,loggedIn:!0,contextKey:"staff-user",handleContext:e=>{s(e)},handleError:(e,t)=>{console.log(e,t)},spinner:!1,emptyComponent:p,clearCache:!1},p)};C.propTypes={lang:m().string.isRequired,user:m().shape({chosenFirstNames:m().string.isRequired,chosenLastName:m().string.isRequired,preferredLanguage:m().string.isRequired,auId:m().number.isRequired,studentNumber:m().string.isRequired}).isRequired,auAuth:m().shape({}).isRequired,settings:m().arrayOf(m().shape({url:m().string.isRequired,text:m().string.isRequired})).isRequired,toggled:m().bool.isRequired,onToggle:m().func.isRequired,onLoad:m().func.isRequired,profileLabels:m().shape({}).isRequired,logoutUri:m().string.isRequired},C.displayName="AUProfileAvatar2016Component";const M=C;function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const P=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("a");t.push({url:n.getAttribute("href"),title:n.innerText,className:e.getAttribute("class")})})),t},T=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("div"),a=n.querySelector("h3").innerText,r=n.querySelector("p").innerText,i=n.querySelectorAll("ul > li > a"),s={header:a,text:r,actions:[]};i.forEach((e=>{s.actions.push({url:e.getAttribute("href"),title:e.innerText})})),t.push(s)})),t};class _ extends r().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[],systemLinks:[],loggedIn:!1,showHelp:!1}}componentDidMount(){const{promiseHandler:e,user:t,onLoad:n}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const n=t.querySelectorAll("ul.burger-links > li"),a=t.querySelectorAll("ul.systems > li");this.setState({burgerLinks:P(n),systemLinks:T(a)})})),document.querySelector("body").classList.contains("login")&&fetch(`${window.profileApiUri}/v1/person/isauthenticated`,{method:"GET",credentials:"include"}).then((e=>e.json())).then((e=>{this.setState({loggedIn:e.isAuthenticated},(()=>{n(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){q(e,t,n[t])}))}return e}({},t,{auId:e.auId}))}))})).catch((e=>{console.log(e)}))}componentDidUpdate(){const{active:e}=this.state,t=document.getElementById("fade");t.style.display=e>0?"block":"none",t.style.opacity=0,2===e&&void 0!==window.findWidgetInit&&window.findWidgetInit(".universe-utility .find-container"),3===e&&AU.alphabox.init()}render(){const{lang:e,user:t,onLoad:n,universeLabels:a,profileLabels:i}=this.props,{active:l,burgerLinks:o,systemLinks:d,loggedIn:u,showHelp:c}=this.state,m=(e=>{let t=document.cookie,n=t.indexOf(" mystaff-help=");if(-1===n&&(n=t.indexOf("mystaff-help=")),-1===n)t=null;else{n=t.indexOf("=",n)+1;let e=t.indexOf(";",n);-1===e&&(e=t.length),t=decodeURI(t.substring(n,e))}return t})(),p=document.querySelector("body").classList.contains("login"),h=!m&&!u&&document.querySelector("body").classList.contains("help"),y=o.map((e=>r().createElement("li",{key:e.title,className:e.className},r().createElement("a",{href:e.url},e.title)))),v=d.map((e=>r().createElement("li",{key:e.header},r().createElement(g,{collapsed:!0,header:e.header,level:3},r().createElement("div",null,r().createElement("p",null,e.text),r().createElement("ul",{className:"resetlist"},e.actions.map((e=>r().createElement("li",{key:e.url},r().createElement("a",{href:e.url},e.title))))))))));return[r().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},r().createElement("div",null,r().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:a[e].staffTitleLink}}),r().createElement("div",{className:4===l?"avatar active":"avatar"},p&&r().createElement(r().Fragment,null,r().createElement(f,{text:i[e].myProfile,loggedIn:u,loginUri:`${window.profileApiUri}/auth/login?redirectUri=${window.location.href}`},r().createElement(M,{lang:e,user:t,settings:[{url:`${window.profileApiUri}/${e}/profile`,text:i[e].headerContainer},{url:`${window.profileApiUri}/${e}/password`,text:i[e].headerPassword},{url:`${window.profileApiUri}/${e}/holiday`,text:i[e].headerVacationAbsence}],profileLabels:i,toggled:4===l,onToggle:()=>{this.setState((e=>({active:4===e.active?0:4})))},onLoad:n,logoutUri:`${window.profileApiUri}/auth/logout?redirectUri=${window.location.href}`})),h&&r().createElement(r().Fragment,null,r().createElement("button",{type:"button",className:"btn-help","aria-label":"Hjælp / help",onClick:()=>{this.setState({showHelp:!0})}},""),c&&s().createPortal(r().createElement("div",{className:"help-modal"},r().createElement("h2",null,i[e].helpModalHeader),r().createElement("p",null,i[e].helpModalText),r().createElement("button",{type:"button",className:"button bg-staff",onClick:()=>{((e,t,n=null,a=null,r=";path=/;domain=au.dk")=>{let i=encodeURI(!0);if(null!=a){const e=new Date;e.setDate(e.getDate()+a),i=`${i}; expires=${e.toUTCString()}`}else null!=n&&(i=`${i}; max-age=${n}`);document.cookie=`${e}=${i}${r}`})("mystaff-help",0,null,365,";path=/;domain=medarbejdere.au.dk"),this.setState({showHelp:!1})}},i[e].helpModalBtn)),document.querySelector(".main"),"modal")))),c&&r().createElement("div",{key:"overlay",className:"help-modal-overlay",role:"button",onClick:()=>{this.setState({showHelp:!1})}}),r().createElement("ul",{className:"resetlist universe-icons"},r().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:a[e].mainPageLink}}),r().createElement("li",{className:1===l?"active":null},r().createElement("button",{type:"button",className:"btn-system",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"System")),r().createElement("li",{className:2===l?"active":null},r().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Find")),r().createElement("li",{className:3===l?"active":null},r().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:3===e.active?0:3})))}},"Menu"))))),r().createElement("div",{key:1,className:"universe-utility"+(1===l?" active":"")},r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},v))),r().createElement("div",{key:2,className:"universe-utility"+(2===l?" active":"")},r().createElement("div",{className:"find-container au-map"})),r().createElement("div",{key:3,className:"universe-utility"+(3===l?" active":"")},r().createElement("div",{className:"au_alphabox",id:"au_alphabox_staff_utility"}),r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},y)))]}}_.propTypes={lang:m().string.isRequired,user:m().shape({}).isRequired,promiseHandler:m().func.isRequired,onLoad:m().func.isRequired,universeLabels:m().shape({}).isRequired,profileLabels:m().shape({}).isRequired},_.displayName="StaffTopComponent";const U=_,A=e=>{const t=[];return e.forEach((e=>{const n=e.querySelector("a");t.push({url:n.getAttribute("href"),title:n.innerText,className:e.getAttribute("class")})})),t};class I extends r().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[]}}componentDidMount(){const{promiseHandler:e}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const n=t.querySelectorAll("ul.burger-links > li");this.setState({burgerLinks:A(n)})}))}componentDidUpdate(){const{active:e}=this.state,t=document.getElementById("fade");t.style.display=e>0?"block":"none",t.style.opacity=0,1===e&&void 0!==window.findWidgetInit&&window.findWidgetInit(".universe-utility .find-container"),2===e&&AU.alphabox.init()}render(){const{lang:e,universeLabels:t}=this.props,{active:n,burgerLinks:a}=this.state,i=a.map((e=>r().createElement("li",{key:e.title,className:e.className},r().createElement("a",{href:e.url},e.title))));return[r().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},r().createElement("div",null,r().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:t[e].studentTitleLink}}),r().createElement("ul",{className:"resetlist universe-icons"},r().createElement("li",{className:"mitstudie"},r().createElement("a",{href:t[e].mitstudieUrl},t[e].mitstudieText)),r().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:t[e].mainPageLink}}),r().createElement("li",{className:1===n?"active":null},r().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"Find")),r().createElement("li",{className:2===n?"active":null},r().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Menu"))))),r().createElement("div",{key:1,className:"universe-utility"+(1===n?" active":"")},r().createElement("div",{className:"find-container au-map"})),r().createElement("div",{key:2,className:"universe-utility"+(2===n?" active":"")},r().createElement("div",{className:"au_alphabox",id:"au_alphabox_student_utility"}),r().createElement("div",{className:"universe-utility-links"},r().createElement("ul",{className:"resetlist"},i)))]}}I.propTypes={lang:m().string.isRequired,promiseHandler:m().func.isRequired,universeLabels:m().shape({}).isRequired},I.displayName="StudentTopComponent";const R=I,O=()=>{const[e,t]=(0,a.useState)({chosenFirstNames:"",chosenLastName:"",preferredLanguage:"",auId:0}),{auAuth:n}=window,i=document.querySelector("html").getAttribute("lang"),s=document.querySelector("body"),{universeGlobalContentPath:l}=window;let c=r().createElement("div",null);return s.classList.contains("staff")&&(c=r().createElement(U,{lang:i,user:e,promiseHandler:e=>{o().get(l).then((t=>{e(t.data)}))},onLoad:e=>{t(e)},auAuth:n,universeLabels:d,profileLabels:u})),s.classList.contains("student")&&(c=r().createElement(R,{lang:i,user:e,promiseHandler:e=>{o().get(l).then((t=>{e(t.data)}))},universeLabels:d,profileLabels:u})),c};O.displayName="UniverseContainerComponent";const D=O;s().render(r().createElement(D,null),document.querySelector(".universeheader"))},703:(e,t,n)=>{"use strict";var a=n(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,s){if(s!==a){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},376:t=>{"use strict";t.exports=e},383:e=>{"use strict";e.exports=t},949:e=>{"use strict";e.exports=n}},r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={exports:{}};return a[e](t,t.exports,i),t.exports}return i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(168)})()}));
2
2
  //# sourceMappingURL=universe.js.map