{"version":3,"sources":["webpack:///webpack/bootstrap 2ae809dba6b365cc192d","webpack:///external \"jQuery\"","webpack:///./Scripts/utils/getUrlParameter.js","webpack:///./Scripts/Search/listpage.js","webpack:///external \"Handlebars\"","webpack:///./Scripts/Search/mark.es6.js"],"names":["currentPageNumber","mutationConfig","attributes","childList","subtree","mutationCallbackArea","mutationsList","observer","i","length","type","target","hasClass","areaFilter","each","push","data","urlParams","URLSearchParams","window","location","search","has","areaQuery","get","split","areaChanged","arrayEquals","insertParam","join","val","mutationCallbackFaqSubject","subjectFilter","subjectQuery","subjectChanged","mutationCallbackDate","dateFilter","dateQuery","dateChanged","observerArea","MutationObserver","observerFaqSubject","observerDate","executeSearch","isDefined","input","undefined","templateLoader","STATES","unloaded","loaded","error","registrations","registration","key","path","html","state","load","reg","async","me","$","ajax","url","success","console","log","register","obj","loadSync","getCriteriaControls","pageId","filterId","termEntry","yearSelector","workAreaSelector","workAreaMultipleSelector","subjectSelector","productTypeSelector","faqSubjectSelector","regionSelector","typeSelector","typeGroupSelector","newsSelector","timeSelector","flagSelector","departmentSelector","letterSelector","rootItemSelector","dateSelector","sortingSelector","createBodyDto","pageNumber","c","output","PageId","FilterId","Term","trim","Years","WorkAreaIds","constructor","Array","SubjectIds","ProductTypeIds","FaqSubjects","Regions","TemplateIds","ContentTypeIds","NewsListIds","TimeSearch","Evaluation","FlagSearch","DepartmentNames","Letters","RootItems","Date","SortBy","Language","PageSize","Page","parseInt","registerPagerEvent","click","e","preventDefault","newPageNumber","animate","scrollTop","offset","top","renderPageNumbers","pagingModel","max","pagerTemplate","attr","addClass","start","end","pager","clone","current","appendTo","renderDots","left","right","hide","renderArrows","show","buildPagingModel","pageNumbersToRender","centerSet","count","PageCount","populatePaging","empty","model","populateResultList","isFaq","externalTemplate","template","Handlebars","compile","Items","renderngtemplate","content","find","resultCount","FacetResults","document","dispatchEvent","CustomEvent","preventPushstate","isFaqList","apiAddress","post","done","instance","Mark","querySelectorAll","term","mark","history","pushState","page","title","href","Event","_paq","URL","TotalSearchResults","arrowClicked","source","browserBack","redirectWithQuery","query","removeUrlParameter","replace","formatQuery","init","filters","registerHelper","block","itemImage","querySelector","value","inputStr","supervisor","DispentationFromMaxSchoolLimit","SchoolCount","templateApiEndpoint","on","currentTarget","observe","siblings","event","originalEvent","back","q","decodeURI","updateCriteriaControls","searchOnPageLoadEnabled","removeClass","parameter","urlparts","prefix","encodeURIComponent","pars","lastIndexOf","splice","unescape","year","option","prop","date","dateValue","area","area_sm","areas","forEach","item","parents","subject","prodtype","faqsubject","subjects","sorting","region","typegroup","news","time","filter","toLowerCase","flag","dept","letter","rootitem","a","b","isArray","every","index","escape","kvp","substr","x","setTimeout","factory","define","module","exports","ctx","ie","ua","navigator","userAgent","indexOf","msg","level","opt","debug","str","escapeStr","Object","keys","synonyms","createSynonymsRegExp","ignoreJoiners","setupIgnoreJoinersRegExp","diacritics","createDiacriticsRegExp","createMergedBlanksRegExp","createIgnoreJoinersRegExp","createAccuracyRegExp","syn","sens","caseSensitive","hasOwnProperty","k1","k2","RegExp","indx","original","nextChar","charAt","test","dct","handled","ch","acc","accuracy","ls","limiters","lsJoin","limiter","sv","stack","separateWordSearch","kw","kwSplitted","sort","cb","nodes","iterator","forEachNode","NodeFilter","SHOW_TEXT","node","textContent","matchesExclude","parentNode","FILTER_REJECT","FILTER_ACCEPT","el","exclM","excl","exclude","concat","DOMIterator","matches","hEl","element","startNode","splitText","ret","repl","createElement","setAttribute","className","replaceChild","dict","filterCb","eachCb","n","sibl","s","wrapRangeInTextNode","startStr","endStr","k","j","previousSibling","regex","ignoreGroups","endCb","matchIdx","getTextNodes","match","exec","pos","lastIndex","wrapRangeInMappedTextNode","parent","docFrag","createDocumentFragment","firstChild","appendChild","removeChild","normalize","normalizeTextNode","nodeType","nextSibling","nodeValue","regexp","totalMatches","fn","acrossElements","noMatch","getSeparatedKeywords","kwArr","keywords","kwArrLen","handler","createRegExp","sel","SHOW_ELEMENT","unwrapMatches","matchesSel","_opt","assign","_iterator","iframes","filteredCtx","NodeList","prototype","isPrototypeOf","slice","call","isDescendant","contexts","contains","ifr","successFn","errorFn","doc","ifrWin","contentWindow","Error","bl","compl","isBlank","src","getAttribute","observeOnload","listener","removeEventListener","getIframeContents","addEventListener","readyState","eachCalled","forEachIframe","waitForIframes","open","checkEnd","onIframeReady","con","whatToShow","createNodeIterator","contents","prevNode","compCurr","compareDocumentPosition","prev","Node","DOCUMENT_POSITION_PRECEDING","compPrev","after","DOCUMENT_POSITION_FOLLOWING","itr","previousNode","nextNode","currIfr","ifrDict","compareNodeIframe","eCb","fCb","createInstanceOnIframe","doneCb","createIterator","elements","retrieveNodes","getIteratorNode","checkIframeFilter","handleOpenIframes","getContexts","ready","iterateThroughNodes","selector","selectors","matchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","webkitMatchesSelector","markRegExp","unmark"],"mappings":"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","file":"listpage-bundle.js","sourcesContent":[" \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 2ae809dba6b365cc192d","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0 1 2 3","import $ from \"jquery\";\n\nexport default (parameter) => {\n var qd = {};\n $(location.search.toLowerCase().substr(1).split(\"&\"))\n .each(function(item, el) {\n (el.split(\"=\")[0] in qd)\n ? qd[el.split(\"=\")[0]].push(el.split(\"=\")[1])\n : qd[el.split(\"=\")[0]] = [el.split(\"=\")[1]];\n });\n var response = (typeof (qd[parameter]) !== \"undefined\") ? qd[parameter][0] : \"\";\n return response;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./Scripts/utils/getUrlParameter.js\n// module id = 2\n// module chunks = 2 3","import $ from \"jquery\";\nimport Handlebars from \"handlebars\";\nimport GetUrlParameter from \"../utils/getUrlParameter\";\nimport Mark from \"./mark.es6.js\";\n\nlet currentPageNumber;\n\n// mutationConfig enables functionality on changes to defined tags\nconst mutationConfig = { attributes: true, childList: false, subtree: false };\n\nconst mutationCallbackArea = function (mutationsList, observer) {\n // Use traditional 'for loops' for IE 11\n var i; \n for (i = 0; i < mutationsList.length; i++) {\n if (mutationsList[i].type === \"attributes\") {\n if ($(mutationsList[i].target).hasClass(\"is-hidden\")) {\n //let areaFilter = $(\"#area-selector\").val();\n let areaFilter = [];\n $($(\"#area-selector option:selected\")).each(function () {\n areaFilter.push($(this).data(\"id\"))\n });\n\n let urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has(\"area_sm\")) {\n let areaQuery = urlParams.get(\"area_sm\").split(\" \");\n if (urlParams.get(\"area_sm\").length < 1) {\n areaQuery = urlParams.get(\"area_sm\").split(\"\");\n }\n let areaChanged = !arrayEquals(areaQuery, areaFilter);\n if (areaChanged) {\n insertParam(\"area_sm\", areaFilter.join(\"+\"));\n }\n } else if ($(\"#area-selector\").val().length > 0) {\n insertParam(\"area_sm\", areaFilter.join(\"+\"));\n }\n }\n }\n }\n};\n\nconst mutationCallbackFaqSubject = function (mutationsList, observer) {\n // Use traditional 'for loops' for IE 11\n var i;\n for (i = 0; i < mutationsList.length; i++) {\n if (mutationsList[i].type === \"attributes\") {\n if ($(mutationsList[i].target).hasClass(\"is-hidden\")) {\n //let subjectFilter = $(\"#faq-subject-selector\").val();\n let subjectFilter = [];\n $($(\"#faq-subject-selector option:selected\")).each(function () {\n subjectFilter.push($(this).data(\"queryValue\"))\n });\n let urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has(\"faqsubj\")) {\n let subjectQuery = urlParams.get(\"faqsubj\").split(\" \");\n if (urlParams.get(\"faqsubj\").length < 1) {\n subjectQuery = urlParams.get(\"faqsubj\").split(\"\");\n }\n let subjectChanged = !arrayEquals(subjectQuery, subjectFilter);\n if (subjectChanged) {\n insertParam(\"faqsubj\", subjectFilter.join(\"+\"));\n }\n } else if ($(\"#faq-subject-selector\").val().length > 0) {\n insertParam(\"faqsubj\", subjectFilter.join(\"+\"));\n }\n }\n }\n }\n};\n\nconst mutationCallbackDate = function (mutationsList, observer) {\n // Use traditional 'for loops' for IE 11\n var i;\n for (i = 0; i < mutationsList.length; i++) {\n if (mutationsList[i].type === \"attributes\") {\n if (!$(mutationsList[i].target).hasClass(\"open\")) {\n let dateFilter = [];\n if ($(\"#date-selector\").val().length > 0) {\n dateFilter = $(\"#date-selector\").val().split(\" til \");\n }\n let urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has(\"date\")) {\n let dateQuery = urlParams.get(\"date\").split(\" \");\n if (urlParams.get(\"date\").length < 1) {\n dateQuery = urlParams.get(\"date\").split(\"\");\n }\n let dateChanged = !arrayEquals(dateQuery, dateFilter);\n if (dateChanged) {\n insertParam(\"date\", dateFilter.join(\"+\"));\n }\n } else if ($(\"#date-selector\").val().length > 0) {\n insertParam(\"date\", dateFilter.join(\"+\"));\n }\n }\n }\n }\n};\n\nconst observerArea = new MutationObserver(mutationCallbackArea);\nconst observerFaqSubject = new MutationObserver(mutationCallbackFaqSubject);\nconst observerDate = new MutationObserver(mutationCallbackDate);\n\nlet executeSearch = null;\nlet isDefined = (input) => {\n return $(input).length !== 0 && $(input) !== undefined && $(input) !== null;\n};\n\nvar templateLoader = (function() {\n 'use strict';\n\n // States of loaded templates\n var STATES = { unloaded: 0, loaded: 1, error: -1 };\n\n // Registations data store\n var registrations = {};\n\n // Internal class for storing registrations\n var registration = function(key, path, html) {\n this.key = key;\n this.path = path;\n this.html = html;\n if (html) this.state = STATES.loaded; // mark loaded\n else this.state = STATES.unloaded; // mark unloaded\n }\n\n // Loads the templates html\n var load = function(reg, async) {\n var me = this;\n\n // only load if in unloaded state \n if (reg.state == STATES.unloaded) {\n $.ajax({\n url: reg.path,\n async: async,\n success: function(data) {\n reg.html = data;\n reg.state = STATES.loaded;\n return reg.html\n },\n error: function(data) {\n reg.state = STATES.error;\n console.log(data);\n }\n });\n }\n }\n\n return {\n /** Register a new template\n * @param {object} obj - registration object that contains key and either path or data\n * @param {bool} loadNow - indicates if the template should be syncrhonously now\n */\n register: function(obj, loadSync) {\n // do some validation\n if (!obj.key)\n throw \"templates.register requires a key value\";\n if (!(obj.path || obj.data))\n throw \"templates.register requires a path or data value\";\n\n // do registration\n var reg = new registration(obj.key, obj.path, obj.data);\n registrations[reg.key] = reg;\n\n // optionally load stuff \n if (loadSync)\n load(reg, false);\n else\n load(reg, true);\n },\n /** Get a template's html\n * @param {string} key - the template to get\n */\n html: function(key) {\n // check for bad states\n if (!registrations[key]) throw \"Template has not been registered\";\n if (registrations[key].state == STATES.error) throw \"Template load failure\";\n var reg = registrations[key];\n\n // load if necessary\n if (reg.state == STATES.unloaded) {\n load(reg, false);\n }\n return reg.html;\n }\n }\n})();\n\n\nlet getCriteriaControls = () => {\n return {\n pageId: $(\"body\").data(\"pageid\"),\n filterId: $(\"#siteSearchForm\").data(\"filterid\"),\n termEntry: $(\"#search-input\"),\n yearSelector: $(\"#year-selector\"),\n workAreaSelector: $(\"#area-selector\"),\n workAreaMultipleSelector: $(\".form__field--select-multiple.js--select-multiple #area-selector\"),\n subjectSelector: $(\"#subject-selector\"),\n productTypeSelector: $(\"#product-type-selector\"),\n faqSubjectSelector: $(\"#faq-subject-selector\"),\n regionSelector: $(\"#region-selector\"),\n typeSelector: $(\"#type-selector\"),\n typeGroupSelector: $(\"#typegroup-selector\"),\n newsSelector: $(\"#news-selector\"),\n timeSelector: $(\"#time-selector\"),\n flagSelector: $(\"#flag-selector\"),\n departmentSelector: $(\"#department-selector\"),\n letterSelector: $(\"#letter-selector\"),\n rootItemSelector: $(\"#rootitem-selector\"),\n dateSelector: $(\"#date-selector\"),\n sortingSelector: $(\"#sorting-selector\")\n };\n};\nlet createBodyDto = (pageNumber) => {\n let c = getCriteriaControls();\n\n let output = {\n PageId: c.pageId,\n FilterId: c.filterId,\n Term: isDefined(c.termEntry) && c.termEntry.val() !== \"default\" ? c.termEntry.val().trim() : null,\n Years: isDefined(c.yearSelector) && c.yearSelector.val() !== \"default\" ? c.yearSelector.val().split(\",\") : null,\n WorkAreaIds: isDefined(c.workAreaSelector) && c.workAreaSelector.val() !== \"default\" ?\n c.workAreaSelector.val().constructor === Array ? c.workAreaSelector.val() : c.workAreaSelector.val().split(\",\") : null,\n SubjectIds: isDefined(c.subjectSelector) && c.subjectSelector.val() !== \"default\" ? c.subjectSelector.val().split(\",\") : null,\n ProductTypeIds: isDefined(c.productTypeSelector) && c.productTypeSelector.val() !== \"default\" ? c.productTypeSelector.val().split(\",\") : null,\n FaqSubjects: isDefined(c.faqSubjectSelector) && c.faqSubjectSelector.val() !== \"default\" ?\n c.faqSubjectSelector.val().constructor === Array ? c.faqSubjectSelector.val() : c.faqSubjectSelector.val().split(\",\") : null,\n Regions: isDefined(c.regionSelector) && c.regionSelector.val() !== \"default\" ? c.regionSelector.val().split(\",\") : null,\n TemplateIds: isDefined(c.typeSelector) && c.typeSelector.val() !== \"default\" ? c.typeSelector.val().split(\",\") : null,\n ContentTypeIds: isDefined(c.typeGroupSelector) && c.typeGroupSelector.val() !== \"default\" ? c.typeGroupSelector.val().split(\",\") : null, //content type groups translated to content types\n NewsListIds: isDefined(c.newsSelector) && c.newsSelector.val() !== \"default\" ? c.newsSelector.val().split(\",\") : null,\n TimeSearch: { Evaluation: isDefined(c.timeSelector) && c.timeSelector.val() !== \"default\" ? c.timeSelector.val() : null },\n FlagSearch: { Evaluation: isDefined(c.flagSelector) && c.flagSelector.val() !== \"default\" ? c.flagSelector.val() : null },\n DepartmentNames: isDefined(c.departmentSelector) && c.departmentSelector.val() !== \"default\" ? c.departmentSelector.val() : null,\n Letters: isDefined(c.letterSelector) && c.letterSelector.val() !== \"default\" ? c.letterSelector.val().split(\",\") : null,\n RootItems: isDefined(c.rootItemSelector) && c.rootItemSelector.val() !== \"default\" ? c.rootItemSelector.val().split(\",\") : null,\n Date: isDefined(c.dateSelector) && c.dateSelector.val() !== \"\" ? c.dateSelector.val().split(\" til \") : null,\n SortBy: isDefined(c.sortingSelector) && c.dateSelector.val() !== \"default\" ? c.sortingSelector.val() : null,\n Language: $(\"#search-data\").data(\"language\"),\n PageSize: $(\"#search-data\").data(\"page-size\"),\n Page: isDefined(pageNumber) ? parseInt(pageNumber) : 1\n };\n return output;\n};\nlet registerPagerEvent = () => {\n $(\".page-switcher\").click(function (e) {\n e.preventDefault();\n\n let newPageNumber = $(this).data(\"page-number\");\n if (currentPageNumber !== newPageNumber) {\n executeSearch(newPageNumber);\n }\n $(\"html, body\").animate({\n scrollTop: $(\".page-header\").offset().top\n },\n 1000);\n });\n};\nlet renderPageNumbers = (pagingModel) => {\n if (pagingModel.max === 0) {\n return;\n }\n let pagerTemplate = $(\"\");\n pagerTemplate.attr(\"href\", \"#\");\n pagerTemplate.addClass(\"button\");\n pagerTemplate.attr(\"id\", \"pager\");\n for (let i = pagingModel.start; i < pagingModel.end; i += 1) {\n let pager = pagerTemplate.clone();\n pager.attr(\"id\", pager.attr(\"id\") + \"_\" + i);\n pager.addClass(\"page-switcher\");\n pager.html(i);\n pager.data(\"page-number\", i);\n pager.addClass(pagingModel.current === i ? \"is-active\" : \"\");\n pager.appendTo($(\"#paging-container\"));\n }\n};\nlet renderDots = (pagingModel) => {\n let left = $(\".pager-start\");\n let right = $(\".pager-end\");\n\n if (pagingModel.max === 0) {\n left.hide();\n right.hide();\n return;\n }\n\n if (pagingModel.start === 1) {\n left.hide();\n }\n\n if (pagingModel.end > pagingModel.max) {\n right.hide();\n }\n};\nlet renderArrows = (pagingModel) => {\n let left = $(\"#left-arrow\");\n let right = $(\"#right-arrow\");\n\n if (pagingModel.max === 0) {\n left.hide();\n right.hide();\n return;\n }\n\n if (pagingModel.max === pagingModel.current) {\n right.hide();\n } else {\n right.show();\n }\n if (pagingModel.current === 1) {\n left.hide();\n } else {\n left.show();\n }\n};\nlet buildPagingModel = (data) => {\n const pageNumbersToRender = 5;\n let centerSet = parseInt(pageNumbersToRender / 2);\n\n let count = data.PageCount > pageNumbersToRender ? pageNumbersToRender : data.PageCount;\n\n let start;\n if (data.Page < pageNumbersToRender) {\n if (data.Page - centerSet <= 0 || data.PageCount <= pageNumbersToRender) {\n start = 1;\n } else {\n start = data.Page - centerSet;\n }\n } else {\n if (data.Page + centerSet < data.PageCount) {\n start = data.Page - centerSet; //\n } else {\n start = data.PageCount + 1 - pageNumbersToRender;\n }\n }\n\n return {\n start: start,\n end: count + start,\n current: data.Page,\n max: data.PageCount\n };\n};\nlet populatePaging = (data) => {\n\n currentPageNumber = data.Page;\n\n $(\"#paging-container\").empty();\n $(\".pager-start\").show();\n $(\".pager-end\").show();\n\n let model = buildPagingModel(data);\n renderArrows(model);\n renderDots(model);\n renderPageNumbers(model);\n registerPagerEvent();\n};\nlet populateResultList = (data, isFaq) => {\n var externalTemplate = templateLoader.html(\"resultList\");\n let template = Handlebars.compile(externalTemplate);\n $(\"#search-results-container\").html(template(data));\n populatePaging(data);\n if (data.Items.length === 0) {\n let renderngtemplate = $(\"#template\");\n let content = renderngtemplate.find(\"#no-results\").clone();\n content.attr(\"id\", \"no-results-markup\");\n content.attr(\"role\", \"status\");\n content.appendTo($(\"#search-results-container\"));\n } else if ($(\".form.form--combo.js--page-header-search .resultcount\").length > 0){\n let resultCount = $(\".form.form--combo.js--page-header-search .resultcount\");\n if (data.Page * 10 > data.FacetResults.count) {\n if (data.FacetResults.count === 1) {\n resultCount.html(\"Viser \" + data.FacetResults.count + \" af \" + data.FacetResults.count + \" resultater\");\n } else {\n resultCount.html(\"Viser \" + ((data.Page - 1) * 10 + 1) + \" - \" + data.FacetResults.count + \" af \" + data.FacetResults.count + \" resultater\");\n }\n } else {\n resultCount.html(\"Viser \" + ((data.Page - 1) * 10 + 1) + \" - \" + (data.Page * 10) + \" af \" + data.FacetResults.count + \" resultater\");\n }\n }\n document.dispatchEvent(new CustomEvent(\"document:update\"));\n};\n\nlet search = (pageNumber, preventPushstate) => {\n var isFaqList = $(\"form.js--page-header-search.faq-search\").length != 0;\n var apiAddress = isFaqList ? \"/api/faqsearch\" : \"/api/search\";\n $.post(apiAddress, createBodyDto(pageNumber), \"json\")\n .done(function (data) {\n populateResultList(data, isFaqList);\n let instance = new Mark(document.querySelectorAll(\".highLight\"));\n let term = $(\"#search-input\").val();\n if (term !== \"\") {\n instance.mark(term);\n }\n if (!preventPushstate) {\n history.pushState({ page: currentPageNumber }, document.title, document.location.href);\n }\n dispatchEvent(new Event(\"stickybits:update\"));\n if (_paq !== undefined) {\n _paq.push([\"setCustomUrl\", document.URL + \"&search_count=\" + data.TotalSearchResults]);\n _paq.push([\"trackPageView\"]);\n }\n });\n};\n\nexecuteSearch = search;\n\nlet arrowClicked = (source) => {\n if (source.attr(\"id\") === \"right-arrow\") {\n search(currentPageNumber + 1);\n }\n if (source.attr(\"id\") === \"left-arrow\") {\n search(currentPageNumber - 1);\n }\n};\n\nlet browserBack = (pageNumber) => {\n search(pageNumber, true);\n};\n\nlet redirectWithQuery = () => {\n var input = $(\"#search-input\").val();\n var query = removeUrlParameter(location.search, \"q\");\n query = query.replace(\"?\", \"\");\n if (query.length > 2) {\n location.search = \"q=\" + formatQuery(input) + \"&\" + query;\n } else if(input) {\n location.search = \"q=\" + formatQuery(input);\n }\n else {\n search();\n }\n}\n\nlet init = () => {\n var isFaqList = $(\"form.js--page-header-search.faq-search\").length != 0;\n let filters = getCriteriaControls();\n currentPageNumber = $(\"#search-data\").data(\"page-number\");\n \n Handlebars.registerHelper('listItemImage', function (block) {\n var itemImage = document.querySelector(\"input[name='listItemImage']\").value;\n return itemImage;\n });\n\n Handlebars.registerHelper('showImageFromResultItems', function (block) {\n var inputStr = document.querySelector(\"input[name='showImageFromResultItems']\").value;\n return inputStr;\n });\n\n Handlebars.registerHelper('defaultImage', function (block) {\n var inputStr = document.querySelector(\"input[name='defaultImage']\").value;\n return inputStr;\n });\n Handlebars.registerHelper('defaultImageSrc', function (block) {\n var inputStr = document.querySelector(\"input[name='defaultImageSrc']\").value;\n return inputStr;\n });\n Handlebars.registerHelper('defaultImageAlt', function (block) {\n var inputStr = document.querySelector(\"input[name='defaultImageAlt']\").value;\n return inputStr;\n });\n Handlebars.registerHelper('limitReached', function (supervisor) {\n if(supervisor.DispentationFromMaxSchoolLimit == true)\n return false;\n return supervisor.SchoolCount > 4;\n \n });\n let templateApiEndpoint = isFaqList ? \"/api/Handlebars/FaqResultList\" : \"/api/Handlebars/ResultList\";\n templateLoader.register({ key: \"resultList\", path: templateApiEndpoint });\n\n\n\n $(\"#search-command\").on(\"click\",\n (e) => {\n e.preventDefault();\n redirectWithQuery();\n });\n\n $(\"#siteSearchForm\").on(\"submit\",\n (e) => {\n e.preventDefault();\n redirectWithQuery();\n });\n\n $(filters.yearSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"year\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.workAreaSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"area\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n\n if ($(\".form__field--select-multiple.js--select-multiple #area-selector\").length > 0) {\n observerArea.observe($(\"#area-selector\").siblings(\".select-multiple-container\").find(\".dropdown__list-container\")[0], mutationConfig);\n }\n\n if ($(\".form__field--select-multiple.js--select-multiple #faq-subject-selector\").length > 0) {\n observerFaqSubject.observe($(\"#faq-subject-selector\").siblings(\".select-multiple-container\").find(\".dropdown__list-container\")[0], mutationConfig);\n }\n \n $(filters.sortingSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n insertParam(\"sort\", $(e.currentTarget).find(\"option:selected\").val());\n });\n $(filters.subjectSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"subj\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.productTypeSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"pt\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.faqSubjectSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"faqsubj\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.regionSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"region\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.typeSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"type\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.typeGroupSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"tg\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.newsSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"news\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.timeSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"time\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.flagSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"flag\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.departmentSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"dept\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.letterSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"letter\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n $(filters.rootItemSelector).on(\"change\",\n (e) => {\n e.preventDefault();\n //search();\n insertParam(\"ri\", $(e.currentTarget).find(\"option:selected\").data(\"query-value\"));\n });\n\n $(\"#left-arrow\").on(\"click\",\n function (e) {\n e.preventDefault();\n arrowClicked($(this));\n });\n $(\"#right-arrow\").on(\"click\",\n function (e) {\n e.preventDefault();\n arrowClicked($(this));\n });\n $(\".button--clear\").on(\"click\",\n function (e) {\n e.preventDefault();\n location.href = location.href.split(\"?\")[0];\n });\n $(window).on(\"popstate\", function (event) {\n event.preventDefault();\n var state = event.originalEvent.state;\n if (state !== null && state !== undefined && state.page !== null) {\n browserBack(state.page);\n } else {\n history.back();\n }\n });\n\n const q = GetUrlParameter(\"q\");\n\n if (q !== \"\") {\n $(\"#search-input\").val(decodeURI(q));\n }\n\n updateCriteriaControls();\n\n var searchOnPageLoadEnabled = $(\"#siteSearchForm\").data(\"search-on-page-load-enabled\");\n\n if (searchOnPageLoadEnabled || location.search !== \"\") {\n if (location.search.length > 3) {\n $(\".button--clear\").removeClass(\"is-hidden\");\n }\n search();\n }\n};\n\n//Helper function for handling spaces correctly in search result page\nfunction formatQuery(query) {\n return query.replace(\" \", \"%20\");\n}\n\nfunction removeUrlParameter(url, parameter) { \n var urlparts = url.split(\"?\");\n if (urlparts.length >= 2) {\n\n var prefix = encodeURIComponent(parameter) + \"=\";\n var pars = urlparts[1].split(/[&;]/g);\n\n //reverse iteration as may be destructive\n for (var i = pars.length; i-- > 0;) {\n //idiom for string.startsWith\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\n pars.splice(i, 1);\n }\n }\n\n url = urlparts[0] + \"?\" + pars.join(\"&\");\n return url;\n } else {\n return url;\n }\n}\n\nlet updateCriteriaControls = () => {\n\n const page = GetUrlParameter(\"page\");\n if (page !== \"\") {\n $(\"body\").data(\"pageid\", page);\n }\n\n const filterId = GetUrlParameter(\"filterId\");\n if (filterId !== \"\") {\n $(\"#siteSearchForm\").data(\"filterid\", unescape(filterId));\n }\n\n const year = GetUrlParameter(\"year\");\n if (year !== \"\") {\n let option = $('#year-selector option[data-query-value=\"' + unescape(year) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#year-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n\n const date = GetUrlParameter(\"date\");\n if (date !== \"\") {\n let option = $(\"#date-selector\");\n if (option.length > 0) {\n let dateValue = date.replace(\"+\", \" til \");\n $(option).val(dateValue);\n }\n //else {\n // $('#year-selector option[data-query-value=\"default\"]').prop('selected', true);\n //}\n }\n\n const area = GetUrlParameter(\"area\");\n if (area !== \"\") {\n let option = $('#area-selector option[data-query-value=\"' + unescape(area) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#area-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n\n const area_sm = GetUrlParameter(\"area_sm\");\n if (area_sm !== \"\") {\n const areas = area_sm.split(\"+\");\n areas.forEach(function (item) {\n let input = $('.form__field--select-multiple.js--select-multiple .select-multiple-container input[id=\"' + unescape(item) + '\"]').parents(\"label\");\n if (input.length > 0) {\n $(input).click();\n }\n });\n }\n\n const subject = GetUrlParameter(\"subj\");\n if (subject !== \"\") {\n let option = $('#subject-selector option[data-query-value=\"' + unescape(subject) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#subject-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n\n const prodtype = GetUrlParameter(\"pt\");\n if (prodtype !== \"\") {\n let option = $('#product-type-selector option[data-query-value=\"' + unescape(prodtype) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#product-type-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n\n const faqsubject = GetUrlParameter(\"faqsubj\");\n if (faqsubject !== \"\") {\n\n if ($('#faq-subject-selector').prop('multiple')) {\n const subjects = faqsubject.split(\"+\");\n subjects.forEach(function (item) {\n let input = $('.form__field--select-multiple.js--select-multiple .select-multiple-container input[value=\"' + unescape(item) + '\"]').parents(\"label\");\n if (input.length > 0) {\n $(input).click();\n }\n });\n } else {\n let option = $('#faq-subject-selector option[data-query-value=\"' + unescape(faqsubject) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#faq-subject-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n }\n\n\n const sorting = GetUrlParameter(\"sort\");\n if (sorting !== \"\") {\n let option = $('#sorting-selector option[value=\"' + unescape(sorting) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#sorting-selector option[value=\"default\"]').prop('selected', true);\n }\n } else{\n $('#sorting-selector option[value=\"published-desc\"]').prop('selected', true);\n }\n\n\n const region = GetUrlParameter(\"region\"); \n if (region !== \"\") {\n let option = $('#region-selector option[data-query-value=\"' + unescape(region) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#region-selector option[data-query-value=\"default\"]').prop('selected', true);\n }\n }\n\n const type = GetUrlParameter(\"type\");\n if (type !== \"\") {\n let option = $('#type-selector option[data-query-value=\"' + unescape(type) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#type-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const typegroup = GetUrlParameter(\"tg\");\n if (typegroup !== \"\") {\n let option = $('#typegroup-selector option[data-query-value=\"' + unescape(typegroup) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#typegroup-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const news = GetUrlParameter(\"news\");\n if (news !== \"\") {\n let option = $('#news-selector option[data-query-value=\"' + unescape(news) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#news-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const time = GetUrlParameter(\"time\");\n if (time !== \"\") {\n let option = $('#time-selector option[data-query-value]').filter(function () {\n return this.value.toLowerCase() == unescape(time);\n });\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#time-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const flag = GetUrlParameter(\"flag\");\n if (flag !== \"\") {\n let option = $('#flag-selector option[data-query-value=\"' + unescape(flag) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#flag-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const dept = GetUrlParameter(\"dept\");\n if (dept !== \"\") {\n let option = $('#department-selector option[data-query-value=\"' + unescape(dept) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#department-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const letter = GetUrlParameter(\"letter\");\n if (letter !== \"\") {\n let option = $('#letter-selector option[data-query-value=\"' + unescape(letter) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#letter-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n\n const rootitem = GetUrlParameter(\"ri\");\n if (rootitem !== \"\") {\n let option = $('#rootitem-selector option[data-query-value=\"' + unescape(rootitem) + '\"]');\n if (option.length > 0) {\n $(option).prop('selected', true);\n } else {\n $('#rootitem-selector option[data-query-value=\"default\"]').prop('selected', true);\n } \n }\n}\n\nlet arrayEquals = (a, b) => {\n return Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val === b[index]);\n}\n\n\nlet insertParam = (key, value) => {\n key = escape(key); value = escape(value);\n\n var kvp = location.search.substr(1).split('&');\n if (kvp == '') {\n location.search = '?' + key + '=' + value;\n }\n else\n {\n var i = kvp.length; var x; while (i--) {\n x = kvp[i].split('=');\n\n if (x[0] == key) {\n x[1] = value;\n kvp[i] = x.join('=');\n break;\n }\n }\n\n if (i < 0) { kvp[kvp.length] = [key, value].join('='); }\n\n //this will reload the page, it's likely better to store this until finished\n location.search = kvp.join('&');\n }\n}\n\ninit();\n\n\nif ($(\"#date-selector\").length > 0) {\n setTimeout(() => { \n if ($(\"#date-selector\").length > 0) {\n observerDate.observe($(\"div.flatpickr-calendar\")[0], mutationConfig);\n }\n }, 1000);\n}\n\n\n// WEBPACK FOOTER //\n// ./Scripts/Search/listpage.js","module.exports = Handlebars;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Handlebars\"\n// module id = 5\n// module chunks = 2","/*!***************************************************\n * mark.js v8.6.0\n * https://github.com/julmot/mark.js\n * Copyright (c) 2014–2017, Julian Motz\n * Released under the MIT license https://git.io/vwTVl\n *****************************************************/\n\n\"use strict\";\n\n((factory, window, document) => {\n if (typeof define === \"function\" && define.amd) {\n define([], () => {\n return factory(window, document);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(window, document);\n } else {\n factory(window, document);\n }\n})((window, document) => {\n class Mark {\n constructor(ctx) {\n this.ctx = ctx;\n\n this.ie = false;\n const ua = window.navigator.userAgent;\n if (ua.indexOf(\"MSIE\") > -1 || ua.indexOf(\"Trident\") > -1) {\n this.ie = true;\n }\n }\n\n set opt(val) {\n this._opt = Object.assign({}, {\n \"element\": \"\",\n \"className\": \"\",\n \"exclude\": [],\n \"iframes\": false,\n \"separateWordSearch\": true,\n \"diacritics\": true,\n \"synonyms\": {},\n \"accuracy\": \"partially\",\n \"acrossElements\": false,\n \"caseSensitive\": false,\n \"ignoreJoiners\": false,\n \"ignoreGroups\": 0,\n \"each\": () => {},\n \"noMatch\": () => {},\n \"filter\": () => true,\n \"done\": () => {},\n \"debug\": false,\n \"log\": window.console\n }, val);\n }\n\n get opt() {\n return this._opt;\n }\n\n get iterator() {\n if (!this._iterator) {\n this._iterator = new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude);\n }\n return this._iterator;\n }\n\n log(msg, level = \"debug\") {\n const log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if (typeof log === \"object\" && typeof log[level] === \"function\") {\n log[level](`mark.js: ${ msg }`);\n }\n }\n\n escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n }\n\n createRegExp(str) {\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners) {\n str = this.createIgnoreJoinersRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n\n createSynonymsRegExp(str) {\n const syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? \"\" : \"i\";\n for (let index in syn) {\n if (syn.hasOwnProperty(index)) {\n const value = syn[index],\n k1 = this.escapeStr(index),\n k2 = this.escapeStr(value);\n str = str.replace(new RegExp(`(${ k1 }|${ k2 })`, `gm${ sens }`), `(${ k1 }|${ k2 })`);\n }\n }\n return str;\n }\n\n setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, (val, indx, original) => {\n let nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === \"\") {\n return val;\n } else {\n return val + \"\\u0000\";\n }\n });\n }\n\n createIgnoreJoinersRegExp(str) {\n return str.split(\"\\u0000\").join(\"[\\\\u00ad|\\\\u200b|\\\\u200c|\\\\u200d]?\");\n }\n\n createDiacriticsRegExp(str) {\n const sens = this.opt.caseSensitive ? \"\" : \"i\",\n dct = this.opt.caseSensitive ? [\"aàáâãäåāąă\", \"AÀÁÂÃÄÅĀĄĂ\", \"cçćč\", \"CÇĆČ\", \"dđď\", \"DĐĎ\", \"eèéêëěēę\", \"EÈÉÊËĚĒĘ\", \"iìíîïī\", \"IÌÍÎÏĪ\", \"lł\", \"LŁ\", \"nñňń\", \"NÑŇŃ\", \"oòóôõöøō\", \"OÒÓÔÕÖØŌ\", \"rř\", \"RŘ\", \"sšśș\", \"SŠŚȘ\", \"tťț\", \"TŤȚ\", \"uùúûüůū\", \"UÙÚÛÜŮŪ\", \"yÿý\", \"YŸÝ\", \"zžżź\", \"ZŽŻŹ\"] : [\"aÀÁÂÃÄÅàáâãäåĀāąĄăĂ\", \"cÇçćĆčČ\", \"dđĐďĎ\", \"eÈÉÊËèéêëěĚĒēęĘ\", \"iÌÍÎÏìíîïĪī\", \"lłŁ\", \"nÑñňŇńŃ\", \"oÒÓÔÕÖØòóôõöøŌō\", \"rřŘ\", \"sŠšśŚșȘ\", \"tťŤțȚ\", \"uÙÚÛÜùúûüůŮŪū\", \"yŸÿýÝ\", \"zŽžżŻźŹ\"];\n let handled = [];\n str.split(\"\").forEach(ch => {\n dct.every(dct => {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n\n str = str.replace(new RegExp(`[${ dct }]`, `gm${ sens }`), `[${ dct }]`);\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n\n createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, \"[\\\\s]+\");\n }\n\n createAccuracyRegExp(str) {\n let acc = this.opt.accuracy,\n val = typeof acc === \"string\" ? acc : acc.value,\n ls = typeof acc === \"string\" ? [] : acc.limiters,\n lsJoin = \"\";\n ls.forEach(limiter => {\n lsJoin += `|${ this.escapeStr(limiter) }`;\n });\n switch (val) {\n case \"partially\":\n default:\n return `()(${ str })`;\n case \"complementary\":\n return `()([^\\\\s${ lsJoin }]*${ str }[^\\\\s${ lsJoin }]*)`;\n case \"exactly\":\n return `(^|\\\\s${ lsJoin })(${ str })(?=$|\\\\s${ lsJoin })`;\n }\n }\n\n getSeparatedKeywords(sv) {\n let stack = [];\n sv.forEach(kw => {\n if (!this.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(\" \").forEach(kwSplitted => {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n \"keywords\": stack.sort((a, b) => {\n return b.length - a.length;\n }),\n \"length\": stack.length\n };\n }\n\n getTextNodes(cb) {\n let val = \"\",\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, node => {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node\n });\n }, node => {\n if (this.matchesExclude(node.parentNode, true)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, () => {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n\n matchesExclude(el, exclM) {\n let excl = this.opt.exclude.concat([\"script\", \"style\", \"title\", \"head\", \"html\"]);\n if (exclM) {\n excl = excl.concat([\"*[data-markjs='true']\"]);\n }\n return DOMIterator.matches(el, excl);\n }\n\n wrapRangeInTextNode(node, start, end) {\n const hEl = !this.opt.element ? \"mark\" : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n let repl = document.createElement(hEl);\n repl.setAttribute(\"data-markjs\", \"true\");\n if (this.opt.className) {\n repl.setAttribute(\"class\", this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n\n wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n dict.nodes.every((n, i) => {\n const sibl = dict.nodes[i + 1];\n if (typeof sibl === \"undefined\" || sibl.start > start) {\n const s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start;\n if (filterCb(n.node)) {\n n.node = this.wrapRangeInTextNode(n.node, s, e);\n\n const startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n dict.value = startStr + endStr;\n dict.nodes.forEach((k, j) => {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n }\n return true;\n });\n }\n\n wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(dict => {\n dict.nodes.forEach(node => {\n node = node.node;\n let match;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== \"\") {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n let pos = match.index;\n if (matchIdx !== 0) {\n for (let i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = this.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n\n wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(dict => {\n let match;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== \"\") {\n let start = match.index;\n if (matchIdx !== 0) {\n for (let i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n const end = start + match[matchIdx].length;\n\n this.wrapRangeInMappedTextNode(dict, start, end, node => {\n return filterCb(match[matchIdx], node);\n }, (node, lastIndex) => {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n\n unwrapMatches(node) {\n const parent = node.parentNode;\n let docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n\n normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n\n markRegExp(regexp, opt) {\n this.opt = opt;\n this.log(`Searching with expression \"${ regexp }\"`);\n let totalMatches = 0,\n fn = \"wrapMatches\";\n const eachCb = element => {\n totalMatches++;\n this.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = \"wrapMatchesAcrossElements\";\n }\n this[fn](regexp, this.opt.ignoreGroups, (match, node) => {\n return this.opt.filter(node, match, totalMatches);\n }, eachCb, () => {\n if (totalMatches === 0) {\n this.opt.noMatch(regexp);\n }\n this.opt.done(totalMatches);\n });\n }\n\n mark(sv, opt) {\n this.opt = opt;\n let totalMatches = 0,\n fn = \"wrapMatches\";\n const {\n keywords: kwArr,\n length: kwArrLen\n } = this.getSeparatedKeywords(typeof sv === \"string\" ? [sv] : sv),\n sens = this.opt.caseSensitive ? \"\" : \"i\",\n handler = kw => {\n let regex = new RegExp(this.createRegExp(kw), `gm${ sens }`),\n matches = 0;\n this.log(`Searching with expression \"${ regex }\"`);\n this[fn](regex, 1, (term, node) => {\n return this.opt.filter(node, kw, totalMatches, matches);\n }, element => {\n matches++;\n totalMatches++;\n this.opt.each(element);\n }, () => {\n if (matches === 0) {\n this.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n if (this.opt.acrossElements) {\n fn = \"wrapMatchesAcrossElements\";\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n\n unmark(opt) {\n this.opt = opt;\n let sel = this.opt.element ? this.opt.element : \"*\";\n sel += \"[data-markjs]\";\n if (this.opt.className) {\n sel += `.${ this.opt.className }`;\n }\n this.log(`Removal selector \"${ sel }\"`);\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, node => {\n this.unwrapMatches(node);\n }, node => {\n const matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = this.matchesExclude(node, false);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }\n\n class DOMIterator {\n constructor(ctx, iframes = true, exclude = []) {\n this.ctx = ctx;\n\n this.iframes = iframes;\n\n this.exclude = exclude;\n }\n\n static matches(element, selector) {\n const selectors = typeof selector === \"string\" ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n let match = false;\n selectors.every(sel => {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n\n getContexts() {\n let ctx,\n filteredCtx = [];\n if (typeof this.ctx === \"undefined\" || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === \"string\") {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n\n ctx.forEach(ctx => {\n const isDescendant = filteredCtx.filter(contexts => {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n\n getIframeContents(ifr, successFn, errorFn = () => {}) {\n let doc;\n try {\n const ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error(\"iframe inaccessible\");\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n\n onIframeReady(ifr, successFn, errorFn) {\n try {\n const ifrWin = ifr.contentWindow,\n bl = \"about:blank\",\n compl = \"complete\",\n isBlank = () => {\n const src = ifr.getAttribute(\"src\").trim(),\n href = ifrWin.location.href;\n return href === bl && src !== bl && src;\n },\n observeOnload = () => {\n const listener = () => {\n try {\n if (!isBlank()) {\n ifr.removeEventListener(\"load\", listener);\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener(\"load\", listener);\n };\n if (ifrWin.document.readyState === compl) {\n if (isBlank()) {\n observeOnload();\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n observeOnload();\n }\n } catch (e) {\n errorFn();\n }\n }\n\n waitForIframes(ctx, done) {\n let eachCalled = 0;\n this.forEachIframe(ctx, () => true, ifr => {\n eachCalled++;\n this.waitForIframes(ifr.querySelector(\"html\"), () => {\n if (! --eachCalled) {\n done();\n }\n });\n }, handled => {\n if (!handled) {\n done();\n }\n });\n }\n\n forEachIframe(ctx, filter, each, end = () => {}) {\n let ifr = ctx.querySelectorAll(\"iframe\"),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n const checkEnd = () => {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(ifr => {\n if (DOMIterator.matches(ifr, this.exclude)) {\n checkEnd();\n } else {\n this.onIframeReady(ifr, con => {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n\n createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n\n createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector(\"html\"), this.iframes);\n }\n\n compareNodeIframe(node, prevNode, ifr) {\n const compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n const compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n\n getIteratorNode(itr) {\n const prevNode = itr.previousNode();\n let node;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode,\n node\n };\n }\n\n checkIframeFilter(node, prevNode, currIfr, ifr) {\n let key = false,\n handled = false;\n ifr.forEach((ifrDict, i) => {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n\n handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n ifr.forEach(ifrDict => {\n if (!ifrDict.handled) {\n this.getIframeContents(ifrDict.val, con => {\n this.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n\n iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n const itr = this.createIterator(ctx, whatToShow, filterCb);\n let ifr = [],\n elements = [],\n node,\n prevNode,\n retrieveNodes = () => {\n ({\n prevNode,\n node\n } = this.getIteratorNode(itr));\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, currIfr => {\n return this.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, con => {\n this.createInstanceOnIframe(con).forEachNode(whatToShow, eachCb, filterCb);\n });\n }\n\n elements.push(node);\n }\n elements.forEach(node => {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n\n forEachNode(whatToShow, each, filter, done = () => {}) {\n const contexts = this.getContexts();\n let open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(ctx => {\n const ready = () => {\n this.iterateThroughNodes(whatToShow, ctx, each, filter, () => {\n if (--open <= 0) {\n done();\n }\n });\n };\n\n if (this.iframes) {\n this.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n\n }\n\n window.Mark = function (ctx) {\n const instance = new Mark(ctx);\n this.mark = (sv, opt) => {\n instance.mark(sv, opt);\n return this;\n };\n this.markRegExp = (sv, opt) => {\n instance.markRegExp(sv, opt);\n return this;\n };\n this.unmark = opt => {\n instance.unmark(opt);\n return this;\n };\n return this;\n };\n\n return window.Mark;\n}, window, document);\n\n\n\n// WEBPACK FOOTER //\n// ./Scripts/Search/mark.es6.js"],"sourceRoot":""}