{"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","input","value","val","enterPressed","keyCode","clearTimeout","setTimeout","gtag","event_category","event_label","q","SearchResultText","resultText","Parameters","Q","format","TotalNumberOfItems","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","length","moduleValue","eventMethodName","trigger","key","number","isNaN","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 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 resultText = resultText.format(eventArgs.response.data.Parameters.Q, eventArgs.response.data.TotalNumberOfItems);\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('.js-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}"]}