{"version":3,"file":"3173.cfe7924d3fdb68225226.js","mappings":"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","sources":["webpack://@dgtls-pub/wolf-sb-integration/./src/wolf/components/organisms/o-download-list/o-download-list.controller.ts"],"sourcesContent":["import ControllerBase from '../../../../global/js/ControllerBase';\nimport { getCookie, setCookie } from '../../../../global/js/Utils';\nimport { MoleculeCardProps } from '../../molecules/m-card/m-card.data';\nimport { Component } from '../../../../global/interfaces/component.interface';\n\nexport default class ControllerDownloadList extends ControllerBase {\n\tprivate apiUrl;\n\tprivate backdrop;\n\tprivate basketShown = false;\n\tprivate card;\n\tprivate cards;\n\tprivate close;\n\tprivate counter;\n\tprivate counterAdded;\n\tprivate counterBar;\n\tprivate counterBarLast;\n\tprivate counterButton;\n\tprivate counterTotal;\n\tprivate counterWrapper;\n\tprivate downloadAll;\n\tprivate header;\n\tprivate list;\n\tprivate listContainer;\n\tprivate maxSize;\n\tprivate removeAll;\n\n\tconstructor(element: HTMLElement) {\n\t\tsuper(element);\n\t\tthis.init();\n\t\tthis.card = require('components/molecules/m-card/m-card.template.twig') as (data: Component) => string;\n\t}\n\n\tprivate setRemove() {\n\t\tthis.cards = this.list.querySelectorAll('.m-card');\n\t\tfor (const item of this.cards) {\n\t\t\titem.querySelector('.m-card-delete').addEventListener('click', (e) => {\n\t\t\t\tconst assetDownloadList = JSON.parse(getCookie('assetDownloadList') || '[]');\n\t\t\t\tconst id = item.getAttribute('data-id');\n\t\t\t\tconst index = assetDownloadList.indexOf(`\"${id}\"`);\n\t\t\t\tthis.clearById(id);\n\t\t\t\tlet basketSize = parseInt(getCookie('basketSize') || '0');\n\t\t\t\tbasketSize -= parseInt(item.getAttribute('data-size') || '0');\n\t\t\t\tsetCookie('basketSize', 1, `${Math.max(basketSize, 0)}`);\n\t\t\t\tif (index >= 0) assetDownloadList.splice(index, 1);\n\t\t\t\tif (assetDownloadList.length < 1) this.closeModal();\n\t\t\t\tsetCookie('assetDownloadList', 1, JSON.stringify(assetDownloadList));\n\t\t\t\titem.remove();\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate clearById(id) {\n\t\tconst addIcon = document.querySelector('.js-add-icon');\n\t\tconst origSvg = addIcon ? addIcon.innerHTML : '+';\n\t\tconst groupsWithId = document.querySelectorAll(`.m-button-group[data-id=\"${id}\"]`);\n\t\tif (groupsWithId.length) {\n\t\t\tfor (const group of groupsWithId) {\n\t\t\t\tgroup.classList.remove('added-to-list');\n\t\t\t\tconst btn = group.querySelector('[data-download=\"add-to-downloadlist\"] .a-button__icon-wrapper') as HTMLElement;\n\t\t\t\tif (btn) btn.innerHTML = origSvg;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate clearAll() {\n\t\tconst assetDownloadList = JSON.parse(getCookie('assetDownloadList') || '[]').map((id) => id.replaceAll('\"', ''));\n\t\tfor (const id of assetDownloadList) {\n\t\t\tthis.clearById(id);\n\t\t}\n\t\tsetCookie('assetDownloadList', 1, JSON.stringify([]));\n\t\tsetCookie('basketSize', 1, '0');\n\t\tsetCookie('lastAdded', 1, '0');\n\t\tthis.list.innerHTML = '';\n\t\tthis.closeModal();\n\t}\n\n\tprivate async downloadAllAssets() {\n\t\tlet href = this.apiUrl;\n\t\tlet options = {};\n\t\tconst assetDownloadList = JSON.parse(getCookie('assetDownloadList') || '[]').map((id) => id.replaceAll('\"', ''));\n\t\tif (!assetDownloadList.length) return false;\n\t\tif (this.apiUrl) {\n\t\t\toptions = {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\taction: 'get-token',\n\t\t\t\t\tdocumentIds: assetDownloadList,\n\t\t\t\t}),\n\t\t\t};\n\t\t} else {\n\t\t\thref = '/downloadAll.json';\n\t\t}\n\t\tawait fetch(href, options)\n\t\t\t.then((response) => response.json())\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data?.['download-token']?.length) {\n\t\t\t\t\tconst token = response.data['download-token'];\n\t\t\t\t\tconst downloadUrl = `/download-assets-zipstream/${token}`;\n\t\t\t\t\tconst a = document.createElement('a');\n\t\t\t\t\ta.setAttribute('download', '');\n\t\t\t\t\ta.setAttribute('href', downloadUrl);\n\t\t\t\t\ta.click();\n\t\t\t\t\tthis.clearAll();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((err) => console.error(err));\n\t}\n\n\tprivate async getDownloadList() {\n\t\tlet content = '';\n\t\tlet href = this.apiUrl;\n\t\tlet options = {};\n\t\tconst assetDownloadList = JSON.parse(getCookie('assetDownloadList') || '[]').map((id: any) => id.replaceAll('\"', ''));\n\t\tif (!assetDownloadList.length) return false;\n\t\tif (this.apiUrl) {\n\t\t\toptions = {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\taction: 'download-list',\n\t\t\t\t\tdocumentIds: assetDownloadList,\n\t\t\t\t}),\n\t\t\t};\n\t\t} else {\n\t\t\thref = '/downloadlist.json';\n\t\t}\n\t\tawait fetch(href, options)\n\t\t\t.then((response) => response.json())\n\t\t\t.then((response) => {\n\t\t\t\tfor (const cardObject of response.data.result) {\n\t\t\t\t\tcontent += this.card({ data: cardObject });\n\t\t\t\t}\n\t\t\t\tthis.list.innerHTML = content;\n\t\t\t\tthis.setRemove();\n\t\t\t})\n\t\t\t.catch((err) => console.error(err));\n\t}\n\n\tprivate closeModal(): void {\n\t\tthis.listContainer.setAttribute('data-open', 'false');\n\t\tthis.list.innerHTML = '';\n\t\tdocument.body?.classList.remove('mediacenter-opened');\n\t}\n\n\tprivate init(): void {\n\t\tthis.apiUrl = this.$element.getAttribute('data-api-url');\n\t\tthis.maxSize = this.$element.getAttribute('data-max-size');\n\t\tthis.counter = this.$element.querySelector('.download-counter') as HTMLElement;\n\t\tthis.counterButton = this.$element.querySelector('button') as HTMLElement;\n\t\tthis.listContainer = this.$element.querySelector('.o-download-list-container-wrapper') as HTMLElement;\n\t\tthis.list = this.listContainer.querySelector('.o-download-list-items') as HTMLElement;\n\t\tthis.close = this.listContainer.querySelector('.o-download-list-close') as HTMLElement;\n\t\tthis.backdrop = this.listContainer.querySelector('.o-download-list-backdrop') as HTMLElement;\n\t\tthis.counterWrapper = this.$element.querySelector('.counter-wrapper') as HTMLElement;\n\t\tthis.counterAdded = this.counterWrapper.querySelector('.counter-added') as HTMLElement;\n\t\tthis.counterTotal = this.counterWrapper.querySelector('.counter-total') as HTMLElement;\n\t\tthis.counterTotal.innerHTML = this.formatBytes(this.maxSize, 0);\n\t\tthis.counterBar = this.counterWrapper.querySelector('.counter-bar') as HTMLElement;\n\t\tthis.counterBarLast = this.counterWrapper.querySelector('.counter-bar-last') as HTMLElement;\n\t\tthis.downloadAll = this.listContainer.querySelector('.o-download-list-buttons [data-type=\"download-all\"]') as HTMLElement;\n\t\tthis.removeAll = this.listContainer.querySelector('.o-download-list-buttons [data-type=\"remove-all\"]') as HTMLElement;\n\t\tthis.removeAll?.addEventListener('click', () => this.clearAll());\n\t\tthis.downloadAll?.addEventListener('click', () => this.downloadAllAssets());\n\t\tthis.backdrop?.addEventListener('click', () => this.closeModal());\n\t\tthis.close?.addEventListener('click', () => this.closeModal());\n\t\tthis.counterButton?.addEventListener('click', (e) => {\n\t\t\tthis.listContainer.setAttribute('data-open', 'true');\n\t\t\tthis.getDownloadList();\n\t\t\tdocument.body?.classList.add('mediacenter-opened');\n\t\t});\n\t\tthis.header = document.querySelector('header');\n\t\tsetInterval(() => {\n\t\t\tconst assetDownloadList = parseInt(JSON.parse(getCookie('assetDownloadList') || '[]').length);\n\t\t\tif (assetDownloadList) {\n\t\t\t\tthis.header.classList.add('has-download-list');\n\t\t\t\tconst basketSize = parseInt(getCookie('basketSize') || '0');\n\t\t\t\tconst lastSize = parseInt(getCookie('lastSize') || '0');\n\t\t\t\tthis.counterAdded.innerHTML = this.formatBytes(basketSize, 0);\n\t\t\t\tthis.counterBar.style.width = `${(basketSize / this.maxSize) * 100}%`;\n\t\t\t\tthis.counterBarLast.style.left = `${((basketSize - lastSize) / this.maxSize) * 100}%`;\n\t\t\t\tthis.counterBarLast.style.width = `${(lastSize / this.maxSize) * 100}%`;\n\t\t\t\tthis.counter.innerText = assetDownloadList;\n\t\t\t\tthis.$element?.querySelector('.basket-row')?.setAttribute('data-basket-show', 'true');\n\t\t\t\tthis.basketShown = true;\n\t\t\t} else {\n\t\t\t\tthis.header.classList.remove('has-download-list');\n\t\t\t\tthis.counter.innerText = '';\n\t\t\t\tthis.$element?.querySelector('.basket-row')?.setAttribute('data-basket-show', 'false');\n\t\t\t\tthis.basketShown = false;\n\t\t\t}\n\t\t\tthis.headerHandler();\n\t\t}, 1000);\n\t\tthis.closeMessage();\n\t\tthis.srcollDirection();\n\n\t\tconst body = document.body;\n\t\tbody ? body.classList.add('mediacenter') : null;\n\t}\n\n\tprivate formatBytes(bytes, decimals = 2) {\n\t\tif (!+bytes || bytes < 0) return '0 Bytes';\n\t\tconst k = 1024;\n\t\tconst dm = decimals < 0 ? 0 : decimals;\n\t\tconst sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n\t}\n\n\tprivate srcollDirection() {\n\t\tlet lastScrollTop = 0 as number,\n\t\t\theaderHeight = 0 as number;\n\t\tconst header = document.querySelector('header.o-nav .m-nav-bar') as HTMLElement;\n\t\tconst downloadist = document.querySelector('.o-download-list') as HTMLElement;\n\t\tif (header) headerHeight = header.clientHeight as number;\n\t\tif (header !== null) downloadist.style.top = `${headerHeight}px`;\n\n\t\twindow.addEventListener(\n\t\t\t'scroll',\n\t\t\t() => {\n\t\t\t\tif (downloadist) {\n\t\t\t\t\tconst scrollPos = window.pageYOffset || (document.documentElement.scrollTop as number);\n\t\t\t\t\tif (header) headerHeight = header.clientHeight as number;\n\n\t\t\t\t\tif (scrollPos > lastScrollTop) {\n\t\t\t\t\t\t// downscroll code\n\t\t\t\t\t\tif (header !== null) {\n\t\t\t\t\t\t\tif (scrollPos < headerHeight) downloadist.style.top = `${headerHeight - scrollPos}px`;\n\t\t\t\t\t\t\telse downloadist.style.top = `${0}px`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (scrollPos < lastScrollTop) {\n\t\t\t\t\t\t// upscroll code\n\t\t\t\t\t\tif (header !== null) {\n\t\t\t\t\t\t\tif (header?.classList.contains('uk-sticky-fixed')) downloadist.style.top = `${headerHeight}px`;\n\t\t\t\t\t\t\tif (!header?.classList.contains('uk-sticky-fixed') && scrollPos < headerHeight)\n\t\t\t\t\t\t\t\tdownloadist.style.top = `${headerHeight - scrollPos > 0 ? headerHeight - scrollPos : 0}px`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastScrollTop = scrollPos <= 0 ? 0 : scrollPos;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ capture: true },\n\t\t);\n\t}\n\n\tprivate closeMessage() {\n\t\tconst message = this.$element.querySelector('.message-row') as HTMLElement;\n\t\tconst closeMessage = this.$element.querySelector('.message-close') as HTMLElement;\n\t\tcloseMessage?.addEventListener('click', () => message?.setAttribute('data-show-message', 'false'));\n\t}\n\n\tprivate headerHandler() {\n\t\tconst header = document.getElementsByTagName('header')?.[0] as HTMLElement;\n\n\t\tconst body = document.body;\n\t\tconst mediacenter = body?.classList.contains('mediacenter');\n\t\tconst mediacenterDetail = body?.classList.contains('mediacenter-detail');\n\n\t\tif (header && header.classList.contains('overlap')) {\n\t\t\tif (this.basketShown) header.classList.add('black-background');\n\t\t\telse if (mediacenter && mediacenterDetail) header.classList.add('black-background');\n\t\t\telse header.classList.remove('black-background');\n\t\t}\n\t}\n}\n"],"names":["ControllerDownloadList","constructor","element","super","basketShown","this","init","card","setRemove","cards","list","querySelectorAll","item","querySelector","addEventListener","e","assetDownloadList","JSON","parse","id","getAttribute","index","indexOf","clearById","basketSize","parseInt","Math","max","splice","length","closeModal","stringify","remove","addIcon","document","origSvg","innerHTML","groupsWithId","group","classList","btn","clearAll","map","replaceAll","downloadAllAssets","href","apiUrl","options","headers","method","body","action","documentIds","fetch","then","response","json","data","downloadUrl","a","createElement","setAttribute","click","catch","err","console","error","getDownloadList","content","cardObject","result","listContainer","$element","maxSize","counter","counterButton","close","backdrop","counterWrapper","counterAdded","counterTotal","formatBytes","counterBar","counterBarLast","downloadAll","removeAll","add","header","setInterval","lastSize","style","width","left","innerText","headerHandler","closeMessage","srcollDirection","bytes","decimals","dm","i","floor","log","parseFloat","pow","toFixed","lastScrollTop","headerHeight","downloadist","clientHeight","top","window","scrollPos","pageYOffset","documentElement","scrollTop","contains","capture","message","getElementsByTagName","mediacenter","mediacenterDetail"],"sourceRoot":""}