stimulus-library 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/stimulus-library.cjs.js +1 -1
- package/dist/stimulus-library.cjs.js.map +1 -1
- package/dist/stimulus-library.es.js +10 -10
- package/dist/stimulus-library.es.js.map +1 -1
- package/dist/stimulus-library.umd.js +1 -1
- package/dist/stimulus-library.umd.js.map +1 -1
- package/dist/utilities/base_controller.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.7.1](https://github.com/Sub-Xaero/stimulus-library/compare/v0.7.0...v0.7.1) (2022-01-25)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* BaseController infinite loop when dispatching an event ([6618122](https://github.com/Sub-Xaero/stimulus-library/commit/6618122063238d2cf4adcab1197d7d8f69cf9f0a))
|
|
11
|
+
|
|
5
12
|
## [0.7.0](https://github.com/Sub-Xaero/stimulus-library/compare/v0.6.5...v0.7.0) (2022-01-20)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var ns=Object.defineProperty;var Be=Object.getOwnPropertySymbols;var ls=Object.prototype.hasOwnProperty,os=Object.prototype.propertyIsEnumerable;var Z=(t,e,s)=>e in t?ns(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Q=(t,e)=>{for(var s in e||(e={}))ls.call(e,s)&&Z(t,s,e[s]);if(Be)for(var s of Be(e))os.call(e,s)&&Z(t,s,e[s]);return t};var n=(t,e,s)=>(Z(t,typeof e!="symbol"?e+"":e,s),s);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var us=require("stimulus"),p=require("lodash-es"),w=require("date-fns");function hs(t){if(t&&t.__esModule)return t;var e={__proto__:null,[Symbol.toStringTag]:"Module"};return t&&Object.keys(t).forEach(function(s){if(s!=="default"){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}}),e.default=t,Object.freeze(e)}function cs(t){switch(t){case"application":case"el":case"element":case"constructor":case"initialize":case"log":case"logEvent":case"dispatch":case"data":case"valueDescriptorMap":case"mutate":case"identifier":return!1}return!(/^_.*?$/.test(t)||/^.*?Target(s)?$/.test(t)||/^.*?Value$/.test(t)||/^.*?ValueChanged$/.test(t)||/^.*?Class$/.test(t)||/^.*?Classes$/.test(t)||/^.*?ClassesPresent$/.test(t))}function Fe(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(`%c${t.identifier} %c#${e}`,"color: #3B82F6","color: unset"),i.log(Q({element:t.element,controller:t},s)),i.groupEnd()}function Re(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(`%c${t.identifier} %c#${e}`,"color: F39B1AFF","color: unset"),i.warn(Q({element:t.element,controller:t},s)),i.groupEnd()}function ds(t,e,s,i){if(!t.application.debug)return;let r=console;r.groupCollapsed(`%c${t.identifier} %c${e}%c`,"color: #3B82F6","color: #0be000","color: unset"),r.log({element:i}),r.groupEnd()}class u extends us.Controller{constructor(e){super(e);return this.application.debug?new Proxy(this,{get:(s,i)=>{let r=Reflect.get(s,i),a=this;if(cs(i.toString())){if(typeof r=="function")return new Proxy(r,{apply(l,h,o){return Fe(a,i.toString(),{args:o}),Reflect.apply(l,h,o)}});Fe(this,i.toString())}return r}}):this}get el(){return this.element}get isTurboPreview(){return document.documentElement.hasAttribute("data-turbo-preview")||document.documentElement.hasAttribute("data-turbolinks-preview")}get isTurbolinksPreview(){return this.isTurboPreview}get csrfToken(){return this.metaValue("csrf-token")}metaValue(e){const s=document.head.querySelector(`meta[name="${e}"]`);return(s==null?void 0:s.getAttribute("content"))||null}dispatchEvent(e,s,i={}){this.dispatchEvent(e,s,i)}}class F extends u{_cleanupSelf(){this.cleanup(this.el)}cleanup(e){var a,l,h;e.dataset.controller=((a=e.dataset.controller)==null?void 0:a.replaceAll(new RegExp(`(\\s|^)${this.identifier}(\\s|$)`,"g"),""))||"",e.dataset.controller==""&&delete e.dataset.controller;let s=new RegExp(`(\\s|^)${this.identifier}\\..+?(\\s|$)`,"g");e.dataset.target=((l=e.dataset.target)==null?void 0:l.replaceAll(s,""))||"",delete e.dataset[p.camelCase(`${this.identifier}-target`)],e.dataset.target==""&&delete e.dataset.target,e.dataset.action=((h=e.dataset.target)==null?void 0:h.replaceAll(s,""))||"",delete e.dataset[p.camelCase(`${this.identifier}-action`)],e.dataset.action==""&&delete e.dataset.action;let i=this.constructor.values;i&&Object.keys(i).forEach(o=>delete e.dataset[p.camelCase(`${this.identifier}-${o}-value`)]);let r=this.constructor.classes;r&&Object.keys(r).forEach(o=>delete e.dataset[p.camelCase(`${this.identifier}-${o}-class`)])}}const T="scrollBehavior"in document.documentElement.style;let qe;async function V(t,{behavior:e="smooth",block:s="start",inline:i="nearest"}={}){e=="smooth"&&!T&&await C(),t.scrollIntoView({behavior:e,block:s,inline:i})}async function ee(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t.scrollTo({top:0,left:0,behavior:e})}async function te(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t==window?t.scrollTo({top:document.body.scrollHeight,left:0,behavior:e}):t.scrollTo({top:t.scrollHeight,left:0,behavior:e})}async function se(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t.scrollTo({left:0,behavior:e})}async function fs(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t==window?t.scrollTo({left:document.body.scrollWidth,behavior:e}):t.scrollTo({left:t.scrollWidth,behavior:e})}async function Pe(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:-e,left:0,behavior:s})}async function $e(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:e,left:0,behavior:s})}async function ze(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:0,left:-e,behavior:s})}async function Ue(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:0,left:e,behavior:s})}async function C(){const{polyfill:t}=await Promise.resolve().then(function(){return hs(require("smoothscroll-polyfill"))});qe||(qe=!0,t())}function R(t){if(!t)return null;if(t==document.body)return window;const e=getComputedStyle(t).overflowY;return e!=="visible"&&e!=="hidden"&&t.scrollHeight>=t.clientHeight?t:R(t.parentElement)||document.body}function ie(t){return t.nodeName=="TURBO-FRAME"}function ms(t){return{all:t=t||new Map,on:function(e,s){var i=t.get(e);i?i.push(s):t.set(e,[s])},off:function(e,s){var i=t.get(e);i&&(s?i.splice(i.indexOf(s)>>>0,1):t.set(e,[]))},emit:function(e,s){var i=t.get(e);i&&i.slice().map(function(r){r(s)}),(i=t.get("*"))&&i.slice().map(function(r){r(e,s)})}}}const M=ms();function gs(t){return t.nodeName=="LINK"}function re(t){return t.nodeName=="A"}function ae(t){return t.nodeName=="FORM"}function _(t){return t.nodeName=="INPUT"}function ps(t){return t.nodeName=="LABEL"}function q(t){return t.nodeName=="TEXTAREA"}function _s(t){return t.nodeName=="BUTTON"}function A(t){return t.nodeName=="SELECT"}function bs(t){return t.nodeName=="IMG"}function vs(t){return t.nodeName=="INPUT"&&t.type=="button"}function je(t){return t.nodeName=="INPUT"&&t.type=="submit"}function We(t){return t.nodeName=="INPUT"&&t.type=="reset"}function Ke(t){return t.nodeName=="BUTTON"&&t.type=="button"}function Ge(t){return t.nodeName=="BUTTON"&&t.type=="submit"}function Je(t){return t.nodeName=="BUTTON"&&t.type=="reset"}function Xe(t){return Je(t)||We(t)}function Ye(t){return Ge(t)||je(t)}function P(t){return Xe(t)||Ye(t)||Ke(t)}function S(t){return _(t)&&(t.type==="radio"||t.type==="checkbox")}function Ze(t){return _(t)||A(t)||q(t)}function Qe(t){let e=document.createElement("button");return e.type=t,e.style.display="none",e.dataset.sythentic="true",e}function et(t,e){let s=document.createElement("input");return s.type="hidden",s.name=t,s.value=e,s}function ne(t,e,s){let i=t.insertAdjacentElement(e,s);if(!i)throw new Error(`Failed to insert element ${s.nodeName} into ${t.nodeName}`);return i}function ws(t,e,s,i){return ne(s,i,et(t,e))}function le(t,e,s){return ne(e,s,Qe(t))}function oe(t){let e=t.form||document;return Array.from(e.querySelectorAll(`input[type="radio"][name="${t.name}"]`))}function ue(t){return oe(t).filter(e=>e!==t)}function tt(t){const e=t.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight,i=window.innerWidth||document.documentElement.clientWidth,r=e.top<=s&&e.top+e.height>=0,a=e.left<=i&&e.left+e.width>=0;return r&&a}function he(t){if(t.requestSubmit)t.requestSubmit();else{let e=t.querySelector('button[type="submit"]');e||(e=le("submit",t,"beforeend")),e.click()}}function st(t){let e=t.querySelector('button[type="reset"]');e||(e=le("reset",t,"beforeend")),e.click()}function it(t){return Array.isArray(t)?t:[t]}function v(t,e,s){const i=t.disconnect.bind(t);return e(),Object.assign(t,{disconnect(){s(),i()}}),i}function c(t,e,s,i,r){(r==null?void 0:r.debounce)?(i=p.debounce(i.bind(t),r.debounce),delete r.debounce):i=i.bind(t);let a=it(s),l=()=>a.forEach(o=>e.addEventListener(o,i,r)),h=()=>a.forEach(o=>e.removeEventListener(o,i));return v(t,l,h),{setup:l,teardown:h}}function ys(t,e,s,i,r){return c(t,e,s,i,r)}function x(t,e,s,i,r){let a=[];return e.forEach(l=>{let{setup:h,teardown:o}=c(t,l,s,i,r);a.push({setup:h,teardown:o})}),[()=>a.forEach(l=>l.setup()),()=>a.forEach(l=>l.teardown())]}function Es(t,e,s,i,r){return x(t,e,s,i,r)}function rt(t,e){let s=e||document.documentElement,i=document.fullscreenElement!==null;const r=()=>i=document.fullscreenElement!==null,a=()=>i,l=async()=>i?await d():await m();let h=()=>document.addEventListener("fullscreenchange",r),o=()=>document.removeEventListener("fullscreenchange",r);const d=async()=>{document.exitFullscreen&&(i=!1,await document.exitFullscreen())},m=async()=>{i&&await d(),s.requestFullscreen&&(await s.requestFullscreen(),i=!0)};return v(t,h,o),{isFullscreen:a,enter:m,exit:d,toggle:l,teardown:o}}function $(t){if(t===null||typeof t!="object")return t;for(const e in t)Object.getOwnPropertyDescriptor(t,e)!=null&&(t[e]=$(t[e]));return new Proxy(t,{get(e,s){return e[s]},set(e,s,i){return e[s]=$(i),!0}})}function Ts(t,e={},s,i){s&&(s=s.bind(t)),i&&(i=i.bind(t));const{enableHighAccuracy:r=!0,maximumAge:a=3e4,timeout:l=27e3}=e,h=navigator&&"geolocation"in navigator,o=$({locatedAt:null,error:null,coords:{accuracy:0,latitude:1/0,longitude:1/0,altitude:null,altitudeAccuracy:null,heading:null,speed:null},teardown:()=>{m&&(navigator.geolocation.clearWatch(m),m=null)}});let d=()=>{h&&(m=navigator.geolocation.watchPosition(g=>{o.locatedAt=g.timestamp,o.coords=g.coords,o.error=null,s&&s(g)},g=>{o.error=g,i&&i(g)},{enableHighAccuracy:r,maximumAge:a,timeout:l}))},m=null;return v(t,d,o.teardown),o}function ce(t,e,s,i,r={}){let a=Array.from(i.childNodes),l=()=>{let o=e.parentElement;if(["beforebegin","afterend"].includes(s)&&o==null)throw new Error("Cannot insert beforebegin into a node with no parent");switch(s){case"beforeend":e.append(i);break;case"afterbegin":e.prepend(i);break;case"beforebegin":o.insertBefore(i,e);break;case"afterend":o.insertBefore(i,e);break}},h=r.cleanup?()=>a.forEach(o=>o.remove()):()=>{};return v(t,l,h),[a,h]}function Cs(t,e,s,i,r={}){const a=document.createRange().createContextualFragment(i);return ce(t,e,s,a,r)}function at(t,e,s,i,r={}){const a=new DocumentFragment;a.append(i);let[l,h]=ce(t,e,s,a,r);return[l[0],h]}function N(t,e,s){e=e.bind(t);let i=null,r=()=>i=setInterval(e,s),a=()=>{i!==null&&clearInterval(i)};return v(t,r,a),a}const nt={boolean:{deserialize:t=>t==="true",serialize:t=>String(t),isEmpty:t=>t===""||t===null},object:{deserialize:t=>JSON.parse(t),serialize:t=>JSON.stringify(t),isEmpty:t=>{const e=Object.values(JSON.parse(t));return e.length===0||e.every(s=>s===""||s===null)}},number:{deserialize:t=>Number.parseFloat(t),serialize:t=>String(t),isEmpty:t=>t===""||t===null},any:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},string:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},map:{deserialize:t=>new Map(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}},set:{deserialize:t=>new Set(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}}};function lt(t,e,s,i={writeDefaults:!0}){let r,{writeDefaults:a}=i;s==null?r="any":s instanceof Set?r="set":s instanceof Map?r="map":typeof s=="boolean"?r="boolean":typeof s=="string"?r="string":typeof s=="object"||Array.isArray(s)?r="object":Number.isNaN(s)?r="any":r="number";let l=$({value:s}),h=localStorage;const o=nt[r],d=()=>{const b=h.getItem(e);return b==null?(l.value=s,a&&s!==null&&h.setItem(e,o.serialize(s))):l.value=o.deserialize(b),l.value},m=b=>{h.setItem(e,o.serialize(b)),l.value=b},g=()=>(h.removeItem(e),l.value=s,l.value),E=()=>{let b=h.getItem(e);return o.isEmpty(b)};return d(),{get value(){return d()},set value(b){m(b)},read:d,clear:g,write:m,isEmpty:E}}function k(t,e,s){let i,r=null;e=e.bind(t);let a=()=>{e(),r=null,Object.assign(t,{disconnect:i})},l=()=>r=setTimeout(a,s),h=()=>{r!==null&&(clearTimeout(r),r=null)};return i=v(t,l,h),h}function ot(t,e,s,i,r){const a=(g,E)=>{_(g)?g.value=E:g.textContent=E},l=g=>_(g)?g.value:g.innerHTML;let h=()=>{},o=l(e);const d=()=>{a(e,o),h(),r&&r.call(t)};return v(t,()=>{a(e,s),i!==void 0&&(h=k(t,d,i))},d),{teardown:d,update(g){a(e,g)}}}async function ut(t,e,s){try{return await fetch(e,s)}catch(i){if(t===1)throw i;return await ut(t-1,e,s)}}class D extends u{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}get _maxRetries(){return this.hasMaxRetriesValue?this.maxRetriesValue:1}connect(){}async loadContent(e=null){e==null||e.preventDefault();let s=this,i=this.hasReplaceTarget?this.replaceTarget:this.el,r=()=>{i.replaceWith(this._errorMessage),s.dispatchEvent(i,"ajax:error")};try{let a=await ut(this._maxRetries,this.endpointValue);a.ok||r();let l=await a.text(),h=document.createElement("div");if(h.innerHTML=l,this.hasSelectorValue){let o=h.querySelectorAll(this.selectorValue);i.replaceWith(...o)}else i.replaceWith(...h.children);s.dispatchEvent(i,"ajax:success")}catch{r()}finally{s.dispatchEvent(i,"ajax:complete")}}}n(D,"targets",["replace"]),n(D,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});class de extends D{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}async connect(){await this.loadContent()}}n(de,"targets",["replace"]),n(de,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});function Ss(t,e,s){e=e.bind(t);let i=new IntersectionObserver(e,s);return{observer:i,teardown:()=>{i==null||i.disconnect(),i=null},observe:h=>i==null?void 0:i.observe(h),unobserve:h=>i==null?void 0:i.unobserve(h)}}function fe(t,e,s,i,r){s&&(s=s.bind(t)),i&&(i=i.bind(t));let a=r!=null?r:{},l=E=>{E.forEach(b=>{b.isIntersecting?s&&s(b):i&&i(b)})},{observer:h,observe:o,unobserve:d,teardown:m}=Ss(t,l,a);return v(t,()=>o(e),m),{observer:h,observe:()=>o(e),unobserve:()=>d(e),teardown:m}}class Vs extends D{async connect(){let e=this.el;if("IntersectionObserver"in window){let{observe:s,unobserve:i}=fe(this,e,this.appear,null,{threshold:.3});this.observe=s,this.unobserve=i}else await this.loadContent()}async appear(e){e.target===this.el&&e.isIntersecting&&(await this.loadContent(),this.unobserve&&this.unobserve())}}class me extends D{connect(){if(!this.hasSecondsValue)throw new Error("Required value `seconds` is missing");requestAnimationFrame(()=>{this._timeout(),N(this,this._timeout,this.secondsValue*1e3)})}async _timeout(){await this.loadContent()}}n(me,"targets",["replace"]),n(me,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number,seconds:Number});class ht extends u{get _eventModes(){if(this.hasEventModeValue){let e=this.eventModeValue.split(" ").map(s=>s.trim());if(e.length===1&&e[0]==="debounced")return["change","input"];if(!e.every(s=>["change","input"].includes(s)))throw new Error(`The modeValue provided '${this.eventModeValue}' is not one of the recognised configuration options`);return e}else return["change"]}get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:-1}get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get _cssSelector(){let e=["input","textarea","select"],s=":not([data-no-autosubmit])";return e.map(i=>i.concat(s)).join(",")}get inputElements(){let e=Array.from(this.element.querySelectorAll(this._cssSelector));return e=e.filter(s=>!this._ancestorIsTrix(s)),e}connect(){this.inputElements.forEach(e=>c(this,e,this._eventModes,this.submit,{debounce:this._debounceTimeout&&this._debounceTimeout>0?this._debounceTimeout:void 0}))}_ancestorIsTrix(e){return e.closest("trix-toolbar")!==null&&e.closest("trix-editor")!==null}submit(){let e=this.el;this._mode=="request"?he(e):e.submit()}}n(ht,"values",{submitMode:String,eventMode:String,debounceInterval:Number});class xs extends u{connect(){let{teardown:e}=fe(this,this.el,this.appear);if(this._unobserveIntersection=e,!q(this.el))throw new Error(`Expected controller to be attached to a textarea, but was a '${this.el.tagName}'`);requestAnimationFrame(()=>{this.el.style.resize="none",this.el.style.boxSizing="border-box",this._handler(),c(this,window,["resize"],this._handler),c(this,this.el,["input","change","focus"],this._handler,{debounce:100})})}appear(e){this.autosize(this.el),this._unobserveIntersection()}_handler(){this.autosize(this.el)}autosize(e){let s=e.offsetHeight-e.clientHeight;e.style.height="auto",e.style.height=e.scrollHeight+s+"px"}}function H(t,e){const s=t[e];return typeof s=="function"?s:s!=null?()=>s:()=>{}}function z(t){return p.upperFirst(p.camelCase(t))}function ks(t,e){let s=t.element,i=()=>t[`has${z(e)}Class`]==!0,r=()=>t[`${e}Classes`],a=()=>H(t,`default${z(e)}Classes`).call(t)||[],l=()=>i()?r():a();t[`${e}Classes`]==null&&Object.defineProperty(t,`${e}Classes`,{get:()=>i()?t[`${e}Class`].split(" "):a()});let h={[`add${z(e)}Classes`]:(o=s)=>o.classList.add(...l()),[`remove${z(e)}Classes`]:(o=s)=>o.classList.remove(...l()),[`${e}ClassesPresent`]:(o=s)=>l().every(d=>o.classList.contains(d))};Object.assign(t,h)}function y(t){(t.constructor.classes||[]).forEach(s=>ks(t,s))}class U extends u{connect(){y(this),requestAnimationFrame(()=>{c(this,this.inputTarget,"input",this._updateCharCount),this._updateCharCount()})}_updateCharCount(){let e=this.inputTarget.value.length;this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}n(U,"targets",["input","output"]),n(U,"values",{min:Number,max:Number}),n(U,"classes",["error"]);class ge extends u{connect(){this.toggle()}toggle(){this.hasDisablerTarget&&this.disablerTarget.checked?this.disable():this.enable()}disable(){let e=this.hasClearValue&&this.clearValue;this.disableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.disableTargets.forEach((e,s)=>{e.disabled=!1})}}n(ge,"targets",["disabler","disable"]),n(ge,"values",{clear:Boolean});class pe extends u{connect(){this.toggle()}toggle(){this.hasEnablerTarget&&this.enablerTarget.checked?this.enable():this.disable()}disable(){let e=this.hasClearValue&&this.clearValue;this.enableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.enableTargets.forEach((e,s)=>{e.disabled=!1})}}n(pe,"targets",["enabler","enable"]),n(pe,"values",{clear:Boolean});class ct extends u{get _checked(){return this._enabled.filter(e=>e.checked)}get _enabled(){return this.checkboxTargets.filter(e=>!e.disabled&&!e.readOnly)}get _unchecked(){return this._enabled.filter(e=>!e.checked)}connect(){requestAnimationFrame(()=>{!this.hasSelectAllTarget||(c(this,this.selectAllTarget,"change",this._toggle),x(this,this.checkboxTargets,"change",this._refresh),this._refresh())})}_toggle(e){e.preventDefault();let s=e.target;this._enabled.forEach(i=>i.checked=i.disabled||i.readOnly?i.checked:s.checked)}_refresh(){const e=this._enabled.length,s=this._checked.length;this.selectAllTarget.checked=s>0,this.selectAllTarget.indeterminate=s>0&&s<e}}n(ct,"targets",["selectAll","checkbox"]);class dt extends u{connect(){x(this,this.checkboxTargets,"change",this._update)}_otherCheckboxes(e){return Array.from(this.checkboxTargets).filter(s=>s!==e)}_update(e){const s=e.target;if(!s)throw new Error("No target found on event");let i=this._otherCheckboxes(s);s.checked&&i.forEach(r=>{r.checked=!1,this.dispatchEvent(this.el,"change")})}}n(dt,"targets",["checkbox"]);class Ms extends u{get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),c(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._restoreElementFromLoadValue()}_getElementValue(){let e=this.el;return S(e)?e.checked:e.value}_getElementLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);if(S(e))return s==null?e.defaultChecked:s=="true";if(A(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(){return this.el.hasAttribute(this._cacheAttrName)}_checkDirty(){let e=this.el;_(e)&&e.type=="radio"&&ue(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty()?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(){return this._getElementValue()!==this._getElementLoadValue()}_restoreElementFromLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);S(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):A(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){let e=this.el;!this._elementHasCachedLoadValue()&&S(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}}function As(t){return t.hasAttribute("data-dirty")}class Ds extends u{get _formElements(){return Array.from(this.el.querySelectorAll("input, select, textarea"))}get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),c(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._formElements.forEach(s=>this._restoreElementFromLoadValue(s))}_getElementValue(e){return S(e)?e.checked:e.value}_getElementLoadValue(e){let s=e.getAttribute(this._cacheAttrName);if(S(e))return s==null?e.defaultChecked:s=="true";if(A(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(e){return e.hasAttribute(this._cacheAttrName)}_checkElementDirty(e){_(e)&&e.type=="radio"&&ue(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty(e)?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(e){return this._getElementValue(e)!==this._getElementLoadValue(e)}_cacheElementLoadValue(e){!this._elementHasCachedLoadValue(e)&&S(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}_restoreElementFromLoadValue(e){let s=e.getAttribute(this._cacheAttrName);S(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):A(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){this._formElements.forEach(e=>this._cacheElementLoadValue(e))}_checkDirty(){this._formElements.forEach(e=>this._checkElementDirty(e)),this._formElements.some(e=>ft(e))?this.el.setAttribute("data-dirty","true"):this.el.removeAttribute("data-dirty")}}function ft(t){return t.hasAttribute("data-dirty")}class _e extends u{connect(){}disable(){let e=this.hasClearValue&&this.clearValue;this.inputTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.inputTargets.forEach((e,s)=>e.disabled=!1)}}n(_e,"targets",["input"]),n(_e,"values",{clear:Boolean});class mt extends u{get _mode(){const e=["immediate","wait"];if(this.hasModeValue){if(e.includes(this.modeValue))return this.modeValue;throw new Error(`The given modeValue '${this.modeValue}' is not one of the supported modes: "${e.join('", "')}"`)}else return e[0]}connect(){this._mode=="immediate"&&this.steal()}steal(){this.el.focus()}}n(mt,"values",{mode:String});class be extends u{get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get form(){let e;if(this.hasFormSelectorValue){if(e=document.querySelector(this.formSelectorValue),!e)throw new Error(`Could not find a form on the page that matches selector '${this.formSelectorValue}'`)}else e=this.formTarget;return e}submit(e){e==null||e.preventDefault();let s=this.formTarget;this._mode=="request"?he(s):s.submit()}reset(e){e==null||e.preventDefault(),st(this.form)}}n(be,"targets",["form"]),n(be,"values",{formSelector:String,submitMode:String});class gt extends u{get _formID(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this form. Please either specify data-${this.identifier}-id-value or give this form an 'id' attribute. `)}get _formIdentifier(){return`${location.href} ${this._formID}`}get _formElements(){return this.el.elements}get _formData(){let e={[this._formIdentifier]:{}};for(const s of this._formElements){let i=s;i.name.length>0&&(_(i)&&i.type=="checkbox"?e[this._formIdentifier][i.name]=i.checked:_(i)&&i.type=="radio"?i.checked&&(e[this._formIdentifier][i.name]=i.value):e[this._formIdentifier][i.name]=i.value)}return e}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _clearOnSubmit(){return this.hasClearOnSubmitValue?this.clearOnSubmitValue:!0}connect(){requestAnimationFrame(()=>{let e=this.el;if(!ae(e))throw new Error("Expected controller to be mounted on a form element.");this._restoreOnLoad&&this.restore(),this._clearOnSubmit&&c(this,this.el,"submit",this._clear)})}_clear(){localStorage.removeItem(this._formIdentifier),this.dispatchEvent(this.el,"form-save:cleared")}clear(e){e==null||e.preventDefault(),this._clear()}save(e){e.preventDefault();let s=this._formData;localStorage.setItem(this._formIdentifier,JSON.stringify(s[this._formIdentifier])),this.dispatchEvent(this.el,"form-save:save:success")}restore(e){if(e==null||e.preventDefault(),localStorage.getItem(this._formIdentifier)){const s=JSON.parse(localStorage.getItem(this._formIdentifier));for(const i of this._formElements){let r=i;r.name in s&&(_(r)&&r.type=="checkbox"?r.checked=s[r.name]:_(r)&&r.type=="radio"?r.value==s[r.name]&&(r.checked=!0):r.value=s[r.name])}this.dispatchEvent(this.el,"form-save:restore:success")}else this.dispatchEvent(this.el,"form-save:restore:empty")}}n(gt,"values",{id:String,restoreOnLoad:Boolean,clearOnSubmit:Boolean});class ve extends u{connect(){x(this,this.inputTargets,"change",this._handleInputs)}_handleInputs(e){let s=this.inputTargets.reduce((r,a)=>a.checked?r+1:r,0),i=e.target;s>this.maxValue?(e.preventDefault(),i.checked=!1,this.dispatchEvent(i,"change"),this.dispatchEvent(i,"limited-selection:too-many"),this.hasErrorTarget&&this.hasMessageValue&&(this.errorTarget.innerHTML=this.messageValue)):(this.dispatchEvent(i,"limited-selection:selection"),this.hasErrorTarget&&(this.errorTarget.innerHTML=""))}}n(ve,"targets",["input","error"]),n(ve,"values",{max:Number,message:String});class j extends u{constructor(){super(...arguments);n(this,"_errors",[]);n(this,"_firstClick",!1)}get defaultCurrentClasses(){return["currentError"]}get _errorCount(){return this._errors.length}get _previousIndex(){let e=this._index-1;return e<0?0:e}get _nextIndex(){let e=this._index+1;return e>this._errors.length-1?this._errors.length-1:e}get _index(){return p.clamp(this.hasIndexValue?this.indexValue:0,0,this._errors.length)}get _selector(){if(this.hasSelectorValue)return this.selectorValue;throw new Error("Expected `selectorValue` to be present")}get _currentError(){return this._errors[this._index]}get _otherErrors(){return this._errors.filter((e,s)=>s!==this._index)}connect(){y(this),requestAnimationFrame(()=>{this._firstClick=!0,this._toggleButtons(),this._toggleVisibility()})}async current(e){e==null||e.preventDefault(),this._firstClick&&(this._firstClick=!1,this._toggleButtons()),await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async next(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._nextIndex,await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async previous(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._previousIndex,await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}indexValueChanged(){this._toggleButtons()}selectorValueChanged(){this._errors=Array.from(document.querySelectorAll(this._selector)),this.indexValue=0,this._toggleButtons(),this._toggleVisibility()}_updateClasses(){this.addCurrentClasses(this._currentError),this._otherErrors.forEach(e=>this.removeCurrentClasses(e))}_toggleVisibility(){this._errorCount===0?this.el.style.display="none":this.el.style.display=""}_toggleButtons(){if(this.hasNextTarget)if(!this.hasCurrentTarget&&this._firstClick&&this.indexValue==this._errorCount-1){this.nextTarget.removeAttribute("disabled");return}else this.indexValue>=this._errorCount-1?this.nextTarget.setAttribute("disabled","true"):this.nextTarget.removeAttribute("disabled");this.hasPreviousTarget&&(this.indexValue<=0?this.previousTarget.setAttribute("disabled","true"):this.previousTarget.removeAttribute("disabled"))}}n(j,"values",{selector:String,index:Number}),n(j,"classes",["current"]),n(j,"targets",["next","current","previous"]);class we extends u{get _wrapperClass(){return this.hasWrapperSelectorValue?this.wrapperClassValue:"nested-fields"}get _insertMode(){return this.hasInsertModeValue?this.insertModeValue:"beforeend"}connect(){this._checkStructure()}add(e){e==null||e.preventDefault();const s=this.templateTarget.innerHTML.replace(/NEW_RECORD/g,this._generateID());this.targetTarget.insertAdjacentHTML(this._insertMode,s)}remove(e){e.preventDefault();const s=e.target.closest(`.${this._wrapperClass}`);if(s==null)throw new Error(`#remove was clicked from outside of a child record. Could not find an ancestor with class .${this._wrapperClass}`);if(s.dataset.newRecord==="true")s.remove();else{s.style.display="none";let i=s.querySelector("input[name*='_destroy']");if(i==null)throw new Error("Could not find a hidden input with name '_destroy'. NestedForm cannot remove an already persisted record without it.");i.value="1"}}_generateID(){return new Date().getTime().toString()+Math.random().toString().slice(2)}_checkStructure(){if(this.templateTarget.innerHTML.indexOf("NEW_RECORD"))throw new Error("Could not find 'NEW_RECORD' in the provided template. Please make sure you've passed `child_index: 'NEW_RECORD'` to `fields_for`")}}n(we,"targets",["target","template"]),n(we,"values",{insertMode:String,wrapperClass:String});class ye extends u{connect(){y(this),x(this,this.passwordTargets,"change",this._checkPasswordsMatch)}_allPasswordsMatch(){let e=new Set(this.passwordTargets.map(s=>s.value));return e.has("")||e.size==1}_checkPasswordsMatch(){let e=this.el;this._allPasswordsMatch()?(this.dispatchEvent(e,"password-confirm:match"),this.passwordTargets.forEach(s=>this.removeErrorClasses(s))):(this.dispatchEvent(e,"password-confirm:no-match"),this.passwordTargets.forEach(s=>this.addErrorClasses(s)))}}n(ye,"targets",["password"]),n(ye,"classes",["error"]);class pt extends u{peak(e){e==null||e.preventDefault(),this.passwordTarget.type="text"}hide(e){e==null||e.preventDefault(),this.passwordTarget.type="password"}toggle(e){e==null||e.preventDefault(),this.passwordTarget.type==="password"?this.peak():this.hide()}}n(pt,"targets",["password"]);class Ee extends u{get _selector(){return this.hasSelectorValue?this.selectorValue:`[data-controller~="${this.identifier}"]`}replace(e){const[s,i,r]=e.detail;if(s instanceof Node){let a=s.querySelector(this._selector);if(a==null)throw new Error(`expected new form DOM with [data-controller="${this.identifier}"] to be present in returned payload`);let l=this.el.parentNode;if(l==null)throw new Error("expected form to have a DOM parent, could not execute replaceChild");l.replaceChild(a,this.el),this.dispatchEvent(a,"remote-form:replace")}else console.log("Unknown",s)}}n(Ee,"targets",[]),n(Ee,"values",{selector:String});function W(t,e,s,i){let r=i;(r==null?void 0:r.debounce)?(s=p.debounce(s.bind(t),r.debounce),delete r.debounce):s=s.bind(t);let a=it(e),l=()=>a.forEach(o=>M.on(o,s)),h=()=>a.forEach(o=>M.off(o,s));return v(t,l,h),{setup:l,teardown:h}}class _t extends u{get _eventName(){return`sync:${this._key}`}get _key(){if(this.hasKeyValue)return this.keyValue;throw new Error("Expected `keyValue` to be present")}get _value(){let e=this.el;return _(e)&&e.type==="checkbox"?e.checked:_(e)&&e.type==="radio"?e.checked?e.value:"":e.value}set _value(e){let s=this.el;_(s)&&s.type==="checkbox"?s.checked=e.toString()==="true":_(s)&&s.type==="radio"?s.checked=s.value===e:_(s)||q(s)||A(s)?s.value=e.toString():s.innerHTML=e.toString()}connect(){W(this,this._eventName,this._read),requestAnimationFrame(()=>{Ze(this.el)&&(this._emit(),c(this,this.el,"input",this._emit))})}_emit(){M.emit(this._eventName,{value:this._value,dispatcher:this.el})}_read(e){if(e===void 0)throw new Error("No payload received");let{dispatcher:s,value:i}=e;s!==this.el&&(this._value=i)}}n(_t,"values",{key:String});class K extends u{get _maxMessage(){return this.hasMaxMessageValue?this.maxMessageValue:`Value must be less than ${this.maxValue}`}get _minMessage(){return this.hasMinMessageValue?this.minMessageValue:`Value must be greater than ${this.minValue}`}get defaultWarningHideClasses(){return["hide"]}connect(){y(this),this.addWarningHideClasses(this.warningTarget),c(this,this.inputTarget,"input",this._check),this._check()}_check(){this.hasMinValue&&Number.parseFloat(this.inputTarget.value)<this.minValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._minMessage):this.hasMaxValue&&Number.parseFloat(this.inputTarget.value)>this.maxValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._maxMessage):(this.addWarningHideClasses(this.warningTarget),this.removeInputWarningClasses(this.inputTarget),this.warningTarget.innerText="")}}n(K,"classes",["inputWarning","warningHide"]),n(K,"targets",["input","warning"]),n(K,"values",{max:Number,min:Number,minMessage:String,maxMessage:String});class G extends u{connect(){y(this),this._updateWordCount(),c(this,this.inputTarget,"input",this._updateWordCount)}_updateWordCount(){let e=0,i=this.inputTarget.value.match(/\S+/g);e=i&&i.length||0,this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}n(G,"targets",["input","output"]),n(G,"values",{min:Number,max:Number}),n(G,"classes",["error"]);class Te extends u{initialize(){this._hasLoadedSuccessfully=this._hasLoadedSuccessfully.bind(this),this._success=this._success.bind(this),this._fail=this._fail.bind(this)}connect(){let e=this.el;e.onerror=this._fail,e.complete&&!this._hasLoadedSuccessfully()?this._fail():this._success()}disconnect(){this.removeSuccessClasses(),this.removeFailClasses()}_success(){this.addSuccessClasses()}_fail(){let e=this.el;this.addFailClasses(),this.hasPlaceholderValue&&e.src!==this.placeholderValue?(this.dispatchEvent(e,"fallback-image:placeholder"),e.src=this.placeholderValue,e.onerror=this._fail):(this.dispatchEvent(e,"fallback-image:fail"),e.style.display="none")}_hasLoadedSuccessfully(){let e=this.el;return e.naturalHeight>0&&e.naturalWidth>0}}n(Te,"values",{placeholder:String}),n(Te,"classes",["success","fail"]);var L=window.CustomEvent;(!L||typeof L=="object")&&(L=function(e,s){s=s||{};var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,!!s.bubbles,!!s.cancelable,s.detail||null),i},L.prototype=window.Event.prototype);function bt(t,e){var s="on"+e.type.toLowerCase();return typeof t[s]=="function"&&t[s](e),t.dispatchEvent(e)}function Ls(t){for(;t&&t!==document.body;){var e=window.getComputedStyle(t),s=function(i,r){return!(e[i]===void 0||e[i]===r)};if(e.opacity<1||s("zIndex","auto")||s("transform","none")||s("mixBlendMode","normal")||s("filter","none")||s("perspective","none")||e.isolation==="isolate"||e.position==="fixed"||e.webkitOverflowScrolling==="touch")return!0;t=t.parentElement}return!1}function O(t){for(;t;){if(t.localName==="dialog")return t;t.parentElement?t=t.parentElement:t.parentNode?t=t.parentNode.host:t=null}return null}function vt(t){for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;t&&t.blur&&t!==document.body&&t.blur()}function Is(t,e){for(var s=0;s<t.length;++s)if(t[s]===e)return!0;return!1}function Ce(t){return!t||!t.hasAttribute("method")?!1:t.getAttribute("method").toLowerCase()==="dialog"}function wt(t){var e=["button","input","keygen","select","textarea"],s=e.map(function(l){return l+":not([disabled])"});s.push('[tabindex]:not([disabled]):not([tabindex=""])');var i=t.querySelector(s.join(", "));if(!i&&"attachShadow"in Element.prototype)for(var r=t.querySelectorAll("*"),a=0;a<r.length&&!(r[a].tagName&&r[a].shadowRoot&&(i=wt(r[a].shadowRoot),i));a++);return i}function yt(t){return t.isConnected||document.body.contains(t)}function Et(t){if(t.submitter)return t.submitter;var e=t.target;if(!(e instanceof HTMLFormElement))return null;var s=f.formSubmitter;if(!s){var i=t.target,r="getRootNode"in i&&i.getRootNode()||document;s=r.activeElement}return!s||s.form!==e?null:s}function Ns(t){if(!t.defaultPrevented){var e=t.target,s=f.imagemapUseValue,i=Et(t);s===null&&i&&(s=i.value);var r=O(e);if(!!r){var a=i&&i.getAttribute("formmethod")||e.getAttribute("method");a==="dialog"&&(t.preventDefault(),s!=null?r.close(s):r.close())}}}function Tt(t){if(this.dialog_=t,this.replacedStyleTop_=!1,this.openAsModal_=!1,t.hasAttribute("role")||t.setAttribute("role","dialog"),t.show=this.show.bind(this),t.showModal=this.showModal.bind(this),t.close=this.close.bind(this),t.addEventListener("submit",Ns,!1),"returnValue"in t||(t.returnValue=""),"MutationObserver"in window){var e=new MutationObserver(this.maybeHideModal.bind(this));e.observe(t,{attributes:!0,attributeFilter:["open"]})}else{var s=!1,i=function(){s?this.downgradeModal():this.maybeHideModal(),s=!1}.bind(this),r,a=function(l){if(l.target===t){var h="DOMNodeRemoved";s|=l.type.substr(0,h.length)===h,window.clearTimeout(r),r=window.setTimeout(i,0)}};["DOMAttrModified","DOMNodeRemoved","DOMNodeRemovedFromDocument"].forEach(function(l){t.addEventListener(l,a)})}Object.defineProperty(t,"open",{set:this.setOpen.bind(this),get:t.hasAttribute.bind(t,"open")}),this.backdrop_=document.createElement("div"),this.backdrop_.className="backdrop",this.backdrop_.addEventListener("mouseup",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("mousedown",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("click",this.backdropMouseEvent_.bind(this))}Tt.prototype={get dialog(){return this.dialog_},maybeHideModal:function(){this.dialog_.hasAttribute("open")&&yt(this.dialog_)||this.downgradeModal()},downgradeModal:function(){!this.openAsModal_||(this.openAsModal_=!1,this.dialog_.style.zIndex="",this.replacedStyleTop_&&(this.dialog_.style.top="",this.replacedStyleTop_=!1),this.backdrop_.parentNode&&this.backdrop_.parentNode.removeChild(this.backdrop_),f.dm.removeDialog(this))},setOpen:function(t){t?this.dialog_.hasAttribute("open")||this.dialog_.setAttribute("open",""):(this.dialog_.removeAttribute("open"),this.maybeHideModal())},backdropMouseEvent_:function(t){if(this.dialog_.hasAttribute("tabindex"))this.dialog_.focus();else{var e=document.createElement("div");this.dialog_.insertBefore(e,this.dialog_.firstChild),e.tabIndex=-1,e.focus(),this.dialog_.removeChild(e)}var s=document.createEvent("MouseEvents");s.initMouseEvent(t.type,t.bubbles,t.cancelable,window,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget),this.dialog_.dispatchEvent(s),t.stopPropagation()},focus_:function(){var t=this.dialog_.querySelector("[autofocus]:not([disabled])");!t&&this.dialog_.tabIndex>=0&&(t=this.dialog_),t||(t=wt(this.dialog_)),vt(document.activeElement),t&&t.focus()},updateZIndex:function(t,e){if(t<e)throw new Error("dialogZ should never be < backdropZ");this.dialog_.style.zIndex=t,this.backdrop_.style.zIndex=e},show:function(){this.dialog_.open||(this.setOpen(!0),this.focus_())},showModal:function(){if(this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.");if(!yt(this.dialog_))throw new Error("Failed to execute 'showModal' on dialog: The element is not in a Document.");if(!f.dm.pushDialog(this))throw new Error("Failed to execute 'showModal' on dialog: There are too many open modal dialogs.");Ls(this.dialog_.parentElement)&&console.warn("A dialog is being shown inside a stacking context. This may cause it to be unusable. For more information, see this link: https://github.com/GoogleChrome/dialog-polyfill/#stacking-context"),this.setOpen(!0),this.openAsModal_=!0,f.needsCentering(this.dialog_)?(f.reposition(this.dialog_),this.replacedStyleTop_=!0):this.replacedStyleTop_=!1,this.dialog_.parentNode.insertBefore(this.backdrop_,this.dialog_.nextSibling),this.focus_()},close:function(t){if(!this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.");this.setOpen(!1),t!==void 0&&(this.dialog_.returnValue=t);var e=new L("close",{bubbles:!1,cancelable:!1});bt(this.dialog_,e)}};var f={};f.reposition=function(t){var e=document.body.scrollTop||document.documentElement.scrollTop,s=e+(window.innerHeight-t.offsetHeight)/2;t.style.top=Math.max(e,s)+"px"};f.isInlinePositionSetByStylesheet=function(t){for(var e=0;e<document.styleSheets.length;++e){var s=document.styleSheets[e],i=null;try{i=s.cssRules}catch{}if(!!i)for(var r=0;r<i.length;++r){var a=i[r],l=null;try{l=document.querySelectorAll(a.selectorText)}catch{}if(!(!l||!Is(l,t))){var h=a.style.getPropertyValue("top"),o=a.style.getPropertyValue("bottom");if(h&&h!=="auto"||o&&o!=="auto")return!0}}}return!1};f.needsCentering=function(t){var e=window.getComputedStyle(t);return e.position!=="absolute"||t.style.top!=="auto"&&t.style.top!==""||t.style.bottom!=="auto"&&t.style.bottom!==""?!1:!f.isInlinePositionSetByStylesheet(t)};f.forceRegisterDialog=function(t){if((window.HTMLDialogElement||t.showModal)&&console.warn("This browser already supports <dialog>, the polyfill may not work correctly",t),t.localName!=="dialog")throw new Error("Failed to register dialog: The element is not a dialog.");new Tt(t)};f.registerDialog=function(t){t.showModal||f.forceRegisterDialog(t)};f.DialogManager=function(){this.pendingDialogStack=[];var t=this.checkDOM_.bind(this);this.overlay=document.createElement("div"),this.overlay.className="_dialog_overlay",this.overlay.addEventListener("click",function(e){this.forwardTab_=void 0,e.stopPropagation(),t([])}.bind(this)),this.handleKey_=this.handleKey_.bind(this),this.handleFocus_=this.handleFocus_.bind(this),this.zIndexLow_=1e5,this.zIndexHigh_=1e5+150,this.forwardTab_=void 0,"MutationObserver"in window&&(this.mo_=new MutationObserver(function(e){var s=[];e.forEach(function(i){for(var r=0,a;a=i.removedNodes[r];++r){if(a instanceof Element)a.localName==="dialog"&&s.push(a);else continue;s=s.concat(a.querySelectorAll("dialog"))}}),s.length&&t(s)}))};f.DialogManager.prototype.blockDocument=function(){document.documentElement.addEventListener("focus",this.handleFocus_,!0),document.addEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.observe(document,{childList:!0,subtree:!0})};f.DialogManager.prototype.unblockDocument=function(){document.documentElement.removeEventListener("focus",this.handleFocus_,!0),document.removeEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.disconnect()};f.DialogManager.prototype.updateStacking=function(){for(var t=this.zIndexHigh_,e=0,s;s=this.pendingDialogStack[e];++e)s.updateZIndex(--t,--t),e===0&&(this.overlay.style.zIndex=--t);var i=this.pendingDialogStack[0];if(i){var r=i.dialog.parentNode||document.body;r.appendChild(this.overlay)}else this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay)};f.DialogManager.prototype.containedByTopDialog_=function(t){for(;t=O(t);){for(var e=0,s;s=this.pendingDialogStack[e];++e)if(s.dialog===t)return e===0;t=t.parentElement}return!1};f.DialogManager.prototype.handleFocus_=function(t){var e=t.composedPath?t.composedPath()[0]:t.target;if(!this.containedByTopDialog_(e)&&document.activeElement!==document.documentElement&&(t.preventDefault(),t.stopPropagation(),vt(e),this.forwardTab_!==void 0)){var s=this.pendingDialogStack[0],i=s.dialog,r=i.compareDocumentPosition(e);return r&Node.DOCUMENT_POSITION_PRECEDING&&(this.forwardTab_?s.focus_():e!==document.documentElement&&document.documentElement.focus()),!1}};f.DialogManager.prototype.handleKey_=function(t){if(this.forwardTab_=void 0,t.keyCode===27){t.preventDefault(),t.stopPropagation();var e=new L("cancel",{bubbles:!1,cancelable:!0}),s=this.pendingDialogStack[0];s&&bt(s.dialog,e)&&s.dialog.close()}else t.keyCode===9&&(this.forwardTab_=!t.shiftKey)};f.DialogManager.prototype.checkDOM_=function(t){var e=this.pendingDialogStack.slice();e.forEach(function(s){t.indexOf(s.dialog)!==-1?s.downgradeModal():s.maybeHideModal()})};f.DialogManager.prototype.pushDialog=function(t){var e=(this.zIndexHigh_-this.zIndexLow_)/2-1;return this.pendingDialogStack.length>=e?!1:(this.pendingDialogStack.unshift(t)===1&&this.blockDocument(),this.updateStacking(),!0)};f.DialogManager.prototype.removeDialog=function(t){var e=this.pendingDialogStack.indexOf(t);e!==-1&&(this.pendingDialogStack.splice(e,1),this.pendingDialogStack.length===0&&this.unblockDocument(),this.updateStacking())};f.dm=new f.DialogManager;f.formSubmitter=null;f.imagemapUseValue=null;if(window.HTMLDialogElement===void 0){var Ct=document.createElement("form");if(Ct.setAttribute("method","dialog"),Ct.method!=="dialog"){var I=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"method");if(I){var Hs=I.get;I.get=function(){return Ce(this)?"dialog":Hs.call(this)};var Os=I.set;I.set=function(t){return typeof t=="string"&&t.toLowerCase()==="dialog"?this.setAttribute("method",t):Os.call(this,t)},Object.defineProperty(HTMLFormElement.prototype,"method",I)}}document.addEventListener("click",function(t){if(f.formSubmitter=null,f.imagemapUseValue=null,!t.defaultPrevented){var e=t.target;if("composedPath"in t){var s=t.composedPath();e=s.shift()||e}if(!(!e||!Ce(e.form))){var i=e.type==="submit"&&["button","input"].indexOf(e.localName)>-1;if(!i){if(!(e.localName==="input"&&e.type==="image"))return;f.imagemapUseValue=t.offsetX+","+t.offsetY}var r=O(e);!r||(f.formSubmitter=e)}}},!1),document.addEventListener("submit",function(t){var e=t.target,s=O(e);if(!s){var i=Et(t),r=i&&i.getAttribute("formmethod")||e.getAttribute("method");r==="dialog"&&t.preventDefault()}});var Bs=HTMLFormElement.prototype.submit,Fs=function(){if(!Ce(this))return Bs.call(this);var t=O(this);t&&t.close()};HTMLFormElement.prototype.submit=Fs}class Se extends u{constructor(){super(...arguments);n(this,"_dialog",null)}get _src(){return this.hasSrcValue?this.srcValue:this.el.src}get _srcSet(){return this.hasSrcSetValue?this.srcSetValue:this.el.srcset}get _sizes(){return this.hasSizesValue?this.sizesValue:this.el.sizes}get _modalClassName(){return this.hasModalClass?this.modalClass:"image-lightbox-dialog"}get _imageClassName(){return this.hasImageClass?this.imageClass:"image-lightbox-image"}initialize(){this.open=this.open.bind(this),this.close=this.close.bind(this)}connect(){}disconnect(){this.close()}open(){let e=this.el;if(this._dialog)return;this._dialog=document.createElement("dialog");let s=document.createElement("img");s.className=this._imageClassName,s.src=this._src,s.srcset=this._srcSet,s.sizes=this._sizes,this._dialog.appendChild(s),e.insertAdjacentElement("afterend",this._dialog),f.registerDialog(this._dialog),this._dialog.className=this._modalClassName,this._dialog.showModal(),V(this._dialog,{behavior:"smooth",block:"end"}).catch(()=>this._dialog.scrollIntoView(!1)),c(this,this._dialog,"click",this.close),c(this,this._dialog,"cancel",this.close),c(this,this._dialog,"close",this.close)}close(){this._dialog&&(this._dialog.close(),this._dialog.remove(),this._dialog=null,V(this.el,{behavior:"smooth",block:"end"}).catch(()=>this.el.scrollIntoView(!1)))}}n(Se,"values",{src:String,srcSet:String,sizes:String}),n(Se,"classes",["modal","image"]);class St extends u{async play(e){e==null||e.preventDefault(),await this.mediaTarget.play()}pause(e){e==null||e.preventDefault(),this.mediaTarget.pause()}restart(e){e==null||e.preventDefault(),this.mediaTarget.currentTime=0}seek(e){e==null||e.preventDefault(),this.mediaTarget.currentTime+=5}}n(St,"targets",["media"]);class Vt extends u{get _increment(){return this.hasIncrementValue?this.incrementValue:50}get _behaviour(){if(this.hasBehaviourValue){if(["auto","smooth"].includes(this.behaviourValue))return this.behaviourValue;throw new Error(`'${this.behaviourValue}' is not a recognised scroll behaviour`)}else return"auto"}async scrollTop(e){e==null||e.preventDefault(),await ee(this.el,{behavior:this._behaviour})}async scrollBottom(e){e==null||e.preventDefault(),await te(this.el,{behavior:this._behaviour})}async scrollLeft(e){e==null||e.preventDefault(),await se(this.el,{behavior:this._behaviour})}async scrollRight(e){e==null||e.preventDefault(),await se(this.el,{behavior:this._behaviour})}async up(e){e==null||e.preventDefault(),await Pe(this.el,this._increment,{behavior:this._behaviour})}async down(e){e==null||e.preventDefault(),await $e(this.el,this._increment,{behavior:this._behaviour})}async left(e){e==null||e.preventDefault(),await ze(this.el,this._increment,{behavior:this._behaviour})}async right(e){e==null||e.preventDefault(),await Ue(this.el,this._increment,{behavior:this._behaviour})}}n(Vt,"values",{behaviour:String,increment:Number});class xt extends F{connect(){requestAnimationFrame(()=>{V(this.el,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>this.el.scrollIntoView()),this._cleanupSelf()})}}n(xt,"values",{behavior:String,block:String,inline:String});class kt extends u{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=R(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await te(this._scrollTarget)}}n(kt,"values",{mode:String});class Mt extends u{scroll(){let e=document.querySelector(this.selectorValue);if(!e){console.warn(`Could not find target for '${this.selectorValue}'`);return}V(e,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>e.scrollIntoView())}}n(Mt,"values",{selector:String,behavior:String,block:String,inline:String});class At extends u{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=R(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await ee(this._scrollTarget)}}n(At,"values",{mode:String});function Dt(t){t=t.trim();let e=t.includes("&&"),s=t.includes("||"),i=t.includes("(")||t.includes(")");if(e&&s)throw new Error("Cannot have both && and || in the same expression.");if(i)throw new Error("Cannot have logical groupings `(>3 && <= 9) || (>1 && <2)` in the expression. Only supports simple expressions like `>1 && <3`");let r=t.split(e?"&&":"||");return e?r.map(a=>Ve(a)):s?r.map(a=>Ve(a)):[Ve(t)]}function Ve(t){let s=[">=","<=","==","!=",">","<"].find(l=>t.includes(l));if(!s)throw new Error(`Could not find operator in expression: ${t}`);let i=t.split(s)[1].trim(),r=/^-?[0-9]\d*(\.\d+)?$/.test(i);if(i=r?parseFloat(i):i,i=="")throw new Error(`Could not find a value in expression: ${t}`);let a=l=>l!=="";switch(s){case">":return l=>r&&a(l)&&l>i;case"<":return l=>r&&a(l)&&l<i;case">=":return l=>r&&a(l)&&l>=i;case"<=":return l=>r&&a(l)&&l<=i;case"==":return l=>a(l)&&l==i;case"!=":return l=>a(l)&&l!=i;default:throw new Error(`Unknown operator ${s}`)}}function B(t,e){return`signal:${e}:${t}`}function xe(t){return B(t,"connect")}function ke(t){return B(t,"value")}class Lt extends u{get _predicates(){return Dt(this.whenValue)}connect(){M.emit(xe(this.nameValue)),W(this,ke(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(!this.hasWhenValue){this.dispatchEvent(this.el,B(this.nameValue,"match"));return}this._predicates.every(i=>i(s))?this.dispatchEvent(this.el,B(this.nameValue,"match"),{detail:{element:this.el,value:s}}):this.dispatchEvent(this.el,B(this.nameValue,"no-match"),{detail:{element:this.el,value:s}})}}n(Lt,"values",{name:String,when:String});class It extends u{get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:null}get _name(){return this.hasNameValue?this.nameValue:this.element.name}connect(){W(this,xe(this._name),()=>this.emitValue()),c(this,this.el,"input",this.emitValue,{debounce:this._debounceTimeout||void 0}),c(this,this.el,"change",this.emitValue),requestAnimationFrame(()=>this.emitValue())}emitValue(){var s;let e=this.el.value;if(_(this.el)&&this.el.type==="checkbox")e=this.el.checked?"true":"false";else if(_(this.el)&&this.el.type==="radio"){let i=(s=oe(this.el).find(r=>r.checked))==null?void 0:s.value;e=i||""}M.emit(ke(this._name),{element:this.el,value:e})}}n(It,"values",{name:String,debounceInterval:Number});class Me extends u{get _predicates(){return Dt(this.showValue)}get defaultHideClasses(){return["hide"]}connect(){y(this),M.emit(xe(this.nameValue)),W(this,ke(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(this.showValue=="default"){s==""?this.removeHideClasses(this.el):this.addHideClasses(this.el);return}this._predicates.every(i=>i(s))?this.removeHideClasses(this.el):this.addHideClasses(this.el)}}n(Me,"values",{name:String,show:String}),n(Me,"classes",["hide"]);class Nt extends u{constructor(){super(...arguments);n(this,"_lastIndex",null);n(this,"_reverse",!1)}get _tableHead(){let e=this.el.tHead;if(e==null)throw new Error("Expected table to have a <thead> element.");return e}get _tableHeaders(){let e=this._tableHead.rows;if(e.length==0)throw new Error("Expected table to have a <thead> element with at least one row.");return Array.from(e[0].cells)}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}connect(){requestAnimationFrame(()=>{x(this,this._tableHeaders,"click",this.sort),this.hasStartSortValue&&this._sortByColumn(this.startSortValue)})}sort(e){e.preventDefault();let s=e.target,i=this._indexOfHeaderCell(s);s.dataset.sortable!="false"&&(s.dataset.sort=="asc"?(this._reverse=!0,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="desc",this._sortByColumn(i)):(this._reverse=!1,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="asc",this._sortByColumn(i)))}_indexOfHeaderCell(e){return this._tableHeaders.indexOf(e)}_otherHeaderCells(e){return Array.from(this._tableHeaders).filter(s=>s!=e)}_sortByColumn(e){let s=document.createDocumentFragment();this._tableRows.sort((a,l)=>{var E,b;let h=Array.from(a.cells),o=Array.from(l.cells),d=((E=h[e])==null?void 0:E.innerText)||"",m=((b=o[e])==null?void 0:b.innerText)||"",g=d.localeCompare(m,"en",{sensitivity:"base",numeric:!0,caseFirst:"upper"});return a.dataset.sortTop||l.dataset.sortBottom?a.dataset.sortTop&&l.dataset.sortTop?g:-1:a.dataset.sortBottom||l.dataset.sortTop?a.dataset.sortBottom&&l.dataset.sortBottom?g:1:this._reverse?g>0?-1:1:g}).forEach(a=>s.appendChild(a)),this._tableBody.innerHTML="",this._tableBody.appendChild(s),this._lastIndex=e}}n(Nt,"values",{startSort:Number});function Ae(t,e,s,i){s=s.bind(t);let r=new MutationObserver(s),a=()=>r.observe(e,i),l=()=>r.disconnect();return v(t,a,l),l}class De extends u{get _truncated(){return this.hasTruncatedValue?this.truncatedValue:!1}set _truncated(e){this.truncatedValue=e}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}get _limit(){return this.hasLimitValue?this.limitValue:20}connect(){Ae(this,this._tableBody,this.mutate,{childList:!0}),requestAnimationFrame(()=>{this.truncate(),c(this,this.showMoreTarget,"click",this.expand)})}truncate(e){e==null||e.preventDefault(),this._truncated=!0,this._tableRows.length>=this._limit?(this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._hideElement(s)}),this._showElement(this.showMoreTarget)):this._hideElement(this.showMoreTarget)}expand(e){this._truncated=!1,e==null||e.preventDefault(),this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._showElement(s)}),this._hideElement(this.showMoreTarget)}mutate(e){this._truncated&&this._reTruncate()}_showElement(e){e.style.display=""}_hideElement(e){e.style.display="none"}_reTruncate(){this._tableRows.slice(0,this._limit).forEach(e=>{e!==this.showMoreTarget&&this._showElement(e)}),this._tableRows.slice(this._limit).forEach(e=>{e!==this.showMoreTarget&&this._hideElement(e)}),this._showElement(this.showMoreTarget)}}n(De,"targets",["showMore"]),n(De,"values",{limit:Number,truncated:Boolean});class Ht extends u{alert(){alert(this.messageValue)}}n(Ht,"values",{message:String});class Rs extends u{connect(){let{enter:e,exit:s,toggle:i}=rt(this);this.enter=e,this.exit=s,this.toggle=i}}function Ot(t,e,s,i={}){let r=Object.assign({},{bubbles:!0,cancelable:!0,detail:{target:e}},i);r.detail.target&&(r.detail.target=e);let a=new CustomEvent(s,r);ds(t,s,a,e),e.dispatchEvent(a)}class Bt extends u{get _threshold(){return this.hasThresholdValue?this.thresholdValue.split(",").map(e=>Number.parseFloat(e.trim())).filter(e=>e>=0&&e<=1):[0,1]}connect(){fe(this,this.el,this.appear,this.disappear,{threshold:this._threshold})}appear(e){Ot(this,this.el,"intersection:appear")}disappear(e){Ot(this,this.el,"intersection:disappear")}}n(Bt,"values",{threshold:String});class Ft extends u{connect(){if(!this.hasSecondsValue)throw new Error("Expected `secondsValue` to be present");requestAnimationFrame(()=>{N(this,this._interval,this.secondsValue*1e3)})}_interval(){this.dispatchEvent(this.el,"interval:action")}}n(Ft,"values",{seconds:Number});class Rt extends u{get name(){return this.hasNameValue?this.nameValue:""}get _addedEventName(){return[this.name,"presence","added"].filter(e=>!!e).join(":")}get _removedEventName(){return[this.name,"presence","removed"].filter(e=>!!e).join(":")}connect(){this.dispatchEvent(this.el,this._addedEventName)}disconnect(){this.dispatchEvent(this.el,this._removedEventName)}}n(Rt,"values",{name:String});class qt extends u{print(e){e==null||e.preventDefault(),window.print()}}class Pt extends u{connect(){requestAnimationFrame(()=>{k(this,this._timeout,this.secondsValue*1e3)})}_timeout(){this.dispatchEvent(this.el,"timeout")}}n(Pt,"values",{seconds:Number});class qs extends u{connect(){c(this,window,["focus","blur"],this._handleVisibility),c(this,document,"visibilitychange",this._handleVisibility),requestAnimationFrame(()=>{this._handleVisibility()})}appear(){this.dispatchEvent(this.el,"user-focus:active")}away(){this.dispatchEvent(this.el,"user-focus:away")}_handleVisibility(){this._documentIsActive()?this.appear():this.away()}_documentIsActive(){return document.visibilityState=="visible"&&document.hasFocus()}}class $t extends u{get _tickInterval(){return this.hasMillisecondsTarget?1:this.hasSecondsTarget?1e3:this.hasMinutesTarget?15e3:3e5}connect(){requestAnimationFrame(()=>{N(this,this._tick,this._tickInterval)})}_tick(){let e=new Date;this.hasHoursTarget&&(this.hoursTarget.innerHTML=e.getHours().toString().padStart(2,"0")),this.hasMinutesTarget&&(this.minutesTarget.innerHTML=e.getMinutes().toString().padStart(2,"0")),this.hasSecondsTarget&&(this.secondsTarget.innerHTML=e.getSeconds().toString().padStart(2,"0")),this.hasMillisecondsTarget&&(this.millisecondsTarget.innerHTML=e.getMilliseconds().toString().padStart(3,"0"))}}n($t,"targets",["hours","minutes","seconds","milliseconds"]);class J extends u{constructor(){super(...arguments);n(this,"_interval",null)}get _removeUnused(){return this.hasRemoveUnusedValue?this.removeUnusedValue:!1}get _deadlineDate(){return new Date(this.deadlineValue)}connect(){this._interval=setInterval(this._tick.bind(this),1e3),this.addCountingDownClasses()}disconnect(){this._clearTick(),this.removeCountingDownClasses(),this.removeEndedClasses()}deadlineValueChanged(){this._interval==null&&(this._interval=setInterval(this._tick.bind(this),1e3))}_tick(){try{const e=new Date;let s={};w.isPast(this._deadlineDate)?(s={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},this._clearTick(),this.removeCountingDownClasses(),this.addEndedClasses(),this.dispatchEvent(this.el,"countdown:ended")):s=w.intervalToDuration({start:this._deadlineDate,end:e}),this.hasYearsTarget&&this._updateTarget(this.yearsTarget,this._years(s)),this.hasMonthsTarget&&this._updateTarget(this.monthsTarget,this._months(s)),this.hasDaysTarget&&this._updateTarget(this.daysTarget,this._days(s)),this.hasHoursTarget&&this._updateTarget(this.hoursTarget,this._hours(s)),this.hasMinutesTarget&&this._updateTarget(this.minutesTarget,this._minutes(s)),this.hasSecondsTarget&&this._updateTarget(this.secondsTarget,this._seconds(s))}catch(e){console.error(e),this._clearTick()}}_clearTick(){this._interval&&(clearInterval(this._interval),this._interval=null)}_updateTarget(e,s){this._removeTargetIfUnused(e,s),e.innerHTML=s.toString()}_removeTargetIfUnused(e,s){this._removeUnused&&(s===0&&e.dataset.unused?Number.parseInt(e.dataset.unused)>Date.now()+1500&&e.remove():s==0?e.dataset.unused=Date.now().toString():e.dataset.unused=void 0)}_years(e){return e.years||0}_months(e){return e.months||0}_days(e){return e.days||0}_hours(e){return e.hours||0}_minutes(e){return e.minutes||0}_seconds(e){return e.seconds||0}}n(J,"values",{deadline:String,removeUnused:Boolean}),n(J,"targets",["years","months","days","hours","minutes","seconds"]),n(J,"classes",["countingDown","ended"]);class zt extends u{get _format(){return["years","months","weeks","days","hours",...this._minutes?["minutes"]:[],...this._seconds?["seconds"]:[]]}get _output(){let{years:e,months:s,weeks:i,days:r,hours:a,minutes:l,seconds:h}=this._duration;e||(e=0),s||(s=0),i||(i=0),r||(r=0),a||(a=0),l||(l=0),h||(h=0);let o=[e,s,i,r,a];return!this._minutes&&!this._seconds&&o.every(d=>d===0)?(l=l+h/60,`${(l/60).toFixed(1)} hours`):w.formatDuration(this._duration,{format:this._format,delimiter:", "})}get _seconds(){return this.hasSecondsValue?this.secondsValue:!0}get _minutes(){return this.hasMinutesValue?this.minutesValue:!0}get _timestamp(){if(this.hasTimestampValue)return w.toDate(this.timestampValue*1e3);throw new Error("Expected `timestampValue` to be present")}get _duration(){return w.intervalToDuration({start:new Date,end:this._timestamp})}get _tickInterval(){return this._seconds?1e3:this._minutes?15e3:12e4}connect(){this._clearInterval=N(this,this._update,this._tickInterval),this._update()}_update(){try{this.el.innerHTML=this._output}catch{this._clearInterval()}}}n(zt,"values",{timestamp:Number,minutes:Boolean,seconds:Boolean});class X extends u{get defaultHideClasses(){return["hide"]}get defaultActiveClasses(){return["is-active"]}get _currentTab(){return this.hasCurrentTabValue?this.currentTabValue:0}get _equalize(){return this.hasEqualizeValue?this.equalizeValue:!1}connect(){x(this,this.linkTargets,"click",this.switchTabs),this._equalize&&this._setMinHeight(),this.currentTabValue=this._currentTab}switchTabs(e){e.preventDefault(),this.currentTabValue=this.linkTargets.indexOf(e.currentTarget)}currentTabValueChanged(){let e=this._currentTab;e=this._clampIndex(e),this._selectTab(e)}_selectTab(e){e=this._clampIndex(e);let s=this.linkTargets,i=this.contentTargets,r=i[e],a=s[e],l=[...i.slice(0,e),...i.slice(e+1)],h=[...s.slice(0,e),...s.slice(e+1)];this.addActiveClasses(a),a.setAttribute("aria-selected","true"),this.addActiveClasses(r),this.removeHideClasses(r),h.forEach(o=>{o.removeAttribute("aria-selected"),this.removeActiveClasses(o)}),l.forEach(o=>{this.removeActiveClasses(o),this.addHideClasses(o)})}_clampIndex(e){return p.clamp(e,0,this.contentTargets.length-1)}_setMinHeight(){let e=0;this.contentTargets.forEach(s=>{let i=s.hasAttribute("tab-hidden");i&&this.removeHideClasses(s);let r=s.offsetHeight;r>e&&(e=r),i&&this.addHideClasses(s)}),this.contentTargets.forEach(s=>s.style.minHeight=e+"px")}}n(X,"values",{currentTab:Number,equalize:Boolean}),n(X,"targets",["link","content"]),n(X,"classes",["active","hide"]);class Ut extends u{get _duration(){return w.isPast(this._timestamp)?w.intervalToDuration({start:this._timestamp,end:new Date}):w.intervalToDuration({start:new Date,end:this._timestamp})}get _nextUpdate(){let e=this._duration;return e.years&&e.years>0||e.months&&e.months>0||e.days&&e.days>0?null:e.hours&&e.hours>0?18e5:3e4}timestampValueChanged(){this._timestamp=w.toDate(this.timestampValue*1e3)}connect(){if(!this.hasTimestampValue)throw new Error("Expected `timestampValue` to be present");this._update()}_update(){this.el.innerHTML=w.formatDistanceToNow(this._timestamp,{addSuffix:!0,includeSeconds:!0}),this._nextUpdate&&k(this,this._update,this._nextUpdate)}}n(Ut,"values",{timestamp:Number});class jt extends u{get defaultActiveClasses(){return["active"]}get defaultCollapsedClasses(){return["collapsed"]}initialize(){this._nodeClicked=this._nodeClicked.bind(this)}connect(){y(this),Ae(this,this.el,this.mutate,{subtree:!0,childList:!0}),this._setup()}disconnect(){this._teardown()}_setup(){this._setupNode(this.el)}_setupNode(e){const s=i=>{let r=i.parentElement;r&&(this._nodeActive(r)||this._hideNode(r),r.removeEventListener("click",this._nodeClicked),r.addEventListener("click",this._nodeClicked))};(e.tagName==="UL"||e.tagName==="OL")&&s(e),e.querySelectorAll("ul, ol").forEach(i=>s(i))}_teardown(){this.el.querySelectorAll("ul, ol, li").forEach(e=>this._teardownNode(e))}_teardownNode(e){[e,...Array.from(e.querySelectorAll("ul, ol, li"))].forEach(s=>{s.removeEventListener("click",this._nodeClicked),this.removeActiveClasses(s),this.removeCollapsedClasses(s)})}_nodeClicked(e){e&&e.stopImmediatePropagation();let s=e.target;!s||!this._hasNested(s)||(this._nodeActive(s)?this._hideNode(s):this._showNode(s))}_nodeActive(e){return this.activeClassesPresent(e)}_showNode(e){this.removeCollapsedClasses(e),this.addActiveClasses(e)}_hideNode(e){this.removeActiveClasses(e),this.addCollapsedClasses(e)}_hasNested(e){return e.querySelectorAll("ul, ol").length>0}mutate(e){for(const s of e)s.type==="childList"&&(Array.from(s.addedNodes||[]).forEach(i=>this._setupNode(i)),Array.from(s.removedNodes||[]).forEach(i=>this._teardownNode(i)))}}n(jt,"classes",["active","collapsed"]);class Le extends u{get defaultActiveClasses(){return["active"]}get defaultInactiveClasses(){return["inactive"]}get _key(){return this.keyValue.replaceAll("#","")}get _anchor(){return window.location.hash.substr(1)}set _anchor(e){window.location.hash=e}connect(){y(this),requestAnimationFrame(()=>{this._checkAnchor(),c(this,window,"hashchange",this._checkAnchor)})}write(e){e==null||e.preventDefault(),this._anchor=this._key}_checkAnchor(){this._key===this._anchor?(this.dispatchEvent(this.el,"anchor-spy:active"),this.addActiveClasses(this.el),this.removeInactiveClasses(this.el)):(this.dispatchEvent(this.el,"anchor-spy:inactive"),this.addInactiveClasses(this.el),this.removeActiveClasses(this.el))}}n(Le,"values",{key:String}),n(Le,"classes",["active","inactive"]);class Wt extends u{get _pages(){return this.hasPagesValue?Math.abs(this.pagesValue):1}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1500}connect(){c(this,this.el,"click",this.goBack)}goBack(e){e==null||e.preventDefault(),history.go(-this._pages),this.el.href&&k(this,this.fallback,this._timeout)}fallback(){window.location.href=this.el.href}}n(Wt,"values",{timeout:Number,pages:Number});class Ie extends u{constructor(){super(...arguments);n(this,"_supported",!1)}connect(){this._supported=document.queryCommandSupported("copy"),this.hasRemoveUnusedValue&&this.removeUnusedValue&&(this._supported&&this.hasFallbackTarget?this.fallbackTarget.remove():this.hasCopyTarget&&this.copyTarget.remove())}select(e){e&&e.preventDefault(),this.sourceTarget.select()}copy(e){e&&e.preventDefault(),this.sourceTarget.select(),this._supported&&document.execCommand("copy")}}n(Ie,"targets",["source","button","copy","fallback"]),n(Ie,"values",{removeUnused:Boolean});class Kt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Are you sure?"}get _eventType(){if(ae(this.el))return"submit";if(re(this.el))return"click";throw new Error("Can't handle confirmation on attached element")}connect(){requestAnimationFrame(()=>{c(this,this.el,this._eventType,this.confirm)})}confirm(e){window.confirm(this._message)||(e.preventDefault(),this.dispatchEvent(this.el,"confirm:cancelled"))}}n(Kt,"values",{message:String});class Gt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Do you want to leave this page? Changes you made may not be saved"}connect(){window.onbeforeunload=()=>this._message,c(this,window,"popstate",this.confirmNavigation),c(this,window,"submit",this.allowSubmit),c(this,window,["turbolinks:before-visit","turbo:before-visit"],this.confirmTurboNavigation)}disconnect(){window.onbeforeunload=null}allowSubmit(e){window.removeEventListener("popstate",this.confirmNavigation),window.onbeforeunload=null}confirmNavigation(e){return!1}confirmTurboNavigation(e){confirm(this._message)||e.preventDefault()}}n(Gt,"values",{message:String});class Jt extends u{connect(){console.log("Debug Controller",this,this.testTargets)}}n(Jt,"targets",["test"]);class Xt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Submitting..."}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1e3}connect(){requestAnimationFrame(()=>{c(this,this.el,["click"],this.disable),c(this,window,["turbo:load","turbolinks:load"],this._enable)})}disable(e){let s=this.el;this._isDisabled(s)?(e==null||e.preventDefault(),e==null||e.stopImmediatePropagation()):(this._disable(),ot(this,s,this._message,this._timeout,this._enable))}enable(e){e==null||e.preventDefault();let s=this.el;this._isDisabled(s)&&this._enable()}_isDisabled(e){return P(e)?e.disabled:e.dataset.disabled=="true"}_disable(){let e=this.el;P(e)?e.disabled=!0:e.dataset.disabled="true"}_enable(){let e=this.el;P(e)?e.disabled=!1:e.dataset.disabled=void 0}}n(Xt,"values",{message:String,timeout:Number});class Yt extends u{dismiss(){this.el.remove()}}class Ps extends Yt{}class Ne extends u{get _id(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this element. Please either specify data-${this.identifier}-id-value or give this element an 'id' attribute. `)}get _uniqueIdentifier(){return`${location.href} ${this._id}`}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _element(){return this.hasElementTarget?this.elementTarget:this.el}initialize(){this.save=p.debounce(this.save.bind(this),300)}connect(){this._store=lt(this,this._uniqueIdentifier,{}),requestAnimationFrame(()=>{this._restoreOnLoad&&this.restore()})}clear(e){e&&e.preventDefault(),this._store.clear(),this.dispatchEvent(this._element,"element-save:cleared")}save(e){e&&e.preventDefault();let s=this._element,i=this.attributesValue.split(" "),r={};i.forEach(a=>r[a]=p.get(s,a)),this._store.value=r,this.dispatchEvent(s,"element-save:save:success")}restore(e){e&&e.preventDefault();let s=this._element;if(this._store.isEmpty())this.dispatchEvent(s,"element-save:restore:empty");else{const i=this._store.value;Object.keys(i).forEach(r=>p.set(s,r,i[r])),this.dispatchEvent(s,"element-save:restore:success")}}}n(Ne,"targets",["element"]),n(Ne,"values",{id:String,attributes:String,restoreOnLoad:Boolean});class Y extends u{get _container(){return this.hasContainerTarget?this.containerTarget:this.el}get _children(){let e=this._container;return this.hasScopeSelectorValue?Array.from(e.querySelectorAll(this.scopeSelectorValue)):Array.from(e.children)}connect(){y(this),Ae(this,this._container,this.mutate,{childList:!0}),this.checkEmpty()}mutate(e){this.checkEmpty()}checkEmpty(){let e=this._container,s=this._children;s.length===0?(this.removeNotEmptyClasses(),this.addEmptyClasses(),this.dispatchEvent(e,"dom:empty")):(this.addNotEmptyClasses(),this.removeEmptyClasses(),this.dispatchEvent(e,"dom:not-empty",{detail:{count:s.length}}))}}n(Y,"targets",["container"]),n(Y,"classes",["empty","notEmpty"]),n(Y,"values",{scopeSelector:String});class Zt extends u{get _mode(){return this.hasModeValue?this.modeValue:"mouseover"}get _supportsPrefetch(){var s,i;const e=document.createElement("link");return((s=e.relList)==null?void 0:s.supports)&&((i=e.relList)==null?void 0:i.supports("prefetch"))}get _href(){return this.el.href}get _existingPrefetch(){return(document.head.querySelectorAll(`link[rel="prefetch"][href="${this._href}"]`)||[]).length>0}get _connectionSuitable(){const e=navigator.connection;if(!e)return!0;if(e){if(e.saveData)return Re(this,"Data Saving is enabled"),!1;if(/2g/.test(e.effectiveType))return Re(this,"Network is too slow"),!1}return!0}connect(){if(!!this._supportsPrefetch)switch(this._mode){case"intersect":this._setupObserver();break;case"mouseover":c(this,this.el,"mouseover",this.prefetch,{once:!0});break;default:throw new Error(`'${this._mode}' is not a supported prefetch mode`)}}_setupObserver(){new IntersectionObserver(([s],i)=>{s.isIntersecting&&(this.prefetch(),i.unobserve(s.target))}).observe(this.element)}prefetch(){if(this._existingPrefetch||!this._connectionSuitable)return;const e=document.createElement("link");Object.assign(e,{rel:"prefetch",href:this._href,as:"document"}),document.head.appendChild(e)}}n(Zt,"values",{mode:String});class Qt extends qt{get defaultUnsupportedClasses(){return["unsupported"]}connect(){y(this),"print"in window||this.addUnsupportedClasses(),c(this,this.el,"click",this.print)}}n(Qt,"classes",["unsupported"]);class $s extends u{connect(){c(this,window,"message",this.messageReceived)}messageReceived(e){let s=e.data;s.hasOwnProperty("name")&&s.name==="iframe-body"&&s.hasOwnProperty("height")&&this.resize(s.height)}resize(e){this.el.style.height=`${e}px`}}class zs extends u{connect(){window.self!==window.top&&(c(this,window,"resize",this.postUpdate,{debounce:200}),this.postUpdate())}postUpdate(){let e={name:"iframe-body",height:this.getHeight()};window.parent.postMessage(e,"*")}getHeight(){const e=document.body,s=document.documentElement;return Math.max(e.scrollHeight,e.offsetHeight,s.clientHeight,s.scrollHeight,s.offsetHeight)}}class es extends u{connect(){requestAnimationFrame(()=>{k(this,()=>this.el.remove(),this.secondsValue*1e3)})}}n(es,"values",{seconds:Number});class He extends u{constructor(){super(...arguments);n(this,"_magicElement",null)}get defaultStuckClasses(){return["stuck"]}get _mode(){if(this.hasModeValue){if(!["top","bottom"].includes(this.modeValue))throw new Error(`The modeValue provided '${this.modeValue}' is not one of the recognised configuration options`);if(this.modeValue==="top")return"beforebegin"}return"afterend"}connect(){this._magicElement=document.createElement("div"),at(this,this.el,this._mode,this._magicElement),new IntersectionObserver(s=>{s.forEach(i=>{i.target===this._magicElement&&(i.intersectionRatio===0?this.addStuckClasses():i.intersectionRatio===1&&this.removeStuckClasses())})},{threshold:[0,1]}).observe(this._magicElement)}}n(He,"classes",["stuck"]),n(He,"values",{mode:String});class ts extends F{connect(){if(!this.hasInsertValue)throw new Error("`insert` value was not specified");requestAnimationFrame(()=>{this.hasImmediateValue&&this.immediateValue&&this.execute()})}execute(e){e==null||e.preventDefault();let s=this.el,i=document.querySelector(this.targetValue);if(i==null){this.dispatchEvent(s,"teleport:error");return}let r=s.cloneNode(!0);switch(this.cleanup(r),this.insertValue){case"beforebegin":case"beforeend":case"afterend":case"afterbegin":i.insertAdjacentHTML(this.insertValue,r.outerHTML);break;case"replaceOuter":i.outerHTML=r.outerHTML;break;case"replaceInner":i.innerHTML=r.outerHTML;break;case"prepend":i.insertAdjacentHTML("afterbegin",r.outerHTML);break;case"append":i.insertAdjacentHTML("beforeend",r.outerHTML);break;default:throw new Error("`insert` value was not specified")}s.remove()}}n(ts,"values",{target:String,insert:String,immediate:Boolean});class ss extends F{constructor(){super(...arguments);n(this,"_previousState",{})}get _value(){if(this.hasValueValue)return this.valueValue;throw new Error("Expected `valueValue` to be present")}get _attribute(){if(this.hasAttributeValue)return this.attributeValue;throw new Error("Expected `attributeValue` to be present")}get _seconds(){if(this.hasSecondsValue)return this.secondsValue*1e3;throw new Error("Expected `secondsValue` to be present")}connect(){this.setState(),k(this,this.removeState,this._seconds)}disconnect(){this.removeState()}setState(){this._previousState[this._attribute]=p.get(this.el,this._attribute),p.set(this.el,this._attribute,this.valueValue)}removeState(){p.set(this.el,this._attribute,this._previousState[this._attribute])}}n(ss,"values",{attribute:String,seconds:Number,value:String});function is(t,e,s,i,r="temporary-state"){var a;(!t.dataset.controller||!((a=t.dataset.controller)==null?void 0:a.includes(r)))&&(t.dataset.controller=(t.dataset.controller||` ${r} `).trim().replaceAll(" "," ")),t[p.camelCase(`${r}-attribute-value`)]=e,t[p.camelCase(`${r}-seconds-value`)]=i.toString()}function Us(t,e,s){is(t,"className",e,s)}function js(t,e,s){s=s.bind(t);const i=a=>{e.contains(a.target)||!tt(e)||s(a)};let{teardown:r}=c(t,window,["click","touchend"],i);return v(t,()=>{},r),{teardown:r}}function Ws(t,e,s,i){let r=null,a=null;if(s){s=s.bind(t);let{teardown:o}=c(t,e,"mouseenter",s);r=o}if(i){i=i.bind(t);let{teardown:o}=c(t,e,"mouseleave",i);a=o}let l=()=>{},h=()=>{r&&r(),a&&a()};return v(t,l,h),{teardown:h}}class Oe extends u{connect(){if(!this.hasClassValue)throw new Error("data-toggle-class-class-value must not be empty");(this.hasMouseEnterValue||this.hasMouseLeaveValue)&&Ws(this,this.el,this.mouseEnter,this.mouseLeave),this.hasClickAwayValue&&this.clickAwayValue&&js(this,this.el,this.clickOutside),requestAnimationFrame(()=>{this.hasInitialValue&&(this.initialValue==="on"?this.toggleTargets.forEach(e=>this._elementOn(e)):this.toggleTargets.forEach(e=>this._elementOff(e)))})}clickOutside(){this.toggleTargets.forEach(e=>{this._elementWasToggled(e)&&(this._elementToggleStatus(e),this._elementToggle(e))})}mouseEnter(){if(this.hasMouseEnterValue)switch(this.mouseEnterValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}mouseLeave(){if(this.hasMouseLeaveValue)switch(this.mouseLeaveValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}on(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOn(s)})}off(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOff(s)})}toggle(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementToggle(s)})}_elementWasToggled(e){return e.dataset.toggled=="true"}_elementToggleStatus(e){this._elementWasToggled(e)?delete e.dataset.toggled:e.dataset.toggled="true"}_elementToggle(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i))}_elementOn(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!0))}_elementOff(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!1))}}n(Oe,"targets",["toggle"]),n(Oe,"values",{class:String,mouseEnter:String,mouseLeave:String,clickAway:Boolean,initial:String});function Ks(t){const e=t.disconnect.bind(t);let s=!1,i=(o,d)=>{o.forEach(m=>{m.type==="childList"&&Array.from(m.addedNodes).some(g=>g.tagName==="TRIX-TOOLBAR")&&(l(),d.disconnect())})},r=o=>H(t,"pasteEvent").call(t,o),a=new MutationObserver(i),l=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let o=t.element,d=t.element.parentElement;if(d==null)throw new Error("Could not traverse DOM tree from <trix-editor>");o.addEventListener("trix-paste",r);let m=d.querySelector("trix-toolbar");if(!s&&!m){s=!0,a.observe(d,{childList:!0});return}else if(m)a.disconnect();else throw new Error("Could not find an instance of <trix-toolbar> that is a sibling of this <trix-editor>");H(t,"install").call(t,{toolbar:m,editor:o})},h=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let o=t.element,d=t.element.parentElement;if(d==null)throw new Error("Could not traverse DOM tree from <trix-editor>");o.removeEventListener("trix-paste",r);let m=d.querySelector("trix-toolbar");if(!m)throw new Error("Could not find <trix-toolbar> that is a sibling of this <trix-editor> element");H(t,"uninstall").call(t,{toolbar:m,editor:o})};l(),Object.assign(t,{disconnect(){a.disconnect(),h(),H(t,"uninstall").call({toolbar,editor:t.element}),e()}})}class Gs extends u{get enabledBehaviours(){let e=i=>i!==void 0&&i!=="false",s=(i,r)=>e(i)?[r]:[];return[...s(this.el.dataset.noBold,this.bold),...s(this.el.dataset.noBulletList,this.bulletList),...s(this.el.dataset.noCode,this.code),...s(this.el.dataset.noHeading,this.heading),...s(this.el.dataset.noItalic,this.italic),...s(this.el.dataset.noStrikethrough,this.strikethrough),...s(this.el.dataset.noLink,this.link),...s(this.el.dataset.noIndents,this.indents),...s(this.el.dataset.noNumberList,this.numberList),...s(this.el.dataset.noQuote,this.quote),...s(this.el.dataset.noFileUploads,this.fileUploads)]}get bold(){return this.formattingHandlers(".trix-button--icon-bold","bold")}get bulletList(){return this.formattingHandlers(".trix-button--icon-bullet-list","bullet-list")}get code(){return this.formattingHandlers(".trix-button--icon-code","code")}get heading(){return this.formattingHandlers(".trix-button--icon-heading-1","heading")}get italic(){return this.formattingHandlers(".trix-button--icon-italic","italic")}get strikethrough(){return this.formattingHandlers(".trix-button--icon-strike","strike")}get link(){return this.formattingHandlers(".trix-button--icon-link","href")}get indents(){return this.simpleHideShowHandlers([".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level",".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level"].join(", "))}get numberList(){return this.simpleHideShowHandlers(".trix-button--icon-number-list")}get quote(){return this.simpleHideShowHandlers(".trix-button--icon-quote")}get fileUploads(){let e=".trix-button-group.trix-button-group--file-tools",s=a=>a==null?void 0:a.preventDefault(),i=this,r=this.el;return{install(a){i.simpleHideShowHandlers(e).install(a),i.el.addEventListener("trix-file-accept",s)},pasteEvent(a){let{dataTransfer:l,html:h}=a.paste,{editor:o}=r;(l.files.length>0||h.includes("<img"))&&(alert("The content you pasted contains images and/or files. File uploads are not supported."),o.undo())},uninstall(a){i.simpleHideShowHandlers(e).uninstall(a),i.el.removeEventListener("trix-file-accept",s)}}}connect(){Ks(this)}install(e){this.enabledBehaviours.forEach(s=>s.install(e))}pasteEvent(e){this.enabledBehaviours.forEach(s=>s.pasteEvent&&s.pasteEvent(e))}uninstall(e){this.enabledBehaviours.forEach(s=>s.uninstall(e))}simpleHideShowHandlers(e){return{install:({toolbar:s})=>this.hideToolbarSelector(s,e),uninstall:({toolbar:s})=>this.showToolbarSelector(s,e)}}formattingHandlers(e,s){let i=this.el,{editor:r}=i;return{install:a=>{this.simpleHideShowHandlers(e).install(a)},pasteEvent(a){let{range:l}=a.paste,h=i.editor.getSelectedRange();r.setSelectedRange(l),r.deactivateAttribute(s),r.setSelectedRange(h)},uninstall:a=>{this.simpleHideShowHandlers(e).uninstall(a)}}}showToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="")}hideToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="none")}}class rs extends u{toggle(e){e==null||e.preventDefault();let i=this._getFrame().src;i==null||i!==this._getSrc()?this._setSrc():this._clear()}setSrc(e){e==null||e.preventDefault(),this._setSrc()}clear(e){e==null||e.preventDefault(),this._clear()}_setSrc(){let e=this._getFrame();this.hasLoadingMessageValue&&(e.innerHTML=this.loadingMessageValue),e.src=this._getSrc()}_clear(){let e=this._getFrame();e.src="",e.innerHTML=""}_getFrame(){let e=document.getElementById(`${this.frameIdValue}`);if(e==null)throw new Error(`Could not find frame with ID '${this.frameIdValue}'`);if(ie(e))return e;throw new Error(`Element targeted by ID '${this.frameIdValue}'`)}_getSrc(){let e=this.el;if(this.hasSrcValue)return this.srcValue;if(re(e))return e.href;throw new Error("No link given to drive frame to")}}n(rs,"values",{frameId:String,src:String,loadingMessage:String});class as extends u{get _poll(){return this.hasPollValue?this.pollValue:!1}connect(){let e=this.el;if(ie(e)){if(e.src)throw new Error("The provided <turbo-frame> element has no `src` attribute.")}else throw new Error("Expected controller to be mounted on a <turbo-frame> element.");this._poll&&requestAnimationFrame(()=>k(this,this.refresh,this.intervalValue))}refresh(e){e==null||e.preventDefault();let s=this.el;s.src=s.src}}n(as,"values",{interval:Number,poll:Boolean});exports.AlertController=Ht;exports.AnchorSpyController=Le;exports.AsyncBlockController=de;exports.AutoSubmitFormController=ht;exports.AutosizeController=xs;exports.BackLinkController=Wt;exports.BaseController=u;exports.CharCountController=U;exports.CheckboxDisableInputsController=ge;exports.CheckboxEnableInputsController=pe;exports.CheckboxSelectAllController=ct;exports.CheckboxXORController=dt;exports.ClipboardController=Ie;exports.ClockController=$t;exports.ConfirmController=Kt;exports.ConfirmNavigationController=Gt;exports.CountdownController=J;exports.DebugController=Jt;exports.DetectDirtyController=Ms;exports.DetectDirtyFormController=Ds;exports.DisableWithController=Xt;exports.DismissableController=Yt;exports.DurationController=zt;exports.ElementSaveController=Ne;exports.EmptyDomController=Y;exports.EnableInputsController=_e;exports.EphemeralController=F;exports.EventBus=M;exports.FallbackImageController=Te;exports.FocusStealController=mt;exports.FormRcController=be;exports.FormSaveController=gt;exports.FullscreenController=Rs;exports.IntersectionController=Bt;exports.IntervalController=Ft;exports.LazyBlockController=Vs;exports.LightboxImageController=Se;exports.LimitedSelectionCheckboxesController=ve;exports.LoadBlockController=D;exports.MediaPlayerController=St;exports.NavigateFormErrorsController=j;exports.NestedFormController=we;exports.PasswordConfirmController=ye;exports.PasswordPeekController=pt;exports.PollBlockController=me;exports.PrefetchController=Zt;exports.PresenceController=Rt;exports.PrintButtonController=Qt;exports.PrintController=qt;exports.RemoteFormController=Ee;exports.RemoveController=Ps;exports.ResponsiveIframeBodyController=zs;exports.ResponsiveIframeWrapperController=$s;exports.ScrollContainerController=Vt;exports.ScrollIntoFocusController=xt;exports.ScrollToBottomController=kt;exports.ScrollToController=Mt;exports.ScrollToTopController=At;exports.SelfDestructController=es;exports.SignalActionController=Lt;exports.SignalInputController=It;exports.SignalVisibilityController=Me;exports.StickyController=He;exports.StorageSerializers=nt;exports.SyncInputsController=_t;exports.TableSortController=Nt;exports.TableTruncateController=De;exports.TabsController=X;exports.TeleportController=ts;exports.TemporaryStateController=ss;exports.TimeDistanceController=Ut;exports.TimeoutController=Pt;exports.ToggleClassController=Oe;exports.TreeViewController=jt;exports.TrixModifierController=Gs;exports.TurboFrameRCController=rs;exports.TurboFrameRefreshController=as;exports.UserFocusController=qs;exports.ValueWarnController=K;exports.WordCountController=G;exports.applyTemporaryClass=Us;exports.applyTemporaryState=is;exports.createHiddenButton=Qe;exports.createHiddenInput=et;exports.getAllRadiosInGroup=oe;exports.getOtherRadiosInGroup=ue;exports.getScrollParent=R;exports.insertElement=ne;exports.insertHiddenButton=le;exports.insertHiddenInput=ws;exports.isDirty=As;exports.isElementCheckable=S;exports.isElementInViewport=tt;exports.isFormDirty=ft;exports.isHTMLAnchorElement=re;exports.isHTMLButtonButtonElement=Ke;exports.isHTMLButtonElement=_s;exports.isHTMLButtonInputElement=vs;exports.isHTMLFormElement=ae;exports.isHTMLImageElement=bs;exports.isHTMLInputElement=_;exports.isHTMLLabelElement=ps;exports.isHTMLLinkElement=gs;exports.isHTMLResetButtonElement=Je;exports.isHTMLResetInputElement=We;exports.isHTMLSelectElement=A;exports.isHTMLSubmitButtonElement=Ge;exports.isHTMLSubmitInputElement=je;exports.isHTMLTextAreaElement=q;exports.isTurboFrame=ie;exports.isTypeOfButtonableElement=P;exports.isTypeOfFormInputElement=Ze;exports.isTypeOfResetButtonElement=Xe;exports.isTypeOfSubmitButtonElement=Ye;exports.requestReset=st;exports.requestSubmit=he;exports.scrollAbsoluteBottom=te;exports.scrollAbsoluteLeft=se;exports.scrollAbsoluteRight=fs;exports.scrollAbsoluteTop=ee;exports.scrollDown=$e;exports.scrollLeft=ze;exports.scrollRight=Ue;exports.scrollToElement=V;exports.scrollUp=Pe;exports.useCollectionEventListener=x;exports.useCollectionEventListeners=Es;exports.useEventListener=c;exports.useEventListeners=ys;exports.useFullscreen=rt;exports.useGeolocation=Ts;exports.useInjectedElement=at;exports.useInjectedFragment=ce;exports.useInjectedHTML=Cs;exports.useInterval=N;exports.useLocalStorage=lt;exports.useTemporaryContent=ot;exports.useTimeout=k;
|
|
1
|
+
"use strict";var ns=Object.defineProperty;var Fe=Object.getOwnPropertySymbols;var ls=Object.prototype.hasOwnProperty,os=Object.prototype.propertyIsEnumerable;var Z=(t,e,s)=>e in t?ns(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Q=(t,e)=>{for(var s in e||(e={}))ls.call(e,s)&&Z(t,s,e[s]);if(Fe)for(var s of Fe(e))os.call(e,s)&&Z(t,s,e[s]);return t};var n=(t,e,s)=>(Z(t,typeof e!="symbol"?e+"":e,s),s);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var us=require("stimulus"),p=require("lodash-es"),w=require("date-fns");function hs(t){if(t&&t.__esModule)return t;var e={__proto__:null,[Symbol.toStringTag]:"Module"};return t&&Object.keys(t).forEach(function(s){if(s!=="default"){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}}),e.default=t,Object.freeze(e)}function cs(t){switch(t){case"application":case"el":case"element":case"constructor":case"initialize":case"log":case"logEvent":case"dispatch":case"data":case"valueDescriptorMap":case"mutate":case"identifier":return!1}return!(/^_.*?$/.test(t)||/^.*?Target(s)?$/.test(t)||/^.*?Value$/.test(t)||/^.*?ValueChanged$/.test(t)||/^.*?Class$/.test(t)||/^.*?Classes$/.test(t)||/^.*?ClassesPresent$/.test(t))}function Re(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(`%c${t.identifier} %c#${e}`,"color: #3B82F6","color: unset"),i.log(Q({element:t.element,controller:t},s)),i.groupEnd()}function qe(t,e,s={}){if(!t.application.debug)return;let i=console;i.groupCollapsed(`%c${t.identifier} %c#${e}`,"color: F39B1AFF","color: unset"),i.warn(Q({element:t.element,controller:t},s)),i.groupEnd()}function ds(t,e,s,i){if(!t.application.debug)return;let r=console;r.groupCollapsed(`%c${t.identifier} %c${e}%c`,"color: #3B82F6","color: #0be000","color: unset"),r.log({element:i}),r.groupEnd()}function ee(t,e,s,i={}){let r=Object.assign({},{bubbles:!0,cancelable:!0,detail:{target:e}},i);r.detail.target&&(r.detail.target=e);let a=new CustomEvent(s,r);ds(t,s,a,e),e.dispatchEvent(a)}class u extends us.Controller{constructor(e){super(e);return this.application.debug?new Proxy(this,{get:(s,i)=>{let r=Reflect.get(s,i),a=this;if(cs(i.toString())){if(typeof r=="function")return new Proxy(r,{apply(l,h,o){return Re(a,i.toString(),{args:o}),Reflect.apply(l,h,o)}});Re(this,i.toString())}return r}}):this}get el(){return this.element}get isTurboPreview(){return document.documentElement.hasAttribute("data-turbo-preview")||document.documentElement.hasAttribute("data-turbolinks-preview")}get isTurbolinksPreview(){return this.isTurboPreview}get csrfToken(){return this.metaValue("csrf-token")}metaValue(e){const s=document.head.querySelector(`meta[name="${e}"]`);return(s==null?void 0:s.getAttribute("content"))||null}dispatchEvent(e,s,i={}){ee(this,e,s,i)}}class F extends u{_cleanupSelf(){this.cleanup(this.el)}cleanup(e){var a,l,h;e.dataset.controller=((a=e.dataset.controller)==null?void 0:a.replaceAll(new RegExp(`(\\s|^)${this.identifier}(\\s|$)`,"g"),""))||"",e.dataset.controller==""&&delete e.dataset.controller;let s=new RegExp(`(\\s|^)${this.identifier}\\..+?(\\s|$)`,"g");e.dataset.target=((l=e.dataset.target)==null?void 0:l.replaceAll(s,""))||"",delete e.dataset[p.camelCase(`${this.identifier}-target`)],e.dataset.target==""&&delete e.dataset.target,e.dataset.action=((h=e.dataset.target)==null?void 0:h.replaceAll(s,""))||"",delete e.dataset[p.camelCase(`${this.identifier}-action`)],e.dataset.action==""&&delete e.dataset.action;let i=this.constructor.values;i&&Object.keys(i).forEach(o=>delete e.dataset[p.camelCase(`${this.identifier}-${o}-value`)]);let r=this.constructor.classes;r&&Object.keys(r).forEach(o=>delete e.dataset[p.camelCase(`${this.identifier}-${o}-class`)])}}const T="scrollBehavior"in document.documentElement.style;let Pe;async function V(t,{behavior:e="smooth",block:s="start",inline:i="nearest"}={}){e=="smooth"&&!T&&await C(),t.scrollIntoView({behavior:e,block:s,inline:i})}async function te(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t.scrollTo({top:0,left:0,behavior:e})}async function se(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t==window?t.scrollTo({top:document.body.scrollHeight,left:0,behavior:e}):t.scrollTo({top:t.scrollHeight,left:0,behavior:e})}async function ie(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t.scrollTo({left:0,behavior:e})}async function fs(t,{behavior:e="smooth"}={}){e=="smooth"&&!T&&await C(),t==window?t.scrollTo({left:document.body.scrollWidth,behavior:e}):t.scrollTo({left:t.scrollWidth,behavior:e})}async function $e(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:-e,left:0,behavior:s})}async function ze(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:e,left:0,behavior:s})}async function Ue(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:0,left:-e,behavior:s})}async function je(t,e,{behavior:s="smooth"}={}){s=="smooth"&&!T&&await C(),t.scrollBy({top:0,left:e,behavior:s})}async function C(){const{polyfill:t}=await Promise.resolve().then(function(){return hs(require("smoothscroll-polyfill"))});Pe||(Pe=!0,t())}function R(t){if(!t)return null;if(t==document.body)return window;const e=getComputedStyle(t).overflowY;return e!=="visible"&&e!=="hidden"&&t.scrollHeight>=t.clientHeight?t:R(t.parentElement)||document.body}function re(t){return t.nodeName=="TURBO-FRAME"}function ms(t){return{all:t=t||new Map,on:function(e,s){var i=t.get(e);i?i.push(s):t.set(e,[s])},off:function(e,s){var i=t.get(e);i&&(s?i.splice(i.indexOf(s)>>>0,1):t.set(e,[]))},emit:function(e,s){var i=t.get(e);i&&i.slice().map(function(r){r(s)}),(i=t.get("*"))&&i.slice().map(function(r){r(e,s)})}}}const M=ms();function gs(t){return t.nodeName=="LINK"}function ae(t){return t.nodeName=="A"}function ne(t){return t.nodeName=="FORM"}function _(t){return t.nodeName=="INPUT"}function ps(t){return t.nodeName=="LABEL"}function q(t){return t.nodeName=="TEXTAREA"}function _s(t){return t.nodeName=="BUTTON"}function A(t){return t.nodeName=="SELECT"}function bs(t){return t.nodeName=="IMG"}function vs(t){return t.nodeName=="INPUT"&&t.type=="button"}function We(t){return t.nodeName=="INPUT"&&t.type=="submit"}function Ke(t){return t.nodeName=="INPUT"&&t.type=="reset"}function Ge(t){return t.nodeName=="BUTTON"&&t.type=="button"}function Je(t){return t.nodeName=="BUTTON"&&t.type=="submit"}function Xe(t){return t.nodeName=="BUTTON"&&t.type=="reset"}function Ye(t){return Xe(t)||Ke(t)}function Ze(t){return Je(t)||We(t)}function P(t){return Ye(t)||Ze(t)||Ge(t)}function S(t){return _(t)&&(t.type==="radio"||t.type==="checkbox")}function Qe(t){return _(t)||A(t)||q(t)}function et(t){let e=document.createElement("button");return e.type=t,e.style.display="none",e.dataset.sythentic="true",e}function tt(t,e){let s=document.createElement("input");return s.type="hidden",s.name=t,s.value=e,s}function le(t,e,s){let i=t.insertAdjacentElement(e,s);if(!i)throw new Error(`Failed to insert element ${s.nodeName} into ${t.nodeName}`);return i}function ws(t,e,s,i){return le(s,i,tt(t,e))}function oe(t,e,s){return le(e,s,et(t))}function ue(t){let e=t.form||document;return Array.from(e.querySelectorAll(`input[type="radio"][name="${t.name}"]`))}function he(t){return ue(t).filter(e=>e!==t)}function st(t){const e=t.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight,i=window.innerWidth||document.documentElement.clientWidth,r=e.top<=s&&e.top+e.height>=0,a=e.left<=i&&e.left+e.width>=0;return r&&a}function ce(t){if(t.requestSubmit)t.requestSubmit();else{let e=t.querySelector('button[type="submit"]');e||(e=oe("submit",t,"beforeend")),e.click()}}function it(t){let e=t.querySelector('button[type="reset"]');e||(e=oe("reset",t,"beforeend")),e.click()}function rt(t){return Array.isArray(t)?t:[t]}function v(t,e,s){const i=t.disconnect.bind(t);return e(),Object.assign(t,{disconnect(){s(),i()}}),i}function c(t,e,s,i,r){(r==null?void 0:r.debounce)?(i=p.debounce(i.bind(t),r.debounce),delete r.debounce):i=i.bind(t);let a=rt(s),l=()=>a.forEach(o=>e.addEventListener(o,i,r)),h=()=>a.forEach(o=>e.removeEventListener(o,i));return v(t,l,h),{setup:l,teardown:h}}function ys(t,e,s,i,r){return c(t,e,s,i,r)}function x(t,e,s,i,r){let a=[];return e.forEach(l=>{let{setup:h,teardown:o}=c(t,l,s,i,r);a.push({setup:h,teardown:o})}),[()=>a.forEach(l=>l.setup()),()=>a.forEach(l=>l.teardown())]}function Es(t,e,s,i,r){return x(t,e,s,i,r)}function at(t,e){let s=e||document.documentElement,i=document.fullscreenElement!==null;const r=()=>i=document.fullscreenElement!==null,a=()=>i,l=async()=>i?await d():await m();let h=()=>document.addEventListener("fullscreenchange",r),o=()=>document.removeEventListener("fullscreenchange",r);const d=async()=>{document.exitFullscreen&&(i=!1,await document.exitFullscreen())},m=async()=>{i&&await d(),s.requestFullscreen&&(await s.requestFullscreen(),i=!0)};return v(t,h,o),{isFullscreen:a,enter:m,exit:d,toggle:l,teardown:o}}function $(t){if(t===null||typeof t!="object")return t;for(const e in t)Object.getOwnPropertyDescriptor(t,e)!=null&&(t[e]=$(t[e]));return new Proxy(t,{get(e,s){return e[s]},set(e,s,i){return e[s]=$(i),!0}})}function Ts(t,e={},s,i){s&&(s=s.bind(t)),i&&(i=i.bind(t));const{enableHighAccuracy:r=!0,maximumAge:a=3e4,timeout:l=27e3}=e,h=navigator&&"geolocation"in navigator,o=$({locatedAt:null,error:null,coords:{accuracy:0,latitude:1/0,longitude:1/0,altitude:null,altitudeAccuracy:null,heading:null,speed:null},teardown:()=>{m&&(navigator.geolocation.clearWatch(m),m=null)}});let d=()=>{h&&(m=navigator.geolocation.watchPosition(g=>{o.locatedAt=g.timestamp,o.coords=g.coords,o.error=null,s&&s(g)},g=>{o.error=g,i&&i(g)},{enableHighAccuracy:r,maximumAge:a,timeout:l}))},m=null;return v(t,d,o.teardown),o}function de(t,e,s,i,r={}){let a=Array.from(i.childNodes),l=()=>{let o=e.parentElement;if(["beforebegin","afterend"].includes(s)&&o==null)throw new Error("Cannot insert beforebegin into a node with no parent");switch(s){case"beforeend":e.append(i);break;case"afterbegin":e.prepend(i);break;case"beforebegin":o.insertBefore(i,e);break;case"afterend":o.insertBefore(i,e);break}},h=r.cleanup?()=>a.forEach(o=>o.remove()):()=>{};return v(t,l,h),[a,h]}function Cs(t,e,s,i,r={}){const a=document.createRange().createContextualFragment(i);return de(t,e,s,a,r)}function nt(t,e,s,i,r={}){const a=new DocumentFragment;a.append(i);let[l,h]=de(t,e,s,a,r);return[l[0],h]}function N(t,e,s){e=e.bind(t);let i=null,r=()=>i=setInterval(e,s),a=()=>{i!==null&&clearInterval(i)};return v(t,r,a),a}const lt={boolean:{deserialize:t=>t==="true",serialize:t=>String(t),isEmpty:t=>t===""||t===null},object:{deserialize:t=>JSON.parse(t),serialize:t=>JSON.stringify(t),isEmpty:t=>{const e=Object.values(JSON.parse(t));return e.length===0||e.every(s=>s===""||s===null)}},number:{deserialize:t=>Number.parseFloat(t),serialize:t=>String(t),isEmpty:t=>t===""||t===null},any:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},string:{deserialize:t=>t,serialize:t=>String(t),isEmpty:t=>t===""||t===null},map:{deserialize:t=>new Map(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}},set:{deserialize:t=>new Set(JSON.parse(t)),serialize:t=>JSON.stringify(Array.from(t.entries())),isEmpty:t=>{const e=Array.from(t.values());return e.length===0||e.every(s=>s===""||s===null)}}};function ot(t,e,s,i={writeDefaults:!0}){let r,{writeDefaults:a}=i;s==null?r="any":s instanceof Set?r="set":s instanceof Map?r="map":typeof s=="boolean"?r="boolean":typeof s=="string"?r="string":typeof s=="object"||Array.isArray(s)?r="object":Number.isNaN(s)?r="any":r="number";let l=$({value:s}),h=localStorage;const o=lt[r],d=()=>{const b=h.getItem(e);return b==null?(l.value=s,a&&s!==null&&h.setItem(e,o.serialize(s))):l.value=o.deserialize(b),l.value},m=b=>{h.setItem(e,o.serialize(b)),l.value=b},g=()=>(h.removeItem(e),l.value=s,l.value),E=()=>{let b=h.getItem(e);return o.isEmpty(b)};return d(),{get value(){return d()},set value(b){m(b)},read:d,clear:g,write:m,isEmpty:E}}function k(t,e,s){let i,r=null;e=e.bind(t);let a=()=>{e(),r=null,Object.assign(t,{disconnect:i})},l=()=>r=setTimeout(a,s),h=()=>{r!==null&&(clearTimeout(r),r=null)};return i=v(t,l,h),h}function ut(t,e,s,i,r){const a=(g,E)=>{_(g)?g.value=E:g.textContent=E},l=g=>_(g)?g.value:g.innerHTML;let h=()=>{},o=l(e);const d=()=>{a(e,o),h(),r&&r.call(t)};return v(t,()=>{a(e,s),i!==void 0&&(h=k(t,d,i))},d),{teardown:d,update(g){a(e,g)}}}async function ht(t,e,s){try{return await fetch(e,s)}catch(i){if(t===1)throw i;return await ht(t-1,e,s)}}class D extends u{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}get _maxRetries(){return this.hasMaxRetriesValue?this.maxRetriesValue:1}connect(){}async loadContent(e=null){e==null||e.preventDefault();let s=this,i=this.hasReplaceTarget?this.replaceTarget:this.el,r=()=>{i.replaceWith(this._errorMessage),s.dispatchEvent(i,"ajax:error")};try{let a=await ht(this._maxRetries,this.endpointValue);a.ok||r();let l=await a.text(),h=document.createElement("div");if(h.innerHTML=l,this.hasSelectorValue){let o=h.querySelectorAll(this.selectorValue);i.replaceWith(...o)}else i.replaceWith(...h.children);s.dispatchEvent(i,"ajax:success")}catch{r()}finally{s.dispatchEvent(i,"ajax:complete")}}}n(D,"targets",["replace"]),n(D,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});class fe extends D{get _errorMessage(){return this.hasErrorMessageValue?this.errorMessageValue:"This content failed to load"}async connect(){await this.loadContent()}}n(fe,"targets",["replace"]),n(fe,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number});function Ss(t,e,s){e=e.bind(t);let i=new IntersectionObserver(e,s);return{observer:i,teardown:()=>{i==null||i.disconnect(),i=null},observe:h=>i==null?void 0:i.observe(h),unobserve:h=>i==null?void 0:i.unobserve(h)}}function me(t,e,s,i,r){s&&(s=s.bind(t)),i&&(i=i.bind(t));let a=r!=null?r:{},l=E=>{E.forEach(b=>{b.isIntersecting?s&&s(b):i&&i(b)})},{observer:h,observe:o,unobserve:d,teardown:m}=Ss(t,l,a);return v(t,()=>o(e),m),{observer:h,observe:()=>o(e),unobserve:()=>d(e),teardown:m}}class Vs extends D{async connect(){let e=this.el;if("IntersectionObserver"in window){let{observe:s,unobserve:i}=me(this,e,this.appear,null,{threshold:.3});this.observe=s,this.unobserve=i}else await this.loadContent()}async appear(e){e.target===this.el&&e.isIntersecting&&(await this.loadContent(),this.unobserve&&this.unobserve())}}class ge extends D{connect(){if(!this.hasSecondsValue)throw new Error("Required value `seconds` is missing");requestAnimationFrame(()=>{this._timeout(),N(this,this._timeout,this.secondsValue*1e3)})}async _timeout(){await this.loadContent()}}n(ge,"targets",["replace"]),n(ge,"values",{endpoint:String,errorMessage:String,selector:String,maxRetries:Number,seconds:Number});class ct extends u{get _eventModes(){if(this.hasEventModeValue){let e=this.eventModeValue.split(" ").map(s=>s.trim());if(e.length===1&&e[0]==="debounced")return["change","input"];if(!e.every(s=>["change","input"].includes(s)))throw new Error(`The modeValue provided '${this.eventModeValue}' is not one of the recognised configuration options`);return e}else return["change"]}get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:-1}get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get _cssSelector(){let e=["input","textarea","select"],s=":not([data-no-autosubmit])";return e.map(i=>i.concat(s)).join(",")}get inputElements(){let e=Array.from(this.element.querySelectorAll(this._cssSelector));return e=e.filter(s=>!this._ancestorIsTrix(s)),e}connect(){this.inputElements.forEach(e=>c(this,e,this._eventModes,this.submit,{debounce:this._debounceTimeout&&this._debounceTimeout>0?this._debounceTimeout:void 0}))}_ancestorIsTrix(e){return e.closest("trix-toolbar")!==null&&e.closest("trix-editor")!==null}submit(){let e=this.el;this._mode=="request"?ce(e):e.submit()}}n(ct,"values",{submitMode:String,eventMode:String,debounceInterval:Number});class xs extends u{connect(){let{teardown:e}=me(this,this.el,this.appear);if(this._unobserveIntersection=e,!q(this.el))throw new Error(`Expected controller to be attached to a textarea, but was a '${this.el.tagName}'`);requestAnimationFrame(()=>{this.el.style.resize="none",this.el.style.boxSizing="border-box",this._handler(),c(this,window,["resize"],this._handler),c(this,this.el,["input","change","focus"],this._handler,{debounce:100})})}appear(e){this.autosize(this.el),this._unobserveIntersection()}_handler(){this.autosize(this.el)}autosize(e){let s=e.offsetHeight-e.clientHeight;e.style.height="auto",e.style.height=e.scrollHeight+s+"px"}}function H(t,e){const s=t[e];return typeof s=="function"?s:s!=null?()=>s:()=>{}}function z(t){return p.upperFirst(p.camelCase(t))}function ks(t,e){let s=t.element,i=()=>t[`has${z(e)}Class`]==!0,r=()=>t[`${e}Classes`],a=()=>H(t,`default${z(e)}Classes`).call(t)||[],l=()=>i()?r():a();t[`${e}Classes`]==null&&Object.defineProperty(t,`${e}Classes`,{get:()=>i()?t[`${e}Class`].split(" "):a()});let h={[`add${z(e)}Classes`]:(o=s)=>o.classList.add(...l()),[`remove${z(e)}Classes`]:(o=s)=>o.classList.remove(...l()),[`${e}ClassesPresent`]:(o=s)=>l().every(d=>o.classList.contains(d))};Object.assign(t,h)}function y(t){(t.constructor.classes||[]).forEach(s=>ks(t,s))}class U extends u{connect(){y(this),requestAnimationFrame(()=>{c(this,this.inputTarget,"input",this._updateCharCount),this._updateCharCount()})}_updateCharCount(){let e=this.inputTarget.value.length;this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}n(U,"targets",["input","output"]),n(U,"values",{min:Number,max:Number}),n(U,"classes",["error"]);class pe extends u{connect(){this.toggle()}toggle(){this.hasDisablerTarget&&this.disablerTarget.checked?this.disable():this.enable()}disable(){let e=this.hasClearValue&&this.clearValue;this.disableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.disableTargets.forEach((e,s)=>{e.disabled=!1})}}n(pe,"targets",["disabler","disable"]),n(pe,"values",{clear:Boolean});class _e extends u{connect(){this.toggle()}toggle(){this.hasEnablerTarget&&this.enablerTarget.checked?this.enable():this.disable()}disable(){let e=this.hasClearValue&&this.clearValue;this.enableTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.enableTargets.forEach((e,s)=>{e.disabled=!1})}}n(_e,"targets",["enabler","enable"]),n(_e,"values",{clear:Boolean});class dt extends u{get _checked(){return this._enabled.filter(e=>e.checked)}get _enabled(){return this.checkboxTargets.filter(e=>!e.disabled&&!e.readOnly)}get _unchecked(){return this._enabled.filter(e=>!e.checked)}connect(){requestAnimationFrame(()=>{!this.hasSelectAllTarget||(c(this,this.selectAllTarget,"change",this._toggle),x(this,this.checkboxTargets,"change",this._refresh),this._refresh())})}_toggle(e){e.preventDefault();let s=e.target;this._enabled.forEach(i=>i.checked=i.disabled||i.readOnly?i.checked:s.checked)}_refresh(){const e=this._enabled.length,s=this._checked.length;this.selectAllTarget.checked=s>0,this.selectAllTarget.indeterminate=s>0&&s<e}}n(dt,"targets",["selectAll","checkbox"]);class ft extends u{connect(){x(this,this.checkboxTargets,"change",this._update)}_otherCheckboxes(e){return Array.from(this.checkboxTargets).filter(s=>s!==e)}_update(e){const s=e.target;if(!s)throw new Error("No target found on event");let i=this._otherCheckboxes(s);s.checked&&i.forEach(r=>{r.checked=!1,this.dispatchEvent(this.el,"change")})}}n(ft,"targets",["checkbox"]);class Ms extends u{get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),c(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._restoreElementFromLoadValue()}_getElementValue(){let e=this.el;return S(e)?e.checked:e.value}_getElementLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);if(S(e))return s==null?e.defaultChecked:s=="true";if(A(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(){return this.el.hasAttribute(this._cacheAttrName)}_checkDirty(){let e=this.el;_(e)&&e.type=="radio"&&he(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty()?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(){return this._getElementValue()!==this._getElementLoadValue()}_restoreElementFromLoadValue(){let e=this.el,s=e.getAttribute(this._cacheAttrName);S(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):A(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){let e=this.el;!this._elementHasCachedLoadValue()&&S(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}}function As(t){return t.hasAttribute("data-dirty")}class Ds extends u{get _formElements(){return Array.from(this.el.querySelectorAll("input, select, textarea"))}get _cacheAttrName(){return"detect-dirty-load-value"}connect(){let e=this.el;this._cacheLoadValues(),this._checkDirty(),c(this,e,["input","change"],this._checkDirty,{debounce:10})}restore(e){e==null||e.preventDefault(),this._formElements.forEach(s=>this._restoreElementFromLoadValue(s))}_getElementValue(e){return S(e)?e.checked:e.value}_getElementLoadValue(e){let s=e.getAttribute(this._cacheAttrName);if(S(e))return s==null?e.defaultChecked:s=="true";if(A(e))Array.from(e.options).forEach(r=>{if(r.defaultSelected)return e.value=r.value,r.value});else if(s!==null)return s;return s}_elementHasCachedLoadValue(e){return e.hasAttribute(this._cacheAttrName)}_checkElementDirty(e){_(e)&&e.type=="radio"&&he(e).forEach(s=>s.removeAttribute("data-dirty")),this._isElementDirty(e)?e.setAttribute("data-dirty","true"):e.removeAttribute("data-dirty")}_isElementDirty(e){return this._getElementValue(e)!==this._getElementLoadValue(e)}_cacheElementLoadValue(e){!this._elementHasCachedLoadValue(e)&&S(e)?e.setAttribute(this._cacheAttrName,e.checked.toString()):e.setAttribute(this._cacheAttrName,e.value.toString())}_restoreElementFromLoadValue(e){let s=e.getAttribute(this._cacheAttrName);S(e)?(e.setAttribute(this._cacheAttrName,e.checked.toString()),e.checked=s==null?e.defaultChecked:s=="true"):A(e)?s==null?Array.from(e.options).forEach(r=>{if(r.defaultSelected){e.value=r.value;return}}):e.value=s:e.value=s==null?e.defaultValue:s}_cacheLoadValues(){this._formElements.forEach(e=>this._cacheElementLoadValue(e))}_checkDirty(){this._formElements.forEach(e=>this._checkElementDirty(e)),this._formElements.some(e=>mt(e))?this.el.setAttribute("data-dirty","true"):this.el.removeAttribute("data-dirty")}}function mt(t){return t.hasAttribute("data-dirty")}class be extends u{connect(){}disable(){let e=this.hasClearValue&&this.clearValue;this.inputTargets.forEach((s,i)=>{e&&(s.value=""),s.disabled=!0})}enable(){this.inputTargets.forEach((e,s)=>e.disabled=!1)}}n(be,"targets",["input"]),n(be,"values",{clear:Boolean});class gt extends u{get _mode(){const e=["immediate","wait"];if(this.hasModeValue){if(e.includes(this.modeValue))return this.modeValue;throw new Error(`The given modeValue '${this.modeValue}' is not one of the supported modes: "${e.join('", "')}"`)}else return e[0]}connect(){this._mode=="immediate"&&this.steal()}steal(){this.el.focus()}}n(gt,"values",{mode:String});class ve extends u{get _mode(){if(this.hasSubmitModeValue){if(!["direct","request"].includes(this.submitModeValue))throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`);return this.submitModeValue}else return"request"}get form(){let e;if(this.hasFormSelectorValue){if(e=document.querySelector(this.formSelectorValue),!e)throw new Error(`Could not find a form on the page that matches selector '${this.formSelectorValue}'`)}else e=this.formTarget;return e}submit(e){e==null||e.preventDefault();let s=this.formTarget;this._mode=="request"?ce(s):s.submit()}reset(e){e==null||e.preventDefault(),it(this.form)}}n(ve,"targets",["form"]),n(ve,"values",{formSelector:String,submitMode:String});class pt extends u{get _formID(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this form. Please either specify data-${this.identifier}-id-value or give this form an 'id' attribute. `)}get _formIdentifier(){return`${location.href} ${this._formID}`}get _formElements(){return this.el.elements}get _formData(){let e={[this._formIdentifier]:{}};for(const s of this._formElements){let i=s;i.name.length>0&&(_(i)&&i.type=="checkbox"?e[this._formIdentifier][i.name]=i.checked:_(i)&&i.type=="radio"?i.checked&&(e[this._formIdentifier][i.name]=i.value):e[this._formIdentifier][i.name]=i.value)}return e}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _clearOnSubmit(){return this.hasClearOnSubmitValue?this.clearOnSubmitValue:!0}connect(){requestAnimationFrame(()=>{let e=this.el;if(!ne(e))throw new Error("Expected controller to be mounted on a form element.");this._restoreOnLoad&&this.restore(),this._clearOnSubmit&&c(this,this.el,"submit",this._clear)})}_clear(){localStorage.removeItem(this._formIdentifier),this.dispatchEvent(this.el,"form-save:cleared")}clear(e){e==null||e.preventDefault(),this._clear()}save(e){e.preventDefault();let s=this._formData;localStorage.setItem(this._formIdentifier,JSON.stringify(s[this._formIdentifier])),this.dispatchEvent(this.el,"form-save:save:success")}restore(e){if(e==null||e.preventDefault(),localStorage.getItem(this._formIdentifier)){const s=JSON.parse(localStorage.getItem(this._formIdentifier));for(const i of this._formElements){let r=i;r.name in s&&(_(r)&&r.type=="checkbox"?r.checked=s[r.name]:_(r)&&r.type=="radio"?r.value==s[r.name]&&(r.checked=!0):r.value=s[r.name])}this.dispatchEvent(this.el,"form-save:restore:success")}else this.dispatchEvent(this.el,"form-save:restore:empty")}}n(pt,"values",{id:String,restoreOnLoad:Boolean,clearOnSubmit:Boolean});class we extends u{connect(){x(this,this.inputTargets,"change",this._handleInputs)}_handleInputs(e){let s=this.inputTargets.reduce((r,a)=>a.checked?r+1:r,0),i=e.target;s>this.maxValue?(e.preventDefault(),i.checked=!1,this.dispatchEvent(i,"change"),this.dispatchEvent(i,"limited-selection:too-many"),this.hasErrorTarget&&this.hasMessageValue&&(this.errorTarget.innerHTML=this.messageValue)):(this.dispatchEvent(i,"limited-selection:selection"),this.hasErrorTarget&&(this.errorTarget.innerHTML=""))}}n(we,"targets",["input","error"]),n(we,"values",{max:Number,message:String});class j extends u{constructor(){super(...arguments);n(this,"_errors",[]);n(this,"_firstClick",!1)}get defaultCurrentClasses(){return["currentError"]}get _errorCount(){return this._errors.length}get _previousIndex(){let e=this._index-1;return e<0?0:e}get _nextIndex(){let e=this._index+1;return e>this._errors.length-1?this._errors.length-1:e}get _index(){return p.clamp(this.hasIndexValue?this.indexValue:0,0,this._errors.length)}get _selector(){if(this.hasSelectorValue)return this.selectorValue;throw new Error("Expected `selectorValue` to be present")}get _currentError(){return this._errors[this._index]}get _otherErrors(){return this._errors.filter((e,s)=>s!==this._index)}connect(){y(this),requestAnimationFrame(()=>{this._firstClick=!0,this._toggleButtons(),this._toggleVisibility()})}async current(e){e==null||e.preventDefault(),this._firstClick&&(this._firstClick=!1,this._toggleButtons()),await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async next(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._nextIndex,await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}async previous(e){e==null||e.preventDefault(),this._firstClick?(this._firstClick=!1,this._toggleButtons()):this.indexValue=this._previousIndex,await V(this._currentError,{behavior:"smooth",block:"center",inline:"center"}),this._updateClasses()}indexValueChanged(){this._toggleButtons()}selectorValueChanged(){this._errors=Array.from(document.querySelectorAll(this._selector)),this.indexValue=0,this._toggleButtons(),this._toggleVisibility()}_updateClasses(){this.addCurrentClasses(this._currentError),this._otherErrors.forEach(e=>this.removeCurrentClasses(e))}_toggleVisibility(){this._errorCount===0?this.el.style.display="none":this.el.style.display=""}_toggleButtons(){if(this.hasNextTarget)if(!this.hasCurrentTarget&&this._firstClick&&this.indexValue==this._errorCount-1){this.nextTarget.removeAttribute("disabled");return}else this.indexValue>=this._errorCount-1?this.nextTarget.setAttribute("disabled","true"):this.nextTarget.removeAttribute("disabled");this.hasPreviousTarget&&(this.indexValue<=0?this.previousTarget.setAttribute("disabled","true"):this.previousTarget.removeAttribute("disabled"))}}n(j,"values",{selector:String,index:Number}),n(j,"classes",["current"]),n(j,"targets",["next","current","previous"]);class ye extends u{get _wrapperClass(){return this.hasWrapperSelectorValue?this.wrapperClassValue:"nested-fields"}get _insertMode(){return this.hasInsertModeValue?this.insertModeValue:"beforeend"}connect(){this._checkStructure()}add(e){e==null||e.preventDefault();const s=this.templateTarget.innerHTML.replace(/NEW_RECORD/g,this._generateID());this.targetTarget.insertAdjacentHTML(this._insertMode,s)}remove(e){e.preventDefault();const s=e.target.closest(`.${this._wrapperClass}`);if(s==null)throw new Error(`#remove was clicked from outside of a child record. Could not find an ancestor with class .${this._wrapperClass}`);if(s.dataset.newRecord==="true")s.remove();else{s.style.display="none";let i=s.querySelector("input[name*='_destroy']");if(i==null)throw new Error("Could not find a hidden input with name '_destroy'. NestedForm cannot remove an already persisted record without it.");i.value="1"}}_generateID(){return new Date().getTime().toString()+Math.random().toString().slice(2)}_checkStructure(){if(this.templateTarget.innerHTML.indexOf("NEW_RECORD"))throw new Error("Could not find 'NEW_RECORD' in the provided template. Please make sure you've passed `child_index: 'NEW_RECORD'` to `fields_for`")}}n(ye,"targets",["target","template"]),n(ye,"values",{insertMode:String,wrapperClass:String});class Ee extends u{connect(){y(this),x(this,this.passwordTargets,"change",this._checkPasswordsMatch)}_allPasswordsMatch(){let e=new Set(this.passwordTargets.map(s=>s.value));return e.has("")||e.size==1}_checkPasswordsMatch(){let e=this.el;this._allPasswordsMatch()?(this.dispatchEvent(e,"password-confirm:match"),this.passwordTargets.forEach(s=>this.removeErrorClasses(s))):(this.dispatchEvent(e,"password-confirm:no-match"),this.passwordTargets.forEach(s=>this.addErrorClasses(s)))}}n(Ee,"targets",["password"]),n(Ee,"classes",["error"]);class _t extends u{peak(e){e==null||e.preventDefault(),this.passwordTarget.type="text"}hide(e){e==null||e.preventDefault(),this.passwordTarget.type="password"}toggle(e){e==null||e.preventDefault(),this.passwordTarget.type==="password"?this.peak():this.hide()}}n(_t,"targets",["password"]);class Te extends u{get _selector(){return this.hasSelectorValue?this.selectorValue:`[data-controller~="${this.identifier}"]`}replace(e){const[s,i,r]=e.detail;if(s instanceof Node){let a=s.querySelector(this._selector);if(a==null)throw new Error(`expected new form DOM with [data-controller="${this.identifier}"] to be present in returned payload`);let l=this.el.parentNode;if(l==null)throw new Error("expected form to have a DOM parent, could not execute replaceChild");l.replaceChild(a,this.el),this.dispatchEvent(a,"remote-form:replace")}else console.log("Unknown",s)}}n(Te,"targets",[]),n(Te,"values",{selector:String});function W(t,e,s,i){let r=i;(r==null?void 0:r.debounce)?(s=p.debounce(s.bind(t),r.debounce),delete r.debounce):s=s.bind(t);let a=rt(e),l=()=>a.forEach(o=>M.on(o,s)),h=()=>a.forEach(o=>M.off(o,s));return v(t,l,h),{setup:l,teardown:h}}class bt extends u{get _eventName(){return`sync:${this._key}`}get _key(){if(this.hasKeyValue)return this.keyValue;throw new Error("Expected `keyValue` to be present")}get _value(){let e=this.el;return _(e)&&e.type==="checkbox"?e.checked:_(e)&&e.type==="radio"?e.checked?e.value:"":e.value}set _value(e){let s=this.el;_(s)&&s.type==="checkbox"?s.checked=e.toString()==="true":_(s)&&s.type==="radio"?s.checked=s.value===e:_(s)||q(s)||A(s)?s.value=e.toString():s.innerHTML=e.toString()}connect(){W(this,this._eventName,this._read),requestAnimationFrame(()=>{Qe(this.el)&&(this._emit(),c(this,this.el,"input",this._emit))})}_emit(){M.emit(this._eventName,{value:this._value,dispatcher:this.el})}_read(e){if(e===void 0)throw new Error("No payload received");let{dispatcher:s,value:i}=e;s!==this.el&&(this._value=i)}}n(bt,"values",{key:String});class K extends u{get _maxMessage(){return this.hasMaxMessageValue?this.maxMessageValue:`Value must be less than ${this.maxValue}`}get _minMessage(){return this.hasMinMessageValue?this.minMessageValue:`Value must be greater than ${this.minValue}`}get defaultWarningHideClasses(){return["hide"]}connect(){y(this),this.addWarningHideClasses(this.warningTarget),c(this,this.inputTarget,"input",this._check),this._check()}_check(){this.hasMinValue&&Number.parseFloat(this.inputTarget.value)<this.minValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._minMessage):this.hasMaxValue&&Number.parseFloat(this.inputTarget.value)>this.maxValue?(this.removeWarningHideClasses(this.warningTarget),this.addInputWarningClasses(this.inputTarget),this.warningTarget.innerText=this._maxMessage):(this.addWarningHideClasses(this.warningTarget),this.removeInputWarningClasses(this.inputTarget),this.warningTarget.innerText="")}}n(K,"classes",["inputWarning","warningHide"]),n(K,"targets",["input","warning"]),n(K,"values",{max:Number,min:Number,minMessage:String,maxMessage:String});class G extends u{connect(){y(this),this._updateWordCount(),c(this,this.inputTarget,"input",this._updateWordCount)}_updateWordCount(){let e=0,i=this.inputTarget.value.match(/\S+/g);e=i&&i.length||0,this.outputTarget.innerText=e.toString(),this._isValidCount(e)?this.removeErrorClasses(this.outputTarget):this.addErrorClasses(this.outputTarget)}_isValidCount(e){let s=0,i=99999;return this.hasMinValue&&(s=this.minValue),this.hasMaxValue&&(i=this.maxValue),e>=s&&e<=i}}n(G,"targets",["input","output"]),n(G,"values",{min:Number,max:Number}),n(G,"classes",["error"]);class Ce extends u{initialize(){this._hasLoadedSuccessfully=this._hasLoadedSuccessfully.bind(this),this._success=this._success.bind(this),this._fail=this._fail.bind(this)}connect(){let e=this.el;e.onerror=this._fail,e.complete&&!this._hasLoadedSuccessfully()?this._fail():this._success()}disconnect(){this.removeSuccessClasses(),this.removeFailClasses()}_success(){this.addSuccessClasses()}_fail(){let e=this.el;this.addFailClasses(),this.hasPlaceholderValue&&e.src!==this.placeholderValue?(this.dispatchEvent(e,"fallback-image:placeholder"),e.src=this.placeholderValue,e.onerror=this._fail):(this.dispatchEvent(e,"fallback-image:fail"),e.style.display="none")}_hasLoadedSuccessfully(){let e=this.el;return e.naturalHeight>0&&e.naturalWidth>0}}n(Ce,"values",{placeholder:String}),n(Ce,"classes",["success","fail"]);var L=window.CustomEvent;(!L||typeof L=="object")&&(L=function(e,s){s=s||{};var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,!!s.bubbles,!!s.cancelable,s.detail||null),i},L.prototype=window.Event.prototype);function vt(t,e){var s="on"+e.type.toLowerCase();return typeof t[s]=="function"&&t[s](e),t.dispatchEvent(e)}function Ls(t){for(;t&&t!==document.body;){var e=window.getComputedStyle(t),s=function(i,r){return!(e[i]===void 0||e[i]===r)};if(e.opacity<1||s("zIndex","auto")||s("transform","none")||s("mixBlendMode","normal")||s("filter","none")||s("perspective","none")||e.isolation==="isolate"||e.position==="fixed"||e.webkitOverflowScrolling==="touch")return!0;t=t.parentElement}return!1}function O(t){for(;t;){if(t.localName==="dialog")return t;t.parentElement?t=t.parentElement:t.parentNode?t=t.parentNode.host:t=null}return null}function wt(t){for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;t&&t.blur&&t!==document.body&&t.blur()}function Is(t,e){for(var s=0;s<t.length;++s)if(t[s]===e)return!0;return!1}function Se(t){return!t||!t.hasAttribute("method")?!1:t.getAttribute("method").toLowerCase()==="dialog"}function yt(t){var e=["button","input","keygen","select","textarea"],s=e.map(function(l){return l+":not([disabled])"});s.push('[tabindex]:not([disabled]):not([tabindex=""])');var i=t.querySelector(s.join(", "));if(!i&&"attachShadow"in Element.prototype)for(var r=t.querySelectorAll("*"),a=0;a<r.length&&!(r[a].tagName&&r[a].shadowRoot&&(i=yt(r[a].shadowRoot),i));a++);return i}function Et(t){return t.isConnected||document.body.contains(t)}function Tt(t){if(t.submitter)return t.submitter;var e=t.target;if(!(e instanceof HTMLFormElement))return null;var s=f.formSubmitter;if(!s){var i=t.target,r="getRootNode"in i&&i.getRootNode()||document;s=r.activeElement}return!s||s.form!==e?null:s}function Ns(t){if(!t.defaultPrevented){var e=t.target,s=f.imagemapUseValue,i=Tt(t);s===null&&i&&(s=i.value);var r=O(e);if(!!r){var a=i&&i.getAttribute("formmethod")||e.getAttribute("method");a==="dialog"&&(t.preventDefault(),s!=null?r.close(s):r.close())}}}function Ct(t){if(this.dialog_=t,this.replacedStyleTop_=!1,this.openAsModal_=!1,t.hasAttribute("role")||t.setAttribute("role","dialog"),t.show=this.show.bind(this),t.showModal=this.showModal.bind(this),t.close=this.close.bind(this),t.addEventListener("submit",Ns,!1),"returnValue"in t||(t.returnValue=""),"MutationObserver"in window){var e=new MutationObserver(this.maybeHideModal.bind(this));e.observe(t,{attributes:!0,attributeFilter:["open"]})}else{var s=!1,i=function(){s?this.downgradeModal():this.maybeHideModal(),s=!1}.bind(this),r,a=function(l){if(l.target===t){var h="DOMNodeRemoved";s|=l.type.substr(0,h.length)===h,window.clearTimeout(r),r=window.setTimeout(i,0)}};["DOMAttrModified","DOMNodeRemoved","DOMNodeRemovedFromDocument"].forEach(function(l){t.addEventListener(l,a)})}Object.defineProperty(t,"open",{set:this.setOpen.bind(this),get:t.hasAttribute.bind(t,"open")}),this.backdrop_=document.createElement("div"),this.backdrop_.className="backdrop",this.backdrop_.addEventListener("mouseup",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("mousedown",this.backdropMouseEvent_.bind(this)),this.backdrop_.addEventListener("click",this.backdropMouseEvent_.bind(this))}Ct.prototype={get dialog(){return this.dialog_},maybeHideModal:function(){this.dialog_.hasAttribute("open")&&Et(this.dialog_)||this.downgradeModal()},downgradeModal:function(){!this.openAsModal_||(this.openAsModal_=!1,this.dialog_.style.zIndex="",this.replacedStyleTop_&&(this.dialog_.style.top="",this.replacedStyleTop_=!1),this.backdrop_.parentNode&&this.backdrop_.parentNode.removeChild(this.backdrop_),f.dm.removeDialog(this))},setOpen:function(t){t?this.dialog_.hasAttribute("open")||this.dialog_.setAttribute("open",""):(this.dialog_.removeAttribute("open"),this.maybeHideModal())},backdropMouseEvent_:function(t){if(this.dialog_.hasAttribute("tabindex"))this.dialog_.focus();else{var e=document.createElement("div");this.dialog_.insertBefore(e,this.dialog_.firstChild),e.tabIndex=-1,e.focus(),this.dialog_.removeChild(e)}var s=document.createEvent("MouseEvents");s.initMouseEvent(t.type,t.bubbles,t.cancelable,window,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget),this.dialog_.dispatchEvent(s),t.stopPropagation()},focus_:function(){var t=this.dialog_.querySelector("[autofocus]:not([disabled])");!t&&this.dialog_.tabIndex>=0&&(t=this.dialog_),t||(t=yt(this.dialog_)),wt(document.activeElement),t&&t.focus()},updateZIndex:function(t,e){if(t<e)throw new Error("dialogZ should never be < backdropZ");this.dialog_.style.zIndex=t,this.backdrop_.style.zIndex=e},show:function(){this.dialog_.open||(this.setOpen(!0),this.focus_())},showModal:function(){if(this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.");if(!Et(this.dialog_))throw new Error("Failed to execute 'showModal' on dialog: The element is not in a Document.");if(!f.dm.pushDialog(this))throw new Error("Failed to execute 'showModal' on dialog: There are too many open modal dialogs.");Ls(this.dialog_.parentElement)&&console.warn("A dialog is being shown inside a stacking context. This may cause it to be unusable. For more information, see this link: https://github.com/GoogleChrome/dialog-polyfill/#stacking-context"),this.setOpen(!0),this.openAsModal_=!0,f.needsCentering(this.dialog_)?(f.reposition(this.dialog_),this.replacedStyleTop_=!0):this.replacedStyleTop_=!1,this.dialog_.parentNode.insertBefore(this.backdrop_,this.dialog_.nextSibling),this.focus_()},close:function(t){if(!this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.");this.setOpen(!1),t!==void 0&&(this.dialog_.returnValue=t);var e=new L("close",{bubbles:!1,cancelable:!1});vt(this.dialog_,e)}};var f={};f.reposition=function(t){var e=document.body.scrollTop||document.documentElement.scrollTop,s=e+(window.innerHeight-t.offsetHeight)/2;t.style.top=Math.max(e,s)+"px"};f.isInlinePositionSetByStylesheet=function(t){for(var e=0;e<document.styleSheets.length;++e){var s=document.styleSheets[e],i=null;try{i=s.cssRules}catch{}if(!!i)for(var r=0;r<i.length;++r){var a=i[r],l=null;try{l=document.querySelectorAll(a.selectorText)}catch{}if(!(!l||!Is(l,t))){var h=a.style.getPropertyValue("top"),o=a.style.getPropertyValue("bottom");if(h&&h!=="auto"||o&&o!=="auto")return!0}}}return!1};f.needsCentering=function(t){var e=window.getComputedStyle(t);return e.position!=="absolute"||t.style.top!=="auto"&&t.style.top!==""||t.style.bottom!=="auto"&&t.style.bottom!==""?!1:!f.isInlinePositionSetByStylesheet(t)};f.forceRegisterDialog=function(t){if((window.HTMLDialogElement||t.showModal)&&console.warn("This browser already supports <dialog>, the polyfill may not work correctly",t),t.localName!=="dialog")throw new Error("Failed to register dialog: The element is not a dialog.");new Ct(t)};f.registerDialog=function(t){t.showModal||f.forceRegisterDialog(t)};f.DialogManager=function(){this.pendingDialogStack=[];var t=this.checkDOM_.bind(this);this.overlay=document.createElement("div"),this.overlay.className="_dialog_overlay",this.overlay.addEventListener("click",function(e){this.forwardTab_=void 0,e.stopPropagation(),t([])}.bind(this)),this.handleKey_=this.handleKey_.bind(this),this.handleFocus_=this.handleFocus_.bind(this),this.zIndexLow_=1e5,this.zIndexHigh_=1e5+150,this.forwardTab_=void 0,"MutationObserver"in window&&(this.mo_=new MutationObserver(function(e){var s=[];e.forEach(function(i){for(var r=0,a;a=i.removedNodes[r];++r){if(a instanceof Element)a.localName==="dialog"&&s.push(a);else continue;s=s.concat(a.querySelectorAll("dialog"))}}),s.length&&t(s)}))};f.DialogManager.prototype.blockDocument=function(){document.documentElement.addEventListener("focus",this.handleFocus_,!0),document.addEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.observe(document,{childList:!0,subtree:!0})};f.DialogManager.prototype.unblockDocument=function(){document.documentElement.removeEventListener("focus",this.handleFocus_,!0),document.removeEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.disconnect()};f.DialogManager.prototype.updateStacking=function(){for(var t=this.zIndexHigh_,e=0,s;s=this.pendingDialogStack[e];++e)s.updateZIndex(--t,--t),e===0&&(this.overlay.style.zIndex=--t);var i=this.pendingDialogStack[0];if(i){var r=i.dialog.parentNode||document.body;r.appendChild(this.overlay)}else this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay)};f.DialogManager.prototype.containedByTopDialog_=function(t){for(;t=O(t);){for(var e=0,s;s=this.pendingDialogStack[e];++e)if(s.dialog===t)return e===0;t=t.parentElement}return!1};f.DialogManager.prototype.handleFocus_=function(t){var e=t.composedPath?t.composedPath()[0]:t.target;if(!this.containedByTopDialog_(e)&&document.activeElement!==document.documentElement&&(t.preventDefault(),t.stopPropagation(),wt(e),this.forwardTab_!==void 0)){var s=this.pendingDialogStack[0],i=s.dialog,r=i.compareDocumentPosition(e);return r&Node.DOCUMENT_POSITION_PRECEDING&&(this.forwardTab_?s.focus_():e!==document.documentElement&&document.documentElement.focus()),!1}};f.DialogManager.prototype.handleKey_=function(t){if(this.forwardTab_=void 0,t.keyCode===27){t.preventDefault(),t.stopPropagation();var e=new L("cancel",{bubbles:!1,cancelable:!0}),s=this.pendingDialogStack[0];s&&vt(s.dialog,e)&&s.dialog.close()}else t.keyCode===9&&(this.forwardTab_=!t.shiftKey)};f.DialogManager.prototype.checkDOM_=function(t){var e=this.pendingDialogStack.slice();e.forEach(function(s){t.indexOf(s.dialog)!==-1?s.downgradeModal():s.maybeHideModal()})};f.DialogManager.prototype.pushDialog=function(t){var e=(this.zIndexHigh_-this.zIndexLow_)/2-1;return this.pendingDialogStack.length>=e?!1:(this.pendingDialogStack.unshift(t)===1&&this.blockDocument(),this.updateStacking(),!0)};f.DialogManager.prototype.removeDialog=function(t){var e=this.pendingDialogStack.indexOf(t);e!==-1&&(this.pendingDialogStack.splice(e,1),this.pendingDialogStack.length===0&&this.unblockDocument(),this.updateStacking())};f.dm=new f.DialogManager;f.formSubmitter=null;f.imagemapUseValue=null;if(window.HTMLDialogElement===void 0){var St=document.createElement("form");if(St.setAttribute("method","dialog"),St.method!=="dialog"){var I=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"method");if(I){var Hs=I.get;I.get=function(){return Se(this)?"dialog":Hs.call(this)};var Os=I.set;I.set=function(t){return typeof t=="string"&&t.toLowerCase()==="dialog"?this.setAttribute("method",t):Os.call(this,t)},Object.defineProperty(HTMLFormElement.prototype,"method",I)}}document.addEventListener("click",function(t){if(f.formSubmitter=null,f.imagemapUseValue=null,!t.defaultPrevented){var e=t.target;if("composedPath"in t){var s=t.composedPath();e=s.shift()||e}if(!(!e||!Se(e.form))){var i=e.type==="submit"&&["button","input"].indexOf(e.localName)>-1;if(!i){if(!(e.localName==="input"&&e.type==="image"))return;f.imagemapUseValue=t.offsetX+","+t.offsetY}var r=O(e);!r||(f.formSubmitter=e)}}},!1),document.addEventListener("submit",function(t){var e=t.target,s=O(e);if(!s){var i=Tt(t),r=i&&i.getAttribute("formmethod")||e.getAttribute("method");r==="dialog"&&t.preventDefault()}});var Bs=HTMLFormElement.prototype.submit,Fs=function(){if(!Se(this))return Bs.call(this);var t=O(this);t&&t.close()};HTMLFormElement.prototype.submit=Fs}class Ve extends u{constructor(){super(...arguments);n(this,"_dialog",null)}get _src(){return this.hasSrcValue?this.srcValue:this.el.src}get _srcSet(){return this.hasSrcSetValue?this.srcSetValue:this.el.srcset}get _sizes(){return this.hasSizesValue?this.sizesValue:this.el.sizes}get _modalClassName(){return this.hasModalClass?this.modalClass:"image-lightbox-dialog"}get _imageClassName(){return this.hasImageClass?this.imageClass:"image-lightbox-image"}initialize(){this.open=this.open.bind(this),this.close=this.close.bind(this)}connect(){}disconnect(){this.close()}open(){let e=this.el;if(this._dialog)return;this._dialog=document.createElement("dialog");let s=document.createElement("img");s.className=this._imageClassName,s.src=this._src,s.srcset=this._srcSet,s.sizes=this._sizes,this._dialog.appendChild(s),e.insertAdjacentElement("afterend",this._dialog),f.registerDialog(this._dialog),this._dialog.className=this._modalClassName,this._dialog.showModal(),V(this._dialog,{behavior:"smooth",block:"end"}).catch(()=>this._dialog.scrollIntoView(!1)),c(this,this._dialog,"click",this.close),c(this,this._dialog,"cancel",this.close),c(this,this._dialog,"close",this.close)}close(){this._dialog&&(this._dialog.close(),this._dialog.remove(),this._dialog=null,V(this.el,{behavior:"smooth",block:"end"}).catch(()=>this.el.scrollIntoView(!1)))}}n(Ve,"values",{src:String,srcSet:String,sizes:String}),n(Ve,"classes",["modal","image"]);class Vt extends u{async play(e){e==null||e.preventDefault(),await this.mediaTarget.play()}pause(e){e==null||e.preventDefault(),this.mediaTarget.pause()}restart(e){e==null||e.preventDefault(),this.mediaTarget.currentTime=0}seek(e){e==null||e.preventDefault(),this.mediaTarget.currentTime+=5}}n(Vt,"targets",["media"]);class xt extends u{get _increment(){return this.hasIncrementValue?this.incrementValue:50}get _behaviour(){if(this.hasBehaviourValue){if(["auto","smooth"].includes(this.behaviourValue))return this.behaviourValue;throw new Error(`'${this.behaviourValue}' is not a recognised scroll behaviour`)}else return"auto"}async scrollTop(e){e==null||e.preventDefault(),await te(this.el,{behavior:this._behaviour})}async scrollBottom(e){e==null||e.preventDefault(),await se(this.el,{behavior:this._behaviour})}async scrollLeft(e){e==null||e.preventDefault(),await ie(this.el,{behavior:this._behaviour})}async scrollRight(e){e==null||e.preventDefault(),await ie(this.el,{behavior:this._behaviour})}async up(e){e==null||e.preventDefault(),await $e(this.el,this._increment,{behavior:this._behaviour})}async down(e){e==null||e.preventDefault(),await ze(this.el,this._increment,{behavior:this._behaviour})}async left(e){e==null||e.preventDefault(),await Ue(this.el,this._increment,{behavior:this._behaviour})}async right(e){e==null||e.preventDefault(),await je(this.el,this._increment,{behavior:this._behaviour})}}n(xt,"values",{behaviour:String,increment:Number});class kt extends F{connect(){requestAnimationFrame(()=>{V(this.el,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>this.el.scrollIntoView()),this._cleanupSelf()})}}n(kt,"values",{behavior:String,block:String,inline:String});class Mt extends u{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=R(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await se(this._scrollTarget)}}n(Mt,"values",{mode:String});class At extends u{scroll(){let e=document.querySelector(this.selectorValue);if(!e){console.warn(`Could not find target for '${this.selectorValue}'`);return}V(e,{behavior:this.hasBehaviorValue?this.behaviorValue:"smooth",block:this.hasBlockValue?this.blockValue:"center",inline:this.hasInlineValue?this.inlineValue:"center"}).catch(()=>e.scrollIntoView())}}n(At,"values",{selector:String,behavior:String,block:String,inline:String});class Dt extends u{get _mode(){return this.hasModeValue?this.modeValue:"document"}get _scrollTarget(){let e;return this._mode=="document"?e=window:e=R(this.el),e}async scroll(e){e==null||e.preventDefault(),this._scrollTarget&&await te(this._scrollTarget)}}n(Dt,"values",{mode:String});function Lt(t){t=t.trim();let e=t.includes("&&"),s=t.includes("||"),i=t.includes("(")||t.includes(")");if(e&&s)throw new Error("Cannot have both && and || in the same expression.");if(i)throw new Error("Cannot have logical groupings `(>3 && <= 9) || (>1 && <2)` in the expression. Only supports simple expressions like `>1 && <3`");let r=t.split(e?"&&":"||");return e?r.map(a=>xe(a)):s?r.map(a=>xe(a)):[xe(t)]}function xe(t){let s=[">=","<=","==","!=",">","<"].find(l=>t.includes(l));if(!s)throw new Error(`Could not find operator in expression: ${t}`);let i=t.split(s)[1].trim(),r=/^-?[0-9]\d*(\.\d+)?$/.test(i);if(i=r?parseFloat(i):i,i=="")throw new Error(`Could not find a value in expression: ${t}`);let a=l=>l!=="";switch(s){case">":return l=>r&&a(l)&&l>i;case"<":return l=>r&&a(l)&&l<i;case">=":return l=>r&&a(l)&&l>=i;case"<=":return l=>r&&a(l)&&l<=i;case"==":return l=>a(l)&&l==i;case"!=":return l=>a(l)&&l!=i;default:throw new Error(`Unknown operator ${s}`)}}function B(t,e){return`signal:${e}:${t}`}function ke(t){return B(t,"connect")}function Me(t){return B(t,"value")}class It extends u{get _predicates(){return Lt(this.whenValue)}connect(){M.emit(ke(this.nameValue)),W(this,Me(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(!this.hasWhenValue){this.dispatchEvent(this.el,B(this.nameValue,"match"));return}this._predicates.every(i=>i(s))?this.dispatchEvent(this.el,B(this.nameValue,"match"),{detail:{element:this.el,value:s}}):this.dispatchEvent(this.el,B(this.nameValue,"no-match"),{detail:{element:this.el,value:s}})}}n(It,"values",{name:String,when:String});class Nt extends u{get _debounceTimeout(){return this.hasDebounceIntervalValue?this.debounceIntervalValue:null}get _name(){return this.hasNameValue?this.nameValue:this.element.name}connect(){W(this,ke(this._name),()=>this.emitValue()),c(this,this.el,"input",this.emitValue,{debounce:this._debounceTimeout||void 0}),c(this,this.el,"change",this.emitValue),requestAnimationFrame(()=>this.emitValue())}emitValue(){var s;let e=this.el.value;if(_(this.el)&&this.el.type==="checkbox")e=this.el.checked?"true":"false";else if(_(this.el)&&this.el.type==="radio"){let i=(s=ue(this.el).find(r=>r.checked))==null?void 0:s.value;e=i||""}M.emit(Me(this._name),{element:this.el,value:e})}}n(Nt,"values",{name:String,debounceInterval:Number});class Ae extends u{get _predicates(){return Lt(this.showValue)}get defaultHideClasses(){return["hide"]}connect(){y(this),M.emit(ke(this.nameValue)),W(this,Me(this.nameValue),this._onSignal)}_onSignal(e){let s=e.value;if(this.showValue=="default"){s==""?this.removeHideClasses(this.el):this.addHideClasses(this.el);return}this._predicates.every(i=>i(s))?this.removeHideClasses(this.el):this.addHideClasses(this.el)}}n(Ae,"values",{name:String,show:String}),n(Ae,"classes",["hide"]);class Ht extends u{constructor(){super(...arguments);n(this,"_lastIndex",null);n(this,"_reverse",!1)}get _tableHead(){let e=this.el.tHead;if(e==null)throw new Error("Expected table to have a <thead> element.");return e}get _tableHeaders(){let e=this._tableHead.rows;if(e.length==0)throw new Error("Expected table to have a <thead> element with at least one row.");return Array.from(e[0].cells)}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}connect(){requestAnimationFrame(()=>{x(this,this._tableHeaders,"click",this.sort),this.hasStartSortValue&&this._sortByColumn(this.startSortValue)})}sort(e){e.preventDefault();let s=e.target,i=this._indexOfHeaderCell(s);s.dataset.sortable!="false"&&(s.dataset.sort=="asc"?(this._reverse=!0,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="desc",this._sortByColumn(i)):(this._reverse=!1,this._otherHeaderCells(s).forEach(r=>delete r.dataset.sort),s.dataset.sort="asc",this._sortByColumn(i)))}_indexOfHeaderCell(e){return this._tableHeaders.indexOf(e)}_otherHeaderCells(e){return Array.from(this._tableHeaders).filter(s=>s!=e)}_sortByColumn(e){let s=document.createDocumentFragment();this._tableRows.sort((a,l)=>{var E,b;let h=Array.from(a.cells),o=Array.from(l.cells),d=((E=h[e])==null?void 0:E.innerText)||"",m=((b=o[e])==null?void 0:b.innerText)||"",g=d.localeCompare(m,"en",{sensitivity:"base",numeric:!0,caseFirst:"upper"});return a.dataset.sortTop||l.dataset.sortBottom?a.dataset.sortTop&&l.dataset.sortTop?g:-1:a.dataset.sortBottom||l.dataset.sortTop?a.dataset.sortBottom&&l.dataset.sortBottom?g:1:this._reverse?g>0?-1:1:g}).forEach(a=>s.appendChild(a)),this._tableBody.innerHTML="",this._tableBody.appendChild(s),this._lastIndex=e}}n(Ht,"values",{startSort:Number});function De(t,e,s,i){s=s.bind(t);let r=new MutationObserver(s),a=()=>r.observe(e,i),l=()=>r.disconnect();return v(t,a,l),l}class Le extends u{get _truncated(){return this.hasTruncatedValue?this.truncatedValue:!1}set _truncated(e){this.truncatedValue=e}get _tableBody(){return this.el.tBodies[0]}get _tableRows(){return Array.from(this._tableBody.rows)}get _limit(){return this.hasLimitValue?this.limitValue:20}connect(){De(this,this._tableBody,this.mutate,{childList:!0}),requestAnimationFrame(()=>{this.truncate(),c(this,this.showMoreTarget,"click",this.expand)})}truncate(e){e==null||e.preventDefault(),this._truncated=!0,this._tableRows.length>=this._limit?(this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._hideElement(s)}),this._showElement(this.showMoreTarget)):this._hideElement(this.showMoreTarget)}expand(e){this._truncated=!1,e==null||e.preventDefault(),this._tableRows.slice(this._limit).forEach(s=>{s!==this.showMoreTarget&&this._showElement(s)}),this._hideElement(this.showMoreTarget)}mutate(e){this._truncated&&this._reTruncate()}_showElement(e){e.style.display=""}_hideElement(e){e.style.display="none"}_reTruncate(){this._tableRows.slice(0,this._limit).forEach(e=>{e!==this.showMoreTarget&&this._showElement(e)}),this._tableRows.slice(this._limit).forEach(e=>{e!==this.showMoreTarget&&this._hideElement(e)}),this._showElement(this.showMoreTarget)}}n(Le,"targets",["showMore"]),n(Le,"values",{limit:Number,truncated:Boolean});class Ot extends u{alert(){alert(this.messageValue)}}n(Ot,"values",{message:String});class Rs extends u{connect(){let{enter:e,exit:s,toggle:i}=at(this);this.enter=e,this.exit=s,this.toggle=i}}class Bt extends u{get _threshold(){return this.hasThresholdValue?this.thresholdValue.split(",").map(e=>Number.parseFloat(e.trim())).filter(e=>e>=0&&e<=1):[0,1]}connect(){me(this,this.el,this.appear,this.disappear,{threshold:this._threshold})}appear(e){ee(this,this.el,"intersection:appear")}disappear(e){ee(this,this.el,"intersection:disappear")}}n(Bt,"values",{threshold:String});class Ft extends u{connect(){if(!this.hasSecondsValue)throw new Error("Expected `secondsValue` to be present");requestAnimationFrame(()=>{N(this,this._interval,this.secondsValue*1e3)})}_interval(){this.dispatchEvent(this.el,"interval:action")}}n(Ft,"values",{seconds:Number});class Rt extends u{get name(){return this.hasNameValue?this.nameValue:""}get _addedEventName(){return[this.name,"presence","added"].filter(e=>!!e).join(":")}get _removedEventName(){return[this.name,"presence","removed"].filter(e=>!!e).join(":")}connect(){this.dispatchEvent(this.el,this._addedEventName)}disconnect(){this.dispatchEvent(this.el,this._removedEventName)}}n(Rt,"values",{name:String});class qt extends u{print(e){e==null||e.preventDefault(),window.print()}}class Pt extends u{connect(){requestAnimationFrame(()=>{k(this,this._timeout,this.secondsValue*1e3)})}_timeout(){this.dispatchEvent(this.el,"timeout")}}n(Pt,"values",{seconds:Number});class qs extends u{connect(){c(this,window,["focus","blur"],this._handleVisibility),c(this,document,"visibilitychange",this._handleVisibility),requestAnimationFrame(()=>{this._handleVisibility()})}appear(){this.dispatchEvent(this.el,"user-focus:active")}away(){this.dispatchEvent(this.el,"user-focus:away")}_handleVisibility(){this._documentIsActive()?this.appear():this.away()}_documentIsActive(){return document.visibilityState=="visible"&&document.hasFocus()}}class $t extends u{get _tickInterval(){return this.hasMillisecondsTarget?1:this.hasSecondsTarget?1e3:this.hasMinutesTarget?15e3:3e5}connect(){requestAnimationFrame(()=>{N(this,this._tick,this._tickInterval)})}_tick(){let e=new Date;this.hasHoursTarget&&(this.hoursTarget.innerHTML=e.getHours().toString().padStart(2,"0")),this.hasMinutesTarget&&(this.minutesTarget.innerHTML=e.getMinutes().toString().padStart(2,"0")),this.hasSecondsTarget&&(this.secondsTarget.innerHTML=e.getSeconds().toString().padStart(2,"0")),this.hasMillisecondsTarget&&(this.millisecondsTarget.innerHTML=e.getMilliseconds().toString().padStart(3,"0"))}}n($t,"targets",["hours","minutes","seconds","milliseconds"]);class J extends u{constructor(){super(...arguments);n(this,"_interval",null)}get _removeUnused(){return this.hasRemoveUnusedValue?this.removeUnusedValue:!1}get _deadlineDate(){return new Date(this.deadlineValue)}connect(){this._interval=setInterval(this._tick.bind(this),1e3),this.addCountingDownClasses()}disconnect(){this._clearTick(),this.removeCountingDownClasses(),this.removeEndedClasses()}deadlineValueChanged(){this._interval==null&&(this._interval=setInterval(this._tick.bind(this),1e3))}_tick(){try{const e=new Date;let s={};w.isPast(this._deadlineDate)?(s={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},this._clearTick(),this.removeCountingDownClasses(),this.addEndedClasses(),this.dispatchEvent(this.el,"countdown:ended")):s=w.intervalToDuration({start:this._deadlineDate,end:e}),this.hasYearsTarget&&this._updateTarget(this.yearsTarget,this._years(s)),this.hasMonthsTarget&&this._updateTarget(this.monthsTarget,this._months(s)),this.hasDaysTarget&&this._updateTarget(this.daysTarget,this._days(s)),this.hasHoursTarget&&this._updateTarget(this.hoursTarget,this._hours(s)),this.hasMinutesTarget&&this._updateTarget(this.minutesTarget,this._minutes(s)),this.hasSecondsTarget&&this._updateTarget(this.secondsTarget,this._seconds(s))}catch(e){console.error(e),this._clearTick()}}_clearTick(){this._interval&&(clearInterval(this._interval),this._interval=null)}_updateTarget(e,s){this._removeTargetIfUnused(e,s),e.innerHTML=s.toString()}_removeTargetIfUnused(e,s){this._removeUnused&&(s===0&&e.dataset.unused?Number.parseInt(e.dataset.unused)>Date.now()+1500&&e.remove():s==0?e.dataset.unused=Date.now().toString():e.dataset.unused=void 0)}_years(e){return e.years||0}_months(e){return e.months||0}_days(e){return e.days||0}_hours(e){return e.hours||0}_minutes(e){return e.minutes||0}_seconds(e){return e.seconds||0}}n(J,"values",{deadline:String,removeUnused:Boolean}),n(J,"targets",["years","months","days","hours","minutes","seconds"]),n(J,"classes",["countingDown","ended"]);class zt extends u{get _format(){return["years","months","weeks","days","hours",...this._minutes?["minutes"]:[],...this._seconds?["seconds"]:[]]}get _output(){let{years:e,months:s,weeks:i,days:r,hours:a,minutes:l,seconds:h}=this._duration;e||(e=0),s||(s=0),i||(i=0),r||(r=0),a||(a=0),l||(l=0),h||(h=0);let o=[e,s,i,r,a];return!this._minutes&&!this._seconds&&o.every(d=>d===0)?(l=l+h/60,`${(l/60).toFixed(1)} hours`):w.formatDuration(this._duration,{format:this._format,delimiter:", "})}get _seconds(){return this.hasSecondsValue?this.secondsValue:!0}get _minutes(){return this.hasMinutesValue?this.minutesValue:!0}get _timestamp(){if(this.hasTimestampValue)return w.toDate(this.timestampValue*1e3);throw new Error("Expected `timestampValue` to be present")}get _duration(){return w.intervalToDuration({start:new Date,end:this._timestamp})}get _tickInterval(){return this._seconds?1e3:this._minutes?15e3:12e4}connect(){this._clearInterval=N(this,this._update,this._tickInterval),this._update()}_update(){try{this.el.innerHTML=this._output}catch{this._clearInterval()}}}n(zt,"values",{timestamp:Number,minutes:Boolean,seconds:Boolean});class X extends u{get defaultHideClasses(){return["hide"]}get defaultActiveClasses(){return["is-active"]}get _currentTab(){return this.hasCurrentTabValue?this.currentTabValue:0}get _equalize(){return this.hasEqualizeValue?this.equalizeValue:!1}connect(){x(this,this.linkTargets,"click",this.switchTabs),this._equalize&&this._setMinHeight(),this.currentTabValue=this._currentTab}switchTabs(e){e.preventDefault(),this.currentTabValue=this.linkTargets.indexOf(e.currentTarget)}currentTabValueChanged(){let e=this._currentTab;e=this._clampIndex(e),this._selectTab(e)}_selectTab(e){e=this._clampIndex(e);let s=this.linkTargets,i=this.contentTargets,r=i[e],a=s[e],l=[...i.slice(0,e),...i.slice(e+1)],h=[...s.slice(0,e),...s.slice(e+1)];this.addActiveClasses(a),a.setAttribute("aria-selected","true"),this.addActiveClasses(r),this.removeHideClasses(r),h.forEach(o=>{o.removeAttribute("aria-selected"),this.removeActiveClasses(o)}),l.forEach(o=>{this.removeActiveClasses(o),this.addHideClasses(o)})}_clampIndex(e){return p.clamp(e,0,this.contentTargets.length-1)}_setMinHeight(){let e=0;this.contentTargets.forEach(s=>{let i=s.hasAttribute("tab-hidden");i&&this.removeHideClasses(s);let r=s.offsetHeight;r>e&&(e=r),i&&this.addHideClasses(s)}),this.contentTargets.forEach(s=>s.style.minHeight=e+"px")}}n(X,"values",{currentTab:Number,equalize:Boolean}),n(X,"targets",["link","content"]),n(X,"classes",["active","hide"]);class Ut extends u{get _duration(){return w.isPast(this._timestamp)?w.intervalToDuration({start:this._timestamp,end:new Date}):w.intervalToDuration({start:new Date,end:this._timestamp})}get _nextUpdate(){let e=this._duration;return e.years&&e.years>0||e.months&&e.months>0||e.days&&e.days>0?null:e.hours&&e.hours>0?18e5:3e4}timestampValueChanged(){this._timestamp=w.toDate(this.timestampValue*1e3)}connect(){if(!this.hasTimestampValue)throw new Error("Expected `timestampValue` to be present");this._update()}_update(){this.el.innerHTML=w.formatDistanceToNow(this._timestamp,{addSuffix:!0,includeSeconds:!0}),this._nextUpdate&&k(this,this._update,this._nextUpdate)}}n(Ut,"values",{timestamp:Number});class jt extends u{get defaultActiveClasses(){return["active"]}get defaultCollapsedClasses(){return["collapsed"]}initialize(){this._nodeClicked=this._nodeClicked.bind(this)}connect(){y(this),De(this,this.el,this.mutate,{subtree:!0,childList:!0}),this._setup()}disconnect(){this._teardown()}_setup(){this._setupNode(this.el)}_setupNode(e){const s=i=>{let r=i.parentElement;r&&(this._nodeActive(r)||this._hideNode(r),r.removeEventListener("click",this._nodeClicked),r.addEventListener("click",this._nodeClicked))};(e.tagName==="UL"||e.tagName==="OL")&&s(e),e.querySelectorAll("ul, ol").forEach(i=>s(i))}_teardown(){this.el.querySelectorAll("ul, ol, li").forEach(e=>this._teardownNode(e))}_teardownNode(e){[e,...Array.from(e.querySelectorAll("ul, ol, li"))].forEach(s=>{s.removeEventListener("click",this._nodeClicked),this.removeActiveClasses(s),this.removeCollapsedClasses(s)})}_nodeClicked(e){e&&e.stopImmediatePropagation();let s=e.target;!s||!this._hasNested(s)||(this._nodeActive(s)?this._hideNode(s):this._showNode(s))}_nodeActive(e){return this.activeClassesPresent(e)}_showNode(e){this.removeCollapsedClasses(e),this.addActiveClasses(e)}_hideNode(e){this.removeActiveClasses(e),this.addCollapsedClasses(e)}_hasNested(e){return e.querySelectorAll("ul, ol").length>0}mutate(e){for(const s of e)s.type==="childList"&&(Array.from(s.addedNodes||[]).forEach(i=>this._setupNode(i)),Array.from(s.removedNodes||[]).forEach(i=>this._teardownNode(i)))}}n(jt,"classes",["active","collapsed"]);class Ie extends u{get defaultActiveClasses(){return["active"]}get defaultInactiveClasses(){return["inactive"]}get _key(){return this.keyValue.replaceAll("#","")}get _anchor(){return window.location.hash.substr(1)}set _anchor(e){window.location.hash=e}connect(){y(this),requestAnimationFrame(()=>{this._checkAnchor(),c(this,window,"hashchange",this._checkAnchor)})}write(e){e==null||e.preventDefault(),this._anchor=this._key}_checkAnchor(){this._key===this._anchor?(this.dispatchEvent(this.el,"anchor-spy:active"),this.addActiveClasses(this.el),this.removeInactiveClasses(this.el)):(this.dispatchEvent(this.el,"anchor-spy:inactive"),this.addInactiveClasses(this.el),this.removeActiveClasses(this.el))}}n(Ie,"values",{key:String}),n(Ie,"classes",["active","inactive"]);class Wt extends u{get _pages(){return this.hasPagesValue?Math.abs(this.pagesValue):1}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1500}connect(){c(this,this.el,"click",this.goBack)}goBack(e){e==null||e.preventDefault(),history.go(-this._pages),this.el.href&&k(this,this.fallback,this._timeout)}fallback(){window.location.href=this.el.href}}n(Wt,"values",{timeout:Number,pages:Number});class Ne extends u{constructor(){super(...arguments);n(this,"_supported",!1)}connect(){this._supported=document.queryCommandSupported("copy"),this.hasRemoveUnusedValue&&this.removeUnusedValue&&(this._supported&&this.hasFallbackTarget?this.fallbackTarget.remove():this.hasCopyTarget&&this.copyTarget.remove())}select(e){e&&e.preventDefault(),this.sourceTarget.select()}copy(e){e&&e.preventDefault(),this.sourceTarget.select(),this._supported&&document.execCommand("copy")}}n(Ne,"targets",["source","button","copy","fallback"]),n(Ne,"values",{removeUnused:Boolean});class Kt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Are you sure?"}get _eventType(){if(ne(this.el))return"submit";if(ae(this.el))return"click";throw new Error("Can't handle confirmation on attached element")}connect(){requestAnimationFrame(()=>{c(this,this.el,this._eventType,this.confirm)})}confirm(e){window.confirm(this._message)||(e.preventDefault(),this.dispatchEvent(this.el,"confirm:cancelled"))}}n(Kt,"values",{message:String});class Gt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Do you want to leave this page? Changes you made may not be saved"}connect(){window.onbeforeunload=()=>this._message,c(this,window,"popstate",this.confirmNavigation),c(this,window,"submit",this.allowSubmit),c(this,window,["turbolinks:before-visit","turbo:before-visit"],this.confirmTurboNavigation)}disconnect(){window.onbeforeunload=null}allowSubmit(e){window.removeEventListener("popstate",this.confirmNavigation),window.onbeforeunload=null}confirmNavigation(e){return!1}confirmTurboNavigation(e){confirm(this._message)||e.preventDefault()}}n(Gt,"values",{message:String});class Jt extends u{connect(){console.log("Debug Controller",this,this.testTargets)}}n(Jt,"targets",["test"]);class Xt extends u{get _message(){return this.hasMessageValue?this.messageValue:"Submitting..."}get _timeout(){return this.hasTimeoutValue?this.timeoutValue:1e3}connect(){requestAnimationFrame(()=>{c(this,this.el,["click"],this.disable),c(this,window,["turbo:load","turbolinks:load"],this._enable)})}disable(e){let s=this.el;this._isDisabled(s)?(e==null||e.preventDefault(),e==null||e.stopImmediatePropagation()):(this._disable(),ut(this,s,this._message,this._timeout,this._enable))}enable(e){e==null||e.preventDefault();let s=this.el;this._isDisabled(s)&&this._enable()}_isDisabled(e){return P(e)?e.disabled:e.dataset.disabled=="true"}_disable(){let e=this.el;P(e)?e.disabled=!0:e.dataset.disabled="true"}_enable(){let e=this.el;P(e)?e.disabled=!1:e.dataset.disabled=void 0}}n(Xt,"values",{message:String,timeout:Number});class Yt extends u{dismiss(){this.el.remove()}}class Ps extends Yt{}class He extends u{get _id(){if(this.hasIdValue)return this.idValue;let e=this.el.id;if(e!=="")return e;throw new Error(`No ID value to uniquely identify this element. Please either specify data-${this.identifier}-id-value or give this element an 'id' attribute. `)}get _uniqueIdentifier(){return`${location.href} ${this._id}`}get _restoreOnLoad(){return this.hasRestoreOnLoadValue?this.restoreOnLoadValue:!0}get _element(){return this.hasElementTarget?this.elementTarget:this.el}initialize(){this.save=p.debounce(this.save.bind(this),300)}connect(){this._store=ot(this,this._uniqueIdentifier,{}),requestAnimationFrame(()=>{this._restoreOnLoad&&this.restore()})}clear(e){e&&e.preventDefault(),this._store.clear(),this.dispatchEvent(this._element,"element-save:cleared")}save(e){e&&e.preventDefault();let s=this._element,i=this.attributesValue.split(" "),r={};i.forEach(a=>r[a]=p.get(s,a)),this._store.value=r,this.dispatchEvent(s,"element-save:save:success")}restore(e){e&&e.preventDefault();let s=this._element;if(this._store.isEmpty())this.dispatchEvent(s,"element-save:restore:empty");else{const i=this._store.value;Object.keys(i).forEach(r=>p.set(s,r,i[r])),this.dispatchEvent(s,"element-save:restore:success")}}}n(He,"targets",["element"]),n(He,"values",{id:String,attributes:String,restoreOnLoad:Boolean});class Y extends u{get _container(){return this.hasContainerTarget?this.containerTarget:this.el}get _children(){let e=this._container;return this.hasScopeSelectorValue?Array.from(e.querySelectorAll(this.scopeSelectorValue)):Array.from(e.children)}connect(){y(this),De(this,this._container,this.mutate,{childList:!0}),this.checkEmpty()}mutate(e){this.checkEmpty()}checkEmpty(){let e=this._container,s=this._children;s.length===0?(this.removeNotEmptyClasses(),this.addEmptyClasses(),this.dispatchEvent(e,"dom:empty")):(this.addNotEmptyClasses(),this.removeEmptyClasses(),this.dispatchEvent(e,"dom:not-empty",{detail:{count:s.length}}))}}n(Y,"targets",["container"]),n(Y,"classes",["empty","notEmpty"]),n(Y,"values",{scopeSelector:String});class Zt extends u{get _mode(){return this.hasModeValue?this.modeValue:"mouseover"}get _supportsPrefetch(){var s,i;const e=document.createElement("link");return((s=e.relList)==null?void 0:s.supports)&&((i=e.relList)==null?void 0:i.supports("prefetch"))}get _href(){return this.el.href}get _existingPrefetch(){return(document.head.querySelectorAll(`link[rel="prefetch"][href="${this._href}"]`)||[]).length>0}get _connectionSuitable(){const e=navigator.connection;if(!e)return!0;if(e){if(e.saveData)return qe(this,"Data Saving is enabled"),!1;if(/2g/.test(e.effectiveType))return qe(this,"Network is too slow"),!1}return!0}connect(){if(!!this._supportsPrefetch)switch(this._mode){case"intersect":this._setupObserver();break;case"mouseover":c(this,this.el,"mouseover",this.prefetch,{once:!0});break;default:throw new Error(`'${this._mode}' is not a supported prefetch mode`)}}_setupObserver(){new IntersectionObserver(([s],i)=>{s.isIntersecting&&(this.prefetch(),i.unobserve(s.target))}).observe(this.element)}prefetch(){if(this._existingPrefetch||!this._connectionSuitable)return;const e=document.createElement("link");Object.assign(e,{rel:"prefetch",href:this._href,as:"document"}),document.head.appendChild(e)}}n(Zt,"values",{mode:String});class Qt extends qt{get defaultUnsupportedClasses(){return["unsupported"]}connect(){y(this),"print"in window||this.addUnsupportedClasses(),c(this,this.el,"click",this.print)}}n(Qt,"classes",["unsupported"]);class $s extends u{connect(){c(this,window,"message",this.messageReceived)}messageReceived(e){let s=e.data;s.hasOwnProperty("name")&&s.name==="iframe-body"&&s.hasOwnProperty("height")&&this.resize(s.height)}resize(e){this.el.style.height=`${e}px`}}class zs extends u{connect(){window.self!==window.top&&(c(this,window,"resize",this.postUpdate,{debounce:200}),this.postUpdate())}postUpdate(){let e={name:"iframe-body",height:this.getHeight()};window.parent.postMessage(e,"*")}getHeight(){const e=document.body,s=document.documentElement;return Math.max(e.scrollHeight,e.offsetHeight,s.clientHeight,s.scrollHeight,s.offsetHeight)}}class es extends u{connect(){requestAnimationFrame(()=>{k(this,()=>this.el.remove(),this.secondsValue*1e3)})}}n(es,"values",{seconds:Number});class Oe extends u{constructor(){super(...arguments);n(this,"_magicElement",null)}get defaultStuckClasses(){return["stuck"]}get _mode(){if(this.hasModeValue){if(!["top","bottom"].includes(this.modeValue))throw new Error(`The modeValue provided '${this.modeValue}' is not one of the recognised configuration options`);if(this.modeValue==="top")return"beforebegin"}return"afterend"}connect(){this._magicElement=document.createElement("div"),nt(this,this.el,this._mode,this._magicElement),new IntersectionObserver(s=>{s.forEach(i=>{i.target===this._magicElement&&(i.intersectionRatio===0?this.addStuckClasses():i.intersectionRatio===1&&this.removeStuckClasses())})},{threshold:[0,1]}).observe(this._magicElement)}}n(Oe,"classes",["stuck"]),n(Oe,"values",{mode:String});class ts extends F{connect(){if(!this.hasInsertValue)throw new Error("`insert` value was not specified");requestAnimationFrame(()=>{this.hasImmediateValue&&this.immediateValue&&this.execute()})}execute(e){e==null||e.preventDefault();let s=this.el,i=document.querySelector(this.targetValue);if(i==null){this.dispatchEvent(s,"teleport:error");return}let r=s.cloneNode(!0);switch(this.cleanup(r),this.insertValue){case"beforebegin":case"beforeend":case"afterend":case"afterbegin":i.insertAdjacentHTML(this.insertValue,r.outerHTML);break;case"replaceOuter":i.outerHTML=r.outerHTML;break;case"replaceInner":i.innerHTML=r.outerHTML;break;case"prepend":i.insertAdjacentHTML("afterbegin",r.outerHTML);break;case"append":i.insertAdjacentHTML("beforeend",r.outerHTML);break;default:throw new Error("`insert` value was not specified")}s.remove()}}n(ts,"values",{target:String,insert:String,immediate:Boolean});class ss extends F{constructor(){super(...arguments);n(this,"_previousState",{})}get _value(){if(this.hasValueValue)return this.valueValue;throw new Error("Expected `valueValue` to be present")}get _attribute(){if(this.hasAttributeValue)return this.attributeValue;throw new Error("Expected `attributeValue` to be present")}get _seconds(){if(this.hasSecondsValue)return this.secondsValue*1e3;throw new Error("Expected `secondsValue` to be present")}connect(){this.setState(),k(this,this.removeState,this._seconds)}disconnect(){this.removeState()}setState(){this._previousState[this._attribute]=p.get(this.el,this._attribute),p.set(this.el,this._attribute,this.valueValue)}removeState(){p.set(this.el,this._attribute,this._previousState[this._attribute])}}n(ss,"values",{attribute:String,seconds:Number,value:String});function is(t,e,s,i,r="temporary-state"){var a;(!t.dataset.controller||!((a=t.dataset.controller)==null?void 0:a.includes(r)))&&(t.dataset.controller=(t.dataset.controller||` ${r} `).trim().replaceAll(" "," ")),t[p.camelCase(`${r}-attribute-value`)]=e,t[p.camelCase(`${r}-seconds-value`)]=i.toString()}function Us(t,e,s){is(t,"className",e,s)}function js(t,e,s){s=s.bind(t);const i=a=>{e.contains(a.target)||!st(e)||s(a)};let{teardown:r}=c(t,window,["click","touchend"],i);return v(t,()=>{},r),{teardown:r}}function Ws(t,e,s,i){let r=null,a=null;if(s){s=s.bind(t);let{teardown:o}=c(t,e,"mouseenter",s);r=o}if(i){i=i.bind(t);let{teardown:o}=c(t,e,"mouseleave",i);a=o}let l=()=>{},h=()=>{r&&r(),a&&a()};return v(t,l,h),{teardown:h}}class Be extends u{connect(){if(!this.hasClassValue)throw new Error("data-toggle-class-class-value must not be empty");(this.hasMouseEnterValue||this.hasMouseLeaveValue)&&Ws(this,this.el,this.mouseEnter,this.mouseLeave),this.hasClickAwayValue&&this.clickAwayValue&&js(this,this.el,this.clickOutside),requestAnimationFrame(()=>{this.hasInitialValue&&(this.initialValue==="on"?this.toggleTargets.forEach(e=>this._elementOn(e)):this.toggleTargets.forEach(e=>this._elementOff(e)))})}clickOutside(){this.toggleTargets.forEach(e=>{this._elementWasToggled(e)&&(this._elementToggleStatus(e),this._elementToggle(e))})}mouseEnter(){if(this.hasMouseEnterValue)switch(this.mouseEnterValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}mouseLeave(){if(this.hasMouseLeaveValue)switch(this.mouseLeaveValue){case"on":this.on();break;case"off":this.off();break;case"toggle":this.toggle();break}return{}}on(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOn(s)})}off(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementOff(s)})}toggle(e){this.toggleTargets.forEach(s=>{this._elementToggleStatus(s),this._elementToggle(s)})}_elementWasToggled(e){return e.dataset.toggled=="true"}_elementToggleStatus(e){this._elementWasToggled(e)?delete e.dataset.toggled:e.dataset.toggled="true"}_elementToggle(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i))}_elementOn(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!0))}_elementOff(e){this.classValue.split(" ").forEach(i=>e.classList.toggle(i,!1))}}n(Be,"targets",["toggle"]),n(Be,"values",{class:String,mouseEnter:String,mouseLeave:String,clickAway:Boolean,initial:String});function Ks(t){const e=t.disconnect.bind(t);let s=!1,i=(o,d)=>{o.forEach(m=>{m.type==="childList"&&Array.from(m.addedNodes).some(g=>g.tagName==="TRIX-TOOLBAR")&&(l(),d.disconnect())})},r=o=>H(t,"pasteEvent").call(t,o),a=new MutationObserver(i),l=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let o=t.element,d=t.element.parentElement;if(d==null)throw new Error("Could not traverse DOM tree from <trix-editor>");o.addEventListener("trix-paste",r);let m=d.querySelector("trix-toolbar");if(!s&&!m){s=!0,a.observe(d,{childList:!0});return}else if(m)a.disconnect();else throw new Error("Could not find an instance of <trix-toolbar> that is a sibling of this <trix-editor>");H(t,"install").call(t,{toolbar:m,editor:o})},h=()=>{if(t.element.tagName!=="TRIX-EDITOR")throw new Error("Expected controller to be mounted on an instance of <trix-editor>");let o=t.element,d=t.element.parentElement;if(d==null)throw new Error("Could not traverse DOM tree from <trix-editor>");o.removeEventListener("trix-paste",r);let m=d.querySelector("trix-toolbar");if(!m)throw new Error("Could not find <trix-toolbar> that is a sibling of this <trix-editor> element");H(t,"uninstall").call(t,{toolbar:m,editor:o})};l(),Object.assign(t,{disconnect(){a.disconnect(),h(),H(t,"uninstall").call({toolbar,editor:t.element}),e()}})}class Gs extends u{get enabledBehaviours(){let e=i=>i!==void 0&&i!=="false",s=(i,r)=>e(i)?[r]:[];return[...s(this.el.dataset.noBold,this.bold),...s(this.el.dataset.noBulletList,this.bulletList),...s(this.el.dataset.noCode,this.code),...s(this.el.dataset.noHeading,this.heading),...s(this.el.dataset.noItalic,this.italic),...s(this.el.dataset.noStrikethrough,this.strikethrough),...s(this.el.dataset.noLink,this.link),...s(this.el.dataset.noIndents,this.indents),...s(this.el.dataset.noNumberList,this.numberList),...s(this.el.dataset.noQuote,this.quote),...s(this.el.dataset.noFileUploads,this.fileUploads)]}get bold(){return this.formattingHandlers(".trix-button--icon-bold","bold")}get bulletList(){return this.formattingHandlers(".trix-button--icon-bullet-list","bullet-list")}get code(){return this.formattingHandlers(".trix-button--icon-code","code")}get heading(){return this.formattingHandlers(".trix-button--icon-heading-1","heading")}get italic(){return this.formattingHandlers(".trix-button--icon-italic","italic")}get strikethrough(){return this.formattingHandlers(".trix-button--icon-strike","strike")}get link(){return this.formattingHandlers(".trix-button--icon-link","href")}get indents(){return this.simpleHideShowHandlers([".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level",".trix-button--icon-decrease-nesting-level, .trix-button--icon-increase-nesting-level"].join(", "))}get numberList(){return this.simpleHideShowHandlers(".trix-button--icon-number-list")}get quote(){return this.simpleHideShowHandlers(".trix-button--icon-quote")}get fileUploads(){let e=".trix-button-group.trix-button-group--file-tools",s=a=>a==null?void 0:a.preventDefault(),i=this,r=this.el;return{install(a){i.simpleHideShowHandlers(e).install(a),i.el.addEventListener("trix-file-accept",s)},pasteEvent(a){let{dataTransfer:l,html:h}=a.paste,{editor:o}=r;(l.files.length>0||h.includes("<img"))&&(alert("The content you pasted contains images and/or files. File uploads are not supported."),o.undo())},uninstall(a){i.simpleHideShowHandlers(e).uninstall(a),i.el.removeEventListener("trix-file-accept",s)}}}connect(){Ks(this)}install(e){this.enabledBehaviours.forEach(s=>s.install(e))}pasteEvent(e){this.enabledBehaviours.forEach(s=>s.pasteEvent&&s.pasteEvent(e))}uninstall(e){this.enabledBehaviours.forEach(s=>s.uninstall(e))}simpleHideShowHandlers(e){return{install:({toolbar:s})=>this.hideToolbarSelector(s,e),uninstall:({toolbar:s})=>this.showToolbarSelector(s,e)}}formattingHandlers(e,s){let i=this.el,{editor:r}=i;return{install:a=>{this.simpleHideShowHandlers(e).install(a)},pasteEvent(a){let{range:l}=a.paste,h=i.editor.getSelectedRange();r.setSelectedRange(l),r.deactivateAttribute(s),r.setSelectedRange(h)},uninstall:a=>{this.simpleHideShowHandlers(e).uninstall(a)}}}showToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="")}hideToolbarSelector(e,s){e.querySelectorAll(s).forEach(i=>i.style.display="none")}}class rs extends u{toggle(e){e==null||e.preventDefault();let i=this._getFrame().src;i==null||i!==this._getSrc()?this._setSrc():this._clear()}setSrc(e){e==null||e.preventDefault(),this._setSrc()}clear(e){e==null||e.preventDefault(),this._clear()}_setSrc(){let e=this._getFrame();this.hasLoadingMessageValue&&(e.innerHTML=this.loadingMessageValue),e.src=this._getSrc()}_clear(){let e=this._getFrame();e.src="",e.innerHTML=""}_getFrame(){let e=document.getElementById(`${this.frameIdValue}`);if(e==null)throw new Error(`Could not find frame with ID '${this.frameIdValue}'`);if(re(e))return e;throw new Error(`Element targeted by ID '${this.frameIdValue}'`)}_getSrc(){let e=this.el;if(this.hasSrcValue)return this.srcValue;if(ae(e))return e.href;throw new Error("No link given to drive frame to")}}n(rs,"values",{frameId:String,src:String,loadingMessage:String});class as extends u{get _poll(){return this.hasPollValue?this.pollValue:!1}connect(){let e=this.el;if(re(e)){if(e.src)throw new Error("The provided <turbo-frame> element has no `src` attribute.")}else throw new Error("Expected controller to be mounted on a <turbo-frame> element.");this._poll&&requestAnimationFrame(()=>k(this,this.refresh,this.intervalValue))}refresh(e){e==null||e.preventDefault();let s=this.el;s.src=s.src}}n(as,"values",{interval:Number,poll:Boolean});exports.AlertController=Ot;exports.AnchorSpyController=Ie;exports.AsyncBlockController=fe;exports.AutoSubmitFormController=ct;exports.AutosizeController=xs;exports.BackLinkController=Wt;exports.BaseController=u;exports.CharCountController=U;exports.CheckboxDisableInputsController=pe;exports.CheckboxEnableInputsController=_e;exports.CheckboxSelectAllController=dt;exports.CheckboxXORController=ft;exports.ClipboardController=Ne;exports.ClockController=$t;exports.ConfirmController=Kt;exports.ConfirmNavigationController=Gt;exports.CountdownController=J;exports.DebugController=Jt;exports.DetectDirtyController=Ms;exports.DetectDirtyFormController=Ds;exports.DisableWithController=Xt;exports.DismissableController=Yt;exports.DurationController=zt;exports.ElementSaveController=He;exports.EmptyDomController=Y;exports.EnableInputsController=be;exports.EphemeralController=F;exports.EventBus=M;exports.FallbackImageController=Ce;exports.FocusStealController=gt;exports.FormRcController=ve;exports.FormSaveController=pt;exports.FullscreenController=Rs;exports.IntersectionController=Bt;exports.IntervalController=Ft;exports.LazyBlockController=Vs;exports.LightboxImageController=Ve;exports.LimitedSelectionCheckboxesController=we;exports.LoadBlockController=D;exports.MediaPlayerController=Vt;exports.NavigateFormErrorsController=j;exports.NestedFormController=ye;exports.PasswordConfirmController=Ee;exports.PasswordPeekController=_t;exports.PollBlockController=ge;exports.PrefetchController=Zt;exports.PresenceController=Rt;exports.PrintButtonController=Qt;exports.PrintController=qt;exports.RemoteFormController=Te;exports.RemoveController=Ps;exports.ResponsiveIframeBodyController=zs;exports.ResponsiveIframeWrapperController=$s;exports.ScrollContainerController=xt;exports.ScrollIntoFocusController=kt;exports.ScrollToBottomController=Mt;exports.ScrollToController=At;exports.ScrollToTopController=Dt;exports.SelfDestructController=es;exports.SignalActionController=It;exports.SignalInputController=Nt;exports.SignalVisibilityController=Ae;exports.StickyController=Oe;exports.StorageSerializers=lt;exports.SyncInputsController=bt;exports.TableSortController=Ht;exports.TableTruncateController=Le;exports.TabsController=X;exports.TeleportController=ts;exports.TemporaryStateController=ss;exports.TimeDistanceController=Ut;exports.TimeoutController=Pt;exports.ToggleClassController=Be;exports.TreeViewController=jt;exports.TrixModifierController=Gs;exports.TurboFrameRCController=rs;exports.TurboFrameRefreshController=as;exports.UserFocusController=qs;exports.ValueWarnController=K;exports.WordCountController=G;exports.applyTemporaryClass=Us;exports.applyTemporaryState=is;exports.createHiddenButton=et;exports.createHiddenInput=tt;exports.getAllRadiosInGroup=ue;exports.getOtherRadiosInGroup=he;exports.getScrollParent=R;exports.insertElement=le;exports.insertHiddenButton=oe;exports.insertHiddenInput=ws;exports.isDirty=As;exports.isElementCheckable=S;exports.isElementInViewport=st;exports.isFormDirty=mt;exports.isHTMLAnchorElement=ae;exports.isHTMLButtonButtonElement=Ge;exports.isHTMLButtonElement=_s;exports.isHTMLButtonInputElement=vs;exports.isHTMLFormElement=ne;exports.isHTMLImageElement=bs;exports.isHTMLInputElement=_;exports.isHTMLLabelElement=ps;exports.isHTMLLinkElement=gs;exports.isHTMLResetButtonElement=Xe;exports.isHTMLResetInputElement=Ke;exports.isHTMLSelectElement=A;exports.isHTMLSubmitButtonElement=Je;exports.isHTMLSubmitInputElement=We;exports.isHTMLTextAreaElement=q;exports.isTurboFrame=re;exports.isTypeOfButtonableElement=P;exports.isTypeOfFormInputElement=Qe;exports.isTypeOfResetButtonElement=Ye;exports.isTypeOfSubmitButtonElement=Ze;exports.requestReset=it;exports.requestSubmit=ce;exports.scrollAbsoluteBottom=se;exports.scrollAbsoluteLeft=ie;exports.scrollAbsoluteRight=fs;exports.scrollAbsoluteTop=te;exports.scrollDown=ze;exports.scrollLeft=Ue;exports.scrollRight=je;exports.scrollToElement=V;exports.scrollUp=$e;exports.useCollectionEventListener=x;exports.useCollectionEventListeners=Es;exports.useEventListener=c;exports.useEventListeners=ys;exports.useFullscreen=at;exports.useGeolocation=Ts;exports.useInjectedElement=nt;exports.useInjectedFragment=de;exports.useInjectedHTML=Cs;exports.useInterval=N;exports.useLocalStorage=ot;exports.useTemporaryContent=ut;exports.useTimeout=k;
|
|
2
2
|
//# sourceMappingURL=stimulus-library.cjs.js.map
|