@graupl/graupl 1.0.0-beta.24 → 1.0.0-beta.26

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.
Files changed (83) hide show
  1. package/dist/css/component/accordion.css +1 -1
  2. package/dist/css/component/accordion.css.map +1 -1
  3. package/dist/css/component/list.css +1 -1
  4. package/dist/css/component/list.css.map +1 -1
  5. package/dist/css/component.css +1 -1
  6. package/dist/css/component.css.map +1 -1
  7. package/dist/css/graupl.css +1 -1
  8. package/dist/css/graupl.css.map +1 -1
  9. package/dist/js/accordion.js +2 -2
  10. package/dist/js/accordion.js.map +1 -1
  11. package/dist/js/alert.js +2 -2
  12. package/dist/js/alert.js.map +1 -1
  13. package/dist/js/carousel.js +2 -2
  14. package/dist/js/carousel.js.map +1 -1
  15. package/dist/js/component/accordion.cjs.js +2 -2
  16. package/dist/js/component/accordion.cjs.js.map +1 -1
  17. package/dist/js/component/accordion.es.js +2 -2
  18. package/dist/js/component/accordion.es.js.map +1 -1
  19. package/dist/js/component/accordion.iife.js +2 -2
  20. package/dist/js/component/accordion.iife.js.map +1 -1
  21. package/dist/js/component/alert.cjs.js +2 -2
  22. package/dist/js/component/alert.cjs.js.map +1 -1
  23. package/dist/js/component/alert.es.js +2 -2
  24. package/dist/js/component/alert.es.js.map +1 -1
  25. package/dist/js/component/alert.iife.js +2 -2
  26. package/dist/js/component/alert.iife.js.map +1 -1
  27. package/dist/js/component/carousel.cjs.js +2 -2
  28. package/dist/js/component/carousel.cjs.js.map +1 -1
  29. package/dist/js/component/carousel.es.js +2 -2
  30. package/dist/js/component/carousel.es.js.map +1 -1
  31. package/dist/js/component/carousel.iife.js +2 -2
  32. package/dist/js/component/carousel.iife.js.map +1 -1
  33. package/dist/js/component/disclosure.cjs.js +2 -2
  34. package/dist/js/component/disclosure.cjs.js.map +1 -1
  35. package/dist/js/component/disclosure.es.js +2 -2
  36. package/dist/js/component/disclosure.es.js.map +1 -1
  37. package/dist/js/component/disclosure.iife.js +2 -2
  38. package/dist/js/component/disclosure.iife.js.map +1 -1
  39. package/dist/js/component/tabs.cjs.js +2 -2
  40. package/dist/js/component/tabs.cjs.js.map +1 -1
  41. package/dist/js/component/tabs.es.js +2 -2
  42. package/dist/js/component/tabs.es.js.map +1 -1
  43. package/dist/js/component/tabs.iife.js +2 -2
  44. package/dist/js/component/tabs.iife.js.map +1 -1
  45. package/dist/js/disclosure.js +2 -2
  46. package/dist/js/disclosure.js.map +1 -1
  47. package/dist/js/generator/accordion.cjs.js +2 -2
  48. package/dist/js/generator/accordion.cjs.js.map +1 -1
  49. package/dist/js/generator/accordion.es.js +2 -2
  50. package/dist/js/generator/accordion.es.js.map +1 -1
  51. package/dist/js/generator/accordion.iife.js +2 -2
  52. package/dist/js/generator/accordion.iife.js.map +1 -1
  53. package/dist/js/generator/alert.cjs.js +2 -2
  54. package/dist/js/generator/alert.cjs.js.map +1 -1
  55. package/dist/js/generator/alert.es.js +2 -2
  56. package/dist/js/generator/alert.es.js.map +1 -1
  57. package/dist/js/generator/alert.iife.js +2 -2
  58. package/dist/js/generator/alert.iife.js.map +1 -1
  59. package/dist/js/generator/carousel.cjs.js +2 -2
  60. package/dist/js/generator/carousel.cjs.js.map +1 -1
  61. package/dist/js/generator/carousel.es.js +2 -2
  62. package/dist/js/generator/carousel.es.js.map +1 -1
  63. package/dist/js/generator/carousel.iife.js +2 -2
  64. package/dist/js/generator/carousel.iife.js.map +1 -1
  65. package/dist/js/generator/disclosure.cjs.js +2 -2
  66. package/dist/js/generator/disclosure.cjs.js.map +1 -1
  67. package/dist/js/generator/disclosure.es.js +2 -2
  68. package/dist/js/generator/disclosure.es.js.map +1 -1
  69. package/dist/js/generator/disclosure.iife.js +2 -2
  70. package/dist/js/generator/disclosure.iife.js.map +1 -1
  71. package/dist/js/generator/tabs.cjs.js +2 -2
  72. package/dist/js/generator/tabs.cjs.js.map +1 -1
  73. package/dist/js/generator/tabs.es.js +2 -2
  74. package/dist/js/generator/tabs.es.js.map +1 -1
  75. package/dist/js/generator/tabs.iife.js +2 -2
  76. package/dist/js/generator/tabs.iife.js.map +1 -1
  77. package/dist/js/graupl.js +2 -8
  78. package/dist/js/graupl.js.map +1 -1
  79. package/dist/js/navigation.js +1 -1
  80. package/dist/js/navigation.js.map +1 -1
  81. package/dist/js/tabs.js +2 -2
  82. package/dist/js/tabs.js.map +1 -1
  83. package/package.json +1 -1
