{"version":3,"file":"js/page__shared_popover-8de293727487c5cfacf1.chunk.js","mappings":"+eAyEA,MAvEA,MACE,IAAAA,GACEC,KAAKC,uBAAyB,KAE9BD,KAAKE,2BAA6BF,KAAKE,2BAA2BC,KAAKH,MACvEA,KAAKI,oBAAsBJ,KAAKI,oBAAoBD,KAAKH,MAEzDA,KAAKK,0BAELL,KAAKM,qBACP,CAEA,uBAAAD,GACEE,SAASC,iBAAiB,QAASR,KAAKI,oBAC1C,CAEA,mBAAAA,EAAoB,OAAEK,IACpB,MAAMC,EAAgBD,EAAOE,QAAQ,iBAErC,IAAKD,EAAiB,OACtB,MAAME,EAAkBL,SAASM,cAAc,2BAA2BH,EAAcI,QAAQC,mBAChGf,KAAKgB,cAAcN,EAAeE,GAClC,MAAMK,IAA+E,SAAhDL,EAAgBM,aAAa,gBAClElB,KAAKmB,yBAAyBP,EAAiBK,GACZ,OAAhCjB,KAAKC,yBACNM,SAASa,oBAAoB,QAASpB,KAAKE,4BAC3CF,KAAKqB,wBAEHJ,IACFjB,KAAKC,uBAAyBW,EAC9BL,SAASC,iBAAiB,QAASR,KAAKE,4BAE5C,CAEA,0BAAAA,CAA2BoB,GACrBtB,KAAKC,yBAA2BD,KAAKC,uBAAuBsB,SAASD,EAAMb,UAC7EF,SAASa,oBAAoB,QAASpB,KAAKE,4BAC3CF,KAAKqB,uBAET,CAEA,wBAAAF,CAAyBK,EAASC,GAChCD,EAAQE,aAAa,cAAeD,EACtC,CAEA,aAAAT,CAAcQ,EAASG,IACrB,QAAaH,EAASG,EAAW,CAC/BC,UAAW,MACXC,UAAW,CACT,CACEC,KAAM,SACNC,QAAS,CACPC,OAAQ,CAAC,EAAE,QAKrB,CAEA,oBAAAX,GACErB,KAAKmB,yBAAyBnB,KAAKC,wBAAwB,GAC3DD,KAAKC,uBAAyB,IAChC,CAEA,mBAAAK,GACEC,SAASC,iBAAiB,2BAA4ByB,IACpD1B,SAASa,oBAAoB,QAASpB,KAAKI,oBAAoB,GAEnE,E","sources":["webpack://nodalview/./app/javascript/src/shared/popover/index.js"],"sourcesContent":["import { createPopper } from '@popperjs/core';\n\nclass Popover {\n boot() {\n this.currentPopperContainer = null;\n\n this.removePopperOnOutsideClick = this.removePopperOnOutsideClick.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n\n this.listenToClickOnDocument();\n\n this._removeBeforeUnload();\n }\n\n listenToClickOnDocument() {\n document.addEventListener('click', this.handleDocumentClick);\n }\n \n handleDocumentClick({ target }) {\n const popperTrigger = target.closest('[data-popper]');\n\n if (!popperTrigger) { return }\n const popperContainer = document.querySelector(`[data-popper-container=\"${popperTrigger.dataset.popperElement}\"]`);\n this._createPopper(popperTrigger, popperContainer);\n const invertedAriaAttributeValue = !(popperContainer.getAttribute('aria-hidden') === 'true');\n this._changeElementAriaHidden(popperContainer, invertedAriaAttributeValue)\n if(this.currentPopperContainer !== null) {\n document.removeEventListener(\"click\", this.removePopperOnOutsideClick)\n this._wipePopperDisplayed()\n }\n if(!invertedAriaAttributeValue) {\n this.currentPopperContainer = popperContainer;\n document.addEventListener(\"click\", this.removePopperOnOutsideClick)\n }\n }\n\n removePopperOnOutsideClick(event) {\n if (this.currentPopperContainer && !this.currentPopperContainer.contains(event.target)) {\n document.removeEventListener(\"click\", this.removePopperOnOutsideClick)\n this._wipePopperDisplayed();\n }\n }\n\n _changeElementAriaHidden(element, value) {\n element.setAttribute('aria-hidden', value)\n }\n\n _createPopper(element, container) {\n createPopper(element, container, {\n placement: 'top',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0,10],\n },\n },\n ],\n })\n }\n\n _wipePopperDisplayed() {\n this._changeElementAriaHidden(this.currentPopperContainer, true)\n this.currentPopperContainer = null;\n }\n\n _removeBeforeUnload() {\n document.addEventListener('turbolinks:before-visit', (e) => {\n document.removeEventListener('click', this.handleDocumentClick);\n })\n }\n}\n\nexport default Popover\n"],"names":["boot","this","currentPopperContainer","removePopperOnOutsideClick","bind","handleDocumentClick","listenToClickOnDocument","_removeBeforeUnload","document","addEventListener","target","popperTrigger","closest","popperContainer","querySelector","dataset","popperElement","_createPopper","invertedAriaAttributeValue","getAttribute","_changeElementAriaHidden","removeEventListener","_wipePopperDisplayed","event","contains","element","value","setAttribute","container","placement","modifiers","name","options","offset","e"],"sourceRoot":""}