PageSourceSearch

https://liu.se/dist/global/component-programplan-programplan-js.js?v=1790061783566

js liu.se collected 2026-10-01 07:50:48 UTC 7,152 bytes, 1 lines download raw bytes

1(self.webpackChunknodejs_dependencies=self.webpackChunknodejs_dependencies||[]).push([[4348,4692,9284],{715(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__(4692),__webpack_require__(6123)],void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function($,TableSorter){var ProgramPlan=function(element){this.el=element,this.$el=$(element),this.$otherInfoButtons=this.$el.find(".other-information-button"),this.showOnlySpecializationFilter=this.el.querySelector(".show-only-specialization"),this.vofFilter=this.el.querySelectorAll(".vof-filter input"),this.specializationFilter=this.el.querySelector(".specializations-filter"),this.fieldOfStudyFilter=this.el.querySelector(".field-of-study-filter"),this.semesters=this.el.querySelectorAll(".js-semester"),this.specializations=this.el.querySelectorAll(".specialization"),this.courses=this.el.querySelectorAll(".main-row, .details-row "),this.registerEvents(),new TableSorter(this.el)};ProgramPlan.prototype.registerEvents=function(){this.$otherInfoButtons.click(this.toggleOtherInformation.bind(this)),this.specializationFilter.onchange=this.applyFilter.bind(this),this.fieldOfStudyFilter.onchange=this.applyFilter.bind(this),this.showOnlySpecializationFilter.onchange=this.applyFilter.bind(this);for(var i=0,len=this.vofFilter.length;i<len;i++)this.vofFilter[i].onchange=this.applyFilter.bind(this)},ProgramPlan.prototype.toggleOtherInformation=function(event){event.preventDefault();var mainRow=$(event.target).closest(".main-row"),id=mainRow.data("id");this.$el.find('.details-row[data-id="'+id+'"]').toggleClass("expanded"),mainRow.toggleClass("expanded")},ProgramPlan.prototype.applyFilter=function(event){for(var specialization=this.specializationFilter.value,fieldOfStudy=this.fieldOfStudyFilter.value,showOnlySpecialization=this.showOnlySpecializationFilter.checked,showAllSpecializations=!specialization,allVofs=Array.prototype.slice.call(this.vofFilter).map(function(x){return x.value}),selectedVof=Array.prototype.slice.call(this.vofFilter).filter(function(x){return x.checked}).map(function(x){return x.value}),i=0;i<this.courses.length;
1++i){var fieldOfStudySplit=(item=this.courses[i]).dataset.fieldOfStudy.split("|"),matchFieldOfStudy=!fieldOfStudy||fieldOfStudySplit.indexOf(fieldOfStudy)>-1,matchVof=item.dataset.vof.split("/").some(function(value){return selectedVof.indexOf(value)>-1||allVofs.indexOf(value)<0}),match=matchFieldOfStudy&&matchVof;item.style.display=match?"":"none"}for(i=0;i<this.specializations.length;++i){var item=this.specializations[i],hasCourses=hasVisibleChild(item,".main-row"),isShared=!item.dataset.specialization,sharedMatch=isShared&&!showOnlySpecialization,specialicationMatch=!isShared&&(showAllSpecializations||item.dataset.specialization==specialization);match=hasCourses&&(sharedMatch||specialicationMatch);item.style.display=match?"":"none";for(var periods=item.querySelectorAll(".period"),j=0;j<periods.length;++j){var period=periods[j];period.style.display=hasVisibleChild(period,".main-row")?"":"none"}}for(i=0;i<this.semesters.length;++i){(item=this.semesters[i]).style.display=hasVisibleChild(item,".specialization")?"":"none"}};var hasVisibleChild=function(item,childSelector){var children=item.querySelectorAll(childSelector);return Array.prototype.slice.call(children).filter(function(x){return"none"!==x.style.display}).length>0};return ProgramPlan}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},6123(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){var TableSorter=function(element){this.el=element,this.headers=element.querySelectorAll("[data-sortable]"),this.tbodies=element.querySelectorAll("tbody"),this.el.classList.add("tablesorter");for(var i=0;i<this.headers.length;++i){var header=this.headers[i];header.classList.add("tablesorter-header");var iconElement=document.createElement("span");iconElement.classList.add("table-header-icon"),header.appendChild(iconElement),header.addEventListener("click",this.sort.bind(this),!1)}};TableSorter.prototype.sort=function(event){var tableHeader;if(event.target.classList.contains("tablesorter-header"))tableHeader=event.target;else{if(!event.target.parentNode.classList.contains("tablesorter-header"))return;tableHeader=event.target.parentNode}var sortDesc=this.el.dataset.sortBy==tableHeader.cellIndex&&!("true"==this.el.dataset.sortDesc);this.el.dataset.sortBy=tableHeader.cellIndex,this.el.dataset.sortDesc=sortDesc,setHeaderClasses(this.headers,tableHeader.cellIndex,sortDesc);for(var i=0;i<this.tbodies.length;i++)sortTableBody(this.tbodies[i],sortDesc,tableHeader)};var setHeaderClasses=function(headers,sortBy,sortDesc){for(var i=0;i<headers.length;i++){var header=headers[i];header.cellIndex==sortBy?(header.classList.add(sortDesc?"desc":"asc"),header.classList.remove(sortDesc?"asc":"desc")):(header.classList.remove("desc"),header.classList.remove("asc"))}},sortTableBody=function(tbody,sortDesc,tableHeader){var sortOrder=sortDesc?-1:1,colNumber=Number(tableHeader.cellIndex),rows=tbody.querySelectorAll("tr.main-row"),rowsArray=Array.prototype.slice.call(rows),sortFunc=getSortFunc(tableHeader);rowsArray.sort(function(a,b){return sortFunc(a,b,colNumber,sortOrder)});for(var i=0;i<rowsArray.length;i++){var row=rowsArray[i];row.parentNode.appendChild(row);var detailRow=row.parentNode.querySelector('tr.details-row[data-id="'+row.dataset.id+'"]');row.parentNode.appendChild(detailRow)}},getSortFunc=function(tableHeader){switch(tableHeader.dataset.sortable){case"vof":return vofCompareRows;case"number":return numberCompareRows;default:return defaultCompareRows}},defaultCompareRows=function(a,b,colNumber,sortOrder){var valueA=getDefaultSortValue(a,colNumber),valueB=getDefaultSortValue(b,colNumber),compareNumber=valueA.localeCompare(valueB)*sortOrder;return 0==compareNumber?compareCourseCode(a,b,colNumber,sortOrder):compareNumber},numberCompareRows=function(a,b,colNumber,sortOrder){var valueA=getDefaultSortValue(a,colNumber),valueB=getDefaultSortValue(b,colNumber);valueA=valueA.replace(/\*+$/g,""),valueB=valueB.replace(/\*+$/g,"");var compareNumber=((Number(valueA)||0)-(Number(valueB)||0))*sortOrder;return 0==compareNumber?compareCourseCode(a,b,colNumber,sortOrder):compareNumber},getDefaultSortValue=function(row,colNumber){return row.querySelectorAll("td")[colNumber].innerText},vofOrder=["o","o/v","v","f"],vofCompareRows=function(a,b,colNumber,sortOrder){var indexA=vofOrder.indexOf(a.dataset.vof.toLowerCase()),indexB=vofOrder.indexOf(b.dataset.vof.toLowerCase());if(indexA<0)return-1*sortOrder;
1if(indexB<0)return 1*sortOrder;var compareNumber=(indexA-indexB)*sortOrder;return 0==compareNumber?compareCourseCode(a,b,colNumber,sortOrder):compareNumber},compareCourseCode=function(a,b,colNumber,sortOrder){var courseCodeA=a.dataset.courseCode||"",courseCodeB=b.dataset.courseCode||"";return courseCodeA.localeCompare(courseCodeB)*sortOrder};return TableSorter}.call(exports,__webpack_require__,exports,module))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.