{"version":3,"sources":["webpack:///./src/components/pmicom/components/unfoldable-list/controller.js"],"names":["MAIN_EASING","DELAY_DEBOUNCE","CLASS_NO_DISPLAY","require","getNumber","isFocusable","getFocusablesFrom","breakMedium","breakLarge","mediumDelay","default","trackGtm","trackGtm4","asyncImport","module","exports","init","articles","root","querySelectorAll","button","getElementsByClassName","buttonText","innerHTML","hasFourColumns","classList","contains","displayCount","getMinimum","length","add","update","addEventListener","e","getAttribute","event","widget_name","widget_title","querySelector","link_text","target","trim","interaction_type","step","getStep","track","window","debounce","resize","bind","dataset","modal","initModals","updateArticles","articlesList","number","forEach","article","i","style","display","firstNew","scrollIntoView","behavior","block","focus","animateButton","buttonPosBefore","buttonPosAfter","getBoundingClientRect","bottom","gap","anime","targets","top","duration","easing","finished","then","updateButtonVisibility","Array","from","leftArticles","remove","result","innerWidth","initial","min","modals","smallImagesWidgets","widget","index","__controller","open","mainArticle","otherArticles","widgetName","widgetTitle","_","imageLink","eventCategory","eventAction","eventLabel","href","link_url","button_type","element"],"mappings":";;;;;;;;;AAAA,MAAM;EACLA,WADK;EAELC,cAFK;EAGLC;AAHK,IAIFC,mBAAO,CAAC,iDAAD,CAJX;;AAMA,MAAM;EACLC,SADK;EAELC,WAFK;EAGLC;AAHK,IAIFH,mBAAO,CAAC,uDAAD,CAJX;;AAKA,IAAI;EAAEI,WAAF;EAAeC,UAAf;EAA2BC;AAA3B,IACHN,mBAAO,CAAC,iEAAD,CAAP,CAAyCO,OAD1C;;AAGA,MAAM;EAAEC,QAAF;EAAYC;AAAZ,IAA0BT,mBAAO,CAAC,uDAAD,CAAvC;;AACA,MAAMU,WAAW,GAAGV,mBAAO,CAAC,iDAAD,CAAP,CAA4BO,OAAhD;;AAEAH,WAAW,GAAGH,SAAS,CAACG,WAAD,CAAvB;AACAC,UAAU,GAAGJ,SAAS,CAACI,UAAD,CAAtB;AACAC,WAAW,GAAGL,SAAS,CAACK,WAAD,CAAvB;AAEAK,MAAM,CAACC,OAAP,GAAiB;EAChB,MAAMC,IAAN,GAAa;IACZ,KAAKC,QAAL,GAAgB,KAAKC,IAAL,CAAUC,gBAAV,CACf,yCADe,CAAhB;IAGA,KAAKC,MAAL,GAAc,KAAKF,IAAL,CAAUG,sBAAV,CAAiC,uBAAjC,EAA0D,CAA1D,CAAd;IACA,KAAKC,UAAL,GAAkB,KAAKF,MAAL,CAAYG,SAA9B;IACA,KAAKC,cAAL,GAAsB,KAAKN,IAAL,CAAUO,SAAV,CAAoBC,QAApB,CAA6B,cAA7B,CAAtB;IAEA,MAAMb,WAAW,CAAC,IAAD,EAAO,CAAC,OAAD,EAAU,UAAV,CAAP,CAAjB;IAEA,KAAKc,YAAL,GAAoB,KAAKC,UAAL,EAApB;;IACA,IAAI,KAAKD,YAAL,IAAqB,KAAKV,QAAL,CAAcY,MAAvC,EAA+C;MAC9C,KAAKT,MAAL,CAAYK,SAAZ,CAAsBK,GAAtB,CAA0B5B,gBAA1B;IACA,CAFD,MAEO;MACN,KAAK6B,MAAL;MACA,KAAKX,MAAL,CAAYY,gBAAZ,CAA6B,OAA7B,EAAsCC,CAAC,IAAI;QAC1C,IAAI,KAAKf,IAAL,CAAUgB,YAAV,CAAuB,aAAvB,CAAJ,EAA2C;UAC1CtB,SAAS,CAAC;YACTuB,KAAK,EAAE,iCADE;YAETC,WAAW,EAAE,KAAKlB,IAAL,CAAUgB,YAAV,CAAuB,aAAvB,CAFJ;YAGTG,YAAY,EAAE,KAAKnB,IAAL,CAAUoB,aAAV,CAAwB,qBAAxB,EACZf,SAJO;YAKTgB,SAAS,EAAEN,CAAC,CAACO,MAAF,CAASjB,SAAT,CAAmBkB,IAAnB,EALF;YAMTC,gBAAgB,EAAE;UANT,CAAD,CAAT;QAQA;;QACD,MAAMC,IAAI,GAAG,KAAKC,OAAL,EAAb;QACA,KAAKjB,YAAL,IAAqBgB,IAArB;QACA,KAAKZ,MAAL,CAAYY,IAAZ;MACA,CAdD;IAeA;;IACD,KAAKE,KAAL;IACAC,MAAM,CAACd,gBAAP,CACC,QADD,EAEC,KAAKe,QAAL,CAAc,KAAKC,MAAL,CAAYC,IAAZ,CAAiB,IAAjB,CAAd,EAAsChD,cAAtC,CAFD;IAIA,IAAI,KAAKiB,IAAL,CAAUgC,OAAV,CAAkBC,KAAtB,EAA6B,KAAKC,UAAL;EAC7B,CAtCe;;EAuChBC,cAAc,CAACC,YAAD,EAAeC,MAAf,EAAuB;IACpCD,YAAY,CAACE,OAAb,CAAqB,CAACC,OAAD,EAAUC,CAAV,KAAgB;MACpCD,OAAO,CAACE,KAAR,CAAcC,OAAd,GAAwBF,CAAC,IAAI,KAAK/B,YAAV,GAAyB,MAAzB,GAAkC,EAA1D;;MACA,IAAI+B,CAAC,IAAI,KAAK/B,YAAL,GAAoB4B,MAAzB,IAAmCG,CAAC,GAAG,KAAK/B,YAAhD,EAA8D;QAC7D8B,OAAO,CAAChC,SAAR,CAAkBK,GAAlB,CAAsB,SAAtB;MACA;IACD,CALD;;IAMA,IAAIyB,MAAJ,EAAY;MAAA;;MACX,MAAMM,QAAQ,GAAGP,YAAY,CAAC,KAAK3B,YAAL,GAAoB4B,MAArB,CAA7B;MACAM,QAAQ,CAACC,cAAT,CAAwB;QACvBC,QAAQ,EAAE,QADa;QAEvBC,KAAK,EAAE;MAFgB,CAAxB;MAIA,QAAC3D,WAAW,CAACwD,QAAD,CAAX,GACEA,QADF,GAEEvD,iBAAiB,CAACuD,QAAD,CAAjB,CAA4B,CAA5B,CAFH,8CAGGI,KAHH;IAIA;EACD,CAzDe;;EA0DhBC,aAAa,CAACC,eAAD,EAAkB;IAC9B,MAAMC,cAAc,GAAG,KAAKhD,MAAL,CAAYiD,qBAAZ,GAAoCC,MAA3D;IACA,MAAMC,GAAG,GAAGH,cAAc,GAAGD,eAA7B;IACA,KAAK/C,MAAL,CAAYK,SAAZ,CAAsBK,GAAtB,CAA0B,QAA1B;IAEA,KAAK0C,KAAL,CAAW;MACVC,OAAO,EAAE,KAAKrD,MADJ;MAEVsD,GAAG,EAAE,CAAC,CAACH,GAAF,EAAO,CAAP,CAFK;MAGVI,QAAQ,EAAElE,WAAW,GAAG,IAHd;MAIVmE,MAAM,EAAE5E;IAJE,CAAX,EAKG6E,QALH,CAKYC,IALZ,CAKiB,KAAKC,sBAAL,CAA4B9B,IAA5B,CAAiC,IAAjC,CALjB;EAMA,CArEe;;EAsEhBlB,MAAM,CAACwB,MAAM,GAAG,CAAV,EAAa;IAClB,MAAMY,eAAe,GAAG,KAAK/C,MAAL,CAAYiD,qBAAZ,GAAoCC,MAA5D;;IACA,IAAI,KAAK3C,YAAL,IAAqB,KAAKV,QAAL,CAAcY,MAAvC,EAA+C;MAC9C,KAAKF,YAAL,GAAoB,KAAKV,QAAL,CAAcY,MAAlC;IACA;;IAED,MAAMyB,YAAY,GAAG0B,KAAK,CAACC,IAAN,CAAW,KAAKhE,QAAhB,CAArB;IACA,KAAKoC,cAAL,CAAoBC,YAApB,EAAkCC,MAAlC,EAPkB,CAQlB;;IACA,MAAM2B,YAAY,GAAG,KAAKjE,QAAL,CAAcY,MAAd,GAAuB,KAAKF,YAAjD;IACA,KAAKP,MAAL,CAAYG,SAAZ,GAAyB,GAAE,KAAKD,UAAW,KAAI4D,YAAa,GAA5D;IACA,KAAKH,sBAAL,GAXkB,CAYlB;;IACA,IAAIxB,MAAJ,EAAY;MACX,KAAKW,aAAL,CAAmBC,eAAnB;IACA;EACD,CAtFe;;EAuFhBY,sBAAsB,GAAG;IACxB;IACA,IAAI,KAAKpD,YAAL,GAAoB,KAAKV,QAAL,CAAcY,MAAtC,EACC,KAAKT,MAAL,CAAYK,SAAZ,CAAsB0D,MAAtB,CAA6B,QAA7B,EADD,KAEK;MACJ,KAAK/D,MAAL,CAAYK,SAAZ,CAAsBK,GAAtB,CAA0B,YAA1B;IACA;EACD,CA9Fe;;EA+FhBF,UAAU,GAAG;IACZ,IAAIwD,MAAM,GAAG,KAAK5D,cAAL,GAAsB,CAAtB,GAA0B,CAAvC;IACA,IAAIsB,MAAM,CAACuC,UAAP,IAAqB9E,WAAzB,EAAsC6E,MAAM,GAAG,KAAK5D,cAAL,GAAsB,CAAtB,GAA0B,CAAnC;IACtC,IAAIsB,MAAM,CAACuC,UAAP,IAAqB7E,UAAzB,EAAqC4E,MAAM,GAAG,KAAK5D,cAAL,GAAsB,CAAtB,GAA0B,CAAnC;IACrC,OAAO4D,MAAP;EACA,CApGe;;EAqGhBxC,OAAO,GAAG;IACT,IAAIwC,MAAM,GAAG,CAAb;IACA,IAAItC,MAAM,CAACuC,UAAP,IAAqB9E,WAAzB,EAAsC6E,MAAM,GAAG,CAAT;IACtC,IAAItC,MAAM,CAACuC,UAAP,IAAqB7E,UAAzB,EAAqC4E,MAAM,GAAG,KAAK5D,cAAL,GAAsB,CAAtB,GAA0B,CAAnC;IACrC,OAAO4D,MAAP;EACA,CA1Ge;;EA2GhBpC,MAAM,GAAG;IACR,MAAMsC,OAAO,GAAG,KAAK3D,YAArB;IACA,MAAMgB,IAAI,GAAG,KAAKC,OAAL,EAAb;IACA,MAAM2C,GAAG,GAAG,KAAK3D,UAAL,EAAZ,CAHQ,CAIR;;IACA,IAAI,KAAKD,YAAL,GAAoB4D,GAAxB,EAA6B,KAAK5D,YAAL,GAAoB4D,GAApB;IAC7B,MAAMhB,GAAG,GAAG,CAAC,KAAK5C,YAAL,GAAoB4D,GAArB,IAA4B5C,IAAxC;IACA,IAAI4B,GAAJ,EAAS,KAAK5C,YAAL,IAAqBgB,IAAI,GAAG4B,GAA5B;IACT,IAAI,KAAK5C,YAAL,KAAsB2D,OAA1B,EAAmC,KAAKvD,MAAL,GAR3B,CAQ0C;EAClD,CApHe;;EAqHhBqB,UAAU,GAAG;IACZ,KAAKoC,MAAL,GAAc,KAAKtE,IAAL,CAAUC,gBAAV,CAA2B,mBAA3B,CAAd;IACA,KAAKsE,kBAAL,GAA0B,KAAKvE,IAAL,CAAUC,gBAAV,CACzB,0BADyB,CAA1B;IAGA,KAAKsE,kBAAL,CAAwBjC,OAAxB,CAAgC,CAACkC,MAAD,EAASC,KAAT,KAAmB;MAClDD,MAAM,CAAC1D,gBAAP,CAAwB,OAAxB,EAAiC,MAChC,KAAKwD,MAAL,CAAYG,KAAZ,EAAmBC,YAAnB,CAAgCC,IAAhC,EADD;IAGA,CAJD;EAKA,CA/He;;EAgIhBhD,KAAK,GAAG;IACP,MAAMiD,WAAW,GAAG,KAAK5E,IAAL,CAAUoB,aAAV,CAAwB,4BAAxB,CAApB;IACA,MAAMyD,aAAa,GAAG,KAAK7E,IAAL,CAAUC,gBAAV,CACrB,4BADqB,CAAtB;IAGA,MAAM6E,UAAU,GAAG,KAAK9E,IAAL,CAAUgB,YAAV,CAAuB,aAAvB,CAAnB;IACA,MAAM+D,WAAW,GAAG,KAAK/E,IAAL,CAAUgB,YAAV,CAAuB,mBAAvB,CAApB;IACA,IAAI4D,WAAJ,EACCA,WAAW,CAAC9D,gBAAZ,CAA6B,OAA7B,EAAsCkE,CAAC,IAAI;MAC1C,MAAMC,SAAS,GAAGL,WAAW,CAACxD,aAAZ,CACjB,4BADiB,CAAlB;MAGA3B,QAAQ,CAAC;QACRyF,aAAa,EAAE,KADP;QAERC,WAAW,EAAE,MAFL;QAGRC,UAAU,EAAER,WAAW,CAACS;MAHhB,CAAD,CAAR;MAKA3F,SAAS,CAAC;QACTuB,KAAK,EAAE,iBADE;QAETC,WAAW,EAAE4D,UAFJ;QAGT3D,YAAY,EAAE4D,WAHL;QAIT1D,SAAS,EAAE4D,SAAS,CAAC5E,SAJZ;QAKTiF,QAAQ,EAAEL,SAAS,CAACI,IALX;QAMTE,WAAW,EAAE;MANJ,CAAD,CAAT;IAQA,CAjBD;IAmBDV,aAAa,CAACvC,OAAd,CAAsBkD,OAAO,IAAI;MAChCA,OAAO,CAAC1E,gBAAR,CAAyB,OAAzB,EAAkCkE,CAAC,IAAI;QACtCvF,QAAQ,CAAC;UACRyF,aAAa,EAAE,KADP;UAERC,WAAW,EAAE,OAFL;UAGRC,UAAU,EAAEI,OAAO,CAACH;QAHZ,CAAD,CAAR;MAKA,CAND;IAOA,CARD;EASA;;AApKe,CAAjB,C","file":"components--unfoldable-listde0a4cc370050ccff021.js","sourcesContent":["const {\n\tMAIN_EASING,\n\tDELAY_DEBOUNCE,\n\tCLASS_NO_DISPLAY,\n} = require('../../../../js/consts');\n\nconst {\n\tgetNumber,\n\tisFocusable,\n\tgetFocusablesFrom,\n} = require('../../../../js/functions');\nlet { breakMedium, breakLarge, mediumDelay } =\n\trequire('../../../../js/sass-variables').default;\n\nconst { trackGtm, trackGtm4 } = require('../../../../js/functions');\nconst asyncImport = require('util/asyncImport').default;\n\nbreakMedium = getNumber(breakMedium);\nbreakLarge = getNumber(breakLarge);\nmediumDelay = getNumber(mediumDelay);\n\nmodule.exports = {\n\tasync init() {\n\t\tthis.articles = this.root.querySelectorAll(\n\t\t\t'.small-image-above-title, .gallery-item',\n\t\t);\n\t\tthis.button = this.root.getElementsByClassName('unfoldable-list--more')[0];\n\t\tthis.buttonText = this.button.innerHTML;\n\t\tthis.hasFourColumns = this.root.classList.contains('four-columns');\n\n\t\tawait asyncImport(this, ['anime', 'debounce']);\n\n\t\tthis.displayCount = this.getMinimum();\n\t\tif (this.displayCount >= this.articles.length) {\n\t\t\tthis.button.classList.add(CLASS_NO_DISPLAY);\n\t\t} else {\n\t\t\tthis.update();\n\t\t\tthis.button.addEventListener('click', e => {\n\t\t\t\tif (this.root.getAttribute('data-parent')) {\n\t\t\t\t\ttrackGtm4({\n\t\t\t\t\t\tevent: 'GA4_event_c_content_interaction',\n\t\t\t\t\t\twidget_name: this.root.getAttribute('data-parent'),\n\t\t\t\t\t\twidget_title: this.root.querySelector('.above-widget-title')\n\t\t\t\t\t\t\t.innerHTML,\n\t\t\t\t\t\tlink_text: e.target.innerHTML.trim(),\n\t\t\t\t\t\tinteraction_type: 'show more',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst step = this.getStep();\n\t\t\t\tthis.displayCount += step;\n\t\t\t\tthis.update(step);\n\t\t\t});\n\t\t}\n\t\tthis.track();\n\t\twindow.addEventListener(\n\t\t\t'resize',\n\t\t\tthis.debounce(this.resize.bind(this), DELAY_DEBOUNCE),\n\t\t);\n\t\tif (this.root.dataset.modal) this.initModals();\n\t},\n\tupdateArticles(articlesList, number) {\n\t\tarticlesList.forEach((article, i) => {\n\t\t\tarticle.style.display = i >= this.displayCount ? 'none' : '';\n\t\t\tif (i >= this.displayCount - number && i < this.displayCount) {\n\t\t\t\tarticle.classList.add('fade-in');\n\t\t\t}\n\t\t});\n\t\tif (number) {\n\t\t\tconst firstNew = articlesList[this.displayCount - number];\n\t\t\tfirstNew.scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tblock: 'center',\n\t\t\t});\n\t\t\t(isFocusable(firstNew)\n\t\t\t\t? firstNew\n\t\t\t\t: getFocusablesFrom(firstNew)[0]\n\t\t\t)?.focus();\n\t\t}\n\t},\n\tanimateButton(buttonPosBefore) {\n\t\tconst buttonPosAfter = this.button.getBoundingClientRect().bottom;\n\t\tconst gap = buttonPosAfter - buttonPosBefore;\n\t\tthis.button.classList.add('adding');\n\n\t\tthis.anime({\n\t\t\ttargets: this.button,\n\t\t\ttop: [-gap, 0],\n\t\t\tduration: mediumDelay * 1000,\n\t\t\teasing: MAIN_EASING,\n\t\t}).finished.then(this.updateButtonVisibility.bind(this));\n\t},\n\tupdate(number = 0) {\n\t\tconst buttonPosBefore = this.button.getBoundingClientRect().bottom;\n\t\tif (this.displayCount >= this.articles.length) {\n\t\t\tthis.displayCount = this.articles.length;\n\t\t}\n\n\t\tconst articlesList = Array.from(this.articles);\n\t\tthis.updateArticles(articlesList, number);\n\t\t// update button label\n\t\tconst leftArticles = this.articles.length - this.displayCount;\n\t\tthis.button.innerHTML = `${this.buttonText} (${leftArticles})`;\n\t\tthis.updateButtonVisibility();\n\t\t// button push animation\n\t\tif (number) {\n\t\t\tthis.animateButton(buttonPosBefore);\n\t\t}\n\t},\n\tupdateButtonVisibility() {\n\t\t// if some left or not\n\t\tif (this.displayCount < this.articles.length)\n\t\t\tthis.button.classList.remove('adding');\n\t\telse {\n\t\t\tthis.button.classList.add('deactivate');\n\t\t}\n\t},\n\tgetMinimum() {\n\t\tlet result = this.hasFourColumns ? 4 : 2;\n\t\tif (window.innerWidth >= breakMedium) result = this.hasFourColumns ? 5 : 3;\n\t\tif (window.innerWidth >= breakLarge) result = this.hasFourColumns ? 6 : 3;\n\t\treturn result;\n\t},\n\tgetStep() {\n\t\tlet result = 4;\n\t\tif (window.innerWidth >= breakMedium) result = 3;\n\t\tif (window.innerWidth >= breakLarge) result = this.hasFourColumns ? 4 : 3;\n\t\treturn result;\n\t},\n\tresize() {\n\t\tconst initial = this.displayCount;\n\t\tconst step = this.getStep();\n\t\tconst min = this.getMinimum();\n\t\t// fix the number to have complete last row according to the new size steps\n\t\tif (this.displayCount < min) this.displayCount = min;\n\t\tconst gap = (this.displayCount - min) % step;\n\t\tif (gap) this.displayCount += step - gap;\n\t\tif (this.displayCount !== initial) this.update(); // update only if changes\n\t},\n\tinitModals() {\n\t\tthis.modals = this.root.querySelectorAll('.modal-controller');\n\t\tthis.smallImagesWidgets = this.root.querySelectorAll(\n\t\t\t'.small-image-above-title',\n\t\t);\n\t\tthis.smallImagesWidgets.forEach((widget, index) => {\n\t\t\twidget.addEventListener('click', () =>\n\t\t\t\tthis.modals[index].__controller.open(),\n\t\t\t);\n\t\t});\n\t},\n\ttrack() {\n\t\tconst mainArticle = this.root.querySelector('.large-image-text-on-image');\n\t\tconst otherArticles = this.root.querySelectorAll(\n\t\t\t'.small-image-above-title a',\n\t\t);\n\t\tconst widgetName = this.root.getAttribute('data-parent');\n\t\tconst widgetTitle = this.root.getAttribute('data-parent-title');\n\t\tif (mainArticle)\n\t\t\tmainArticle.addEventListener('click', _ => {\n\t\t\t\tconst imageLink = mainArticle.querySelector(\n\t\t\t\t\t'.box-article-content--link',\n\t\t\t\t);\n\t\t\t\ttrackGtm({\n\t\t\t\t\teventCategory: 'cta',\n\t\t\t\t\teventAction: 'read',\n\t\t\t\t\teventLabel: mainArticle.href,\n\t\t\t\t});\n\t\t\t\ttrackGtm4({\n\t\t\t\t\tevent: 'GA4_event_c_cta',\n\t\t\t\t\twidget_name: widgetName,\n\t\t\t\t\twidget_title: widgetTitle,\n\t\t\t\t\tlink_text: imageLink.innerHTML,\n\t\t\t\t\tlink_url: imageLink.href,\n\t\t\t\t\tbutton_type: '',\n\t\t\t\t});\n\t\t\t});\n\n\t\totherArticles.forEach(element => {\n\t\t\telement.addEventListener('click', _ => {\n\t\t\t\ttrackGtm({\n\t\t\t\t\teventCategory: 'cta',\n\t\t\t\t\teventAction: 'image',\n\t\t\t\t\teventLabel: element.href,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t},\n};\n"],"sourceRoot":""}