1 function next_read_more(){class ReadMore{constructor(element,options={}){this.element=element;this.selectorContainer=options.selectorContainer;this.selectroBtn=options.selectroBtn;this.classOpened='nb-read-more--opened';this.classCanMore='nb-read-more--true';this.inDuration=parseFloat(this.element.getAttribute('data-in-duration'));this.outDuration=parseFloat(this.element.getAttribute('data-out-duration'));this.inEase=this.element.getAttribute('data-in-ease');this.outEase=this.element.getAttribute('data-out-ease');if(this.canBeMore(this.element)){this.element.classList.add(this.classCanMore);const btn=this.element.querySelector(this.selectroBtn);btn.setAttribute('data-switch-title',this.element.getAttribute('data-switch-title'));btn.setAttribute('tabindex',0);btn.addEventListener('click',e=>this.onClick(this.element,e));btn.addEventListener('keydown',e=>this.onKeyDown(this.element,e))}} 2 onClick(elem,e){e.preventDefault();let container=elem.querySelector(this.selectorContainer),btn=e.currentTarget;elem.classList.toggle(this.classOpened);this.changeBtnTitle(btn);if(elem.classList.contains(this.classOpened)){gsap.to(container,{duration:this.inDuration,height:container.scrollHeight+"px",ease:this.inEase})}else{gsap.to(container,{duration:this.outDuration,height:elem.dataset.startHeight+'px',ease:this.outEase})}} 3 onKeyDown(elem,e){if(e.key==='Enter'){e.preventDefault();this.onClick(elem,e)}} 4 canBeMore(elem){let container=elem.querySelector(this.selectorContainer);let startHeigth=container.offsetHeight,trueHeight=container.scrollHeight;if(trueHeight>startHeigth){elem.dataset.startHeight=startHeigth;return!0}} 5 changeBtnTitle(btn){let switchTitle=btn.getAttribute('data-switch-title'),currentTitle=btn.innerText;btn.innerText=switchTitle;btn.dataset.switchTitle=currentTitle}} 6 document.querySelectorAll('.nb-read-more').forEach(readmore=>{new ReadMore(readmore,{selectorContainer:'.nb-read-more__container',selectroBtn:'.nb-read-more__btn'})})} 7 document.addEventListener("DOMContentLoaded",function(t){bricksIsFrontend&&next_read_more()})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.