{"version":3,"file":"js/page__shared_popover-ffc9aae3c0e8c4813a0c.chunk.js","mappings":"+eA2EA,MAzEA,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,EACH,OAEF,MAAME,EAAkBL,SAASM,cAAc,2BAA2BH,EAAcI,QAAQC,mBAChGf,KAAKgB,cAAcN,EAAeE,GAClC,MAAMK,IAA+E,SAAhDL,EAAgBM,aAAa,gBAClElB,KAAKmB,yBAAyBP,EAAiBK,GACX,OAAhCjB,KAAKC,yBACPM,SAASa,oBAAoB,QAASpB,KAAKE,4BAC3CF,KAAKqB,wBAEFJ,IACHjB,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,EAAG,QAKtB,CAEA,oBAAAX,GACErB,KAAKmB,yBAAyBnB,KAAKC,wBAAwB,GAC3DD,KAAKC,uBAAyB,IAChC,CAEA,mBAAAK,GACEC,SAASC,iBAAiB,sBAAuByB,IAC/C1B,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) {\n return;\n }\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('turbo: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":""}