{"version":3,"sources":["webpack:///./src/components/pmicom/widgets/show-more-widget/controller.js"],"names":["CLASS_HIDE","CLASS_GRADIENT","CLASS_SHOW","MAIN_EASING","require","default","slowDelay","getNumber","awaitEventOn","trackSeeMore","trackGtm4","asyncImport","scrollDuration","module","exports","init","initElements","initEvents","container","root","querySelector","content","intro","button","lessButton","addEventListener","open","bind","close","getTitle","title","textContent","words","split","mustBeCropped","length","slice","join","trackToggling","classList","add","remove","height","offsetHeight","changeContainerHeight","event","widget_name","widget_title","link_text","innerHTML","interaction_type","scrollUp","trim","isUnfolded","initialHeight","style","distance","Math","abs","duration","transition","showMoreButtonTop","getBoundingClientRect","top","buttonTop","window","pageYOffset","targetScroll","pageXOffset","animation","anime","targets","document","scrollingElement","scrollTop","easing"],"mappings":"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","file":"components--show-more-widget8fa9f1b3348c92c06ccb.js","sourcesContent":["const CLASS_HIDE = 'hide';\nconst CLASS_GRADIENT = 'gradient';\nconst CLASS_SHOW = 'show';\nconst { MAIN_EASING } = require('util/consts');\nconst {\n\tdefault: { slowDelay },\n} = require('util/sass-variables');\nconst {\n\tgetNumber,\n\tawaitEventOn,\n\ttrackSeeMore,\n\ttrackGtm4,\n} = require('util/functions');\nconst asyncImport = require('util/asyncImport').default;\n\nconst scrollDuration = getNumber(slowDelay) * 1000;\n\nmodule.exports = {\n\tasync init() {\n\t\tthis.initElements();\n\t\tawait asyncImport(this, 'anime');\n\t\tthis.initEvents();\n\t},\n\n\tinitElements() {\n\t\tthis.container = this.root.querySelector('.show-more--container');\n\t\tthis.content = this.container.querySelector('.show-more--content');\n\t\tthis.intro = this.root.querySelector('.show-more--intro');\n\t\tthis.button = this.root.querySelector('.show-more--button');\n\t\tthis.lessButton = this.root.querySelector('.show-more--less-button');\n\t},\n\n\tinitEvents() {\n\t\tthis.button.addEventListener('click', this.open.bind(this));\n\t\tthis.lessButton.addEventListener('click', this.close.bind(this));\n\t},\n\tgetTitle() {\n\t\treturn (\n\t\t\tthis.title ||\n\t\t\t(() => {\n\t\t\t\tconst { textContent } = this.intro;\n\t\t\t\tconst words = textContent.split(' ');\n\t\t\t\tconst mustBeCropped = words.length > 5;\n\t\t\t\tthis.title =\n\t\t\t\t\t(mustBeCropped ? words.slice(0, 5) : words).join(' ') +\n\t\t\t\t\t(mustBeCropped ? ' ...' : '');\n\t\t\t\treturn this.title;\n\t\t\t})()\n\t\t);\n\t},\n\topen() {\n\t\tthis.trackToggling(true);\n\t\tthis.button.classList.add(CLASS_HIDE);\n\t\tthis.intro.classList.remove(CLASS_GRADIENT);\n\t\tconst height = this.content.offsetHeight;\n\t\tthis.changeContainerHeight(height);\n\t\tthis.lessButton.classList.add(CLASS_SHOW);\n\t\ttrackGtm4({\n\t\t\tevent: 'GA4_event_c_content_interaction',\n\t\t\twidget_name: 'V3-Show-more',\n\t\t\twidget_title: this.getTitle(),\n\t\t\tlink_text: this.button.innerHTML,\n\t\t\tinteraction_type: 'show more',\n\t\t});\n\t},\n\tasync close() {\n\t\tthis.trackToggling(false);\n\t\tthis.lessButton.classList.remove(CLASS_SHOW);\n\t\tthis.button.classList.remove(CLASS_HIDE);\n\t\tthis.changeContainerHeight(0);\n\t\tthis.intro.classList.add(CLASS_GRADIENT);\n\t\tawait awaitEventOn(this.container, 'transitionend');\n\t\tthis.scrollUp();\n\t\ttrackGtm4({\n\t\t\tevent: 'GA4_event_c_content_interaction',\n\t\t\twidget_name: 'V3-Show-more',\n\t\t\twidget_title: this.getTitle(),\n\t\t\tlink_text: this.lessButton.innerHTML.trim(),\n\t\t\tinteraction_type: 'show less',\n\t\t});\n\t},\n\ttrackToggling(isUnfolded) {\n\t\ttrackSeeMore(this.getTitle(), 'show-more-widget', isUnfolded);\n\t},\n\tchangeContainerHeight(height) {\n\t\tconst initialHeight = getNumber(this.container.style.height);\n\t\tconst distance = Math.abs(height - initialHeight);\n\t\tconst duration = (scrollDuration * distance) / 1000;\n\t\tthis.container.style.height = height + 'px';\n\t\tthis.container.style.transition = `${duration / 1000}s height ease-in-out`;\n\t},\n\n\tscrollUp() {\n\t\tconst showMoreButtonTop = this.button.getBoundingClientRect().top;\n\t\tif (showMoreButtonTop < 0) {\n\t\t\tconst buttonTop = showMoreButtonTop + window.pageYOffset;\n\t\t\tconst targetScroll = buttonTop - 200;\n\t\t\tconst distance = Math.abs(targetScroll - window.pageXOffset);\n\t\t\tthis.animation = this.anime({\n\t\t\t\ttargets: document.scrollingElement,\n\t\t\t\tscrollTop: targetScroll,\n\t\t\t\teasing: MAIN_EASING,\n\t\t\t\tduration: (scrollDuration * distance) / 10000,\n\t\t\t});\n\t\t}\n\t},\n};\n"],"sourceRoot":""}