{"version":3,"sources":["list-module-paging.js","list-module-ajax-list.js","list-module-search-query.js","list-module-search-result-text.js","list-module-spinner.js","list.js","stringExtensions.js"],"names":["PagingModule","moduleEle","module","this","initEvents","on","e","preventDefault","link","cash","closest","find","removeClass","addClass","instant","list","fireOnChanged","getModuleValue","href","attr","page","window","getParameterFromLink","parseInt","onServerSuccess","eventArgs","html","response","data","PagingHtml","AjaxListModule","hideFromQueryString","PageUrl","settings","currentUrl","cultureName","CurrentContentId","currentContentId","FullQueryString","currentQueryString","Ajax","ListHtml","SearchQueryModule","doneTypingInterval","typingTimer","qInputElement","length","focus","input","value","val","enterPressed","keyCode","clearTimeout","setTimeout","gtag","event_category","event_label","q","SearchResultText","resultText","Parameters","Q","totalNumberOfResults","isNaN","TotalNumberOfItems","TotalNumberOfEmployees","format","text","SpinnerModule","spinnerTimeout","spinnerTimeoutNumber","onBeforeServerCall","showSpinner","onServerComplete","hideSpinner","extend","moduleClasses","init","lists","each","initList","initPopstate","listManaged","listId","controllerUrl","moduleEles","initModules","modules","moduleClassName","moduleClass","moduleObj","push","moduleValues","getModuleValues","updateListFromServer","updateQueryString","objectEquals","currentAjaxModuleValues","currentJQXHR","abort","fireEvent","ajaxData","afterThisEvent","axios","request","method","url","then","queryStringValues","scrollToTopOfList","catch","error","moduleQueryStringValues","i","moduleValue","eventMethodName","trigger","key","number","history","pushState","hasInitPopState","bindEvents","addEventListener","dataFromQueryString","queryStringToObject","scrollToElementId","scrollToElement","console","log","ScrollTo","target","animationFn","duration","scroll","String","prototype","args","arguments","replace","match"],"mappings":"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","file":"../list-search.min.js","sourcesContent":["function PagingModule(moduleEle) {\r\n var module = this;\r\n module.moduleEle = moduleEle;\r\n module.initEvents = function () {\r\n //console.log('PagingModule initEvents()');\r\n module.moduleEle.on('click', 'a', function (e) {\r\n e.preventDefault();\r\n var link = cash(this),\r\n siblingLinks = link.closest('ul').find('a');\r\n siblingLinks.removeClass('clicked');\r\n link.addClass('clicked');\r\n //console.log('click', link.attr('href'));\r\n instant.list.fireOnChanged(module);\r\n return null;\r\n });\r\n }\r\n module.getModuleValue = function () {\r\n var href = module.moduleEle.find('.clicked').attr('href'),\r\n page = href ? window.getParameterFromLink('page', href) : null;\r\n //console.log('PagingModule.getModuleValue()', page);\r\n return { page: page ? parseInt(page) : null };\r\n }\r\n module.onServerSuccess = function (eventArgs) {\r\n module.moduleEle.html(eventArgs.response.data.PagingHtml);\r\n }\r\n module.initEvents();\r\n}\r\n//console.log('PagingModule', PagingModule);\r\ninstant.list.settings.moduleClasses['PagingModule'] = PagingModule;","function AjaxListModule(moduleEle) {\r\n var module = this;\r\n module.moduleEle = moduleEle;\r\n module.hideFromQueryString = true;\r\n module.getModuleValue = function() {\r\n return {\r\n PageUrl: instant.settings.currentUrl,\r\n cultureName: instant.settings.cultureName,\r\n CurrentContentId: instant.settings.currentContentId,\r\n FullQueryString: instant.settings.currentQueryString,\r\n Ajax: true\r\n };\r\n }\r\n module.onServerSuccess = function (eventArgs) {\r\n //console.log('AjaxListModule.onServerSuccess', eventArgs);\r\n module.moduleEle.html(eventArgs.response.data.ListHtml);\r\n }\r\n}\r\n\r\ninstant.list.settings.moduleClasses['AjaxListModule'] = AjaxListModule;","function SearchQueryModule(moduleEle) {\r\n var module = this;\r\n module.moduleEle = moduleEle;\r\n module.doneTypingInterval = 300;\r\n module.typingTimer = 300;\r\n\r\n module.initEvents = function () {\r\n //console.log('SearchQueryModule.initEvents()');\r\n var qInputElement = module.moduleEle.find('input[name=q]');\r\n if (qInputElement !== null && qInputElement.length > 0) {\r\n qInputElement[0].focus();\r\n }\r\n module.moduleEle.on('keyup', 'input', function (e) {\r\n //console.log('SearchQueryModule.initEvents() keyup: ', e.keyCode);\r\n var input = cash(this),\r\n value = input.val(),\r\n enterPressed = e.keyCode == 13;\r\n\r\n if (!enterPressed && value === input.data('prevVal')) {\r\n //Stop keys that dont change the input from triggering a search\r\n return true;\r\n }\r\n\r\n input.data('prevVal', input.val());\r\n\r\n clearTimeout(module.typingTimer);\r\n\r\n module.typingTimer = setTimeout(function () {\r\n //console.log('SearchQueryModule.initEvents() setTimeout()');\r\n if (gtag) {\r\n gtag('event', 'Search', {\r\n 'event_category': 'Search',\r\n 'event_label': value\r\n });\r\n }\r\n\r\n instant.list.fireOnChanged(module);\r\n }, enterPressed ? 0 : module.doneTypingInterval);\r\n });\r\n }\r\n module.getModuleValue = function () {\r\n //console.log('getModuleValue()');\r\n var q = module.moduleEle.find('input[name=q]').val();\r\n return { q: q };\r\n }\r\n module.initEvents();\r\n}\r\n//console.log('PagingModule', PagingModule);\r\ninstant.list.settings.moduleClasses['SearchQueryModule'] = SearchQueryModule;","function SearchResultText(moduleEle) {\r\n var module = this;\r\n module.moduleEle = moduleEle;\r\n\r\n module.onServerSuccess = function (eventArgs) {\r\n var resultText = module.moduleEle.data('resultText');\r\n //console.log('SearchResultText.onServerSuccess()', eventArgs);\r\n if (eventArgs.response.data.Parameters.Q) {\r\n let totalNumberOfResults = 0;\r\n if(!isNaN(eventArgs.response.data.TotalNumberOfItems)) {\r\n totalNumberOfResults = totalNumberOfResults + eventArgs.response.data.TotalNumberOfItems;\r\n }\r\n if (!isNaN(eventArgs.response.data.TotalNumberOfEmployees)) {\r\n totalNumberOfResults = totalNumberOfResults + eventArgs.response.data.TotalNumberOfEmployees;\r\n }\r\n resultText = resultText.format(eventArgs.response.data.Parameters.Q, totalNumberOfResults );\r\n module.moduleEle.text(resultText);\r\n module.moduleEle.removeClass('hidden');\r\n } else {\r\n module.moduleEle.addClass('hidden');\r\n }\r\n }\r\n}\r\n\r\ninstant.list.settings.moduleClasses['SearchResultText'] = SearchResultText;","function SpinnerModule(moduleEle) {\r\n var module = this;\r\n module.moduleEle = moduleEle;\r\n module.spinnerTimeout = 100;\r\n module.spinnerTimeoutNumber = null;\r\n\r\n module.onBeforeServerCall = function (eventArgs) {\r\n //console.log('SpinnerModule.onBeforeServerCall()');\r\n module.spinnerTimeoutNumber = window.setTimeout(function () {\r\n //window.clearTimeout(module.spinnerTimeoutNumber);\r\n module.showSpinner();\r\n }, module.spinnerTimeout);\r\n }\r\n\r\n module.onServerComplete = function (eventArgs) {\r\n //console.log('SpinnerModule.onServerSuccess()');\r\n module.hideSpinner();\r\n }\r\n\r\n module.showSpinner = function () {\r\n module.moduleEle.removeClass('hidden');\r\n }\r\n\r\n module.hideSpinner = function () {\r\n window.clearTimeout(module.spinnerTimeoutNumber);\r\n module.moduleEle.addClass('hidden');\r\n }\r\n}\r\n\r\ninstant.list.settings.moduleClasses['SpinnerModule'] = SpinnerModule;","/*! dependencies: scroll-animate-to, axios, popstate */\r\n/*\r\n *\r\n * Modules for the list can implement the following:\r\n * #Properties\r\n * hideFromQueryString -> Set to true if the keys and values returned from getModuleValue() should not be added to the page query string\r\n * \r\n * #Methods\r\n * getModuleValue() -> Should return an object with the keys and values the module wants sent to the server\r\n * \r\n * #Events\r\n * void onServerSuccess(eventArgs) -> Is called when a successfull call is returned from the server\r\n * - eventArgs.response -> The response from the server\r\n * - eventArgs.ajaxData -> The data sent to the server\r\n * void onServerError(eventArgs) -> Is called when the server throws an error\r\n * - eventArgs.response -> The response from the server\r\n * - eventArgs.ajaxData -> The data sent to the server\r\n * bool onBeforeServerCall(eventArgs) -> Is called Before the server call is made\r\n * - eventArgs.ajaxData -> The data sent to the server\r\n * - eventArgs.abort -> true if another module have ordered the server call aborted. If true the server call will never be made and this module have no further influence on that\r\n * - return -> true if the server call should be aborted\r\n * void onServerCallAborted(eventArgs) -> Is called after the server call have been aborted\r\n * - eventArgs.ajaxData -> The data sent to the server\r\n * void onServerComplete(eventArgs) -> Is called after success, error or abort\r\n * - eventArgs.afterThisEvent -> The event that was fired before this\r\n * - eventArgs.? -> The eventargs will depend on which event was fired before\r\n * \r\n */\r\n\r\ninstant.list = {\r\n settings: cash.extend({\r\n moduleClasses: []\r\n }, instant.settings && instant.settings.list ? instant.settings.list : {}),\r\n init: function () {\r\n instant.list.lists = [];\r\n //console.log('init');\r\n cash('.list-managed').each(instant.list.initList);\r\n instant.list.initPopstate();\r\n },\r\n initList: function () {\r\n //console.log('initList');\r\n var listManaged = cash(this),\r\n listId = listManaged.attr('id'),\r\n controllerUrl = listManaged.data('list-ajax-url');\r\n\r\n instant.list.lists[listId] = {\r\n listManaged: listManaged,\r\n listId: listId,\r\n controllerUrl: controllerUrl\r\n };\r\n\r\n window.setTimeout(function () {\r\n var moduleEles = cash('[data-list-id=' + listId + ']');\r\n //console.log('initList', listId, moduleEles);\r\n instant.list.initModules(listId, moduleEles);\r\n }, 0);\r\n\r\n },\r\n initModules: function (listId, moduleEles) {\r\n instant.list.lists[listId].modules = [];\r\n moduleEles.each(function () {\r\n var moduleEle = cash(this),\r\n moduleClassName = moduleEle.data('list-class'),\r\n moduleClass = instant.list.settings.moduleClasses[moduleClassName];\r\n if (moduleClass) {\r\n //console.log('moduleClass', moduleEle, instant.list.settings.moduleClasses, moduleClassName);\r\n var moduleObj = new (moduleClass)(moduleEle);\r\n moduleObj.listId = listId;\r\n instant.list.lists[listId].modules.push(moduleObj);\r\n }\r\n });\r\n\r\n instant.list.lists[listId].listManaged.on('module-changed', function (e, moduleObj) {\r\n var listId = cash(this).attr('id');\r\n var moduleValues = instant.list.getModuleValues(listId);\r\n //console.log('module-changed event', moduleObj, listId, moduleValues);\r\n instant.list.updateListFromServer(listId, moduleValues, true);\r\n });\r\n },\r\n updateListFromServer: function (listId, moduleValues, updateQueryString) {\r\n var oldVsNewCompare = window.objectEquals(moduleValues, instant.list.currentAjaxModuleValues);\r\n //console.log('updateListFromServer', oldVsNewCompare);\r\n if (!oldVsNewCompare) {\r\n if (instant.list.currentJQXHR) {\r\n instant.list.currentJQXHR.abort();\r\n instant.list.currentJQXHR = null;\r\n }\r\n\r\n var eventArgs = instant.list.fireEvent(listId, 'onBeforeServerCall', { ajaxData: moduleValues.ajaxData, abort: false });\r\n //console.log('abort', abort);\r\n if (eventArgs.abort) {\r\n instant.list.fireEvent(listId, 'onServerCallAborted', { ajaxData: moduleValues.ajaxData });\r\n instant.list.fireEvent(listId, 'onServerComplete', { ajaxData: moduleValues.ajaxData, afterThisEvent: 'abort' });\r\n return;\r\n }\r\n\r\n instant.list.currentAjaxModuleValues = moduleValues;\r\n\r\n axios.request({\r\n method: 'POST',\r\n url: instant.list.lists[listId].controllerUrl,\r\n data: moduleValues.ajaxData\r\n }).then(function (response) {\r\n // handle success\r\n //console.log('handle success', response);\r\n instant.list.fireEvent(listId, 'onServerSuccess', { ajaxData: moduleValues.ajaxData, response: response });\r\n instant.list.fireEvent(listId, 'onServerComplete', { ajaxData: moduleValues.ajaxData, response: response, afterThisEvent: 'success' });\r\n if (updateQueryString) {\r\n instant.list.updateQueryString(listId, response, moduleValues.queryStringValues);\r\n }\r\n instant.list.scrollToTopOfList(listId);\r\n }).catch(function (error) {\r\n // handle error\r\n //console.log('handle error');\r\n instant.list.fireEvent(listId, 'onServerError', { ajaxData: moduleValues.ajaxData, response: error });\r\n instant.list.fireEvent(listId, 'onServerComplete', { ajaxData: moduleValues.ajaxData, response: error, afterThisEvent: 'error' });\r\n }).then(function () {\r\n //console.log('always executed');\r\n // always executed\r\n });\r\n }\r\n },\r\n getModuleValues: function (listId) {\r\n var ajaxData = {};\r\n var moduleQueryStringValues = {};\r\n for (var i = 0; i < instant.list.lists[listId].modules.length; i++) {\r\n var module = instant.list.lists[listId].modules[i];\r\n if (module.getModuleValue && typeof module.getModuleValue === 'function') {\r\n var moduleValue = module.getModuleValue();\r\n if (moduleValue) {\r\n ajaxData = cash.extend(ajaxData, moduleValue);\r\n //console.log('getModuleValues', module.addModuleValuesToQueryString(), moduleValue);\r\n if (!module.hideFromQueryString) {\r\n moduleQueryStringValues = cash.extend(moduleQueryStringValues, moduleValue);\r\n }\r\n }\r\n }\r\n }\r\n //console.log('getModuleValues', moduleQueryStringValues);\r\n return { ajaxData: ajaxData, queryStringValues: moduleQueryStringValues };\r\n },\r\n fireEvent: function (listId, eventMethodName, eventArgs) {\r\n //console.log('fireEvent.' + eventMethodName, eventArgs);\r\n for (var i = 0; i < instant.list.lists[listId].modules.length; i++) {\r\n var module = instant.list.lists[listId].modules[i];\r\n //console.log('module[' + eventMethodName + ']', module[eventMethodName], module);\r\n if (module[eventMethodName] && typeof module[eventMethodName] === 'function') {\r\n module[eventMethodName](eventArgs);\r\n }\r\n }\r\n return eventArgs;\r\n },\r\n fireOnChanged: function (moduleObj) {\r\n if (moduleObj) {\r\n //instant.list.lists[listId].listManaged\r\n //console.log('fireOnChanged()', instant.list.lists[moduleObj.listId].listManaged);\r\n instant.list.lists[moduleObj.listId].listManaged.trigger('module-changed', this);\r\n }\r\n },\r\n updateQueryString: function (listId, response, queryStringValues) {\r\n if (queryStringValues) {\r\n //console.log('updateQueryString', queryStringValues);\r\n var url = '';\r\n\r\n cash.each(queryStringValues, function (key, value) {\r\n //console.log('updateQueryString', key, value);\r\n var number = parseInt(value);\r\n url = window.updateQueryString(key, value && (isNaN(number) || number > 0) ? value : null, url);\r\n });\r\n\r\n //console.log('updateQueryString', url);\r\n history.pushState(null, null, url);\r\n }\r\n },\r\n initPopstate: function () {\r\n if (!instant.list.hasInitPopState) {\r\n instant.list.bindEvents();\r\n instant.list.hasInitPopState = true;\r\n }\r\n },\r\n bindEvents: function () {\r\n window.addEventListener('popstate', function (e) {\r\n var dataFromQueryString = window.queryStringToObject();\r\n //console.log('popstate 1', dataFromQueryString, instant.list.lists);\r\n for (var listId in instant.list.lists) {\r\n //console.log('popstate 2', listId);\r\n var moduleValues = instant.list.getModuleValues(listId);\r\n moduleValues.ajaxData = cash.extend(moduleValues.ajaxData, dataFromQueryString);\r\n moduleValues.queryStringValues = dataFromQueryString;\r\n //console.log('popstate 3', moduleValues);\r\n instant.list.updateListFromServer(listId, moduleValues);\r\n };\r\n });\r\n },\r\n scrollToTopOfList: function (listId) {\r\n var scrollToElementId = '#' + listId + '-scollTo',\r\n scrollToElement = cash(scrollToElementId);\r\n console.log('scrollToTopOfList', scrollToElementId, scrollToElement);\r\n if (scrollToElement[0]) {\r\n var scrollIns = new ScrollTo({\r\n target: scrollToElement[0],\r\n animationFn: 'easeOut',\r\n duration: 300\r\n });\r\n scrollIns.scroll();\r\n }\r\n }\r\n}","if (!String.prototype.format) {\r\n String.prototype.format = function () {\r\n //console.info('format: ', arguments);\r\n var args = arguments;\r\n return this.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n };\r\n}"]}