|
|
import{Controller as e}from"@hotwired/stimulus";const t=(e,t)=>{let n=e[t];return typeof n==`function`?n:(...e)=>{}},n=(e,t,n)=>{let r=e;return n===!0?r=`${t.identifier}:${e}`:typeof n==`string`&&(r=`${n}:${e}`),r},r=(e,t,n)=>{let{bubbles:r,cancelable:i,composed:a}=t||{bubbles:!0,cancelable:!0,composed:!0};return t&&Object.assign(n,{originalEvent:t}),new CustomEvent(e,{bubbles:r,cancelable:i,composed:a,detail:n})};function i(e){let t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,r=window.innerWidth||document.documentElement.clientWidth,i=t.top<=n&&t.top+t.height>0,a=t.left<=r&&t.left+t.width>0;return i&&a}function a(e){return e.replace(/(?:[_-])([a-z0-9])/g,(e,t)=>t.toUpperCase())}const o={debug:!1,logger:console,dispatchEvent:!0,eventPrefix:!0};var StimulusUse=class{constructor(e,t={}){this.log=(e,t)=>{this.debug&&(this.logger.groupCollapsed(`%c${this.controller.identifier} %c#${e}`,`color: #3B82F6`,`color: unset`),this.logger.log({controllerId:this.controllerId,...t}),this.logger.groupEnd())},this.warn=e=>{this.logger.warn(`%c${this.controller.identifier} %c${e}`,`color: #3B82F6; font-weight: bold`,`color: unset`)},this.dispatch=(e,t={})=>{if(this.dispatchEvent){let{event:n,...r}=t,i=this.extendedEvent(e,n||null,r);this.targetElement.dispatchEvent(i),this.log(`dispatchEvent`,{eventName:i.type,...r})}},this.call=(e,t={})=>{let n=this.controller[e];if(typeof n==`function`)return n.call(this.controller,t)},this.extendedEvent=(e,t,n)=>{let{bubbles:r,cancelable:i,composed:a}=t||{bubbles:!0,cancelable:!0,composed:!0};return t&&Object.assign(n,{originalEvent:t}),new CustomEvent(this.composeEventName(e),{bubbles:r,cancelable:i,composed:a,detail:n})},this.composeEventName=e=>{let t=e;return this.eventPrefix===!0?t=`${this.controller.identifier}:${e}`:typeof this.eventPrefix==`string`&&(t=`${this.eventPrefix}:${e}`),t};let n=e.application;n.stimulusUseDebug!==void 0&&!n.stimulusUseDebugWarned&&(n.stimulusUseDebugWarned=!0,console.warn("[stimulus-use] `application.stimulusUseDebug` is deprecated and will be removed in a future release. Use Stimulus’ built-in debug mode instead: `application.debug = true`. https://stimulus.hotwired.dev/handbook/installing#debugging"));let r=n.debug||n.stimulusUseDebug||o.debug;this.debug=t?.debug??r,this.logger=t?.logger??o.logger,this.controller=e,this.controllerId=e.element.id||e.element.dataset.id,this.targetElement=t?.element||e.element;let{dispatchEvent:i,eventPrefix:a}=Object.assign({},o,t);Object.assign(this,{dispatchEvent:i,eventPrefix:a}),this.controllerInitialize=e.initialize.bind(e),this.controllerConnect=e.connect.bind(e),this.controllerDisconnect=e.disconnect.bind(e)}};const s={eventPrefix:!0,bubbles:!0,cancelable:!0};var UseDispatch=class extends StimulusUse{constructor(e,t={}){super(e,t),this.dispatch=(e,t={})=>{let{controller:r,targetElement:i,eventPrefix:a,bubbles:o,cancelable:s,log:c,warn:l}=this;Object.assign(t,{controller:r});let u=n(e,this.controller,a),d=new CustomEvent(u,{detail:t,bubbles:o,cancelable:s});return i.dispatchEvent(d),l("`useDispatch()` is deprecated. Please use the built-in `this.dispatch()` function from Stimulus. You can find more information on how to upgrade at: https://stimulus-use.dev/use-dispatch"),c(`dispatch`,{eventName:u,detail:t,bubbles:o,cancelable:s}),d},this.targetElement=t.element??e.element,this.eventPrefix=t.eventPrefix??s.eventPrefix,this.bubbles=t.bubbles??s.bubbles,this.cancelable=t.cancelable??s.cancelable,this.enhanceController()}enhanceController(){Object.assign(this.controller,{dispatch:this.dispatch})}};const c=(e,t={})=>new UseDispatch(e,t),l={overwriteDispatch:!0},u=(e,t={})=>{let{overwriteDispatch:n}=Object.assign({},l,t);Object.defineProperty(e,"isPreview",{get(){return document.documentElement.hasAttribute(`data-turbolinks-preview`)||document.documentElement.hasAttribute(`data-turbo-preview`)}}),Object.defineProperty(e,"isConnected",{get(){return!!Array.from(this.context.module.connectedContexts).find(e=>e===this.context)}}),Object.defineProperty(e,"csrfToken",{get(){return this.metaValue(`csrf-token`)}}),n&&c(e,t),Object.assign(e,{metaValue(e){let t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.getAttribute(`content`)}})};var ApplicationController=class extends e{constructor(e){super(e),this.isPreview=!1,this.isConnected=!1,this.csrfToken=``,u(this,this.options)}};const d={events:[`click`,`touchend`],onlyVisible:!0,dispatchEvent:!0,eventPrefix:!0},f=(e,t={})=>{let a=e,{onlyVisible:o,dispatchEvent:s,events:c,eventPrefix:l}=Object.assign({},d,t),u=e=>{let c=t?.element||a.element;if(!(e.target instanceof Node&&c.contains(e.target)||!i(c)&&o)&&(a.clickOutside&&a.clickOutside(e),s)){let t=r(n(`click:outside`,a,l),e,{controller:a});c.dispatchEvent(t)}},f=()=>{c?.forEach(e=>{window.addEventListener(e,u,!0)})},p=()=>{c?.forEach(e=>{window.removeEventListener(e,u,!0)})},m=a.disconnect.bind(a);return Object.assign(a,{disconnect(){p(),m()}}),f(),[f,p]};var ClickOutsideComposableController=class extends e{},ClickOutsideController=class extends ClickOutsideComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=f(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}},DebounceController=class extends e{};DebounceController.debounces=[];const p=200,m=(e,t=200,{leading:n=!1,trailing:r=!0}={})=>{let i=null,a=!1;return function(){let o=Array.from(arguments),s=this,c=o.map(e=>e instanceof Event?e.params:void 0),l=o.map(e=>e instanceof Event?e.currentTarget:void 0),u=()=>(o.forEach((e,t)=>{e instanceof Event&&(e.params=c[t],Object.defineProperty(e,"currentTarget",{configurable:!0,value:l[t]}))}),e.apply(s,o)),d=i===null;i&&clearTimeout(i),n&&d?(u(),a=!1):a=!0,i=setTimeout(()=>{i=null,r&&a&&(a=!1,u())},t)}},h=(e,t)=>{let n=e;n.constructor.debounces.forEach(e=>{if(typeof e==`string`&&(n[e]=m(n[e],t?.wait,{leading:t?.leading,trailing:t?.trailing})),typeof e==`object`){let{name:r,wait:i,leading:a,trailing:o}=e;if(!r)return;n[r]=m(n[r],i??t?.wait,{leading:a??t?.leading,trailing:o??t?.trailing})}})};var UseHover=class extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.targetElement.addEventListener(`mouseenter`,this.onEnter),this.targetElement.addEventListener(`mouseleave`,this.onLeave)},this.unobserve=()=>{this.targetElement.removeEventListener(`mouseenter`,this.onEnter),this.targetElement.removeEventListener(`mouseleave`,this.onLeave)},this.onEnter=e=>{this.call(`mouseEnter`,e),this.log(`mouseEnter`,{hover:!0}),this.dispatch(`mouseEnter`,{hover:!1})},this.onLeave=e=>{this.call(`mouseLeave`,e),this.log(`mouseLeave`,{hover:!1}),this.dispatch(`mouseLeave`,{hover:!1})},this.controller=e,this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const g=(e,t={})=>{let n=new UseHover(e,t);return[n.observe,n.unobserve]};var HoverComposableController=class extends e{},HoverController=class extends HoverComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=g(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const _={ms:6e4,initialState:!1,events:[`mousemove`,`mousedown`,`resize`,`keydown`,`touchstart`,`wheel`],dispatchEvent:!0,eventPrefix:!0},v=(e,i={})=>{let a=e,{ms:o,initialState:s,events:c,dispatchEvent:l,eventPrefix:u}=Object.assign({},_,i),d=s,f=setTimeout(()=>{d=!0,p()},o),p=e=>{let i=n(`away`,a,u);if(a.isIdle=!0,t(a,`away`).call(a,e),l){let t=r(i,e||null,{controller:a});a.element.dispatchEvent(t)}},m=e=>{let i=n(`back`,a,u);if(a.isIdle=!1,t(a,`back`).call(a,e),l){let t=r(i,e||null,{controller:a});a.element.dispatchEvent(t)}},h=e=>{d&&m(e),d=!1,clearTimeout(f),f=setTimeout(()=>{d=!0,p(e)},o)},g=e=>{document.hidden||h(e)};d?p():m();let v=a.disconnect.bind(a),y=()=>{c.forEach(e=>{window.addEventListener(e,h)}),document.addEventListener(`visibilitychange`,g)},b=()=>{clearTimeout(f),c.forEach(e=>{window.removeEventListener(e,h)}),document.removeEventListener(`visibilitychange`,g)};return Object.assign(a,{disconnect(){b(),v()}}),y(),[y,b]};var IdleComposableController=class extends e{constructor(...e){super(...e),this.isIdle=!1}},IdleController=class extends IdleComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=v(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const y={dispatchEvent:!0,eventPrefix:!0,visibleAttribute:`isVisible`},b=(e,i={})=>{let a=e,{dispatchEvent:o,eventPrefix:s,visibleAttribute:c}=Object.assign({},y,i),l=i?.element||a.element;a.intersectionElements||(a.intersectionElements=[]),a.intersectionElements.push(l);let u=e=>{let[t]=e;t.isIntersecting?f(t):l.hasAttribute(c)&&p(t)},d=new IntersectionObserver(u,i),f=e=>{if(l.setAttribute(c,`true`),t(a,`appear`).call(a,e,d),o){let t=r(n(`appear`,a,s),null,{controller:a,entry:e,observer:d});l.dispatchEvent(t)}},p=e=>{if(l.removeAttribute(c),t(a,`disappear`).call(a,e,d),o){let t=r(n(`disappear`,a,s),null,{controller:a,entry:e,observer:d});l.dispatchEvent(t)}},m=a.disconnect.bind(a),h=()=>{_(),m()},g=()=>{d.observe(l)},_=()=>{d.unobserve(l)},v=()=>a.intersectionElements.filter(e=>e.hasAttribute(c)).length===0,b=()=>a.intersectionElements.filter(e=>e.hasAttribute(c)).length===1,x=()=>a.intersectionElements.some(e=>e.hasAttribute(c)),S=()=>a.intersectionElements.every(e=>e.hasAttribute(c));return Object.assign(a,{isVisible:S,noneVisible:v,oneVisible:b,atLeastOneVisible:x,allVisible:S,disconnect:h}),g(),[g,_]};var IntersectionComposableController=class extends e{},IntersectionController=class extends IntersectionComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=b(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const x=(e,n)=>{let r=t=>{let[n]=t;n.isIntersecting&&!e.isLoaded&&i(n)},i=n=>{let r=e.data.get(`src`);if(!r)return;let i=e.element;e.isLoading=!0,t(e,`loading`).call(e,r),i.onload=()=>{a(r)},i.src=r},a=n=>{e.isLoading=!1,e.isLoaded=!0,t(e,`loaded`).call(e,n)},o=e.disconnect.bind(e),s=new IntersectionObserver(r,n),c=()=>{s.observe(e.element)},l=()=>{s.unobserve(e.element)};return Object.assign(e,{isVisible:!1,disconnect(){l(),o()}}),c(),[c,l]};var LazyLoadComposableController=class extends e{constructor(...e){super(...e),this.isLoading=!1,this.isLoaded=!1}},LazyLoadController=class extends LazyLoadComposableController{constructor(e){super(e),this.options={rootMargin:`10%`},requestAnimationFrame(()=>{let[e,t]=x(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const S={mediaQueries:{},dispatchEvent:!0,eventPrefix:!0,debug:!1};var UseMatchMedia=class extends StimulusUse{constructor(e,t={}){if(super(e,t),this.matches=[],this.callback=e=>{let t=Object.keys(this.mediaQueries).find(t=>this.mediaQueries[t]===e.media);if(!t)return;let{media:n,matches:r}=e;this.changed({name:t,media:n,matches:r,event:e})},this.changed=e=>{let{name:t}=e;e.event&&(this.call(a(`${t}_changed`),e),this.dispatch(`${t}:changed`,e),this.log(`media query "${t}" changed`,e)),e.matches?(this.call(a(`is_${t}`),e),this.dispatch(`is:${t}`,e)):(this.call(a(`not_${t}`),e),this.dispatch(`not:${t}`,e))},this.observe=()=>{Object.keys(this.mediaQueries).forEach(e=>{let t=this.mediaQueries[e],n=window.matchMedia(t);n.addListener(this.callback),this.matches.push(n),this.changed({name:e,media:t,matches:n.matches})})},this.unobserve=()=>{this.matches.forEach(e=>e.removeListener(this.callback))},this.controller=e,this.mediaQueries=t.mediaQueries??S.mediaQueries,this.dispatchEvent=t.dispatchEvent??S.dispatchEvent,this.eventPrefix=t.eventPrefix??S.eventPrefix,this.debug=t.debug??S.debug,!window.matchMedia){console.error(`window.matchMedia() is not available`);return}this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const C=(e,t={})=>{let n=new UseMatchMedia(e,t);return[n.observe,n.unobserve]},w=(e,t)=>{let n=Object.getPrototypeOf(e);for(;n&&n!==Object.prototype;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}},T=e=>{e.constructor.memos?.forEach(t=>{let n=w(e,t);if(!n||typeof n.get!=`function`)return;let r=n.get;Object.defineProperty(e,t,{configurable:!0,get(){let e=r.call(this);return Object.defineProperty(this,t,{value:e,configurable:!0}),e}})})},E=(e,t,n)=>{let r=n?`${a(t)}Meta`:a(t);Object.defineProperty(e,r,{get(){return O(D(t))}})};function D(e){let t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.getAttribute(`content`)}function O(e){try{return JSON.parse(e)}catch(t){return e}}const k=(e,t={suffix:!0})=>{let n=e.constructor.metaNames,r=t.suffix;n?.forEach(t=>{E(e,t,r)}),Object.defineProperty(e,"metas",{get(){let e={};return n?.forEach(t=>{let n=O(D(t));n!=null&&(e[a(t)]=n)}),e}})};var UseMutation=class extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{try{this.observer.observe(this.targetElement,this.options)}catch(e){this.controller.application.handleError(e,`At a minimum, one of childList, attributes, and/or characterData must be true`,{})}},this.unobserve=()=>{this.observer.disconnect()},this.mutation=e=>{this.call(`mutate`,e),this.log(`mutate`,{entries:e}),this.dispatch(`mutate`,{entries:e})},this.targetElement=t?.element||e.element,this.controller=e,this.options=t,this.observer=new MutationObserver(this.mutation),this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const A=(e,t={})=>{let n=new UseMutation(e,t);return[n.observe,n.unobserve]};var MutationComposableController=class extends e{},MutationController=class extends MutationComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=A(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const j={dispatchEvent:!0,eventPrefix:!0},M=(e,i={})=>{let a=e,{dispatchEvent:o,eventPrefix:s}=Object.assign({},j,i),c=i?.element||a.element,l=i?.box,u=null,d=e=>{u!==null&&cancelAnimationFrame(u),u=requestAnimationFrame(()=>{u=null;let[i]=e;if(t(a,`resize`).call(a,i.contentRect),o){let e=r(n(`resize`,a,s),null,{controller:a,entry:i});c.dispatchEvent(e)}})},f=a.disconnect.bind(a),p=new ResizeObserver(d),m=()=>{p.observe(c,l?{box:l}:void 0)},h=()=>{u!==null&&(cancelAnimationFrame(u),u=null),p.unobserve(c)};return Object.assign(a,{disconnect(){h(),f()}}),m(),[m,h]};var ResizeComposableController=class extends e{},ResizeController=class extends ResizeComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=M(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}},UseTargetMutation=class extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.observer.observe(this.targetElement,{subtree:!0,characterData:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:[this.targetSelector,this.scopedTargetSelector]})},this.unobserve=()=>{this.observer.disconnect()},this.mutation=e=>{for(let t of e)switch(t.type){case`attributes`:let e=t.target.getAttribute(t.attributeName),n=t.oldValue;if(t.attributeName===this.targetSelector||t.attributeName===this.scopedTargetSelector){let r=this.targetsUsedByThisController(n),i=this.targetsUsedByThisController(e),a=r.filter(e=>!i.includes(e)),o=i.filter(e=>!r.includes(e));a.forEach(e=>this.targetRemoved(this.stripIdentifierPrefix(e),t.target,`attributeChange`)),o.forEach(e=>this.targetAdded(this.stripIdentifierPrefix(e),t.target,`attributeChange`))}break;case`characterData`:let r=this.findTargetInAncestry(t.target);if(r==null)return;this.targetsUsedByThisControllerFromNode(r).forEach(e=>{this.targetChanged(this.stripIdentifierPrefix(e),r,`domMutation`)});break;case`childList`:let{addedNodes:i,removedNodes:a}=t;i.forEach(e=>this.processNodeDOMMutation(e,this.targetAdded)),a.forEach(e=>this.processNodeDOMMutation(e,this.targetRemoved))}},this.controller=e,this.options=t,this.targetElement=e.element,this.identifier=e.scope.identifier,this.identifierPrefix=`${this.identifier}.`,this.targetSelector=e.scope.schema.targetAttribute,this.scopedTargetSelector=`data-${this.identifier}-target`,this.targets=t.targets||e.constructor.targets,this.prefixedTargets=this.targets.map(e=>`${this.identifierPrefix}${e}`),this.observer=new MutationObserver(this.mutation),this.enhanceController(),this.observe()}processNodeDOMMutation(e,t){let n=e,r=t,i=[];n.nodeName==`#text`||this.targetsUsedByThisControllerFromNode(n).length==0?(r=this.targetChanged,n=this.findTargetInAncestry(e)):i=this.targetsUsedByThisControllerFromNode(n),n!=null&&(i.length==0&&(i=this.targetsUsedByThisControllerFromNode(n)),i.forEach(e=>{r.call(this,this.stripIdentifierPrefix(e),n,`domMutation`)}))}findTargetInAncestry(e){let t=e,n=[];for(t.nodeName!=`#text`&&(n=this.targetsUsedByThisControllerFromNode(t));t.parentNode!==null&&t.parentNode!=this.targetElement&&n.length==0;)if(t=t.parentNode,t.nodeName!==`#text`&&this.targetsUsedByThisControllerFromNode(t).length>0)return t;return t.nodeName==`#text`||t.parentNode==null?null:t.parentNode==this.targetElement&&this.targetsUsedByThisControllerFromNode(t).length>0?t:null}targetAdded(e,n,r){let i=`${e}TargetAdded`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.warn("`[target]TargetAdded` is deprecated. Please use the built-in `[target]TargetConnected()` function from Stimulus."),this.log(`targetAdded`,{target:e,node:n,trigger:r})}targetRemoved(e,n,r){let i=`${e}TargetRemoved`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.warn("`[target]TargetRemoved` is deprecated. Please use the built-in `[target]TargetDisconnected()` function from Stimulus."),this.log(`targetRemoved`,{target:e,node:n,trigger:r})}targetChanged(e,n,r){let i=`${e}TargetChanged`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.log(`targetChanged`,{target:e,node:n,trigger:r})}targetsUsedByThisControllerFromNode(e){if(e.nodeName==`#text`||e.nodeName==`#comment`)return[];let t=e;return this.targetsUsedByThisController(t.getAttribute(this.scopedTargetSelector)||t.getAttribute(this.targetSelector))}targetsUsedByThisController(e){e=e||``;let t=this.stripIdentifierPrefix(e).split(` `);return this.targets.filter(e=>t.indexOf(e)!==-1)}stripIdentifierPrefix(e){return e.replace(new RegExp(this.identifierPrefix,`g`),``)}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const N=(e,t={})=>{let n=new UseTargetMutation(e,t);return n.warn("`[target]TargetAdded` and `[target]TargetRemoved` are deprecated. Please use the built-in `[target]TargetConnected()` and `[target]TargetDisconnected()` functions from Stimulus."),[n.observe,n.unobserve]};var TargetMutationComposableController=class extends e{},TargetMutationController=class extends TargetMutationComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=N(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}},ThrottleController=class extends e{};ThrottleController.throttles=[];const P=200;function F(e,t=200){let n;return function(){let r=arguments,i=this;n||(n=!0,e.apply(i,r),setTimeout(()=>n=!1,t))}}const I=(e,t={})=>{let n=e;n.constructor.throttles?.forEach(e=>{if(typeof e==`string`&&(n[e]=F(n[e],t?.wait)),typeof e==`object`){let{name:r,wait:i}=e;if(!r)return;n[r]=F(n[r],i||t?.wait)}})},L={enterFromClass:`enter`,enterActiveClass:`enterStart`,enterToClass:`enterEnd`,leaveFromClass:`leave`,leaveActiveClass:`leaveStart`,leaveToClass:`leaveEnd`},R={transitioned:!1,hiddenClass:`hidden`,preserveOriginalClass:!0,removeToClasses:!0},z=(e,t={})=>{let n=e,r=n.element.dataset.transitionTarget,i;r&&(i=n[`${r}Target`]);let a=t?.element||i||n.element;if(!(a instanceof HTMLElement||a instanceof SVGElement))return;let o=a.dataset,s=parseInt(o.leaveAfter||``)||t.leaveAfter||0,{transitioned:c,hiddenClass:l,preserveOriginalClass:u,removeToClasses:d}=Object.assign({},R,t),f=n.enter?.bind(n),p=n.leave?.bind(n),m=n.toggleTransition?.bind(n);async function h(e){if(n.transitioned)return;n.transitioned=!0,f&&f(e);let r=B(`enterFrom`,t,o),i=B(`enterActive`,t,o),c=B(`enterTo`,t,o),p=B(`leaveTo`,t,o);l&&a.classList.remove(l),d||x(a,p),await v(a,r,i,c,l,u,d),s>0&&setTimeout(()=>{g(e)},s)}async function g(e){if(!n.transitioned)return;n.transitioned=!1,p&&p(e);let r=B(`leaveFrom`,t,o),i=B(`leaveActive`,t,o),s=B(`leaveTo`,t,o),c=B(`enterTo`,t,o);d||x(a,c),await v(a,r,i,s,l,u,d),l&&a.classList.add(l)}function _(e){m&&m(e),n.transitioned?g():h()}async function v(e,t,n,r,i,a,o){let s=[];a&&(t.forEach(t=>e.classList.contains(t)&&t!==i&&s.push(t)),n.forEach(t=>e.classList.contains(t)&&t!==i&&s.push(t)),r.forEach(t=>e.classList.contains(t)&&t!==i&&s.push(t))),b(e,t),x(e,s),b(e,n),await H(),x(e,t),b(e,r),await V(e),x(e,n),o&&x(e,r),b(e,s)}function y(){n.transitioned=c,c?(l&&a.classList.remove(l),h()):(l&&a.classList.add(l),g())}function b(e,t){t.length>0&&e.classList.add(...t)}function x(e,t){t.length>0&&e.classList.remove(...t)}return y(),Object.assign(n,{enter:h,leave:g,toggleTransition:_}),[h,g,_]};function B(e,t,n){let r=`transition${e[0].toUpperCase()}${e.substr(1)}`,i=L[e],a=t[e]||n[r]||n[i]||` `;return U(a)?[]:a.split(` `)}async function V(e){return new Promise(t=>{let n=Number(getComputedStyle(e).transitionDuration.split(`,`)[0].replace(`s`,``))*1e3;setTimeout(()=>{t(n)},n)})}async function H(){return new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(e)})})}function U(e){return e.length===0||!e.trim()}var TransitionComposableController=class extends e{constructor(...e){super(...e),this.transitioned=!1}},TransitionController=class extends TransitionComposableController{constructor(e){super(e),requestAnimationFrame(()=>{z(this,this.options)})}},UseVisibility=class extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.controller.isVisible=!document.hidden,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),this.handleVisibilityChange()},this.unobserve=()=>{document.removeEventListener(`visibilitychange`,this.handleVisibilityChange)},this.becomesInvisible=e=>{this.controller.isVisible=!1,this.call(`invisible`,e),this.log(`invisible`,{isVisible:!1}),this.dispatch(`invisible`,{event:e,isVisible:!1})},this.becomesVisible=e=>{this.controller.isVisible=!0,this.call(`visible`,e),this.log(`visible`,{isVisible:!0}),this.dispatch(`visible`,{event:e,isVisible:!0})},this.handleVisibilityChange=e=>{document.hidden?this.becomesInvisible(e):this.becomesVisible(e)},this.controller=e,this.enhanceController(),this.observe()}enhanceController(){let e=this.controllerDisconnect,t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const W=(e,t={})=>{let n=new UseVisibility(e,t);return[n.observe,n.unobserve]};var VisibilityComposableController=class extends e{constructor(...e){super(...e),this.isVisible=!1}},VisibilityController=class extends VisibilityComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=W(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}},UseWindowFocus=class extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{document.hasFocus()?this.becomesFocused():this.becomesUnfocused(),this.interval=setInterval(()=>{this.handleWindowFocusChange()},this.intervalDuration)},this.unobserve=()=>{clearInterval(this.interval)},this.becomesUnfocused=e=>{this.controller.hasFocus=!1,this.call(`unfocus`,e),this.log(`unfocus`,{hasFocus:!1}),this.dispatch(`unfocus`,{event:e,hasFocus:!1})},this.becomesFocused=e=>{this.controller.hasFocus=!0,this.call(`focus`,e),this.log(`focus`,{hasFocus:!0}),this.dispatch(`focus`,{event:e,hasFocus:!0})},this.handleWindowFocusChange=e=>{document.hasFocus()&&!this.controller.hasFocus?this.becomesFocused(e):!document.hasFocus()&&this.controller.hasFocus&&this.becomesUnfocused(e)},this.controller=e,this.intervalDuration=t.interval||200,this.enhanceController(),this.observe()}enhanceController(){let e=this.controllerDisconnect,t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}};const G=(e,t={})=>{let n=new UseWindowFocus(e,t);return[n.observe,n.unobserve]};var WindowFocusComposableController=class extends e{constructor(...e){super(...e),this.hasFocus=!1}},WindowFocusController=class extends WindowFocusComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=G(this,this.options);Object.assign(this,{observe:e,unobserve:t})})}};const K=e=>{let n=e,r=e=>{let{innerWidth:r,innerHeight:i}=window,a={height:i||1/0,width:r||1/0,event:e};t(n,`windowResize`).call(n,a)},i=n.disconnect.bind(n),a=()=>{window.addEventListener(`resize`,r),r()},o=()=>{window.removeEventListener(`resize`,r)};return Object.assign(n,{disconnect(){o(),i()}}),a(),[a,o]};var WindowResizeComposableController=class extends e{},WindowResizeController=class extends WindowResizeComposableController{constructor(e){super(e),requestAnimationFrame(()=>{let[e,t]=K(this);Object.assign(this,{observe:e,unobserve:t})})}};function q(){throw"[stimulus-use] Notice: The import for `useHotkeys()` has been moved from `stimulus-use` to `stimulus-use/hotkeys`. \nPlease change the import accordingly and add `hotkey-js` as a dependency to your project. \n\nFor more information see: https://stimulus-use.dev/use-hotkeys#importing-the-behavior"}export{ApplicationController,ClickOutsideController,HoverController,IdleController,IntersectionController,LazyLoadController,MutationController,ResizeController,TargetMutationController,TransitionController,UseHover,UseMutation,UseTargetMutation,UseVisibility,UseWindowFocus,VisibilityController,WindowFocusController,WindowResizeController,m as debounce,u as useApplication,f as useClickOutside,h as useDebounce,c as useDispatch,q as useHotkeys,g as useHover,v as useIdle,b as useIntersection,x as useLazyLoad,C as useMatchMedia,T as useMemo,k as useMeta,A as useMutation,M as useResize,N as useTargetMutation,I as useThrottle,z as useTransition,W as useVisibility,G as useWindowFocus,K as useWindowResize};
|