@aarhus-university/au-lib-react-components 8.20.2 → 8.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +44 -0
- package/README.md +19 -20
- package/babel.config.js +7 -0
- package/build/umd/all.css +1 -2
- package/build/umd/all.css.map +1 -1
- package/build/umd/all.js +1 -1
- package/build/umd/all.js.map +1 -1
- package/build/umd/alphabox.js +1 -1
- package/build/umd/alphabox.js.map +1 -1
- package/build/umd/databox.js +1 -6
- package/build/umd/databox.js.map +1 -1
- package/build/umd/diagramme.js +1 -1
- package/build/umd/diagramme.js.map +1 -1
- package/build/umd/flowbox.js +1 -1
- package/build/umd/flowbox.js.map +1 -1
- package/build/umd/universe.js +1 -1
- package/build/umd/universe.js.map +1 -1
- package/package.json +66 -65
- package/src/components/AUAlertComponent.tsx +70 -0
- package/src/components/{AutoSuggestComponent.js → AUAutoSuggestComponent.js} +45 -19
- package/src/components/AUCalendarComponent.tsx +493 -0
- package/src/components/AUContentToggleComponent.tsx +33 -0
- package/src/components/AUDatepickerComponent.tsx +117 -0
- package/src/components/AUMobilePrefixComponent.tsx +15 -0
- package/src/components/{delphinus/AUModalComponent.js → AUModalComponent.tsx} +78 -76
- package/src/components/{form/AUReceiptComponent.js → AUReceiptComponent.tsx} +33 -40
- package/src/components/AUSpinnerComponent.tsx +64 -0
- package/src/components/{delphinus/AUSubNavComponent.js → AUSubNavComponent.tsx} +38 -53
- package/src/components/{form/AUSubmitButtonContainerComponent.js → AUSubmitButtonContainerComponent.tsx} +31 -39
- package/src/components/AUTabbedContentComponent.tsx +145 -0
- package/src/components/{delphinus/AUTableComponent.js → AUTableComponent.tsx} +24 -28
- package/src/components/{delphinus/AUToastComponent.js → AUToastComponent.tsx} +104 -91
- package/src/components/{delphinus/AUToolbarComponent.js → AUToolbarComponent.tsx} +45 -48
- package/src/components/profile/AUProfileActions.js +128 -113
- package/src/components/profile/AUProfileAvatarComponent.js +83 -83
- package/src/components/profile/AUProfileAvatarV2Component.js +91 -0
- package/src/components/profile/AUProfileAvatarV3Component.js +80 -0
- package/src/components/profile/AUProfileContainerComponent.js +283 -285
- package/src/components/profile/AUProfileHooks.js +30 -30
- package/src/components/profile/AUProfileItemComponent.js +54 -54
- package/src/components/profile/AUProfileLanguageComponent.js +131 -131
- package/src/components/profile/AUProfileLoginComponent.js +0 -2
- package/src/components/profile/AUProfileMailComponent.js +307 -299
- package/src/components/profile/AUProfileMobileComponent.js +164 -164
- package/src/components/profile/AUProfileNameComponent.js +253 -253
- package/src/components/profile/AUProfileNextOfKinComponent.js +216 -216
- package/src/components/profile/AUProfileReducer.js +230 -210
- package/src/components/profile/AUProfileWidgetComponent.js +95 -95
- package/src/components/profile/AUProfileWidgetV2Component.js +116 -0
- package/src/components/profile/AUProfileWidgetV3Component.js +130 -0
- package/src/components/wrapping/AUEmbedComponent.js +47 -47
- package/src/{components → layout-2016/components}/alphabox/AlphaBoxComponent.js +29 -28
- package/src/{components → layout-2016/components}/alphabox/AlphaBoxContentComponent.js +25 -14
- package/src/{components → layout-2016/components/common}/AUCollapsibleComponent.js +1 -22
- package/src/{components → layout-2016/components/common}/AUSpinnerComponent.js +2 -24
- package/src/{components → layout-2016/components}/databox/DataBoxAlphabetComponent.js +1 -1
- package/src/{components → layout-2016/components}/databox/DataBoxAssociationComponent.js +2 -2
- package/src/{components → layout-2016/components}/databox/DataBoxButtonComponent.js +7 -3
- package/src/{components → layout-2016/components}/databox/DataBoxComponent.js +2 -2
- package/src/{components → layout-2016/components}/databox/DataBoxGroupingComponent.js +2 -0
- package/src/{components → layout-2016/components}/databox/DataBoxSearchResultComponent.js +1 -5
- package/src/{components → layout-2016/components}/databox/DataBoxStackedAssociationComponent.js +1 -5
- package/src/{components → layout-2016/components}/databox/DataBoxSuggestionComponent.js +0 -0
- package/src/{components → layout-2016/components/diagramme}/AUDiagrammeComponent.js +5 -6
- package/src/{components → layout-2016/components}/flowbox/FlowBoxComponent.js +8 -8
- package/src/{components → layout-2016/components}/flowbox/FlowBoxPhoneComponent.js +3 -5
- package/src/{components → layout-2016/components}/profile/AUProfileAvatar2016Component.js +6 -2
- package/src/{components → layout-2016/components}/universe/StaffTopComponent.js +4 -3
- package/src/{components → layout-2016/components}/universe/StudentTopComponent.js +0 -0
- package/src/{components → layout-2016/components}/universe/UniverseContainerComponent.js +11 -8
- package/src/layout-2016/lib/all.js +3 -0
- package/src/{lib → layout-2016/lib}/au-alphabox.js +1 -3
- package/src/{lib → layout-2016/lib}/au-databox.js +6 -9
- package/src/{lib → layout-2016/lib}/au-diagramme.js +2 -4
- package/src/{lib → layout-2016/lib}/au-flowbox.js +1 -3
- package/src/{lib → layout-2016/lib}/universe.js +0 -0
- package/src/lib/{helpers.js → helpers.ts} +40 -66
- package/src/{components/delphinus/hooks.js → lib/hooks.ts} +33 -26
- package/src/lib/{i18n.js → i18n.ts} +600 -595
- package/src/lib/tracking.ts +69 -0
- package/src/lib/{wrapping.js → wrapping.ts} +21 -16
- package/src/styles/_settings.scss +11 -11
- package/src/styles/alphabox.scss +222 -209
- package/src/styles/app.scss +7 -12
- package/src/styles/autosuggest.scss +57 -57
- package/src/styles/databox.scss +563 -563
- package/src/styles/diagramme.scss +119 -119
- package/src/styles/flowbox.scss +72 -72
- package/src/styles/maps.scss +396 -0
- package/tsconfig.json +47 -0
- package/types/common/interfaces.d.ts +64 -0
- package/types/common/main.d.ts +4 -0
- package/types/common/package.json +5 -0
- package/types/common/payloads.d.ts +0 -0
- package/types/common/props.d.ts +138 -0
- package/webpack.config.js +89 -0
- package/.eslintrc +0 -19
- package/DOCUMENTATION.md +0 -369
- package/build/cjs/auAuth.js +0 -2
- package/build/cjs/auAuth.js.map +0 -1
- package/build/dev.html +0 -329
- package/build/umd/auAuth.js +0 -2
- package/build/umd/auAuth.js.map +0 -1
- package/build/umd/news.js +0 -2
- package/build/umd/news.js.map +0 -1
- package/src/all.js +0 -3
- package/src/app.js +0 -263
- package/src/components/AUAlertComponent.js +0 -158
- package/src/components/AUAmountComponent.js +0 -84
- package/src/components/AUBannerComponent.js +0 -99
- package/src/components/AUCalendarComponent.js +0 -393
- package/src/components/AUDatepickerComponent.js +0 -105
- package/src/components/AUFilterCheckboxComponent.js +0 -122
- package/src/components/AUFocusComponent.js +0 -55
- package/src/components/AUModalComponent.js +0 -94
- package/src/components/AUPaginationComponent.js +0 -103
- package/src/components/context/AUUserContextComponent.js +0 -91
- package/src/components/context/ImpersonateComponent.js +0 -54
- package/src/components/delphinus/AUCalendarComponent.js +0 -422
- package/src/components/delphinus/AUContentToggleComponent.js +0 -32
- package/src/components/delphinus/AUDatepickerComponent.js +0 -113
- package/src/components/delphinus/AULoginComponent.js +0 -65
- package/src/components/delphinus/AUSpinnerComponent.js +0 -114
- package/src/components/delphinus/AUTabbedContentComponent.js +0 -53
- package/src/components/form/AUMobilePrefixComponent.js +0 -18
- package/src/components/news/EventLayout1Component.js +0 -94
- package/src/components/news/EventLayout2Component.js +0 -90
- package/src/components/news/EventLayout3Component.js +0 -68
- package/src/components/news/NewsCategoriesComponent.js +0 -21
- package/src/components/news/NewsCollageBannerComponent.js +0 -71
- package/src/components/news/NewsColumnsComponent.js +0 -125
- package/src/components/news/NewsLanguageChangeComponent.js +0 -74
- package/src/components/news/NewsLayout1Component.js +0 -80
- package/src/components/news/NewsLayout2Component.js +0 -80
- package/src/components/news/NewsLayout3Component.js +0 -81
- package/src/components/news/NewsLayout4Component.js +0 -80
- package/src/components/news/NewsLayout5Component.js +0 -61
- package/src/components/news/NewsLayout6Component.js +0 -55
- package/src/components/news/NewsLayout7Component.js +0 -58
- package/src/components/news/NewsLayout8Component.js +0 -57
- package/src/components/news/NewsListComponent.js +0 -291
- package/src/components/news/NewsPopUpComponent.js +0 -591
- package/src/components/news/NewsRSSComponent.js +0 -74
- package/src/components/news/NewsSocialComponent.js +0 -104
- package/src/components/news/NewsSubHeaderComponent.js +0 -19
- package/src/components/password/AUChangePasswordComponent.js +0 -177
- package/src/components/password/AUCurrentPasswordComponent.js +0 -72
- package/src/components/password/AUNewPasswordComponent.js +0 -143
- package/src/components/password/AUPasswordActions.js +0 -101
- package/src/components/password/AUPasswordHooks.js +0 -47
- package/src/components/password/AUPasswordReducer.js +0 -78
- package/src/components/password/AUPasswordRequirementsComponent.js +0 -29
- package/src/config/webpack.cjs.config.js +0 -75
- package/src/config/webpack.dev.config.js +0 -61
- package/src/config/webpack.umd.config.js +0 -107
- package/src/index.js +0 -6
- package/src/lib/au-auth.js +0 -221
- package/src/lib/au-news.js +0 -306
- package/src/lib/menu.js +0 -10
- package/src/lib/urlHandler.js +0 -63
- package/src/lib/validation.js +0 -181
- package/src/styles/alert.scss +0 -39
- package/src/styles/calendar.scss +0 -112
- package/src/styles/filtercheckbox.scss +0 -5
- package/src/styles/modal.scss +0 -35
- package/src/styles/pagination.scss +0 -11
- package/src/styles/spinner.scss +0 -30
package/build/umd/diagramme.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"),require("axios"),require("react-dom"));else if("function"==typeof define&&define.amd)define(["react","axios","react-dom"],t);else{var n="object"==typeof exports?t(require("react"),require("axios"),require("react-dom")):t(e.React,e.axios,e.ReactDOM);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,(function(e,t,n){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=14)}([function(t,n){t.exports=e},function(e,t,n){e.exports=n(12)()},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t,n){var r=n(9),a=n(10);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(11);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){"use strict";var r=n(13);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var c=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 c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";n.r(t);var r=n(3),a=n.n(r),o=n(2),i=n.n(o),c=n(0),u=n.n(c),l=n(5),s=n.n(l),p=n(4),f=n.n(p),m=n(6),d=n.n(m),g=n(7),y=n.n(g),v=n(8),h=n.n(v),b=n(1),E=n.n(b),k={da:{diagramme:{semestre:"semester",kvarterer:"quarter",regulation:"Academic regulations",courseTypes:["Obligatorisk","Valgfag","Tilvalg","Støttefag"],none:"Der er ikke oprettet et studiediagram for",select:"Vælg linje"}},en:{diagramme:{semestre:"semester",kvarterer:"kvarter",regulation:"Studieordning",courseTypes:["Compulsory","Elective","Supplementary subject","Auxiliary subject"],none:"No study diagramme has been created for",select:"Choose track"}}},_=function(e){function t(e){var n;return a()(this,t),(n=d()(this,y()(t).call(this,e))).state={nodes:[],active:e.track},n}return h()(t,e),i()(t,null,[{key:"diagrammeParse",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"table",r=[];if(e.DiagramMetaData.DATA.length>0){for(var a=0;a<e.DiagramMetaData.DATA[0][1];a+=1)r[a]||r.push([]);e.DiagramStruktur.DATA.forEach((function(a){for(var o=a[0],i=a[1],c=0;c<i;c+=1)r[o][c]||r[o].push([]);for(var u="table"===n?1:a[2],l=e.DiagramMetaData.DATA[0][0],s=0;s<u;s+=1)r[o+s][i]={courseId:a[3],name:"da"===t?a[6]:a[7],type:a[4].toLowerCase(),colspan:a[5],rowspan:a[2],ects:s>0?0:l/(l/5/a[5])*a[2],code:a[8]}}))}return r}}]),i()(t,[{key:"componentDidMount",value:function(){var e=this,n=this.props,r=n.print,a=n.response,o=n.lang,i=new Array(a.lines.length),c=[];a.lines.forEach((function(e,n){c.push(new Promise((function(r){var a="https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=".concat(e.id);f.a.get(a).then((function(a){var c=a.data.DiagramMetaData.DATA[0]?a.data.DiagramMetaData.DATA[0][3]:"",u={name:"da"===o?e.name:e.nameEnglish,periodType:c,table:t.diagrammeParse(a.data,o),list:t.diagrammeParse(a.data,o,"list")};i[n]=u,r(a.data)}))})))})),Promise.all(c).then((function(){e.setState({nodes:i},(function(){r&&window.print()}))}))}},{key:"changeActive",value:function(e){this.setState({active:e.target.value})}},{key:"render",value:function(){var e=this,t=this.state,n=t.nodes,r=t.active,a=this.props,o=a.course,i=a.lang;if(0===n.length)return u.a.createElement("div",null);var c=this.props.print,l="http://kursuskatalog.au.dk/".concat(i,"/linkedexams/"),s="http://kursuskatalog.au.dk/".concat(i,"/electivegroups/"),p=n[r],f=p.table,m=p.list,d=p.name,g=f.map((function(e,t){var a=t,o=e.map((function(e,t){var n=t;if(e.name){var r=l+e.courseId;return"tlv"===e.type?r="http://tilvalg.au.dk":"val"!==e.type&&"ogr"!==e.type||(r=s+e.code),u.a.createElement("td",{key:n,className:e.type,colSpan:e.colspan,rowSpan:e.rowspan},u.a.createElement("a",{target:"_blank",rel:"noreferrer noopener",href:r},e.name,u.a.createElement("br",null),"(".concat(e.ects," ECTS)")))}return null}));return u.a.createElement("tr",{key:a},u.a.createElement("th",null,"".concat(t+1,". "),k[i].diagramme[n[r].periodType]),o)})),y=m.map((function(e,t){var a=t,o=e.map((function(e,t){var n=t;if(e.name){var r=l+e.courseId;return"tlv"===e.type?r="http://tilvalg.au.dk":"val"!==e.type&&"ogr"!==e.type||(r=s+e.code),u.a.createElement("p",{key:n,className:e.type},u.a.createElement("span",null,u.a.createElement("a",{target:"_blank",rel:"noreferrer noopener",href:r},e.name)),e.ects>0?u.a.createElement("span",null,u.a.createElement("strong",null,e.ects)," ECTS"):u.a.createElement("span",null,u.a.createElement("strong",null,"…")))}return null}));return u.a.createElement("li",{key:a},u.a.createElement("h3",null,"".concat(t+1,". "),k[i].diagramme[n[r].periodType]),o)})),v=n.map((function(e,t){return u.a.createElement("option",{key:e.name,value:t},e.name)}));return u.a.createElement("div",null,u.a.createElement("h2",null,n[r].name),n.length>1&&!c?[u.a.createElement("p",{key:0},"".concat(k[i].diagramme.select,":")),u.a.createElement("select",{key:1,onChange:e.changeActive.bind(e),value:r},v)]:null,function(){if(!c){var e="".concat(window.location.href,"?coursesprint=").concat(o,"|").concat(r);return u.a.createElement("a",{className:"print",href:e,onClick:function(t){t.preventDefault(),window.open(e,"","width=1025,height=600")}},"Print")}return null}(),u.a.createElement("div",{className:"study-diagramme hide-for-small-only"},f.length<1||m.length<1?u.a.createElement("div",null,"".concat(k[i].diagramme.none," ").concat(d)):u.a.createElement("table",null,u.a.createElement("tbody",null,g))),u.a.createElement("div",{className:"study-diagramme list show-for-small-only"},f.length<1||m.length<1?u.a.createElement("div",null,"".concat(k[i].diagramme.none," ").concat(d)):u.a.createElement("ul",{className:"resetlist"},y)),u.a.createElement("dl",{className:"au_edutable_legend"},u.a.createElement("dt",{className:"au_edutable_mandatory"},k[i].diagramme.courseTypes[0]),u.a.createElement("dd",null),u.a.createElement("dt",{className:"au_edutable_optional"},k[i].diagramme.courseTypes[1]),u.a.createElement("dd",null),u.a.createElement("dt",{className:"au_edutable_supplementary"},k[i].diagramme.courseTypes[2]),u.a.createElement("dd",null),u.a.createElement("dt",{className:"au_edutable_support"},k[i].diagramme.courseTypes[3]),u.a.createElement("dd",null)))}}]),t}(u.a.PureComponent);_.propTypes={lang:E.a.string.isRequired,response:E.a.shape({lines:E.a.arrayOf(E.a.shape({name:E.a.string.isRequired,nameEnglish:E.a.string.isRequired})).isRequired}).isRequired,course:E.a.string.isRequired,track:E.a.string.isRequired,print:E.a.bool.isRequired},_.displayName="AUDiagrammeComponent";var D=_,S={config:{container:".au_edutable_eddi_container",courseID:0,track:0}},x=function(){function e(t,n){a()(this,e),this.tables=n,this.lang=t}return i()(e,[{key:"init",value:function(){var t=this,n=AU.helpers.getQuerystring("coursesprint");if(""!==n)for(var r=n.split(","),a=0;a<r.length;a+=1){var o=r[a].split("|");o.length>1?this.tables.push({config:{container:"#print_course_".concat(a),courseID:parseInt(o[0],10),track:parseInt(o[1],10)}}):this.tables.push({config:{container:"#print_course_".concat(a),courseID:parseInt(o[0],10)}}),s.a.render(u.a.createElement("div",{id:"print_course_".concat(a)}),document.querySelector("body"))}for(var i=function(r){var a=t.tables[r];a.id=r,e.mergeOptions(a);var o="https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=".concat(a.config.courseID);f.a.get(o).then((function(e){var r=e.data,o=document.querySelector(a.config.container);o&&s.a.render(u.a.createElement(D,{lang:t.lang,response:r,course:a.config.courseID,track:a.config.track,print:""!==n}),o)}))},c=0;c<this.tables.length;c+=1)i(c)}}],[{key:"mergeOptions",value:function(e){var t=e;for(var n in t.hasOwnProperty("config")||(t.config={}),S.config)t.config.hasOwnProperty(n)||(t.config[n]=S.config[n])}}]),e}();window.AUDiagramme=x}])}));
|
|
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 r="object"==typeof exports?t(require("react"),require("react-dom")):t(e.React,e.ReactDOM);for(var a in r)("object"==typeof exports?exports:e)[a]=r[a]}}(self,((e,t)=>(()=>{var r={703:(e,t,r)=>{"use strict";var a=r(414);function n(){}function s(){}s.resetWarningCache=n,e.exports=function(){function e(e,t,r,n,s,o){if(o!==a){var i=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 i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={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:s,resetWarningCache:n};return r.PropTypes=r,r}},697:(e,t,r)=>{e.exports=r(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}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return(()=>{"use strict";n.r(s);var e=n(244),t=n.n(e),r=n(741),a=n.n(r),o=n(697),i=n.n(o);const l={da:{diagramme:{semestre:"semester",kvarterer:"quarter",regulation:"Academic regulations",courseTypes:["Obligatorisk","Valgfag","Tilvalg","Støttefag"],none:"Der er ikke oprettet et studiediagram for",select:"Vælg linje"}},en:{diagramme:{semestre:"semester",kvarterer:"kvarter",regulation:"Studieordning",courseTypes:["Compulsory","Elective","Supplementary subject","Auxiliary subject"],none:"No study diagramme has been created for",select:"Choose track"}}};class c extends t().PureComponent{static diagrammeParse(e,t,r="table"){const a=[];if(e.DiagramMetaData.DATA.length>0){for(let t=0;t<e.DiagramMetaData.DATA[0][1];t+=1)a[t]||a.push([]);e.DiagramStruktur.DATA.forEach((n=>{const s=n[0],o=n[1];for(let e=0;e<o;e+=1)a[s][e]||a[s].push([]);const i="table"===r?1:n[2],l=e.DiagramMetaData.DATA[0][0];for(let e=0;e<i;e+=1)a[s+e][o]={courseId:n[3],name:"da"===t?n[6]:n[7],type:n[4].toLowerCase(),colspan:n[5],rowspan:n[2],ects:e>0?0:l/(l/5/n[5])*n[2],code:n[8]}}))}return a}constructor(e){super(e),this.state={nodes:[],active:e.track}}componentDidMount(){const{print:e,response:t,lang:r}=this.props,a=new Array(t.lines.length),n=[];t.lines.forEach(((e,t)=>{n.push(new Promise((n=>{const s=`https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${e.id}`;fetch(s).then((e=>e.json())).then((s=>{const o=s.DiagramMetaData.DATA[0]?s.DiagramMetaData.DATA[0][3]:"",i={name:"da"===r?e.name:e.nameEnglish,periodType:o,table:c.diagrammeParse(s,r),list:c.diagrammeParse(s,r,"list")};a[t]=i,n(s)}))})))})),Promise.all(n).then((()=>{this.setState({nodes:a},(()=>{e&&window.print()}))}))}changeActive(e){this.setState({active:e.target.value})}render(){const{nodes:e,active:r}=this.state,{course:a,lang:n}=this.props;if(0===e.length)return t().createElement("div",null);const{print:s}=this.props,o=`http://kursuskatalog.au.dk/${n}/linkedexams/`,i=`http://kursuskatalog.au.dk/${n}/electivegroups/`,c="http://tilvalg.au.dk",{table:u,list:m,name:p}=e[r],d=u.map(((a,s)=>{const u=s,m=a.map(((e,r)=>{const a=r;if(e.name){let r=o+e.courseId;return"tlv"===e.type?r=c:"val"!==e.type&&"ogr"!==e.type||(r=i+e.code),t().createElement("td",{key:a,className:e.type,colSpan:e.colspan,rowSpan:e.rowspan},t().createElement("a",{target:"_blank",rel:"noreferrer noopener",href:r},e.name,t().createElement("br",null),`(${e.ects} ECTS)`))}return null}));return t().createElement("tr",{key:u},t().createElement("th",null,`${s+1}. `,l[n].diagramme[e[r].periodType]),m)})),g=m.map(((a,s)=>{const u=s,m=a.map(((e,r)=>{const a=r;if(e.name){let r=o+e.courseId;return"tlv"===e.type?r=c:"val"!==e.type&&"ogr"!==e.type||(r=i+e.code),t().createElement("p",{key:a,className:e.type},t().createElement("span",null,t().createElement("a",{target:"_blank",rel:"noreferrer noopener",href:r},e.name)),e.ects>0?t().createElement("span",null,t().createElement("strong",null,e.ects)," ECTS"):t().createElement("span",null,t().createElement("strong",null,"…")))}return null}));return t().createElement("li",{key:u},t().createElement("h3",null,`${s+1}. `,l[n].diagramme[e[r].periodType]),m)})),h=e.map(((e,r)=>t().createElement("option",{key:e.name,value:r},e.name)));return t().createElement("div",null,t().createElement("h2",null,e[r].name),(()=>e.length>1&&!s?[t().createElement("p",{key:0},`${l[n].diagramme.select}:`),t().createElement("select",{key:1,onChange:this.changeActive.bind(this),value:r},h)]:null)(),(()=>{if(!s){const e=`${window.location.href}?coursesprint=${a}|${r}`;return t().createElement("a",{className:"print",href:e,onClick:t=>{t.preventDefault(),window.open(e,"","width=1025,height=600")}},"Print")}return null})(),t().createElement("div",{className:"study-diagramme hide-for-small-only"},u.length<1||m.length<1?t().createElement("div",null,`${l[n].diagramme.none} ${p}`):t().createElement("table",null,t().createElement("tbody",null,d))),t().createElement("div",{className:"study-diagramme list show-for-small-only"},u.length<1||m.length<1?t().createElement("div",null,`${l[n].diagramme.none} ${p}`):t().createElement("ul",{className:"resetlist"},g)),t().createElement("dl",{className:"au_edutable_legend"},t().createElement("dt",{className:"au_edutable_mandatory"},l[n].diagramme.courseTypes[0]),t().createElement("dd",null),t().createElement("dt",{className:"au_edutable_optional"},l[n].diagramme.courseTypes[1]),t().createElement("dd",null),t().createElement("dt",{className:"au_edutable_supplementary"},l[n].diagramme.courseTypes[2]),t().createElement("dd",null),t().createElement("dt",{className:"au_edutable_support"},l[n].diagramme.courseTypes[3]),t().createElement("dd",null)))}}c.propTypes={lang:i().string.isRequired,response:i().shape({lines:i().arrayOf(i().shape({name:i().string.isRequired,nameEnglish:i().string.isRequired})).isRequired}).isRequired,course:i().string.isRequired,track:i().string.isRequired,print:i().bool.isRequired},c.displayName="AUDiagrammeComponent";const u=c,m={config:{container:".au_edutable_eddi_container",courseID:0,track:0}};class p{constructor(e,t){this.tables=t,this.lang=e}static mergeOptions(e){const t=e;t.hasOwnProperty("config")||(t.config={});for(const e in m.config)t.config.hasOwnProperty(e)||(t.config[e]=m.config[e])}init(){const e=AU.helpers.getQuerystring("coursesprint");if(""!==e){const r=e.split(",");for(let e=0;e<r.length;e+=1){const n=r[e].split("|");n.length>1?this.tables.push({config:{container:`#print_course_${e}`,courseID:parseInt(n[0],10),track:parseInt(n[1],10)}}):this.tables.push({config:{container:`#print_course_${e}`,courseID:parseInt(n[0],10)}}),a().render(t().createElement("div",{id:`print_course_${e}`}),document.querySelector("body"))}}for(let r=0;r<this.tables.length;r+=1){const n=this.tables[r];n.id=r,p.mergeOptions(n);const s=`https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${n.config.courseID}`;fetch(s).then((e=>e.json())).then((r=>{const s=document.querySelector(n.config.container);s&&a().render(t().createElement(u,{lang:this.lang,response:r,course:n.config.courseID,track:n.config.track,print:""!==e}),s)}))}}}window.AUDiagramme=p})(),s})()));
|
|
2
2
|
//# sourceMappingURL=diagramme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///external \"axios\"","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/components/AUDiagrammeComponent.js","webpack:///./src/lib/au-diagramme.js"],"names":["root","factory","exports","module","require","define","amd","a","i","window","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__4__","__WEBPACK_EXTERNAL_MODULE__5__","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_defineProperties","target","props","length","descriptor","configurable","writable","Constructor","protoProps","staticProps","instance","TypeError","_typeof","assertThisInitialized","self","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","_typeof2","obj","iterator","ReferenceError","_setPrototypeOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","diagrammeLabels","da","diagramme","semestre","kvarterer","regulation","courseTypes","none","select","en","AUDiagrammeComponent","state","nodes","active","track","data","lang","dataArr","DiagramMetaData","DATA","j","push","DiagramStruktur","forEach","periodIndex","orderIndex","k","rowspan","ectsPrPeriod","courseId","type","toLowerCase","colspan","ects","code","this","print","response","Array","lines","promises","Promise","resolve","url","id","axios","then","promise","periodType","nameEnglish","table","diagrammeParse","list","all","setState","event","course","kkLinkedExams","kkElectiveGroup","renderRows","map","diaKey","renderCells","cellKey","href","className","colSpan","rowSpan","rel","renderList","renderEducations","e","eduKey","renderOptions","onChange","changeActive","printUrl","onClick","preventDefault","open","React","PureComponent","propTypes","displayName","defaultOptions","config","container","courseID","AUDiagramme","tables","qsCourses","AU","helpers","getQuerystring","coursesSplit","split","trackSplit","parseInt","ReactDOM","render","document","querySelector","mergeOptions","mountNode","_table","conf"],"mappings":"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","file":"diagramme.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"axios\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"axios\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"axios\"), require(\"react-dom\")) : factory(root[\"React\"], root[\"axios\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__5__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 14);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/* eslint-env browser */\n/* eslint no-mixed-operators: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\n\nconst diagrammeLabels = {\n da: {\n diagramme: {\n semestre: 'semester',\n kvarterer: 'quarter',\n regulation: 'Academic regulations',\n courseTypes: ['Obligatorisk', 'Valgfag', 'Tilvalg', 'Støttefag'],\n none: 'Der er ikke oprettet et studiediagram for',\n select: 'Vælg linje',\n },\n },\n en: {\n diagramme: {\n semestre: 'semester',\n kvarterer: 'kvarter',\n regulation: 'Studieordning',\n courseTypes: ['Compulsory', 'Elective', 'Supplementary subject', 'Auxiliary subject'],\n none: 'No study diagramme has been created for',\n select: 'Choose track',\n },\n },\n};\n\nclass AUDiagrammeComponent extends React.PureComponent {\n static diagrammeParse(data, lang, mode = 'table') {\n const dataArr = [];\n if (data.DiagramMetaData.DATA.length > 0) {\n for (let j = 0; j < data.DiagramMetaData.DATA[0][1]; j += 1) {\n if (!dataArr[j]) {\n dataArr.push([]);\n }\n }\n\n data.DiagramStruktur.DATA.forEach((d) => {\n const periodIndex = d[0]; // rækkefølge af semester/kvarter\n const orderIndex = d[1]; // rækkefølge i et semester/kvarter\n for (let k = 0; k < orderIndex; k += 1) {\n if (!dataArr[periodIndex][k]) {\n dataArr[periodIndex].push([]);\n }\n }\n\n const rowspan = mode === 'table' ? 1 : d[2]; // lister viser fag, som spænder over flere perioder, i alle perioder - tabeller bruger rowspan\n const ectsPrPeriod = data.DiagramMetaData.DATA[0][0];\n const ectsPrCell = 5;\n for (let i = 0; i < rowspan; i += 1) {\n dataArr[periodIndex + i][orderIndex] = {\n courseId: d[3],\n name: lang === 'da' ? d[6] : d[7],\n type: d[4].toLowerCase(),\n colspan: d[5],\n rowspan: d[2],\n ects: i > 0 ? 0 : ectsPrPeriod / (ectsPrPeriod / ectsPrCell / d[5]) * d[2],\n code: d[8],\n // Fx: 15 ECTS pr. kvarter / 'den samlede colspan'\n // aka antallet af uddannelser på et givent kvarter / colspan * rowspan\n };\n }\n });\n }\n return dataArr;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n nodes: [],\n active: props.track,\n };\n }\n\n componentDidMount() {\n const { print, response, lang } = this.props;\n const nodes = new Array(response.lines.length);\n const promises = [];\n response.lines.forEach((value, key) => {\n promises.push(new Promise((resolve) => {\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${value.id}`;\n axios.get(url).then((promise) => {\n const periodType = promise.data.DiagramMetaData.DATA[0] ? promise.data.DiagramMetaData.DATA[0][3] : '';\n const node = {\n name: lang === 'da' ? value.name : value.nameEnglish,\n periodType,\n table: AUDiagrammeComponent.diagrammeParse(promise.data, lang),\n list: AUDiagrammeComponent.diagrammeParse(promise.data, lang, 'list'),\n };\n nodes[key] = node;\n resolve(promise.data);\n });\n }));\n });\n Promise.all(promises).then(() => {\n this.setState({\n nodes,\n }, () => {\n if (print) {\n window.print();\n }\n });\n });\n }\n\n changeActive(event) {\n this.setState({\n active: event.target.value,\n });\n }\n\n render() {\n const { nodes, active } = this.state;\n const { course, lang } = this.props;\n\n if (nodes.length === 0) {\n return <div />;\n }\n\n const { print } = this.props;\n const kkLinkedExams = `http://kursuskatalog.au.dk/${lang}/linkedexams/`;\n const kkElectiveGroup = `http://kursuskatalog.au.dk/${lang}/electivegroups/`;\n const tilvalg = 'http://tilvalg.au.dk';\n\n const { table, list, name } = nodes[active];\n const renderRows = table.map((r, i) => {\n const diaKey = i;\n const renderCells = r.map((c, j) => {\n const cellKey = j;\n if (c.name) {\n let href = kkLinkedExams + c.courseId;\n if (c.type === 'tlv') {\n href = tilvalg;\n } else if (c.type === 'val' || c.type === 'ogr') {\n href = kkElectiveGroup + c.code;\n }\n\n return (\n <td key={cellKey} className={c.type} colSpan={c.colspan} rowSpan={c.rowspan}>\n <a target=\"_blank\" rel=\"noreferrer noopener\" href={href}>\n {c.name}\n <br />\n {`(${c.ects} ECTS)`}\n </a>\n </td>\n );\n }\n return null;\n });\n\n return (\n <tr key={diaKey}>\n <th>\n {`${i + 1}. `}\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\n </th>\n {renderCells}\n </tr>\n );\n });\n\n const renderList = list.map((l, i) => {\n const diaKey = i;\n const renderEducations = l.map((e, j) => {\n const eduKey = j;\n if (e.name) {\n let href = kkLinkedExams + e.courseId;\n if (e.type === 'tlv') {\n href = tilvalg;\n } else if (e.type === 'val' || e.type === 'ogr') {\n href = kkElectiveGroup + e.code;\n }\n return (\n <p key={eduKey} className={e.type}>\n <span>\n <a target=\"_blank\" rel=\"noreferrer noopener\" href={href}>\n {e.name}\n </a>\n </span>\n {(() => {\n if (e.ects > 0) {\n return (\n <span>\n <strong>\n {e.ects}\n </strong>\n {' ECTS'}\n </span>\n );\n }\n return (\n <span>\n <strong>\n …\n </strong>\n </span>\n );\n })()}\n </p>\n );\n }\n return null;\n });\n\n return (\n <li key={diaKey}>\n <h3>\n {`${i + 1}. `}\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\n </h3>\n {renderEducations}\n </li>\n );\n });\n\n const renderOptions = nodes.map(\n (node, key) => <option key={node.name} value={key}>{node.name}</option>,\n );\n\n return (\n <div>\n <h2>{nodes[active].name}</h2>\n {(() => {\n if (nodes.length > 1 && !print) {\n return [\n <p key={0}>{`${diagrammeLabels[lang].diagramme.select}:`}</p>,\n <select key={1} onChange={this.changeActive.bind(this)} value={active}>\n {renderOptions}\n </select>,\n ];\n }\n return null;\n })()}\n {(() => {\n if (!print) {\n const printUrl = `${window.location.href}?coursesprint=${course}|${active}`;\n return (\n <a\n className=\"print\"\n href={printUrl}\n onClick={(e) => {\n e.preventDefault();\n window.open(printUrl, '', 'width=1025,height=600');\n }}\n >\n Print\n </a>\n );\n }\n return null;\n })()}\n <div className=\"study-diagramme hide-for-small-only\">\n {(() => {\n if (table.length < 1 || list.length < 1) {\n return <div>{`${diagrammeLabels[lang].diagramme.none} ${name}`}</div>;\n }\n return (\n <table>\n <tbody>\n {renderRows}\n </tbody>\n </table>\n );\n })()}\n </div>\n <div className=\"study-diagramme list show-for-small-only\">\n {(() => {\n if (table.length < 1 || list.length < 1) {\n return <div>{`${diagrammeLabels[lang].diagramme.none} ${name}`}</div>;\n }\n return (\n <ul className=\"resetlist\">\n {renderList}\n </ul>\n );\n })()}\n </div>\n <dl className=\"au_edutable_legend\">\n <dt className=\"au_edutable_mandatory\">{diagrammeLabels[lang].diagramme.courseTypes[0]}</dt>\n <dd />\n <dt className=\"au_edutable_optional\">{diagrammeLabels[lang].diagramme.courseTypes[1]}</dt>\n <dd />\n <dt className=\"au_edutable_supplementary\">{diagrammeLabels[lang].diagramme.courseTypes[2]}</dt>\n <dd />\n <dt className=\"au_edutable_support\">{diagrammeLabels[lang].diagramme.courseTypes[3]}</dt>\n <dd />\n </dl>\n </div>\n );\n }\n}\n\nAUDiagrammeComponent.propTypes = {\n lang: PropTypes.string.isRequired,\n response: PropTypes.shape({\n lines: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n nameEnglish: PropTypes.string.isRequired,\n })).isRequired,\n }).isRequired,\n course: PropTypes.string.isRequired,\n track: PropTypes.string.isRequired,\n print: PropTypes.bool.isRequired,\n};\n\nAUDiagrammeComponent.displayName = 'AUDiagrammeComponent';\nexport default AUDiagrammeComponent;\n","/* eslint no-prototype-builtins: 0 */\n/* eslint no-restricted-syntax: 0 */\n/* eslint no-unused-vars: 0 */\n/* eslint-env browser */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport axios from 'axios';\nimport AUDiagrammeComponent from '../components/AUDiagrammeComponent';\n\nconst defaultOptions = {\n config: {\n container: '.au_edutable_eddi_container',\n courseID: 0,\n track: 0,\n },\n};\n\nclass AUDiagramme {\n constructor(lang, tables) {\n this.tables = tables;\n this.lang = lang;\n }\n\n static mergeOptions(_table) {\n const table = _table;\n if (!table.hasOwnProperty('config')) {\n table.config = {};\n }\n\n for (const conf in defaultOptions.config) {\n if (!table.config.hasOwnProperty(conf)) {\n table.config[conf] = defaultOptions.config[conf];\n }\n }\n }\n\n init() {\n const qsCourses = AU.helpers.getQuerystring('coursesprint');\n if (qsCourses !== '') {\n const coursesSplit = qsCourses.split(',');\n for (let j = 0; j < coursesSplit.length; j += 1) {\n const trackSplit = coursesSplit[j].split('|');\n if (trackSplit.length > 1) {\n this.tables.push({\n config: {\n container: `#print_course_${j}`,\n courseID: parseInt(trackSplit[0], 10),\n track: parseInt(trackSplit[1], 10),\n },\n });\n } else {\n this.tables.push({\n config: {\n container: `#print_course_${j}`,\n courseID: parseInt(trackSplit[0], 10),\n },\n });\n }\n ReactDOM.render(<div id={`print_course_${j}`} />, document.querySelector('body'));\n }\n }\n for (let i = 0; i < this.tables.length; i += 1) {\n const table = this.tables[i];\n table.id = i;\n AUDiagramme.mergeOptions(table);\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${table.config.courseID}`;\n axios.get(url).then((promise) => {\n const { data } = promise;\n const mountNode = document.querySelector(table.config.container);\n if (mountNode) {\n ReactDOM.render(\n <AUDiagrammeComponent\n lang={this.lang}\n response={data}\n course={table.config.courseID}\n track={table.config.track}\n print={qsCourses !== ''}\n />,\n mountNode,\n );\n }\n });\n }\n }\n}\n\nwindow.AUDiagramme = AUDiagramme;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"diagramme.js","mappings":"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","sources":["webpack://@aarhus-university/au-lib-react-components/webpack/universalModuleDefinition","webpack://@aarhus-university/au-lib-react-components/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://@aarhus-university/au-lib-react-components/./node_modules/prop-types/index.js","webpack://@aarhus-university/au-lib-react-components/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@aarhus-university/au-lib-react-components/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack://@aarhus-university/au-lib-react-components/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}","webpack://@aarhus-university/au-lib-react-components/webpack/bootstrap","webpack://@aarhus-university/au-lib-react-components/webpack/runtime/compat get default export","webpack://@aarhus-university/au-lib-react-components/webpack/runtime/define property getters","webpack://@aarhus-university/au-lib-react-components/webpack/runtime/hasOwnProperty shorthand","webpack://@aarhus-university/au-lib-react-components/webpack/runtime/make namespace object","webpack://@aarhus-university/au-lib-react-components/./src/layout-2016/components/diagramme/AUDiagrammeComponent.js","webpack://@aarhus-university/au-lib-react-components/./src/layout-2016/lib/au-diagramme.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\")) : factory(root[\"React\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, (__WEBPACK_EXTERNAL_MODULE__244__, __WEBPACK_EXTERNAL_MODULE__741__) => {\nreturn ","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__244__;","module.exports = __WEBPACK_EXTERNAL_MODULE__741__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* eslint-env browser */\n/* eslint no-mixed-operators: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst diagrammeLabels = {\n da: {\n diagramme: {\n semestre: 'semester',\n kvarterer: 'quarter',\n regulation: 'Academic regulations',\n courseTypes: ['Obligatorisk', 'Valgfag', 'Tilvalg', 'Støttefag'],\n none: 'Der er ikke oprettet et studiediagram for',\n select: 'Vælg linje',\n },\n },\n en: {\n diagramme: {\n semestre: 'semester',\n kvarterer: 'kvarter',\n regulation: 'Studieordning',\n courseTypes: ['Compulsory', 'Elective', 'Supplementary subject', 'Auxiliary subject'],\n none: 'No study diagramme has been created for',\n select: 'Choose track',\n },\n },\n};\n\nclass AUDiagrammeComponent extends React.PureComponent {\n static diagrammeParse(data, lang, mode = 'table') {\n const dataArr = [];\n if (data.DiagramMetaData.DATA.length > 0) {\n for (let j = 0; j < data.DiagramMetaData.DATA[0][1]; j += 1) {\n if (!dataArr[j]) {\n dataArr.push([]);\n }\n }\n\n data.DiagramStruktur.DATA.forEach((d) => {\n const periodIndex = d[0]; // rækkefølge af semester/kvarter\n const orderIndex = d[1]; // rækkefølge i et semester/kvarter\n for (let k = 0; k < orderIndex; k += 1) {\n if (!dataArr[periodIndex][k]) {\n dataArr[periodIndex].push([]);\n }\n }\n\n const rowspan = mode === 'table' ? 1 : d[2]; // lister viser fag, som spænder over flere perioder, i alle perioder - tabeller bruger rowspan\n const ectsPrPeriod = data.DiagramMetaData.DATA[0][0];\n const ectsPrCell = 5;\n for (let i = 0; i < rowspan; i += 1) {\n dataArr[periodIndex + i][orderIndex] = {\n courseId: d[3],\n name: lang === 'da' ? d[6] : d[7],\n type: d[4].toLowerCase(),\n colspan: d[5],\n rowspan: d[2],\n ects: i > 0 ? 0 : ectsPrPeriod / (ectsPrPeriod / ectsPrCell / d[5]) * d[2],\n code: d[8],\n // Fx: 15 ECTS pr. kvarter / 'den samlede colspan'\n // aka antallet af uddannelser på et givent kvarter / colspan * rowspan\n };\n }\n });\n }\n return dataArr;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n nodes: [],\n active: props.track,\n };\n }\n\n componentDidMount() {\n const { print, response, lang } = this.props;\n const nodes = new Array(response.lines.length);\n const promises = [];\n response.lines.forEach((value, key) => {\n promises.push(new Promise((resolve) => {\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${value.id}`;\n fetch(url).then((promise) => promise.json()).then((data) => {\n const periodType = data.DiagramMetaData.DATA[0] ? data.DiagramMetaData.DATA[0][3] : '';\n const node = {\n name: lang === 'da' ? value.name : value.nameEnglish,\n periodType,\n table: AUDiagrammeComponent.diagrammeParse(data, lang),\n list: AUDiagrammeComponent.diagrammeParse(data, lang, 'list'),\n };\n nodes[key] = node;\n resolve(data);\n });\n }));\n });\n Promise.all(promises).then(() => {\n this.setState({\n nodes,\n }, () => {\n if (print) {\n window.print();\n }\n });\n });\n }\n\n changeActive(event) {\n this.setState({\n active: event.target.value,\n });\n }\n\n render() {\n const { nodes, active } = this.state;\n const { course, lang } = this.props;\n\n if (nodes.length === 0) {\n return <div />;\n }\n\n const { print } = this.props;\n const kkLinkedExams = `http://kursuskatalog.au.dk/${lang}/linkedexams/`;\n const kkElectiveGroup = `http://kursuskatalog.au.dk/${lang}/electivegroups/`;\n const tilvalg = 'http://tilvalg.au.dk';\n\n const { table, list, name } = nodes[active];\n const renderRows = table.map((r, i) => {\n const diaKey = i;\n const renderCells = r.map((c, j) => {\n const cellKey = j;\n if (c.name) {\n let href = kkLinkedExams + c.courseId;\n if (c.type === 'tlv') {\n href = tilvalg;\n } else if (c.type === 'val' || c.type === 'ogr') {\n href = kkElectiveGroup + c.code;\n }\n\n return (\n <td key={cellKey} className={c.type} colSpan={c.colspan} rowSpan={c.rowspan}>\n <a target=\"_blank\" rel=\"noreferrer noopener\" href={href}>\n {c.name}\n <br />\n {`(${c.ects} ECTS)`}\n </a>\n </td>\n );\n }\n return null;\n });\n\n return (\n <tr key={diaKey}>\n <th>\n {`${i + 1}. `}\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\n </th>\n {renderCells}\n </tr>\n );\n });\n\n const renderList = list.map((l, i) => {\n const diaKey = i;\n const renderEducations = l.map((e, j) => {\n const eduKey = j;\n if (e.name) {\n let href = kkLinkedExams + e.courseId;\n if (e.type === 'tlv') {\n href = tilvalg;\n } else if (e.type === 'val' || e.type === 'ogr') {\n href = kkElectiveGroup + e.code;\n }\n return (\n <p key={eduKey} className={e.type}>\n <span>\n <a target=\"_blank\" rel=\"noreferrer noopener\" href={href}>\n {e.name}\n </a>\n </span>\n {(() => {\n if (e.ects > 0) {\n return (\n <span>\n <strong>\n {e.ects}\n </strong>\n {' ECTS'}\n </span>\n );\n }\n return (\n <span>\n <strong>\n …\n </strong>\n </span>\n );\n })()}\n </p>\n );\n }\n return null;\n });\n\n return (\n <li key={diaKey}>\n <h3>\n {`${i + 1}. `}\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\n </h3>\n {renderEducations}\n </li>\n );\n });\n\n const renderOptions = nodes.map(\n (node, key) => <option key={node.name} value={key}>{node.name}</option>,\n );\n\n return (\n <div>\n <h2>{nodes[active].name}</h2>\n {(() => {\n if (nodes.length > 1 && !print) {\n return [\n <p key={0}>{`${diagrammeLabels[lang].diagramme.select}:`}</p>,\n <select key={1} onChange={this.changeActive.bind(this)} value={active}>\n {renderOptions}\n </select>,\n ];\n }\n return null;\n })()}\n {(() => {\n if (!print) {\n const printUrl = `${window.location.href}?coursesprint=${course}|${active}`;\n return (\n <a\n className=\"print\"\n href={printUrl}\n onClick={(e) => {\n e.preventDefault();\n window.open(printUrl, '', 'width=1025,height=600');\n }}\n >\n Print\n </a>\n );\n }\n return null;\n })()}\n <div className=\"study-diagramme hide-for-small-only\">\n {(() => {\n if (table.length < 1 || list.length < 1) {\n return <div>{`${diagrammeLabels[lang].diagramme.none} ${name}`}</div>;\n }\n return (\n <table>\n <tbody>\n {renderRows}\n </tbody>\n </table>\n );\n })()}\n </div>\n <div className=\"study-diagramme list show-for-small-only\">\n {(() => {\n if (table.length < 1 || list.length < 1) {\n return <div>{`${diagrammeLabels[lang].diagramme.none} ${name}`}</div>;\n }\n return (\n <ul className=\"resetlist\">\n {renderList}\n </ul>\n );\n })()}\n </div>\n <dl className=\"au_edutable_legend\">\n <dt className=\"au_edutable_mandatory\">{diagrammeLabels[lang].diagramme.courseTypes[0]}</dt>\n <dd />\n <dt className=\"au_edutable_optional\">{diagrammeLabels[lang].diagramme.courseTypes[1]}</dt>\n <dd />\n <dt className=\"au_edutable_supplementary\">{diagrammeLabels[lang].diagramme.courseTypes[2]}</dt>\n <dd />\n <dt className=\"au_edutable_support\">{diagrammeLabels[lang].diagramme.courseTypes[3]}</dt>\n <dd />\n </dl>\n </div>\n );\n }\n}\n\nAUDiagrammeComponent.propTypes = {\n lang: PropTypes.string.isRequired,\n response: PropTypes.shape({\n lines: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n nameEnglish: PropTypes.string.isRequired,\n })).isRequired,\n }).isRequired,\n course: PropTypes.string.isRequired,\n track: PropTypes.string.isRequired,\n print: PropTypes.bool.isRequired,\n};\n\nAUDiagrammeComponent.displayName = 'AUDiagrammeComponent';\nexport default AUDiagrammeComponent;\n","/* eslint no-prototype-builtins: 0 */\n/* eslint no-restricted-syntax: 0 */\n/* eslint no-unused-vars: 0 */\n/* eslint-env browser */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport AUDiagrammeComponent from '../components/diagramme/AUDiagrammeComponent';\n\nconst defaultOptions = {\n config: {\n container: '.au_edutable_eddi_container',\n courseID: 0,\n track: 0,\n },\n};\n\nclass AUDiagramme {\n constructor(lang, tables) {\n this.tables = tables;\n this.lang = lang;\n }\n\n static mergeOptions(_table) {\n const table = _table;\n if (!table.hasOwnProperty('config')) {\n table.config = {};\n }\n\n for (const conf in defaultOptions.config) {\n if (!table.config.hasOwnProperty(conf)) {\n table.config[conf] = defaultOptions.config[conf];\n }\n }\n }\n\n init() {\n const qsCourses = AU.helpers.getQuerystring('coursesprint');\n if (qsCourses !== '') {\n const coursesSplit = qsCourses.split(',');\n for (let j = 0; j < coursesSplit.length; j += 1) {\n const trackSplit = coursesSplit[j].split('|');\n if (trackSplit.length > 1) {\n this.tables.push({\n config: {\n container: `#print_course_${j}`,\n courseID: parseInt(trackSplit[0], 10),\n track: parseInt(trackSplit[1], 10),\n },\n });\n } else {\n this.tables.push({\n config: {\n container: `#print_course_${j}`,\n courseID: parseInt(trackSplit[0], 10),\n },\n });\n }\n ReactDOM.render(<div id={`print_course_${j}`} />, document.querySelector('body'));\n }\n }\n for (let i = 0; i < this.tables.length; i += 1) {\n const table = this.tables[i];\n table.id = i;\n AUDiagramme.mergeOptions(table);\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${table.config.courseID}`;\n fetch(url).then((promise) => promise.json()).then((data) => {\n const mountNode = document.querySelector(table.config.container);\n if (mountNode) {\n ReactDOM.render(\n <AUDiagrammeComponent\n lang={this.lang}\n response={data}\n course={table.config.courseID}\n track={table.config.track}\n print={qsCourses !== ''}\n />,\n mountNode,\n );\n }\n });\n }\n }\n}\n\nwindow.AUDiagramme = AUDiagramme;\n"],"names":["root","factory","exports","module","require","define","amd","a","i","self","__WEBPACK_EXTERNAL_MODULE__244__","__WEBPACK_EXTERNAL_MODULE__741__","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","diagrammeLabels","da","diagramme","semestre","kvarterer","regulation","courseTypes","none","select","en","AUDiagrammeComponent","React","data","lang","mode","dataArr","DiagramMetaData","DATA","length","j","push","DiagramStruktur","forEach","periodIndex","orderIndex","k","rowspan","ectsPrPeriod","courseId","type","toLowerCase","colspan","ects","code","constructor","super","this","state","nodes","active","track","componentDidMount","print","response","Array","lines","promises","Promise","resolve","url","id","fetch","then","promise","json","periodType","nameEnglish","table","diagrammeParse","list","all","setState","window","changeActive","event","target","render","course","kkLinkedExams","kkElectiveGroup","tilvalg","renderRows","map","diaKey","renderCells","c","cellKey","href","className","colSpan","rowSpan","rel","renderList","l","renderEducations","e","eduKey","renderOptions","onChange","bind","printUrl","onClick","preventDefault","open","propTypes","displayName","defaultOptions","config","container","courseID","AUDiagramme","tables","_table","conf","init","qsCourses","AU","helpers","getQuerystring","coursesSplit","split","trackSplit","parseInt","ReactDOM","document","querySelector","mergeOptions","mountNode"],"sourceRoot":""}
|
package/build/umd/flowbox.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"),require("axios"));else if("function"==typeof define&&define.amd)define(["react","react-dom","axios"],t);else{var n="object"==typeof exports?t(require("react"),require("react-dom"),require("axios")):t(e.React,e.ReactDOM,e.axios);for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(window,(function(e,t,n){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(o,a,function(t){return e[t]}.bind(null,a));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=14)}([function(t,n){t.exports=e},function(e,t,n){e.exports=n(12)()},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}e.exports=function(e,t,o){return t&&n(e.prototype,t),o&&n(e,o),e}},function(e,t,n){var o=n(10),a=n(2);e.exports=function(e,t){return!t||"object"!==o(t)&&"function"!=typeof t?a(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var o=n(11);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=o=function(e){return n(e)}:e.exports=o=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},o(t)}e.exports=o},function(e,t){function n(t,o){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,o)}e.exports=n},function(e,t,n){"use strict";var o=n(13);function a(){}function r(){}r.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,r,i){if(i!==o){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";n.r(t);var o=n(3),a=n.n(o),r=n(4),i=n.n(r),l=n(0),c=n.n(l),s=n(8),u=n.n(s),p=n(5),d=n.n(p),f=n(6),m=n.n(f),y=n(7),h=n.n(y),b=n(2),g=n.n(b),v=n(1),E=n.n(v),x=n(9),k=n.n(x),w=(window.serviceScopeProfile,function(e){function t(e){var n;return a()(this,t),(n=d()(this,m()(t).call(this,e))).state={loading:!0,visible:e.visible},n.lazyLoad=n.lazyLoad.bind(g()(g()(n))),n}return h()(t,e),i()(t,[{key:"componentDidMount",value:function(){var e=this;this.lazyLoad(),window.addEventListener("scroll",(function(){e.lazyLoad()}))}},{key:"componentDidUpdate",value:function(){this.lazyLoad()}},{key:"lazyLoad",value:function(){var e=this.props,t=e.loadingCondition,n=e.loaded,o=e.domID,a=e.onLoad,r=this.state,i=r.loading,l=r.visible,c=document.getElementById(o);!n&&i&&t&&(l||function(e){if(null===e)return!1;var t=e.getBoundingClientRect();return t.bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)}(c))&&this.setState({loading:!1},(function(){a()}))}},{key:"render",value:function(){var e=this.props,t=e.columns,n=e.content,o=e.loaded,a=e.domID,r=e.children;return o?r||n:c.a.createElement("div",{id:a,className:"cell column ".concat(t)},c.a.createElement("p",{className:"spinner"}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.visible!==t.visible?{visible:e.visible}:null}}]),t}(c.a.Component));w.defaultProps={domID:"au-spinner-component",visible:!1,columns:"large-12 medium-12 small-12",content:null,children:null,onLoad:function(){}},w.propTypes={domID:E.a.string,visible:E.a.bool,columns:E.a.string,content:E.a.element,children:E.a.element,loaded:E.a.bool.isRequired,loadingCondition:E.a.bool.isRequired,onLoad:E.a.func},w.displayName="AUSpinnerComponent";var S=w,O={da:{select:"Vælg",back:"Tilbage",building:"Bygning",office:"Kontor"},en:{select:"Select",back:"Back",building:"Building",office:"Office"}},_=function(e){function t(e){var n;return a()(this,t),(n=d()(this,m()(t).call(this,e))).state={persons:[]},n}return h()(t,e),i()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.phone,n="https://ipure.nfit.au.dk/searchPeople.php?mode=json&q=".concat(t);k.a.get(n).then((function(n){var o=n.data;e.setState({persons:o},(function(){void 0!==window.flowboxCallback&&window.flowboxCallback.forEach((function(e){e.target==="p-".concat(t)&&e.func(o)}))}))}))}},{key:"render",value:function(){var e=this.state.persons,t=this.props,n=t.lang,o=t.phone,a=e.map((function(e){var t=e.departments,o=t.length>0?t[0].email:"",a=t.map((function(e){return[c.a.createElement("span",{key:0,className:"org"},e.name),c.a.createElement("br",{key:1}),c.a.createElement("span",{key:2},"".concat(O[n].building," ").concat(e.address.building.id,", ").concat(O[n].office," ").concat(e.address.building.room)),c.a.createElement("br",{key:3}),c.a.createElement("span",{key:4,className:"adr"},c.a.createElement("span",{className:"street-address"},e.address.street),c.a.createElement("span",null,", "),c.a.createElement("span",{className:"postal-code"},e.address.zip),c.a.createElement("span",{className:"localityName"},e.address.city)),c.a.createElement("br",{key:5}),c.a.createElement("br",{key:6}),c.a.createElement("span",{key:7},"T: "),c.a.createElement("span",{key:8,className:"tel"},e.phone),c.a.createElement("br",{key:9}),c.a.createElement("span",{key:10},"M: "),c.a.createElement("span",{key:11,className:"tel"},e.mobile),c.a.createElement("br",{key:12}),c.a.createElement("span",{key:13},"E: "),c.a.createElement("a",{key:14,className:"email",href:"mailto:".concat(e.email)},e.email),c.a.createElement("br",{key:15})]}));return c.a.createElement("div",{key:e.id,className:"vcard"},c.a.createElement("h2",{className:"fn"},c.a.createElement("a",{className:"url",href:"http://au.dk/".concat(o)},e.fullName)),c.a.createElement("p",null,e.photo?c.a.createElement("a",{className:"photo",href:"http://au.dk/".concat(o)},c.a.createElement("img",{style:{width:"70px",float:"right",marginLeft:"1em"},src:e.photo,alt:e.fullName,title:e.fullName})):null,a))}));return c.a.createElement(S,{loadingCondition:0===e.length,loaded:e.length>0},c.a.createElement("div",{id:"p-".concat(o)},a))}}]),t}(c.a.Component);_.propTypes={phone:E.a.string.isRequired,lang:E.a.string.isRequired},_.displayName="FlowBoxPhoneComponent";var N=_,C=function(e){function t(e){var n;a()(this,t),n=d()(this,m()(t).call(this,e));var o=e.box;return n.state={node:o.item},n.prevNode=n.prevNode.bind(g()(g()(n))),n.nextNode=n.nextNode.bind(g()(g()(n))),n.handleSelectChange=n.handleSelectChange.bind(g()(g()(n))),n}return h()(t,e),i()(t,[{key:"nextNode",value:function(e){this.setState({node:e})}},{key:"prevNode",value:function(e){this.setState({node:e.parent})}},{key:"handleSelectChange",value:function(e){var t=this.state.node.children.find((function(t){return t.name===e.target.value}));this.setState({node:t})}},{key:"render",value:function(){var e=this,t=this.state.node,n=this.props,o=n.box,a=n.lang,r=t.children;return c.a.createElement("div",null,c.a.createElement("h2",{dangerouslySetInnerHTML:{__html:"<span>".concat(o.data.prepend," </span>").concat(t.name)}}),"select"===o.config.render&&r.filter((function(e){return e.children.length>0})).length>0?c.a.createElement("select",{onChange:e.handleSelectChange},c.a.createElement("option",{value:""},"".concat(O[a].select,"...")),r.map((function(e){return c.a.createElement("option",{key:e.name,value:e.name},e.name)}))):c.a.createElement("ul",null,r.map((function(t){return c.a.createElement("li",{key:t.name},t.children.length>0?c.a.createElement("button",{type:"button",onClick:function(){e.nextNode(t)},dangerouslySetInnerHTML:{__html:t.name}}):-1===t.name.indexOf(" ")&&window.renderVCard?c.a.createElement(N,{phone:t.name,lang:a}):c.a.createElement("span",{dangerouslySetInnerHTML:{__html:t.name}}))}))),null!=t.parent?c.a.createElement("button",{type:"button",className:"button small",onClick:function(){e.prevNode(t)}},O[a].back):null)}}]),t}(c.a.Component);C.propTypes={box:E.a.shape({item:E.a.shape({name:E.a.string.isRequired}).isRequired,data:E.a.shape({prepend:E.a.string.isRequired}).isRequired,config:E.a.shape({render:E.a.string.isRequired}).isRequired}).isRequired,lang:E.a.string.isRequired},C.displayName="FlowBoxComponent";var P=C,q={config:{container:".au_flowbox",tracking:"/virtual/flowbox/",render:"ul"},data:{mode:"list",source:".au_flowbox_list",headline:"Overskrift",prepend:""}},T=function(){function e(t,n){a()(this,e),this.boxes=n,this.lang=t}return i()(e,[{key:"init",value:function(){for(var t=0;t<this.boxes.length;t+=1){var n=this.boxes[t];e.mergeOptions(n),n.id=t,n.item={name:n.data.headline,children:[],parent:null},e.parse(n);var o=document.querySelector(n.config.container);u.a.render(c.a.createElement(P,{box:n,lang:this.lang}),o)}}}],[{key:"mergeOptions",value:function(e){var t=e;for(var n in t.hasOwnProperty("config")||(t.config={}),q.config)t.config.hasOwnProperty(n)||(t.config[n]=q.config[n]);for(var o in t.hasOwnProperty("data")||(t.data={}),q.data)t.data.hasOwnProperty(o)||(t.data[o]=q.data[o])}},{key:"parse",value:function(e){!function e(t,n,o){n.forEach((function(n){n.querySelectorAll(o).forEach((function(n){var o={name:n.innerHTML,children:[],parent:t};t.children.push(o);var a=n.parentElement.querySelectorAll(":scope > ul");a.length>0&&e(o,a,":scope > li > p")}))}))}(e.item,document.querySelectorAll(e.data.source),window.flowboxScopeSelector||":scope > li > p")}}]),e}();window.AUFlowbox=T}])}));
|
|
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 n="object"==typeof exports?t(require("react"),require("react-dom")):t(e.React,e.ReactDOM);for(var a in n)("object"==typeof exports?exports:e)[a]=n[a]}}(self,((e,t)=>(()=>{var n={703:(e,t,n)=>{"use strict";var a=n(414);function o(){}function r(){}r.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,r,s){if(s!==a){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,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:r,resetWarningCache:o};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},244:t=>{"use strict";t.exports=e},741:e=>{"use strict";e.exports=t}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return n[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";o.r(r);var e=o(244),t=o.n(e),n=o(741),a=o.n(n),s=o(697),l=o.n(s);class i extends t().Component{constructor(e){super(e),this.state={loading:!0,visible:e.visible},this.lazyLoad=this.lazyLoad.bind(this)}componentDidMount(){this.lazyLoad(),window.addEventListener("scroll",(()=>{this.lazyLoad()}))}componentDidUpdate(){this.lazyLoad()}static getDerivedStateFromProps(e,t){return e.visible!==t.visible?{visible:e.visible}:null}lazyLoad(){const{loadingCondition:e,loaded:t,domID:n,onLoad:a}=this.props,{loading:o,visible:r}=this.state,s=document.getElementById(n);!t&&o&&e&&(r||(e=>{if(null===e)return!1;const t=e.getBoundingClientRect();return t.bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)})(s))&&this.setState({loading:!1},(()=>{a()}))}render(){const{columns:e,content:n,loaded:a,domID:o,children:r}=this.props;return a?r||n:t().createElement("div",{id:o,className:`cell column ${e}`},t().createElement("p",{className:"spinner"}))}}i.defaultProps={domID:"au-spinner-component",visible:!1,columns:"large-12 medium-12 small-12",content:null,children:null,onLoad:()=>{}},i.propTypes={domID:l().string,visible:l().bool,columns:l().string,content:l().element,children:l().element,loaded:l().bool.isRequired,loadingCondition:l().bool.isRequired,onLoad:l().func},i.displayName="AUSpinnerComponent";const c=i,d={da:{select:"Vælg",back:"Tilbage",building:"Bygning",office:"Kontor"},en:{select:"Select",back:"Back",building:"Building",office:"Office"}};class p extends t().Component{constructor(e){super(e),this.state={persons:[]}}componentDidMount(){const{phone:e}=this.props;fetch(`https://ipure.nfit.au.dk/searchPeople.php?mode=json&q=${e}`).then((e=>e.json())).then((t=>{this.setState({persons:t},(()=>{void 0!==window.flowboxCallback&&window.flowboxCallback.forEach((n=>{n.target===`p-${e}`&&n.func(t)}))}))}))}render(){const{persons:e}=this.state,{lang:n,phone:a}=this.props,o=e.map((e=>{const{departments:a}=e,o=a.length>0?a[0].email:"",r=a.map((e=>[t().createElement("span",{key:0,className:"org"},e.name),t().createElement("br",{key:1}),t().createElement("span",{key:2},`${d[n].building} ${e.address.building.id}, ${d[n].office} ${e.address.building.room}`),t().createElement("br",{key:3}),t().createElement("span",{key:4,className:"adr"},t().createElement("span",{className:"street-address"},e.address.street),t().createElement("span",null,", "),t().createElement("span",{className:"postal-code"},e.address.zip),t().createElement("span",{className:"localityName"},e.address.city)),t().createElement("br",{key:5}),t().createElement("br",{key:6}),t().createElement("span",{key:7},"T: "),t().createElement("span",{key:8,className:"tel"},e.phone),t().createElement("br",{key:9}),t().createElement("span",{key:10},"M: "),t().createElement("span",{key:11,className:"tel"},e.mobile),t().createElement("br",{key:12}),t().createElement("span",{key:13},"E: "),t().createElement("a",{key:14,className:"email",href:`mailto:${e.email}`},e.email),t().createElement("br",{key:15})]));return t().createElement("div",{key:e.id,className:"vcard"},t().createElement("h2",{className:"fn"},t().createElement("a",{className:"url",href:`http://au.dk/${o}`},e.fullName)),t().createElement("p",null,e.photo?t().createElement("a",{className:"photo",href:`http://au.dk/${o}`},t().createElement("img",{style:{width:"70px",float:"right",marginLeft:"1em"},src:e.photo,alt:e.fullName,title:e.fullName})):null,r))}));return t().createElement(c,{loadingCondition:0===e.length,loaded:e.length>0},t().createElement("div",{id:`p-${a}`},o))}}p.propTypes={phone:l().string.isRequired,lang:l().string.isRequired},p.displayName="FlowBoxPhoneComponent";const m=p;class u extends t().Component{constructor(e){super(e);const{box:t}=e;this.state={node:t.item},this.prevNode=this.prevNode.bind(this),this.nextNode=this.nextNode.bind(this),this.handleSelectChange=this.handleSelectChange.bind(this)}handleSelectChange(e){const{node:t}=this.state,n=t.children.find((t=>t.name===e.target.value));this.setState({node:n})}nextNode(e){this.setState({node:e})}prevNode(e){this.setState({node:e.parent})}render(){const{node:e}=this.state,{box:n,lang:a}=this.props,{children:o}=e;return t().createElement("div",null,t().createElement("h2",{dangerouslySetInnerHTML:{__html:`<span>${n.data.prepend} </span>${e.name}`}}),(()=>"select"===n.config.render&&o.filter((e=>e.children.length>0)).length>0?t().createElement("select",{onChange:this.handleSelectChange},t().createElement("option",{value:""},`${d[a].select}...`),o.map((e=>t().createElement("option",{key:e.name,value:e.name},e.name)))):t().createElement("ul",null,o.map((e=>t().createElement("li",{key:e.name},(()=>e.children.length>0?t().createElement("button",{type:"button",onClick:()=>{this.nextNode(e)},dangerouslySetInnerHTML:{__html:e.name}}):-1===e.name.indexOf(" ")&&window.renderVCard?t().createElement(m,{phone:e.name,lang:a}):t().createElement("span",{dangerouslySetInnerHTML:{__html:e.name}}))())))))(),(()=>null!=e.parent?t().createElement("button",{type:"button",className:"button small",onClick:()=>{this.prevNode(e)}},d[a].back):null)())}}u.propTypes={box:l().shape({item:l().shape({name:l().string.isRequired}).isRequired,data:l().shape({prepend:l().string.isRequired}).isRequired,config:l().shape({render:l().string.isRequired}).isRequired}).isRequired,lang:l().string.isRequired},u.displayName="FlowBoxComponent";const h=u,f={config:{container:".au_flowbox",tracking:"/virtual/flowbox/",render:"ul"},data:{mode:"list",source:".au_flowbox_list",headline:"Overskrift",prepend:""}};class g{constructor(e,t){this.boxes=t,this.lang=e}static mergeOptions(e){const t=e;t.hasOwnProperty("config")||(t.config={});for(const e in f.config)t.config.hasOwnProperty(e)||(t.config[e]=f.config[e]);t.hasOwnProperty("data")||(t.data={});for(const e in f.data)t.data.hasOwnProperty(e)||(t.data[e]=f.data[e])}static parse(e){const t=(e,n,a)=>{n.forEach((n=>{n.querySelectorAll(a).forEach((n=>{const a={name:n.innerHTML,children:[],parent:e};e.children.push(a);const o=n.parentElement.querySelectorAll(":scope > ul");o.length>0&&t(a,o,":scope > li > p")}))}))};t(e.item,document.querySelectorAll(e.data.source),window.flowboxScopeSelector||":scope > li > p")}init(){for(let e=0;e<this.boxes.length;e+=1){const n=this.boxes[e];g.mergeOptions(n),n.id=e,n.item={name:n.data.headline,children:[],parent:null},g.parse(n);const o=document.querySelector(n.config.container);a().render(t().createElement(h,{box:n,lang:this.lang}),o)}}}window.AUFlowbox=g})(),r})()));
|
|
2
2
|
//# sourceMappingURL=flowbox.js.map
|