{"version":3,"sources":["webpack://@aarhus-university/au-lib-react-components/webpack/universalModuleDefinition","webpack://@aarhus-university/au-lib-react-components/./src/components/AUDiagrammeComponent.js","webpack://@aarhus-university/au-lib-react-components/./src/lib/au-diagramme.js","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 \"axios\"","webpack://@aarhus-university/au-lib-react-components/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack://@aarhus-university/au-lib-react-components/external {\"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/startup","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"],"names":["root","factory","exports","module","require","define","amd","a","i","self","__WEBPACK_EXTERNAL_MODULE__376__","__WEBPACK_EXTERNAL_MODULE__383__","__WEBPACK_EXTERNAL_MODULE__949__","diagrammeLabels","da","diagramme","semestre","kvarterer","regulation","courseTypes","none","select","en","AUDiagrammeComponent","React","data","lang","mode","dataArr","DiagramMetaData","DATA","length","j","push","DiagramStruktur","forEach","d","periodIndex","orderIndex","k","rowspan","ectsPrPeriod","courseId","name","type","toLowerCase","colspan","ects","code","constructor","props","super","this","state","nodes","active","track","componentDidMount","print","response","Array","lines","promises","value","key","Promise","resolve","url","id","axios","then","promise","periodType","node","nameEnglish","table","diagrammeParse","list","all","setState","window","changeActive","event","target","render","course","kkLinkedExams","kkElectiveGroup","tilvalg","renderRows","map","r","diaKey","renderCells","c","cellKey","href","className","colSpan","rowSpan","rel","renderList","l","renderEducations","e","eduKey","renderOptions","onChange","bind","printUrl","location","onClick","preventDefault","open","propTypes","PropTypes","isRequired","displayName","defaultOptions","config","container","courseID","AUDiagramme","tables","_table","hasOwnProperty","conf","init","qsCourses","AU","helpers","getQuerystring","coursesSplit","split","trackSplit","parseInt","ReactDOM","document","querySelector","mergeOptions","mountNode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","err","Error","getShim","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","n","getter","__esModule","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","call","Symbol","toStringTag"],"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(\"axios\"), require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"axios\", \"react\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"axios\"), require(\"react\"), require(\"react-dom\")) : factory(root[\"axios\"], root[\"React\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function(__WEBPACK_EXTERNAL_MODULE__376__, __WEBPACK_EXTERNAL_MODULE__383__, __WEBPACK_EXTERNAL_MODULE__949__) {\nreturn ","/* eslint-env browser */\r\n/* eslint no-mixed-operators: 0 */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport axios from 'axios';\r\n\r\nconst diagrammeLabels = {\r\n da: {\r\n diagramme: {\r\n semestre: 'semester',\r\n kvarterer: 'quarter',\r\n regulation: 'Academic regulations',\r\n courseTypes: ['Obligatorisk', 'Valgfag', 'Tilvalg', 'Støttefag'],\r\n none: 'Der er ikke oprettet et studiediagram for',\r\n select: 'Vælg linje',\r\n },\r\n },\r\n en: {\r\n diagramme: {\r\n semestre: 'semester',\r\n kvarterer: 'kvarter',\r\n regulation: 'Studieordning',\r\n courseTypes: ['Compulsory', 'Elective', 'Supplementary subject', 'Auxiliary subject'],\r\n none: 'No study diagramme has been created for',\r\n select: 'Choose track',\r\n },\r\n },\r\n};\r\n\r\nclass AUDiagrammeComponent extends React.PureComponent {\r\n static diagrammeParse(data, lang, mode = 'table') {\r\n const dataArr = [];\r\n if (data.DiagramMetaData.DATA.length > 0) {\r\n for (let j = 0; j < data.DiagramMetaData.DATA[0][1]; j += 1) {\r\n if (!dataArr[j]) {\r\n dataArr.push([]);\r\n }\r\n }\r\n\r\n data.DiagramStruktur.DATA.forEach((d) => {\r\n const periodIndex = d[0]; // rækkefølge af semester/kvarter\r\n const orderIndex = d[1]; // rækkefølge i et semester/kvarter\r\n for (let k = 0; k < orderIndex; k += 1) {\r\n if (!dataArr[periodIndex][k]) {\r\n dataArr[periodIndex].push([]);\r\n }\r\n }\r\n\r\n const rowspan = mode === 'table' ? 1 : d[2]; // lister viser fag, som spænder over flere perioder, i alle perioder - tabeller bruger rowspan\r\n const ectsPrPeriod = data.DiagramMetaData.DATA[0][0];\r\n const ectsPrCell = 5;\r\n for (let i = 0; i < rowspan; i += 1) {\r\n dataArr[periodIndex + i][orderIndex] = {\r\n courseId: d[3],\r\n name: lang === 'da' ? d[6] : d[7],\r\n type: d[4].toLowerCase(),\r\n colspan: d[5],\r\n rowspan: d[2],\r\n ects: i > 0 ? 0 : ectsPrPeriod / (ectsPrPeriod / ectsPrCell / d[5]) * d[2],\r\n code: d[8],\r\n // Fx: 15 ECTS pr. kvarter / 'den samlede colspan'\r\n // aka antallet af uddannelser på et givent kvarter / colspan * rowspan\r\n };\r\n }\r\n });\r\n }\r\n return dataArr;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n nodes: [],\r\n active: props.track,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { print, response, lang } = this.props;\r\n const nodes = new Array(response.lines.length);\r\n const promises = [];\r\n response.lines.forEach((value, key) => {\r\n promises.push(new Promise((resolve) => {\r\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${value.id}`;\r\n axios.get(url).then((promise) => {\r\n const periodType = promise.data.DiagramMetaData.DATA[0] ? promise.data.DiagramMetaData.DATA[0][3] : '';\r\n const node = {\r\n name: lang === 'da' ? value.name : value.nameEnglish,\r\n periodType,\r\n table: AUDiagrammeComponent.diagrammeParse(promise.data, lang),\r\n list: AUDiagrammeComponent.diagrammeParse(promise.data, lang, 'list'),\r\n };\r\n nodes[key] = node;\r\n resolve(promise.data);\r\n });\r\n }));\r\n });\r\n Promise.all(promises).then(() => {\r\n this.setState({\r\n nodes,\r\n }, () => {\r\n if (print) {\r\n window.print();\r\n }\r\n });\r\n });\r\n }\r\n\r\n changeActive(event) {\r\n this.setState({\r\n active: event.target.value,\r\n });\r\n }\r\n\r\n render() {\r\n const { nodes, active } = this.state;\r\n const { course, lang } = this.props;\r\n\r\n if (nodes.length === 0) {\r\n return
;\r\n }\r\n\r\n const { print } = this.props;\r\n const kkLinkedExams = `http://kursuskatalog.au.dk/${lang}/linkedexams/`;\r\n const kkElectiveGroup = `http://kursuskatalog.au.dk/${lang}/electivegroups/`;\r\n const tilvalg = 'http://tilvalg.au.dk';\r\n\r\n const { table, list, name } = nodes[active];\r\n const renderRows = table.map((r, i) => {\r\n const diaKey = i;\r\n const renderCells = r.map((c, j) => {\r\n const cellKey = j;\r\n if (c.name) {\r\n let href = kkLinkedExams + c.courseId;\r\n if (c.type === 'tlv') {\r\n href = tilvalg;\r\n } else if (c.type === 'val' || c.type === 'ogr') {\r\n href = kkElectiveGroup + c.code;\r\n }\r\n\r\n return (\r\n \r\n \r\n {c.name}\r\n
\r\n {`(${c.ects} ECTS)`}\r\n
\r\n \r\n );\r\n }\r\n return null;\r\n });\r\n\r\n return (\r\n \r\n \r\n {`${i + 1}. `}\r\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\r\n \r\n {renderCells}\r\n \r\n );\r\n });\r\n\r\n const renderList = list.map((l, i) => {\r\n const diaKey = i;\r\n const renderEducations = l.map((e, j) => {\r\n const eduKey = j;\r\n if (e.name) {\r\n let href = kkLinkedExams + e.courseId;\r\n if (e.type === 'tlv') {\r\n href = tilvalg;\r\n } else if (e.type === 'val' || e.type === 'ogr') {\r\n href = kkElectiveGroup + e.code;\r\n }\r\n return (\r\n

\r\n \r\n \r\n {e.name}\r\n \r\n \r\n {(() => {\r\n if (e.ects > 0) {\r\n return (\r\n \r\n \r\n {e.ects}\r\n \r\n {' ECTS'}\r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n …\r\n \r\n \r\n );\r\n })()}\r\n

\r\n );\r\n }\r\n return null;\r\n });\r\n\r\n return (\r\n
  • \r\n

    \r\n {`${i + 1}. `}\r\n {diagrammeLabels[lang].diagramme[nodes[active].periodType]}\r\n

    \r\n {renderEducations}\r\n
  • \r\n );\r\n });\r\n\r\n const renderOptions = nodes.map(\r\n (node, key) => ,\r\n );\r\n\r\n return (\r\n
    \r\n

    {nodes[active].name}

    \r\n {(() => {\r\n if (nodes.length > 1 && !print) {\r\n return [\r\n

    {`${diagrammeLabels[lang].diagramme.select}:`}

    ,\r\n ,\r\n ];\r\n }\r\n return null;\r\n })()}\r\n {(() => {\r\n if (!print) {\r\n const printUrl = `${window.location.href}?coursesprint=${course}|${active}`;\r\n return (\r\n {\r\n e.preventDefault();\r\n window.open(printUrl, '', 'width=1025,height=600');\r\n }}\r\n >\r\n Print\r\n \r\n );\r\n }\r\n return null;\r\n })()}\r\n
    \r\n {(() => {\r\n if (table.length < 1 || list.length < 1) {\r\n return
    {`${diagrammeLabels[lang].diagramme.none} ${name}`}
    ;\r\n }\r\n return (\r\n \r\n \r\n {renderRows}\r\n \r\n
    \r\n );\r\n })()}\r\n
    \r\n
    \r\n {(() => {\r\n if (table.length < 1 || list.length < 1) {\r\n return
    {`${diagrammeLabels[lang].diagramme.none} ${name}`}
    ;\r\n }\r\n return (\r\n
      \r\n {renderList}\r\n
    \r\n );\r\n })()}\r\n
    \r\n
    \r\n
    {diagrammeLabels[lang].diagramme.courseTypes[0]}
    \r\n
    \r\n
    {diagrammeLabels[lang].diagramme.courseTypes[1]}
    \r\n
    \r\n
    {diagrammeLabels[lang].diagramme.courseTypes[2]}
    \r\n
    \r\n
    {diagrammeLabels[lang].diagramme.courseTypes[3]}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAUDiagrammeComponent.propTypes = {\r\n lang: PropTypes.string.isRequired,\r\n response: PropTypes.shape({\r\n lines: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n nameEnglish: PropTypes.string.isRequired,\r\n })).isRequired,\r\n }).isRequired,\r\n course: PropTypes.string.isRequired,\r\n track: PropTypes.string.isRequired,\r\n print: PropTypes.bool.isRequired,\r\n};\r\n\r\nAUDiagrammeComponent.displayName = 'AUDiagrammeComponent';\r\nexport default AUDiagrammeComponent;\r\n","/* eslint no-prototype-builtins: 0 */\r\n/* eslint no-restricted-syntax: 0 */\r\n/* eslint no-unused-vars: 0 */\r\n/* eslint-env browser */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport axios from 'axios';\r\nimport AUDiagrammeComponent from '../components/AUDiagrammeComponent';\r\n\r\nconst defaultOptions = {\r\n config: {\r\n container: '.au_edutable_eddi_container',\r\n courseID: 0,\r\n track: 0,\r\n },\r\n};\r\n\r\nclass AUDiagramme {\r\n constructor(lang, tables) {\r\n this.tables = tables;\r\n this.lang = lang;\r\n }\r\n\r\n static mergeOptions(_table) {\r\n const table = _table;\r\n if (!table.hasOwnProperty('config')) {\r\n table.config = {};\r\n }\r\n\r\n for (const conf in defaultOptions.config) {\r\n if (!table.config.hasOwnProperty(conf)) {\r\n table.config[conf] = defaultOptions.config[conf];\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n const qsCourses = AU.helpers.getQuerystring('coursesprint');\r\n if (qsCourses !== '') {\r\n const coursesSplit = qsCourses.split(',');\r\n for (let j = 0; j < coursesSplit.length; j += 1) {\r\n const trackSplit = coursesSplit[j].split('|');\r\n if (trackSplit.length > 1) {\r\n this.tables.push({\r\n config: {\r\n container: `#print_course_${j}`,\r\n courseID: parseInt(trackSplit[0], 10),\r\n track: parseInt(trackSplit[1], 10),\r\n },\r\n });\r\n } else {\r\n this.tables.push({\r\n config: {\r\n container: `#print_course_${j}`,\r\n courseID: parseInt(trackSplit[0], 10),\r\n },\r\n });\r\n }\r\n ReactDOM.render(
    , document.querySelector('body'));\r\n }\r\n }\r\n for (let i = 0; i < this.tables.length; i += 1) {\r\n const table = this.tables[i];\r\n table.id = i;\r\n AUDiagramme.mergeOptions(table);\r\n const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${table.config.courseID}`;\r\n axios.get(url).then((promise) => {\r\n const { data } = promise;\r\n const mountNode = document.querySelector(table.config.container);\r\n if (mountNode) {\r\n ReactDOM.render(\r\n ,\r\n mountNode,\r\n );\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwindow.AUDiagramme = AUDiagramme;\r\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 = 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\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__376__;","module.exports = __WEBPACK_EXTERNAL_MODULE__383__;","module.exports = __WEBPACK_EXTERNAL_MODULE__949__;","// 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\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].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","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(120);\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};"],"sourceRoot":""}