@aarhus-university/au-lib-react-components 10.0.9 → 10.0.11

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 (84) hide show
  1. package/.eslintrc.js +44 -44
  2. package/README.md +19 -19
  3. package/babel.config.js +7 -7
  4. package/build/umd/all.css +2 -2
  5. package/build/umd/all.js +1 -1
  6. package/build/umd/alphabox.js +1 -1
  7. package/build/umd/databox.js +1 -1
  8. package/build/umd/diagramme.js +1 -1
  9. package/build/umd/flowbox.js +1 -1
  10. package/build/umd/universe.js +1 -1
  11. package/package.json +67 -67
  12. package/src/components/AUAlertComponent.tsx +70 -70
  13. package/src/components/AUAutoSuggestComponent.js +158 -158
  14. package/src/components/AUCalendarComponent.tsx +493 -493
  15. package/src/components/AUContentToggleComponent.tsx +33 -33
  16. package/src/components/AUDatepickerComponent.tsx +117 -117
  17. package/src/components/AUMobilePrefixComponent.tsx +15 -15
  18. package/src/components/AUModalComponent.tsx +84 -84
  19. package/src/components/AUReceiptComponent.tsx +33 -33
  20. package/src/components/AUSpinnerComponent.tsx +91 -91
  21. package/src/components/AUSubNavComponent.tsx +38 -38
  22. package/src/components/AUSubmitButtonContainerComponent.tsx +31 -31
  23. package/src/components/AUTabbedContentComponent.tsx +83 -145
  24. package/src/components/AUTableComponent.tsx +24 -24
  25. package/src/components/AUToastComponent.tsx +103 -103
  26. package/src/components/AUToolbarComponent.tsx +45 -45
  27. package/src/components/profile/AUProfileActions.js +128 -128
  28. package/src/components/profile/AUProfileAvatarComponent.js +83 -83
  29. package/src/components/profile/AUProfileAvatarV2Component.js +91 -91
  30. package/src/components/profile/AUProfileAvatarV3Component.tsx +42 -42
  31. package/src/components/profile/AUProfileContainerComponent.js +283 -283
  32. package/src/components/profile/AUProfileHooks.js +30 -30
  33. package/src/components/profile/AUProfileItemComponent.js +54 -54
  34. package/src/components/profile/AUProfileLanguageComponent.js +131 -131
  35. package/src/components/profile/AUProfileLoginComponent.tsx +26 -26
  36. package/src/components/profile/AUProfileMailComponent.js +307 -307
  37. package/src/components/profile/AUProfileMobileComponent.js +164 -164
  38. package/src/components/profile/AUProfileNameComponent.js +253 -253
  39. package/src/components/profile/AUProfileNextOfKinComponent.js +216 -216
  40. package/src/components/profile/AUProfileReducer.js +230 -230
  41. package/src/components/profile/AUProfileWidgetComponent.js +95 -95
  42. package/src/components/profile/AUProfileWidgetV2Component.js +116 -116
  43. package/src/components/profile/AUProfileWidgetV3Component.tsx +122 -122
  44. package/src/components/wrapping/AUEmbedComponent.js +47 -47
  45. package/src/layout-2016/components/alphabox/AlphaBoxComponent.js +143 -143
  46. package/src/layout-2016/components/alphabox/AlphaBoxContentComponent.js +136 -136
  47. package/src/layout-2016/components/common/AUCollapsibleComponent.js +152 -152
  48. package/src/layout-2016/components/common/AUSpinnerComponent.js +103 -103
  49. package/src/layout-2016/components/databox/DataBoxAlphabetComponent.js +144 -144
  50. package/src/layout-2016/components/databox/DataBoxAssociationComponent.js +122 -122
  51. package/src/layout-2016/components/databox/DataBoxButtonComponent.js +157 -157
  52. package/src/layout-2016/components/databox/DataBoxComponent.js +297 -297
  53. package/src/layout-2016/components/databox/DataBoxGroupingComponent.js +64 -64
  54. package/src/layout-2016/components/databox/DataBoxSearchResultComponent.js +36 -36
  55. package/src/layout-2016/components/databox/DataBoxStackedAssociationComponent.js +54 -54
  56. package/src/layout-2016/components/databox/DataBoxSuggestionComponent.js +39 -39
  57. package/src/layout-2016/components/diagramme/AUDiagrammeComponent.js +309 -309
  58. package/src/layout-2016/components/flowbox/FlowBoxComponent.js +126 -126
  59. package/src/layout-2016/components/flowbox/FlowBoxPhoneComponent.js +104 -104
  60. package/src/layout-2016/components/profile/AUProfileAvatar2016Component.js +103 -103
  61. package/src/layout-2016/components/universe/StaffTopComponent.js +363 -363
  62. package/src/layout-2016/components/universe/StudentTopComponent.js +137 -137
  63. package/src/layout-2016/components/universe/UniverseContainerComponent.js +65 -65
  64. package/src/layout-2016/lib/all.js +3 -3
  65. package/src/layout-2016/lib/au-alphabox.js +100 -100
  66. package/src/layout-2016/lib/au-databox.js +400 -400
  67. package/src/layout-2016/lib/au-diagramme.js +85 -85
  68. package/src/layout-2016/lib/au-flowbox.js +93 -93
  69. package/src/layout-2016/lib/universe.js +9 -9
  70. package/src/lib/helpers.ts +208 -208
  71. package/src/lib/hooks.ts +53 -53
  72. package/src/lib/i18n.ts +600 -600
  73. package/src/lib/tracking.ts +69 -69
  74. package/src/lib/wrapping.ts +21 -21
  75. package/src/styles/_settings.scss +10 -10
  76. package/src/styles/alphabox.scss +222 -222
  77. package/src/styles/app.scss +7 -7
  78. package/src/styles/autosuggest.scss +57 -57
  79. package/src/styles/databox.scss +563 -563
  80. package/src/styles/diagramme.scss +119 -119
  81. package/src/styles/flowbox.scss +72 -72
  82. package/src/styles/maps.scss +395 -395
  83. package/tsconfig.json +46 -46
  84. package/webpack.config.js +89 -89
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define(["react","react-dom"],t);else{var a="object"==typeof exports?t(require("react"),require("react-dom")):t(e.React,e.ReactDOM);for(var n in a)("object"==typeof exports?exports:e)[n]=a[n]}}(self,((e,t)=>(()=>{var a={703:(e,t,a)=>{"use strict";var n=a(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,a,r,i,s){if(s!==n){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 a={array:e,bigint: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 a.PropTypes=a,a}},697:(e,t,a)=>{e.exports=a(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},244:t=>{"use strict";t.exports=e},741:e=>{"use strict";e.exports=t}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return a[e](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i);var e=r(244),t=r.n(e),a=r(741),n=r.n(a);const s={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/"}},l={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 o=r(697),d=r.n(o);class u extends t().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:a,content:n,classNames:r,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"),r&&(u+=` ${r}`),t().createElement("div",{"data-id":l,ref:e=>{this.node=e},className:u},(()=>a>-1?t().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(a){case 0:return o;case 1:return t().createElement("h1",null,e);case 2:return t().createElement("h2",null,e);case 3:return t().createElement("h3",null,e);case 4:return t().createElement("h4",null,e);case 5:return t().createElement("h5",null,e);default:return t().createElement("h6",null,e)}})()):null)(),s||n)}}u.defaultProps={dataID:null,children:null,content:null,header:"",headerElement:null,level:1,classNames:"",onClick:()=>{},attributes:[]},u.propTypes={dataID:d().string,children:d().element,collapsed:d().bool.isRequired,header:d().string,headerElement:d().element,level:d().number,content:d().element,classNames:d().string,onClick:d().func,attributes:d().arrayOf(d().shape({attr:d().string,value:d().string,selector:d().string}))},u.displayName="AUCollapsibleComponent";const c=u,m=({loggedIn:e,loginUri:a,children:n,text:r})=>e?n:t().createElement("a",{className:"nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label","data-icon":"",href:a},r);m.defaultProps={loggedIn:!1,loginUri:""},m.propTypes={loggedIn:d().bool,loginUri:d().string,children:d().element.isRequired,text:d().string.isRequired},m.displayName="AUProfileLoginComponent";const p=m;var h,g,f;h=Event.prototype,g=document,f=window,h.composedPath||(h.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(g,f),this.path});const y=t().memo((({lang:a,name:n,auid:r,studentNumber:i,settings:s,changeLanguageUrl:l,logoutUri:o,profileLabels:d})=>{const[u,c]=(0,e.useState)(!1),m=s.map((e=>t().createElement("a",{key:e.url,className:"sub-nav__item",href:e.url},e.text)));return(0,e.useEffect)((()=>{r>0&&!u&&(((e="da")=>{document.querySelectorAll(".copy-to-clipboard__this").forEach((t=>{const a=t.parentNode,n=()=>{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",a.removeEventListener("click",n),setTimeout((()=>{t.innerText=r,a.addEventListener("click",n)}),1200)};a.classList.contains("copy-to-clipboard")&&a.addEventListener("click",n)}))})(a),c(!0))})),t().createElement("div",{className:"sub-nav__content theme--normal","aria-labelledby":"profile-menu-toggle"},t().createElement("div",{className:"sub-nav__user"},t().createElement("h2",{className:"sub-nav__user-name"},n),t().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[a].copyAuid,"aria-label":`${d[a].auId}: AU${r}`},`${d[a].auId}: `,t().createElement("span",{className:"copy-to-clipboard__this"},`AU${r}`)),i&&t().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[a].copyStudentNumber,"aria-label":`${d[a].studentNumber}: ${i}`},`${d[a].studentNumber}: `,t().createElement("span",{className:"copy-to-clipboard__this"},i))),t().createElement("hr",null),m,t().createElement("hr",null),l&&t().createElement(t().Fragment,null,t().createElement("a",{className:"sub-nav__item sub-nav__item--icon",href:l,"data-icon":""},d[a].changeLanguage),t().createElement("hr",null)),t().createElement("a",{className:"sub-nav__item sub-nav__item--icon","data-icon":"",href:o},d[a].logout))}));y.defaultProps={studentNumber:null,changeLanguageUrl:null},y.propTypes={lang:d().string.isRequired,name:d().string.isRequired,auid:d().number.isRequired,studentNumber:d().string,settings:d().arrayOf(d().shape({url:d().string.isRequired,text:d().string.isRequired})).isRequired,profileLabels:d().shape({}).isRequired,changeLanguageUrl:d().string,logoutUri:d().string.isRequired},y.displayName="AUProfileWidgetComponent";const v=y,b=({lang:e,user:a,settings:n,toggled:r,onToggle:i,onLoad:s,profileLabels:l,logoutUri:o})=>{const{chosenFirstNames:d,chosenLastName:u,auId:c,studentNumber:m}=a,p=t().createElement("div",{className:"sub-nav"+(r?" sub-nav--toggled":"")},t().createElement("button",{id:"profile-menu-toggle",type:"button","aria-label":r?`${l[e].profileFor} ${d} ${u}`:l[e].myProfile,"aria-expanded":r,onClick:()=>{i()}},d||l[e].myProfile),r&&t().createElement(v,{lang:e,name:`${d} ${u}`,auid:c,studentNumber:m,settings:n,profileLabels:l,logoutUri:o}));return 0===c?null:t().createElement(null,{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)};b.propTypes={lang:d().string.isRequired,user:d().shape({chosenFirstNames:d().string.isRequired,chosenLastName:d().string.isRequired,preferredLanguage:d().string.isRequired,auId:d().number.isRequired,studentNumber:d().string.isRequired}).isRequired,auAuth:d().shape({}).isRequired,settings:d().arrayOf(d().shape({url:d().string.isRequired,text:d().string.isRequired})).isRequired,toggled:d().bool.isRequired,onToggle:d().func.isRequired,onLoad:d().func.isRequired,profileLabels:d().shape({}).isRequired,logoutUri:d().string.isRequired},b.displayName="AUProfileAvatar2016Component";const k=b;function E(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function N(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?E(Object(a),!0).forEach((function(t){L(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):E(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function L(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const S=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("a");t.push({url:a.getAttribute("href"),title:a.innerText,className:e.getAttribute("class")})})),t},w=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("div"),n=a.querySelector("h3").innerText,r=a.querySelector("p").innerText,i=a.querySelectorAll("ul > li > a"),s={header:n,text:r,actions:[]};i.forEach((e=>{s.actions.push({url:e.getAttribute("href"),title:e.innerText})})),t.push(s)})),t};class x extends t().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[],systemLinks:[],loggedIn:!1,showHelp:!1}}componentDidMount(){const{promiseHandler:e,user:t,onLoad:a}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const a=t.querySelectorAll("ul.burger-links > li"),n=t.querySelectorAll("ul.systems > li");this.setState({burgerLinks:S(a),systemLinks:w(n)})})),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},(()=>{a(N(N({},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:a,onLoad:r,universeLabels:i,profileLabels:s}=this.props,{active:l,burgerLinks:o,systemLinks:d,loggedIn:u,showHelp:m}=this.state,h=(e=>{let t=document.cookie,a=t.indexOf(" mystaff-help=");if(-1===a&&(a=t.indexOf("mystaff-help=")),-1===a)t=null;else{a=t.indexOf("=",a)+1;let e=t.indexOf(";",a);-1===e&&(e=t.length),t=decodeURI(t.substring(a,e))}return t})(),g=document.querySelector("body").classList.contains("login"),f=!h&&!u&&document.querySelector("body").classList.contains("help"),y=o.map((e=>t().createElement("li",{key:e.title,className:e.className},t().createElement("a",{href:e.url},e.title)))),v=d.map((e=>t().createElement("li",{key:e.header},t().createElement(c,{collapsed:!0,header:e.header,level:3},t().createElement("div",null,t().createElement("p",null,e.text),t().createElement("ul",{className:"resetlist"},e.actions.map((e=>t().createElement("li",{key:e.url},t().createElement("a",{href:e.url},e.title))))))))));return[t().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},t().createElement("div",null,t().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:i[e].staffTitleLink}}),t().createElement("div",{className:4===l?"avatar active":"avatar"},g&&t().createElement(t().Fragment,null,t().createElement(p,{text:s[e].myProfile,loggedIn:u,loginUri:`${window.profileApiUri}/auth/login?redirectUri=${window.location.href}`},t().createElement(k,{lang:e,user:a,settings:[{url:`${window.profileApiUri}/${e}/profile`,text:s[e].headerContainer},{url:`${window.profileApiUri}/${e}/password`,text:s[e].headerPassword},{url:`${window.profileApiUri}/${e}/holiday`,text:s[e].headerVacationAbsence}],profileLabels:s,toggled:4===l,onToggle:()=>{this.setState((e=>({active:4===e.active?0:4})))},onLoad:r,logoutUri:`${window.profileApiUri}/auth/logout?redirectUri=${window.location.href}`})),f&&t().createElement(t().Fragment,null,t().createElement("button",{type:"button",className:"btn-help","aria-label":"Hjælp / help",onClick:()=>{this.setState({showHelp:!0})}},""),m&&n().createPortal(t().createElement("div",{className:"help-modal"},t().createElement("h2",null,s[e].helpModalHeader),t().createElement("p",null,s[e].helpModalText),t().createElement("button",{type:"button",className:"button bg-staff",onClick:()=>{((e,t,a=null,n=null,r=";path=/;domain=au.dk")=>{let i=encodeURI(!0);if(null!=n){const e=new Date;e.setDate(e.getDate()+n),i=`${i}; expires=${e.toUTCString()}`}else null!=a&&(i=`${i}; max-age=${a}`);document.cookie=`${e}=${i}${r}`})("mystaff-help",0,null,365,";path=/;domain=medarbejdere.au.dk"),this.setState({showHelp:!1})}},s[e].helpModalBtn)),document.querySelector(".main"),"modal")))),m&&t().createElement("div",{key:"overlay",className:"help-modal-overlay",role:"button",onClick:()=>{this.setState({showHelp:!1})}}),t().createElement("ul",{className:"resetlist universe-icons"},t().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:i[e].mainPageLink}}),t().createElement("li",{className:1===l?"active":null},t().createElement("button",{type:"button",className:"btn-system",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"System")),t().createElement("li",{className:2===l?"active":null},t().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Find")),t().createElement("li",{className:3===l?"active":null},t().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:3===e.active?0:3})))}},"Menu"))))),t().createElement("div",{key:1,className:"universe-utility"+(1===l?" active":"")},t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},v))),t().createElement("div",{key:2,className:"universe-utility"+(2===l?" active":"")},t().createElement("div",{className:"find-container au-map"})),t().createElement("div",{key:3,className:"universe-utility"+(3===l?" active":"")},t().createElement("div",{className:"au_alphabox",id:"au_alphabox_staff_utility"}),t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},y)))]}}x.propTypes={lang:d().string.isRequired,user:d().shape({}).isRequired,promiseHandler:d().func.isRequired,onLoad:d().func.isRequired,universeLabels:d().shape({}).isRequired,profileLabels:d().shape({}).isRequired},x.displayName="StaffTopComponent";const M=x,P=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("a");t.push({url:a.getAttribute("href"),title:a.innerText,className:e.getAttribute("class")})})),t};class _ extends t().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 a=t.querySelectorAll("ul.burger-links > li");this.setState({burgerLinks:P(a)})}))}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:a}=this.props,{active:n,burgerLinks:r}=this.state,i=r.map((e=>t().createElement("li",{key:e.title,className:e.className},t().createElement("a",{href:e.url},e.title))));return[t().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},t().createElement("div",null,t().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:a[e].studentTitleLink}}),t().createElement("ul",{className:"resetlist universe-icons"},t().createElement("li",{className:"mitstudie"},t().createElement("a",{href:a[e].mitstudieUrl},a[e].mitstudieText)),t().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:a[e].mainPageLink}}),t().createElement("li",{className:1===n?"active":null},t().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"Find")),t().createElement("li",{className:2===n?"active":null},t().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Menu"))))),t().createElement("div",{key:1,className:"universe-utility"+(1===n?" active":"")},t().createElement("div",{className:"find-container au-map"})),t().createElement("div",{key:2,className:"universe-utility"+(2===n?" active":"")},t().createElement("div",{className:"au_alphabox",id:"au_alphabox_student_utility"}),t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},i)))]}}_.propTypes={lang:d().string.isRequired,promiseHandler:d().func.isRequired,universeLabels:d().shape({}).isRequired},_.displayName="StudentTopComponent";const q=_,T=()=>{const[a,n]=(0,e.useState)({chosenFirstNames:"",chosenLastName:"",preferredLanguage:"",auId:0}),{auAuth:r}=window,i=document.querySelector("html").getAttribute("lang"),o=document.querySelector("body"),{universeGlobalContentPath:d}=window;let u=t().createElement("div",null);return o.classList.contains("staff")&&(u=t().createElement(M,{lang:i,user:a,promiseHandler:e=>{fetch(d).then((e=>e.json())).then((t=>e(t)))},onLoad:e=>{n(e)},auAuth:r,universeLabels:s,profileLabels:l})),o.classList.contains("student")&&(u=t().createElement(q,{lang:i,user:a,promiseHandler:e=>{fetch(d).then((e=>e.json())).then((t=>e(t)))},universeLabels:s,profileLabels:l})),u};T.displayName="UniverseContainerComponent";const A=T;n().render(t().createElement(A,null),document.querySelector(".universeheader"))})(),i})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define(["react","react-dom"],t);else{var a="object"==typeof exports?t(require("react"),require("react-dom")):t(e.React,e.ReactDOM);for(var n in a)("object"==typeof exports?exports:e)[n]=a[n]}}(self,((e,t)=>(()=>{var a={703:(e,t,a)=>{"use strict";var n=a(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,a,r,i,s){if(s!==n){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 a={array:e,bigint: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 a.PropTypes=a,a}},697:(e,t,a)=>{e.exports=a(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},244:t=>{"use strict";t.exports=e},741:e=>{"use strict";e.exports=t}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return a[e](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.r(i);var e=r(244),t=r.n(e),a=r(741),n=r.n(a);const s={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/"}},l={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 o=r(697),d=r.n(o);class u extends t().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:a,content:n,classNames:r,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"),r&&(u+=` ${r}`),t().createElement("div",{"data-id":l,ref:e=>{this.node=e},className:u},(()=>a>-1?t().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(a){case 0:return o;case 1:return t().createElement("h1",null,e);case 2:return t().createElement("h2",null,e);case 3:return t().createElement("h3",null,e);case 4:return t().createElement("h4",null,e);case 5:return t().createElement("h5",null,e);default:return t().createElement("h6",null,e)}})()):null)(),s||n)}}u.defaultProps={dataID:null,children:null,content:null,header:"",headerElement:null,level:1,classNames:"",onClick:()=>{},attributes:[]},u.propTypes={dataID:d().string,children:d().element,collapsed:d().bool.isRequired,header:d().string,headerElement:d().element,level:d().number,content:d().element,classNames:d().string,onClick:d().func,attributes:d().arrayOf(d().shape({attr:d().string,value:d().string,selector:d().string}))},u.displayName="AUCollapsibleComponent";const c=u,m=({loggedIn:e,loginUri:a,children:n,text:r})=>e?n:t().createElement("a",{className:"nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label","data-icon":"",href:a},r);m.defaultProps={loggedIn:!1,loginUri:""},m.propTypes={loggedIn:d().bool,loginUri:d().string,children:d().element.isRequired,text:d().string.isRequired},m.displayName="AUProfileLoginComponent";const p=m;var h,g,f;h=Event.prototype,g=document,f=window,h.composedPath||(h.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(g,f),this.path});const y=t().memo((({lang:a,name:n,auid:r,studentNumber:i,settings:s,changeLanguageUrl:l,logoutUri:o,profileLabels:d})=>{const[u,c]=(0,e.useState)(!1),m=s.map((e=>t().createElement("a",{key:e.url,className:"sub-nav__item",href:e.url},e.text)));return(0,e.useEffect)((()=>{r>0&&!u&&(((e="da")=>{document.querySelectorAll(".copy-to-clipboard__this").forEach((t=>{const a=t.parentNode,n=()=>{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",a.removeEventListener("click",n),setTimeout((()=>{t.innerText=r,a.addEventListener("click",n)}),1200)};a.classList.contains("copy-to-clipboard")&&a.addEventListener("click",n)}))})(a),c(!0))})),t().createElement("div",{className:"sub-nav__content theme--normal","aria-labelledby":"profile-menu-toggle"},t().createElement("div",{className:"sub-nav__user"},t().createElement("h2",{className:"sub-nav__user-name"},n),t().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[a].copyAuid,"aria-label":`${d[a].auId}: AU${r}`},`${d[a].auId}: `,t().createElement("span",{className:"copy-to-clipboard__this"},`AU${r}`)),i&&t().createElement("button",{type:"button",className:"copy-to-clipboard",title:d[a].copyStudentNumber,"aria-label":`${d[a].studentNumber}: ${i}`},`${d[a].studentNumber}: `,t().createElement("span",{className:"copy-to-clipboard__this"},i))),t().createElement("hr",null),m,t().createElement("hr",null),l&&t().createElement(t().Fragment,null,t().createElement("a",{className:"sub-nav__item sub-nav__item--icon",href:l,"data-icon":""},d[a].changeLanguage),t().createElement("hr",null)),t().createElement("a",{className:"sub-nav__item sub-nav__item--icon","data-icon":"",href:o},d[a].logout))}));y.defaultProps={studentNumber:null,changeLanguageUrl:null},y.propTypes={lang:d().string.isRequired,name:d().string.isRequired,auid:d().number.isRequired,studentNumber:d().string,settings:d().arrayOf(d().shape({url:d().string.isRequired,text:d().string.isRequired})).isRequired,profileLabels:d().shape({}).isRequired,changeLanguageUrl:d().string,logoutUri:d().string.isRequired},y.displayName="AUProfileWidgetComponent";const v=y,b=({lang:e,user:a,settings:n,toggled:r,onToggle:i,onLoad:s,profileLabels:l,logoutUri:o})=>{const{chosenFirstNames:d,chosenLastName:u,auId:c,studentNumber:m}=a,p=t().createElement("div",{className:"sub-nav"+(r?" sub-nav--toggled":"")},t().createElement("button",{id:"profile-menu-toggle",type:"button","aria-label":r?`${l[e].profileFor} ${d} ${u}`:l[e].myProfile,"aria-expanded":r,onClick:()=>{i()}},d||l[e].myProfile),r&&t().createElement(v,{lang:e,name:`${d} ${u}`,auid:c,studentNumber:m,settings:n,profileLabels:l,logoutUri:o}));return 0===c?null:t().createElement(null,{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)};b.propTypes={lang:d().string.isRequired,user:d().shape({chosenFirstNames:d().string.isRequired,chosenLastName:d().string.isRequired,preferredLanguage:d().string.isRequired,auId:d().number.isRequired,studentNumber:d().string.isRequired}).isRequired,auAuth:d().shape({}).isRequired,settings:d().arrayOf(d().shape({url:d().string.isRequired,text:d().string.isRequired})).isRequired,toggled:d().bool.isRequired,onToggle:d().func.isRequired,onLoad:d().func.isRequired,profileLabels:d().shape({}).isRequired,logoutUri:d().string.isRequired},b.displayName="AUProfileAvatar2016Component";const k=b;function E(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function N(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?E(Object(a),!0).forEach((function(t){L(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):E(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function L(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const S=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("a");t.push({url:a.getAttribute("href"),title:a.innerText,className:e.getAttribute("class")})})),t},w=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("div"),n=a.querySelector("h3").innerText,r=a.querySelector("p").innerText,i=a.querySelectorAll("ul > li > a"),s={header:n,text:r,actions:[]};i.forEach((e=>{s.actions.push({url:e.getAttribute("href"),title:e.innerText})})),t.push(s)})),t};class x extends t().Component{constructor(e){super(e),this.state={active:0,burgerLinks:[],systemLinks:[],loggedIn:!1,showHelp:!1}}componentDidMount(){const{promiseHandler:e,user:t,onLoad:a}=this.props;document.getElementById("fade").addEventListener("click",(()=>{this.setState({active:0})})),e((e=>{const t=document.createElement("div");t.innerHTML=e;const a=t.querySelectorAll("ul.burger-links > li"),n=t.querySelectorAll("ul.systems > li");this.setState({burgerLinks:S(a),systemLinks:w(n)})})),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},(()=>{a(N(N({},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:a,onLoad:r,universeLabels:i,profileLabels:s}=this.props,{active:l,burgerLinks:o,systemLinks:d,loggedIn:u,showHelp:m}=this.state,h=(e=>{let t=document.cookie,a=t.indexOf(" mystaff-help=");if(-1===a&&(a=t.indexOf("mystaff-help=")),-1===a)t=null;else{a=t.indexOf("=",a)+1;let e=t.indexOf(";",a);-1===e&&(e=t.length),t=decodeURI(t.substring(a,e))}return t})(),g=document.querySelector("body").classList.contains("login"),f=!h&&!u&&document.querySelector("body").classList.contains("help"),y=o.map((e=>t().createElement("li",{key:e.title,className:e.className},t().createElement("a",{href:e.url},e.title)))),v=d.map((e=>t().createElement("li",{key:e.header},t().createElement(c,{collapsed:!0,header:e.header,level:3},t().createElement("div",null,t().createElement("p",null,e.text),t().createElement("ul",{className:"resetlist"},e.actions.map((e=>t().createElement("li",{key:e.url},t().createElement("a",{href:e.url},e.title))))))))));return[t().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},t().createElement("div",null,t().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:i[e].staffTitleLink}}),t().createElement("div",{className:4===l?"avatar active":"avatar"},g&&t().createElement(t().Fragment,null,t().createElement(p,{text:s[e].myProfile,loggedIn:u,loginUri:`${window.profileApiUri}/auth/login?redirectUri=${window.location.href}`},t().createElement(k,{lang:e,user:a,settings:[{url:`${window.profileApiUri}/${e}/profile`,text:s[e].headerContainer},{url:`${window.profileApiUri}/${e}/password`,text:s[e].headerPassword},{url:`${window.profileApiUri}/${e}/holiday`,text:s[e].headerVacationAbsence}],profileLabels:s,toggled:4===l,onToggle:()=>{this.setState((e=>({active:4===e.active?0:4})))},onLoad:r,logoutUri:`${window.profileApiUri}/auth/logout?redirectUri=${window.location.href}`})),f&&t().createElement(t().Fragment,null,t().createElement("button",{type:"button",className:"btn-help","aria-label":"Hjælp / help",onClick:()=>{this.setState({showHelp:!0})}},""),m&&n().createPortal(t().createElement("div",{className:"help-modal"},t().createElement("h2",null,s[e].helpModalHeader),t().createElement("p",null,s[e].helpModalText),t().createElement("button",{type:"button",className:"button bg-staff",onClick:()=>{((e,t,a=null,n=null,r=";path=/;domain=au.dk")=>{let i=encodeURI(!0);if(null!=n){const e=new Date;e.setDate(e.getDate()+n),i=`${i}; expires=${e.toUTCString()}`}else null!=a&&(i=`${i}; max-age=${a}`);document.cookie=`${e}=${i}${r}`})("mystaff-help",0,null,365,";path=/;domain=medarbejdere.au.dk"),this.setState({showHelp:!1})}},s[e].helpModalBtn)),document.querySelector(".main"),"modal")))),m&&t().createElement("div",{key:"overlay",className:"help-modal-overlay",role:"button",onClick:()=>{this.setState({showHelp:!1})}}),t().createElement("ul",{className:"resetlist universe-icons"},t().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:i[e].mainPageLink}}),t().createElement("li",{className:1===l?"active":null},t().createElement("button",{type:"button",className:"btn-system",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"System")),t().createElement("li",{className:2===l?"active":null},t().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Find")),t().createElement("li",{className:3===l?"active":null},t().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:3===e.active?0:3})))}},"Menu"))))),t().createElement("div",{key:1,className:"universe-utility"+(1===l?" active":"")},t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},v))),t().createElement("div",{key:2,className:"universe-utility"+(2===l?" active":"")},t().createElement("div",{className:"find-container au-map"})),t().createElement("div",{key:3,className:"universe-utility"+(3===l?" active":"")},t().createElement("div",{className:"au_alphabox",id:"au_alphabox_staff_utility"}),t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},y)))]}}x.propTypes={lang:d().string.isRequired,user:d().shape({}).isRequired,promiseHandler:d().func.isRequired,onLoad:d().func.isRequired,universeLabels:d().shape({}).isRequired,profileLabels:d().shape({}).isRequired},x.displayName="StaffTopComponent";const M=x,P=e=>{const t=[];return e.forEach((e=>{const a=e.querySelector("a");t.push({url:a.getAttribute("href"),title:a.innerText,className:e.getAttribute("class")})})),t};class _ extends t().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 a=t.querySelectorAll("ul.burger-links > li");this.setState({burgerLinks:P(a)})}))}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:a}=this.props,{active:n,burgerLinks:r}=this.state,i=r.map((e=>t().createElement("li",{key:e.title,className:e.className},t().createElement("a",{href:e.url},e.title))));return[t().createElement("div",{key:"header",className:"large-12 medium-12 small-12 columns"},t().createElement("div",null,t().createElement("h2",{className:"universe-home",dangerouslySetInnerHTML:{__html:a[e].studentTitleLink}}),t().createElement("ul",{className:"resetlist universe-icons"},t().createElement("li",{className:"mitstudie"},t().createElement("a",{href:a[e].mitstudieUrl},a[e].mitstudieText)),t().createElement("li",{className:"au",dangerouslySetInnerHTML:{__html:a[e].mainPageLink}}),t().createElement("li",{className:1===n?"active":null},t().createElement("button",{type:"button",className:"btn-find",onClick:()=>{this.setState((e=>({active:1===e.active?0:1})))}},"Find")),t().createElement("li",{className:2===n?"active":null},t().createElement("button",{type:"button",className:"btn-menu",onClick:()=>{this.setState((e=>({active:2===e.active?0:2})))}},"Menu"))))),t().createElement("div",{key:1,className:"universe-utility"+(1===n?" active":"")},t().createElement("div",{className:"find-container au-map"})),t().createElement("div",{key:2,className:"universe-utility"+(2===n?" active":"")},t().createElement("div",{className:"au_alphabox",id:"au_alphabox_student_utility"}),t().createElement("div",{className:"universe-utility-links"},t().createElement("ul",{className:"resetlist"},i)))]}}_.propTypes={lang:d().string.isRequired,promiseHandler:d().func.isRequired,universeLabels:d().shape({}).isRequired},_.displayName="StudentTopComponent";const q=_,T=()=>{const[a,n]=(0,e.useState)({chosenFirstNames:"",chosenLastName:"",preferredLanguage:"",auId:0}),{auAuth:r}=window,i=document.querySelector("html").getAttribute("lang"),o=document.querySelector("body"),{universeGlobalContentPath:d}=window;let u=t().createElement("div",null);return o.classList.contains("staff")&&(u=t().createElement(M,{lang:i,user:a,promiseHandler:e=>{fetch(d).then((e=>e.json())).then((t=>e(t)))},onLoad:e=>{n(e)},auAuth:r,universeLabels:s,profileLabels:l})),o.classList.contains("student")&&(u=t().createElement(q,{lang:i,user:a,promiseHandler:e=>{fetch(d).then((e=>e.json())).then((t=>e(t)))},universeLabels:s,profileLabels:l})),u};T.displayName="UniverseContainerComponent";const A=T;n().render(t().createElement(A,null),document.querySelector(".universeheader"))})(),i})()));
2
2
  //# sourceMappingURL=universe.js.map
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "sideEffects": false,
3
- "name": "@aarhus-university/au-lib-react-components",
4
- "version": "10.0.9",
5
- "description": "Library for shared React components for various applications on au.dk",
6
- "scripts": {
7
- "build": "webpack --config ./webpack.config.js"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "https://gitlab.au.dk/au-web-og-digital/au-lib-react-components"
12
- },
13
- "author": {
14
- "name": "Thomas Riis Hansen",
15
- "email": "trh@au.dk"
16
- },
17
- "devDependencies": {
18
- "@babel/core": "^7.17.0",
19
- "@babel/plugin-proposal-class-properties": "^7.16.7",
20
- "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
21
- "@babel/plugin-proposal-optional-chaining": "^7.16.7",
22
- "@babel/preset-env": "^7.16.11",
23
- "@babel/preset-react": "^7.16.7",
24
- "@babel/preset-typescript": "^7.16.7",
25
- "@typescript-eslint/eslint-plugin": "^5.10.2",
26
- "@typescript-eslint/parser": "^5.10.2",
27
- "babel-eslint": "^10.1.0",
28
- "babel-loader": "^8.2.3",
29
- "css-loader": "^6.6.0",
30
- "eslint": "^8.8.0",
31
- "eslint-config-airbnb": "^19.0.4",
32
- "eslint-import-resolver-typescript": "^2.5.0",
33
- "eslint-plugin-import": "^2.25.4",
34
- "eslint-plugin-jsx-a11y": "^6.5.1",
35
- "eslint-plugin-react": "^7.28.0",
36
- "eslint-plugin-react-hooks": "^4.3.0",
37
- "eslint-webpack-plugin": "^3.1.1",
38
- "fork-ts-checker-webpack-plugin": "^7.0.0",
39
- "mini-css-extract-plugin": "^2.5.3",
40
- "sass": "^1.49.7",
41
- "sass-loader": "^12.4.0",
42
- "style-loader": "^3.3.1",
43
- "ts-loader": "^9.2.6",
44
- "typescript": "^4.5.5",
45
- "webpack-cli": "^4.9.2"
46
- },
47
- "dependencies": {
48
- "@aarhus-university/au-designsystem-delphinus": "0.28.0",
49
- "@aarhus-university/types": "^0.1.0",
50
- "@types/google.analytics": "^0.0.42",
51
- "@types/history": "^5.0.0",
52
- "@types/react": "^17.0.39",
53
- "@types/react-dom": "^17.0.11",
54
- "@types/react-router-dom": "^5.3.3",
55
- "dayjs": "^1.10.7",
56
- "lodash.debounce": "^4.0.8",
57
- "prop-types": "^15.8.1",
58
- "query-string": "^7.1.0",
59
- "react-autosuggest": "^10.1.0",
60
- "react-router-dom": "^6.2.1",
61
- "webpack": "^5.68.0"
62
- },
63
- "peerDependencies": {
64
- "react": "17.0.2",
65
- "react-dom": "^17.0.2"
66
- }
67
- }
1
+ {
2
+ "sideEffects": false,
3
+ "name": "@aarhus-university/au-lib-react-components",
4
+ "version": "10.0.11",
5
+ "description": "Library for shared React components for various applications on au.dk",
6
+ "scripts": {
7
+ "build": "webpack --config ./webpack.config.js"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://gitlab.au.dk/au-web-og-digital/au-lib-react-components"
12
+ },
13
+ "author": {
14
+ "name": "Thomas Riis Hansen",
15
+ "email": "trh@au.dk"
16
+ },
17
+ "devDependencies": {
18
+ "@babel/core": "^7.17.0",
19
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
20
+ "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
21
+ "@babel/plugin-proposal-optional-chaining": "^7.16.7",
22
+ "@babel/preset-env": "^7.16.11",
23
+ "@babel/preset-react": "^7.16.7",
24
+ "@babel/preset-typescript": "^7.16.7",
25
+ "@typescript-eslint/eslint-plugin": "^5.10.2",
26
+ "@typescript-eslint/parser": "^5.10.2",
27
+ "babel-eslint": "^10.1.0",
28
+ "babel-loader": "^8.2.3",
29
+ "css-loader": "^6.6.0",
30
+ "eslint": "^8.8.0",
31
+ "eslint-config-airbnb": "^19.0.4",
32
+ "eslint-import-resolver-typescript": "^2.5.0",
33
+ "eslint-plugin-import": "^2.25.4",
34
+ "eslint-plugin-jsx-a11y": "^6.5.1",
35
+ "eslint-plugin-react": "^7.28.0",
36
+ "eslint-plugin-react-hooks": "^4.3.0",
37
+ "eslint-webpack-plugin": "^3.1.1",
38
+ "fork-ts-checker-webpack-plugin": "^7.0.0",
39
+ "mini-css-extract-plugin": "^2.5.3",
40
+ "sass": "^1.49.7",
41
+ "sass-loader": "^12.4.0",
42
+ "style-loader": "^3.3.1",
43
+ "ts-loader": "^9.2.6",
44
+ "typescript": "^4.5.5",
45
+ "webpack-cli": "^4.9.2"
46
+ },
47
+ "dependencies": {
48
+ "@aarhus-university/au-designsystem-delphinus": "0.28.0",
49
+ "@aarhus-university/types": "^0.1.0",
50
+ "@types/google.analytics": "^0.0.42",
51
+ "@types/history": "^5.0.0",
52
+ "@types/react": "^17.0.39",
53
+ "@types/react-dom": "^17.0.11",
54
+ "@types/react-router-dom": "^5.3.3",
55
+ "dayjs": "^1.10.7",
56
+ "lodash.debounce": "^4.0.8",
57
+ "prop-types": "^15.8.1",
58
+ "query-string": "^7.1.0",
59
+ "react-autosuggest": "^10.1.0",
60
+ "react-router-dom": "^5.3.3",
61
+ "webpack": "^5.68.0"
62
+ },
63
+ "peerDependencies": {
64
+ "react": "17.0.2",
65
+ "react-dom": "^17.0.2"
66
+ }
67
+ }
@@ -1,70 +1,70 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- /* eslint-env browser */
3
- import React, { FC } from 'react';
4
- import ReactDOM from 'react-dom';
5
-
6
- const AUAlertComponent: FC<AUAlertComponentProps> = ({
7
- message,
8
- children,
9
- alert,
10
- buttons,
11
- }: AUAlertComponentProps) => {
12
- const renderButtons = (buttons || []).map((button) => (
13
- <button
14
- key={button.text}
15
- type="button"
16
- className={button.className}
17
- data-icon={button.dataIcon}
18
- onClick={() => {
19
- button.onClick();
20
- }}
21
- >
22
- {button.text}
23
- </button>
24
- ));
25
-
26
- if (alert) {
27
- return (
28
- <>
29
- {
30
- ReactDOM.createPortal(
31
- <div key="0" className="theme--normal toast-notification toast-notification--attention toast-notification--persistent">
32
- <div className="toast-notification__content">
33
- <p dangerouslySetInnerHTML={{ __html: message }} />
34
- </div>
35
- {renderButtons}
36
- </div>,
37
- document.querySelector('body')!,
38
- )
39
- }
40
- {children}
41
- </>
42
- );
43
- }
44
-
45
- if (!children) {
46
- return null;
47
- }
48
-
49
- return children;
50
- };
51
-
52
- AUAlertComponent.defaultProps = {
53
- buttons: [{
54
- className: 'button',
55
- text: 'OK',
56
- dataIcon: null,
57
- // eslint-disable-next-line no-console
58
- onClick: () => console.log('clicked on OK'),
59
- }, {
60
- className: 'button',
61
- text: 'Annuller',
62
- dataIcon: null,
63
- // eslint-disable-next-line no-console
64
- onClick: () => console.log('clicked on cancel'),
65
- },
66
- ],
67
- };
68
-
69
- AUAlertComponent.displayName = 'AUAlertComponent';
70
- export default AUAlertComponent;
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ /* eslint-env browser */
3
+ import React, { FC } from 'react';
4
+ import ReactDOM from 'react-dom';
5
+
6
+ const AUAlertComponent: FC<AUAlertComponentProps> = ({
7
+ message,
8
+ children,
9
+ alert,
10
+ buttons,
11
+ }: AUAlertComponentProps) => {
12
+ const renderButtons = (buttons || []).map((button) => (
13
+ <button
14
+ key={button.text}
15
+ type="button"
16
+ className={button.className}
17
+ data-icon={button.dataIcon}
18
+ onClick={() => {
19
+ button.onClick();
20
+ }}
21
+ >
22
+ {button.text}
23
+ </button>
24
+ ));
25
+
26
+ if (alert) {
27
+ return (
28
+ <>
29
+ {
30
+ ReactDOM.createPortal(
31
+ <div key="0" className="theme--normal toast-notification toast-notification--attention toast-notification--persistent">
32
+ <div className="toast-notification__content">
33
+ <p dangerouslySetInnerHTML={{ __html: message }} />
34
+ </div>
35
+ {renderButtons}
36
+ </div>,
37
+ document.querySelector('body')!,
38
+ )
39
+ }
40
+ {children}
41
+ </>
42
+ );
43
+ }
44
+
45
+ if (!children) {
46
+ return null;
47
+ }
48
+
49
+ return children;
50
+ };
51
+
52
+ AUAlertComponent.defaultProps = {
53
+ buttons: [{
54
+ className: 'button',
55
+ text: 'OK',
56
+ dataIcon: null,
57
+ // eslint-disable-next-line no-console
58
+ onClick: () => console.log('clicked on OK'),
59
+ }, {
60
+ className: 'button',
61
+ text: 'Annuller',
62
+ dataIcon: null,
63
+ // eslint-disable-next-line no-console
64
+ onClick: () => console.log('clicked on cancel'),
65
+ },
66
+ ],
67
+ };
68
+
69
+ AUAlertComponent.displayName = 'AUAlertComponent';
70
+ export default AUAlertComponent;