{"version":3,"file":"tooltip_controller-DGyy6bjO.js","sources":["../../../app/javascript/controllers/tooltip_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"tooltip\"]\n static values = {\n wait: { type: Number, default: 500 },\n show: { type: Boolean, default: false }\n }\n\n static classes = [\"visible\", \"invisible\"]\n\n initialize() {\n super.initialize()\n this.mutationObserver = new MutationObserver(this.callback.bind(this))\n }\n\n connect() {\n super.connect()\n\n if(this.showValue) {\n this.show()\n }\n\n this.mutationObserver.observe(this.element, { attributes: true })\n }\n\n disconnect() {\n this.mutationObserver.disconnect()\n }\n\n show() {\n this.showTimeout = setTimeout(() => {\n if(this.disabled) return\n\n this.tooltipTarget.classList.add(\"z-50\")\n\n this.tooltipTarget.classList.remove(\"-z-10\")\n this.tooltipTarget.classList.remove(...this.invisibilityClasses)\n\n setTimeout(() => {\n this.tooltipTarget.classList.add(\"opacity-100\")\n if(this.visibilityClasses.length > 1) {\n this.tooltipTarget.classList.add(...this.visibilityClasses)\n }\n }, this.waitValue)\n }, this.waitValue)\n }\n\n hide(e) {\n this.hideTimeout = setTimeout(() => {\n if(this.visibilityClasses.length > 1) {\n this.tooltipTarget.classList.remove(...this.visibilityClasses)\n }\n\n this.tooltipTarget.classList.remove(\"opacity-100\")\n\n setTimeout(() => {\n this.tooltipTarget.classList.add(...this.invisibilityClasses)\n this.tooltipTarget.classList.add(\"-z-10\")\n\n if(this.visibilityClasses.length > 1) {\n this.tooltipTarget.classList.remove(...this.visibilityClasses)\n }\n\n }, this.waitValue)\n\n }, this.waitValue)\n\n clearTimeout(this.showTimeout)\n }\n\n blockHideAction() {\n clearTimeout(this.hideTimeout)\n }\n\n blockShowAction() {\n clearTimeout(this.showTimeout)\n }\n\n callback(mutationsList, _) {\n const attributeMutation = mutationsList.find(\n mutation => mutation.type === \"attributes\" && mutation.attributeName === \"data-tooltip-disabled\"\n )\n\n if(attributeMutation) {\n if(this.disabled) {\n this.hide()\n }\n }\n }\n\n // private\n\n get visibilityClasses() {\n return this.hasVisibleClass ? this.visibleClasses : [\"\"]\n }\n\n get invisibilityClasses() {\n return this.hasInvisibleClass ? this.invisibleClasses : [\"hidden\"]\n }\n\n get disabled() {\n return this.element.hasAttribute(\"data-tooltip-disabled\")\n }\n}\n"],"names":["TooltipController","Controller","e","mutationsList","_","mutation","__publicField"],"mappings":"4MAEe,MAAKA,UAASC,CAAW,CAStC,YAAa,CACX,MAAM,WAAU,EAChB,KAAK,iBAAmB,IAAI,iBAAiB,KAAK,SAAS,KAAK,IAAI,CAAC,CACzE,CAEE,SAAU,CACR,MAAM,QAAO,EAEV,KAAK,WACN,KAAK,KAAI,EAGX,KAAK,iBAAiB,QAAQ,KAAK,QAAS,CAAE,WAAY,EAAM,CAAA,CACpE,CAEE,YAAa,CACX,KAAK,iBAAiB,WAAU,CACpC,CAEE,MAAO,CACL,KAAK,YAAc,WAAW,IAAM,CAC/B,KAAK,WAER,KAAK,cAAc,UAAU,IAAI,MAAM,EAEvC,KAAK,cAAc,UAAU,OAAO,OAAO,EAC3C,KAAK,cAAc,UAAU,OAAO,GAAG,KAAK,mBAAmB,EAE/D,WAAW,IAAM,CACf,KAAK,cAAc,UAAU,IAAI,aAAa,EAC3C,KAAK,kBAAkB,OAAS,GACjC,KAAK,cAAc,UAAU,IAAI,GAAG,KAAK,iBAAiB,CAE7D,EAAE,KAAK,SAAS,EAClB,EAAE,KAAK,SAAS,CACrB,CAEE,KAAKC,EAAG,CACN,KAAK,YAAc,WAAW,IAAM,CAC/B,KAAK,kBAAkB,OAAS,GACjC,KAAK,cAAc,UAAU,OAAO,GAAG,KAAK,iBAAiB,EAG/D,KAAK,cAAc,UAAU,OAAO,aAAa,EAEjD,WAAW,IAAM,CACf,KAAK,cAAc,UAAU,IAAI,GAAG,KAAK,mBAAmB,EAC5D,KAAK,cAAc,UAAU,IAAI,OAAO,EAErC,KAAK,kBAAkB,OAAS,GACjC,KAAK,cAAc,UAAU,OAAO,GAAG,KAAK,iBAAiB,CAGhE,EAAE,KAAK,SAAS,CAElB,EAAE,KAAK,SAAS,EAEjB,aAAa,KAAK,WAAW,CACjC,CAEE,iBAAkB,CAChB,aAAa,KAAK,WAAW,CACjC,CAEE,iBAAkB,CAChB,aAAa,KAAK,WAAW,CACjC,CAEE,SAASC,EAAeC,EAAG,CACCD,EAAc,KACtCE,GAAYA,EAAS,OAAS,cAAgBA,EAAS,gBAAkB,uBAC/E,GAGS,KAAK,UACN,KAAK,KAAI,CAGjB,CAIE,IAAI,mBAAoB,CACtB,OAAO,KAAK,gBAAkB,KAAK,eAAiB,CAAC,EAAE,CAC3D,CAEE,IAAI,qBAAsB,CACxB,OAAO,KAAK,kBAAoB,KAAK,iBAAmB,CAAC,QAAQ,CACrE,CAEE,IAAI,UAAW,CACb,OAAO,KAAK,QAAQ,aAAa,uBAAuB,CAC5D,CACA,CArGEC,EADkBN,EACX,UAAU,CAAC,SAAS,GAC3BM,EAFkBN,EAEX,SAAS,CACd,KAAM,CAAE,KAAM,OAAQ,QAAS,GAAK,EACpC,KAAM,CAAE,KAAM,QAAS,QAAS,EAAK,CACzC,GAEEM,EAPkBN,EAOX,UAAU,CAAC,UAAW,WAAW"}