UNPKG

@smnandre/stimulus-stream-actions

Version:

Register Turbo Stream Actions (even custom ones) directly on Stimulus controllers.

3 lines (2 loc) 1.32 kB
(function(i,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(i=typeof globalThis<"u"?globalThis:i||self,d(i.StimulusStreamActions={}))})(this,function(i){"use strict";function d(e,t){if(!t)return e.element;if(typeof t=="string"){const s=e.element.querySelector(t);if(!s)throw new Error(`No element matches selector "${t}"`);return s}return t}function c(e,t){var m,a;const s=(m=e.connect)==null?void 0:m.bind(e),h=(a=e.disconnect)==null?void 0:a.bind(e);e.connect=function(){s==null||s(),this._managedListeners=[],Object.entries(t).forEach(([f,n])=>{let u,r,o;typeof n=="string"?(u=n,r=void 0,o=this.element):Array.isArray(n)?([u,r]=n,o=this.element):(u=n.method,r=n.options,o=d(this,n.target));const p=this[u].bind(this);o.addEventListener(f,p,r),this._managedListeners.push({eventName:f,handler:p,options:r,target:o})})},e.disconnect=function(){var f;(f=this._managedListeners)==null||f.forEach(({eventName:n,handler:u,options:r,target:o})=>{o.removeEventListener(n,u,r)}),this._managedListeners=[],h==null||h()}}function L(e){const s=e.constructor.listeners;s&&c(e,s)}function y(e,t){c(e,t)}i.useEventListeners=y,i.useListeners=L,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}); //# sourceMappingURL=stimulus-stream-actions.umd.js.map