{"version":3,"sources":["../../node_modules/blingblingjs/src/index.js","../../node_modules/tablesort/src/tablesort.js","autosubmit-select.js"],"names":["sugar","on","names","fn","split","forEach","name","addEventListener","off","removeEventListener","attr","val","undefined","getAttribute","removeAttribute","setAttribute","$","query","$context","document","$nodes","NodeList","Array","isArray","HTMLElement","SVGElement","querySelectorAll","Object","length","assign","from","map","$el","attrs","entries","key","toogles","getQueryString","form","queries","reduce","acc","input","value","updateTableSorting","wrapper","table","Tablesort","updateRelatedSelect","id","data","innerHTML","updatePageContent","keys","part","handleChange","e","url","target","action","dataset","fetch","then","json","update","content","selectId","replace","updateSelect"],"mappings":"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","file":"autosubmit-select.js","sourceRoot":"../../src/js","sourcesContent":["const sugar = {\n on: function(names, fn) {\n names\n .split(' ')\n .forEach(name =>\n this.addEventListener(name, fn))\n return this\n },\n off: function(names, fn) {\n names\n .split(' ')\n .forEach(name =>\n this.removeEventListener(name, fn))\n return this\n },\n attr: function(attr, val) {\n if (val === undefined) return this.getAttribute(attr)\n\n val == null\n ? this.removeAttribute(attr)\n : this.setAttribute(attr, val || '')\n \n return this\n }\n}\n\nexport default function $(query, $context = document) {\n let $nodes = query instanceof NodeList || Array.isArray(query)\n ? query\n : query instanceof HTMLElement || query instanceof SVGElement\n ? [query]\n : $context.querySelectorAll(query)\n\n if (!$nodes.length) $nodes = []\n\n return Object.assign(\n Array.from($nodes).map($el => Object.assign($el, sugar)), \n {\n on: function(names, fn) {\n this.forEach($el => $el.on(names, fn))\n return this\n },\n off: function(names, fn) {\n this.forEach($el => $el.off(names, fn))\n return this\n },\n attr: function(attrs, val) {\n if (typeof attrs === 'string' && val === undefined)\n return this[0].attr(attrs)\n\n else if (typeof attrs === 'object') \n this.forEach($el =>\n Object.entries(attrs)\n .forEach(([key, val]) =>\n $el.attr(key, val)))\n\n else if (typeof attrs == 'string' && (val || val == null || val == ''))\n this.forEach($el => $el.attr(attrs, val))\n\n return this\n }\n }\n )\n}\n",";(function() {\n function Tablesort(el, options) {\n if (!(this instanceof Tablesort)) return new Tablesort(el, options);\n\n if (!el || el.tagName !== 'TABLE') {\n throw new Error('Element must be a table');\n }\n this.init(el, options || {});\n }\n\n var sortOptions = [];\n\n var createEvent = function(name) {\n var evt;\n\n if (!window.CustomEvent || typeof window.CustomEvent !== 'function') {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, false, false, undefined);\n } else {\n evt = new CustomEvent(name);\n }\n\n return evt;\n };\n\n var getInnerText = function(el) {\n return el.getAttribute('data-sort') || el.textContent || el.innerText || '';\n };\n\n // Default sort method if no better sort method is found\n var caseInsensitiveSort = function(a, b) {\n a = a.trim().toLowerCase();\n b = b.trim().toLowerCase();\n\n if (a === b) return 0;\n if (a < b) return 1;\n\n return -1;\n };\n\n var getCellByKey = function(cells, key) {\n return [].slice.call(cells).find(function(cell) {\n return cell.getAttribute('data-sort-column-key') === key;\n });\n };\n\n // Stable sort function\n // If two elements are equal under the original sort function,\n // then there relative order is reversed\n var stabilize = function(sort, antiStabilize) {\n return function(a, b) {\n var unstableResult = sort(a.td, b.td);\n\n if (unstableResult === 0) {\n if (antiStabilize) return b.index - a.index;\n return a.index - b.index;\n }\n\n return unstableResult;\n };\n };\n\n Tablesort.extend = function(name, pattern, sort) {\n if (typeof pattern !== 'function' || typeof sort !== 'function') {\n throw new Error('Pattern and sort must be a function');\n }\n\n sortOptions.push({\n name: name,\n pattern: pattern,\n sort: sort\n });\n };\n\n Tablesort.prototype = {\n\n init: function(el, options) {\n var that = this,\n firstRow,\n defaultSort,\n i,\n cell;\n\n that.table = el;\n that.thead = false;\n that.options = options;\n\n if (el.rows && el.rows.length > 0) {\n if (el.tHead && el.tHead.rows.length > 0) {\n for (i = 0; i < el.tHead.rows.length; i++) {\n if (el.tHead.rows[i].getAttribute('data-sort-method') === 'thead') {\n firstRow = el.tHead.rows[i];\n break;\n }\n }\n if (!firstRow) {\n firstRow = el.tHead.rows[el.tHead.rows.length - 1];\n }\n that.thead = true;\n } else {\n firstRow = el.rows[0];\n }\n }\n\n if (!firstRow) return;\n\n var onClick = function() {\n if (that.current && that.current !== this) {\n that.current.removeAttribute('aria-sort');\n }\n\n that.current = this;\n that.sortTable(this);\n };\n\n // Assume first row is the header and attach a click handler to each.\n for (i = 0; i < firstRow.cells.length; i++) {\n cell = firstRow.cells[i];\n cell.setAttribute('role','columnheader');\n if (cell.getAttribute('data-sort-method') !== 'none') {\n cell.tabindex = 0;\n cell.addEventListener('click', onClick, false);\n\n if (cell.getAttribute('data-sort-default') !== null) {\n defaultSort = cell;\n }\n }\n }\n\n if (defaultSort) {\n that.current = defaultSort;\n that.sortTable(defaultSort);\n }\n },\n\n sortTable: function(header, update) {\n var that = this,\n columnKey = header.getAttribute('data-sort-column-key'),\n column = header.cellIndex,\n sortFunction = caseInsensitiveSort,\n item = '',\n items = [],\n i = that.thead ? 0 : 1,\n sortMethod = header.getAttribute('data-sort-method'),\n sortOrder = header.getAttribute('aria-sort');\n\n that.table.dispatchEvent(createEvent('beforeSort'));\n\n // If updating an existing sort, direction should remain unchanged.\n if (!update) {\n if (sortOrder === 'ascending') {\n sortOrder = 'descending';\n } else if (sortOrder === 'descending') {\n sortOrder = 'ascending';\n } else {\n sortOrder = that.options.descending ? 'descending' : 'ascending';\n }\n\n header.setAttribute('aria-sort', sortOrder);\n }\n\n if (that.table.rows.length < 2) return;\n\n // If we force a sort method, it is not necessary to check rows\n if (!sortMethod) {\n var cell;\n while (items.length < 3 && i < that.table.tBodies[0].rows.length) {\n if(columnKey) {\n cell = getCellByKey(that.table.tBodies[0].rows[i].cells, columnKey);\n } else {\n cell = that.table.tBodies[0].rows[i].cells[column];\n }\n\n // Treat missing cells as empty cells\n item = cell ? getInnerText(cell) : \"\";\n\n item = item.trim();\n\n if (item.length > 0) {\n items.push(item);\n }\n\n i++;\n }\n\n if (!items) return;\n }\n\n for (i = 0; i < sortOptions.length; i++) {\n item = sortOptions[i];\n\n if (sortMethod) {\n if (item.name === sortMethod) {\n sortFunction = item.sort;\n break;\n }\n } else if (items.every(item.pattern)) {\n sortFunction = item.sort;\n break;\n }\n }\n\n that.col = column;\n\n for (i = 0; i < that.table.tBodies.length; i++) {\n var newRows = [],\n noSorts = {},\n j,\n totalRows = 0,\n noSortsSoFar = 0;\n\n if (that.table.tBodies[i].rows.length < 2) continue;\n\n for (j = 0; j < that.table.tBodies[i].rows.length; j++) {\n var cell;\n\n item = that.table.tBodies[i].rows[j];\n if (item.getAttribute('data-sort-method') === 'none') {\n // keep no-sorts in separate list to be able to insert\n // them back at their original position later\n noSorts[totalRows] = item;\n } else {\n if (columnKey) {\n cell = getCellByKey(item.cells, columnKey);\n } else {\n cell = item.cells[that.col];\n }\n // Save the index for stable sorting\n newRows.push({\n tr: item,\n td: cell ? getInnerText(cell) : '',\n index: totalRows\n });\n }\n totalRows++;\n }\n // Before we append should we reverse the new array or not?\n // If we reverse, the sort needs to be `anti-stable` so that\n // the double negatives cancel out\n if (sortOrder === 'descending') {\n newRows.sort(stabilize(sortFunction, true));\n } else {\n newRows.sort(stabilize(sortFunction, false));\n newRows.reverse();\n }\n\n // append rows that already exist rather than creating new ones\n for (j = 0; j < totalRows; j++) {\n if (noSorts[j]) {\n // We have a no-sort row for this position, insert it here.\n item = noSorts[j];\n noSortsSoFar++;\n } else {\n item = newRows[j - noSortsSoFar].tr;\n }\n\n // appendChild(x) moves x if already present somewhere else in the DOM\n that.table.tBodies[i].appendChild(item);\n }\n }\n\n that.table.dispatchEvent(createEvent('afterSort'));\n },\n\n refresh: function() {\n if (this.current !== undefined) {\n this.sortTable(this.current, true);\n }\n }\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Tablesort;\n } else {\n window.Tablesort = Tablesort;\n }\n})();\n","import $ from 'blingblingjs';\nimport Tablesort from 'tablesort';\n\nconst toogles = $('select[data-autosubmit]');\n\nconst getQueryString = (form) => {\n const inputs = $('select', form);\n const queries = inputs.reduce((acc, input) => `${acc}&${input.name}=${input.value}`, '');\n\n return queries;\n};\n\nconst updateTableSorting = (wrapper) => {\n // get tables inside wrapper\n const tables = $('table', wrapper);\n // activate sorting\n tables.forEach((table) => new Tablesort(table));\n};\n\nconst updateRelatedSelect = ({ id, data }) => {\n // get related select\n const [select] = $(id);\n // update content\n select.innerHTML = data;\n};\n\nconst updatePageContent = (data) => {\n // loop over data\n Object.keys(data).map((key) => {\n // select page part\n const [part] = $(`#${key}`);\n // is part on page?\n if (!part) return;\n // update content\n part.innerHTML = data[key];\n });\n};\n\nconst handleChange = (e) => {\n // get form url\n const url = e.target.form.action;\n // get query string\n const queries = getQueryString(e.target.form);\n // get target\n const [target] = $(e.target.dataset.target);\n // fetch data\n fetch(`${url}${queries}`)\n .then((data) => data.json())\n // update DOM\n .then((data) => {\n // update content\n target.innerHTML = data.update.content;\n // update tables\n updateTableSorting(target);\n // update page content\n updatePageContent(data.updatePageContent);\n // should we update next select?\n const selectId = e.target.dataset.replace;\n if (selectId) {\n updateRelatedSelect({ id: selectId, data: data.updateSelect.content });\n }\n });\n};\n\ntoogles.on('change', handleChange);\n"]}