{"version":3,"sources":["webpack:///./Forsvaret.Website/Scripts/Shared/modules/tiles/index.js","webpack:///./Forsvaret.Website/Scripts/Shared/modules/tiles/shuffler.js"],"names":["obj","_shuffler","require","__esModule","default","init","tilesElm","shuffler","Shuffler","element","selectors","filterBtn","filterTaskBtn","search","counter","_default","exports","_jquery","_interopRequireDefault","_shufflejs","_queryString","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","arg","key","input","hint","prim","toPrimitive","undefined","res","call","String","Number","_toPrimitive","toArray","thing","Array","slice","_ref","arguments","this","$","assign","grid","item","showAll","find","filters","group","task","protoProps","staticProps","value","options","shuffle","Shuffle","filterMode","FilterMode","ANY","itemSelector","sizer","delimiter","window","_bindEvents","location","queryState","queryString","parse","_runFilter","_btnState","filter","removeClass","addSearchFilter","addShowAll","addClass","destroy","_this","onpopstate","_handleHistoryBack","bind","document","querySelectorAll","tasks","forEach","button","addEventListener","evt","_onChange","on","EventType","LAYOUT","_ref2","_counter","array","e","elmTasks","data","split","map","trim","includes","_this2","_this3","filtertype","filterKeyword","currentTarget","dataset","toLowerCase","toggleClass","push","_handleURL","_handleSearchReset","_this4","elementGroup","groups","_removeFromArray","items","_filterItems","_mapItems","_mapTasks","_filterTasks","event","state","_this5","each","elm","counterElm","text","concat","visibleItems","_handleShowAllClick","hasClass","history","pushState","deepUrl","protocol","host","pathname","stringify","path","_this6","searchForm","_handleSearchKeyup","searchQuery","FormData","get","searchElm","textContent","reset"],"mappings":"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","file":"Forsvaret.tiles.941e5a5aa0b78c613b82.chunk.js","sourcesContent":["import Shuffler from './shuffler';\r\n\r\nexport function init(tilesElm){\r\n const shuffler = new Shuffler({\r\n element: tilesElm,\r\n selectors: {\r\n filterBtn: '.js-c-tiles-filter-btn',\r\n filterTaskBtn: '.js-c-tiles-filter-task-btn',\r\n search: '.js-c-tiles-search',\r\n counter: '.js-c-tiles-counter'\r\n }\r\n });\r\n\r\n shuffler.init();\r\n\r\n return shuffler;\r\n}\r\n\r\nexport default {\r\n init\r\n};\r\n\r\n\r\n","import $ from 'jquery';\r\nimport Shuffle from 'shufflejs';\r\nimport queryString from 'query-string';\r\n\r\n// Convert an array-like object to a real array.\r\nconst toArray = (thing) => {\r\n return Array.prototype.slice.call(thing);\r\n};\r\n\r\nclass Shuffler {\r\n constructor({element, selectors} = {}) {\r\n this.element = $(element);\r\n\r\n this.selectors = Object.assign({\r\n grid: '.js-c-tiles-grid',\r\n item: '.js-c-tiles-item',\r\n filterBtn: '.js-c-tiles-filter-btn',\r\n filterTaskBtn: '.js-c-tiles-filter-task-btn',\r\n search: '.js-c-tiles-search',\r\n counter: '.js-c-tiles-counter',\r\n showAll: '.js-c-tiles-showall'\r\n }, selectors);\r\n\r\n this.grid = this.element.find(this.selectors.grid);\r\n\r\n this.filters = {\r\n group: [],\r\n task: []\r\n };\r\n }\r\n\r\n init(options = {}) {\r\n this.shuffle = new Shuffle(this.grid, Object.assign({\r\n filterMode: Shuffle.FilterMode.ANY,\r\n itemSelector: '.js-c-tiles-item',\r\n sizer: '.js-c-tiles-sizer',\r\n delimiter: ', ' // Notice the space is needed in the data-groups has a space after comma\r\n }, options));\r\n\r\n window.shuffle = this;\r\n\r\n this._bindEvents();\r\n\r\n if (window.location.search) {\r\n const queryState = queryString.parse(window.location.search);\r\n\r\n this.filters.group = (typeof queryState.group === 'string' ? [queryState.group] : queryState.group) || [];\r\n this.filters.task = (typeof queryState.task === 'string' ? [queryState.task] : queryState.task) || [];\r\n\r\n this._runFilter();\r\n this._btnState();\r\n } else {\r\n this.shuffle.filter('initial');\r\n }\r\n\r\n this.grid.removeClass('is-initial');\r\n\r\n this.addSearchFilter();\r\n this.addShowAll();\r\n\r\n this.element.addClass('is-initialized');\r\n }\r\n\r\n destroy() {\r\n return this.shuffle.destroy();\r\n }\r\n\r\n _bindEvents() {\r\n window.onpopstate = this._handleHistoryBack.bind(this);\r\n\r\n // this.addCategoryFilter();\r\n this.group = toArray(document.querySelectorAll(this.selectors.filterBtn));\r\n this.tasks = toArray(document.querySelectorAll(this.selectors.filterTaskBtn));\r\n\r\n // bind events to each button\r\n this.group.forEach((button) => {\r\n button.addEventListener('click', (evt) => {\r\n this._onChange(evt, 'group');\r\n });\r\n }, this);\r\n\r\n this.tasks.forEach((button) => {\r\n button.addEventListener('click', (evt) => {\r\n this._onChange(evt, 'task');\r\n });\r\n }, this);\r\n\r\n this.shuffle.on(Shuffle.EventType.LAYOUT, ({ shuffle }) => {\r\n this._counter(shuffle);\r\n });\r\n }\r\n\r\n _removeFromArray(array, element) {\r\n return array.filter(e => e !== element);\r\n }\r\n\r\n _filterTasks(element) {\r\n const elmTasks = $(element).data().tasks.split(',').map(item => item.trim());\r\n\r\n return this.filters.task.filter((item) => {\r\n if (elmTasks.includes(item)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n _mapTasks(element) {\r\n return $(element).data().tasks.split(',').map(item => item.trim()).map((item) => {\r\n\r\n if (this.filters.task.includes(item)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n _filterItems(array) {\r\n return this.filters.group.filter((item) => {\r\n if (array.includes(item)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n _mapItems(array) {\r\n return array.map((item) => {\r\n if (this.filters.group.includes(item)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n // add / remove clicked items to arrays\r\n _onChange(evt, filtertype) {\r\n const filterKeyword = evt.currentTarget.dataset.filterKeyword;\r\n\r\n if (!filterKeyword) {\r\n return;\r\n }\r\n\r\n filterKeyword.toLowerCase();\r\n $(evt.currentTarget).toggleClass('is-active');\r\n // add items to active filters array\r\n if (this.filters[filtertype].includes(filterKeyword)) {\r\n this.filters[filtertype] = this.filters[filtertype].filter(function(item) {\r\n return item !== filterKeyword;\r\n });\r\n\r\n if (this.filters.group.length === 0) {\r\n this.filters.group.push('initial');\r\n }\r\n\r\n } else {\r\n // remove initial in array when array not empty anymore\r\n this.filters[filtertype] = this.filters[filtertype].filter(item => item !== 'initial');\r\n this.filters[filtertype].push(filterKeyword);\r\n }\r\n\r\n this._runFilter();\r\n this._handleURL();\r\n this._handleSearchReset();\r\n }\r\n\r\n _runFilter() {\r\n if (this.filters.group.includes('initial') && this.filters.task.length === 0) {\r\n this.shuffle.filter('initial');\r\n return;\r\n }\r\n\r\n this.shuffle.filter((element) => {\r\n\r\n let elementGroup = $(element).data().groups.split(',').map(item => item.trim());\r\n elementGroup = this._removeFromArray(elementGroup, 'initial');\r\n\r\n\r\n let items = [];\r\n let tasks = [];\r\n\r\n // if only task filters are selected\r\n if (this.filters.task.length !== 0 && (this.filters.group.length === 0 || this.filters.group[0] === 'initial') ) {\r\n tasks = this._filterTasks(element);\r\n\r\n if (tasks.length <= 0) {\r\n return false;\r\n }\r\n return true;\r\n\r\n // if group filters are selected\r\n } else if (this.filters.group[0] !== 'initial' && this.filters.group.length !== 0 && this.filters.task.length === 0) {\r\n\r\n items = this._filterItems(elementGroup);\r\n\r\n if (items.length <= 0) {\r\n return false;\r\n }\r\n return true;\r\n } else if (this.filters.group.length >= 1 && this.filters.task.length !== 0) {\r\n\r\n items = this._mapItems(elementGroup);\r\n tasks = this._mapTasks(element);\r\n\r\n if (items.includes(false) || tasks.includes(false)) {\r\n\r\n if (items.includes(true) && tasks.includes(true)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n _handleHistoryBack(event) {\r\n if ( event.state !== null) {\r\n if (event.state.filter) {\r\n this.filters.group = (typeof event.state.filter.group === 'string' ? [event.state.filter.group] : event.state.filter.group) || [];\r\n this.filters.task = (typeof event.state.filter.task === 'string' ? [event.state.filter.task] : event.state.filter.task) || [];\r\n\r\n this._btnState();\r\n this._runFilter();\r\n }\r\n } else {\r\n this.shuffle.filter('initial');\r\n $(this.selectors.filterBtn).removeClass('is-active');\r\n $(this.selectors.filterTaskBtn).removeClass('is-active');\r\n }\r\n }\r\n\r\n _btnState() {\r\n $(this.selectors.filterBtn).each((e, elm) => {\r\n if (!this.filters.group.includes($(elm).data().filterKeyword)) {\r\n $(elm).removeClass('is-active');\r\n } else {\r\n $(elm).addClass('is-active');\r\n }\r\n });\r\n\r\n $(this.selectors.filterTaskBtn).each((e, elm) => {\r\n if (!this.filters.task.includes($(elm).data().filterKeyword)) {\r\n $(elm).removeClass('is-active');\r\n } else {\r\n $(elm).addClass('is-active');\r\n }\r\n });\r\n }\r\n\r\n _counter(shuffle) {\r\n const counterElm = this.element.find(this.selectors.counter);\r\n if (counterElm.length) {\r\n counterElm.text(`${shuffle.visibleItems}/${shuffle.items.length}`);\r\n }\r\n }\r\n\r\n addShowAll() {\r\n this.element.find(this.selectors.showAll).on('click', this._handleShowAllClick.bind(this));\r\n }\r\n\r\n _handleShowAllClick(evt) {\r\n const elm = $(evt.currentTarget);\r\n\r\n elm.toggleClass('is-active');\r\n\r\n this.shuffle.filter(!elm.hasClass('is-active') ? 'initial' : 'all');\r\n this._handleSearchReset();\r\n\r\n return false;\r\n }\r\n\r\n _handleURL() {\r\n if (window.history.pushState) {\r\n const deepUrl = `${window.location.protocol}//${window.location.host + window.location.pathname}?${queryString.stringify(this.filters)}`;\r\n window.history.pushState({ path: deepUrl, filter: this.filters}, '', deepUrl);\r\n }\r\n }\r\n\r\n addSearchFilter() {\r\n const searchForm = this.element.find(this.selectors.search);\r\n\r\n if (!searchForm.length) {\r\n return;\r\n }\r\n\r\n searchForm.on('submit', (evt) => {\r\n this._handleSearchKeyup(evt);\r\n return false;\r\n });\r\n }\r\n\r\n _handleSearchKeyup(evt) {\r\n const searchQuery = new FormData(evt.target).get('q').toLowerCase();\r\n this.shuffle.filter((searchElm) => searchElm.textContent.toLowerCase().trim().includes(searchQuery));\r\n }\r\n\r\n _handleSearchReset() {\r\n $(this.element).find(this.selectors.search).get(0).reset();\r\n }\r\n}\r\n\r\nexport default Shuffler;\r\n"],"sourceRoot":""}