{"version":3,"sources":["src/js/uarctic.helpers.js","src/js/uarctic.search.learningresourcescatalog.js"],"names":["UArctic","window","Helpers","Url","getParameterByName","name","url","location","href","toLowerCase","replace","results","RegExp","exec","decodeURIComponent","Search","LearningResourcesCatalog","globalSettings","formSelector","searchButtonSelector","termFieldSelector","fieldOfStudyFieldSelector","organizationFieldSelector","resourceTypeFieldSelector","toggleFilterButtonSelector","wrapperSelector","searchOnInit","catalogUrl","initFullForm","options","settings","$","extend","doSearch","event","$form","stopImmediatePropagation","search","serialize","on","$btn","this","$searchWrapper","hasClass","removeClass","html","addClass","initLookupFields","each","i","ddctrl","children","removeAttr","attr","lookup","data","updateLookupData","updater","currentFieldOfStudyId","resourceType","selectLevel","val","parseInt","buildSelect","selector","level","selectedValue","items","matchedSelected","item","Key","Value","ajax","type","FieldOfStudyId","ResourceType","dataType","success","response","ResourceTypes","FieldsOfStudy","error","console","log","alert","searchData","$msg","hash","hide","fillResultTable","ResultList","hostname","gtag","event_label","SearchString","responseJSON","Message","show","$resultTable","$result","length","row","Score","ShortDescription","Id","Name","Language","FieldOfStudy","append","bootstrapSortable","find","popover","container","placement","trigger","delay"],"mappings":";;;;AAKA,ICAAA,SDAAA,QAAAC,OAAAD,SAAA,IACAE,QAAAF,QAAAE,SAAA,GAEAF,QAAAE,QAAAC,IAAA,CAIAC,mBAAA,SAAAC,EAAAC,GACAA,IAAAA,EAAAL,OAAAM,SAAAC,MACAF,EAAAA,EAAAG,cACAJ,EAAAA,EAAAK,QAAA,UAAA,QACA,IACAC,EADA,IAAAC,OAAA,OAAAP,EAAA,qBACAQ,KAAAP,GACA,OAAAK,EACAA,EAAA,GACAG,mBAAAH,EAAA,GAAAD,QAAA,MAAA,MADA,GADA,QCbAV,QAAAC,OAAAD,SAAA,IACAe,OAAAf,QAAAe,QAAA,GAEAf,QAAAe,OAAAC,yBAAA,CACAC,eAAA,CACAC,aAAA,iBACAC,qBAAA,aACAC,kBAAA,iBACAC,0BAAA,oBACAC,0BAAA,oBACAC,0BAAA,mBACAC,2BAAA,qBACAC,gBAAA,aACAC,aAAA,QACAC,WAAA,IAeAC,aAAA,SAAAC,GAEA,IAAAC,EAAAC,EAAAC,OAAAhC,QAAAe,OAAAC,yBAAAC,eAAAY,GACAI,EAAA,SAAAC,GACA,IAAAC,EAAAJ,EAAAD,EAAAZ,cAGA,OAFAgB,EAAAE,2BACAnC,OAAAD,QAAAe,OAAAC,yBAAAqB,OAAAF,EAAAG,cACA,GAyBA,GAtBAP,EAAAD,EAAAX,sBAAAoB,GAAA,SAAA,SAAAL,GACA,OAAAD,EAAAC,MAGAH,EAAAD,EAAAZ,cAAAqB,GAAA,UAAA,SAAAL,GACA,OAAAD,EAAAC,MAGAH,EAAAD,EAAAN,4BAAAe,GAAA,SAAA,WACA,IAAAC,EAAAT,EAAAU,MACAC,EAAAX,EAAAD,EAAAL,iBACAiB,EAAAC,SAAA,mBACAD,EAAAE,YAAA,kBACAJ,EAAAK,KAAA,iHAEAH,EAAAI,SAAA,kBACAN,EAAAK,KAAA,uHAMA,SAAAf,EAAAJ,aAAA,CACA,IAAAS,EAAAJ,EAAAD,EAAAZ,cACAjB,OAAAD,QAAAe,OAAAC,yBAAAqB,OAAAF,EAAAG,eAeAS,iBAAA,SAAAlB,GACA,IAAAC,EAAAC,EAAAC,OAAAhC,QAAAe,OAAAC,yBAAAC,eAAAY,GAEAE,EAAAD,EAAAZ,aAAA,uBAAAqB,GAAA,SAAA,WACAR,EAAAD,EAAAZ,aAAA,WAAA8B,MAAA,SAAAC,EAAAC,GACAnB,EAAAmB,GAAAC,SAAA,mBAAAC,WAAA,YACArB,EAAAmB,GAAAC,SAAA,oBAAAE,KAAA,WAAA,kBAIAtB,EAAA,uBAAAQ,GAAA,UAAA,WACA,IAAAe,EAAAvB,EAAAU,MAAAc,KAAA,UACAtD,OAAAD,QAAAe,OAAAC,yBAAAwC,iBAAAF,OAIAE,iBAAA,SAAAC,GAEA,IAAAC,EAAA,KAAAC,EAAA,KAAAC,EAAA,EACA9B,EAAA9B,QAAAe,OAAAC,yBAAAC,eAEA,OAAAwC,GACA,IAAA,eACAE,EAAA5B,EAAAD,EAAAP,2BAAAsC,MACAD,IACA,IAAA,iBACAF,EAAAI,SAAA/B,EAAAD,EAAAT,2BAAAwC,OACAD,IAKA,IAAAG,EAAA,SAAAC,EAAAT,EAAAU,GACA,KAAAL,GAAAK,GAAA,CAGA,IAAAC,EAAAnC,EAAAiC,GAAAH,MACAM,EAAA,GACAC,GAAA,EACArC,EAAAiB,KAAAO,GAAA,SAAAN,EAAAoB,GACAF,GAAA,kBAAAE,EAAAC,IAAA,IACAD,EAAAC,MAAAJ,IACAE,GAAA,EACAD,GAAA,aAEAA,GAAA,IAAAE,EAAAE,MAAA,eAGAJ,EADAC,EACA,wCAAAD,EAEA,iDAAAA,EAEApC,EAAAiC,GAAAnB,KAAAsB,KAGApC,EAAAyC,KAAA,CACAlE,IAAA,yDACAmE,KAAA,MACAlB,KAAA,CAAAmB,eAAAhB,EAAAiB,aAAAhB,GACAiB,SAAA,OACAC,QAAA,SAAAC,GACAf,EAAAjC,EAAAP,0BAAAuD,EAAAC,cAAA,GACAhB,EAAAjC,EAAAT,0BAAAyD,EAAAE,cAAA,IAEAC,MAAA,SAAAA,GAEAC,QAAAC,IAAAF,GACAG,MAAA,8DAKA/C,OAAA,SAAAgD,GACA,IAAAC,EAAAvD,EAAA,mBACAA,EAAA,mBACA9B,OAAAM,SAAAgF,KAAA,GACAD,EAAAE,OACAzD,EAAAyC,KAAA,CACAlE,IAAA,mDACAmE,KAAA,OACAlB,KAAA8B,EACAT,SAAA,OACAC,QAAA,SAAAC,GACA9E,QAAAe,OAAAC,yBAAAyE,gBAAAX,EAAAY,YACA,cAAAnF,SAAAoF,UACA1F,OAAA2F,KAAA,QAAA,SAAA,CACAC,YAAAR,EAAAS,gBAKAb,MAAA,SAAAA,GACAA,EAAAc,aAAAC,SACAV,EAAAzC,KAAA,6BAAAoC,EAAAc,aAAAC,QAAA,UACAV,EAAAW,KAAA,MAEAb,MAAA,qGAMAK,gBAAA,SAAAlC,GACA,IAAAzB,EAAA9B,QAAAe,OAAAC,yBAAAC,eACAiF,EAAAnE,EAAA,yBACAoE,EAAApE,EAAA,mBAEA,GADAmE,EAAArD,KAAA,IACAU,EAAA6C,OAAA,EAAA,CACAD,EAAAF,OACA,IAAA,IAAAhD,EAAA,EAAAA,EAAAM,EAAA6C,OAAAnD,IAAA,CACA,IAAAoD,EAAA,4EAEA9C,EAAAN,GAAAqD,MAAA,MAAArD,EAAA,GAAA,+GACAM,EAAAN,GAAAsD,iBAAA,WAAAzE,EAAAH,WAAA,eAAA4B,EAAAN,GAAAuD,GAAA,KAAAjD,EAAAN,GAAAwD,KAAA,yCACAlD,EAAAN,GAAA0B,aAAA,qCACApB,EAAAN,GAAAyD,SAAA,qCACAnD,EAAAN,GAAA0D,aAAA,kCAEAT,EAAAU,OAAAP,GAEAtE,EAAA,yBAAAe,SAAA,YACAf,EAAA8E,oBACAX,EAAAY,KAAA,qBAAAC,QAAA,CACAC,UAAA,OACAC,UAAA,OACAC,QAAA,QACAC,MAAA,CAAAlB,KAAA,OAEAhG,OAAAM,SAAAgF,KAAA,sBAEAW,EAAArD,KAAA,uEACAsD,EAAAF","file":"uarctic.search.learningresourcescatalog.min.js","sourcesContent":["/*!\r\n * Helper methods shared amongst the other js files.\r\n * Copyright (c) 2016 Frameworks AS\r\n */\r\n\r\nvar UArctic = window.UArctic || {}; //Creates a namespace to keep our method away from colliding with other code\r\nUArctic.Helpers = UArctic.Helpers || {};\r\n\r\nUArctic.Helpers.Url = {\r\n\t/*\r\n\t * Gets a named QueryString parameter. If no url is provided then it will use current location.href.\r\n\t */\r\n\tgetParameterByName: function (name, url) {\r\n\t\tif (!url) url = window.location.href;\r\n\t\turl = url.toLowerCase(); // This is just to avoid case sensitiveness\r\n\t\tname = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n\t\tvar regex = new RegExp(\"[?&]\" + name + \"(=([^]*)|&|#|$)\"),\r\n\t\t\tresults = regex.exec(url);\r\n\t\tif (!results) return null;\r\n\t\tif (!results[2]) return ''; \r\n\t\treturn decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n\t}\r\n};","/*!\r\n * Actic Learning Resources Catalog Search 1.0\r\n * Copyright (c) 2020 Frameworks AS\r\n */\r\n\r\nvar UArctic = window.UArctic || {}; //Creates a namespace to keep our method away from colliding with other code\r\nUArctic.Search = UArctic.Search || {};\r\n\r\nUArctic.Search.LearningResourcesCatalog = {\r\n globalSettings: {\r\n formSelector: '#alrSearchForm',\r\n searchButtonSelector: '#btnSearch',\r\n termFieldSelector: '#txtSearchTerm',\r\n fieldOfStudyFieldSelector: '#ddlFieldsOfStudy',\r\n organizationFieldSelector: '#ddlOrganizations',\r\n resourceTypeFieldSelector: '#ddlResourceType',\r\n toggleFilterButtonSelector: '#btn_collapse_form',\r\n wrapperSelector: '#searchbox',\r\n searchOnInit: 'false',\r\n catalogUrl: ''\r\n },\r\n\t/*\r\n\t Default options:\r\n\t -- catalogUrl: '',\r\n\t -- formSelector: '#alrSearchForm',\r\n\t -- searchButtonSelector: '#btnSearch',\r\n\t -- termFieldSelector: '#txtSearchTerm',\r\n -- fieldOfStudyFieldSelector: '#ddlFieldsOfStudy',\r\n -- organizationFieldSelector: '#ddlOrganizations',\r\n -- resourceTypeFieldSelector: '#ddlResourceType',\r\n\t -- toggleFilterButtonSelector: '#btn_collapse_form',\r\n\t -- wrapperSelector: '#searchbox',\r\n\t -- searchOnInit: 'false'\r\n\t */\r\n initFullForm: function (options) {\r\n\r\n var settings = $.extend(UArctic.Search.LearningResourcesCatalog.globalSettings, options);\r\n var doSearch = function (event) {\r\n var $form = $(settings.formSelector);\r\n event.stopImmediatePropagation();\r\n window.UArctic.Search.LearningResourcesCatalog.search($form.serialize());\r\n return false;\r\n };\r\n\r\n $(settings.searchButtonSelector).on('click', function (event) {\r\n return doSearch(event);\r\n });\r\n\r\n $(settings.formSelector).on('submit', function (event) {\r\n return doSearch(event);\r\n });\r\n\r\n $(settings.toggleFilterButtonSelector).on('click', function () {\r\n var $btn = $(this);\r\n var $searchWrapper = $(settings.wrapperSelector);\r\n if ($searchWrapper.hasClass('form-collapsed')) {\r\n $searchWrapper.removeClass('form-collapsed');\r\n $btn.html(' Hide advanced filters ');\r\n } else {\r\n $searchWrapper.addClass('form-collapsed');\r\n $btn.html(' Show advanced filters ');\r\n }\r\n });\r\n\r\n // UArctic.Search.LearningResourcesCatalog.initLookupFields(options);\r\n\r\n if (settings.searchOnInit === 'true') {\r\n var $form = $(settings.formSelector);\r\n window.UArctic.Search.LearningResourcesCatalog.search($form.serialize());\r\n }\r\n },\r\n\r\n\t/*\r\n\t Default options:\r\n\t -- formSelector: '#alrSearchForm',\r\n\t -- searchButtonSelector: '#btnSearch',\r\n\t -- termFieldSelector: '#txtSearchTerm',\r\n fieldOfStudyFieldSelector: '#ddlFieldsOfStudy',\r\n organizationFieldSelector: '#ddlOrganizations',\r\n resourceTypeFieldSelector: '#ddlResourceType',\r\n\t -- toggleFilterButtonSelector: '#btn_collapse_form',\r\n\t -- wrapperSelector: '#searchbox'\r\n\t */\r\n initLookupFields: function (options) {\r\n var settings = $.extend(UArctic.Search.LearningResourcesCatalog.globalSettings, options);\r\n\r\n $(settings.formSelector + ' button[type=reset]').on('click', function () {\r\n $(settings.formSelector + ' select').each(function (i, ddctrl) {\r\n $(ddctrl).children('option:selected').removeAttr('selected');\r\n $(ddctrl).children('option[value=\"\"]').attr('selected', 'selected');\r\n });\r\n });\r\n\r\n $('select[data-lookup]').on('change', function () {\r\n var lookup = $(this).data('lookup');\r\n window.UArctic.Search.LearningResourcesCatalog.updateLookupData(lookup);\r\n });\r\n },\r\n\r\n updateLookupData: function (updater) {\r\n // This function is probably way over complicated, but it tries to only show dropdown options that actually will return results.\r\n var currentFieldOfStudyId = null, resourceType = null, selectLevel = 0,\r\n settings = UArctic.Search.LearningResourcesCatalog.globalSettings;\r\n\r\n switch (updater) {\r\n case \"resourceType\":\r\n resourceType = $(settings.resourceTypeFieldSelector).val();\r\n selectLevel++;\r\n case \"fieldOfStudyId\":\r\n currentFieldOfStudyId = parseInt($(settings.fieldOfStudyFieldSelector).val());\r\n selectLevel++;\r\n break;\r\n default:\r\n }\r\n\r\n var buildSelect = function (selector, data, level) {\r\n if (selectLevel >= level) {\r\n return;\r\n }\r\n var selectedValue = $(selector).val();\r\n var items = '';\r\n var matchedSelected = false;\r\n $.each(data, function (i, item) {\r\n items += '';\r\n });\r\n if (matchedSelected) {\r\n items = '' + items;\r\n } else {\r\n items = '' + items;\r\n }\r\n $(selector).html(items);\r\n };\r\n\r\n $.ajax({\r\n url: '/Umbraco/Api/LearningResourcesCatalogApi/GetFilterData',\r\n type: 'GET',\r\n data: { 'FieldOfStudyId': currentFieldOfStudyId, 'ResourceType': resourceType },\r\n dataType: 'json',\r\n success: function (response) {\r\n buildSelect(settings.resourceTypeFieldSelector, response.ResourceTypes, 3);\r\n buildSelect(settings.fieldOfStudyFieldSelector, response.FieldsOfStudy, 4);\r\n },\r\n error: function (error) {\r\n // TODO: Better error handling?\r\n console.log(error);\r\n alert('An unexpected error ocurred while fetching lookup data');\r\n }\r\n });\r\n },\r\n\r\n search: function (searchData) {\r\n var $msg = $('#search_message');\r\n var $result = $('#search_results');\r\n window.location.hash = \"\";\r\n $msg.hide();\r\n $.ajax({\r\n url: '/Umbraco/Api/LearningResourcesCatalogApi/Search/',\r\n type: 'POST',\r\n data: searchData,\r\n dataType: 'json',\r\n success: function (response) {\r\n UArctic.Search.LearningResourcesCatalog.fillResultTable(response.ResultList);\r\n if (location.hostname !== \"localhost\") {\r\n window.gtag('event', 'search', {\r\n 'event_label': searchData.SearchString\r\n });\r\n // OLD ga tag code : window.ga('send', 'pageview', location.pathname + '?q=' + searchData.SearchString);\r\n }\r\n },\r\n error: function (error) {\r\n if (error.responseJSON.Message) {\r\n $msg.html('