@aarhus-university/au-lib-react-components 10.1.0 → 10.2.2
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.
- package/build/umd/all.css +2 -2
- package/build/umd/all.js +1 -1
- package/build/umd/alphabox.js +1 -1
- package/build/umd/databox.js +1 -1
- package/build/umd/diagramme.js +1 -1
- package/build/umd/flowbox.js +1 -1
- package/build/umd/universe.js +1 -1
- package/package.json +4 -4
- package/src/components/AUAutoSuggestComponent.js +158 -158
- package/src/components/AUTabbedContentComponent.tsx +1 -1
- package/src/components/AUToastComponent.tsx +12 -13
- package/src/components/profile/AUProfileLoginComponent.tsx +26 -26
- package/src/layout-2016/components/alphabox/AlphaBoxComponent.js +143 -143
- package/src/layout-2016/components/alphabox/AlphaBoxContentComponent.js +136 -136
- package/src/layout-2016/components/common/AUCollapsibleComponent.js +152 -152
- package/src/layout-2016/components/common/AUSpinnerComponent.js +103 -103
- package/src/layout-2016/components/databox/DataBoxAlphabetComponent.js +144 -144
- package/src/layout-2016/components/databox/DataBoxAssociationComponent.js +122 -122
- package/src/layout-2016/components/databox/DataBoxButtonComponent.js +157 -157
- package/src/layout-2016/components/databox/DataBoxComponent.js +297 -297
- package/src/layout-2016/components/databox/DataBoxGroupingComponent.js +64 -64
- package/src/layout-2016/components/databox/DataBoxSearchResultComponent.js +36 -36
- package/src/layout-2016/components/databox/DataBoxStackedAssociationComponent.js +54 -54
- package/src/layout-2016/components/databox/DataBoxSuggestionComponent.js +39 -39
- package/src/layout-2016/components/diagramme/AUDiagrammeComponent.js +309 -309
- package/src/layout-2016/components/flowbox/FlowBoxComponent.js +126 -126
- package/src/layout-2016/components/flowbox/FlowBoxPhoneComponent.js +104 -104
- package/src/layout-2016/components/profile/AUProfileAvatar2016Component.js +103 -103
- package/src/layout-2016/components/universe/StaffTopComponent.js +363 -363
- package/src/layout-2016/components/universe/StudentTopComponent.js +137 -137
- package/src/layout-2016/components/universe/UniverseContainerComponent.js +65 -65
- package/src/layout-2016/lib/all.js +3 -3
- package/src/layout-2016/lib/au-alphabox.js +100 -100
- package/src/layout-2016/lib/au-databox.js +400 -400
- package/src/layout-2016/lib/au-diagramme.js +85 -85
- package/src/layout-2016/lib/au-flowbox.js +93 -93
- package/src/layout-2016/lib/universe.js +9 -9
- package/src/lib/helpers.ts +194 -194
- package/tsconfig.json +46 -46
- package/types/common/interfaces/gui.d.ts +2 -1
- package/types/common/interfaces/model.d.ts +29 -29
- package/types/common/props.d.ts +166 -165
- package/webpack.config.js +89 -89
package/build/umd/universe.js
CHANGED
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sideEffects": false,
|
|
3
3
|
"name": "@aarhus-university/au-lib-react-components",
|
|
4
|
-
"version": "10.
|
|
4
|
+
"version": "10.2.2",
|
|
5
5
|
"description": "Library for shared React components for various applications on au.dk",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "webpack --config ./webpack.config.js"
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"webpack-cli": "^4.9.2"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aarhus-university/au-designsystem-delphinus": "^0.26.
|
|
48
|
+
"@aarhus-university/au-designsystem-delphinus": "^0.26.4",
|
|
49
49
|
"@types/google.analytics": "^0.0.42",
|
|
50
50
|
"@types/history": "^5.0.0",
|
|
51
|
-
"@types/react": "^
|
|
52
|
-
"@types/react-dom": "^
|
|
51
|
+
"@types/react": "^18.0.12",
|
|
52
|
+
"@types/react-dom": "^18.0.5",
|
|
53
53
|
"@types/react-router-dom": "^5.3.3",
|
|
54
54
|
"dayjs": "^1.10.7",
|
|
55
55
|
"lodash.debounce": "^4.0.8",
|
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import Autosuggest from 'react-autosuggest';
|
|
5
|
-
import debounce from 'lodash.debounce';
|
|
6
|
-
|
|
7
|
-
class AUAutoSuggestComponent extends React.Component {
|
|
8
|
-
constructor(props) {
|
|
9
|
-
super(props);
|
|
10
|
-
this.state = {
|
|
11
|
-
value: '',
|
|
12
|
-
suggestions: [],
|
|
13
|
-
noSuggestions: false,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
this.onChange = this.onChange.bind(this);
|
|
17
|
-
this.onEnter = this.onEnter.bind(this);
|
|
18
|
-
this.onSuggestionsFetchRequested = debounce(this.onSuggestionsFetchRequested.bind(this), 400);
|
|
19
|
-
this.onSuggestionsClearRequested = this.onSuggestionsClearRequested.bind(this);
|
|
20
|
-
this.onSuggestionSelected = this.onSuggestionSelected.bind(this);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
onChange(_, { newValue }) {
|
|
24
|
-
const { setQuery } = this.props;
|
|
25
|
-
this.setState({
|
|
26
|
-
value: newValue,
|
|
27
|
-
}, () => {
|
|
28
|
-
setQuery(newValue);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
onEnter(event) {
|
|
33
|
-
const { suggestions } = this.state;
|
|
34
|
-
const { setResults } = this.props;
|
|
35
|
-
if (event.key === 'Enter') {
|
|
36
|
-
setResults(suggestions);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
onSuggestionsFetchRequested({ value }) {
|
|
41
|
-
const { getSuggestions, collection } = this.props;
|
|
42
|
-
getSuggestions(value, collection, (suggestions) => {
|
|
43
|
-
this.setState({
|
|
44
|
-
suggestions,
|
|
45
|
-
noSuggestions: suggestions.length === 0 && value.trim() !== '' && value.trim().length > 1,
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
onSuggestionsClearRequested() {
|
|
51
|
-
this.setState({
|
|
52
|
-
suggestions: [],
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
onSuggestionSelected(event, { suggestion }) {
|
|
57
|
-
const { setResults, clearInput } = this.props;
|
|
58
|
-
setResults([suggestion]);
|
|
59
|
-
if (clearInput) {
|
|
60
|
-
this.setState({
|
|
61
|
-
value: '',
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
render() {
|
|
67
|
-
const { value, suggestions, noSuggestions } = this.state;
|
|
68
|
-
const {
|
|
69
|
-
placeholder,
|
|
70
|
-
getSuggestionValue,
|
|
71
|
-
renderSuggestion,
|
|
72
|
-
id,
|
|
73
|
-
theme,
|
|
74
|
-
type,
|
|
75
|
-
initialValue,
|
|
76
|
-
disabled,
|
|
77
|
-
noResultsText,
|
|
78
|
-
} = this.props;
|
|
79
|
-
const inputProps = {
|
|
80
|
-
placeholder,
|
|
81
|
-
value: initialValue || value,
|
|
82
|
-
id,
|
|
83
|
-
type,
|
|
84
|
-
disabled,
|
|
85
|
-
'aria-label': placeholder,
|
|
86
|
-
onChange: this.onChange,
|
|
87
|
-
onKeyDown: this.onEnter,
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
return (
|
|
91
|
-
<>
|
|
92
|
-
<Autosuggest
|
|
93
|
-
suggestions={suggestions}
|
|
94
|
-
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
|
|
95
|
-
onSuggestionsClearRequested={this.onSuggestionsClearRequested}
|
|
96
|
-
onSuggestionSelected={this.onSuggestionSelected}
|
|
97
|
-
getSuggestionValue={getSuggestionValue}
|
|
98
|
-
renderSuggestion={renderSuggestion}
|
|
99
|
-
inputProps={inputProps}
|
|
100
|
-
theme={theme}
|
|
101
|
-
/>
|
|
102
|
-
{
|
|
103
|
-
(noSuggestions && noResultsText) && (
|
|
104
|
-
<p className="no-results">
|
|
105
|
-
<em>{noResultsText}</em>
|
|
106
|
-
</p>
|
|
107
|
-
)
|
|
108
|
-
}
|
|
109
|
-
</>
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
AUAutoSuggestComponent.displayName = 'AUAutoSuggestComponent';
|
|
115
|
-
|
|
116
|
-
AUAutoSuggestComponent.defaultProps = {
|
|
117
|
-
id: 'autosuggest1',
|
|
118
|
-
theme: {
|
|
119
|
-
container: 'react-autosuggest__container',
|
|
120
|
-
containerOpen: 'react-autosuggest__container--open',
|
|
121
|
-
input: 'react-autosuggest__input',
|
|
122
|
-
inputOpen: 'react-autosuggest__input--open',
|
|
123
|
-
inputFocused: 'react-autosuggest__input--focused',
|
|
124
|
-
suggestionsContainer: 'react-autosuggest__suggestions-container',
|
|
125
|
-
suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',
|
|
126
|
-
suggestionsList: 'react-autosuggest__suggestions-list',
|
|
127
|
-
suggestion: 'react-autosuggest__suggestion',
|
|
128
|
-
suggestionFirst: 'react-autosuggest__suggestion--first',
|
|
129
|
-
suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',
|
|
130
|
-
sectionContainer: 'react-autosuggest__section-container',
|
|
131
|
-
sectionContainerFirst: 'react-autosuggest__section-container--first',
|
|
132
|
-
sectionTitle: 'react-autosuggest__section-title',
|
|
133
|
-
},
|
|
134
|
-
clearInput: false,
|
|
135
|
-
type: 'text',
|
|
136
|
-
initialValue: '',
|
|
137
|
-
disabled: false,
|
|
138
|
-
setQuery: () => { },
|
|
139
|
-
noResultsText: '',
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
AUAutoSuggestComponent.propTypes = {
|
|
143
|
-
setQuery: PropTypes.func,
|
|
144
|
-
getSuggestions: PropTypes.func.isRequired,
|
|
145
|
-
getSuggestionValue: PropTypes.func.isRequired,
|
|
146
|
-
renderSuggestion: PropTypes.func.isRequired,
|
|
147
|
-
setResults: PropTypes.func.isRequired,
|
|
148
|
-
collection: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
|
|
149
|
-
placeholder: PropTypes.string.isRequired,
|
|
150
|
-
id: PropTypes.string,
|
|
151
|
-
theme: PropTypes.shape({}),
|
|
152
|
-
clearInput: PropTypes.bool,
|
|
153
|
-
type: PropTypes.string,
|
|
154
|
-
initialValue: PropTypes.string,
|
|
155
|
-
disabled: PropTypes.bool,
|
|
156
|
-
noResultsText: PropTypes.string,
|
|
157
|
-
};
|
|
158
|
-
export default AUAutoSuggestComponent;
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import Autosuggest from 'react-autosuggest';
|
|
5
|
+
import debounce from 'lodash.debounce';
|
|
6
|
+
|
|
7
|
+
class AUAutoSuggestComponent extends React.Component {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
super(props);
|
|
10
|
+
this.state = {
|
|
11
|
+
value: '',
|
|
12
|
+
suggestions: [],
|
|
13
|
+
noSuggestions: false,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
this.onChange = this.onChange.bind(this);
|
|
17
|
+
this.onEnter = this.onEnter.bind(this);
|
|
18
|
+
this.onSuggestionsFetchRequested = debounce(this.onSuggestionsFetchRequested.bind(this), 400);
|
|
19
|
+
this.onSuggestionsClearRequested = this.onSuggestionsClearRequested.bind(this);
|
|
20
|
+
this.onSuggestionSelected = this.onSuggestionSelected.bind(this);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
onChange(_, { newValue }) {
|
|
24
|
+
const { setQuery } = this.props;
|
|
25
|
+
this.setState({
|
|
26
|
+
value: newValue,
|
|
27
|
+
}, () => {
|
|
28
|
+
setQuery(newValue);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
onEnter(event) {
|
|
33
|
+
const { suggestions } = this.state;
|
|
34
|
+
const { setResults } = this.props;
|
|
35
|
+
if (event.key === 'Enter') {
|
|
36
|
+
setResults(suggestions);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
onSuggestionsFetchRequested({ value }) {
|
|
41
|
+
const { getSuggestions, collection } = this.props;
|
|
42
|
+
getSuggestions(value, collection, (suggestions) => {
|
|
43
|
+
this.setState({
|
|
44
|
+
suggestions,
|
|
45
|
+
noSuggestions: suggestions.length === 0 && value.trim() !== '' && value.trim().length > 1,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
onSuggestionsClearRequested() {
|
|
51
|
+
this.setState({
|
|
52
|
+
suggestions: [],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
onSuggestionSelected(event, { suggestion }) {
|
|
57
|
+
const { setResults, clearInput } = this.props;
|
|
58
|
+
setResults([suggestion]);
|
|
59
|
+
if (clearInput) {
|
|
60
|
+
this.setState({
|
|
61
|
+
value: '',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
render() {
|
|
67
|
+
const { value, suggestions, noSuggestions } = this.state;
|
|
68
|
+
const {
|
|
69
|
+
placeholder,
|
|
70
|
+
getSuggestionValue,
|
|
71
|
+
renderSuggestion,
|
|
72
|
+
id,
|
|
73
|
+
theme,
|
|
74
|
+
type,
|
|
75
|
+
initialValue,
|
|
76
|
+
disabled,
|
|
77
|
+
noResultsText,
|
|
78
|
+
} = this.props;
|
|
79
|
+
const inputProps = {
|
|
80
|
+
placeholder,
|
|
81
|
+
value: initialValue || value,
|
|
82
|
+
id,
|
|
83
|
+
type,
|
|
84
|
+
disabled,
|
|
85
|
+
'aria-label': placeholder,
|
|
86
|
+
onChange: this.onChange,
|
|
87
|
+
onKeyDown: this.onEnter,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<>
|
|
92
|
+
<Autosuggest
|
|
93
|
+
suggestions={suggestions}
|
|
94
|
+
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
|
|
95
|
+
onSuggestionsClearRequested={this.onSuggestionsClearRequested}
|
|
96
|
+
onSuggestionSelected={this.onSuggestionSelected}
|
|
97
|
+
getSuggestionValue={getSuggestionValue}
|
|
98
|
+
renderSuggestion={renderSuggestion}
|
|
99
|
+
inputProps={inputProps}
|
|
100
|
+
theme={theme}
|
|
101
|
+
/>
|
|
102
|
+
{
|
|
103
|
+
(noSuggestions && noResultsText) && (
|
|
104
|
+
<p className="no-results">
|
|
105
|
+
<em>{noResultsText}</em>
|
|
106
|
+
</p>
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
</>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
AUAutoSuggestComponent.displayName = 'AUAutoSuggestComponent';
|
|
115
|
+
|
|
116
|
+
AUAutoSuggestComponent.defaultProps = {
|
|
117
|
+
id: 'autosuggest1',
|
|
118
|
+
theme: {
|
|
119
|
+
container: 'react-autosuggest__container',
|
|
120
|
+
containerOpen: 'react-autosuggest__container--open',
|
|
121
|
+
input: 'react-autosuggest__input',
|
|
122
|
+
inputOpen: 'react-autosuggest__input--open',
|
|
123
|
+
inputFocused: 'react-autosuggest__input--focused',
|
|
124
|
+
suggestionsContainer: 'react-autosuggest__suggestions-container',
|
|
125
|
+
suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',
|
|
126
|
+
suggestionsList: 'react-autosuggest__suggestions-list',
|
|
127
|
+
suggestion: 'react-autosuggest__suggestion',
|
|
128
|
+
suggestionFirst: 'react-autosuggest__suggestion--first',
|
|
129
|
+
suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',
|
|
130
|
+
sectionContainer: 'react-autosuggest__section-container',
|
|
131
|
+
sectionContainerFirst: 'react-autosuggest__section-container--first',
|
|
132
|
+
sectionTitle: 'react-autosuggest__section-title',
|
|
133
|
+
},
|
|
134
|
+
clearInput: false,
|
|
135
|
+
type: 'text',
|
|
136
|
+
initialValue: '',
|
|
137
|
+
disabled: false,
|
|
138
|
+
setQuery: () => { },
|
|
139
|
+
noResultsText: '',
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
AUAutoSuggestComponent.propTypes = {
|
|
143
|
+
setQuery: PropTypes.func,
|
|
144
|
+
getSuggestions: PropTypes.func.isRequired,
|
|
145
|
+
getSuggestionValue: PropTypes.func.isRequired,
|
|
146
|
+
renderSuggestion: PropTypes.func.isRequired,
|
|
147
|
+
setResults: PropTypes.func.isRequired,
|
|
148
|
+
collection: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
|
|
149
|
+
placeholder: PropTypes.string.isRequired,
|
|
150
|
+
id: PropTypes.string,
|
|
151
|
+
theme: PropTypes.shape({}),
|
|
152
|
+
clearInput: PropTypes.bool,
|
|
153
|
+
type: PropTypes.string,
|
|
154
|
+
initialValue: PropTypes.string,
|
|
155
|
+
disabled: PropTypes.bool,
|
|
156
|
+
noResultsText: PropTypes.string,
|
|
157
|
+
};
|
|
158
|
+
export default AUAutoSuggestComponent;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import React, {
|
|
3
3
|
useEffect, useLayoutEffect, useRef, FC,
|
|
4
4
|
} from 'react';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
5
|
|
|
7
6
|
const dismissTimeout = 5000;
|
|
8
7
|
let timeoutId: NodeJS.Timeout | null = null;
|
|
9
8
|
|
|
10
9
|
const AUToastComponent: FC<AUToastComponentProps> = ({
|
|
11
10
|
message: pMessage,
|
|
11
|
+
buttonText,
|
|
12
12
|
dismiss,
|
|
13
13
|
onOpen,
|
|
14
14
|
}: AUToastComponentProps) => {
|
|
15
|
-
const { type, message } = pMessage;
|
|
15
|
+
const { type, message, header } = pMessage;
|
|
16
16
|
const toastRef = useRef<HTMLDivElement>(null);
|
|
17
17
|
const persistent = type !== 'confirm';
|
|
18
18
|
|
|
@@ -56,13 +56,20 @@ const AUToastComponent: FC<AUToastComponentProps> = ({
|
|
|
56
56
|
}
|
|
57
57
|
}, []);
|
|
58
58
|
|
|
59
|
-
let className = `
|
|
59
|
+
let className = `toast-notification toast-notification--${type}`;
|
|
60
60
|
if (persistent) {
|
|
61
61
|
className = `${className} toast-notification--persistent`;
|
|
62
62
|
}
|
|
63
63
|
return (
|
|
64
64
|
<div ref={toastRef} className={className}>
|
|
65
65
|
<div className="toast-notification__content">
|
|
66
|
+
{
|
|
67
|
+
header && (
|
|
68
|
+
<h2 className="toast-notification__header">
|
|
69
|
+
{header}
|
|
70
|
+
</h2>
|
|
71
|
+
)
|
|
72
|
+
}
|
|
66
73
|
<p dangerouslySetInnerHTML={{ __html: message }} />
|
|
67
74
|
</div>
|
|
68
75
|
{
|
|
@@ -76,7 +83,7 @@ const AUToastComponent: FC<AUToastComponentProps> = ({
|
|
|
76
83
|
}
|
|
77
84
|
}}
|
|
78
85
|
>
|
|
79
|
-
|
|
86
|
+
{buttonText}
|
|
80
87
|
</button>
|
|
81
88
|
)
|
|
82
89
|
}
|
|
@@ -85,20 +92,12 @@ const AUToastComponent: FC<AUToastComponentProps> = ({
|
|
|
85
92
|
};
|
|
86
93
|
|
|
87
94
|
AUToastComponent.defaultProps = {
|
|
95
|
+
buttonText: 'OK',
|
|
88
96
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
89
97
|
dismiss: () => { },
|
|
90
98
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
91
99
|
onOpen: () => { },
|
|
92
100
|
};
|
|
93
101
|
|
|
94
|
-
AUToastComponent.propTypes = {
|
|
95
|
-
message: PropTypes.shape({
|
|
96
|
-
type: PropTypes.string.isRequired,
|
|
97
|
-
message: PropTypes.string.isRequired,
|
|
98
|
-
}).isRequired,
|
|
99
|
-
dismiss: PropTypes.func,
|
|
100
|
-
onOpen: PropTypes.func,
|
|
101
|
-
};
|
|
102
|
-
|
|
103
102
|
AUToastComponent.displayName = 'AUToastComponent';
|
|
104
103
|
export default AUToastComponent;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/* eslint-env browser */
|
|
2
|
-
import React, { FC } from 'react';
|
|
3
|
-
|
|
4
|
-
const AUProfileLoginComponent: FC<AUProfileLoginComponentProps> = ({
|
|
5
|
-
loggedIn,
|
|
6
|
-
loginUri,
|
|
7
|
-
children,
|
|
8
|
-
text,
|
|
9
|
-
}: AUProfileLoginComponentProps) => {
|
|
10
|
-
if (!loggedIn) {
|
|
11
|
-
return (
|
|
12
|
-
<a
|
|
13
|
-
className="nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label"
|
|
14
|
-
data-icon=""
|
|
15
|
-
href={loginUri}
|
|
16
|
-
>
|
|
17
|
-
{text}
|
|
18
|
-
</a>
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return children;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
AUProfileLoginComponent.displayName = 'AUProfileLoginComponent';
|
|
26
|
-
export default AUProfileLoginComponent;
|
|
1
|
+
/* eslint-env browser */
|
|
2
|
+
import React, { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
const AUProfileLoginComponent: FC<AUProfileLoginComponentProps> = ({
|
|
5
|
+
loggedIn,
|
|
6
|
+
loginUri,
|
|
7
|
+
children,
|
|
8
|
+
text,
|
|
9
|
+
}: AUProfileLoginComponentProps) => {
|
|
10
|
+
if (!loggedIn) {
|
|
11
|
+
return (
|
|
12
|
+
<a
|
|
13
|
+
className="nav__item nav__item--icon nav__item--icon--right nav__item--icon--always-show-label"
|
|
14
|
+
data-icon=""
|
|
15
|
+
href={loginUri}
|
|
16
|
+
>
|
|
17
|
+
{text}
|
|
18
|
+
</a>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return children;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
AUProfileLoginComponent.displayName = 'AUProfileLoginComponent';
|
|
26
|
+
export default AUProfileLoginComponent;
|