<html><head></head><body>{"version":3,"file":"audienceQuestionnarie-BrzL43JI.js","sources":["../../src/scripts/modules/audienceQuestionnarie.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { isTabletLandscape } from '../helpers';\n\nclass AudienceQuestionnaire extends Component {\n prevSelectedValue: string | null = null;\n\n constructor(el: HTMLElement) {\n super(el);\n this.initCards();\n this.prevSelectedValue = (this.dom.audienceSelector as HTMLSelectElement).value;\n this.initResizeObserver();\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n audienceSelector: this.el.querySelector<htmlelement>('.audience-selector'),\n audiencePanels: this.el.querySelectorAll<htmlelement>(\n '.audience-questionnaire__card-container'\n ),\n audienceCard: this.el.querySelectorAll<htmlelement>('.audience-questionnaire__card'),\n audienceCardWrapper: this.el.querySelector<htmlelement>(\n '.audience-questionnaire__container-wrapper'\n )\n };\n }\n\n addListeners() {\n (this.dom.audienceSelector as HTMLSelectElement).addEventListener(\n 'change',\n this.handleAudienceSelector.bind(this)\n );\n (this.dom.audienceCard as NodeList).forEach(card => {\n (card as HTMLElement).addEventListener('click', this.handleAudienceCardClick.bind(this));\n (card as HTMLElement).addEventListener('keydown', e => {\n if (e.key === 'Enter') {\n this.handleAudienceCardClick(e);\n }\n });\n });\n }\n\n initResizeObserver() {\n const resizeObserver = new ResizeObserver(entries => {\n if (entries && entries[0]) {\n const target = entries[0].target as HTMLElement;\n const activePanel = target.querySelector('[data-active=\"true\"]');\n const activePanelHeight = activePanel?.clientHeight;\n target.style.height = `${activePanelHeight}px`;\n }\n });\n\n if (this.dom.audienceCardWrapper) {\n resizeObserver.observe(this.dom.audienceCardWrapper as HTMLElement);\n }\n\n const mutationObserver = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === 'attributes') {\n (this.dom.audienceCardWrapper as HTMLElement).style.height = '';\n const target = this.dom.audienceCardWrapper as HTMLElement;\n const activePanel = target.querySelector('[data-active=\"true\"]');\n const activePanelHeight = activePanel?.clientHeight;\n setTimeout(() => {\n target.style.height = `${activePanelHeight}px`;\n }, 100);\n }\n });\n });\n\n if (this.dom.audienceCard) {\n [...(this.dom.audienceCard as NodeList)].forEach(card => {\n mutationObserver.observe(card as HTMLElement, { attributes: true });\n });\n }\n }\n\n handleAudienceSelector(e: Event) {\n const target = e.target as HTMLSelectElement;\n const selectedValue = target.value;\n\n (this.dom.audienceCard as NodeList).forEach(card => {\n (card as HTMLElement).classList.remove('active');\n });\n\n (this.dom.audiencePanels as NodeList).forEach(panel => {\n if ((panel as HTMLElement).id === `${selectedValue}-panel`) {\n (panel as HTMLElement).dataset.state = 'slide-in';\n (panel as HTMLElement).dataset.active = 'true';\n } else {\n (panel as HTMLElement).dataset.state = 'slide-out';\n delete (panel as HTMLElement).dataset.active;\n }\n });\n }\n\n initCards() {\n (this.dom.audiencePanels as NodeList).forEach(panel => {\n const cards = (panel as HTMLElement).querySelectorAll('.audience-questionnaire__card');\n\n if (cards.length) {\n cards.forEach((card, i) => {\n const index = i + 1;\n (card as HTMLElement).style.setProperty('--index', `${index}`);\n });\n\n [...cards].reverse().forEach((card, i) => {\n const index = i + 1;\n (card as HTMLElement).style.setProperty('--index-reversed', `${index}`);\n });\n }\n\n (panel as HTMLElement).style.setProperty('--total', `${(cards.length * 0.4) / 2}s`);\n });\n }\n\n handleAudienceCardClick(e: Event) {\n const target = e.target as HTMLElement;\n const audienceCard = target.closest('.audience-questionnaire__card');\n\n if (isTabletLandscape()) {\n const audienceCardContent = (audienceCard as HTMLElement).querySelector(\n '.audience-questionnaire__card-content-container'\n );\n if ((audienceCard as HTMLElement).classList.contains('active')) {\n (audienceCardContent as HTMLElement).style.display = 'none';\n } else {\n (audienceCardContent as HTMLElement).style.display = 'flex';\n }\n }\n\n requestAnimationFrame(() => {\n (audienceCard as HTMLElement).classList.toggle('active');\n });\n\n this.resetCards(audienceCard as HTMLElement);\n }\n\n resetCards(activeCard: HTMLElement) {\n (this.dom.audienceCard as NodeList).forEach(card => {\n if (card !== activeCard) {\n (card as HTMLElement).classList.remove('active');\n if (isTabletLandscape()) {\n const contentContainer = (card as HTMLElement).querySelector(\n '.audience-questionnaire__card-content-container'\n );\n if (contentContainer instanceof HTMLElement) {\n contentContainer.style.display = 'none';\n }\n }\n }\n });\n }\n}\n\nexport default AudienceQuestionnaire;\n"],"names":["AudienceQuestionnaire","Component","el","__publicField","card","e","resizeObserver","entries","target","activePanel","activePanelHeight","mutationObserver","mutations","mutation","selectedValue","panel","cards","index","audienceCard","isTabletLandscape","audienceCardContent","activeCard","contentContainer"],"mappings":"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"}</htmlelement></htmlelement></htmlelement></htmlelement><style> .hidden { display: none; } </style> <a href="http://web-sitemap.wreckoftherichmond.net" class="hidden">潇湘原创作者登录</a> <a href="http://www.rf518.com" class="hidden">Gaming-platform-hr@rf518.com</a> <a href="http://www.baoqiuyue.net" class="hidden">威尼斯人娱乐城</a> <a href="http://www.zhenrenqi.com" class="hidden">买球平台</a> <a href="http://www.beanslot.net" class="hidden">Sabah-online-platform-feedback@beanslot.net</a> <a href="http://www.izuanhui.net" class="hidden">足球买球</a> <a href="http://hdtxqi.shorinji-kempo.net" class="hidden">澄海人才网</a> <a href="http://nedfny.cswkyt.com" class="hidden">最右</a> <a href="http://www.haerbinjiudian.com" class="hidden">Sabah-Sports-website-info@haerbinjiudian.com</a> <a href="http://emfwxy.tjttac.com" class="hidden">白鹿书院</a> <a href="http://www.nbzhiai.com" class="hidden">Crown-Sports-official-website-support@nbzhiai.com</a> <a href="http://www.jyycl.com" class="hidden">Crown-Sports-support@jyycl.com</a> <a href="http://web-sitemap.nexustaiwan.com" class="hidden">游久穿越火线cf官网合作站</a> <a href="http://www.suzhuan-sh.com" class="hidden">买球平台</a> <a href="http://www.cesametal.net" class="hidden">亚洲体育博彩平台</a> <a href="http://www.madeintlh.com" class="hidden">New-Portugal-new-Beijing-media@madeintlh.com</a> <a href="http://www.rdsy.net" class="hidden">皇冠体育博彩</a> <a href="http://www.nbzhiai.com" class="hidden">Crown-Sports-service@nbzhiai.com</a> <a href="http://www.thithithainguyen.net" class="hidden">bbin</a> <a href="http://pwgulb.warocolor.com" class="hidden">58同城四平分类信息网</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️网址:la666.net✔️bwin娱乐手机版(中国)有限公司✔️网址:la666.net✔️bwin娱乐手机版(中国)有限公司" class="hidden">天津宏中电子衡器科技有限公司</a> <a href="https://stock.adobe.com/search/images?k=✔️网址:la666.net✔️线上赌博app(中国)有限公司.cwb" class="hidden">武昌理工学院</a> <a href="https://stock.adobe.com/search?k=✔️官方网址:la777.net✔️永利集团官网平台-永利集团官网平台官方网站" class="hidden">互联网的一些事</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️最新网址:la55.net✔️十大正规网博靠谱平台-十大正规网博靠谱平台官方网站.vfk" class="hidden">久久健康网保健频道</a> <a href="https://m.facebook.com/public/✔️最新网址:la55.net✔️加拿大28软件-加拿大28软件官方网站" class="hidden">御府和田玉网</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️最新网址:la55.net✔️大阳城集团网站(中国)有限公司✔️最新网址:la55.net✔️大阳城集团网站(中国)有限公司.vth" class="hidden">爱流行</a> <a href="https://m.facebook.com/public/博彩导航排行榜✔️官方网址:la777.net✔️" class="hidden">蒙恩莎(鸿业)办公家具网</a> <a href="https://stock.adobe.com/search/images?k=✔️网址:ad11.net✔️澳门百家乐网址-澳门百家乐网址官方网站✔️网址:ad11.net✔️澳门百家乐网址-澳门百家乐网址官方网站.dbx" class="hidden">长沙百姓网</a> <a href="https://es-la.facebook.com/public/信誉网络博彩中国体育博彩网站(中国)有限公司✔️最新网址:ad22.net✔️.osi" class="hidden">快吧单机游戏</a> <a href="https://stock.adobe.com/search/images?k=✔️网址:la666.net✔️科普一下ku真人手机版的百科✔️网址:la666.net✔️科普一下ku真人手机版的百科.yyk" class="hidden">中国联通网上营业厅新品试用中心</a> <a href="/sitemap.xml" class="hidden">站点地图</a> <a href="/sttcs/hot-news/unexpertness.html" class="hidden">存享 VfxCx </a> <a href="/CN/tftgoj-779110.html" class="hidden">虎扑装备</a> </body></html>