{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/panels/script.js"],"sourcesContent":["import angleRight from '../../../assets/svg/angle-right.svg';\nconst plusIcon = false; // Set to false to use angle right icon\nconst titleIcon = plusIcon ? '' : angleRight;\nconst titleIconClass = plusIcon ? 'panels__plus-icon' : '';\n\nclass Panel {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.openedClass = 'panels__panel--opened';\n\t\tthis.opened = this.node.classList.contains(this.openedClass);\n\t\tthis.title = this.node.querySelector('.panels__title');\n\t\tthis.content = this.node.querySelector('.panels__content');\n\n\t\tif (this.title) {\n\t\t\tthis.title.insertAdjacentHTML('beforeend', `${titleIcon}`);\n\t\t\tthis.title.addEventListener('click', () => this.toggle());\n\t\t}\n\t}\n\n\topen() {\n\n\t\tconst { content, title, node } = this;\n\t\tconst { style } = content;\n\n\t\tnode.classList.add(this.openedClass);\n\t\ttitle.setAttribute('aria-expanded','true');\n\n\t\tstyle.display = 'block';\n\t\tstyle.position = 'absolute';\n\n\t\tlet height = this.content.offsetHeight;\n\n\t\tstyle.position = '';\n\t\tstyle.height = '0px';\n\t\tstyle.overflow = 'hidden';\n\n\t\tlet transitionend = (e) => {\n\t\t\tcontent.removeAttribute('style');\n\t\t\tthis.opened = true;\n\t\t\tcontent.removeEventListener('transitionend', transitionend);\n\t\t}\n\n\t\tcontent.addEventListener('transitionend', transitionend);\n\n\t\tstyle.transitionProperty = 'height, opacity';\n\t\tstyle.transitionDuration = '300ms';\n\t\tstyle.transitionTimingFunction = 'ease';\n\n\t\trequestAnimationFrame(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstyle.height = `${height}px`;\n\t\t\t\tstyle.opacity = 1;\n\t\t\t})\n\t\t});\n\t}\n\n\tclose() {\n\t\tconst { style } = this.content;\n\t\tthis.node.classList.remove(this.openedClass);\n\t\tthis.title.setAttribute('aria-expanded','false');\n\t\tstyle.display = 'block';\n\t\tstyle.overflow = 'hidden';\n\t\tstyle.height = `${this.content.offsetHeight}px`;\n\t\tstyle.transitionProperty = 'height, opacity';\n\t\tstyle.transitionDuration = '300ms';\n\t\tstyle.transitionTimingFunction = 'cubic-bezier(0.68, -0.55, 0.265, 1.55), linear';\n\n\t\tlet transitionend = (e) => {\n\t\t\tthis.content.removeAttribute('style');\n\t\t\tthis.opened = false;\n\t\t\tthis.content.removeEventListener('transitionend', transitionend);\n\t\t}\n\n\t\tthis.content.addEventListener('transitionend', transitionend);\n\n\t\trequestAnimationFrame(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstyle.height = '0';\n\t\t\t\tstyle.opacity = 0;\n\t\t\t})\n\t\t});\n\t}\n\n\ttoggle() {\n\t\treturn this.opened ? this.close() : this.open();\n\t}\n}\n\nclass Panels {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.node.classList.add('panels--interactive');\n\t\tconst panels = this.node.querySelectorAll('.panels__panel');\n\t\tthis.panels = [...panels].map(node => new Panel(node));\n\t}\n}\n\nconst panels = document.querySelectorAll('.panels');\nPanels.instances = [...panels].map(p => new Panels(p));\n\nexport default Panels;\n"],"names":["Panel","constructor","node","this","openedClass","opened","classList","contains","title","querySelector","content","insertAdjacentHTML","addEventListener","toggle","open","style","add","setAttribute","display","position","height","offsetHeight","overflow","transitionend","e","removeAttribute","removeEventListener","transitionProperty","transitionDuration","transitionTimingFunction","requestAnimationFrame","opacity","close","remove","Panels","panels","querySelectorAll","map","document","instances","p"],"mappings":"8DAKA,MAAMA,EACLC,WAAAA,CAAYC,GACXC,KAAKD,KAAcA,EACnBC,KAAKC,YAAc,wBACnBD,KAAKE,OAAcF,KAAKD,KAAKI,UAAUC,SAASJ,KAAKC,aACrDD,KAAKK,MAAcL,KAAKD,KAAKO,cAAc,kBAC3CN,KAAKO,QAAcP,KAAKD,KAAKO,cAAc,oBAEvCN,KAAKK,QACRL,KAAKK,MAAMG,mBAAmB,YAAa,kRAC3CR,KAAKK,MAAMI,iBAAiB,SAAS,IAAMT,KAAKU,WAElD,CAEAC,IAAAA,GAEC,MAAMJ,QAAEA,EAAOF,MAAEA,EAAKN,KAAEA,GAASC,MAC3BY,MAAEA,GAAUL,EAElBR,EAAKI,UAAUU,IAAIb,KAAKC,aACxBI,EAAMS,aAAa,gBAAgB,QAEnCF,EAAMG,QAAW,QACjBH,EAAMI,SAAW,WAEjB,IAAIC,EAASjB,KAAKO,QAAQW,aAE1BN,EAAMI,SAAW,GACjBJ,EAAMK,OAAW,MACjBL,EAAMO,SAAW,SAEjB,IAAIC,EAAiBC,IACpBd,EAAQe,gBAAgB,SACxBtB,KAAKE,QAAS,EACdK,EAAQgB,oBAAoB,gBAAiBH,EAAc,EAG5Db,EAAQE,iBAAiB,gBAAiBW,GAE1CR,EAAMY,mBAAqB,kBAC3BZ,EAAMa,mBAAqB,QAC3Bb,EAAMc,yBAA2B,OAEjCC,uBAAsB,KACrBA,uBAAsB,KACrBf,EAAMK,OAAS,GAAGA,MAClBL,EAAMgB,QAAU,CAAC,GAChB,GAEJ,CAEAC,KAAAA,GACC,MAAMjB,MAAEA,GAAUZ,KAAKO,QACvBP,KAAKD,KAAKI,UAAU2B,OAAO9B,KAAKC,aAChCD,KAAKK,MAAMS,aAAa,gBAAgB,SACxCF,EAAMG,QAAU,QAChBH,EAAMO,SAAW,SACjBP,EAAMK,OAAS,GAAGjB,KAAKO,QAAQW,iBAC/BN,EAAMY,mBAAqB,kBAC3BZ,EAAMa,mBAAqB,QAC3Bb,EAAMc,yBAA2B,iDAEjC,IAAIN,EAAiBC,IACpBrB,KAAKO,QAAQe,gBAAgB,SAC7BtB,KAAKE,QAAS,EACdF,KAAKO,QAAQgB,oBAAoB,gBAAiBH,EAAc,EAGjEpB,KAAKO,QAAQE,iBAAiB,gBAAiBW,GAE/CO,uBAAsB,KACrBA,uBAAsB,KACrBf,EAAMK,OAAS,IACfL,EAAMgB,QAAU,CAAC,GAChB,GAEJ,CAEAlB,MAAAA,GACC,OAAOV,KAAKE,OAASF,KAAK6B,QAAU7B,KAAKW,MAC1C,EAGD,MAAMoB,EACLjC,WAAAA,CAAYC,GACXC,KAAKD,KAAOA,EACZC,KAAKD,KAAKI,UAAUU,IAAI,uBACxB,MAAMmB,EAAShC,KAAKD,KAAKkC,iBAAiB,kBAC1CjC,KAAKgC,OAAS,IAAIA,GAAQE,KAAInC,GAAQ,IAAIF,EAAME,IACjD,EAGD,MAAMiC,EAASG,SAASF,iBAAiB,kBACzCF,EAAOK,UAAY,IAAIJ,GAAQE,KAAIG,GAAK,IAAIN,EAAOM"}