package/dist/js/graupl.js CHANGED
@@ -1,11 +1,5 @@
1
- (function(){function g(t,e){try{if(typeof e!="object"){const s=typeof e;throw new TypeError(`Elements given to isValidInstance() must be inside of an object. "${s}" given.`)}for(const s in e)if(!(e[s]instanceof t)){const i=typeof e[s];throw new TypeError(`${s} must be an instance of ${t.name}. "${i}" given.`)}return{status:!0,error:null}}catch(s){return{status:!1,error:s}}}function o(t,e){try{if(typeof e!="object"){const s=typeof e;throw new TypeError(`Values given to isValidType() must be inside of an object. "${s}" given.`)}for(const s in e){const i=typeof e[s];if(i!==t)throw new TypeError(`${s} must be a ${t}. "${i}" given.`)}return{status:!0,error:null}}catch(s){return{status:!1,error:s}}}function I(t){try{if(typeof t!="object"){const e=typeof t;throw new TypeError(`Values given to isQuerySelector() must be inside of an object. "${e}" given.`)}for(const e in t)try{if(t[e]===null)throw new Error;document.querySelector(t[e])}catch{throw new TypeError(`${e} must be a valid query selector. "${t[e]}" given.`)}return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function l(t){try{if(typeof t!="object"||Array.isArray(t)){const e=typeof t;throw new TypeError(`Values given to isValidClassList() must be inside of an object. "${e}" given.`)}for(const e in t){const s=typeof t[e];if(s!=="string")if(Array.isArray(t[e]))t[e].forEach(i=>{if(typeof i!="string")throw new TypeError(`${e} must be a string or an array of strings. An array containing non-strings given.`)});else throw new TypeError(`${e} must be a string or an array of strings. "${s}" given.`);else{const i={};i[e]=t[e],I(i)}}return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function y(t,e){if(o("string",{tagName:t}).status&&g(HTMLElement,e).status){const s=t.toLowerCase();let i=!0;for(const r in e)e[r].tagName.toLowerCase()!==s&&(i=!1);return i}else return!1}function F(t){try{if(typeof t!="object"){const s=typeof t;throw new TypeError(`Values given to isValidState() must be inside of an object. "${s}" given.`)}const e=["none","self","child"];for(const s in t)if(!e.includes(t[s]))throw new TypeError(`${s} must be one of the following values: ${e.join(", ")}. "${t[s]}" given.`);return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function K(t){try{if(typeof t!="object"){const s=typeof t;throw new TypeError(`Values given to isValidEvent() must be inside of an object. "${s}" given.`)}const e=["none","mouse","keyboard","character"];for(const s in t)if(!e.includes(t[s]))throw new TypeError(`${s} must be one of the following values: ${e.join(", ")}. "${t[s]}" given.`);return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function h(t,e){t===""||t.length===0||(typeof t=="string"?e.classList.add(t):e.classList.add(...t))}function c(t,e){t===""||t.length===0||(typeof t=="string"?e.classList.remove(t):e.classList.remove(...t))}var j=class{_dom={item:null,toggle:null,header:null,content:null};_elements={parentAccordion:null};_open=!1;_locked=!1;_expandEvent=new CustomEvent("grauplAccordionItemExpand",{bubbles:!0,detail:{item:this}});_collapseEvent=new CustomEvent("grauplAccordionItemCollapse",{bubbles:!0,detail:{item:this}});constructor({accordionItemElement:t,accordionItemToggleElement:e,accordionItemHeaderElement:s,accordionItemContentElement:i,parentAccordion:r=null}){this._dom.item=t,this._dom.toggle=e,this._dom.header=s,this._dom.content=i,this._elements.parentAccordion=r}initialize(){this._setIds(),this._setAriaAttributes(),this.dom.toggle.getAttribute("aria-expanded")==="true"?this.show(!1,!1):this.hide(!1,!1)}get dom(){return this._dom}get elements(){return this._elements}get isOpen(){return this._open}get isLocked(){return this._locked}set isOpen(t){o("boolean",{value:t}),this._open!==t&&(this._open=t)}_setIds(){const{key:t}=this.elements.parentAccordion,e=this.elements.parentAccordion.dom.accordionItems.indexOf(this.dom.item);this.dom.item.id=this.dom.item.id||`accordion-item-${t}-${e}`,this.dom.toggle.id=this.dom.toggle.id||`accordion-item-toggle-${t}-${e}`,this.dom.header.id=this.dom.header.id||`accordion-item-header-${t}-${e}`,this.dom.content.id=this.dom.content.id||`accordion-item-content-${t}-${e}`}_setAriaAttributes(){y("button",{toggle:this.dom.toggle})||this.dom.toggle.setAttribute("role","button"),this.dom.toggle.getAttribute("aria-expanded")!=="true"&&this.dom.toggle.setAttribute("aria-expanded","false"),this.dom.toggle.setAttribute("aria-controls",this.dom.content.id),y("section",{content:this.dom.content})||this.dom.content.setAttribute("role","region"),this.dom.content.setAttribute("aria-labelledby",this.dom.toggle.id)}show(t=!0,e=!0){if(this._open)return;const{closeClass:s,openClass:i,transitionClass:r,openDuration:a}=this.elements.parentAccordion;this.dom.toggle.setAttribute("aria-expanded","true"),e&&r!==""?(h(r,this.dom.item),requestAnimationFrame(()=>{c(s,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{h(i,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height+this.dom.content.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{setTimeout(()=>{c(r,this.dom.item),this.dom.item.style.height=""},a)})})})):(h(i,this.dom.item),c(s,this.dom.item)),this._open=!0,this.elements.parentAccordion.allowMultipleExpand||(this.unlockSiblings(),this.closeSiblings()),this.elements.parentAccordion.allowNoExpand||(this.elements.parentAccordion.openAccordionItems.length<=1?this.lock():this.unlockSiblings()),t&&this.dom.item.dispatchEvent(this._expandEvent)}hide(t=!0,e=!0){if(!this._open||!this.elements.parentAccordion.allowNoExpand&&this.elements.parentAccordion.openAccordionItems.length<=1)return;const{closeClass:s,openClass:i,transitionClass:r,closeDuration:a}=this.elements.parentAccordion;this.dom.toggle.setAttribute("aria-expanded","false"),e&&r!==""?(h(r,this.dom.item),this.dom.item.style.height=`${this.dom.item.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{c(i,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{h(s,this.dom.item),requestAnimationFrame(()=>{setTimeout(()=>{c(r,this.dom.item),this.dom.item.style.height=""},a)})})})):(h(s,this.dom.item),c(i,this.dom.item)),this._open=!1,!this.elements.parentAccordion.allowNoExpand&&this.elements.parentAccordion.openAccordionItems.length===1&&this.elements.parentAccordion.openAccordionItems[0].lock(),t&&this.dom.item.dispatchEvent(this._collapseEvent)}toggle(){this.isOpen?this.hide():this.show()}focus(){this.dom.toggle.focus()}blur(){this.dom.toggle.blur()}lock(){this._locked=!0,this.dom.toggle.setAttribute("disabled","true")}unlock(){this._locked=!1,this.dom.toggle.removeAttribute("disabled")}closeSiblings(){this.elements.parentAccordion&&this.elements.parentAccordion.elements.accordionItems.forEach(t=>{t!==this&&t.hide()})}unlockSiblings(){this.elements.parentAccordion&&this.elements.parentAccordion.elements.accordionItems.forEach(t=>{t!==this&&t.unlock()})}},M=j;function _(t){try{const e=t.key||t.keyCode,s={Enter:e==="Enter"||e===13,Space:e===" "||e==="Spacebar"||e===32,Escape:e==="Escape"||e==="Esc"||e===27,ArrowUp:e==="ArrowUp"||e==="Up"||e===38,ArrowRight:e==="ArrowRight"||e==="Right"||e===39,ArrowDown:e==="ArrowDown"||e==="Down"||e===40,ArrowLeft:e==="ArrowLeft"||e==="Left"||e===37,Home:e==="Home"||e===36,End:e==="End"||e===35,Tab:e==="Tab"||e===9};return Object.keys(s).find(i=>s[i]===!0)||""}catch{return""}}function m(t){t.preventDefault(),t.stopPropagation()}function G(t=null){window.Graupl=window.Graupl||{},o("string",{type:t})&&(window.Graupl[t]=window.Graupl[t]||{})}function H(t=null){return o("string",{type:t})?window.Graupl[t]:window.Graupl}function P(t,e={}){o("string",{type:t})&&o("object",{data:e})&&(window.Graupl[t]=e)}function N(t){o("string",{type:t})&&(window.Graupl[t]={})}function V(t,e,s){o("string",{type:t,key:e})&&(window.Graupl[t][e]=s)}function B(t,e){return o("string",{type:t,key:e})?window.Graupl[t][e]:null}function W(t,e){o("string",{type:t,key:e})&&delete window.Graupl[t][e]}var f={initializeStorage:G,getStorage:H,setStorage:P,clearStorage:N,pushToStorage:V,getFromStorage:B,removeFromStorage:W},R=class{_dom={accordion:null,accordionItems:[],accordionItemToggles:[],accordionItemHeaders:[],accordionItemContents:[]};_domLock=["accordion"];_selectors={accordionItems:"",accordionItemToggles:"",accordionItemHeaders:"",accordionItemContents:""};_elements={accordionItems:[]};_openClass="show";_closeClass="hide";_transitionClass="transitioning";_transitionDuration=300;_openDuration=-1;_closeDuration=-1;_optionalKeySupport=!0;_allowMultipleExpand=!0;_allowNoExpand=!0;_currentChild=0;_prefix="graupl-";_key="";_errors=[];constructor({accordionElement:t,accordionItemSelector:e=".accordion-item",accordionItemToggleSelector:s=".accordion-item-toggle",accordionItemHeaderSelector:i=".accordion-item-header",accordionItemContentSelector:r=".accordion-item-content",openClass:a="show",closeClass:d="hide",transitionClass:n="transitioning",transitionDuration:u=300,openDuration:p=-1,closeDuration:E=-1,optionalKeySupport:w=!1,allowMultipleExpand:b=!0,allowNoExpand:k=!0,prefix:A="graupl-",key:O=null,initialize:L=!1}){this._dom.accordion=t,this._selectors.accordionItems=e,this._selectors.accordionItemToggles=s,this._selectors.accordionItemHeaders=i,this._selectors.accordionItemContents=r,this._openClass=a||"",this._closeClass=d||"",this._transitionClass=n||"",this._transitionDuration=u,this._openDuration=p,this._closeDuration=E,this._optionalKeySupport=w,this._allowMultipleExpand=b,this._allowNoExpand=k,this._prefix=A||"",this._key=O||"",L&&this.initialize()}initialize(){try{if(!this._validate())throw new Error(`Graupl Accordion: cannot initialize accordion. The following errors have been found:
1
+ (function(){function A(t,e){try{if(typeof e!="object"){const s=typeof e;throw new TypeError(`Elements given to isValidInstance() must be inside of an object. "${s}" given.`)}for(const s in e)if(!(e[s]instanceof t)){const i=typeof e[s];throw new TypeError(`${s} must be an instance of ${t.name}. "${i}" given.`)}return{status:!0,error:null}}catch(s){return{status:!1,error:s}}}function o(t,e){try{if(typeof e!="object"){const s=typeof e;throw new TypeError(`Values given to isValidType() must be inside of an object. "${s}" given.`)}for(const s in e){const i=typeof e[s];if(i!==t)throw new TypeError(`${s} must be a ${t}. "${i}" given.`)}return{status:!0,error:null}}catch(s){return{status:!1,error:s}}}function N(t){try{if(typeof t!="object"){const e=typeof t;throw new TypeError(`Values given to isQuerySelector() must be inside of an object. "${e}" given.`)}for(const e in t)try{if(t[e]===null)throw new Error;document.querySelector(t[e])}catch{throw new TypeError(`${e} must be a valid query selector. "${t[e]}" given.`)}return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function u(t){try{if(typeof t!="object"||Array.isArray(t)){const e=typeof t;throw new TypeError(`Values given to isValidClassList() must be inside of an object. "${e}" given.`)}for(const e in t){const s=typeof t[e];if(s!=="string")if(Array.isArray(t[e]))t[e].forEach(i=>{if(typeof i!="string")throw new TypeError(`${e} must be a string or an array of strings. An array containing non-strings given.`)});else throw new TypeError(`${e} must be a string or an array of strings. "${s}" given.`);else{const i={};i[e]=t[e],N(i)}}return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function b(t,e){if(o("string",{tagName:t}).status&&A(HTMLElement,e).status){const s=t.toLowerCase();let i=!0;for(const r in e)e[r].tagName.toLowerCase()!==s&&(i=!1);return i}else return!1}function G(t){try{if(typeof t!="object"){const s=typeof t;throw new TypeError(`Values given to isValidState() must be inside of an object. "${s}" given.`)}const e=["none","self","child"];for(const s in t)if(!e.includes(t[s]))throw new TypeError(`${s} must be one of the following values: ${e.join(", ")}. "${t[s]}" given.`);return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function B(t){try{if(typeof t!="object"){const s=typeof t;throw new TypeError(`Values given to isValidEvent() must be inside of an object. "${s}" given.`)}const e=["none","mouse","keyboard","character"];for(const s in t)if(!e.includes(t[s]))throw new TypeError(`${s} must be one of the following values: ${e.join(", ")}. "${t[s]}" given.`);return{status:!0,error:null}}catch(e){return{status:!1,error:e}}}function n(t,e){t===""||t.length===0||(typeof t=="string"?e.classList.add(t):e.classList.add(...t))}function a(t,e){t===""||t.length===0||(typeof t=="string"?e.classList.remove(t):e.classList.remove(...t))}var D=class{constructor(t,e={}){this._equals=e.equals||Object.is,this._current=t,this._committed=t}get value(){return this._current}set value(t){this._current=t}get committed(){return this._committed}get isDirty(){return!this._equals(this._current,this._committed)}commit(){return this._committed=this._current,this}reset(){return this._current=this._committed,this}update(t){return this._current=t(this._current),this}};function V(t=null){window.Graupl=window.Graupl||{},o("string",{type:t})&&(window.Graupl[t]=window.Graupl[t]||{})}function R(t=null){return o("string",{type:t})?window.Graupl[t]:window.Graupl}function J(t,e={}){o("string",{type:t})&&o("object",{data:e})&&(window.Graupl[t]=e)}function U(t){o("string",{type:t})&&(window.Graupl[t]={})}function W(t,e,s){o("string",{type:t,key:e})&&(window.Graupl[t][e]=s)}function X(t,e){return o("string",{type:t,key:e})?window.Graupl[t][e]:null}function Y(t,e){o("string",{type:t,key:e})&&delete window.Graupl[t][e]}var E={initializeStorage:V,getStorage:R,setStorage:J,clearStorage:U,pushToStorage:W,getFromStorage:X,removeFromStorage:Y},Z=class{_dom={};_protectedDOMElements=[];_selectors={};_elements={};_classes={initialize:""};_durations={};_delays={};_focusState="none";_currentEvent="none";_breakpoint="";_mediaQueryString="";_mediaQueryList=null;_mediaQueryListEventCallback=t=>{t.matches};_intervals={};_timeouts={};_listeners=[];_events={};_prefix="graupl-";_key="";_storageKey="components";_id="";_valid=!0;_errors=[];constructor({prefix:t="graupl-",key:e=null,initializeClass:s="initializing"}={}){this._classes.initialize=s||"",this._prefix=t||"",this._key=e||""}initialize(){try{if(!this._validate())throw new Error(`Graupl ${this.constructor.name}: Cannot initialize component. The following errors have been found:
2
2
  - ${this.errors.join(`
3
- - `)}`);this._generateKey(),this._setDOMElements(),this._setIds(),this._createChildElements(),this._handleFocus(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),this._setTransitionDurations(),f.initializeStorage("accordions"),f.pushToStorage("accordions",this.dom.accordion.id,this)}catch(t){console.error(t)}}get openClass(){return this._openClass}get closeClass(){return this._closeClass}get transitionClass(){return this._transitionClass}get transitionDuration(){return this._transitionDuration}get openDuration(){return this._openDuration===-1?this.transitionDuration:this._openDuration}get closeDuration(){return this._closeDuration===-1?this.transitionDuration:this._closeDuration}get currentChild(){return this._currentChild}get dom(){return this._dom}get elements(){return this._elements}get selectors(){return this._selectors}get optionalKeySupport(){return this._optionalKeySupport}get currentAccordionItem(){return this.elements.accordionItems[this.currentChild]}get openAccordionItems(){return this.elements.accordionItems.filter(t=>t.isOpen)}get allowMultipleExpand(){return this._allowMultipleExpand}get allowNoExpand(){return this._allowNoExpand}get prefix(){return this._prefix}get key(){return this._key}get errors(){return this._errors}set openClass(t){l({openClass:t}),this._openClass!==t&&(this._openClass=t)}set closeClass(t){l({closeClass:t}),this._closeClass!==t&&(this._closeClass=t)}set transitionClass(t){l({transitionClass:t}),this._transitionClass!==t&&(this._transitionClass=t)}set transitionDuration(t){o("number",{value:t}),this._transitionDuration!==t&&(this._transitionDuration=t,this._setTransitionDurations())}set openDuration(t){o("number",{value:t}),this._openDuration!==t&&(this._openDuration=t,this._setTransitionDurations())}set closeDuration(t){o("number",{value:t}),this._closeDuration!==t&&(this._closeDuration=t,this._setTransitionDurations())}set currentChild(t){o("number",{value:t}),this._currentChild!==t&&t>=0&&t<this.elements.accordionItems.length&&(this._currentChild=t)}set accordionItems(t){o("object",{value:t}),t?.isArray()&&t.every(e=>e instanceof M)&&(this._accordionItems=t)}set allowMultipleExpand(t){o("boolean",{value:t}),this._allowMultipleExpand!==t&&(this._allowMultipleExpand=t)}set allowNoExpand(t){o("boolean",{value:t}),this._allowNoExpand!==t&&(this._allowNoExpand=t)}set prefix(t){o("string",{value:t}),this._prefix!==t&&(this._prefix=t)}set key(t){o("string",{value:t}),this._key!==t&&(this._key=t)}_setDOMElementType(t,e=this.dom.accordion,s=!0,i=!1){if(typeof this.selectors[t]=="string"){if(this._domLock.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be set through _setDOMElementType.`);e!==this.dom.accordion&&g(HTMLElement,{base:e});const r=Array.from(e.querySelectorAll(this.selectors[t])).filter(a=>i?a.parentElement===e:!0);s?this._dom[t]=r:this._dom[t]=[...this._dom[t],...r]}else throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`)}_resetDOMElementType(t){if(typeof this.selectors[t]=="string"){if(this._domLock.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be reset through _resetDOMElementType.`);Array.isArray(this._dom[t])?this._dom[t]=[]:this._dom[t]=null}else throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`)}_setDOMElements(){this._setDOMElementType("accordionItems"),this._resetDOMElementType("accordionItemToggles"),this.dom.accordionItems.forEach(t=>{this._setDOMElementType("accordionItemToggles",t,!1),this._setDOMElementType("accordionItemHeaders",t,!1),this._setDOMElementType("accordionItemContents",t,!1)})}_generateKey(t=!1){(this.key===""||t)&&(this.key=Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,10))}_setIds(){this.dom.accordion.id=this.dom.accordion.id||`accordion-${this.key}`}_createChildElements(){this.dom.accordionItems.forEach((t,e)=>{const s=new M({accordionItemElement:t,accordionItemToggleElement:this.dom.accordionItemToggles[e],accordionItemHeaderElement:this.dom.accordionItemHeaders[e],accordionItemContentElement:this.dom.accordionItemContents[e],parentAccordion:this});s.initialize(),this.elements.accordionItems.push(s)})}_validate(){let t=!0;const e=g(HTMLElement,{accordionElement:this.dom.accordion});e||(this._errors.push(e.message),t=!1);const s=I({accordionItemSelector:this._selectors.accordionItems,accordionItemToggleSelector:this._selectors.accordionItemToggles,accordionItemHeaderSelector:this._selectors.accordionItemHeaders,accordionItemContentSelector:this._selectors.accordionItemContents});if(s||(this._errors.push(s.message),t=!1),this._openClass!==""){const u=l({openClass:this._openClass});u.status||(this._errors.push(u.error.message),t=!1)}if(this._closeClass!==""){const u=l({closeClass:this._closeClass});u.status||(this._errors.push(u.error.message),t=!1)}if(this._transitionClass!==""){const u=l({transitionClass:this._transitionClass});u.status||(this._errors.push(u.error.message),t=!1)}const i=o("number",{transitionDuration:this._transitionDuration});i.status||(this._errors.push(i.error.message),t=!1);const r=o("number",{openDuration:this._openDuration});r.status||(this._errors.push(r.error.message),t=!1);const a=o("number",{closeDuration:this._closeDuration});a.status||(this._errors.push(a.error.message),t=!1);const d=o("boolean",{optionalKeySupport:this._optionalKeySupport,allowMultipleExpand:this._allowMultipleExpand,allowNoExpand:this._allowNoExpand});if(d.status||(this._errors.push(d.error.message),t=!1),this._key!==""){const u=o("string",{key:this._key});u.status||(this._errors.push(u.error.message),t=!1)}const n=o("string",{prefix:this._prefix});return n.status||(this._errors.push(n.error.message),t=!1),t}_handleFocus(){this.elements.accordionItems.forEach((t,e)=>{t.dom.toggle.addEventListener("focus",()=>{this.currentChild=e})})}_handleClick(){this.elements.accordionItems.forEach((t,e)=>{t.dom.toggle.addEventListener("pointerup",()=>{this.currentChild=e,t.toggle()})})}_handleKeydown(){this.dom.accordionItemToggles.forEach(t=>{t.addEventListener("keydown",e=>{const s=_(e);(["Space","Enter"].includes(s)||this.optionalKeySupport&&["ArrowDown","ArrowUp","Home","End"].includes(s))&&m(e)})})}_handleKeyup(){this.dom.accordionItemToggles.forEach(t=>{t.addEventListener("keyup",e=>{const s=_(e);switch(s){case"Space":case"Enter":m(e),this.currentAccordionItem.toggle();break}if(this.optionalKeySupport)switch(s){case"Home":m(e),this.focusFirstChild();break;case"End":m(e),this.focusLastChild();break;case"ArrowDown":m(e),this.focusNextChild();break;case"ArrowUp":m(e),this.focusPreviousChild();break}})})}_setTransitionDurations(){this.dom.accordion.style.setProperty(`--${this.prefix}accordion-transition-duration`,`${this.transitionDuration}ms`),this.dom.accordion.style.setProperty(`--${this.prefix}accordion-open-transition-duration`,`${this.openDuration}ms`),this.dom.accordion.style.setProperty(`--${this.prefix}accordion-close-transition-duration`,`${this.closeDuration}ms`)}focusCurrentChild(){this.currentChild!==-1&&this.currentAccordionItem.focus()}focusChild(t){this.blurCurrentChild(),this.currentChild=t,this.focusCurrentChild()}focusFirstChild(){this.focusChild(0)}focusLastChild(){this.focusChild(this.elements.accordionItems.length-1)}focusNextChild(){this.currentChild<this.elements.accordionItems.length-1?this.focusChild(this.currentChild+1):this.focusCurrentChild()}focusPreviousChild(){this.currentChild>0?this.focusChild(this.currentChild-1):this.focusCurrentChild()}blurCurrentChild(){this.currentChild!==-1&&this.currentAccordionItem.blur()}openChildren(){this.elements.accordionItems.forEach(t=>t.show())}closeChildren(){this.elements.accordionItems.forEach(t=>t.hide())}},Q=R;const q=/[\11\12\14\15\40]+/,$="data-once",J=document;function v(t,e,s){return t[`${e}Attribute`]($,s)}function D(t){if(typeof t!="string")throw new TypeError("once ID must be a string");if(t===""||q.test(t))throw new RangeError("once ID must not be empty or contain spaces");return`[${$}~="${t}"]`}function U(t){if(!(t instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function x(t,e=J){let s=t;if(t===null)s=[];else if(t)if(e instanceof Document||e instanceof DocumentFragment||e instanceof Element)typeof t=="string"?s=e.querySelectorAll(t):t instanceof Element&&(s=[t]);else throw new TypeError('Context must be an object of type "Document", "DocumentFragment", or "Element".');else throw new TypeError("Selector must not be empty");return Array.prototype.slice.call(s)}function S(t,e,s){return e.filter(i=>{const r=U(i)&&i.matches(t);return r&&s&&s(i),r})}function z(t,{add:e,remove:s}){const i=[];v(t,"has")&&v(t,"get").trim().split(q).forEach(a=>{i.indexOf(a)<0&&a!==s&&i.push(a)}),e&&i.push(e);const r=i.join(" ");v(t,r===""?"remove":"set",r)}function T(t,e,s){return S(`:not(${D(t)})`,x(e,s),i=>z(i,{add:t}))}T.remove=(t,e,s)=>S(D(t),x(e,s),i=>z(i,{remove:t})),T.filter=(t,e,s)=>S(D(t),x(e,s)),T.find=(t,e)=>x(t?D(t):`[${$}]`,e);var C=T,X=(t={},e=document,s=".accordion")=>{C("graupl-accordion-generator",s,e).forEach(i=>{const r=i.dataset.grauplAccordionOptions?JSON.parse(i.dataset.grauplAccordionOptions.replace(/'/g,'"'))||{}:{};new Q({accordionElement:i,initialize:!0,...t,...r})})},Y=class{_dom={alert:null,controller:null};_hidden=!1;_showClass="";_hideClass="";_transitionClass="";_transitionTimer=150;_key="";_errors=[];_showEvent=new CustomEvent("grauplAlertShow",{bubbles:!0,detail:{alert:this}});_hideEvent=new CustomEvent("grauplAlertHide",{bubbles:!0,detail:{alert:this}});constructor({alertElement:t,controllerElement:e=null,showClass:s="show",hideClass:i="hide",transitionClass:r="transitioning",transitionTimer:a=150,isHidden:d=!1,key:n=null,initialize:u=!1}){this._dom.alert=t,this._dom.controller=e,this._showClass=s||"",this._hideClass=i||"",this._transitionClass=r||"",this._transitionTimer=a,this._hidden=d,this._key=n||"",u&&this.initialize()}initialize(){try{if(!this._validate())throw new Error(`Graupl Alert: cannot initialize alert. The following errors have been found:
4
- - ${this.errors.join(`
5
- - `)}`);this._generateKey(),this._setIds(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),f.initializeStorage("alerts"),f.pushToStorage("alerts",this.dom.alert.id,this)}catch(t){console.error(t)}}get dom(){return this._dom}get showClass(){return this._showClass}get hideClass(){return this._hideClass}get transitionClass(){return this._transitionClass}get transitionTimer(){return this._transitionTimer}get key(){return this._key}set showClass(t){l({showClass:t}),this._showClass!==t&&(this._showClass=t)}set hideClass(t){l({hideClass:t}),this._hideClass!==t&&(this._hideClass=t)}set transitionClass(t){l({transitionClass:t}),this._transitionClass!==t&&(this._transitionClass=t)}set transitionTimer(t){o("number",{transitionTimer:t}),this._transitionTimer!==t&&(this._transitionTimer=t)}set key(t){o("string",{value:t}),this._key!==t&&(this._key=t)}_validate(){let t=!0,e;if(this._dom.controller!==null?e=g(HTMLElement,{alertElement:this._dom.alert,controllerElement:this._dom.controller}):e=g(HTMLElement,{alertElement:this._dom.alert}),e.status||(this._errors.push(e.message),t=!1),this._showClass!==""){const r=l({showClass:this._showClass});r.status||(this._errors.push(r.message),t=!1)}if(this._hideClass!==""){const r=l({hideClass:this._hideClass});r.status||(this._errors.push(r.message),t=!1)}if(this._transitionClass!==""){const r=l({transitionClass:this._transitionClass});r.status||(this._errors.push(r.message),t=!1)}const s=o("number",{transitionTimer:this._transitionTimer});s.status||(this._errors.push(s.message),t=!1);const i=o("boolean",{isHidden:this._hidden});return i.status||(this._errors.push(i.message),t=!1),t}_generateKey(t=!1){(this.key===""||t)&&(this.key=Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,10))}_setIds(){this.dom.alert.id=this.dom.alert.id||`alert-${this.key}`,this.dom.controller.id=this.dom.controller.id||`alert-controller-${this.key}`}show(t=!0){this._hidden&&(this.transitionClass!==""?(h(this.transitionClass,this.dom.alert),requestAnimationFrame(()=>{this.hideClass!==""&&c(this.hideClass,this.dom.alert),requestAnimationFrame(()=>{this.showClass!==""&&h(this.showClass,this.dom.alert),requestAnimationFrame(()=>{c(this.transitionClass,this.dom.alert)})})})):(this.showClass!==""&&h(this.showClass,this.dom.alert),this.hideClass!==""&&c(this.hideClass,this.dom.alert)),this._hidden=!1,t&&this.dom.alert.dispatchEvent(this._hideEvent))}hide(t=!0){this._hidden||(this.transitionClass!==""?(h(this.transitionClass,this.dom.alert),requestAnimationFrame(()=>{this.showClass!==""&&c(this.showClass,this.dom.alert),requestAnimationFrame(()=>{this.transitionTimer>0?setTimeout(()=>{this.hideClass!==""&&h(this.hideClass,this.dom.alert),requestAnimationFrame(()=>{c(this.transitionClass,this.dom.alert)})},this.transitionTimer):(this.hideClass!==""&&h(this.hideClass,this.dom.alert),requestAnimationFrame(()=>{c(this.transitionClass,this.dom.alert)}))})})):(this.hideClass!==""&&h(this.hideClass,this.dom.alert),this.showClass!==""&&c(this.showClass,this.dom.alert)),this._hidden=!0,t&&this.dom.alert.dispatchEvent(this._hideEvent))}_handleClick(){this.dom.controller!==null&&this.dom.controller.addEventListener("pointerup",()=>this.hide())}_handleKeydown(){this.dom.controller!==null&&this.dom.controller.addEventListener("keydown",t=>{const e=_(t);(e==="Space"||e==="Enter")&&m(t)})}_handleKeyup(){this.dom.controller!==null&&this.dom.controller.addEventListener("keyup",t=>{const e=_(t);(e==="Space"||e==="Enter")&&this.hide()})}},Z=Y,tt=(t={},e=document,s=".alert")=>{C("graupl-alert-generator",s,e).forEach(i=>{const r=i.dataset.grauplAlertOptions?JSON.parse(i.dataset.grauplAlertOptions.replace(/'/g,'"'))||{}:{};new Z({alertElement:i,controllerElement:i.querySelector(".alert-dismisser")||null,initialize:!0,...t,...r})})},et=class{_dom={carousel:null,carouselItems:[],carouselItemContainer:null,carouselControls:[],carouselControlContainer:null,carouselTabs:[],carouselTabContainer:null,autoplay:null,next:null,previous:null};_selectors={carouselItems:"",carouselItemContainer:"",carouselControls:"",carouselControlContainer:"",carouselTabs:"",carouselTabContainer:"",autoplay:"",next:"",previous:""};_activeClass="active";_previousClass="previous";_nextClass="next";_playClass="play";_pauseClass="pause";_currentItem=0;_autoplay=!0;_transitionDelay=1e4;_transitionDuration=500;_playText="Play";_pauseText="Pause";_currentAction="next";_autoplayInterval=null;_prefix="graupl-";_key="";_errors=[];constructor({carouselElement:t,carouselItemSelector:e=".carousel-item",carouselItemContainerSelector:s=".carousel-item-container",carouselControlSelector:i=".carousel-control",carouselControlContainerSelector:r=".carousel-control-container",carouselTabSelector:a=".carousel-tab",carouselTabContainerSelector:d=".carousel-tab-container",autoplaySelector:n=".autoplay",nextSelector:u=".next",previousSelector:p=".previous",activeClass:E="active",previousClass:w="previous",nextClass:b="next",playClass:k="play",pauseClass:A="pause",autoplay:O=!0,transitionDelay:L=1e4,transitionDuration:ht=500,playText:ct="Play",pauseText:ut="Pause",prefix:dt="graupl-",key:mt=null,initialize:pt=!1}){this._dom.carousel=t,this._selectors.carouselItems=e,this._selectors.carouselItemContainer=s,this._selectors.carouselControls=i,this._selectors.carouselControlContainer=r,this._selectors.carouselTabs=a,this._selectors.carouselTabContainer=d,this._selectors.autoplay=n,this._selectors.next=u,this._selectors.previous=p,this._activeClass=E||"",this._previousClass=w||"",this._nextClass=b||"",this._playClass=k||"",this._pauseClass=A||"",this._autoplay=O,this._transitionDelay=L,this._transitionDuration=ht,this._playText=ct||"",this._pauseText=ut||"",this._prefix=dt||"",this._key=mt||"",pt&&this.initialize()}initialize(){try{if(!this._validate())throw new Error(`Graupl Carousel: cannot initialize carousel. The following errors have been found:
6
- - ${this.errors.join(`
7
- - `)}`);this._generateKey(),this._setDOMElements(),this._setIds(),this._setAriaAttributes(),this.activateFirstItem(),this._handleAutoplay(),this._handleFocus(),this._handleClick(),this._handleHover(),this._handleKeydown(),this._handleKeyup(),this._setTransitionDuration(),f.initializeStorage("carousels"),f.pushToStorage("carousels",this.dom.carousel.id,this)}catch(t){console.error(t)}}get dom(){return this._dom}get selectors(){return this._selectors}get activeClass(){return this._activeClass}get previousClass(){return this._previousClass}get nextClass(){return this._nextClass}get playClass(){return this._playClass}get pauseClass(){return this._pauseClass}get currentItem(){return this._currentItem}get currentCarouselItem(){return this.dom.carouselItems[this.currentItem]}get currentCarouselTab(){return this.dom.carouselTabs[this.currentItem]}get autoplay(){return this._autoplay}get transitionDelay(){return this._transitionDelay}get transitionDuration(){return this._transitionDuration}get playText(){return this._playText}get pauseText(){return this._pauseText}get prefix(){return this._prefix}get key(){return this._key}get currentAction(){return this._currentAction}get errors(){return this._errors}set currentItem(t){o("number",{value:t}),t!==this.currentItem&&(t<0?this._currentItem=0:t>=this.dom.carouselItems.length?this._currentItem=this.dom.carouselItems.length-1:this._currentItem=t,this._dom.carousel.querySelectorAll(this.selectors.carouselTab)&&this.dom.carouselItems.forEach((e,s)=>{e.setAttribute("aria-selected",s===this._currentItem)}))}set autoplay(t){o("boolean",{value:t}),this._autoplay!==t&&(this._autoplay=t)}set activeClass(t){l({activeClass:t}),this._activeClass!==t&&(this._activeClass=t)}set previousClass(t){l({previousClass:t}),this._previousClass!==t&&(this._previousClass=t)}set nextClass(t){l({nextClass:t}),this._nextClass!==t&&(this._nextClass=t)}set playClass(t){l({playClass:t}),this._playClass!==t&&(this._playClass=t)}set pauseClass(t){l({pauseClass:t}),this._pauseClass!==t&&(this._pauseClass=t)}set transitionDelay(t){o("number",{value:t}),t!==this.transitionDelay&&t>=0&&(this._currentItem=t)}set transitionDuration(t){o("number",{value:t}),this._transitionDuration!==t&&t>=0&&(this._transitionDuration=t,this._setTransitionDuration())}set playText(t){o("string",{value:t}),this._playText!==t&&(this._playText=t)}set pauseText(t){o("string",{value:t}),this._pauseText!==t&&(this._pauseText=t)}set prefix(t){o("string",{value:t}),this._prefix!==t&&(this._prefix=t)}set key(t){o("string",{value:t}),this._key!==t&&(this._key=t)}_validate(){let t=!0;const e=g(HTMLElement,{carousel:this.dom.carousel});e||(this._errors.push(e.message),t=!1);const s=I({carouselItemsSelector:this._selectors.carouselItems,carouselItemContainerSelector:this._selectors.carouselItemContainer,carouselControlsSelector:this._selectors.carouselControls,carouselControlContainerSelector:this._selectors.carouselControlContainer,carouselTabsSelector:this._selectors.carouselTabs,carouselTabContainerSelector:this._selectors.carouselTabContainer,autoplaySelector:this._selectors.autoplay,nextSelector:this._selectors.next,previousSelector:this._selectors.previous});s||(this._errors.push(s.message),t=!1);const i=o("boolean",{autoplay:this.autoplay});i||(this._errors.push(i.message),t=!1);const r=o("number",{transitionDelay:this._transitionDelay});r||(this._errors.push(r.message),t=!1);const a=o("number",{transitionDuration:this._transitionDuration});if(a||(this._errors.push(a.message),t=!1),this._activeClass!==""){const n=l({activeClass:this._activeClass});n||(this._errors.push(n.message),t=!1)}if(this._previousClass!==""){const n=l({previousClass:this._previousClass});n||(this._errors.push(n.message),t=!1)}if(this._nextClass!==""){const n=l({nextClass:this._nextClass});n||(this._errors.push(n.message),t=!1)}if(this._playClass!==""){const n=l({playClass:this._playClass});n||(this._errors.push(n.message),t=!1)}if(this._pauseClass!==""){const n=l({pauseClass:this._pauseClass});n||(this._errors.push(n.message),t=!1)}if(this._playText!==""){const n=o("string",{playText:this._playText});n||(this._errors.push(n.message),t=!1)}if(this._pauseText!==""){const n=o("string",{pauseText:this._pauseText});n||(this._errors.push(n.message),t=!1)}const d=o("string",{prefix:this._prefix});return d||(this._errors.push(d.message),t=!1),t}_setDOMElementType(t,e=this.dom.carousel,s=!0){if(typeof this.selectors[t]=="string"){if(t==="carousel")throw new Error(`Graupl Carousel: "${t}" element cannot be set through _setDOMElementType.`);if(e!==this.dom.carousel&&g(HTMLElement,{base:e}),Array.isArray(this._dom[t])){const i=Array.from(e.querySelectorAll(this.selectors[t])).filter(r=>r.parentElement===e);s?this._dom[t]=i:this._dom[t]=[...this._dom[t],...i]}else{const i=e.querySelector(this.selectors[t]);if(i&&i.parentElement!==e)return;s&&(this._dom[t]=i)}}else throw new Error(`Graupl Carousel: "${t}" is not a valid element type within the carousel.`)}_resetDOMElementType(t){if(typeof this.selectors[t]=="string"){if(t==="carousel")throw new Error(`Graupl Carousel: "${t}" element cannot be reset through _resetDOMElementType.`);Array.isArray(this._dom[t])?this._dom[t]=[]:this._dom[t]=null}else throw new Error(`Graupl Carousel: "${t}" is not a valid element type within the carousel.`)}_setDOMElements(){this._setDOMElementType("carouselItemContainer"),this._setDOMElementType("carouselControlContainer"),this._setDOMElementType("carouselTabContainer"),this.dom.carouselItemContainer&&this._setDOMElementType("carouselItems",this.dom.carouselItemContainer),this.dom.carouselControlContainer&&(this._setDOMElementType("carouselControls",this.dom.carouselControlContainer),this._setDOMElementType("autoplay",this.dom.carouselControlContainer),this._setDOMElementType("next",this.dom.carouselControlContainer),this._setDOMElementType("previous",this.dom.carouselControlContainer)),this._dom.carouselTabContainer&&this._setDOMElementType("carouselTabs",this.dom.carouselTabContainer)}_generateKey(t=!1){(this.key===""||t)&&(this.key=Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,10))}_setIds(){this.dom.carousel.id=this.dom.carousel.id||`carousel-${this.key}`,this.dom.carouselItems.forEach((t,e)=>{t.id=t.id||`carousel-item-${this.key}-${e}`}),this.dom.carouselTabs.forEach((t,e)=>{t.id=t.id||`carousel-tab-${this.key}-${e}`})}_setAriaAttributes(){!y("section",{carousel:this.dom.carousel})&&!this.dom.carousel.getAttribute("role")!=="region"&&this.dom.carousel.setAttribute("role","group"),this._dom.carousel.setAttribute("aria-roledescription","carousel"),this.dom.carouselTabContainer&&this.dom.carouselTabContainer.setAttribute("role","tablist"),this.dom.carouselTabs.forEach((t,e)=>{y("button",{tab:t})||t.setAttribute("role","button"),t.setAttribute("aria-selected",e===0),t.setAttribute("aria-controls",this.dom.carouselItems[e].id)})}_setInterval(){this._clearInterval(),this._autoplayInterval=setInterval(()=>{this.activateNextItem()},this.transitionDelay)}_clearInterval(){clearInterval(this._autoplayInterval)}_handleAutoplay(){this.autoplay?(h(this.pauseClass,this.dom.autoplay),c(this.playClass,this.dom.autoplay),this.dom.autoplay.setAttribute("aria-label",this.pauseText),this.dom.carousel.setAttribute("aria-live","off"),this._setInterval()):(h(this.playClass,this.dom.autoplay),c(this.pauseClass,this.dom.autoplay),this.dom.autoplay.setAttribute("aria-label",this.playText),this.dom.carousel.setAttribute("aria-live","polite"),this._clearInterval())}_handleFocus(){this.dom.carousel.addEventListener("focusin",()=>{this.autoplay&&this._clearInterval()}),this.dom.carousel.addEventListener("focusout",()=>{this.autoplay&&this._setInterval()})}_handleClick(){this.dom.next.addEventListener("pointerup",()=>{this.activateNextItem()}),this.dom.previous.addEventListener("pointerup",()=>{this.activatePreviousItem()}),this.dom.autoplay.addEventListener("pointerup",()=>{this.toggleAutoplay()}),this.dom.carouselTabs.forEach((t,e)=>{t.addEventListener("pointerup",()=>{this.currentItem>e?this._currentAction="previous":this._currentAction="next",this.activateItem(e)})})}_handleHover(){this.dom.carousel.addEventListener("pointerover",()=>{this.autoplay&&this._clearInterval()}),this.dom.carousel.addEventListener("pointerleave",()=>{this.autoplay&&this._setInterval()})}_handleKeydown(){this.dom.carouselControls.forEach(t=>{t.addEventListener("keydown",e=>{switch(_(e)){case"Space":case"Enter":m(e);break}})}),this.dom.carouselTabs.forEach(t=>{t.addEventListener("keydown",e=>{switch(_(e)){case"Space":case"Enter":m(e);break}})})}_handleKeyup(){this.dom.next.addEventListener("keyup",t=>{switch(_(t)){case"Space":case"Enter":this.activateNextItem(),m(t);break}}),this.dom.previous.addEventListener("keyup",t=>{switch(_(t)){case"Space":case"Enter":this.activatePreviousItem(),m(t);break}}),this.dom.autoplay.addEventListener("keyup",t=>{switch(_(t)){case"Space":case"Enter":this.toggleAutoplay(),m(t);break}}),this.dom.carouselTabs.forEach((t,e)=>{t.addEventListener("keyup",s=>{switch(_(s)){case"Space":case"Enter":this.activateItem(e),m(s);break}})})}_setTransitionDuration(){this.dom.carousel.style.setProperty(`--${this.prefix}carousel-transition-duration`,`${this.transitionDuration}ms`)}activateCurrentItem(){h(this.activeClass,this.currentCarouselItem),this.currentCarouselTab&&(this.currentCarouselTab.setAttribute("aria-selected",!0),h(this.activeClass,this.currentCarouselTab))}deactivateCurrentItem(){c(this.activeClass,this.currentCarouselItem),this.currentCarouselTab&&(this.currentCarouselTab.setAttribute("aria-selected",!1),c(this.activeClass,this.currentCarouselTab))}activateItem(t){const e=this.currentItem;this.dom.carousel.dataset.grauplAction=this._currentAction,this.autoplay&&this._clearInterval(),h(this.previousClass,this.currentCarouselItem),h(this.nextClass,this.dom.carouselItems[t]),requestAnimationFrame(()=>{this.deactivateCurrentItem(),this.currentItem=t,this.activateCurrentItem(),requestAnimationFrame(()=>{setTimeout(()=>{c(this.previousClass,this.dom.carouselItems[e]),c(this.nextClass,this.currentCarouselItem)},this.transitionDuration)})}),this.autoplay&&this._setInterval()}activateFirstItem(){this.activateItem(0)}activateLastItem(){this.activateItem(this.dom.carouselItems.length-1)}activateNextItem(){this._currentAction="next",this.currentItem+1>=this.dom.carouselItems.length?this.activateFirstItem():this.activateItem(this.currentItem+1)}activatePreviousItem(){this._currentAction="previous",this.currentItem-1<0?this.activateLastItem():this.activateItem(this.currentItem-1)}toggleAutoplay(){this.autoplay=!this.autoplay,this._handleAutoplay()}},st=et,it=(t={},e=document,s=".carousel")=>{C("graupl-carousel-generator",s,e).forEach(i=>{const r=i.dataset.grauplCarouselOptions?JSON.parse(i.dataset.grauplCarouselOptions.replace(/'/g,'"'))||{}:{};new st({carouselElement:i,initialize:!0,...t,...r})})},rt=(t={},e=document,s=".navigation")=>{C("graupl-navigation-generator",s,e).forEach(i=>{const r=i.dataset.grauplMenuType||DisclosureMenu;if(window[r]===void 0){console.warn(`Graupl navigation requires accessible-menu's ${r}. Please make sure to include it on this page.`);return}const a=i.dataset.grauplMenuOptions?JSON.parse(i.dataset.grauplMenuOptions.replace(/'/g,'"'))||{}:{},d=i.querySelector(".menu"),n=i.querySelector(".navigation-toggle")||null,u=n?i:null,p=new window[r]({menuElement:d,menuItemSelector:".menu-item",menuLinkSelector:".menu-link",submenuItemSelector:".submenu-item",submenuToggleSelector:".submenu-toggle",controllerElement:n,containerElement:u,...t,...a});f.initializeStorage("menus"),f.pushToStorage("menus",p.dom.menu.id,p)})},ot=class{constructor(t,e={}){this._equals=e.equals||Object.is,this._current=t,this._committed=t}get value(){return this._current}set value(t){this._current=t}get committed(){return this._committed}get isDirty(){return!this._equals(this._current,this._committed)}commit(){return this._committed=this._current,this}reset(){return this._current=this._committed,this}update(t){return this._current=t(this._current),this}},nt=class{_dom={controller:null,disclosure:null,content:null};_domLock=["controller","disclosure"];_selectors={content:""};_classes={open:"show",close:"hide",transition:"transitioning",initialize:"initializing"};_durations={transition:5e3,open:-1,close:-1};_focusState="none";_currentEvent="none";_open=new ot(!1);_shouldOpen=!1;_closeOnBlur=!1;_breakpointWidth="";_mediaQueryList=null;_expandEvent=new CustomEvent("grauplDisclosureExpand",{bubbles:!0,detail:{disclosure:this}});_collapseEvent=new CustomEvent("grauplDisclosureCollapse",{bubbles:!0,detail:{disclosure:this}});_prefix="graupl-";_key="";_errors=[];constructor({disclosureElement:t,controllerElement:e,disclosureContentSelector:s=".disclosure-content",openClass:i="show",closeClass:r="hide",transitionClass:a="transitioning",transitionDuration:d=250,openDuration:n=-1,closeDuration:u=-1,closeOnBlur:p=!1,minWidth:E="",autoOpen:w=!1,prefix:b="graupl-",initializeClass:k="initializing",initialize:A=!1}){this._dom.disclosure=t,this._dom.controller=e,this._selectors.content=s,this._classes.open=i||"",this._classes.close=r||"",this._classes.transition=a||"",this._classes.initialize=k||"",this._durations.transition=d,this._durations.open=n,this._durations.close=u,this._closeOnBlur=p,this._breakpointWidth=E||"",this._shouldOpen=w,this._prefix=b,A&&this.initialize()}initialize(){try{if(!this._validate())throw new Error(`Graupl Disclosure: cannot initialize disclosure. The following errors have been found:
8
- - ${this.errors.join(`
9
- - `)}`);h(this._classes.initialize,this.dom.disclosure),this._generateKey(),this._setDOMElements(),this._setIds(),this._setAriaAttributes(),this._handleFocus(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),this._handleResize(),this._setTransitionDurations(),f.initializeStorage("disclosures"),f.pushToStorage("disclosures",this.dom.disclosure.id,this),this.dom.controller.getAttribute("aria-expanded")==="true"||this.shouldOpen&&window.matchMedia(this.openQuery).matches?this._expand({emit:!1,transition:!1}):this._collapse({emit:!1,transition:!1}),requestAnimationFrame(()=>{c(this._classes.initialize,this.dom.disclosure)})}catch(t){console.error(t)}}get dom(){return this._dom}get selectors(){return this._selectors}get openClass(){return this._classes.open}set openClass(t){l({openClass:t}),this._classes.open!==t&&(this._classes.open=t)}get closeClass(){return this._classes.close}set closeClass(t){l({closeClass:t}),this._classes.close!==t&&(this._classes.close=t)}get transitionClass(){return this._classes.transition}set transitionClass(t){l({transitionClass:t}),this._classes.transition!==t&&(this._classes.transition=t)}get initializeClass(){return this._classes.initialize}set initializeClass(t){l({initializeClass:t}),this._classes.initialize!==t&&(this._classes.initialize=t)}get transitionDuration(){return this._durations.transition}set transitionDuration(t){o("number",{value:t}),this._durations.transition!==t&&(this._durations.transition=t,this._setTransitionDurations())}get openDuration(){return this._durations.open===-1?this.transitionDuration:this._durations.open}set openDuration(t){o("number",{value:t}),this._durations.open!==t&&(this._durations.open=t,this._setTransitionDurations())}get closeDuration(){return this._durations.close===-1?this.transitionDuration:this._durations.close}set closeDuration(t){o("number",{value:t}),this._durations.close!==t&&(this._durations.close=t,this._setTransitionDurations())}get minWidth(){return this._breakpointWidth}set minWidth(t){o("string",{value:t}),this._breakpointWidth!==t&&(this._breakpointWidth=t)}get closeOnBlur(){return this._closeOnBlur}set closeOnBlur(t){o("boolean",{value:t}),this._closeOnBlur!==t&&(this._closeOnBlur=t)}get focusState(){return this._focusState}set focusState(t){F({value:t}),this._focusState!==t&&(this._focusState=t)}get currentEvent(){return this._currentEvent}set currentEvent(t){K({value:t}),this._currentEvent!==t&&(this._currentEvent=t)}get prefix(){return this._prefix}set prefix(t){o("string",{value:t}),this._prefix!==t&&(this._prefix=t,this._setTransitionDurations())}get isOpen(){return this._open.value}get hasOpened(){return this._open.committed}get shouldOpen(){return this._shouldOpen}set shouldOpen(t){o("boolean",{value:t}),this._shouldOpen!==t&&(this._shouldOpen=t)}get openQuery(){return this.minWidth===-1?"":`(width > ${this.minWidth}px)`}get closeQuery(){return this.minWidth===-1?"":`(width <= ${this.minWidth}px)`}get shouldFocus(){let t=!1;return this.currentEvent==="keyboard"&&(t=!0),t}get key(){return this._key}get errors(){return this._errors}_validate(){let t=!0;const e=g(HTMLElement,{disclosureElement:this._dom.disclosure,controllerElement:this._dom.controller});e.status||(this._errors.push(e.error.message),t=!1);const s={};for(const p of Object.keys(this._selectors))s[`${p}Selector`]=this._selectors[p];const i=I(s);i||(this._errors.push(i.message),t=!1);const r={};for(const p of Object.keys(this._classes))this._classes[p]!==""&&(r[`${p}Class`]=this._classes[p]);const a=l(r);a.status||(this._errors.push(a.error.message),t=!1);const d={};for(const p of Object.keys(this._durations))d[`${p}Duration`]=this._durations[p];const n=o("number",d);n.status||(this._errors.push(n.error.message),t=!1);const u=o("string",{prefix:this._prefix});return u.status||(this._errors.push(u.error.message),t=!1),t}_generateKey({regenerate:t=!1}={}){(this.key===""||t)&&(this._key=Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,10))}_setIds(){this.dom.disclosure.id=this.dom.disclosure.id||`disclosure-${this.key}`,this.dom.controller.id=this.dom.controller.id||`disclosure-controller-${this.key}`}_setAriaAttributes(){this.dom.controller.getAttribute("aria-expanded")!=="true"&&this.dom.controller.setAttribute("aria-expanded","false"),this.dom.controller.setAttribute("aria-controls",this.dom.disclosure.id),y("button",{controller:this.dom.controller})||this.dom.controller.setAttribute("role","button")}_setTransitionDurations(){this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-transition-duration`,`${this.transitionDuration}ms`),this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-open-transition-duration`,`${this.openDuration}ms`),this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-close-transition-duration`,`${this.closeDuration}ms`)}_setDOMElementType(t,{base:e=this.dom.disclosure,overwrite:s=!0,strict:i=!0}={}){if(typeof this.selectors[t]=="string"){if(this._domLock.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be set through _setDOMElementType.`);e!==this.dom.disclosure&&g(HTMLElement,{base:e});const r=Array.from(e.querySelectorAll(this.selectors[t])).filter(a=>i?a.parentElement===e:!0);s?Array.isArray(this._dom[t])?this._dom[t]=r:this._dom[t]=r[0]||null:Array.isArray(this._dom[t])?this._dom[t]=[...this._dom[t],...r]:this._dom[t]=r[0]||null}else throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`)}_resetDOMElementType(t){if(typeof this.selectors[t]=="string"){if(this._domLock.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be reset through _resetDOMElementType.`);Array.isArray(this._dom[t])?this._dom[t]=[]:this._dom[t]=null}else throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`)}_setDOMElements(){this._resetDOMElementType("content"),this._setDOMElementType("content")}_expand({emit:t=!0,transition:e=!0}={}){this.dom.controller.setAttribute("aria-expanded","true"),e&&this.transitionlass!==""?(h(this.transitionClass,this.dom.disclosure),requestAnimationFrame(()=>{c(this.closeClass,this.dom.disclosure),requestAnimationFrame(()=>{h(this.openClass,this.dom.disclosure),requestAnimationFrame(()=>{setTimeout(()=>{c(this.transitionClass,this.dom.disclosure)},this.openDuration)})})})):(h(this.openClass,this.dom.disclosure),c(this.closeClass,this.dom.disclosure)),this.dom.content.removeAttribute("inert"),t&&this.dom.controller.dispatchEvent(this._expandEvent)}_collapse({emit:t=!0,transition:e=!0}={}){this.dom.controller.setAttribute("aria-expanded","false"),e&&this.transitionClass!==""?(h(this.transitionClass,this.dom.disclosure),requestAnimationFrame(()=>{c(this.openClass,this.dom.disclosure),requestAnimationFrame(()=>{h(this.closeClass,this.dom.disclosure),requestAnimationFrame(()=>{setTimeout(()=>{c(this.transitionClass,this.dom.disclosure),this.dom.content.innert=!0},this.closeDuration)})})})):(h(this.closeClass,this.dom.disclosure),c(this.openClass,this.dom.disclosure)),this.dom.content.setAttribute("inert","true"),t&&this.dom.controller.dispatchEvent(this._collapseEvent)}_handleResize(){this._breakpointWidth!==""&&(this._mediaQueryList=window.matchMedia(`(width <= ${this._breakpointWidth})`),this._mediaQueryList.addEventListener("change",t=>{t.matches&&this.isOpen?this.close({preserveState:!0}):!t.matches&&!this.isOpen&&(this.hasOpened||this.shouldOpen)&&this.open()}))}_handleFocus(){this.dom.disclosure.addEventListener("focusout",t=>{!this.closeOnBlur||this.currentEvent!=="keyboard"||t.relatedTarget===null||this.dom.disclosure.contains(t.relatedTarget)||this.dom.controller===t.relatedTarget||this.close()})}_handleClick(){this.dom.controller.addEventListener("pointerup",t=>{this.currentEvent="mouse",t.button===0&&(m(t),this.toggle())}),document.addEventListener("pointerup",t=>{this.focusState!=="self"||!this.closeOnBlur||(this.currentEvent="mouse",!this.dom.disclosure.contains(t.target)&&this.dom.controller!==t.target&&this.close())})}_handleKeydown(){this.dom.controller.addEventListener("keydown",t=>{switch(this.currentEvent="keyboard",_(t)){case"Space":case"Enter":m(t);break}}),this.dom.disclosure.addEventListener("keydown",t=>{switch(this.currentEvent="keyboard",_(t)){case"Escape":m(t);break}})}_handleKeyup(){this.dom.controller.addEventListener("keyup",t=>{switch(this.currentEvent="keyboard",_(t)){case"Space":case"Enter":this.toggle(),m(t);break}}),this.dom.disclosure.addEventListener("keyup",t=>{switch(this.currentEvent="keyboard",_(t)){case"Escape":this.close(),m(t);break}})}open({force:t=!1,preserveState:e=!1}={}){this.isOpen&&!t||(this.focusState="self",this._expand(),this._open.value=!0,e||this._open.commit())}preview({force:t=!1,preserveState:e=!1}={}){this.isOpen&&!t||(this.focusState="none",this._expand(),this._open.value=!0,e||this._open.commit())}close({force:t=!1,preserveState:e=!1}={}){!this.isOpen&&!t||(this.focusState="none",this._collapse(),this._open.value=!1,e||this._open.commit())}toggle({force:t=!1,preserveState:e=!1}={}){this.isOpen?this.close({force:t,preserveState:e}):this.open({force:t,preserveState:e})}},at=nt,lt=({options:t={},context:e=document,disclosureSelector:s=".disclosure",controllerSelector:i=".disclosure-toggle"}={})=>{C("graupl-disclosure-generator",s,e).forEach(r=>{const a=r.dataset.grauplDisclosureOptions?JSON.parse(r.dataset.grauplDisclosureOptions.replace(/'/g,'"'))||{}:{},d=`${i}[data-graupl-disclosure-target="${r.id}"]`,[n]=C("graupl-disclosure-generator",d,e);if(!n){console.warn(`No controller found for disclosure with ID "${r.id}". Please ensure there is an element with the selector "${d}".`),C.remove("graupl-disclosure-generator",r);return}new at({disclosureElement:r,controllerElement:n,initialize:!0,...t,...a})})};document.addEventListener("DOMContentLoaded",()=>{X(),tt(),it(),rt(),lt()})})();
3
+ - `)}`);this._generateKey()}catch(t){console.error(t)}}init(){this.initialize()}get dom(){return this._dom}get selectors(){return this._selectors}get elements(){return this._elements}get classes(){return this._classes}get durations(){return this._durations}get delays(){return this._delays}get intervals(){return this._intervals}get timeouts(){return this._timeouts}get listeners(){return this._listeners}get events(){return this._events}get initializeClass(){return this._classes.initialize}set initializeClass(t){u({initializeClass:t}),this._classes.initialize!==t&&(this._classes.initialize=t)}get focusState(){return this._focusState}set focusState(t){G({focusState:t}),this._focusState!==t&&(this._focusState=t)}get currentEvent(){return this._currentEvent}set currentEvent(t){B({currentEvent:t}),this._currentEvent!==t&&(this._currentEvent=t)}get breakpoint(){return this._breakpoint}set breakpoint(t){o("string",{breakpoint:t}),this._breakpoint!==t&&(this._breakpoint=t)}get mediaQuery(){return this._mediaQueryString!==""?this._mediaQueryString:`(width <= ${this._breakpoint})`}set mediaQuery(t){o("string",{mediaQuery:t}),this._mediaQueryString!==t&&(this._mediaQueryString=t)}get prefix(){return this._prefix}get key(){return this._key}get errors(){return this._errors}_validate(){if(Object.keys(this._dom).length>0){const t={};for(const s of Object.keys(this._dom))Array.isArray(this._dom[s])&&this._dom[s].forEach((i,r)=>{t[`${s}Element[${r}]`]=i}),t[`${s}Element`]=this._dom[s];const e=A(HTMLElement,t);e||(this._errors.push(e.message),this._valid=!1)}if(Object.keys(this._selectors).length>0){const t={};for(const s of Object.keys(this._selectors))t[`${s}Selector`]=this._selectors[s];const e=N(t);e||(this._errors.push(e.message),this._valid=!1)}if(Object.keys(this._classes).length>0){const t={};for(const s of Object.keys(this._classes))this._classes[s]!==""&&(t[`${s}Class`]=this._classes[s]);const e=u(t);e.status||(this._errors.push(e.error.message),this._valid=!1)}if(Object.keys(this._durations).length>0){const t={};for(const s of Object.keys(this._durations))t[`${s}Duration`]=this._durations[s];const e=o("number",t);e.status||(this._errors.push(e.error.message),this._valid=!1)}if(Object.keys(this.delays).length>0){const t={};for(const s of Object.keys(this.delays))t[`${s}Delay`]=this.delays[s];const e=o("number",t);e.status||(this._errors.push(e.error.message),this._valid=!1)}if(this._key!==""){const t=o("string",{key:this._key});t.status||(this._errors.push(t.error.message),this._valid=!1)}if(this._prefix!==""){const t=o("string",{prefix:this._prefix});t.status||(this._errors.push(t.error.message),this._valid=!1)}return this._valid}_generateKey(t=!1){(this._key===""||t)&&(this._key=Math.random().toString(36).replace(/[^a-z]+/g,"").substring(0,10))}_setIds(){}_setAriaAttributes(){}_setCustomProps(){}_setDOMElementType(t,{context:e,overwrite:s=!0,strict:i=!0}={}){if(typeof this.selectors[t]!="string")throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`);if(this._protectedDOMElements.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be set through _setDOMElementType because it is a protected element.`);A(HTMLElement,{context:e});const r=Array.from(e.querySelectorAll(this.selectors[t])).filter(h=>i?h.parentElement===e:!0);Array.isArray(this._dom[t])?s?this._dom[t]=r:this._dom[t]=[...this._dom[t],...r]:this._dom[t]=r[0]||null}_resetDOMElementType(t){if(typeof this.selectors[t]!="string")throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid element type.`);if(this._protectedDOMElements.includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" element cannot be reset through _resetDOMElementType because it is a protected element.`);Array.isArray(this._dom[t])?this._dom[t]=[]:this._dom[t]=null}_setDOMElements(){}_createChildElements(){}_handleMediaMatch(){this._breakpointWidth!==""&&(this._mediaQueryList=window.matchMedia(this.mediaQuery),this._mediaQueryList.addEventListener("change",this._mediaQueryListEventCallback),this._mediaQueryListEventCallback(this._mediaQueryList))}_handleFocus(){}_handleClick(){}_handleKeydown(){}_handleKeyup(){}_store(){E.initializeStorage(this._storageKey),E.pushToStorage(this._storageKey,this._id!==""?this._id:this._key,this)}_unstore(){E.removeFromStorage(this._storageKey,this._id!==""?this._id:this._key)}_setInterval(t,e,s="_default"){this._clearInterval(s),this._intervals[s]=setInterval(t,e)}_clearInterval(t="_default"){clearInterval(this._intervals[t])}_setTimeout(t,e,s="_default"){this._clearTimeout(s),this._timeouts[s]=setTimeout(t,e)}_clearTimeout(t="_default"){clearTimeout(this._timeouts[t])}_dispatchEvent(t,e){if(!Object.keys(this.events).includes(t))throw new Error(`Graupl ${this.constructor.name}: "${t}" is not a valid event type.`);A(HTMLElement,{element:e}),e.dispatchEvent(this.events[t])}_addEventListener(t,e,s,i={}){e.addEventListener(t,s,i),this._listeners.push({type:t,element:e,listener:s,options:i})}_removeEventListener(t,e,s,i={}){e.removeEventListener(t,s,i);const r=this._listeners.indexOf({type:t,element:e,listener:s,options:i});r!==-1&&this._listeners.splice(r)}_removeEventListeners(){this._listeners.forEach(({type:t,element:e,listener:s,options:i})=>{this._removeEventListener(t,e,s,i)})}dispose(){this._removeEventListeners(),this._unstore(),delete this}},w=Z,tt=class extends w{_dom={item:null,toggle:null,header:null,content:null};_protectedDOMElements=["item","toggle","header","content"];_elements={parent:null};_open=new D(!1);_locked=new D(!1);_events={expand:new CustomEvent("grauplAccordionItemExpand",{bubbles:!0,detail:{item:this}}),collapse:new CustomEvent("grauplAccordionItemCollapse",{bubbles:!0,detail:{item:this}})};constructor({accordionItemElement:t,accordionItemToggleElement:e,accordionItemHeaderElement:s,accordionItemContentElement:i,parentAccordion:r=null}){super({prefix:r.prefix,key:r.key}),this._dom.item=t,this._dom.toggle=e,this._dom.header=s,this._dom.content=i,this._elements.parent=r}initialize(){this._setIds(),this._setAriaAttributes(),this.dom.toggle.getAttribute("aria-expanded")==="true"?this.show({force:!0,emit:!1,transition:!1}):this.hide({force:!0,emit:!1,transition:!1})}get isOpen(){return this._open.value}get isLocked(){return this._locked.value}_setIds(){const{key:t}=this.elements.parent,e=this.elements.parent.dom.accordionItems.indexOf(this.dom.item);this.dom.item.id=this.dom.item.id||`accordion-item-${t}-${e}`,this.dom.toggle.id=this.dom.toggle.id||`accordion-item-toggle-${t}-${e}`,this.dom.header.id=this.dom.header.id||`accordion-item-header-${t}-${e}`,this.dom.content.id=this.dom.content.id||`accordion-item-content-${t}-${e}`}_setAriaAttributes(){b("button",{toggle:this.dom.toggle})||this.dom.toggle.setAttribute("role","button"),this.dom.toggle.getAttribute("aria-expanded")!=="true"&&this.dom.toggle.setAttribute("aria-expanded","false"),this.dom.toggle.setAttribute("aria-controls",this.dom.content.id),b("section",{content:this.dom.content})||this.dom.content.setAttribute("role","region"),this.dom.content.setAttribute("aria-labelledby",this.dom.toggle.id)}_reveal({emit:t=!0,transition:e=!0}={}){const{closeClass:s,openClass:i,transitionClass:r,openDuration:h}=this.elements.parent;this.dom.toggle.setAttribute("aria-expanded","true"),e&&r!==""?(n(r,this.dom.item),requestAnimationFrame(()=>{a(s,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{n(i,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height+this.dom.content.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{this._setTimeout(()=>{a(r,this.dom.item),this.dom.item.style.height=""},h)})})})):(n(i,this.dom.item),a(s,this.dom.item)),this.dom.content.removeAttribute("inert"),t&&this._dispatchEvent("expand",this.dom.item)}_conceal({emit:t=!0,transition:e=!0}={}){const{closeClass:s,openClass:i,transitionClass:r,closeDuration:h}=this.elements.parent;this.dom.toggle.setAttribute("aria-expanded","false"),e&&r!==""?(n(r,this.dom.item),this.dom.item.style.height=`${this.dom.item.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{a(i,this.dom.item),this.dom.item.style.height=`${this.dom.header.getBoundingClientRect().height}px`,requestAnimationFrame(()=>{n(s,this.dom.item),requestAnimationFrame(()=>{this._setTimeout(()=>{a(r,this.dom.item),this.dom.item.style.height=""},h)})})})):(n(s,this.dom.item),a(i,this.dom.item)),this.dom.content.setAttribute("inert","true"),t&&this._dispatchEvent("collapse",this.dom.item)}show({force:t=!1,preserveState:e=!1,emit:s=!0,transition:i=!0}={}){this.isOpen&&!t||(this._reveal({emit:s,transition:i}),this._open.value=!0,e||this._open.commit(),this.elements.parent.allowMultipleExpand||(this.unlockSiblings(),this.closeSiblings()),this.elements.parent.allowNoExpand||(this.elements.parent.openAccordionItems.length<=1?this.lock():this.unlockSiblings()))}hide({force:t=!1,preserveState:e=!1,emit:s=!0,transition:i=!0}={}){!this.isOpen&&!t||!this.elements.parent.allowNoExpand&&this.elements.parent.openAccordionItems.length<=1||(this._conceal({emit:s,transition:i}),this._open.value=!1,e||this._open.commit(),!this.elements.parent.allowNoExpand&&this.elements.parent.openAccordionItems.length===1&&this.elements.parent.openAccordionItems[0].lock())}toggle(){this.isOpen?this.hide():this.show()}focus(){this.dom.toggle.focus()}blur(){this.dom.toggle.blur()}lock(){this._locked.value=!0,this._locked.commit(),this.dom.toggle.setAttribute("disabled","true")}unlock(){this._locked.value=!1,this._locked.commit(),this.dom.toggle.removeAttribute("disabled")}closeSiblings(){this.elements.parent&&this.elements.parent.elements.accordionItems.forEach(t=>{t!==this&&t.hide()})}unlockSiblings(){this.elements.parent&&this.elements.parent.elements.accordionItems.forEach(t=>{t!==this&&t.unlock()})}},et=tt;function c(t){try{const e=t.key||t.keyCode,s={Enter:e==="Enter"||e===13,Space:e===" "||e==="Spacebar"||e===32,Escape:e==="Escape"||e==="Esc"||e===27,ArrowUp:e==="ArrowUp"||e==="Up"||e===38,ArrowRight:e==="ArrowRight"||e==="Right"||e===39,ArrowDown:e==="ArrowDown"||e==="Down"||e===40,ArrowLeft:e==="ArrowLeft"||e==="Left"||e===37,Home:e==="Home"||e===36,End:e==="End"||e===35,Tab:e==="Tab"||e===9};return Object.keys(s).find(i=>s[i]===!0)||""}catch{return""}}function l(t){t.preventDefault(),t.stopPropagation()}var st=class extends w{_dom={accordion:null,accordionItems:[],accordionItemToggles:[],accordionItemHeaders:[],accordionItemContents:[],accordionControlContainer:null,accordionControls:[],expandController:[],collapseController:[]};_protectedDOMElements=["accordion"];_selectors={accordionItems:"",accordionItemToggles:"",accordionItemHeaders:"",accordionItemContents:"",accordionControlContainer:"",accordionControls:"",expandController:"",collapseController:""};_elements={accordionItems:[]};_classes={open:"show",close:"hide",transition:"transitioning",initialize:"initializing"};_durations={transition:250,open:-1,close:-1};_optionalKeySupport=!0;_allowMultipleExpand=!0;_allowNoExpand=!0;_currentChild=0;_storageKey="accordions";constructor({accordionElement:t,accordionItemSelector:e=".accordion-item",accordionItemToggleSelector:s=".accordion-item-toggle",accordionItemHeaderSelector:i=".accordion-item-header",accordionItemContentSelector:r=".accordion-item-content",accordionControlContainerSelector:h=".accordion-control-container",accordionControlsSelector:m=".accordion-control",expandControllerSelector:d=".expand-all",collapseControllerSelector:_=".collapse-all",openClass:p="show",closeClass:g="hide",transitionClass:y="transitioning",transitionDuration:C=300,openDuration:v=-1,closeDuration:x=-1,optionalKeySupport:I=!1,allowMultipleExpand:k=!0,allowNoExpand:z=!0,automaticActivation:F=!1,prefix:K="graupl-",key:q=null,initializeClass:P="initializing",initialize:j=!1}){super({prefix:K,key:q,initializeClass:P}),this._dom.accordion=t,this._selectors.accordionItems=e,this._selectors.accordionItemToggles=s,this._selectors.accordionItemHeaders=i,this._selectors.accordionItemContents=r,this._selectors.accordionControlContainer=h,this._selectors.accordionControls=m,this._selectors.expandController=d,this._selectors.collapseController=_,this._classes.open=p||"",this._classes.close=g||"",this._classes.transition=y||"",this._durations.transition=C,this._durations.open=v,this._durations.close=x,this._automatic=F,this._optionalKeySupport=I,this._allowMultipleExpand=k,this._allowNoExpand=z,j&&this.initialize()}initialize(){try{n(this._classes.initialize,this.dom.accordion),super.initialize(),this._setDOMElements(),this._setIds(),this._setCustomProps(),this._createChildElements(),this._handleFocus(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),this._store(),this.dom.expandController.length>0&&!this.allowMultipleExpand&&this.dom.expandController.forEach(t=>{t.setAttribute("disabled","disabled")}),this.dom.collapseController.length>0&&!this.allowNoExpand&&this.dom.collapseController.forEach(t=>{t.setAttribute("disabled","disabled")})}catch(t){console.error(t)}finally{requestAnimationFrame(()=>{a(this._classes.initialize,this.dom.accordion)})}}get openClass(){return this._classes.open}set openClass(t){u({openClass:t}),this._classes.open!==t&&(this._classes.open=t)}get closeClass(){return this._classes.close}set closeClass(t){u({closeClass:t}),this._classes.close!==t&&(this._classes.close=t)}get transitionClass(){return this._classes.transition}set transitionClass(t){u({transitionClass:t}),this._classes.transition!==t&&(this._classes.transition=t)}get transitionDuration(){return this._durations.transition}set transitionDuration(t){o("number",{transitionDuration:t}),this._durations.transition!==t&&(this._durations.transition=t,this._setTransitionDurations())}get openDuration(){return this._durations.open===-1?this.transitionDuration:this._durations.open}set openDuration(t){o("number",{openDuration:t}),this._durations.open!==t&&(this._durations.open=t,this._setTransitionDurations())}get closeDuration(){return this._durations.close===-1?this.transitionDuration:this._durations.close}set closeDuration(t){o("number",{closeDuration:t}),this._durations.close!==t&&(this._durations.close=t,this._setTransitionDurations())}get currentChild(){return this._currentChild}set currentChild(t){o("number",{currentChild:t}),this._currentChild!==t&&t>=0&&t<this.elements.accordionItems.length&&(this._currentChild=t)}get optionalKeySupport(){return this._optionalKeySupport}set optionalKeySupport(t){o("boolean",{optionalKeySupport:t}),this._optionalKeySupport!==t&&(this._optionalKeySupport=t)}get currentAccordionItem(){return this.elements.accordionItems[this.currentChild]}get openAccordionItems(){return this.elements.accordionItems.filter(t=>t.isOpen)}get allowMultipleExpand(){return this._allowMultipleExpand}set allowMultipleExpand(t){o("boolean",{allowMultipleExpand:t}),this._allowMultipleExpand!==t&&(this._allowMultipleExpand=t,this.dom.expandController.length>0&&(t?this.dom.expandController.forEach(e=>{e.removeAttribute("disabled")}):this.dom.expandController.forEach(e=>{e.setAttribute("disabled","disabled")})))}get allowNoExpand(){return this._allowNoExpand}set allowNoExpand(t){o("boolean",{allowNoExpand:t}),this._allowNoExpand!==t&&(this._allowNoExpand=t,this.dom.collapseController.length>0&&(t?this.dom.collapseController.forEach(e=>{e.removeAttribute("disabled")}):this.dom.collapseController.forEach(e=>{e.setAttribute("disabled","disabled")})))}_validate(){super._validate();const t=o("boolean",{automaticActivation:this._automatic,optionalKeySupport:this._optionalKeySupport,allowMultipleExpand:this._allowMultipleExpand,allowNoExpand:this._allowNoExpand});return t||(this._errors.push(t.message),this._valid=!1),this._valid}_setIds(){this.dom.accordion.id=this.dom.accordion.id||`accordion-${this.key}`,this._id=this.dom.accordion.id}_setCustomProps(){this.dom.accordion.style.setProperty(`--${this.prefix}accordion-transition-duration`,`${this.transitionDuration}ms`),this.dom.accordion.style.setProperty(`--${this.prefix}accordion-open-transition-duration`,`${this.openDuration}ms`),this.dom.accordion.style.setProperty(`--${this.prefix}accordion-close-transition-duration`,`${this.closeDuration}ms`)}_setDOMElements(){this._setDOMElementType("accordionItems",{context:this.dom.accordion}),this._resetDOMElementType("accordionItemToggles"),this._setDOMElementType("accordionControlContainer",{context:this.dom.accordion}),this.dom.accordionControlContainer&&(this._setDOMElementType("accordionControls",{context:this.dom.accordionControlContainer}),this._setDOMElementType("expandController",{context:this.dom.accordionControlContainer}),this._setDOMElementType("collapseController",{context:this.dom.accordionControlContainer})),this.dom.accordionItems.forEach(t=>{this._setDOMElementType("accordionItemToggles",{context:t,overwrite:!1,strict:!1}),this._setDOMElementType("accordionItemHeaders",{context:t,overwrite:!1,strict:!1}),this._setDOMElementType("accordionItemContents",{context:t,overwrite:!1,strict:!1})})}_createChildElements(){this.dom.accordionItems.forEach((t,e)=>{const s=new et({accordionItemElement:t,accordionItemToggleElement:this.dom.accordionItemToggles[e],accordionItemHeaderElement:this.dom.accordionItemHeaders[e],accordionItemContentElement:this.dom.accordionItemContents[e],parentAccordion:this});s.initialize(),this.elements.accordionItems.push(s)})}_handleFocus(){this.elements.accordionItems.forEach((t,e)=>{this._addEventListener("focus",t.dom.toggle,()=>{this.currentChild=e})})}_handleClick(){this.elements.accordionItems.forEach((t,e)=>{this._addEventListener("pointerup",t.dom.toggle,()=>{this.currentChild=e,this.currentEvent="mouse",t.toggle()})}),this.dom.expandController.forEach(t=>{this._addEventListener("pointerup",t,()=>{this.currentEvent="mouse",this.allowMultipleExpand&&this.openChildren()})}),this.dom.collapseController.forEach(t=>{this._addEventListener("pointerup",t,()=>{this.currentEvent="mouse",this.allowNoExpand&&this.closeChildren()})})}_handleKeydown(){this.dom.accordionItemToggles.forEach(t=>{this._addEventListener("keydown",t,e=>{const s=c(e);["Space","Enter"].includes(s)?(l(e),this.currentEvent="keyboard"):this.optionalKeySupport&&["ArrowDown","ArrowUp","Home","End"].includes(s)&&(l(e),this.currentEvent="keyboard")})}),this.dom.accordionControls.forEach(t=>{this._addEventListener("keydown",t,e=>{const s=c(e);["Space","Enter"].includes(s)&&(l(e),this.currentEvent="keyboard")})})}_handleKeyup(){this.dom.accordionItemToggles.forEach(t=>{this._addEventListener("keyup",t,e=>{const s=c(e);switch(s){case"Space":case"Enter":l(e),this.currentEvent="keyboard",this.currentAccordionItem.toggle();break}if(this.optionalKeySupport)switch(s){case"Home":l(e),this.focusFirstChild();break;case"End":l(e),this.focusLastChild();break;case"ArrowDown":l(e),this.focusNextChild();break;case"ArrowUp":l(e),this.focusPreviousChild();break}})}),this.dom.expandController.forEach(t=>{this._addEventListener("keyup",t,e=>{switch(c(e)){case"Space":case"Enter":l(e),this.currentEvent="keyboard",this.allowMultipleExpand&&this.openChildren()}})}),this.dom.collapseController.forEach(t=>{this._addEventListener("keyup",t,e=>{switch(c(e)){case"Space":case"Enter":l(e),this.currentEvent="keyboard",this.allowNoExpand&&this.closeChildren()}})})}focusCurrentChild(){this.currentChild!==-1&&this.currentAccordionItem.focus()}focusChild(t){this.blurCurrentChild(),this.currentChild=t,this.focusCurrentChild()}focusFirstChild(){this.focusChild(0)}focusLastChild(){this.focusChild(this.elements.accordionItems.length-1)}focusNextChild(){this.currentChild<this.elements.accordionItems.length-1?this.focusChild(this.currentChild+1):this.focusCurrentChild()}focusPreviousChild(){this.currentChild>0?this.focusChild(this.currentChild-1):this.focusCurrentChild()}blurCurrentChild(){this.currentChild!==-1&&this.currentAccordionItem.blur()}openChildren(){this.elements.accordionItems.forEach(t=>t.show())}closeChildren(){this.elements.accordionItems.forEach(t=>t.hide())}},it=st;const H=/[\11\12\14\15\40]+/,S="data-once",rt=document;function L(t,e,s){return t[`${e}Attribute`](S,s)}function T(t){if(typeof t!="string")throw new TypeError("once ID must be a string");if(t===""||H.test(t))throw new RangeError("once ID must not be empty or contain spaces");return`[${S}~="${t}"]`}function ot(t){if(!(t instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function O(t,e=rt){let s=t;if(t===null)s=[];else if(t)if(e instanceof Document||e instanceof DocumentFragment||e instanceof Element)typeof t=="string"?s=e.querySelectorAll(t):t instanceof Element&&(s=[t]);else throw new TypeError('Context must be an object of type "Document", "DocumentFragment", or "Element".');else throw new TypeError("Selector must not be empty");return Array.prototype.slice.call(s)}function M(t,e,s){return e.filter(i=>{const r=ot(i)&&i.matches(t);return r&&s&&s(i),r})}function Q(t,{add:e,remove:s}){const i=[];L(t,"has")&&L(t,"get").trim().split(H).forEach(h=>{i.indexOf(h)<0&&h!==s&&i.push(h)}),e&&i.push(e);const r=i.join(" ");L(t,r===""?"remove":"set",r)}function $(t,e,s){return M(`:not(${T(t)})`,O(e,s),i=>Q(i,{add:t}))}$.remove=(t,e,s)=>M(T(t),O(e,s),i=>Q(i,{remove:t})),$.filter=(t,e,s)=>M(T(t),O(e,s)),$.find=(t,e)=>O(t?T(t):`[${S}]`,e);var f=$,nt=(t={},e=document,s=".accordion")=>{f("graupl-accordion-generator",s,e).forEach(i=>{const r=i.dataset.grauplAccordionOptions?JSON.parse(i.dataset.grauplAccordionOptions.replace(/'/g,'"'))||{}:{};new it({accordionElement:i,initialize:!0,...t,...r})})},at=class extends w{_dom={alert:null,controller:null};_protectedDOMElements=["alert","controller"];_classes={show:"",hide:"",transition:"",initialize:""};_durations={transition:150,show:-1,hide:-1};_hidden=new D(!1);_events={show:new CustomEvent("grauplAlertShow",{bubbles:!0,detail:{alert:this}}),hide:new CustomEvent("grauplAlertHide",{bubbles:!0,detail:{alert:this}})};_storageKey="alerts";constructor({alertElement:t,controllerElement:e=null,showClass:s="show",hideClass:i="hide",transitionClass:r="transitioning",transitionDuration:h=150,showDuration:m=-1,hideDuration:d=-1,isHidden:_=!1,prefix:p="graupl-",key:g=null,initializeClass:y="initializing",initialize:C=!1}={}){super({prefix:p,key:g,initializeClass:y}),this._dom.alert=t,this._dom.controller=e,this._classes.show=s||"",this._classes.hide=i||"",this._classes.transition=r||"",this._durations.transition=h,this._durations.show=m,this._durations.hide=d,this._hidden.value=_,this._hidden.commit(),C&&this.initialize()}initialize(){try{n(this._classes.initialize,this.dom.alert),super.initialize(),this._setIds(),this._setCustomProps(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),this._store(),this.isHidden&&this._conseal({emit:!1,transition:!1})}catch(t){console.error(t)}finally{requestAnimationFrame(()=>{a(this._classes.initialize,this.dom.alert)})}}get showClass(){return this._classes.show}set showClass(t){u({showClass:t}),this._classes.show!==t&&(this._classes.show=t)}get hideClass(){return this._classes.hide}set hideClass(t){u({hideClass:t}),this._classes.hide!==t&&(this._classes.hide=t)}get transitionClass(){return this._classes.transition}set transitionClass(t){u({transitionClass:t}),this._classes.transition!==t&&(this._classes.transition=t)}get transitionDuration(){return this._durations.transition}set transitionDuration(t){o("number",{transitionDuration:t}),this._durations.transition!==t&&(this._durations.transition=t,this._setCustomProps())}get showDuration(){return this._durations.show===-1?this.transitionDuration:this._durations.show}set showDuration(t){o("number",{value:t}),this._durations.show!==t&&(this._durations.show=t,this._setCustomProps())}get hideDuration(){return this._durations.hide===-1?this.transitionDuration:this._durations.hide}set hideDuration(t){o("number",{value:t}),this._durations.hide!==t&&(this._durations.hide=t,this._setCustomProps())}get isHidden(){return this._hidden.value}_validate(){super._validate();const t=o("boolean",{isHidden:this._hidden.value});return t||(this._errors.push(t.message),this._valid=!1),this._valid}_setIds(){this.dom.alert.id=this.dom.alert.id||`alert-${this.key}`,this.dom.controller.id=this.dom.controller.id||`alert-controller-${this.key}`,this._id=this.dom.alert.id}_reveal({emit:t=!0,transition:e=!0}={}){e&&this.transitionClass!==""?(n(this.transitionClass,this.dom.alert),requestAnimationFrame(()=>{a(this.hideClass,this.dom.alert),requestAnimationFrame(()=>{n(this.showClass,this.dom.alert),requestAnimationFrame(()=>{this._setTimeout(()=>a(this.transitionClass,this.dom.alert),this.showDuration)})})})):(n(this.showClass,this.dom.alert),a(this.hideClass,this.dom.alert)),this.dom.alert.removeAttribute("inert"),t&&this._dispatchEvent("show",this.dom.alert)}_conseal({emit:t=!0,transition:e=!0}={}){e&&this.transitionClass!==""?(n(this.transitionClass,this.dom.alert),requestAnimationFrame(()=>{a(this.showClass,this.dom.alert),requestAnimationFrame(()=>{n(this.hideClass,this.dom.alert),requestAnimationFrame(()=>{this._setTimeout(()=>a(this.transitionClass,this.dom.alert),this.hideDuration)})})})):(n(this.hideClass,this.dom.alert),a(this.showClass,this.dom.alert)),this.dom.alert.setAttribute("inert","true"),t&&this._dispatchEvent("hide",this.dom.alert)}_setCustomProps(){this.dom.alert.style.setProperty(`--${this.prefix}alert-transition-duration`,`${this.transitionDuration}ms`),this.dom.alert.style.setProperty(`--${this.prefix}alert-show-transition-duration`,`${this.showDuration}ms`),this.dom.alert.style.setProperty(`--${this.prefix}alert-hide-transition-duration`,`${this.hideDuration}ms`)}_handleClick(){this.dom.controller!==null&&this._addEventListener("pointerup",this.dom.controller,()=>this.hide())}_handleKeydown(){this.dom.controller!==null&&this._addEventListener("keydown",this.dom.controller,t=>{const e=c(t);(e==="Space"||e==="Enter")&&l(t)})}_handleKeyup(){this.dom.controller!==null&&this._addEventListener("keyup",this.dom.controller,t=>{const e=c(t);(e==="Space"||e==="Enter")&&this.hide()})}show({force:t=!1,preserveState:e=!1}={}){!this.isHidden&&!t||(this.focusState="self",this._reveal(),this._hidden.value=!1,e||this._hidden.commit())}hide({force:t=!1,preserveState:e=!1}={}){this.isHidden&&!t||(this.focusState="none",this._conseal(),this._hidden.value=!0,e||this._hidden.commit())}},lt=at,ht=(t={},e=document,s=".alert")=>{f("graupl-alert-generator",s,e).forEach(i=>{const r=i.dataset.grauplAlertOptions?JSON.parse(i.dataset.grauplAlertOptions.replace(/'/g,'"'))||{}:{};new lt({alertElement:i,controllerElement:i.querySelector(".alert-dismisser")||null,initialize:!0,...t,...r})})},ct=class extends w{_dom={carousel:null,carouselItems:[],carouselItemContainer:null,carouselControls:[],carouselControlContainer:null,carouselTabs:[],carouselTabContainer:null,autoplay:null,next:null,previous:null};_protectedDOMElements=["carousel"];_selectors={carouselItems:"",carouselItemContainer:"",carouselControls:"",carouselControlContainer:"",carouselTabs:"",carouselTabContainer:"",autoplay:"",next:"",previous:""};_classes={active:"active",previous:"previous",next:"next",play:"play",pause:"pause",initialize:"initializing"};_durations={transition:250};_delays={transition:1e4};_currentItem=0;_autoplay=!0;_playText="Play";_pauseText="Pause";_currentAction="next";_storageKey="carousels";constructor({carouselElement:t,carouselItemSelector:e=".carousel-item",carouselItemContainerSelector:s=".carousel-item-container",carouselControlSelector:i=".carousel-control",carouselControlContainerSelector:r=".carousel-control-container",carouselTabSelector:h=".carousel-tab",carouselTabContainerSelector:m=".carousel-tab-container",autoplaySelector:d=".autoplay",nextSelector:_=".next",previousSelector:p=".previous",activeClass:g="active",previousClass:y="previous",nextClass:C="next",playClass:v="play",pauseClass:x="pause",autoplay:I=!0,transitionDelay:k=1e4,transitionDuration:z=500,playText:F="Play",pauseText:K="Pause",prefix:q="graupl-",key:P=null,initializeClass:j="initializing",initialize:gt=!1}){super({prefix:q,key:P,initializeClass:j}),this._dom.carousel=t,this._selectors.carouselItems=e,this._selectors.carouselItemContainer=s,this._selectors.carouselControls=i,this._selectors.carouselControlContainer=r,this._selectors.carouselTabs=h,this._selectors.carouselTabContainer=m,this._selectors.autoplay=d,this._selectors.next=_,this._selectors.previous=p,this._classes.active=g||"",this._classes.previous=y||"",this._classes.next=C||"",this._classes.play=v||"",this._classes.pause=x||"",this._autoplay=I,this._delays.transition=k,this._durations.transition=z,this._playText=F||"",this._pauseText=K||"",gt&&this.initialize()}initialize(){try{n(this._classes.initialize,this.dom.carousel),super.initialize(),this._setDOMElements(),this._setIds(),this._setAriaAttributes(),this._setCustomProps(),this.activateFirstItem(),this._handleAutoplay(),this._handleFocus(),this._handleClick(),this._handleHover(),this._handleKeydown(),this._handleKeyup(),this._store()}catch(t){console.error(t)}finally{requestAnimationFrame(()=>{a(this.initializeClass,this.dom.carousel)})}}get activeClass(){return this._classes.active}set activeClass(t){u({activeClass:t}),this._classes.active!==t&&(this._classes.active=t)}get previousClass(){return this._classes.previous}set previousClass(t){u({previousClass:t}),this._classes.previous!==t&&(this._classes.previous=t)}get nextClass(){return this._classes.next}set nextClass(t){u({nextClass:t}),this._classes.next!==t&&(this._classes.next=t)}get playClass(){return this._classes.play}set playClass(t){u({playClass:t}),this._classes.play!==t&&(this._classes.play=t)}get pauseClass(){return this._classes.pause}set pauseClass(t){u({pauseClass:t}),this._classes.pause!==t&&(this._classes.pause=t)}get currentItem(){return this._currentItem}set currentItem(t){o("number",{currentItem:t}),t!==this.currentItem&&(t<0?this._currentItem=0:t>=this.dom.carouselItems.length?this._currentItem=this.dom.carouselItems.length-1:this._currentItem=t,this._dom.carousel.querySelectorAll(this.selectors.carouselTab)&&this.dom.carouselItems.forEach((e,s)=>{e.setAttribute("aria-selected",s===this._currentItem)}))}get currentCarouselItem(){return this.dom.carouselItems[this.currentItem]}get currentCarouselTab(){return this.dom.carouselTabs[this.currentItem]}get autoplay(){return this._autoplay}set autoplay(t){o("boolean",{autoplay:t}),this._autoplay!==t&&(this._autoplay=t)}get transitionDelay(){return this._delays.transition}set transitionDelay(t){o("number",{transitionDelay:t}),t!==this.transitionDelay&&t>=0&&(this._delays.transition=t)}get transitionDuration(){return this._durations.transition}set transitionDuration(t){o("number",{transitionDuration:t}),this._durations.transition!==t&&t>=0&&(this._durations.transition=t,this._setTransitionDuration())}get playText(){return this._playText}set playText(t){o("string",{playText:t}),this._playText!==t&&(this._playText=t)}get pauseText(){return this._pauseText}set pauseText(t){o("string",{pauseText:t}),this._pauseText!==t&&(this._pauseText=t)}get currentAction(){return this._currentAction}_validate(){super._validate();const t=o("boolean",{autoplay:this._autoplay});t||(this._errors.push(t.message),this._valid=!1);const e=o("string",{playText:this._playText,pauseText:this._pauseText});return e||(this._errors.push(e.message),this._valid=!1),this._valid}_setDOMElements(){this._setDOMElementType("carouselItemContainer",{context:this.dom.carousel}),this._setDOMElementType("carouselControlContainer",{context:this.dom.carousel}),this._setDOMElementType("carouselTabContainer",{context:this.dom.carousel}),this.dom.carouselItemContainer&&this._setDOMElementType("carouselItems",{context:this.dom.carouselItemContainer}),this.dom.carouselControlContainer&&(this._setDOMElementType("carouselControls",{context:this.dom.carouselControlContainer}),this._setDOMElementType("autoplay",{context:this.dom.carouselControlContainer}),this._setDOMElementType("next",{context:this.dom.carouselControlContainer}),this._setDOMElementType("previous",{context:this.dom.carouselControlContainer})),this._dom.carouselTabContainer&&this._setDOMElementType("carouselTabs",{context:this.dom.carouselTabContainer})}_setIds(){this.dom.carousel.id=this.dom.carousel.id||`carousel-${this.key}`,this.dom.carouselItems.forEach((t,e)=>{t.id=t.id||`carousel-item-${this.key}-${e}`}),this.dom.carouselTabs.forEach((t,e)=>{t.id=t.id||`carousel-tab-${this.key}-${e}`}),this._id=this.dom.carousel.id}_setAriaAttributes(){!b("section",{carousel:this.dom.carousel})&&!this.dom.carousel.getAttribute("role")!=="region"&&this.dom.carousel.setAttribute("role","group"),this._dom.carousel.setAttribute("aria-roledescription","carousel"),this.dom.carouselTabContainer&&this.dom.carouselTabContainer.setAttribute("role","tablist"),this.dom.carouselTabs.forEach((t,e)=>{b("button",{tab:t})||t.setAttribute("role","button"),t.setAttribute("aria-selected",e===0),t.setAttribute("aria-controls",this.dom.carouselItems[e].id)})}_setCustomProps(){this.dom.carousel.style.setProperty(`--${this.prefix}carousel-transition-duration`,`${this.transitionDuration}ms`)}_handleAutoplay(){this.autoplay?(n(this.pauseClass,this.dom.autoplay),a(this.playClass,this.dom.autoplay),this.dom.autoplay.setAttribute("aria-label",this.pauseText),this.dom.carousel.setAttribute("aria-live","off"),this._setInterval(()=>this.activateNextItem(),this.transitionDelay)):(n(this.playClass,this.dom.autoplay),a(this.pauseClass,this.dom.autoplay),this.dom.autoplay.setAttribute("aria-label",this.playText),this.dom.carousel.setAttribute("aria-live","polite"),this._clearInterval())}_handleFocus(){this._addEventListener("focusin",this.dom.carousel,()=>{this.autoplay&&this._clearInterval()}),this._addEventListener("focusout",this.dom.carousel,()=>{this.autoplay&&this._setInterval(()=>this.activateNextItem(),this.transitionDelay)})}_handleClick(){this._addEventListener("pointerup",this.dom.next,()=>{this.activateNextItem()}),this._addEventListener("pointerup",this.dom.previous,()=>{this.activatePreviousItem()}),this._addEventListener("pointerup",this.dom.autoplay,()=>{this.toggleAutoplay()}),this.dom.carouselTabs.forEach((t,e)=>{this._addEventListener("pointerup",t,()=>{this.currentItem>e?this._currentAction="previous":this._currentAction="next",this.activateItem(e)})})}_handleHover(){this._addEventListener("pointerover",this.dom.carousel,()=>{this.autoplay&&this._clearInterval()}),this._addEventListener("pointerleave",this.dom.carousel,()=>{this.autoplay&&this._setInterval(()=>this.activateNextItem(),this.transitionDelay)})}_handleKeydown(){this.dom.carouselControls.forEach(t=>{this._addEventListener("keydown",t,e=>{switch(c(e)){case"Space":case"Enter":l(e);break}})}),this.dom.carouselTabs.forEach(t=>{this._addEventListener("keydown",t,e=>{switch(c(e)){case"Space":case"Enter":l(e);break}})})}_handleKeyup(){this._addEventListener("keyup",this.dom.next,t=>{switch(c(t)){case"Space":case"Enter":this.activateNextItem(),l(t);break}}),this._addEventListener("keyup",this.dom.previous,t=>{switch(c(t)){case"Space":case"Enter":this.activatePreviousItem(),l(t);break}}),this._addEventListener("keyup",this.dom.autoplay,t=>{switch(c(t)){case"Space":case"Enter":this.toggleAutoplay(),l(t);break}}),this.dom.carouselTabs.forEach((t,e)=>{this._addEventListener("keyup",t,s=>{switch(c(s)){case"Space":case"Enter":this.activateItem(e),l(s);break}})})}activateCurrentItem(){n(this.activeClass,this.currentCarouselItem),this.currentCarouselTab&&(this.currentCarouselTab.setAttribute("aria-selected",!0),n(this.activeClass,this.currentCarouselTab))}deactivateCurrentItem(){a(this.activeClass,this.currentCarouselItem),this.currentCarouselTab&&(this.currentCarouselTab.setAttribute("aria-selected",!1),a(this.activeClass,this.currentCarouselTab))}activateItem(t){const e=this.currentItem;this.dom.carousel.dataset.grauplAction=this._currentAction,this.autoplay&&this._clearInterval(),n(this.previousClass,this.currentCarouselItem),n(this.nextClass,this.dom.carouselItems[t]),requestAnimationFrame(()=>{this.deactivateCurrentItem(),this.currentItem=t,this.activateCurrentItem(),requestAnimationFrame(()=>{setTimeout(()=>{a(this.previousClass,this.dom.carouselItems[e]),a(this.nextClass,this.currentCarouselItem)},this.transitionDuration)})}),this.autoplay&&this._setInterval(()=>this.activateNextItem(),this.transitionDelay)}activateFirstItem(){this.activateItem(0)}activateLastItem(){this.activateItem(this.dom.carouselItems.length-1)}activateNextItem(){this._currentAction="next",this.currentItem+1>=this.dom.carouselItems.length?this.activateFirstItem():this.activateItem(this.currentItem+1)}activatePreviousItem(){this._currentAction="previous",this.currentItem-1<0?this.activateLastItem():this.activateItem(this.currentItem-1)}toggleAutoplay(){this.autoplay=!this.autoplay,this._handleAutoplay()}},ut=ct,dt=(t={},e=document,s=".carousel")=>{f("graupl-carousel-generator",s,e).forEach(i=>{const r=i.dataset.grauplCarouselOptions?JSON.parse(i.dataset.grauplCarouselOptions.replace(/'/g,'"'))||{}:{};new ut({carouselElement:i,initialize:!0,...t,...r})})},mt=(t={},e=document,s=".navigation")=>{f("graupl-navigation-generator",s,e).forEach(i=>{const r=i.dataset.grauplMenuType||DisclosureMenu;if(window[r]===void 0){console.warn(`Graupl navigation requires accessible-menu's ${r}. Please make sure to include it on this page.`);return}const h=i.dataset.grauplMenuOptions?JSON.parse(i.dataset.grauplMenuOptions.replace(/'/g,'"'))||{}:{},m=i.querySelector(".menu"),d=i.querySelector(".navigation-toggle")||null,_=d?i:null,p=new window[r]({menuElement:m,menuItemSelector:".menu-item",menuLinkSelector:".menu-link",submenuItemSelector:".submenu-item",submenuToggleSelector:".submenu-toggle",controllerElement:d,containerElement:_,...t,...h});E.initializeStorage("menus"),E.pushToStorage("menus",p.dom.menu.id,p)})},pt=class extends w{_dom={controller:null,disclosure:null,content:null};_protectedDOMElements=["controller","disclosure"];_selectors={content:""};_classes={open:"show",close:"hide",transition:"transitioning",initialize:"initializing"};_durations={transition:5e3,open:-1,close:-1};_open=new D(!1);_shouldOpen=!1;_closeOnBlur=!1;_mediaQueryListEventCallback=t=>{t.matches&&this.isOpen?this.close({preserveState:!0}):!t.matches&&!this.isOpen&&(this.hasOpened||this.shouldOpen)&&this.open()};_storageKey="disclosures";_events={expand:new CustomEvent("grauplDisclosureExpand",{bubbles:!0,detail:{disclosure:this}}),collapse:new CustomEvent("grauplDisclosureCollapse",{bubbles:!0,detail:{disclosure:this}})};constructor({disclosureElement:t,controllerElement:e,disclosureContentSelector:s=".disclosure-content",openClass:i="show",closeClass:r="hide",transitionClass:h="transitioning",transitionDuration:m=250,openDuration:d=-1,closeDuration:_=-1,closeOnBlur:p=!1,minWidth:g="",autoOpen:y=!1,mediaQuery:C="",prefix:v="graupl-",key:x=null,initializeClass:I="initializing",initialize:k=!1}={}){super({prefix:v,key:x,initializeClass:I}),this._dom.disclosure=t,this._dom.controller=e,this._selectors.content=s,this._classes.open=i||"",this._classes.close=r||"",this._classes.transition=h||"",this._durations.transition=m,this._durations.open=d,this._durations.close=_,this._closeOnBlur=p,this._breakpoint=g||"",this._shouldOpen=y,this._mediaQueryString=C||"",k&&this.initialize()}initialize(){try{n(this._classes.initialize,this.dom.disclosure),super.initialize(),this._setDOMElements(),this._setIds(),this._setAriaAttributes(),this._setCustomProps(),this._handleMediaMatch(),this._handleFocus(),this._handleClick(),this._handleKeydown(),this._handleKeyup(),this._store(),this.dom.controller.getAttribute("aria-expanded")==="true"||this.shouldOpen&&window.matchMedia(this.mediaQuery).matches?this._expand({emit:!1,transition:!1}):this._collapse({emit:!1,transition:!1})}catch(t){console.error(t)}finally{requestAnimationFrame(()=>{a(this._classes.initialize,this.dom.disclosure)})}}get openClass(){return this._classes.open}set openClass(t){u({openClass:t}),this._classes.open!==t&&(this._classes.open=t)}get closeClass(){return this._classes.close}set closeClass(t){u({closeClass:t}),this._classes.close!==t&&(this._classes.close=t)}get transitionClass(){return this._classes.transition}set transitionClass(t){u({transitionClass:t}),this._classes.transition!==t&&(this._classes.transition=t)}get transitionDuration(){return this._durations.transition}set transitionDuration(t){o("number",{transitionDuration:t}),this._durations.transition!==t&&(this._durations.transition=t,this._setCustomProps())}get openDuration(){return this._durations.open===-1?this.transitionDuration:this._durations.open}set openDuration(t){o("number",{openDuration:t}),this._durations.open!==t&&(this._durations.open=t,this._setCustomProps())}get closeDuration(){return this._durations.close===-1?this.transitionDuration:this._durations.close}set closeDuration(t){o("number",{closeDuration:t}),this._durations.close!==t&&(this._durations.close=t,this._setCustomProps())}get minWidth(){return this.breakpoint}set minWidth(t){this.breakpoint=t}get closeOnBlur(){return this._closeOnBlur}set closeOnBlur(t){o("boolean",{closeOnBlur:t}),this._closeOnBlur!==t&&(this._closeOnBlur=t)}get isOpen(){return this._open.value}get hasOpened(){return this._open.committed}get shouldOpen(){return this._shouldOpen}set shouldOpen(t){o("boolean",{shouldOpen:t}),this._shouldOpen!==t&&(this._shouldOpen=t)}get shouldFocus(){let t=!1;return this.currentEvent==="keyboard"&&(t=!0),t}_validate(){super._validate();const t=o("boolean",{closeOnBlur:this._closeOnBlur,autoOpen:this._shouldOpen});return t||(this._errors.push(t.message),this._valid=!1),this._valid}_setIds(){this.dom.disclosure.id=this.dom.disclosure.id||`disclosure-${this.key}`,this.dom.controller.id=this.dom.controller.id||`disclosure-controller-${this.key}`,this._id=this.dom.disclosure.id}_setAriaAttributes(){this.dom.controller.getAttribute("aria-expanded")!=="true"&&this.dom.controller.setAttribute("aria-expanded","false"),this.dom.controller.setAttribute("aria-controls",this.dom.disclosure.id),b("button",{controller:this.dom.controller})||this.dom.controller.setAttribute("role","button")}_setCustomProps(){this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-transition-duration`,`${this.transitionDuration}ms`),this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-open-transition-duration`,`${this.openDuration}ms`),this.dom.disclosure.style.setProperty(`--${this.prefix}disclosure-close-transition-duration`,`${this.closeDuration}ms`)}_setDOMElements(){this._resetDOMElementType("content"),this._setDOMElementType("content",{context:this.dom.disclosure})}_expand({emit:t=!0,transition:e=!0}={}){this.dom.controller.setAttribute("aria-expanded","true"),e&&this.transitionlass!==""?(n(this.transitionClass,this.dom.disclosure),requestAnimationFrame(()=>{a(this.closeClass,this.dom.disclosure),requestAnimationFrame(()=>{n(this.openClass,this.dom.disclosure),requestAnimationFrame(()=>{setTimeout(()=>{a(this.transitionClass,this.dom.disclosure)},this.openDuration)})})})):(n(this.openClass,this.dom.disclosure),a(this.closeClass,this.dom.disclosure)),this.dom.content.removeAttribute("inert"),t&&this._dispatchEvent("expand",this.dom.controller)}_collapse({emit:t=!0,transition:e=!0}={}){this.dom.controller.setAttribute("aria-expanded","false"),e&&this.transitionClass!==""?(n(this.transitionClass,this.dom.disclosure),requestAnimationFrame(()=>{a(this.openClass,this.dom.disclosure),requestAnimationFrame(()=>{n(this.closeClass,this.dom.disclosure),requestAnimationFrame(()=>{setTimeout(()=>{a(this.transitionClass,this.dom.disclosure),this.dom.content.innert=!0},this.closeDuration)})})})):(n(this.closeClass,this.dom.disclosure),a(this.openClass,this.dom.disclosure)),this.dom.content.setAttribute("inert","true"),t&&this._dispatchEvent("collapse",this.dom.controller)}_handleFocus(){this._addEventListener("focusout",this.dom.disclosure,t=>{!this.closeOnBlur||this.currentEvent!=="keyboard"||t.relatedTarget===null||this.dom.disclosure.contains(t.relatedTarget)||this.dom.controller===t.relatedTarget||this.close()})}_handleClick(){this._addEventListener("pointerup",this.dom.controller,t=>{this.currentEvent="mouse",t.button===0&&(l(t),this.toggle())}),this._addEventListener("pointerup",document,t=>{this.focusState!=="self"||!this.closeOnBlur||(this.currentEvent="mouse",!this.dom.disclosure.contains(t.target)&&this.dom.controller!==t.target&&this.close())})}_handleKeydown(){this._addEventListener("keydown",this.dom.controller,t=>{switch(this.currentEvent="keyboard",c(t)){case"Space":case"Enter":l(t);break}}),this._addEventListener("keydown",this.dom.disclosure,t=>{this.currentEvent="keyboard",c(t)==="Escape"&&l(t)})}_handleKeyup(){this._addEventListener("keyup",this.dom.controller,t=>{switch(this.currentEvent="keyboard",c(t)){case"Space":case"Enter":this.toggle(),l(t);break}}),this._addEventListener("keyup",this.dom.disclosure,t=>{this.currentEvent="keyboard",c(t)==="Escape"&&(this.close(),l(t))})}open({force:t=!1,preserveState:e=!1}={}){this.isOpen&&!t||(this.focusState="self",this._expand(),this._open.value=!0,e||this._open.commit())}preview({force:t=!1,preserveState:e=!1}={}){this.isOpen&&!t||(this.focusState="none",this._expand(),this._open.value=!0,e||this._open.commit())}close({force:t=!1,preserveState:e=!1}={}){!this.isOpen&&!t||(this.focusState="none",this._collapse(),this._open.value=!1,e||this._open.commit())}toggle({force:t=!1,preserveState:e=!1}={}){this.isOpen?this.close({force:t,preserveState:e}):this.open({force:t,preserveState:e})}},_t=pt,ft=({options:t={},context:e=document,disclosureSelector:s=".disclosure",controllerSelector:i=".disclosure-toggle"}={})=>{f("graupl-disclosure-generator",s,e).forEach(r=>{const h=r.dataset.grauplDisclosureOptions?JSON.parse(r.dataset.grauplDisclosureOptions.replace(/'/g,'"'))||{}:{},m=`${i}[data-graupl-disclosure-target="${r.id}"]`,[d]=f("graupl-disclosure-generator",m,e);if(!d){console.warn(`No controller found for disclosure with ID "${r.id}". Please ensure there is an element with the selector "${m}".`),f.remove("graupl-disclosure-generator",r);return}new _t({disclosureElement:r,controllerElement:d,initialize:!0,...t,...h})})};document.addEventListener("DOMContentLoaded",()=>{nt(),ht(),dt(),mt(),ft()})})();
10
4
 
11
5
  //# sourceMappingURL=graupl.js.map