@public-ui/components 1.1.15-rc.7 → 1.1.15-rc.8

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.
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as setState,w as watchString,t as emptyStringByArrayHandler,u as parseJson,j as watchValidator,v as objectObjectHandler}from"./prop.validators.js";import{d as defineCustomElement$c}from"./component.js";import{d as defineCustomElement$2,a as defineCustomElement$9,b as defineCustomElement$b}from"./component2.js";import{d as defineCustomElement$a}from"./shadow.js";import{d as defineCustomElement$8}from"./component4.js";import{d as defineCustomElement$7}from"./component5.js";import{d as defineCustomElement$6}from"./component7.js";import{d as defineCustomElement$5}from"./component11.js";import{d as defineCustomElement$4}from"./component12.js";import{d as defineCustomElement$3}from"./component13.js";const defaultStyleCss='/* windicss-touch: 1639175625181 */\n/* windicss-touch: 1649810622229 */\n/* windicss layer base */\n*, ::before, ::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: var(--kolibri-border-color);\n}\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: var(--kolibri-color);\n --tw-ring-color: rgba(undefined, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n}\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\n::moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n[type=\'search\'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nbody {\n margin: 0;\n font-family: inherit;\n line-height: inherit;\n}\nb {\n font-weight: bolder;\n}\nbutton, select {\n text-transform: none;\n}\nbutton, [type=\'button\'], [type=\'reset\'], [type=\'submit\'] {\n -webkit-appearance: button;\n}\nbutton {\n background-color: transparent;\n background-image: none;\n}\nbutton, [role="button"] {\n cursor: pointer;\n}\ncode {\n font-size: 1em;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nhtml {\n -webkit-text-size-adjust: 100%;\n font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";\n line-height: 1.5;\n}\nh1, p, h2, h3, h4, h5, h6 {\n margin: 0;\n}\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\ninput, button, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\ninput::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nlegend {\n padding: 0;\n}\nprogress {\n vertical-align: baseline;\n}\nsmall {\n font-size: 80%;\n}\nsvg {\n display: block;\n vertical-align: middle;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\ntextarea {\n resize: vertical;\n}\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nul, ol {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/* windicss layer components */\n/* windicss layer utilities */\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.bg-normal {\n background-color: var(--kolibri-color-normal);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity));\n}\n.bg-spin-1 {\n background-color: var(--kolibri-color-spin-1);\n}\n.bg-spin-2 {\n background-color: var(--kolibri-color-spin-2);\n}\n.bg-spin-3 {\n background-color: var(--kolibri-color-spin-3);\n}\n.rounded {\n border-radius: var(--kolibri-border-radius);\n}\n.border-1 {\n border-width: 1px;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: -webkit-inline-flex;\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: -ms-grid;\n display: grid;\n}\n.hidden {\n display: none;\n}\n.flex-wrap {\n -ms-flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n}\n.content-center {\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n}\n.float-left {\n float: left;\n}\n.font-80 {\n font-weight: 80;\n}\n.font-60 {\n font-weight: 60;\n}\n.h-full {\n height: 100%;\n}\n.h-0 {\n height: 0px;\n}\n.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16 {\n height: 0.29rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.list-none {\n list-style-type: none;\n}\n.list-disc {\n list-style-type: disc;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1 {\n margin-bottom: calc(1 * var(--kolibri-spacing));\n}\n.mr-2 {\n margin-right: calc(2 * var(--kolibri-spacing));\n}\n.ml-2 {\n margin-left: calc(2 * var(--kolibri-spacing));\n}\n.mt-2 {\n margin-top: calc(2 * var(--kolibri-spacing));\n}\n.mt-4 {\n margin-top: calc(4 * var(--kolibri-spacing));\n}\n.outline {\n outline-style: solid;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-visible {\n overflow-y: visible;\n}\n.p-2 {\n padding: calc(2 * var(--kolibri-spacing));\n}\n.p-4 {\n padding: calc(4 * var(--kolibri-spacing));\n}\n.px {\n padding-left: 1px;\n padding-right: 1px;\n}\n.py-2 {\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pb-2 {\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.tab {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n.absolute {\n position: absolute;\n}\n.text-center {\n text-align: center;\n}\n.text-normal {\n color: var(--kolibri-color-normal);\n}\n.hover\\:text-primary:hover {\n color: var(--kolibri-color-primary);\n}\n.italic {\n font-style: italic;\n}\n.underline {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n.indent {\n text-indent: 1.5rem;\n}\n.visible {\n visibility: visible;\n}\n.w-full {\n width: 100%;\n}\n.w-4\\/5 {\n width: 80%;\n}\n.z-50 {\n z-index: 50;\n}\n.gap-1 {\n grid-gap: calc(1 * var(--kolibri-spacing));\n gap: calc(1 * var(--kolibri-spacing));\n}\n.gap-2 {\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}\n.grid-flow-col {\n grid-auto-flow: column;\n}\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate: 0;\n --tw-rotate-x: 0;\n --tw-rotate-y: 0;\n --tw-rotate-z: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n -webkit-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n -ms-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n}\n.animate {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n}\n.filter {\n --tw-blur: var(--tw-empty,/*!*/ /*!*/);\n --tw-brightness: var(--tw-empty,/*!*/ /*!*/);\n --tw-contrast: var(--tw-empty,/*!*/ /*!*/);\n --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);\n --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);\n --tw-invert: var(--tw-empty,/*!*/ /*!*/);\n --tw-saturate: var(--tw-empty,/*!*/ /*!*/);\n --tw-sepia: var(--tw-empty,/*!*/ /*!*/);\n --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur {\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n}\n:host * {\n -ms-hyphens: var(--kolibri-hyphens);\n -webkit-hyphens: var(--kolibri-hyphens);\n hyphens: var(--kolibri-hyphens);\n font-family: var(--kolibri-font-family);\n line-height: var(--kolibri-line-height);\n word-break: break-word;\n}\n\n:host {\n overflow: hidden;\n}\n:host > div {\n overflow-x: auto;\n border-radius: var(--kolibri-border-radius);\n border-style: solid;\n border-width: 1px;\n}\n:host > div table {\n border: 0;\n width: 100%;\n}\n:host > div table tr {\n border-top-style: solid;\n border-top-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th, :host > div table tr td {\n border-right-style: solid;\n border-right-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th:last-child,\n:host > div table tr td:last-child {\n border: 0;\n}\n:host > div table tr th, :host > div table tr .th {\n --tw-bg-opacity: 1;\n background-color: rgba(229, 231, 235, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: rgba(243, 244, 246, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(odd) {\n @apply white;\n}\n:host > div.pagination {\n border-style: none;\n display: -ms-grid;\n display: grid;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-left: calc(1 * var(--kolibri-spacing));\n padding-right: calc(1 * var(--kolibri-spacing));\n width: 100%;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n grid-auto-flow: column;\n}\n:host > div.pagination > div::last-child {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-grid-column-align: end;\n justify-self: end;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}',PAGINATION_OPTIONS=[10,20,50,100],KolTable$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.horizontal=!0,this.sortDirections=new Map,this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.handlePagination={onClick:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onClick)&&this.state._pagination._on.onClick(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePage:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onChangePage)&&this.state._pagination._on.onChangePage(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePageSize:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:n})),setState(this,"_pageSize",n)}},this.beforePatchPagination=(t,n,e,i)=>{"_pagination"===i&&(this.showPagination=!0===t||""===t||"object"==typeof t&&null!==t)},this.updateSortedData=()=>{let t=this.state._data;if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"NOS":t=[...this.state._data];break;case"ASC":t=this.sortFunction([...this.state._data]);break;default:t=this.sortFunction([...this.state._data]).reverse()}setState(this,"_sortedData",t)},this._caption=void 0,this._data=void 0,this._headers=void 0,this._minWidth=void 0,this._pagination=void 0,this.state={_caption:"",_data:[],_headers:{horizontal:[],vertical:[]},_pagination:{_page:1,_pageSize:10,_total:0},_sortedData:[]}}validateCaption(t){watchString(this,"_caption",t,{required:!0})}validateData(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{void 0===t&&(t=[]);try{t=parseJson(t)}catch(t){}Array.isArray(t)&&void 0===t.find((t=>!("object"==typeof t&&null!==t)))&&setState(this,"_data",t,{afterPatch:()=>{const t=setTimeout((()=>{clearTimeout(t),this.updateSortedData()}))}})}))}))}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var n;null===(n=t.horizontal)||void 0===n||n.forEach((t=>{t.forEach((t=>{"function"==typeof t.sort&&"string"==typeof t.sortDirection&&this.sortDirections.set(t.sort,t.sortDirection)}))}))}}})}))}))}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validatePagination(t){try{t=parseJson(t)}catch(t){}watchValidator(this,"_pagination",(()=>!0),new Set(["boolean","KoliBriTablePagination"]),t,{hooks:{beforePatch:this.beforePatchPagination}})}componentWillLoad(){this.validateCaption(this._caption),this.validateData(this._data),this.validateHeaders(this._headers),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination)}getNumberOfCols(t,n){let e=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var e;return n+=null!==(e=t.colSpan)&&void 0!==e?e:1})),e<n&&(e=n)})),0===e&&(e=n.length),e}getNumberOfRows(t,n){let e=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var e;return n+=null!==(e=t.rowSpan)&&void 0!==e?e:1})),e<n&&(e=n)})),0===e&&(e=n.length),e}filterHeaderKeys(t){const n=[];return t.forEach((t=>{t.forEach((t=>{"string"==typeof t.key&&n.push(t)}))})),n}getPrimaryHeader(t){var n,e;let i=this.filterHeaderKeys(null!==(n=t.horizontal)&&void 0!==n?n:[]);return this.horizontal=!0,0===i.length&&(i=this.filterHeaderKeys(null!==(e=t.vertical)&&void 0!==e?e:[]),i.length>0&&(this.horizontal=!1)),i}createDataField(t,n){n.horizontal=Array.isArray(null==n?void 0:n.horizontal)?n.horizontal:[],n.vertical=Array.isArray(null==n?void 0:n.vertical)?n.vertical:[];const e=this.getPrimaryHeader(n),i=this.getNumberOfCols(n.horizontal,t),a=this.getNumberOfRows(n.vertical,t),o=[],r=[],s=[];n.vertical.forEach(((t,n)=>{r[n]=0,s[n]=[]}));for(let l=0;l<a;l++){const a=[];n.vertical.forEach(((t,n)=>{let e=0;if(s[n].forEach((t=>e+=t)),e<=l){const i=t[l-e+r[n]];if("object"==typeof i){a.push(Object.assign(Object.assign({},i),{asTd:!1,data:{}}));let t=1;if("number"==typeof i.rowSpan&&i.rowSpan>1&&(t=i.rowSpan),s[n].push(t),"number"==typeof i.colSpan&&i.colSpan>1)for(let e=1;e<i.colSpan;e++)s[n+e].push(t);r[n]++}}}));for(let n=0;n<i;n++)!0===this.horizontal?"object"==typeof e[n]&&null!==e[n]&&"string"==typeof e[n].key&&"object"==typeof t[l]&&null!==t[l]&&a.push(Object.assign(Object.assign({},e[n]),{colSpan:void 0,data:t[l],label:t[l][e[n].key],rowSpan:void 0})):"object"==typeof e[l]&&null!==e[l]&&"string"==typeof e[l].key&&"object"==typeof t[n]&&null!==t[n]&&a.push(Object.assign(Object.assign({},e[l]),{colSpan:void 0,data:t[n],label:t[n][e[l].key],rowSpan:void 0}));o.push(a)}if(0===t.length){let t=0,e=0;Array.isArray(n.horizontal)&&n.horizontal.length>0&&n.horizontal[0].forEach((n=>{t+=n.colSpan||1})),Array.isArray(n.vertical)&&n.vertical.length>0&&(t-=n.vertical.length,n.vertical[0].forEach((t=>{e+=t.rowSpan||1})));const i={label:"Es sind keine Einträge vorhanden.",colSpan:t,rowSpan:Math.max(e,1)};0===o.length?o.push([i]):o[0].push(i)}return o}selectDisplayedData(t,n,e){return"number"==typeof n&&n>0&&"number"==typeof e&&e>0?(this.pageStartSlice=n*(e-1),this.pageEndSlice=n*e>t.length?t.length:n*e,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}cellRender(t,n){const e=setTimeout((()=>{if(clearTimeout(e),"function"==typeof t.render&&n instanceof HTMLElement){const e=t.render(n,{asTd:t.asTd,label:t.label,textAlign:t.textAlign,width:t.width},t.data,this.state._data);"string"==typeof e&&(n.innerHTML=e)}}),50)}render(){var t,n;const e=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(n=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==n?n:10:this.state._sortedData.length,this.state._pagination._page||1),i=this.createDataField(e,this.state._headers);return h(Host,null,h("div",{tabindex:"0"},h("table",{style:{minWidth:this.state._minWidth}},h("caption",null,this.state._caption),Array.isArray(this.state._headers.horizontal)&&h("thead",null,this.state._headers.horizontal.map((t=>h("tr",null,t.map((t=>!0===t.asTd?h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}):h("th",{scope:"number"==typeof t.colSpan&&t.colSpan>1?"colgroup":"col",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))))))))),h("tbody",null,i.map(((t,n)=>h("tr",{key:`row-${n}`},t.map((t=>!1===t.asTd?h("th",{scope:"number"==typeof t.rowSpan&&t.rowSpan>1?"rowgroup":"row",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))):h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}))))))))),this.pageEndSlice>0&&this.showPagination&&h("div",null,h("span",null,"Einträge ",this.pageEndSlice>0?this.pageStartSlice+1:0," bis ",this.pageEndSlice," von"," ",this.state._pagination._total||(Array.isArray(this.state._data)?this.state._data.length:0)," angezeigt"),h("div",null,h("kol-pagination",{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_total:this.state._pagination._total||this.state._data.length}))))}static get watchers(){return{_caption:["validateCaption"],_data:["validateData"],_headers:["validateHeaders"],_minWidth:["validateMinWidth"],_pagination:["validatePagination"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-table",{_caption:[1],_data:[1],_headers:[1],_minWidth:[1,"_min-width"],_pagination:[8],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-table","kol-alert","kol-badge","kol-button","kol-button-wc","kol-heading-wc","kol-icon","kol-input","kol-pagination","kol-select","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-table":customElements.get(t)||customElements.define(t,KolTable$1);break;case"kol-alert":customElements.get(t)||defineCustomElement$c();break;case"kol-badge":customElements.get(t)||defineCustomElement$b();break;case"kol-button":customElements.get(t)||defineCustomElement$a();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$9();break;case"kol-heading-wc":customElements.get(t)||defineCustomElement$8();break;case"kol-icon":customElements.get(t)||defineCustomElement$7();break;case"kol-input":customElements.get(t)||defineCustomElement$6();break;case"kol-pagination":customElements.get(t)||defineCustomElement$5();break;case"kol-select":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolTable=KolTable$1,defineCustomElement=defineCustomElement$1;export{KolTable,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as setState,w as watchString,t as emptyStringByArrayHandler,u as parseJson,j as watchValidator,v as objectObjectHandler,x as getExperimalMode}from"./prop.validators.js";import{d as defineCustomElement$c}from"./component.js";import{d as defineCustomElement$2,a as defineCustomElement$9,b as defineCustomElement$b}from"./component2.js";import{d as defineCustomElement$a}from"./shadow.js";import{d as defineCustomElement$8}from"./component4.js";import{d as defineCustomElement$7}from"./component5.js";import{d as defineCustomElement$6}from"./component7.js";import{d as defineCustomElement$5}from"./component11.js";import{d as defineCustomElement$4}from"./component12.js";import{d as defineCustomElement$3}from"./component13.js";const defaultStyleCss='/* windicss-touch: 1639175625181 */\n/* windicss-touch: 1649810622229 */\n/* windicss layer base */\n*, ::before, ::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: var(--kolibri-border-color);\n}\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: var(--kolibri-color);\n --tw-ring-color: rgba(undefined, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n}\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\n::moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n[type=\'search\'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nbody {\n margin: 0;\n font-family: inherit;\n line-height: inherit;\n}\nb {\n font-weight: bolder;\n}\nbutton, select {\n text-transform: none;\n}\nbutton, [type=\'button\'], [type=\'reset\'], [type=\'submit\'] {\n -webkit-appearance: button;\n}\nbutton {\n background-color: transparent;\n background-image: none;\n}\nbutton, [role="button"] {\n cursor: pointer;\n}\ncode {\n font-size: 1em;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nhtml {\n -webkit-text-size-adjust: 100%;\n font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";\n line-height: 1.5;\n}\nh1, p, h2, h3, h4, h5, h6 {\n margin: 0;\n}\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\ninput, button, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\ninput::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nlegend {\n padding: 0;\n}\nprogress {\n vertical-align: baseline;\n}\nsmall {\n font-size: 80%;\n}\nsvg {\n display: block;\n vertical-align: middle;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\ntextarea {\n resize: vertical;\n}\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nul, ol {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/* windicss layer components */\n/* windicss layer utilities */\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.bg-normal {\n background-color: var(--kolibri-color-normal);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity));\n}\n.bg-spin-1 {\n background-color: var(--kolibri-color-spin-1);\n}\n.bg-spin-2 {\n background-color: var(--kolibri-color-spin-2);\n}\n.bg-spin-3 {\n background-color: var(--kolibri-color-spin-3);\n}\n.rounded {\n border-radius: var(--kolibri-border-radius);\n}\n.border-1 {\n border-width: 1px;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: -webkit-inline-flex;\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: -ms-grid;\n display: grid;\n}\n.hidden {\n display: none;\n}\n.flex-wrap {\n -ms-flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n}\n.content-center {\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n}\n.float-left {\n float: left;\n}\n.font-80 {\n font-weight: 80;\n}\n.font-60 {\n font-weight: 60;\n}\n.h-full {\n height: 100%;\n}\n.h-0 {\n height: 0px;\n}\n.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16 {\n height: 0.29rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.list-none {\n list-style-type: none;\n}\n.list-disc {\n list-style-type: disc;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1 {\n margin-bottom: calc(1 * var(--kolibri-spacing));\n}\n.mr-2 {\n margin-right: calc(2 * var(--kolibri-spacing));\n}\n.ml-2 {\n margin-left: calc(2 * var(--kolibri-spacing));\n}\n.mt-2 {\n margin-top: calc(2 * var(--kolibri-spacing));\n}\n.mt-4 {\n margin-top: calc(4 * var(--kolibri-spacing));\n}\n.outline {\n outline-style: solid;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-visible {\n overflow-y: visible;\n}\n.p-2 {\n padding: calc(2 * var(--kolibri-spacing));\n}\n.p-4 {\n padding: calc(4 * var(--kolibri-spacing));\n}\n.px {\n padding-left: 1px;\n padding-right: 1px;\n}\n.py-2 {\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pb-2 {\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.tab {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n.absolute {\n position: absolute;\n}\n.text-center {\n text-align: center;\n}\n.text-normal {\n color: var(--kolibri-color-normal);\n}\n.hover\\:text-primary:hover {\n color: var(--kolibri-color-primary);\n}\n.italic {\n font-style: italic;\n}\n.underline {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n.indent {\n text-indent: 1.5rem;\n}\n.visible {\n visibility: visible;\n}\n.w-full {\n width: 100%;\n}\n.w-4\\/5 {\n width: 80%;\n}\n.z-50 {\n z-index: 50;\n}\n.gap-1 {\n grid-gap: calc(1 * var(--kolibri-spacing));\n gap: calc(1 * var(--kolibri-spacing));\n}\n.gap-2 {\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}\n.grid-flow-col {\n grid-auto-flow: column;\n}\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate: 0;\n --tw-rotate-x: 0;\n --tw-rotate-y: 0;\n --tw-rotate-z: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n -webkit-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n -ms-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n}\n.animate {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n}\n.filter {\n --tw-blur: var(--tw-empty,/*!*/ /*!*/);\n --tw-brightness: var(--tw-empty,/*!*/ /*!*/);\n --tw-contrast: var(--tw-empty,/*!*/ /*!*/);\n --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);\n --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);\n --tw-invert: var(--tw-empty,/*!*/ /*!*/);\n --tw-saturate: var(--tw-empty,/*!*/ /*!*/);\n --tw-sepia: var(--tw-empty,/*!*/ /*!*/);\n --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur {\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n}\n:host * {\n -ms-hyphens: var(--kolibri-hyphens);\n -webkit-hyphens: var(--kolibri-hyphens);\n hyphens: var(--kolibri-hyphens);\n font-family: var(--kolibri-font-family);\n line-height: var(--kolibri-line-height);\n word-break: break-word;\n}\n\n:host {\n overflow: hidden;\n}\n:host > div {\n overflow-x: auto;\n border-radius: var(--kolibri-border-radius);\n border-style: solid;\n border-width: 1px;\n}\n:host > div table {\n border: 0;\n width: 100%;\n}\n:host > div table tr {\n border-top-style: solid;\n border-top-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th, :host > div table tr td {\n border-right-style: solid;\n border-right-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th:last-child,\n:host > div table tr td:last-child {\n border: 0;\n}\n:host > div table tr th, :host > div table tr .th {\n --tw-bg-opacity: 1;\n background-color: rgba(229, 231, 235, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: rgba(243, 244, 246, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(odd) {\n @apply white;\n}\n:host > div.pagination {\n border-style: none;\n display: -ms-grid;\n display: grid;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-left: calc(1 * var(--kolibri-spacing));\n padding-right: calc(1 * var(--kolibri-spacing));\n width: 100%;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n grid-auto-flow: column;\n}\n:host > div.pagination > div::last-child {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-grid-column-align: end;\n justify-self: end;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}',PAGINATION_OPTIONS=[10,20,50,100],KolTable$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.horizontal=!0,this.sortDirections=new Map,this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.handlePagination={onClick:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onClick)&&this.state._pagination._on.onClick(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePage:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onChangePage)&&this.state._pagination._on.onChangePage(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePageSize:(t,n)=>{var e;"function"==typeof(null===(e=this.state._pagination._on)||void 0===e?void 0:e.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:n})),setState(this,"_pageSize",n)}},this.beforePatchPagination=(t,n,e,a)=>{"_pagination"===a&&(this.showPagination=!0===t||""===t||"object"==typeof t&&null!==t)},this.updateSortedData=()=>{let t=this.state._data;if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"NOS":t=[...this.state._data];break;case"ASC":t=this.sortFunction([...this.state._data]);break;default:t=this.sortFunction([...this.state._data]).reverse()}setState(this,"_sortedData",t)},this._caption=void 0,this._data=void 0,this._headers=void 0,this._minWidth=void 0,this._pagination=void 0,this.state={_caption:"",_data:[],_headers:{horizontal:[],vertical:[]},_pagination:{_page:1,_pageSize:10,_total:0},_sortedData:[]}}validateCaption(t){watchString(this,"_caption",t,{required:!0})}validateData(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{void 0===t&&(t=[]);try{t=parseJson(t)}catch(t){}Array.isArray(t)&&void 0===t.find((t=>!("object"==typeof t&&null!==t)))&&setState(this,"_data",t,{afterPatch:()=>{const t=setTimeout((()=>{clearTimeout(t),this.updateSortedData()}))}})}))}))}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var n;null===(n=t.horizontal)||void 0===n||n.forEach((t=>{t.forEach((t=>{"function"==typeof t.sort&&"string"==typeof t.sortDirection&&this.sortDirections.set(t.sort,t.sortDirection)}))}))}}})}))}))}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validatePagination(t){try{t=parseJson(t)}catch(t){}watchValidator(this,"_pagination",(()=>!0),new Set(["boolean","KoliBriTablePagination"]),t,{hooks:{beforePatch:this.beforePatchPagination}})}componentWillLoad(){this.validateCaption(this._caption),this.validateData(this._data),this.validateHeaders(this._headers),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination)}getNumberOfCols(t,n){let e=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var e;return n+=null!==(e=t.colSpan)&&void 0!==e?e:1})),e<n&&(e=n)})),0===e&&(e=n.length),e}getNumberOfRows(t,n){let e=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var e;return n+=null!==(e=t.rowSpan)&&void 0!==e?e:1})),e<n&&(e=n)})),0===e&&(e=n.length),e}filterHeaderKeys(t){const n=[];return t.forEach((t=>{t.forEach((t=>{"string"==typeof t.key&&n.push(t)}))})),n}getPrimaryHeader(t){var n,e;let a=this.filterHeaderKeys(null!==(n=t.horizontal)&&void 0!==n?n:[]);return this.horizontal=!0,0===a.length&&(a=this.filterHeaderKeys(null!==(e=t.vertical)&&void 0!==e?e:[]),a.length>0&&(this.horizontal=!1)),a}createDataField(t,n){n.horizontal=Array.isArray(null==n?void 0:n.horizontal)?n.horizontal:[],n.vertical=Array.isArray(null==n?void 0:n.vertical)?n.vertical:[];const e=this.getPrimaryHeader(n),a=this.getNumberOfCols(n.horizontal,t),i=this.getNumberOfRows(n.vertical,t),o=[],r=[],s=[];n.vertical.forEach(((t,n)=>{r[n]=0,s[n]=[]}));for(let l=0;l<i;l++){const i=[];n.vertical.forEach(((t,n)=>{let e=0;if(s[n].forEach((t=>e+=t)),e<=l){const a=t[l-e+r[n]];if("object"==typeof a){i.push(Object.assign(Object.assign({},a),{asTd:!1,data:{}}));let t=1;if("number"==typeof a.rowSpan&&a.rowSpan>1&&(t=a.rowSpan),s[n].push(t),"number"==typeof a.colSpan&&a.colSpan>1)for(let e=1;e<a.colSpan;e++)s[n+e].push(t);r[n]++}}}));for(let n=0;n<a;n++)!0===this.horizontal?"object"==typeof e[n]&&null!==e[n]&&"string"==typeof e[n].key&&"object"==typeof t[l]&&null!==t[l]&&i.push(Object.assign(Object.assign({},e[n]),{colSpan:void 0,data:t[l],label:t[l][e[n].key],rowSpan:void 0})):"object"==typeof e[l]&&null!==e[l]&&"string"==typeof e[l].key&&"object"==typeof t[n]&&null!==t[n]&&i.push(Object.assign(Object.assign({},e[l]),{colSpan:void 0,data:t[n],label:t[n][e[l].key],rowSpan:void 0}));o.push(i)}if(0===t.length){let t=0,e=0;Array.isArray(n.horizontal)&&n.horizontal.length>0&&n.horizontal[0].forEach((n=>{t+=n.colSpan||1})),Array.isArray(n.vertical)&&n.vertical.length>0&&(t-=n.vertical.length,n.vertical[0].forEach((t=>{e+=t.rowSpan||1})));const a={label:"Es sind keine Einträge vorhanden.",colSpan:t,rowSpan:Math.max(e,1)};0===o.length?o.push([a]):o[0].push(a)}return o}selectDisplayedData(t,n,e){return"number"==typeof n&&n>0&&"number"==typeof e&&e>0?(this.pageStartSlice=n*(e-1),this.pageEndSlice=n*e>t.length?t.length:n*e,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}cellRender(t,n){const e=setTimeout((()=>{if(clearTimeout(e),"function"==typeof t.render&&n instanceof HTMLElement){const e=t.render(n,{asTd:t.asTd,label:t.label,textAlign:t.textAlign,width:t.width},t.data,this.state._data);"string"==typeof e&&(n.innerHTML=e)}}),50)}render(){var t,n;const e=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(n=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==n?n:10:this.state._sortedData.length,this.state._pagination._page||1),a=this.createDataField(e,this.state._headers);return getExperimalMode()&&console.log(this.state._caption,this.state._data,a),h(Host,null,h("div",{tabindex:"0"},h("table",{style:{minWidth:this.state._minWidth}},h("caption",null,this.state._caption),Array.isArray(this.state._headers.horizontal)&&h("thead",null,this.state._headers.horizontal.map((t=>h("tr",null,t.map((t=>!0===t.asTd?h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}):h("th",{scope:"number"==typeof t.colSpan&&t.colSpan>1?"colgroup":"col",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))))))))),h("tbody",null,a.map(((t,n)=>h("tr",{key:`row-${n}`},t.map((t=>!1===t.asTd?h("th",{scope:"number"==typeof t.rowSpan&&t.rowSpan>1?"rowgroup":"row",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))):h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}))))))))),this.pageEndSlice>0&&this.showPagination&&h("div",null,h("span",null,"Einträge ",this.pageEndSlice>0?this.pageStartSlice+1:0," bis ",this.pageEndSlice," von"," ",this.state._pagination._total||(Array.isArray(this.state._data)?this.state._data.length:0)," angezeigt"),h("div",null,h("kol-pagination",{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_total:this.state._pagination._total||this.state._data.length}))))}static get watchers(){return{_caption:["validateCaption"],_data:["validateData"],_headers:["validateHeaders"],_minWidth:["validateMinWidth"],_pagination:["validatePagination"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-table",{_caption:[1],_data:[1],_headers:[1],_minWidth:[1,"_min-width"],_pagination:[8],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-table","kol-alert","kol-badge","kol-button","kol-button-wc","kol-heading-wc","kol-icon","kol-input","kol-pagination","kol-select","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-table":customElements.get(t)||customElements.define(t,KolTable$1);break;case"kol-alert":customElements.get(t)||defineCustomElement$c();break;case"kol-badge":customElements.get(t)||defineCustomElement$b();break;case"kol-button":customElements.get(t)||defineCustomElement$a();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$9();break;case"kol-heading-wc":customElements.get(t)||defineCustomElement$8();break;case"kol-icon":customElements.get(t)||defineCustomElement$7();break;case"kol-input":customElements.get(t)||defineCustomElement$6();break;case"kol-pagination":customElements.get(t)||defineCustomElement$5();break;case"kol-select":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolTable=KolTable$1,defineCustomElement=defineCustomElement$1;export{KolTable,defineCustomElement};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{j as watchValidator,n as nonce,d as devHint,w as watchString,e as a11yHintLabelingLandmarks,f as featureHint,L as Log,a as setState,p as watchNumber,o as watchJsonArrayString,x as uiUxHintMillerscheZahl,y as koliBriQuerySelector}from"./prop.validators.js";import{d as defineCustomElement$2,a as defineCustomElement$5,b as defineCustomElement$7}from"./component2.js";import{d as defineCustomElement$6}from"./component3.js";import{d as defineCustomElement$4}from"./component5.js";import{d as defineCustomElement$3}from"./component13.js";const AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES=new Set(['"left", "right"']),AVAILABLE_VERTICAL_ALIGNMENT_VALUES=new Set(['"left", "right"']),AVAILABLE_ALIGNMENT_VALUES=new Set([...AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES,...AVAILABLE_VERTICAL_ALIGNMENT_VALUES]),validateAlignment=(t,e,a)=>{watchValidator(t,e,(t=>"bottom"===t||"left"===t||"right"===t||"top"===t),AVAILABLE_ALIGNMENT_VALUES,a)},defaultStyleCss='*,::before,::after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--kolibri-border-color)}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:var(--kolibri-color);--tw-ring-color:rgba(undefined, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=\'search\']{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a{color:inherit;text-decoration:inherit}body{margin:0;font-family:inherit;line-height:inherit}b{font-weight:bolder}button,select{text-transform:none}button,[type=\'button\'],[type=\'reset\'],[type=\'submit\']{-webkit-appearance:button}button{background-color:transparent;background-image:none}button,[role="button"]{cursor:pointer}code{font-size:1em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}fieldset{margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}h1,p,h2,h3,h4,h5,h6{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}input,button,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}legend{padding:0}progress{vertical-align:baseline}small{font-size:80%}svg{display:block;vertical-align:middle}table{text-indent:0;border-color:inherit;border-collapse:collapse}textarea{resize:vertical}textarea::placeholder{opacity:1;color:#9ca3af}textarea::webkit-input-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}textarea::-ms-input-placeholder{opacity:1;color:#9ca3af}ul,ol{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.bg-normal{background-color:var(--kolibri-color-normal)}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-spin-1{background-color:var(--kolibri-color-spin-1)}.bg-spin-2{background-color:var(--kolibri-color-spin-2)}.bg-spin-3{background-color:var(--kolibri-color-spin-3)}.rounded{border-radius:var(--kolibri-border-radius)}.border-1{border-width:1px}.cursor-pointer{cursor:pointer}.block{display:block}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.table{display:table}.grid{display:-ms-grid;display:grid}.hidden{display:none}.flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.content-center{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.float-left{float:left}.font-80{font-weight:80}.font-60{font-weight:60}.h-full{height:100%}.h-0{height:0px}.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16{height:0.29rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.leading-normal{line-height:1.5}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:calc(1 * var(--kolibri-spacing))}.mr-2{margin-right:calc(2 * var(--kolibri-spacing))}.ml-2{margin-left:calc(2 * var(--kolibri-spacing))}.mt-2{margin-top:calc(2 * var(--kolibri-spacing))}.mt-4{margin-top:calc(4 * var(--kolibri-spacing))}.outline{outline-style:solid}.overflow-hidden{overflow:hidden}.overflow-y-visible{overflow-y:visible}.p-2{padding:calc(2 * var(--kolibri-spacing))}.p-4{padding:calc(4 * var(--kolibri-spacing))}.px{padding-left:1px;padding-right:1px}.py-2{padding-top:calc(2 * var(--kolibri-spacing));padding-bottom:calc(2 * var(--kolibri-spacing))}.pl-8{padding-left:2rem}.pb-2{padding-bottom:calc(2 * var(--kolibri-spacing))}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.absolute{position:absolute}.text-center{text-align:center}.text-normal{color:var(--kolibri-color-normal)}.hover\\:text-primary:hover{color:var(--kolibri-color-primary)}.italic{font-style:italic}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.indent{text-indent:1.5rem}.visible{visibility:visible}.w-full{width:100%}.w-4\\/5{width:80%}.z-50{z-index:50}.gap-1{grid-gap:calc(1 * var(--kolibri-spacing));gap:calc(1 * var(--kolibri-spacing))}.gap-2{grid-gap:calc(2 * var(--kolibri-spacing));gap:calc(2 * var(--kolibri-spacing))}.grid-flow-col{grid-auto-flow:column}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate:0;--tw-rotate-x:0;--tw-rotate-y:0;--tw-rotate-z:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));-ms-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z))}.animate{-webkit-animation-iteration-count:1;animation-iteration-count:1}.filter{--tw-blur:var(--tw-empty, );--tw-brightness:var(--tw-empty, );--tw-contrast:var(--tw-empty, );--tw-grayscale:var(--tw-empty, );--tw-hue-rotate:var(--tw-empty, );--tw-invert:var(--tw-empty, );--tw-saturate:var(--tw-empty, );--tw-sepia:var(--tw-empty, );--tw-drop-shadow:var(--tw-empty, );-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}:host *{-ms-hyphens:var(--kolibri-hyphens);-webkit-hyphens:var(--kolibri-hyphens);hyphens:var(--kolibri-hyphens);font-family:var(--kolibri-font-family);line-height:var(--kolibri-line-height);word-break:break-word}:host{display:inline-flex}:host>*{color:inherit;width:inherit;word-spacing:inherit}:host button{display:grid;font-family:var(--kolibri-font-family);letter-spacing:inherit;width:inherit;word-spacing:inherit;border-radius:var(--kolibri-border-radius);align-items:center !important;justify-content:center !important;border-width:1px;padding:calc(2 * var(--kolibri-spacing))}:host button kol-icon,:host button .kol-icon{width:1.5em;height:1.5em;display:inline-block}:host button.primary{background-color:var(--kolibri-color-primary);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.primary:hover,:host button.primary:focus{border-color:var(--kolibri-color-primary);color:var(--kolibri-color-primary)}:host button.secondary{background-color:var(--kolibri-color-secondary);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.secondary:hover,:host button.secondary:focus{border-color:var(--kolibri-color-secondary);color:var(--kolibri-color-secondary)}:host button.normal{background-color:var(--kolibri-color-normal);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.normal:hover,:host button.normal:focus{border-color:var(--kolibri-color-normal);color:var(--kolibri-color-normal)}:host button.danger{background-color:var(--kolibri-color-danger);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.danger:hover,:host button.danger:focus{border-color:var(--kolibri-color-danger);color:var(--kolibri-color-danger)}:host button.ghost{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));border-color:var(--kolibri-color-ghost);color:var(--kolibri-color-ghost)}:host button.ghost:hover,:host button.ghost:focus{background-color:var(--kolibri-color-ghost);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button:disabled{--tw-bg-opacity:1;background-color:rgba(209, 213, 219, var(--tw-bg-opacity));border-color:transparent;cursor:not-allowed;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}:host button:disabled:hover,:host button:disabled:focus{--tw-bg-opacity:1;background-color:rgba(55, 65, 81, var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(209, 213, 219, var(--tw-text-opacity))}:host button[aria-selected=true],:host button:focus{border-bottom-color:var(--kolibri-color-accent) !important;border-bottom-width:6px !important}:host .close-button{font-size:50%;height:fit-content;left:-3em;position:relative;top:0.25em}',KolTabs$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.onCreateLabel="Neu …",this.showCreateTab=!1,this.nonce=nonce(),this.nextPossibleTabIndex=(t,e,a)=>{if(a>0){if(e+a<t.length)return t[e+a]._disabled?this.nextPossibleTabIndex(t,e,a+1):e+a}else if(a<0&&e+a>=0)return t[e+a]._disabled?this.nextPossibleTabIndex(t,e,a-1):e+a;return e},this.onKeyDown=t=>{const e=setTimeout((()=>{clearTimeout(e);let a=null;switch(t.key){case"ArrowRight":a=this.nextPossibleTabIndex(this.state._tabs,this.state._selected,1);break;case"ArrowLeft":a=this.nextPossibleTabIndex(this.state._tabs,this.state._selected,-1)}null!==a&&this.onSelect(t,a,!0)}),250)},this.onClickSelect=(t,e)=>{this.onSelect(t,e,!0)},this.onMouseDown=t=>{t.stopPropagation()},this.catchTabPanelHost=t=>{this.tabPanelHost=t},this.selectNextNotDisabledTab=(t,e,a=!0,o)=>{if(t>e.length-1&&(t=e.length-1),t<0&&(t=0),Array.isArray(e)&&e[t]&&e[t]._disabled){if(!0===a){if(t<e.length-1)return this.selectNextNotDisabledTab(t+1,e,!0,o||t);t=o||t,a=!1}if(!1===a){if(t>0)return this.selectNextNotDisabledTab(t-1,e,!1,o||t);devHint("[KolTabs] Alle Tabs sind deaktiviert und somit kann kein Tab angezeigt werden.")}}return t},this.syncSelectedAndTabs=(t,e,a,o)=>{let i,r;i="_selected"===o?t:this.state._selected,r="_tabs"===o?t:this.state._tabs,r.length>0&&e.set("_selected",this.selectNextNotDisabledTab(i,r))},this.handleTabPanels=()=>{var t,e,a,o;if(this.tabPanelHost instanceof HTMLDivElement)for(let i=this.tabPanelHost.children.length;i<this.state._tabs.length;i++){const r=document.createElement("div");r.setAttribute("aria-labelledby",`tab-${i}`),r.setAttribute("id",`${this.nonce}-tabpanel-${i}`),r.setAttribute("role","tabpanel"),r.setAttribute("hidden",""),(null===(t=this.host)||void 0===t?void 0:t.children)instanceof HTMLCollection&&(null===(a=null===(e=this.host)||void 0===e?void 0:e.children)||void 0===a?void 0:a.length)>0&&r.appendChild(null===(o=this.host)||void 0===o?void 0:o.children[0]),this.tabPanelHost.appendChild(r)}},this.onCreate=t=>{var e,a;t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onCreate)&&(null===(a=this.state._on)||void 0===a||a.onCreate(t))},this._ariaLabel=void 0,this._on=void 0,this._selected=0,this._tabs=void 0,this._tabsAlign="top",this.state={_ariaLabel:"…",_selected:0,_tabs:[],_tabsAlign:"top"}}renderButtonGroup(){return h("kol-button-group-wc",{role:"tablist","aria-label":this.state._ariaLabel,onKeyDown:this.onKeyDown},this.state._tabs.map(((t,e)=>h("div",{class:"inline-flex"},h("kol-button-wc",{class:"h-full",_disabled:t._disabled,_icon:t._icon,_iconOnly:t._iconOnly,_label:t._label&&t._label,_on:{onClick:t=>this.onClickSelect(t,e),onMouseDown:this.onMouseDown},_tabIndex:this.state._selected===e?0:-1,_tooltipAlign:t._tooltipAlign,_variant:this.state._selected===e?"custom":void 0,_customClass:this.state._selected===e?"selected":void 0,_ariaControls:`${this.nonce}-tabpanel-${e}`,_id:`tab-${e}`,_role:"tab"})))),this.showCreateTab&&h("kol-button-wc",{class:"create-button",_label:this.onCreateLabel,_on:{onClick:this.onCreate}}))}render(){return h(Host,null,h("div",{ref:t=>{this.tabPanelsElement=t},class:{[`tabs-align-${this.state._tabsAlign}`]:!0}},this.renderButtonGroup(),h("div",{ref:this.catchTabPanelHost})))}validateAriaLabel(t){watchString(this,"_ariaLabel",t,{required:!0}),a11yHintLabelingLandmarks(t)}validateOn(t){if("object"==typeof t&&null!==t){featureHint("[KolTabs] Prüfen, wie man auch einen EventCallback einzeln ändern kann.");const e={};"function"!=typeof t.onCreate&&"object"!=typeof t.onCreate||("object"==typeof t.onCreate?("string"==typeof t.onCreate.label&&t.onCreate.label.length>0?this.onCreateLabel=t.onCreate.label:Log.debug("[KolTabs] Der Label-Text für Neu in {\n onCreate: {\n label: string (!),\n callback: Function\n }\n} ist nicht korrekt gesetzt."),"function"==typeof t.onCreate.callback?e.onCreate=t.onCreate.callback:Log.debug("[KolTabs] Die onCreate-Callback-Funktion für Neu in {\n onCreate: {\n label: string,\n callback: Function (!)\n }\n} ist nicht korrekt gesetzt.")):e.onCreate=t.onCreate,this.showCreateTab="function"==typeof e.onCreate),"function"==typeof t.onSelect&&(e.onSelect=t.onSelect),setState(this,"_on",e)}}validateSelected(t){watchNumber(this,"_selected",t,{hooks:{beforePatch:this.syncSelectedAndTabs}})}validateTabs(t){watchJsonArrayString(this,"_tabs",(t=>"object"==typeof t&&null!==t&&"string"==typeof t._label&&t._label.length>0),t,void 0,{hooks:{beforePatch:this.syncSelectedAndTabs}}),uiUxHintMillerscheZahl("KolTabs",this.state._tabs.length)}validateTabsAlign(t){validateAlignment(this,"_tabsAlign",t)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateOn(this._on),this.validateSelected(this._selected),this.validateTabs(this._tabs),this.validateTabsAlign(this._tabsAlign)}componentDidRender(){if(this.handleTabPanels(),this.tabPanelHost instanceof HTMLDivElement)for(let t=0;t<this.tabPanelHost.children.length;t++)t!==this.state._selected?this.tabPanelHost.children[t].setAttribute("hidden",""):this.tabPanelHost.children[t].removeAttribute("hidden")}onSelect(t,e,a=!1){var o,i;this._selected=e,"function"==typeof(null===(o=this._on)||void 0===o?void 0:o.onSelect)&&(null===(i=this._on)||void 0===i||i.onSelect(t,e)),!0===a&&(this.selectedTimeout=setTimeout((()=>{if(clearTimeout(this.selectedTimeout),this.tabPanelsElement instanceof HTMLElement){const t=koliBriQuerySelector(`button#tab-${e}`,this.tabPanelsElement);null==t||t.focus()}}),250))}get host(){return this}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_on:["validateOn"],_selected:["validateSelected"],_tabs:["validateTabs"],_tabsAlign:["validateTabsAlign"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-tabs",{_ariaLabel:[1,"_aria-label"],_on:[16],_selected:[1538],_tabs:[1],_tabsAlign:[1,"_tabs-align"],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tabs","kol-badge","kol-button-group-wc","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-tabs":customElements.get(t)||customElements.define(t,KolTabs$1);break;case"kol-badge":customElements.get(t)||defineCustomElement$7();break;case"kol-button-group-wc":customElements.get(t)||defineCustomElement$6();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$5();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolTabs=KolTabs$1,defineCustomElement=defineCustomElement$1;export{KolTabs,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{j as watchValidator,d as devHint,w as watchString,e as a11yHintLabelingLandmarks,f as featureHint,L as Log,a as setState,p as watchNumber,o as watchJsonArrayString,y as uiUxHintMillerscheZahl,z as koliBriQuerySelector}from"./prop.validators.js";import{d as defineCustomElement$2,a as defineCustomElement$5,b as defineCustomElement$7}from"./component2.js";import{d as defineCustomElement$6}from"./component3.js";import{d as defineCustomElement$4}from"./component5.js";import{d as defineCustomElement$3}from"./component13.js";const AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES=new Set(['"left", "right"']),AVAILABLE_VERTICAL_ALIGNMENT_VALUES=new Set(['"left", "right"']),AVAILABLE_ALIGNMENT_VALUES=new Set([...AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES,...AVAILABLE_VERTICAL_ALIGNMENT_VALUES]),validateAlignment=(t,e,a)=>{watchValidator(t,e,(t=>"bottom"===t||"left"===t||"right"===t||"top"===t),AVAILABLE_ALIGNMENT_VALUES,a)},defaultStyleCss='*,::before,::after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--kolibri-border-color)}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:var(--kolibri-color);--tw-ring-color:rgba(undefined, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=\'search\']{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a{color:inherit;text-decoration:inherit}body{margin:0;font-family:inherit;line-height:inherit}b{font-weight:bolder}button,select{text-transform:none}button,[type=\'button\'],[type=\'reset\'],[type=\'submit\']{-webkit-appearance:button}button{background-color:transparent;background-image:none}button,[role="button"]{cursor:pointer}code{font-size:1em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}fieldset{margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}h1,p,h2,h3,h4,h5,h6{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}input,button,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}legend{padding:0}progress{vertical-align:baseline}small{font-size:80%}svg{display:block;vertical-align:middle}table{text-indent:0;border-color:inherit;border-collapse:collapse}textarea{resize:vertical}textarea::placeholder{opacity:1;color:#9ca3af}textarea::webkit-input-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}textarea::-ms-input-placeholder{opacity:1;color:#9ca3af}ul,ol{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.bg-normal{background-color:var(--kolibri-color-normal)}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-spin-1{background-color:var(--kolibri-color-spin-1)}.bg-spin-2{background-color:var(--kolibri-color-spin-2)}.bg-spin-3{background-color:var(--kolibri-color-spin-3)}.rounded{border-radius:var(--kolibri-border-radius)}.border-1{border-width:1px}.cursor-pointer{cursor:pointer}.block{display:block}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.table{display:table}.grid{display:-ms-grid;display:grid}.hidden{display:none}.flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.content-center{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.float-left{float:left}.font-80{font-weight:80}.font-60{font-weight:60}.h-full{height:100%}.h-0{height:0px}.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16{height:0.29rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.leading-normal{line-height:1.5}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:calc(1 * var(--kolibri-spacing))}.mr-2{margin-right:calc(2 * var(--kolibri-spacing))}.ml-2{margin-left:calc(2 * var(--kolibri-spacing))}.mt-2{margin-top:calc(2 * var(--kolibri-spacing))}.mt-4{margin-top:calc(4 * var(--kolibri-spacing))}.outline{outline-style:solid}.overflow-hidden{overflow:hidden}.overflow-y-visible{overflow-y:visible}.p-2{padding:calc(2 * var(--kolibri-spacing))}.p-4{padding:calc(4 * var(--kolibri-spacing))}.px{padding-left:1px;padding-right:1px}.py-2{padding-top:calc(2 * var(--kolibri-spacing));padding-bottom:calc(2 * var(--kolibri-spacing))}.pl-8{padding-left:2rem}.pb-2{padding-bottom:calc(2 * var(--kolibri-spacing))}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.absolute{position:absolute}.text-center{text-align:center}.text-normal{color:var(--kolibri-color-normal)}.hover\\:text-primary:hover{color:var(--kolibri-color-primary)}.italic{font-style:italic}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.indent{text-indent:1.5rem}.visible{visibility:visible}.w-full{width:100%}.w-4\\/5{width:80%}.z-50{z-index:50}.gap-1{grid-gap:calc(1 * var(--kolibri-spacing));gap:calc(1 * var(--kolibri-spacing))}.gap-2{grid-gap:calc(2 * var(--kolibri-spacing));gap:calc(2 * var(--kolibri-spacing))}.grid-flow-col{grid-auto-flow:column}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate:0;--tw-rotate-x:0;--tw-rotate-y:0;--tw-rotate-z:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));-ms-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z))}.animate{-webkit-animation-iteration-count:1;animation-iteration-count:1}.filter{--tw-blur:var(--tw-empty, );--tw-brightness:var(--tw-empty, );--tw-contrast:var(--tw-empty, );--tw-grayscale:var(--tw-empty, );--tw-hue-rotate:var(--tw-empty, );--tw-invert:var(--tw-empty, );--tw-saturate:var(--tw-empty, );--tw-sepia:var(--tw-empty, );--tw-drop-shadow:var(--tw-empty, );-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}:host *{-ms-hyphens:var(--kolibri-hyphens);-webkit-hyphens:var(--kolibri-hyphens);hyphens:var(--kolibri-hyphens);font-family:var(--kolibri-font-family);line-height:var(--kolibri-line-height);word-break:break-word}:host{display:inline-flex}:host>*{color:inherit;width:inherit;word-spacing:inherit}:host button{display:grid;font-family:var(--kolibri-font-family);letter-spacing:inherit;width:inherit;word-spacing:inherit;border-radius:var(--kolibri-border-radius);align-items:center !important;justify-content:center !important;border-width:1px;padding:calc(2 * var(--kolibri-spacing))}:host button kol-icon,:host button .kol-icon{width:1.5em;height:1.5em;display:inline-block}:host button.primary{background-color:var(--kolibri-color-primary);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.primary:hover,:host button.primary:focus{border-color:var(--kolibri-color-primary);color:var(--kolibri-color-primary)}:host button.secondary{background-color:var(--kolibri-color-secondary);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.secondary:hover,:host button.secondary:focus{border-color:var(--kolibri-color-secondary);color:var(--kolibri-color-secondary)}:host button.normal{background-color:var(--kolibri-color-normal);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.normal:hover,:host button.normal:focus{border-color:var(--kolibri-color-normal);color:var(--kolibri-color-normal)}:host button.danger{background-color:var(--kolibri-color-danger);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button.danger:hover,:host button.danger:focus{border-color:var(--kolibri-color-danger);color:var(--kolibri-color-danger)}:host button.ghost{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));border-color:var(--kolibri-color-ghost);color:var(--kolibri-color-ghost)}:host button.ghost:hover,:host button.ghost:focus{background-color:var(--kolibri-color-ghost);border-color:transparent;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}:host button:disabled{--tw-bg-opacity:1;background-color:rgba(209, 213, 219, var(--tw-bg-opacity));border-color:transparent;cursor:not-allowed;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}:host button:disabled:hover,:host button:disabled:focus{--tw-bg-opacity:1;background-color:rgba(55, 65, 81, var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(209, 213, 219, var(--tw-text-opacity))}:host button[aria-selected=true],:host button:focus{border-bottom-color:var(--kolibri-color-accent) !important;border-bottom-width:6px !important}:host .close-button{font-size:50%;height:fit-content;left:-3em;position:relative;top:0.25em}',KolTabs$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.onCreateLabel="Neu …",this.showCreateTab=!1,this.nextPossibleTabIndex=(t,e,a)=>{if(a>0){if(e+a<t.length)return t[e+a]._disabled?this.nextPossibleTabIndex(t,e,a+1):e+a}else if(a<0&&e+a>=0)return t[e+a]._disabled?this.nextPossibleTabIndex(t,e,a-1):e+a;return e},this.onKeyDown=t=>{const e=setTimeout((()=>{clearTimeout(e);let a=null;switch(t.key){case"ArrowRight":a=this.nextPossibleTabIndex(this.state._tabs,this.state._selected,1);break;case"ArrowLeft":a=this.nextPossibleTabIndex(this.state._tabs,this.state._selected,-1)}null!==a&&this.onSelect(t,a,!0)}),250)},this.onClickSelect=(t,e)=>{this.onSelect(t,e,!0)},this.onMouseDown=t=>{t.stopPropagation()},this.catchTabPanelHost=t=>{this.tabPanelHost=t},this.selectNextNotDisabledTab=(t,e,a=!0,o)=>{if(t>e.length-1&&(t=e.length-1),t<0&&(t=0),Array.isArray(e)&&e[t]&&e[t]._disabled){if(!0===a){if(t<e.length-1)return this.selectNextNotDisabledTab(t+1,e,!0,o||t);t=o||t,a=!1}if(!1===a){if(t>0)return this.selectNextNotDisabledTab(t-1,e,!1,o||t);devHint("[KolTabs] Alle Tabs sind deaktiviert und somit kann kein Tab angezeigt werden.")}}return t},this.syncSelectedAndTabs=(t,e,a,o)=>{let i,r;i="_selected"===o?t:this.state._selected,r="_tabs"===o?t:this.state._tabs,r.length>0&&e.set("_selected",this.selectNextNotDisabledTab(i,r))},this.handleTabPanels=()=>{var t,e,a;if(this.tabPanelHost instanceof HTMLDivElement)for(let o=this.tabPanelHost.children.length;o<this.state._tabs.length;o++){const i=document.createElement("div");i.setAttribute("aria-labelledby",`tab-${o}`),i.setAttribute("id",`tabpanel-${o}`),i.setAttribute("role","tabpanel"),i.setAttribute("hidden","");const r=document.createElement("slot");r.setAttribute("name",`tabpanel-slot-${o}`),i.appendChild(r),this.tabPanelHost.appendChild(i),(null===(t=this.host)||void 0===t?void 0:t.children)instanceof HTMLCollection&&(null===(e=this.host)||void 0===e?void 0:e.children[o])instanceof HTMLElement&&(null===(a=this.host)||void 0===a||a.children[o].setAttribute("slot",`tabpanel-slot-${o}`))}},this.onCreate=t=>{var e,a;t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onCreate)&&(null===(a=this.state._on)||void 0===a||a.onCreate(t))},this._ariaLabel=void 0,this._on=void 0,this._selected=0,this._tabs=void 0,this._tabsAlign="top",this.state={_ariaLabel:"…",_selected:0,_tabs:[],_tabsAlign:"top"}}renderButtonGroup(){return h("kol-button-group-wc",{role:"tablist","aria-label":this.state._ariaLabel,onKeyDown:this.onKeyDown},this.state._tabs.map(((t,e)=>h("div",{class:"inline-flex"},h("kol-button-wc",{class:"h-full",_disabled:t._disabled,_icon:t._icon,_iconOnly:t._iconOnly,_label:t._label&&t._label,_on:{onClick:t=>this.onClickSelect(t,e),onMouseDown:this.onMouseDown},_tabIndex:this.state._selected===e?0:-1,_tooltipAlign:t._tooltipAlign,_variant:this.state._selected===e?"custom":void 0,_customClass:this.state._selected===e?"selected":void 0,_ariaControls:`tabpanel-${e}`,_id:`tab-${e}`,_role:"tab"})))),this.showCreateTab&&h("kol-button-wc",{class:"create-button",_label:this.onCreateLabel,_on:{onClick:this.onCreate}}))}render(){return h(Host,null,h("div",{ref:t=>{this.tabPanelsElement=t},class:{[`tabs-align-${this.state._tabsAlign}`]:!0}},this.renderButtonGroup(),h("div",{ref:this.catchTabPanelHost})))}validateAriaLabel(t){watchString(this,"_ariaLabel",t,{required:!0}),a11yHintLabelingLandmarks(t)}validateOn(t){if("object"==typeof t&&null!==t){featureHint("[KolTabs] Prüfen, wie man auch einen EventCallback einzeln ändern kann.");const e={};"function"!=typeof t.onCreate&&"object"!=typeof t.onCreate||("object"==typeof t.onCreate?("string"==typeof t.onCreate.label&&t.onCreate.label.length>0?this.onCreateLabel=t.onCreate.label:Log.debug("[KolTabs] Der Label-Text für Neu in {\n onCreate: {\n label: string (!),\n callback: Function\n }\n} ist nicht korrekt gesetzt."),"function"==typeof t.onCreate.callback?e.onCreate=t.onCreate.callback:Log.debug("[KolTabs] Die onCreate-Callback-Funktion für Neu in {\n onCreate: {\n label: string,\n callback: Function (!)\n }\n} ist nicht korrekt gesetzt.")):e.onCreate=t.onCreate,this.showCreateTab="function"==typeof e.onCreate),"function"==typeof t.onSelect&&(e.onSelect=t.onSelect),setState(this,"_on",e)}}validateSelected(t){watchNumber(this,"_selected",t,{hooks:{beforePatch:this.syncSelectedAndTabs}})}validateTabs(t){watchJsonArrayString(this,"_tabs",(t=>"object"==typeof t&&null!==t&&"string"==typeof t._label&&t._label.length>0),t,void 0,{hooks:{beforePatch:this.syncSelectedAndTabs}}),uiUxHintMillerscheZahl("KolTabs",this.state._tabs.length)}validateTabsAlign(t){validateAlignment(this,"_tabsAlign",t)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateOn(this._on),this.validateSelected(this._selected),this.validateTabs(this._tabs),this.validateTabsAlign(this._tabsAlign)}componentDidRender(){if(this.handleTabPanels(),this.tabPanelHost instanceof HTMLDivElement)for(let t=0;t<this.tabPanelHost.children.length;t++)t!==this.state._selected?this.tabPanelHost.children[t].setAttribute("hidden",""):this.tabPanelHost.children[t].removeAttribute("hidden")}onSelect(t,e,a=!1){var o,i;this._selected=e,"function"==typeof(null===(o=this._on)||void 0===o?void 0:o.onSelect)&&(null===(i=this._on)||void 0===i||i.onSelect(t,e)),!0===a&&(this.selectedTimeout=setTimeout((()=>{if(clearTimeout(this.selectedTimeout),this.tabPanelsElement instanceof HTMLElement){const t=koliBriQuerySelector(`button#tab-${e}`,this.tabPanelsElement);null==t||t.focus()}}),250))}get host(){return this}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_on:["validateOn"],_selected:["validateSelected"],_tabs:["validateTabs"],_tabsAlign:["validateTabsAlign"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-tabs",{_ariaLabel:[1,"_aria-label"],_on:[16],_selected:[1538],_tabs:[1],_tabsAlign:[1,"_tabs-align"],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tabs","kol-badge","kol-button-group-wc","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-tabs":customElements.get(t)||customElements.define(t,KolTabs$1);break;case"kol-badge":customElements.get(t)||defineCustomElement$7();break;case"kol-button-group-wc":customElements.get(t)||defineCustomElement$6();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$5();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolTabs=KolTabs$1,defineCustomElement=defineCustomElement$1;export{KolTabs,defineCustomElement};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{s,f}from"./index.m.js";class ModalService{constructor(){this.lockedElements=new Map,this.modalStack=new Map}lockElement(e){const t=e.getAttribute("tabindex");(e instanceof HTMLAnchorElement||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||"string"==typeof t||void 0!==e.dataset.kolModal)&&("string"==typeof t?this.lockedElements.set(e,{tabIndex:t}):this.lockedElements.set(e,{}),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true"),e.style.userSelect="none")}unlockElement(e,t){"string"==typeof e.tabIndex?t.setAttribute("tabindex",e.tabIndex):t.removeAttribute("tabindex"),t.removeAttribute("aria-hidden"),t.style.userSelect="unset",this.lockedElements.delete(t)}unlockLockedElements(e){e.forEach(this.unlockElement.bind(this))}lockFocus(e,t){if(e!==t&&(e instanceof HTMLElement||e instanceof ShadowRoot)){e instanceof HTMLElement&&(this.lockElement(e),this.lockFocus(e.shadowRoot,t));for(let o=0;o<e.children.length;o++)this.lockFocus(e.children[o],t)}}renderModalIfExists(e){if(e instanceof HTMLElement){this.lockedElements.has(e)&&this.unlockElement(this.lockedElements.get(e),e);const t=setTimeout((()=>{clearTimeout(t),e.focus()}),500)}if(this.unlockLockedElements(this.lockedElements),this.modalStack.size>0){const e=Array.from(this.modalStack.keys()),t=e[e.length-1];this.modalStack.forEach(((e,o)=>{o.style.display=t===o?"inline":"none"})),getDocument().body.style.maxHeight="100vh",getDocument().body.style.overflow="hidden",this.lockFocus(getDocument().body,t)}else getDocument().body.style.maxHeight="unset",getDocument().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?Log.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide."):(this.modalStack.set(e,{activeElement:t}),this.renderModalIfExists())}closeModal(e){var t;if(e instanceof HTMLElement==!1)Log.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide.");else{const o=null===(t=this.modalStack.get(e))||void 0===t?void 0:t.activeElement;this.modalStack.delete(e),this.renderModalIfExists(o)}}}class ToasterService{constructor(e){this.document=e,this.queue=new Set,this.isOpen=!1,this.toastElement=this.document.createElement("kol-toast"),this.toastElement.setAttribute("_level","3"),this.toastElement.setAttribute("_show","false"),this.toastElement.setAttribute("_show-duration","-1"),this.toastElement.setAttribute("_has-closer","true"),this.toastElement._on={onClose:()=>{const e=this.queue.values().next();e.value?(this.queue.delete(e.value),setTimeout((()=>{this.showToast(e.value)}),200)):this.isOpen=!1}},this.document.body.insertBefore(this.toastElement,this.document.body.firstChild)}enqueue(e){this.isOpen?this.queue.add(e):this.showToast(e)}showToast(e){this.toastElement.setAttribute("_heading",e.heading),this.toastElement.setAttribute("_show","true"),this.toastElement.setAttribute("_type",e.type),this.toastElement.innerText=e.description,this.isOpen=!0}}let WINDOW=null,DOCUMENT=null;const configKoliBri=e=>{e instanceof Window?(WINDOW=e,WINDOW.document instanceof Document?DOCUMENT=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},getWindow=()=>WINDOW||"undefined"==typeof window?null:window,getDocument=()=>DOCUMENT||void 0===getWindow().document?null:getWindow().document;let META_CONFIG=null,DEV_MODE=null,EXPERIMENTAL_MODE=null,COLOR_CONTRAST_ANALYSIS=null;const getDevMode=()=>!0===DEV_MODE,getExperimalMode=()=>!0===EXPERIMENTAL_MODE,getColorContrastAnalysis=()=>!0===COLOR_CONTRAST_ANALYSIS;class Log{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${Log.shield.label} | ${e}`:Log.shield.label}static getShield(e){return[Log.handleClassifier(null==e?void 0:e.classifier),`${Log.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.log(...Log.getShield(t),...Log.mapToArray(e))}static info(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.info(...Log.getShield(t),...Log.mapToArray(e))}static trace(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.trace(...Log.getShield(t),...Log.mapToArray(e))}static warn(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.warn(...Log.getShield(t),...Log.mapToArray(e))}static error(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.error(...Log.getShield(t),...Log.mapToArray(e))}static throw(e,t){if(DEV_MODE||!0===(null==t?void 0:t.forceLog))throw new Error(...Log.getShield(t),...Log.mapToArray(e))}}Log.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};const initMeta=()=>{if(null===DEV_MODE&&null===EXPERIMENTAL_MODE&&null===COLOR_CONTRAST_ANALYSIS){const e=getDocument().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(META_CONFIG=e.getAttribute("content"),"string"==typeof META_CONFIG&&(DEV_MODE=META_CONFIG.includes("dev-mode=true"),EXPERIMENTAL_MODE=META_CONFIG.includes("experimental-mode=true"),COLOR_CONTRAST_ANALYSIS=META_CONFIG.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")};let KoliBri=null;const getKoliBri=()=>KoliBri||{},initKoliBri=()=>{if(null===KoliBri){KoliBri=getWindow().KoliBri||{};const e=new ModalService,t=new ToasterService(getDocument());Object.defineProperty(KoliBri,"Modal",{get:function(){return e}}),Object.defineProperty(KoliBri,"Toaster",{get:function(){return t}}),initMeta()}else console.warn("You can only initialize KoliBri once.")},renderDevAdvice=()=>{void 0===getWindow().KoliBri&&Object.defineProperty(window,"KoliBri",{get:function(){return KoliBri}}),!0!==getKoliBri().adviceShown&&(Object.defineProperty(KoliBri,"adviceShown",{get:function(){return!0}}),Log.debug("\n\nSie verwenden die KoliBri-Komponenten-Bibliothek. Sollten Sie Verbesserungsvorschläge haben oder ein Problem feststellen, dann wenden Sie sich gerne an kolibri@itzbund.de.\n\nHinweise:\n- WAI Web Accessibility Tutorials (https://www.w3.org/WAI/tutorials/)\n- The first rule of ARIA is “Don't use ARIA” (https://cccaccessibility.org/web-1/web-developer-tutorials/how-not-to-use-aria)\n- BIK BITV-Test (https://www.bitvtest.de/bitv_test.html)\n- A11y-Checkliste (https://www.a11yproject.com/checklist/)\n- BSI CON.10: Entwicklung von Webanwendungen (Edition 2021)\n\n"))};let nonce=()=>Math.floor(16777215*Math.random()).toString(16);var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function createCommonjsModule(e,t,o){return e(o={path:t,exports:{},require:function(e,t){return commonjsRequire()}},o.exports),o.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var loglevel=createCommonjsModule((function(e){var t,o;t=commonjsGlobal,o=function(){var e=function(){},t="undefined",o=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function r(e,t){var o=e[t];if("function"==typeof o.bind)return o.bind(e);try{return Function.prototype.bind.call(o,e)}catch(t){return function(){return Function.prototype.apply.apply(o,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&o?i:void 0!==console[n]?r(console,n):void 0!==console.log?r(console,"log"):e)}function a(t,o){for(var r=0;r<n.length;r++){var i=n[r];this[i]=r<t?e:this.methodFactory(i,t,o)}this.log=this.debug}function s(e,o,n){return function(){typeof console!==t&&(a.call(this,o,n),this[e].apply(this,arguments))}}function c(e,t,o){return l(e)||s.apply(this,arguments)}function d(e,o,r){var i,l=this;o=null==o?"WARN":o;var s="loglevel";function d(){var e;if(typeof window!==t&&s){try{e=window.localStorage[s]}catch(e){}if(typeof e===t)try{var o=window.document.cookie,n=o.indexOf(encodeURIComponent(s)+"=");-1!==n&&(e=/^([^;]+)/.exec(o.slice(n))[1])}catch(e){}return void 0===l.levels[e]&&(e=void 0),e}}"string"==typeof e?s+=":"+e:"symbol"==typeof e&&(s=void 0),l.name=e,l.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},l.methodFactory=r||c,l.getLevel=function(){return i},l.setLevel=function(o,r){if("string"==typeof o&&void 0!==l.levels[o.toUpperCase()]&&(o=l.levels[o.toUpperCase()]),!("number"==typeof o&&o>=0&&o<=l.levels.SILENT))throw"log.setLevel() called with invalid level: "+o;if(i=o,!1!==r&&function(e){var o=(n[e]||"silent").toUpperCase();if(typeof window!==t&&s){try{return void(window.localStorage[s]=o)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"="+o+";"}catch(e){}}}(o),a.call(l,o,e),typeof console===t&&o<l.levels.SILENT)return"No console available for logging"},l.setDefaultLevel=function(e){o=e,d()||l.setLevel(e,!1)},l.resetLevel=function(){l.setLevel(o,!1),function(){if(typeof window!==t&&s){try{return void window.localStorage.removeItem(s)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},l.enableAll=function(e){l.setLevel(l.levels.TRACE,e)},l.disableAll=function(e){l.setLevel(l.levels.SILENT,e)};var u=d();null==u&&(u=o),l.setLevel(u,!1)}var u=new d,h={};u.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new d(e,u.getLevel(),u.methodFactory)),t};var f=typeof window!==t?window.log:void 0;return u.noConflict=function(){return typeof window!==t&&window.log===u&&(window.log=f),u},u.getLoggers=function(){return h},u.default=u,u},e.exports?e.exports=o():t.log=o()}));const GLOBAL="object"==typeof window?window:"object"==typeof global?global:"object"==typeof self?self:{};let warrentyWarning=!1;const THEME_NAME_PATTERN=/^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/,isThemeNameValid=e=>"string"==typeof e&&THEME_NAME_PATTERN.test(e),validateThemeName=e=>{if(!1===isThemeNameValid(e))throw new Error(`[Theming] The theme identifier "${"string"==typeof e?e:""}" (Type: ${typeof e}) is not valid. Please use only follow this pattern: /^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/`)},patchThemeTag=(e,t,o)=>{validateThemeName(e),!1===warrentyWarning&&(warrentyWarning=!0,loglevel.warn(`[Theming] The theme process is locked. This means that the theme "${e}" should not be patched.\n\nimport { register } from '@a11y-ui/core';\nimport { defineCustomElements } from '...';\nimport { THEME } from '...';\n\nregister(THEME, defineCustomElements)\n\t.then(() => {\n\t\tconst htmlDivElement: HTMLDivElement | null = document.querySelector<HTMLDivElement>('div#app');\n if (htmlDivElement instanceof HTMLDivElement) {\n const root = createRoot(htmlDivElement);\n root.render(<AppComponent />);\n }\n })\n .catch(console.warn);`)),"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi||(GLOBAL.A11yUi={}),"object"!=typeof GLOBAL.A11yUi||null===GLOBAL.A11yUi||"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes||(GLOBAL.A11yUi.Themes={}),"object"!=typeof GLOBAL.A11yUi||null===GLOBAL.A11yUi||"object"!=typeof GLOBAL.A11yUi.Themes||null===GLOBAL.A11yUi.Themes||"object"==typeof GLOBAL.A11yUi.Themes[e]&&null!==GLOBAL.A11yUi.Themes[e]||(GLOBAL.A11yUi.Themes[e]={}),"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes&&"object"==typeof GLOBAL.A11yUi.Themes[e]&&null!==GLOBAL.A11yUi.Themes[e]&&(GLOBAL.A11yUi.Themes[e][t]=o)},patchTheme=(e,t)=>{if(validateThemeName(e),"object"==typeof t&&null!==t){Object.getOwnPropertyNames(t).forEach((o=>{const n=t[o];"string"==typeof n&&n.length>0&&patchThemeTag(e,o,n)}))}return e},getThemeNode=e=>{if(e instanceof HTMLElement){if("string"==typeof e.dataset.theme)return e;{let t=e.parentNode;for(;t instanceof ShadowRoot;)t=t.host;return getThemeNode(t)}}return null},getEncroachCss=e=>"false"===e.themeEncroachCss&&"false"===e.themeReset&&("string"==typeof e.themeEncroachCssMode&&"after"===e.themeEncroachCssMode||"before"===e.themeEncroachCssMode?{mode:e.themeEncroachCssMode}:{mode:"after"}),isTheCurrentThemeConfigValid=()=>"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Theme&&null!==GLOBAL.A11yUi.Theme&&"boolean"==typeof GLOBAL.A11yUi.Theme.cache&&"object"==typeof GLOBAL.A11yUi.Theme.encroachCss&&null!==typeof GLOBAL.A11yUi.Theme.encroachCss&&"string"==typeof GLOBAL.A11yUi.Theme.encroachCss.mode&&"string"==typeof GLOBAL.A11yUi.Theme.name,getThemeDetails=e=>{if("object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Theme&&null!==GLOBAL.A11yUi.Theme&&"boolean"==typeof GLOBAL.A11yUi.Theme.cache&&"object"==typeof GLOBAL.A11yUi.Theme.encroachCss&&null!==typeof GLOBAL.A11yUi.Theme.encroachCss&&"string"==typeof GLOBAL.A11yUi.Theme.encroachCss.mode&&"string"==typeof GLOBAL.A11yUi.Theme.name)return GLOBAL.A11yUi.Theme;{const o=getThemeNode(e),n={cache:!0,encroachCss:{mode:"after"},name:null};return o instanceof HTMLElement&&(n.cache="false"!==o.dataset.themeCache,n.encroachCss="false"===(t=o.dataset).themeEncroachCss&&"false"===t.themeReset&&("string"==typeof t.themeEncroachCssMode&&"after"===t.themeEncroachCssMode||"before"===t.themeEncroachCssMode?{mode:t.themeEncroachCssMode}:{mode:"after"}),n.name=o.dataset.theme||null),n}var t},CSS_PROPERTIES_REGISTERED=new Set,CSS_STYLE_SHEETS=new Map,HTML_STYLE_ELEMENTS=new Map,REGEX_CSS_PROPERTIES=/--[^;]+/g,REGEX_SPLT_CSS_PROPERTY=/:/,getCssStyleSheet=(e,t,o)=>{if(!0===e&&CSS_STYLE_SHEETS.has(t)&&CSS_STYLE_SHEETS.get(t)?.has(o))return CSS_STYLE_SHEETS.get(t)?.get(o);if(!0===e&&HTML_STYLE_ELEMENTS.has(t)&&HTML_STYLE_ELEMENTS.get(t)?.has(o))return HTML_STYLE_ELEMENTS.get(t)?.get(o);if("object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes&&"object"==typeof GLOBAL.A11yUi.Themes[t]&&null!==GLOBAL.A11yUi.Themes[t]&&"string"==typeof GLOBAL.A11yUi.Themes[t][o]){if(("GLOBAL"===o||"PROPERTIES"===o)&&!1===CSS_PROPERTIES_REGISTERED.has(t)){let e=GLOBAL.A11yUi.Themes[t][o].match(REGEX_CSS_PROPERTIES);if(Array.isArray(e)){e=e.filter((e=>REGEX_SPLT_CSS_PROPERTY.test(e)));const o=document.createElement("style");o.innerHTML=`.${t} {${e.join(";")}}`,document.querySelector("head")?.appendChild(o)}CSS_PROPERTIES_REGISTERED.add(t)}let n;try{n=new CSSStyleSheet,"function"==typeof n.replaceSync&&n.replaceSync(GLOBAL.A11yUi.Themes[t][o]),!0===e&&(!1===CSS_STYLE_SHEETS.has(t)&&CSS_STYLE_SHEETS.set(t,new Map),CSS_STYLE_SHEETS.get(t)?.set(o,n))}catch(e){n=document.createElement("style"),n.innerHTML=GLOBAL.A11yUi.Themes[t][o]}return n}return null},removeStyle=e=>{for(const t of Array.from(e.childNodes)){if(!(t instanceof HTMLElement&&"STYLE"===t.tagName))break;e.removeChild(t)}},GLOBAL_A11Y_STYLE="* {\n font-size: inherit;\n hyphens: auto;\n letter-spacing: inherit;\n word-break: break-word;\n word-spacing: inherit;\n}",patchAdopted=(e,t,o,n)=>{const r=setTimeout((()=>{if(clearTimeout(r),e.classList.contains("hydrated")){removeStyle(t);const r=new CSSStyleSheet;"function"==typeof r.replaceSync&&r.replaceSync(GLOBAL_A11Y_STYLE),o.unshift(r),t.adoptedStyleSheets=o,e.style.display=n}else patchAdopted(e,t,o,n)}),25)},patchStyle=(e,t,o,n)=>{const r=setTimeout((()=>{if(clearTimeout(r),e.classList.contains("hydrated")){removeStyle(t);const r=document.createElement("style");r.innerHTML=GLOBAL_A11Y_STYLE,o.unshift(r);const i=t.firstChild;o.forEach((e=>{i instanceof HTMLElement?t.insertBefore(e,i):t.appendChild(e)})),e.style.display=n}else patchStyle(e,t,o,n)}),25)},addEncroachCssStyleSheet=(e,t)=>{e.adoptedStyleSheets?.forEach((e=>{t.push(e)}))},addEncroachCssStyleElement=(e,t)=>{for(const o of Array.from(e.childNodes)){if(!(o instanceof HTMLStyleElement))break;t.push(o)}},setThemeStyle=(e,t)=>{const o=t.cache,n=t.encroachCss,r=t.name||"default",i=getCssStyleSheet(o,r,"GLOBAL"),l=getCssStyleSheet(o,r,e.tagName),a=e.shadowRoot;if(l instanceof CSSStyleSheet&&l.cssRules.length>0){const t=[];!1!==n&&"before"===n?.mode&&addEncroachCssStyleSheet(a,t),i instanceof CSSStyleSheet&&i.cssRules.length>0&&!1===t.includes(i)&&t.push(i),l instanceof CSSStyleSheet&&l.cssRules.length>0&&!1===t.includes(l)&&t.push(l),!1!==n&&"after"===n?.mode&&addEncroachCssStyleSheet(a,t);const o=e.style.display;e.style.display="none",patchAdopted(e,a,t,o)}else if(l instanceof HTMLStyleElement&&l.innerHTML.length>0){const t=[];!1!==n&&"before"===n?.mode&&addEncroachCssStyleElement(a,t),i instanceof HTMLStyleElement&&i.innerHTML.length>0&&!1===t.includes(i)&&t.push(i),l instanceof HTMLStyleElement&&l.innerHTML.length>0&&!1===t.includes(l)&&t.push(l),!1!==n&&"after"===n?.mode&&addEncroachCssStyleElement(a,t);const o=e.style.display;e.style.display="none",patchStyle(e,a,t,o)}},pushNodes=(e,t)=>{t.forEach((t=>{!1===e.has(t)&&e.add(t)}))},querySelectorAll=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){const o=new Set;pushNodes(o,t.querySelectorAll(e));const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const r=n[t].shadowRoot;pushNodes(o,querySelectorAll(e,"object"==typeof r&&null!==r?r:n[t]))}return Array.from(o)}throw new Error("The parameter document for the method querySelectorAll is not type of Document, HTMLElement or ShadowRoot.")},querySelector=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){let o=t.querySelector(e);if(null===o){const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const r=n[t].shadowRoot;if(o=querySelector(e,"object"==typeof r&&null!==r?r:n[t]),null!==o)break}}return o}throw new Error("The parameter document for the method querySelector is not type of Document, HTMLElement or ShadowRoot.")};var rgbaConvert=arr,arr_1=arr,obj_1=obj,css_1=css,hex_1=hex,num_1=num;function arr(e){var t=parse(e);return 3==t.length?t.concat(255):(t[3]=Math.round(t[3]),t)}function obj(e){var t=parse(e);return{r:t[0],g:t[1],b:t[2],a:3==t.length?255:Math.round(t[3])}}function css(e){var t=parse(e);return 3==t.length&&t.push(255),255==t[3]?"rgb("+t[0]+", "+t[1]+", "+t[2]+")":0==t[3]?"rgba("+t[0]+", "+t[1]+", "+t[2]+", 0)":"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+String(t[3]/255).substr(1)+")"}function hex(e){3==(t=parse(e)).length&&t.push(255);var t,o=255==t[3],n=num2hex(t[0]),r=num2hex(t[1]),i=num2hex(t[2]),l=isshort(n,r,i,t=num2hex(Math.round(t[3])));return o?l?"#"+n.charAt(0)+r.charAt(0)+i.charAt(0):"#"+n+r+i:l?"#"+n.charAt(0)+r.charAt(0)+i.charAt(0)+t.charAt(0):"#"+n+r+i+t}function num(e){var t=parse(e);return 3==t.length?t.push(255):t[3]=Math.round(t[3]),(t[3]<<24>>>0|t[0]<<16|t[1]<<8|t[2])>>>0}function parse(e){return"string"==typeof e?name(e=e.toLowerCase())||hex3(e)||hex6(e)||rgb(e)||rgba(e)||[0,0,0,255]:object(e)||array(e)||number(e)||[0,0,0,255]}function num2hex(e){var t=e.toString(16);return 1==t.length?"0"+t:t}function isshort(e,t,o,n){var r=["ff","00","11","22","33","44","55","66","77","88","99","aa","bb","cc","dd","ee"];return-1!=r.indexOf(e)&&-1!=r.indexOf(t)&&-1!=r.indexOf(o)&&-1!=r.indexOf(n)}function name(e){return"red"==e?[255,0,0]:"green"==e?[0,255,0]:"blue"==e?[0,0,255]:"black"==e?[0,0,0]:"white"==e?[255,255,255]:"cyan"==e?[0,255,255]:"gray"==e||"grey"==e?[128,128,128]:"magenta"==e||"pink"==e?[255,0,255]:"yellow"==e?[255,255,0]:void 0}function hex2num(e){return 1==e.length?parseInt(e+e,16):parseInt(e,16)}function hex3(e){var t=e.replace(/^#/,""),o=t.length;if(3==o||4==o){var n=hex2num(t[0]),r=hex2num(t[1]),i=hex2num(t[2]),l=3==o?255:hex2num(t[3]);if(isNaN(n)||isNaN(r)||isNaN(i)||isNaN(l))return;return[n,r,i,l]}}function hex6(e){var t=e.replace(/^#/,""),o=t.length;if(6==o||8==o){var n=hex2num(t.slice(0,2)),r=hex2num(t.slice(2,4)),i=hex2num(t.slice(4,6)),l=6==o?255:hex2num(t.slice(6,8));if(isNaN(n)||isNaN(r)||isNaN(i)||isNaN(l))return;return[n,r,i,l]}}function getnum(e,t){return"number"!=typeof e||!0===t&&Math.floor(e)!==e?-1:e>=0&&e<=255?e:-1}function object(e){if("[object Object]"===Object.prototype.toString.call(e)&&Object.getPrototypeOf(e)===Object.getPrototypeOf({})){var t=getnum(null!=e.r?e.r:null!=e.red?e.red:0,!0),o=getnum(null!=e.g?e.g:null!=e.green?e.green:0,!0),n=getnum(null!=e.b?e.b:null!=e.blue?e.blue:0,!0),r=getnum(null!=e.a?e.a:null!=e.alpha?e.alpha:255,!0);if(-1!=t&&-1!=o&&-1!=n&&-1!=r)return[t,o,n,r]}}function array(e){if(Array.isArray(e)&&(3==e.length||4==e.length)){var t=getnum(e[0],!0),o=getnum(e[1],!0),n=getnum(e[2],!0),r=getnum(null!=e[3]?e[3]:255,!0);if(-1!=t&&-1!=o&&-1!=n&&-1!=r)return[t,o,n,r]}}function number(e){if("number"==typeof e&&Math.floor(e)==e&&e<=4294967295&&e>=0)return[e>>16&255,e>>8&255,255&e,e>>24&255]}function rgb(e){if("rgb("==e.substr(0,4)){var t=(e=e.match(/^rgb\(([^)]+)\)/)[1]).split(/ *, */).map(Number),o=getnum(t[0],!0),n=getnum(t[1],!0),r=getnum(t[2],!0);if(-1!=o&&-1!=n&&-1!=r)return[o,n,r,255]}}function rgba(e){if("rgba("==e.substr(0,5)){var t=(e=e.match(/^rgba\(([^)]+)\)/)[1]).split(/ *, */).map(Number),o=getnum(t[0],!0),n=getnum(t[1],!0),r=getnum(t[2],!0),i=getnum(255*t[3]);if(-1!=o&&-1!=n&&-1!=r&&-1!=i)return[o,n,r,i]}}rgbaConvert.arr=arr_1,rgbaConvert.obj=obj_1,rgbaConvert.css=css_1,rgbaConvert.hex=hex_1,rgbaConvert.num=num_1;const a11yCache=new Set,a11yHint=e=>{!1===a11yCache.has(e)&&(a11yCache.add(e),Log.info(e,{classifier:"✋a11y",overwriteStyle:"; background-color: #09f"}))},deprecatedCache=new Set,deprecatedHint=e=>{!1===deprecatedCache.has(e)&&(deprecatedCache.add(e),Log.warn(e,{classifier:"🔥deprecated",forceLog:!0,overwriteStyle:"; background-color: #f00"}))},devCache=new Set,devHint=e=>{!1===devCache.has(e)&&(devCache.add(e),Log.debug(e,{classifier:"💻dev",overwriteStyle:"; background-color: #f09"}))},featureCache=new Set,featureHint=(e,t=!1)=>{!1===featureCache.has(e)&&(featureCache.add(e),e+=!0===t?" ✅":"",Log.debug(e,{classifier:"🌟feature",overwriteStyle:"; background-color: #309"}))};devHint("Wir freuen uns über jedes Feedback, Kommentare, Screenshots oder Demo-Links von einer auf KoliBri-basierenden Anwendung (kolibri@itzbund.de). Vielen Dank!");const uiUxCache=new Set,uiUxHint=e=>{!1===uiUxCache.has(e)&&(uiUxCache.add(e),Log.debug(e,{classifier:"📑ui/ux",overwriteStyle:"; background-color: #060;"}))},a11yHintDisabled=()=>{a11yHint('"Disabled" schränkt die Zugänglichkeit und Sichtbarkeit ein. Wir empfehlen aus Sicht der Barrierefreiheit readonly- statt disabled-Attribut zu verwenden.\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae')},a11yHintLabelingLandmarks=e=>{"string"==typeof e&&""!==e||a11yHint("Manche Strukturelemente, wie bspw. der nav-Tag, können mehrfach in einer Webseite verwendet werden. Damit die gleichnamigen Strukturelemente voneinander unterschieden werden können, ist es erforderlich ein Aria-Label zu setzen.\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns")},uiUxHintMillerscheZahl=(e,t=8)=>{var o;t>7&&(o=`[${e}] Innerhalb von Navigationsstrukturen wird empfohlen nicht mehr als 7 Menüpunkte zu verwenden.\n\nLinks:\n- https://de.ryte.com/wiki/Millersche_Zahl\n- https://de.wikipedia.org/wiki/Millersche_Zahl`,!1===uiUxCache.has(o)&&(uiUxCache.add(o),Log.debug(o,{classifier:"📑ui/ux",overwriteStyle:"; background-color: #060;"})))},OBJECT_OBJECT=/\[object Object\]/,objectObjectHandler=(e,t)=>{"string"==typeof e&&OBJECT_OBJECT.test(e)||t()},emptyStringByArrayHandler=(e,t)=>{"string"==typeof e&&""===e||t()},setEventTargetAndStopPropagation=(e,t)=>{getExperimalMode()&&(console.log(e,t),devHint("↑ We propagate the (submit) event to this target.")),Object.defineProperty(e,"target",{value:t,writable:!1})},patchState=e=>{var t,o,n;null===(t=e.nextHooks)||void 0===t||t.forEach(((t,o)=>{var n;const r=t.get("beforePatch");"function"==typeof r&&r(null===(n=e.nextState)||void 0===n?void 0:n.get(o),e.nextState,e,o)})),(null===(o=e.nextState)||void 0===o?void 0:o.size)>0&&(e.state=Object.assign(Object.assign({},e.state),Object.fromEntries(e.nextState)),delete e.nextState,null===(n=e.nextHooks)||void 0===n||n.forEach(((t,o)=>{const n=t.get("afterPatch");"function"==typeof n&&n(e.state[o],e.state,e,o)}))),delete e.nextHooks},setState=(e,t,o,n={})=>{var r,i;if(void 0===e.nextHooks&&(e.nextHooks=new Map),void 0===e.nextState&&(e.nextState=new Map),e.nextState.get(t)!==o){e.nextHooks.get(t)instanceof Map==!1&&e.nextHooks.set(t,new Map),"function"==typeof n.afterPatch&&(null===(r=e.nextHooks.get(t))||void 0===r||r.set("afterPatch",n.afterPatch)),"function"==typeof n.beforePatch&&(null===(i=e.nextHooks.get(t))||void 0===i||i.set("beforePatch",n.beforePatch)),e.nextState.set(t,o),patchState(e)}},logWarn=(e,t,o,n)=>{devHint(`[${e.constructor.name}] Der Property-Wert (${o}) für '${t}' ist nicht valide. Folgende Werte sind erlaubt: ${Array.from(n).join(", ")}`)},watchValidator=(e,t,o,n,r,i={})=>{o(r)?setState(e,t,r,null==i?void 0:i.hooks):void 0===r||null===r&&(void 0===(null==i?void 0:i.required)||!1===(null==i?void 0:i.required))?setState(e,t,null==i?void 0:i.defaultValue,null==i?void 0:i.hooks):(void 0!==(null==i?void 0:i.required)&&!1!==(null==i?void 0:i.required)||n.add(null),logWarn(e,t,r,n))},watchBoolean=(e,t,o,n)=>{watchValidator(e,t,(e=>"boolean"==typeof e),new Set(["Boolean {true, false}"]),o,n)},watchString=(e,t,o,n={})=>{const r="number"==typeof n.minLength?null==n?void 0:n.minLength:0;watchValidator(e,t,(e=>"string"==typeof e&&e.length>=r),new Set([`String (Mindestlänge ${r})`]),o,n)},watchNumber=(e,t,o,n)=>{watchValidator(e,t,(e=>"number"==typeof e&&(void 0===(null==n?void 0:n.min)||"number"==typeof(null==n?void 0:n.min)&&e>=n.min)&&(void 0===(null==n?void 0:n.max)||"number"==typeof(null==n?void 0:n.max)&&e<=n.max)),new Set(["Number"]),o,n)},watchJsonArrayString=(e,t,o,n,r=(e=>e==e),i={})=>{emptyStringByArrayHandler(n,(()=>{objectObjectHandler(n,(()=>{void 0===n&&(n=[]);try{try{n=parseJson(n)}catch(e){}if(Array.isArray(n)){const l=n.find((e=>!o(e)));void 0===l&&r(n)?setState(e,t,n,i.hooks):objectObjectHandler(l,(()=>{throw console.log(l),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}else objectObjectHandler(n,(()=>{throw console.log(n),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}catch(e){devHint("Known bug: Zeichenkettenliste (string[])")}}))}))},BOOLEAN=/^(true|false)$/,INTEGER=/^-?(0|[1-9]\d*)$/,FLOAT=/^-?(0.|[1-9]\d*.)\d*[1-9]$/,mapString2Unknown=e=>{const t=typeof e,o=`${e}`;if("string"==typeof e)if(BOOLEAN.test(e))e="true"===e;else if(INTEGER.test(e))e=parseInt(e);else if(FLOAT.test(e))e=parseFloat(e);else if(JSON_CHARS.test(e))try{e=parseJson(e)}catch(e){}return t!==typeof e&&devHint(`You have used a stringified property value (${o} to ${JSON.stringify(e)}) which type switched from ${t} to ${typeof e}!`),e},stringifyJson=e=>{try{return JSON.stringify(e).replace(/"/g,"'")}catch(t){throw Log.warn(["stringifyJson",e]),Log.error("↑ Das JSON konnte nicht in einen String umgewandelt werden. Es wird ein stringifizierbares JSON erwartet."),new Error}},JSON_CHARS=/^[{[]/,parseJson=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(t){if(JSON_CHARS.test(e))try{return JSON.parse(e.replace(/'/g,'"'))}catch(t){Log.warn(["parseJson",e]),Log.error("↑ Der JSON-String konnte nicht geparsed werden. Achten Sie darauf, dass einfache Anführungszeichen im Text maskiert werden (&#8216;).")}}throw new Error},mapBoolean2String=e=>"boolean"==typeof e?!0===e?"true":"false":void 0,mapStringOrBoolean2String=e=>"string"==typeof e?e:mapBoolean2String(e),koliBriQuerySelector=(e,t)=>querySelector(e,t||getDocument()),koliBriQuerySelectorAll=(e,t)=>querySelectorAll(e,t||getDocument());let DEFAULT_COLOR_CONTRAST=null;const getDefaultColorContrast=()=>(DEFAULT_COLOR_CONTRAST=DEFAULT_COLOR_CONTRAST||{backgroundColor:"#00000000",color:"#00000000",domNode:getDocument().body,level:"Fail",score:1},DEFAULT_COLOR_CONTRAST),TRANSPARENT_REGEXP=/(\d+, ){3}0\)/,koliBriA11yColorContrast=(e,t=getDefaultColorContrast())=>{const o=getComputedStyle(e),n=TRANSPARENT_REGEXP.test(o.backgroundColor)?t.backgroundColor:rgbaConvert.hex(o.backgroundColor),r=TRANSPARENT_REGEXP.test(o.color)?t.color:rgbaConvert.hex(o.color),i=s(n,r),l={backgroundColor:n,color:r,domNode:e,level:f(i),score:i};return i<4.5&&Log.error(["Color-Contrast-Error",{backgroundColor:l.backgroundColor,color:l.color,level:l.level,score:l.score},l.domNode]),l},koliBriQuerySelectorColors=(e,t=getDefaultColorContrast())=>{t.domNode instanceof HTMLElement&&(t=koliBriA11yColorContrast(t.domNode,t));const o=t.domNode.querySelector(e);if(null===o){const o=t.domNode.querySelectorAll('[class="hydrated"]');for(let n=0;n<o.length&&(t.domNode=o[n],null===(t=koliBriQuerySelectorColors(e,t)).domNode);n++);return t}return koliBriA11yColorContrast(o,t)},scrollByHTMLElement=(e,t=window)=>{e instanceof HTMLElement?(t.scrollTo({behavior:"smooth",top:e.getBoundingClientRect().top+getWindow().pageYOffset-50}),e.focus()):devHint("Das HTMLElement ist nicht valide, zu dem gescrollt werden soll.")},scrollBySelector=(e,t)=>{if((e instanceof Document||e instanceof HTMLElement||e instanceof ShadowRoot)&&"string"==typeof t){devHint("Bei der Methode querySelectorAll wurden die Parameter document, selector in selector, document getauscht, da der Parameter selector nicht, allerdings der Parameter document optional sein kann.");const o=`${t}`;t=e,e=o}if("string"==typeof e){const o=koliBriQuerySelector(e,t);o instanceof HTMLElement?scrollByHTMLElement(o):devHint(`Es konnte kein HTMLElement mit dem Selector (${e}) gefunden werden, zu dem gescrollt werden soll.`)}else devHint("Der Selector ist nicht valide, zu dem gescrollt werden soll.")};class KoliBriUtils{static queryHtmlElementColors(e,t,o=!1,n=!0){let r=null;if(!0===o||!1===KoliBriUtils.executionLock)if(!1===o&&(KoliBriUtils.cache.clear(),KoliBriUtils.cache.set(t.domNode,t),KoliBriUtils.executionLock=!0,!0===n&&Log.debug("[KoliBriUtils] Color contrast analysis started...")),e===t.domNode)r=t;else{const o=new Set;if(t.domNode.shadowRoot){const e=t.domNode.shadowRoot.children;for(let t=0;t<e.length;t++)o.add(e[t])}const n=t.domNode;if("function"==typeof n.assignedNodes){const e=n.assignedNodes();for(let t=0;t<e.length;t++)e[t]instanceof HTMLElement&&o.add(e[t])}const i=t.domNode.children;for(let e=0;e<i.length;e++)o.add(i[e]);const l=Array.from(o);for(let o=0;o<l.length;o++){let n=KoliBriUtils.cache.get(l[o]);void 0===n&&(n=koliBriA11yColorContrast(l[o],t)),KoliBriUtils.cache.set(l[o],n);const i=KoliBriUtils.queryHtmlElementColors(e,n,!0,!1);if(null!==i){r=i;break}}}else Log.debug("[KoliBriUtils] Call aborted because a color contrast analysis is currently being executed.");return!1===o&&(!0===n&&Log.debug(`[KoliBriUtils] Color contrast analysis finished (${KoliBriUtils.cache.size} DOM elements are analysed).`),KoliBriUtils.executionLock=!1,KoliBriUtils.cache.clear()),r}}KoliBriUtils.executionLock=!1,KoliBriUtils.cache=new Map;class KoliBriDevHelper{}KoliBriDevHelper.patchTheme=patchTheme,KoliBriDevHelper.patchThemeTag=patchThemeTag,KoliBriDevHelper.querySelector=koliBriQuerySelector,KoliBriDevHelper.querySelectorAll=koliBriQuerySelectorAll,KoliBriDevHelper.scrollByHTMLElement=scrollByHTMLElement,KoliBriDevHelper.scrollBySelector=scrollBySelector,KoliBriDevHelper.stringifyJson=stringifyJson;export{a11yHint as A,getExperimalMode as B,getDocument as C,mapString2Unknown as D,initKoliBri as E,getDevMode as F,renderDevAdvice as G,getColorContrastAnalysis as H,KoliBriUtils as I,koliBriA11yColorContrast as J,KoliBriDevHelper as K,Log as L,KoliBri as M,koliBriQuerySelectorAll as N,koliBriQuerySelectorColors as O,stringifyJson as P,ToasterService as T,setState as a,watchBoolean as b,configKoliBri as c,devHint as d,a11yHintLabelingLandmarks as e,featureHint as f,getThemeDetails as g,setEventTargetAndStopPropagation as h,mapBoolean2String as i,watchValidator as j,a11yHintDisabled as k,deprecatedHint as l,mapStringOrBoolean2String as m,nonce as n,watchJsonArrayString as o,watchNumber as p,scrollBySelector as q,getKoliBri as r,setThemeStyle as s,emptyStringByArrayHandler as t,parseJson as u,objectObjectHandler as v,watchString as w,uiUxHintMillerscheZahl as x,koliBriQuerySelector as y,rgbaConvert as z};
4
+ import{s,f}from"./index.m.js";class ModalService{constructor(){this.lockedElements=new Map,this.modalStack=new Map}lockElement(e){const t=e.getAttribute("tabindex");(e instanceof HTMLAnchorElement||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||"string"==typeof t||void 0!==e.dataset.kolModal)&&("string"==typeof t?this.lockedElements.set(e,{tabIndex:t}):this.lockedElements.set(e,{}),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true"),e.style.userSelect="none")}unlockElement(e,t){"string"==typeof e.tabIndex?t.setAttribute("tabindex",e.tabIndex):t.removeAttribute("tabindex"),t.removeAttribute("aria-hidden"),t.style.userSelect="unset",this.lockedElements.delete(t)}unlockLockedElements(e){e.forEach(this.unlockElement.bind(this))}lockFocus(e,t){if(e!==t&&(e instanceof HTMLElement||e instanceof ShadowRoot)){e instanceof HTMLElement&&(this.lockElement(e),this.lockFocus(e.shadowRoot,t));for(let o=0;o<e.children.length;o++)this.lockFocus(e.children[o],t)}}renderModalIfExists(e){if(e instanceof HTMLElement){this.lockedElements.has(e)&&this.unlockElement(this.lockedElements.get(e),e);const t=setTimeout((()=>{clearTimeout(t),e.focus()}),500)}if(this.unlockLockedElements(this.lockedElements),this.modalStack.size>0){const e=Array.from(this.modalStack.keys()),t=e[e.length-1];this.modalStack.forEach(((e,o)=>{o.style.display=t===o?"inline":"none"})),getDocument().body.style.maxHeight="100vh",getDocument().body.style.overflow="hidden",this.lockFocus(getDocument().body,t)}else getDocument().body.style.maxHeight="unset",getDocument().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?Log.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide."):(this.modalStack.set(e,{activeElement:t}),this.renderModalIfExists())}closeModal(e){var t;if(e instanceof HTMLElement==!1)Log.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide.");else{const o=null===(t=this.modalStack.get(e))||void 0===t?void 0:t.activeElement;this.modalStack.delete(e),this.renderModalIfExists(o)}}}class ToasterService{constructor(e){this.document=e,this.queue=new Set,this.isOpen=!1,this.toastElement=this.document.createElement("kol-toast"),this.toastElement.setAttribute("_level","3"),this.toastElement.setAttribute("_show","false"),this.toastElement.setAttribute("_show-duration","-1"),this.toastElement.setAttribute("_has-closer","true"),this.toastElement._on={onClose:()=>{const e=this.queue.values().next();e.value?(this.queue.delete(e.value),setTimeout((()=>{this.showToast(e.value)}),200)):this.isOpen=!1}},this.document.body.insertBefore(this.toastElement,this.document.body.firstChild)}enqueue(e){this.isOpen?this.queue.add(e):this.showToast(e)}showToast(e){this.toastElement.setAttribute("_heading",e.heading),this.toastElement.setAttribute("_show","true"),this.toastElement.setAttribute("_type",e.type),this.toastElement.innerText=e.description,this.isOpen=!0}}let WINDOW=null,DOCUMENT=null;const configKoliBri=e=>{e instanceof Window?(WINDOW=e,WINDOW.document instanceof Document?DOCUMENT=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},getWindow=()=>WINDOW||"undefined"==typeof window?null:window,getDocument=()=>DOCUMENT||void 0===getWindow().document?null:getWindow().document;let META_CONFIG=null,DEV_MODE=null,EXPERIMENTAL_MODE=null,COLOR_CONTRAST_ANALYSIS=null;const getDevMode=()=>!0===DEV_MODE,getExperimalMode=()=>!0===EXPERIMENTAL_MODE,getColorContrastAnalysis=()=>!0===COLOR_CONTRAST_ANALYSIS;class Log{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${Log.shield.label} | ${e}`:Log.shield.label}static getShield(e){return[Log.handleClassifier(null==e?void 0:e.classifier),`${Log.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.log(...Log.getShield(t),...Log.mapToArray(e))}static info(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.info(...Log.getShield(t),...Log.mapToArray(e))}static trace(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.trace(...Log.getShield(t),...Log.mapToArray(e))}static warn(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.warn(...Log.getShield(t),...Log.mapToArray(e))}static error(e,t){(DEV_MODE||!0===(null==t?void 0:t.forceLog))&&console.error(...Log.getShield(t),...Log.mapToArray(e))}static throw(e,t){if(DEV_MODE||!0===(null==t?void 0:t.forceLog))throw new Error(...Log.getShield(t),...Log.mapToArray(e))}}Log.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};const initMeta=()=>{if(null===DEV_MODE&&null===EXPERIMENTAL_MODE&&null===COLOR_CONTRAST_ANALYSIS){const e=getDocument().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(META_CONFIG=e.getAttribute("content"),"string"==typeof META_CONFIG&&(DEV_MODE=META_CONFIG.includes("dev-mode=true"),EXPERIMENTAL_MODE=META_CONFIG.includes("experimental-mode=true"),COLOR_CONTRAST_ANALYSIS=META_CONFIG.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")};let KoliBri=null;const getKoliBri=()=>KoliBri||{},initKoliBri=()=>{if(null===KoliBri){KoliBri=getWindow().KoliBri||{};const e=new ModalService,t=new ToasterService(getDocument());Object.defineProperty(KoliBri,"Modal",{get:function(){return e}}),Object.defineProperty(KoliBri,"Toaster",{get:function(){return t}}),initMeta()}else console.warn("You can only initialize KoliBri once.")},renderDevAdvice=()=>{void 0===getWindow().KoliBri&&Object.defineProperty(window,"KoliBri",{get:function(){return KoliBri}}),!0!==getKoliBri().adviceShown&&(Object.defineProperty(KoliBri,"adviceShown",{get:function(){return!0}}),Log.debug("\n\nSie verwenden die KoliBri-Komponenten-Bibliothek. Sollten Sie Verbesserungsvorschläge haben oder ein Problem feststellen, dann wenden Sie sich gerne an kolibri@itzbund.de.\n\nHinweise:\n- WAI Web Accessibility Tutorials (https://www.w3.org/WAI/tutorials/)\n- The first rule of ARIA is “Don't use ARIA” (https://cccaccessibility.org/web-1/web-developer-tutorials/how-not-to-use-aria)\n- BIK BITV-Test (https://www.bitvtest.de/bitv_test.html)\n- A11y-Checkliste (https://www.a11yproject.com/checklist/)\n- BSI CON.10: Entwicklung von Webanwendungen (Edition 2021)\n\n"))};let nonce=()=>Math.floor(16777215*Math.random()).toString(16);var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function createCommonjsModule(e,t,o){return e(o={path:t,exports:{},require:function(e,t){return commonjsRequire()}},o.exports),o.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var loglevel=createCommonjsModule((function(e){var t,o;t=commonjsGlobal,o=function(){var e=function(){},t="undefined",o=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function r(e,t){var o=e[t];if("function"==typeof o.bind)return o.bind(e);try{return Function.prototype.bind.call(o,e)}catch(t){return function(){return Function.prototype.apply.apply(o,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&o?i:void 0!==console[n]?r(console,n):void 0!==console.log?r(console,"log"):e)}function a(t,o){for(var r=0;r<n.length;r++){var i=n[r];this[i]=r<t?e:this.methodFactory(i,t,o)}this.log=this.debug}function s(e,o,n){return function(){typeof console!==t&&(a.call(this,o,n),this[e].apply(this,arguments))}}function c(e,t,o){return l(e)||s.apply(this,arguments)}function d(e,o,r){var i,l=this;o=null==o?"WARN":o;var s="loglevel";function d(){var e;if(typeof window!==t&&s){try{e=window.localStorage[s]}catch(e){}if(typeof e===t)try{var o=window.document.cookie,n=o.indexOf(encodeURIComponent(s)+"=");-1!==n&&(e=/^([^;]+)/.exec(o.slice(n))[1])}catch(e){}return void 0===l.levels[e]&&(e=void 0),e}}"string"==typeof e?s+=":"+e:"symbol"==typeof e&&(s=void 0),l.name=e,l.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},l.methodFactory=r||c,l.getLevel=function(){return i},l.setLevel=function(o,r){if("string"==typeof o&&void 0!==l.levels[o.toUpperCase()]&&(o=l.levels[o.toUpperCase()]),!("number"==typeof o&&o>=0&&o<=l.levels.SILENT))throw"log.setLevel() called with invalid level: "+o;if(i=o,!1!==r&&function(e){var o=(n[e]||"silent").toUpperCase();if(typeof window!==t&&s){try{return void(window.localStorage[s]=o)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"="+o+";"}catch(e){}}}(o),a.call(l,o,e),typeof console===t&&o<l.levels.SILENT)return"No console available for logging"},l.setDefaultLevel=function(e){o=e,d()||l.setLevel(e,!1)},l.resetLevel=function(){l.setLevel(o,!1),function(){if(typeof window!==t&&s){try{return void window.localStorage.removeItem(s)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},l.enableAll=function(e){l.setLevel(l.levels.TRACE,e)},l.disableAll=function(e){l.setLevel(l.levels.SILENT,e)};var u=d();null==u&&(u=o),l.setLevel(u,!1)}var u=new d,h={};u.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new d(e,u.getLevel(),u.methodFactory)),t};var f=typeof window!==t?window.log:void 0;return u.noConflict=function(){return typeof window!==t&&window.log===u&&(window.log=f),u},u.getLoggers=function(){return h},u.default=u,u},e.exports?e.exports=o():t.log=o()}));const GLOBAL="object"==typeof window?window:"object"==typeof global?global:"object"==typeof self?self:{};let warrentyWarning=!1;const THEME_NAME_PATTERN=/^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/,isThemeNameValid=e=>"string"==typeof e&&THEME_NAME_PATTERN.test(e),validateThemeName=e=>{if(!1===isThemeNameValid(e))throw new Error(`[Theming] The theme identifier "${"string"==typeof e?e:""}" (Type: ${typeof e}) is not valid. Please use only follow this pattern: /^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/`)},patchThemeTag=(e,t,o)=>{validateThemeName(e),!1===warrentyWarning&&(warrentyWarning=!0,loglevel.warn(`[Theming] The theme process is locked. This means that the theme "${e}" should not be patched.\n\nimport { register } from '@a11y-ui/core';\nimport { defineCustomElements } from '...';\nimport { THEME } from '...';\n\nregister(THEME, defineCustomElements)\n\t.then(() => {\n\t\tconst htmlDivElement: HTMLDivElement | null = document.querySelector<HTMLDivElement>('div#app');\n if (htmlDivElement instanceof HTMLDivElement) {\n const root = createRoot(htmlDivElement);\n root.render(<AppComponent />);\n }\n })\n .catch(console.warn);`)),"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi||(GLOBAL.A11yUi={}),"object"!=typeof GLOBAL.A11yUi||null===GLOBAL.A11yUi||"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes||(GLOBAL.A11yUi.Themes={}),"object"!=typeof GLOBAL.A11yUi||null===GLOBAL.A11yUi||"object"!=typeof GLOBAL.A11yUi.Themes||null===GLOBAL.A11yUi.Themes||"object"==typeof GLOBAL.A11yUi.Themes[e]&&null!==GLOBAL.A11yUi.Themes[e]||(GLOBAL.A11yUi.Themes[e]={}),"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes&&"object"==typeof GLOBAL.A11yUi.Themes[e]&&null!==GLOBAL.A11yUi.Themes[e]&&(GLOBAL.A11yUi.Themes[e][t]=o)},patchTheme=(e,t)=>{if(validateThemeName(e),"object"==typeof t&&null!==t){Object.getOwnPropertyNames(t).forEach((o=>{const n=t[o];"string"==typeof n&&n.length>0&&patchThemeTag(e,o,n)}))}return e},getThemeNode=e=>{if(e instanceof HTMLElement){if("string"==typeof e.dataset.theme)return e;{let t=e.parentNode;for(;t instanceof ShadowRoot;)t=t.host;return getThemeNode(t)}}return null},getEncroachCss=e=>"false"===e.themeEncroachCss&&"false"===e.themeReset&&("string"==typeof e.themeEncroachCssMode&&"after"===e.themeEncroachCssMode||"before"===e.themeEncroachCssMode?{mode:e.themeEncroachCssMode}:{mode:"after"}),isTheCurrentThemeConfigValid=()=>"object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Theme&&null!==GLOBAL.A11yUi.Theme&&"boolean"==typeof GLOBAL.A11yUi.Theme.cache&&"object"==typeof GLOBAL.A11yUi.Theme.encroachCss&&null!==typeof GLOBAL.A11yUi.Theme.encroachCss&&"string"==typeof GLOBAL.A11yUi.Theme.encroachCss.mode&&"string"==typeof GLOBAL.A11yUi.Theme.name,getThemeDetails=e=>{if("object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Theme&&null!==GLOBAL.A11yUi.Theme&&"boolean"==typeof GLOBAL.A11yUi.Theme.cache&&"object"==typeof GLOBAL.A11yUi.Theme.encroachCss&&null!==typeof GLOBAL.A11yUi.Theme.encroachCss&&"string"==typeof GLOBAL.A11yUi.Theme.encroachCss.mode&&"string"==typeof GLOBAL.A11yUi.Theme.name)return GLOBAL.A11yUi.Theme;{const o=getThemeNode(e),n={cache:!0,encroachCss:{mode:"after"},name:null};return o instanceof HTMLElement&&(n.cache="false"!==o.dataset.themeCache,n.encroachCss="false"===(t=o.dataset).themeEncroachCss&&"false"===t.themeReset&&("string"==typeof t.themeEncroachCssMode&&"after"===t.themeEncroachCssMode||"before"===t.themeEncroachCssMode?{mode:t.themeEncroachCssMode}:{mode:"after"}),n.name=o.dataset.theme||null),n}var t},CSS_PROPERTIES_REGISTERED=new Set,CSS_STYLE_SHEETS=new Map,HTML_STYLE_ELEMENTS=new Map,REGEX_CSS_PROPERTIES=/--[^;]+/g,REGEX_SPLT_CSS_PROPERTY=/:/,getCssStyleSheet=(e,t,o)=>{if(!0===e&&CSS_STYLE_SHEETS.has(t)&&CSS_STYLE_SHEETS.get(t)?.has(o))return CSS_STYLE_SHEETS.get(t)?.get(o);if(!0===e&&HTML_STYLE_ELEMENTS.has(t)&&HTML_STYLE_ELEMENTS.get(t)?.has(o))return HTML_STYLE_ELEMENTS.get(t)?.get(o);if("object"==typeof GLOBAL.A11yUi&&null!==GLOBAL.A11yUi&&"object"==typeof GLOBAL.A11yUi.Themes&&null!==GLOBAL.A11yUi.Themes&&"object"==typeof GLOBAL.A11yUi.Themes[t]&&null!==GLOBAL.A11yUi.Themes[t]&&"string"==typeof GLOBAL.A11yUi.Themes[t][o]){if(("GLOBAL"===o||"PROPERTIES"===o)&&!1===CSS_PROPERTIES_REGISTERED.has(t)){let e=GLOBAL.A11yUi.Themes[t][o].match(REGEX_CSS_PROPERTIES);if(Array.isArray(e)){e=e.filter((e=>REGEX_SPLT_CSS_PROPERTY.test(e)));const o=document.createElement("style");o.innerHTML=`.${t} {${e.join(";")}}`,document.querySelector("head")?.appendChild(o)}CSS_PROPERTIES_REGISTERED.add(t)}let n;try{n=new CSSStyleSheet,"function"==typeof n.replaceSync&&n.replaceSync(GLOBAL.A11yUi.Themes[t][o]),!0===e&&(!1===CSS_STYLE_SHEETS.has(t)&&CSS_STYLE_SHEETS.set(t,new Map),CSS_STYLE_SHEETS.get(t)?.set(o,n))}catch(e){n=document.createElement("style"),n.innerHTML=GLOBAL.A11yUi.Themes[t][o]}return n}return null},removeStyle=e=>{for(const t of Array.from(e.childNodes)){if(!(t instanceof HTMLElement&&"STYLE"===t.tagName))break;e.removeChild(t)}},GLOBAL_A11Y_STYLE="* {\n font-size: inherit;\n hyphens: auto;\n letter-spacing: inherit;\n word-break: break-word;\n word-spacing: inherit;\n}",patchAdopted=(e,t,o,n)=>{const r=setTimeout((()=>{if(clearTimeout(r),e.classList.contains("hydrated")){removeStyle(t);const r=new CSSStyleSheet;"function"==typeof r.replaceSync&&r.replaceSync(GLOBAL_A11Y_STYLE),o.unshift(r),t.adoptedStyleSheets=o,e.style.display=n}else patchAdopted(e,t,o,n)}),25)},patchStyle=(e,t,o,n)=>{const r=setTimeout((()=>{if(clearTimeout(r),e.classList.contains("hydrated")){removeStyle(t);const r=document.createElement("style");r.innerHTML=GLOBAL_A11Y_STYLE,o.unshift(r);const i=t.firstChild;o.forEach((e=>{i instanceof HTMLElement?t.insertBefore(e,i):t.appendChild(e)})),e.style.display=n}else patchStyle(e,t,o,n)}),25)},addEncroachCssStyleSheet=(e,t)=>{e.adoptedStyleSheets?.forEach((e=>{t.push(e)}))},addEncroachCssStyleElement=(e,t)=>{for(const o of Array.from(e.childNodes)){if(!(o instanceof HTMLStyleElement))break;t.push(o)}},setThemeStyle=(e,t)=>{const o=t.cache,n=t.encroachCss,r=t.name||"default",i=getCssStyleSheet(o,r,"GLOBAL"),l=getCssStyleSheet(o,r,e.tagName),a=e.shadowRoot;if(l instanceof CSSStyleSheet&&l.cssRules.length>0){const t=[];!1!==n&&"before"===n?.mode&&addEncroachCssStyleSheet(a,t),i instanceof CSSStyleSheet&&i.cssRules.length>0&&!1===t.includes(i)&&t.push(i),l instanceof CSSStyleSheet&&l.cssRules.length>0&&!1===t.includes(l)&&t.push(l),!1!==n&&"after"===n?.mode&&addEncroachCssStyleSheet(a,t);const o=e.style.display;e.style.display="none",patchAdopted(e,a,t,o)}else if(l instanceof HTMLStyleElement&&l.innerHTML.length>0){const t=[];!1!==n&&"before"===n?.mode&&addEncroachCssStyleElement(a,t),i instanceof HTMLStyleElement&&i.innerHTML.length>0&&!1===t.includes(i)&&t.push(i),l instanceof HTMLStyleElement&&l.innerHTML.length>0&&!1===t.includes(l)&&t.push(l),!1!==n&&"after"===n?.mode&&addEncroachCssStyleElement(a,t);const o=e.style.display;e.style.display="none",patchStyle(e,a,t,o)}},pushNodes=(e,t)=>{t.forEach((t=>{!1===e.has(t)&&e.add(t)}))},querySelectorAll=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){const o=new Set;pushNodes(o,t.querySelectorAll(e));const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const r=n[t].shadowRoot;pushNodes(o,querySelectorAll(e,"object"==typeof r&&null!==r?r:n[t]))}return Array.from(o)}throw new Error("The parameter document for the method querySelectorAll is not type of Document, HTMLElement or ShadowRoot.")},querySelector=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){let o=t.querySelector(e);if(null===o){const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const r=n[t].shadowRoot;if(o=querySelector(e,"object"==typeof r&&null!==r?r:n[t]),null!==o)break}}return o}throw new Error("The parameter document for the method querySelector is not type of Document, HTMLElement or ShadowRoot.")};var rgbaConvert=arr,arr_1=arr,obj_1=obj,css_1=css,hex_1=hex,num_1=num;function arr(e){var t=parse(e);return 3==t.length?t.concat(255):(t[3]=Math.round(t[3]),t)}function obj(e){var t=parse(e);return{r:t[0],g:t[1],b:t[2],a:3==t.length?255:Math.round(t[3])}}function css(e){var t=parse(e);return 3==t.length&&t.push(255),255==t[3]?"rgb("+t[0]+", "+t[1]+", "+t[2]+")":0==t[3]?"rgba("+t[0]+", "+t[1]+", "+t[2]+", 0)":"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+String(t[3]/255).substr(1)+")"}function hex(e){3==(t=parse(e)).length&&t.push(255);var t,o=255==t[3],n=num2hex(t[0]),r=num2hex(t[1]),i=num2hex(t[2]),l=isshort(n,r,i,t=num2hex(Math.round(t[3])));return o?l?"#"+n.charAt(0)+r.charAt(0)+i.charAt(0):"#"+n+r+i:l?"#"+n.charAt(0)+r.charAt(0)+i.charAt(0)+t.charAt(0):"#"+n+r+i+t}function num(e){var t=parse(e);return 3==t.length?t.push(255):t[3]=Math.round(t[3]),(t[3]<<24>>>0|t[0]<<16|t[1]<<8|t[2])>>>0}function parse(e){return"string"==typeof e?name(e=e.toLowerCase())||hex3(e)||hex6(e)||rgb(e)||rgba(e)||[0,0,0,255]:object(e)||array(e)||number(e)||[0,0,0,255]}function num2hex(e){var t=e.toString(16);return 1==t.length?"0"+t:t}function isshort(e,t,o,n){var r=["ff","00","11","22","33","44","55","66","77","88","99","aa","bb","cc","dd","ee"];return-1!=r.indexOf(e)&&-1!=r.indexOf(t)&&-1!=r.indexOf(o)&&-1!=r.indexOf(n)}function name(e){return"red"==e?[255,0,0]:"green"==e?[0,255,0]:"blue"==e?[0,0,255]:"black"==e?[0,0,0]:"white"==e?[255,255,255]:"cyan"==e?[0,255,255]:"gray"==e||"grey"==e?[128,128,128]:"magenta"==e||"pink"==e?[255,0,255]:"yellow"==e?[255,255,0]:void 0}function hex2num(e){return 1==e.length?parseInt(e+e,16):parseInt(e,16)}function hex3(e){var t=e.replace(/^#/,""),o=t.length;if(3==o||4==o){var n=hex2num(t[0]),r=hex2num(t[1]),i=hex2num(t[2]),l=3==o?255:hex2num(t[3]);if(isNaN(n)||isNaN(r)||isNaN(i)||isNaN(l))return;return[n,r,i,l]}}function hex6(e){var t=e.replace(/^#/,""),o=t.length;if(6==o||8==o){var n=hex2num(t.slice(0,2)),r=hex2num(t.slice(2,4)),i=hex2num(t.slice(4,6)),l=6==o?255:hex2num(t.slice(6,8));if(isNaN(n)||isNaN(r)||isNaN(i)||isNaN(l))return;return[n,r,i,l]}}function getnum(e,t){return"number"!=typeof e||!0===t&&Math.floor(e)!==e?-1:e>=0&&e<=255?e:-1}function object(e){if("[object Object]"===Object.prototype.toString.call(e)&&Object.getPrototypeOf(e)===Object.getPrototypeOf({})){var t=getnum(null!=e.r?e.r:null!=e.red?e.red:0,!0),o=getnum(null!=e.g?e.g:null!=e.green?e.green:0,!0),n=getnum(null!=e.b?e.b:null!=e.blue?e.blue:0,!0),r=getnum(null!=e.a?e.a:null!=e.alpha?e.alpha:255,!0);if(-1!=t&&-1!=o&&-1!=n&&-1!=r)return[t,o,n,r]}}function array(e){if(Array.isArray(e)&&(3==e.length||4==e.length)){var t=getnum(e[0],!0),o=getnum(e[1],!0),n=getnum(e[2],!0),r=getnum(null!=e[3]?e[3]:255,!0);if(-1!=t&&-1!=o&&-1!=n&&-1!=r)return[t,o,n,r]}}function number(e){if("number"==typeof e&&Math.floor(e)==e&&e<=4294967295&&e>=0)return[e>>16&255,e>>8&255,255&e,e>>24&255]}function rgb(e){if("rgb("==e.substr(0,4)){var t=(e=e.match(/^rgb\(([^)]+)\)/)[1]).split(/ *, */).map(Number),o=getnum(t[0],!0),n=getnum(t[1],!0),r=getnum(t[2],!0);if(-1!=o&&-1!=n&&-1!=r)return[o,n,r,255]}}function rgba(e){if("rgba("==e.substr(0,5)){var t=(e=e.match(/^rgba\(([^)]+)\)/)[1]).split(/ *, */).map(Number),o=getnum(t[0],!0),n=getnum(t[1],!0),r=getnum(t[2],!0),i=getnum(255*t[3]);if(-1!=o&&-1!=n&&-1!=r&&-1!=i)return[o,n,r,i]}}rgbaConvert.arr=arr_1,rgbaConvert.obj=obj_1,rgbaConvert.css=css_1,rgbaConvert.hex=hex_1,rgbaConvert.num=num_1;const a11yCache=new Set,a11yHint=e=>{!1===a11yCache.has(e)&&(a11yCache.add(e),Log.info(e,{classifier:"✋a11y",overwriteStyle:"; background-color: #09f"}))},deprecatedCache=new Set,deprecatedHint=e=>{!1===deprecatedCache.has(e)&&(deprecatedCache.add(e),Log.warn(e,{classifier:"🔥deprecated",forceLog:!0,overwriteStyle:"; background-color: #f00"}))},devCache=new Set,devHint=e=>{!1===devCache.has(e)&&(devCache.add(e),Log.debug(e,{classifier:"💻dev",overwriteStyle:"; background-color: #f09"}))},featureCache=new Set,featureHint=(e,t=!1)=>{!1===featureCache.has(e)&&(featureCache.add(e),e+=!0===t?" ✅":"",Log.debug(e,{classifier:"🌟feature",overwriteStyle:"; background-color: #309"}))};devHint("Wir freuen uns über jedes Feedback, Kommentare, Screenshots oder Demo-Links von einer auf KoliBri-basierenden Anwendung (kolibri@itzbund.de). Vielen Dank!");const uiUxCache=new Set,uiUxHint=e=>{!1===uiUxCache.has(e)&&(uiUxCache.add(e),Log.debug(e,{classifier:"📑ui/ux",overwriteStyle:"; background-color: #060;"}))},a11yHintDisabled=()=>{a11yHint('"Disabled" schränkt die Zugänglichkeit und Sichtbarkeit ein. Wir empfehlen aus Sicht der Barrierefreiheit readonly- statt disabled-Attribut zu verwenden.\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae')},a11yHintLabelingLandmarks=e=>{"string"==typeof e&&""!==e||a11yHint("Manche Strukturelemente, wie bspw. der nav-Tag, können mehrfach in einer Webseite verwendet werden. Damit die gleichnamigen Strukturelemente voneinander unterschieden werden können, ist es erforderlich ein Aria-Label zu setzen.\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns")},uiUxHintMillerscheZahl=(e,t=8)=>{var o;t>7&&(o=`[${e}] Innerhalb von Navigationsstrukturen wird empfohlen nicht mehr als 7 Menüpunkte zu verwenden.\n\nLinks:\n- https://de.ryte.com/wiki/Millersche_Zahl\n- https://de.wikipedia.org/wiki/Millersche_Zahl`,!1===uiUxCache.has(o)&&(uiUxCache.add(o),Log.debug(o,{classifier:"📑ui/ux",overwriteStyle:"; background-color: #060;"})))},OBJECT_OBJECT=/\[object Object\]/,objectObjectHandler=(e,t)=>{"string"==typeof e&&OBJECT_OBJECT.test(e)||t()},emptyStringByArrayHandler=(e,t)=>{"string"==typeof e&&""===e||t()},setEventTargetAndStopPropagation=(e,t)=>{getExperimalMode()&&(console.log(e,t),devHint("↑ We propagate the (submit) event to this target.")),Object.defineProperty(e,"target",{value:t,writable:!1})},patchState=e=>{var t,o,n;null===(t=e.nextHooks)||void 0===t||t.forEach(((t,o)=>{var n;const r=t.get("beforePatch");"function"==typeof r&&r(null===(n=e.nextState)||void 0===n?void 0:n.get(o),e.nextState,e,o)})),(null===(o=e.nextState)||void 0===o?void 0:o.size)>0&&(e.state=Object.assign(Object.assign({},e.state),Object.fromEntries(e.nextState)),delete e.nextState,null===(n=e.nextHooks)||void 0===n||n.forEach(((t,o)=>{const n=t.get("afterPatch");"function"==typeof n&&n(e.state[o],e.state,e,o)}))),delete e.nextHooks},setState=(e,t,o,n={})=>{var r,i;if(void 0===e.nextHooks&&(e.nextHooks=new Map),void 0===e.nextState&&(e.nextState=new Map),e.nextState.get(t)!==o){e.nextHooks.get(t)instanceof Map==!1&&e.nextHooks.set(t,new Map),"function"==typeof n.afterPatch&&(null===(r=e.nextHooks.get(t))||void 0===r||r.set("afterPatch",n.afterPatch)),"function"==typeof n.beforePatch&&(null===(i=e.nextHooks.get(t))||void 0===i||i.set("beforePatch",n.beforePatch)),e.nextState.set(t,o),patchState(e)}},logWarn=(e,t,o,n)=>{devHint(`[${e.constructor.name}] Der Property-Wert (${o}) für '${t}' ist nicht valide. Folgende Werte sind erlaubt: ${Array.from(n).join(", ")}`)},watchValidator=(e,t,o,n,r,i={})=>{o(r)?setState(e,t,r,null==i?void 0:i.hooks):void 0===r||null===r&&(void 0===(null==i?void 0:i.required)||!1===(null==i?void 0:i.required))?setState(e,t,null==i?void 0:i.defaultValue,null==i?void 0:i.hooks):(void 0!==(null==i?void 0:i.required)&&!1!==(null==i?void 0:i.required)||n.add(null),logWarn(e,t,r,n))},watchBoolean=(e,t,o,n)=>{watchValidator(e,t,(e=>"boolean"==typeof e),new Set(["Boolean {true, false}"]),o,n)},watchString=(e,t,o,n={})=>{const r="number"==typeof n.minLength?null==n?void 0:n.minLength:0;watchValidator(e,t,(e=>"string"==typeof e&&e.length>=r),new Set([`String (Mindestlänge ${r})`]),o,n)},watchNumber=(e,t,o,n)=>{watchValidator(e,t,(e=>"number"==typeof e&&(void 0===(null==n?void 0:n.min)||"number"==typeof(null==n?void 0:n.min)&&e>=n.min)&&(void 0===(null==n?void 0:n.max)||"number"==typeof(null==n?void 0:n.max)&&e<=n.max)),new Set(["Number"]),o,n)},watchJsonArrayString=(e,t,o,n,r=(e=>e==e),i={})=>{emptyStringByArrayHandler(n,(()=>{objectObjectHandler(n,(()=>{void 0===n&&(n=[]);try{try{n=parseJson(n)}catch(e){}if(Array.isArray(n)){const l=n.find((e=>!o(e)));void 0===l&&r(n)?setState(e,t,n,i.hooks):objectObjectHandler(l,(()=>{throw console.log(l),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}else objectObjectHandler(n,(()=>{throw console.log(n),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}catch(e){devHint("Known bug: Zeichenkettenliste (string[])")}}))}))},BOOLEAN=/^(true|false)$/,INTEGER=/^-?(0|[1-9]\d*)$/,FLOAT=/^-?(0.|[1-9]\d*.)\d*[1-9]$/,mapString2Unknown=e=>{const t=typeof e,o=`${e}`;if("string"==typeof e)if(BOOLEAN.test(e))e="true"===e;else if(INTEGER.test(e))e=parseInt(e);else if(FLOAT.test(e))e=parseFloat(e);else if(JSON_CHARS.test(e))try{e=parseJson(e)}catch(e){}return t!==typeof e&&devHint(`You have used a stringified property value (${o} to ${JSON.stringify(e)}) which type switched from ${t} to ${typeof e}!`),e},stringifyJson=e=>{try{return JSON.stringify(e).replace(/"/g,"'")}catch(t){throw Log.warn(["stringifyJson",e]),Log.error("↑ Das JSON konnte nicht in einen String umgewandelt werden. Es wird ein stringifizierbares JSON erwartet."),new Error}},JSON_CHARS=/^[{[]/,parseJson=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(t){if(JSON_CHARS.test(e))try{return JSON.parse(e.replace(/'/g,'"'))}catch(t){Log.warn(["parseJson",e]),Log.error("↑ Der JSON-String konnte nicht geparsed werden. Achten Sie darauf, dass einfache Anführungszeichen im Text maskiert werden (&#8216;).")}}throw new Error},mapBoolean2String=e=>"boolean"==typeof e?!0===e?"true":"false":void 0,mapStringOrBoolean2String=e=>"string"==typeof e?e:mapBoolean2String(e),koliBriQuerySelector=(e,t)=>querySelector(e,t||getDocument()),koliBriQuerySelectorAll=(e,t)=>querySelectorAll(e,t||getDocument());let DEFAULT_COLOR_CONTRAST=null;const getDefaultColorContrast=()=>(DEFAULT_COLOR_CONTRAST=DEFAULT_COLOR_CONTRAST||{backgroundColor:"#00000000",color:"#00000000",domNode:getDocument().body,level:"Fail",score:1},DEFAULT_COLOR_CONTRAST),TRANSPARENT_REGEXP=/(\d+, ){3}0\)/,koliBriA11yColorContrast=(e,t=getDefaultColorContrast())=>{const o=getComputedStyle(e),n=TRANSPARENT_REGEXP.test(o.backgroundColor)?t.backgroundColor:rgbaConvert.hex(o.backgroundColor),r=TRANSPARENT_REGEXP.test(o.color)?t.color:rgbaConvert.hex(o.color),i=s(n,r),l={backgroundColor:n,color:r,domNode:e,level:f(i),score:i};return i<4.5&&Log.error(["Color-Contrast-Error",{backgroundColor:l.backgroundColor,color:l.color,level:l.level,score:l.score},l.domNode]),l},koliBriQuerySelectorColors=(e,t=getDefaultColorContrast())=>{t.domNode instanceof HTMLElement&&(t=koliBriA11yColorContrast(t.domNode,t));const o=t.domNode.querySelector(e);if(null===o){const o=t.domNode.querySelectorAll('[class="hydrated"]');for(let n=0;n<o.length&&(t.domNode=o[n],null===(t=koliBriQuerySelectorColors(e,t)).domNode);n++);return t}return koliBriA11yColorContrast(o,t)},scrollByHTMLElement=(e,t=window)=>{e instanceof HTMLElement?(t.scrollTo({behavior:"smooth",top:e.getBoundingClientRect().top+getWindow().pageYOffset-50}),e.focus()):devHint("Das HTMLElement ist nicht valide, zu dem gescrollt werden soll.")},scrollBySelector=(e,t)=>{if((e instanceof Document||e instanceof HTMLElement||e instanceof ShadowRoot)&&"string"==typeof t){devHint("Bei der Methode querySelectorAll wurden die Parameter document, selector in selector, document getauscht, da der Parameter selector nicht, allerdings der Parameter document optional sein kann.");const o=`${t}`;t=e,e=o}if("string"==typeof e){const o=koliBriQuerySelector(e,t);o instanceof HTMLElement?scrollByHTMLElement(o):devHint(`Es konnte kein HTMLElement mit dem Selector (${e}) gefunden werden, zu dem gescrollt werden soll.`)}else devHint("Der Selector ist nicht valide, zu dem gescrollt werden soll.")};class KoliBriUtils{static queryHtmlElementColors(e,t,o=!1,n=!0){let r=null;if(!0===o||!1===KoliBriUtils.executionLock)if(!1===o&&(KoliBriUtils.cache.clear(),KoliBriUtils.cache.set(t.domNode,t),KoliBriUtils.executionLock=!0,!0===n&&Log.debug("[KoliBriUtils] Color contrast analysis started...")),e===t.domNode)r=t;else{const o=new Set;if(t.domNode.shadowRoot){const e=t.domNode.shadowRoot.children;for(let t=0;t<e.length;t++)o.add(e[t])}const n=t.domNode;if("function"==typeof n.assignedNodes){const e=n.assignedNodes();for(let t=0;t<e.length;t++)e[t]instanceof HTMLElement&&o.add(e[t])}const i=t.domNode.children;for(let e=0;e<i.length;e++)o.add(i[e]);const l=Array.from(o);for(let o=0;o<l.length;o++){let n=KoliBriUtils.cache.get(l[o]);void 0===n&&(n=koliBriA11yColorContrast(l[o],t)),KoliBriUtils.cache.set(l[o],n);const i=KoliBriUtils.queryHtmlElementColors(e,n,!0,!1);if(null!==i){r=i;break}}}else Log.debug("[KoliBriUtils] Call aborted because a color contrast analysis is currently being executed.");return!1===o&&(!0===n&&Log.debug(`[KoliBriUtils] Color contrast analysis finished (${KoliBriUtils.cache.size} DOM elements are analysed).`),KoliBriUtils.executionLock=!1,KoliBriUtils.cache.clear()),r}}KoliBriUtils.executionLock=!1,KoliBriUtils.cache=new Map;class KoliBriDevHelper{}KoliBriDevHelper.patchTheme=patchTheme,KoliBriDevHelper.patchThemeTag=patchThemeTag,KoliBriDevHelper.querySelector=koliBriQuerySelector,KoliBriDevHelper.querySelectorAll=koliBriQuerySelectorAll,KoliBriDevHelper.scrollByHTMLElement=scrollByHTMLElement,KoliBriDevHelper.scrollBySelector=scrollBySelector,KoliBriDevHelper.stringifyJson=stringifyJson;export{rgbaConvert as A,a11yHint as B,getDocument as C,mapString2Unknown as D,initKoliBri as E,getDevMode as F,renderDevAdvice as G,getColorContrastAnalysis as H,KoliBriUtils as I,koliBriA11yColorContrast as J,KoliBriDevHelper as K,Log as L,KoliBri as M,koliBriQuerySelectorAll as N,koliBriQuerySelectorColors as O,stringifyJson as P,ToasterService as T,setState as a,watchBoolean as b,configKoliBri as c,devHint as d,a11yHintLabelingLandmarks as e,featureHint as f,getThemeDetails as g,setEventTargetAndStopPropagation as h,mapBoolean2String as i,watchValidator as j,a11yHintDisabled as k,deprecatedHint as l,mapStringOrBoolean2String as m,nonce as n,watchJsonArrayString as o,watchNumber as p,scrollBySelector as q,getKoliBri as r,setThemeStyle as s,emptyStringByArrayHandler as t,parseJson as u,objectObjectHandler as v,watchString as w,getExperimalMode as x,uiUxHintMillerscheZahl as y,koliBriQuerySelector as z};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{o as watchJsonArrayString,x as uiUxHintMillerscheZahl}from"./prop.validators.js";const watchNavLinks=(t,a,s)=>{watchJsonArrayString(a,"_links",(t=>"object"==typeof t&&"string"==typeof t._label),s),uiUxHintMillerscheZahl(t,a.state._links.length)};export{watchNavLinks as w};
4
+ import{o as watchJsonArrayString,y as uiUxHintMillerscheZahl}from"./prop.validators.js";const watchNavLinks=(t,a,s)=>{watchJsonArrayString(a,"_links",(t=>"object"==typeof t&&"string"==typeof t._label),s),uiUxHintMillerscheZahl(t,a.state._links.length)};export{watchNavLinks as w};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as registerInstance,h,H as Host}from"./index-a9774259.js";import{s as setState,w as watchString,i as emptyStringByArrayHandler,p as parseJson,a as watchValidator,o as objectObjectHandler}from"./prop.validators-82b345aa.js";import"./index.m-86dc8c44.js";import"./a11y.tipps-d591ee77.js";import"./dev.utils-daaf2f39.js";import"./index-d870d3e1.js";const defaultStyleCss='/* windicss-touch: 1639175625181 */\n/* windicss-touch: 1649810622229 */\n/* windicss layer base */\n*, ::before, ::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: var(--kolibri-border-color);\n}\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: var(--kolibri-color);\n --tw-ring-color: rgba(undefined, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n}\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\n::moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n[type=\'search\'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nbody {\n margin: 0;\n font-family: inherit;\n line-height: inherit;\n}\nb {\n font-weight: bolder;\n}\nbutton, select {\n text-transform: none;\n}\nbutton, [type=\'button\'], [type=\'reset\'], [type=\'submit\'] {\n -webkit-appearance: button;\n}\nbutton {\n background-color: transparent;\n background-image: none;\n}\nbutton, [role="button"] {\n cursor: pointer;\n}\ncode {\n font-size: 1em;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nhtml {\n -webkit-text-size-adjust: 100%;\n font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";\n line-height: 1.5;\n}\nh1, p, h2, h3, h4, h5, h6 {\n margin: 0;\n}\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\ninput, button, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\ninput::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nlegend {\n padding: 0;\n}\nprogress {\n vertical-align: baseline;\n}\nsmall {\n font-size: 80%;\n}\nsvg {\n display: block;\n vertical-align: middle;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\ntextarea {\n resize: vertical;\n}\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nul, ol {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/* windicss layer components */\n/* windicss layer utilities */\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.bg-normal {\n background-color: var(--kolibri-color-normal);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity));\n}\n.bg-spin-1 {\n background-color: var(--kolibri-color-spin-1);\n}\n.bg-spin-2 {\n background-color: var(--kolibri-color-spin-2);\n}\n.bg-spin-3 {\n background-color: var(--kolibri-color-spin-3);\n}\n.rounded {\n border-radius: var(--kolibri-border-radius);\n}\n.border-1 {\n border-width: 1px;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: -webkit-inline-flex;\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: -ms-grid;\n display: grid;\n}\n.hidden {\n display: none;\n}\n.flex-wrap {\n -ms-flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n}\n.content-center {\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n}\n.float-left {\n float: left;\n}\n.font-80 {\n font-weight: 80;\n}\n.font-60 {\n font-weight: 60;\n}\n.h-full {\n height: 100%;\n}\n.h-0 {\n height: 0px;\n}\n.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16 {\n height: 0.29rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.list-none {\n list-style-type: none;\n}\n.list-disc {\n list-style-type: disc;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1 {\n margin-bottom: calc(1 * var(--kolibri-spacing));\n}\n.mr-2 {\n margin-right: calc(2 * var(--kolibri-spacing));\n}\n.ml-2 {\n margin-left: calc(2 * var(--kolibri-spacing));\n}\n.mt-2 {\n margin-top: calc(2 * var(--kolibri-spacing));\n}\n.mt-4 {\n margin-top: calc(4 * var(--kolibri-spacing));\n}\n.outline {\n outline-style: solid;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-visible {\n overflow-y: visible;\n}\n.p-2 {\n padding: calc(2 * var(--kolibri-spacing));\n}\n.p-4 {\n padding: calc(4 * var(--kolibri-spacing));\n}\n.px {\n padding-left: 1px;\n padding-right: 1px;\n}\n.py-2 {\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pb-2 {\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.tab {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n.absolute {\n position: absolute;\n}\n.text-center {\n text-align: center;\n}\n.text-normal {\n color: var(--kolibri-color-normal);\n}\n.hover\\:text-primary:hover {\n color: var(--kolibri-color-primary);\n}\n.italic {\n font-style: italic;\n}\n.underline {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n.indent {\n text-indent: 1.5rem;\n}\n.visible {\n visibility: visible;\n}\n.w-full {\n width: 100%;\n}\n.w-4\\/5 {\n width: 80%;\n}\n.z-50 {\n z-index: 50;\n}\n.gap-1 {\n grid-gap: calc(1 * var(--kolibri-spacing));\n gap: calc(1 * var(--kolibri-spacing));\n}\n.gap-2 {\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}\n.grid-flow-col {\n grid-auto-flow: column;\n}\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate: 0;\n --tw-rotate-x: 0;\n --tw-rotate-y: 0;\n --tw-rotate-z: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n -webkit-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n -ms-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n}\n.animate {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n}\n.filter {\n --tw-blur: var(--tw-empty,/*!*/ /*!*/);\n --tw-brightness: var(--tw-empty,/*!*/ /*!*/);\n --tw-contrast: var(--tw-empty,/*!*/ /*!*/);\n --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);\n --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);\n --tw-invert: var(--tw-empty,/*!*/ /*!*/);\n --tw-saturate: var(--tw-empty,/*!*/ /*!*/);\n --tw-sepia: var(--tw-empty,/*!*/ /*!*/);\n --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur {\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n}\n:host * {\n -ms-hyphens: var(--kolibri-hyphens);\n -webkit-hyphens: var(--kolibri-hyphens);\n hyphens: var(--kolibri-hyphens);\n font-family: var(--kolibri-font-family);\n line-height: var(--kolibri-line-height);\n word-break: break-word;\n}\n\n:host {\n overflow: hidden;\n}\n:host > div {\n overflow-x: auto;\n border-radius: var(--kolibri-border-radius);\n border-style: solid;\n border-width: 1px;\n}\n:host > div table {\n border: 0;\n width: 100%;\n}\n:host > div table tr {\n border-top-style: solid;\n border-top-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th, :host > div table tr td {\n border-right-style: solid;\n border-right-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th:last-child,\n:host > div table tr td:last-child {\n border: 0;\n}\n:host > div table tr th, :host > div table tr .th {\n --tw-bg-opacity: 1;\n background-color: rgba(229, 231, 235, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: rgba(243, 244, 246, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(odd) {\n @apply white;\n}\n:host > div.pagination {\n border-style: none;\n display: -ms-grid;\n display: grid;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-left: calc(1 * var(--kolibri-spacing));\n padding-right: calc(1 * var(--kolibri-spacing));\n width: 100%;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n grid-auto-flow: column;\n}\n:host > div.pagination > div::last-child {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-grid-column-align: end;\n justify-self: end;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}',PAGINATION_OPTIONS=[10,20,50,100],KolTable=class{constructor(t){registerInstance(this,t),this.horizontal=!0,this.sortDirections=new Map,this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.handlePagination={onClick:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onClick)&&this.state._pagination._on.onClick(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePage:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onChangePage)&&this.state._pagination._on.onChangePage(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePageSize:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:n})),setState(this,"_pageSize",n)}},this.beforePatchPagination=(t,n,i,a)=>{"_pagination"===a&&(this.showPagination=!0===t||""===t||"object"==typeof t&&null!==t)},this.updateSortedData=()=>{let t=this.state._data;if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"NOS":t=[...this.state._data];break;case"ASC":t=this.sortFunction([...this.state._data]);break;default:t=this.sortFunction([...this.state._data]).reverse()}setState(this,"_sortedData",t)},this._caption=void 0,this._data=void 0,this._headers=void 0,this._minWidth=void 0,this._pagination=void 0,this.state={_caption:"",_data:[],_headers:{horizontal:[],vertical:[]},_pagination:{_page:1,_pageSize:10,_total:0},_sortedData:[]}}validateCaption(t){watchString(this,"_caption",t,{required:!0})}validateData(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{void 0===t&&(t=[]);try{t=parseJson(t)}catch(t){}Array.isArray(t)&&void 0===t.find((t=>!("object"==typeof t&&null!==t)))&&setState(this,"_data",t,{afterPatch:()=>{const t=setTimeout((()=>{clearTimeout(t),this.updateSortedData()}))}})}))}))}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var n;null===(n=t.horizontal)||void 0===n||n.forEach((t=>{t.forEach((t=>{"function"==typeof t.sort&&"string"==typeof t.sortDirection&&this.sortDirections.set(t.sort,t.sortDirection)}))}))}}})}))}))}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validatePagination(t){try{t=parseJson(t)}catch(t){}watchValidator(this,"_pagination",(()=>!0),new Set(["boolean","KoliBriTablePagination"]),t,{hooks:{beforePatch:this.beforePatchPagination}})}componentWillLoad(){this.validateCaption(this._caption),this.validateData(this._data),this.validateHeaders(this._headers),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination)}getNumberOfCols(t,n){let i=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var i;return n+=null!==(i=t.colSpan)&&void 0!==i?i:1})),i<n&&(i=n)})),0===i&&(i=n.length),i}getNumberOfRows(t,n){let i=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var i;return n+=null!==(i=t.rowSpan)&&void 0!==i?i:1})),i<n&&(i=n)})),0===i&&(i=n.length),i}filterHeaderKeys(t){const n=[];return t.forEach((t=>{t.forEach((t=>{"string"==typeof t.key&&n.push(t)}))})),n}getPrimaryHeader(t){var n,i;let a=this.filterHeaderKeys(null!==(n=t.horizontal)&&void 0!==n?n:[]);return this.horizontal=!0,0===a.length&&(a=this.filterHeaderKeys(null!==(i=t.vertical)&&void 0!==i?i:[]),a.length>0&&(this.horizontal=!1)),a}createDataField(t,n){n.horizontal=Array.isArray(null==n?void 0:n.horizontal)?n.horizontal:[],n.vertical=Array.isArray(null==n?void 0:n.vertical)?n.vertical:[];const i=this.getPrimaryHeader(n),a=this.getNumberOfCols(n.horizontal,t),e=this.getNumberOfRows(n.vertical,t),o=[],r=[],s=[];n.vertical.forEach(((t,n)=>{r[n]=0,s[n]=[]}));for(let l=0;l<e;l++){const e=[];n.vertical.forEach(((t,n)=>{let i=0;if(s[n].forEach((t=>i+=t)),i<=l){const a=t[l-i+r[n]];if("object"==typeof a){e.push(Object.assign(Object.assign({},a),{asTd:!1,data:{}}));let t=1;if("number"==typeof a.rowSpan&&a.rowSpan>1&&(t=a.rowSpan),s[n].push(t),"number"==typeof a.colSpan&&a.colSpan>1)for(let i=1;i<a.colSpan;i++)s[n+i].push(t);r[n]++}}}));for(let n=0;n<a;n++)!0===this.horizontal?"object"==typeof i[n]&&null!==i[n]&&"string"==typeof i[n].key&&"object"==typeof t[l]&&null!==t[l]&&e.push(Object.assign(Object.assign({},i[n]),{colSpan:void 0,data:t[l],label:t[l][i[n].key],rowSpan:void 0})):"object"==typeof i[l]&&null!==i[l]&&"string"==typeof i[l].key&&"object"==typeof t[n]&&null!==t[n]&&e.push(Object.assign(Object.assign({},i[l]),{colSpan:void 0,data:t[n],label:t[n][i[l].key],rowSpan:void 0}));o.push(e)}if(0===t.length){let t=0,i=0;Array.isArray(n.horizontal)&&n.horizontal.length>0&&n.horizontal[0].forEach((n=>{t+=n.colSpan||1})),Array.isArray(n.vertical)&&n.vertical.length>0&&(t-=n.vertical.length,n.vertical[0].forEach((t=>{i+=t.rowSpan||1})));const a={label:"Es sind keine Einträge vorhanden.",colSpan:t,rowSpan:Math.max(i,1)};0===o.length?o.push([a]):o[0].push(a)}return o}selectDisplayedData(t,n,i){return"number"==typeof n&&n>0&&"number"==typeof i&&i>0?(this.pageStartSlice=n*(i-1),this.pageEndSlice=n*i>t.length?t.length:n*i,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}cellRender(t,n){const i=setTimeout((()=>{if(clearTimeout(i),"function"==typeof t.render&&n instanceof HTMLElement){const i=t.render(n,{asTd:t.asTd,label:t.label,textAlign:t.textAlign,width:t.width},t.data,this.state._data);"string"==typeof i&&(n.innerHTML=i)}}),50)}render(){var t,n;const i=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(n=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==n?n:10:this.state._sortedData.length,this.state._pagination._page||1),a=this.createDataField(i,this.state._headers);return h(Host,null,h("div",{tabindex:"0"},h("table",{style:{minWidth:this.state._minWidth}},h("caption",null,this.state._caption),Array.isArray(this.state._headers.horizontal)&&h("thead",null,this.state._headers.horizontal.map((t=>h("tr",null,t.map((t=>!0===t.asTd?h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}):h("th",{scope:"number"==typeof t.colSpan&&t.colSpan>1?"colgroup":"col",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))))))))),h("tbody",null,a.map(((t,n)=>h("tr",{key:`row-${n}`},t.map((t=>!1===t.asTd?h("th",{scope:"number"==typeof t.rowSpan&&t.rowSpan>1?"rowgroup":"row",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))):h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}))))))))),this.pageEndSlice>0&&this.showPagination&&h("div",null,h("span",null,"Einträge ",this.pageEndSlice>0?this.pageStartSlice+1:0," bis ",this.pageEndSlice," von"," ",this.state._pagination._total||(Array.isArray(this.state._data)?this.state._data.length:0)," angezeigt"),h("div",null,h("kol-pagination",{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_total:this.state._pagination._total||this.state._data.length}))))}static get watchers(){return{_caption:["validateCaption"],_data:["validateData"],_headers:["validateHeaders"],_minWidth:["validateMinWidth"],_pagination:["validatePagination"]}}};KolTable.style={default:defaultStyleCss};export{KolTable as kol_table};
4
+ import{r as registerInstance,h,H as Host}from"./index-a9774259.js";import{s as setState,w as watchString,i as emptyStringByArrayHandler,p as parseJson,a as watchValidator,o as objectObjectHandler}from"./prop.validators-82b345aa.js";import{b as getExperimalMode}from"./dev.utils-daaf2f39.js";import"./index.m-86dc8c44.js";import"./a11y.tipps-d591ee77.js";import"./index-d870d3e1.js";const defaultStyleCss='/* windicss-touch: 1639175625181 */\n/* windicss-touch: 1649810622229 */\n/* windicss layer base */\n*, ::before, ::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: var(--kolibri-border-color);\n}\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: var(--kolibri-color);\n --tw-ring-color: rgba(undefined, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n}\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\n::moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n[type=\'search\'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nbody {\n margin: 0;\n font-family: inherit;\n line-height: inherit;\n}\nb {\n font-weight: bolder;\n}\nbutton, select {\n text-transform: none;\n}\nbutton, [type=\'button\'], [type=\'reset\'], [type=\'submit\'] {\n -webkit-appearance: button;\n}\nbutton {\n background-color: transparent;\n background-image: none;\n}\nbutton, [role="button"] {\n cursor: pointer;\n}\ncode {\n font-size: 1em;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nhtml {\n -webkit-text-size-adjust: 100%;\n font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";\n line-height: 1.5;\n}\nh1, p, h2, h3, h4, h5, h6 {\n margin: 0;\n}\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\ninput, button, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\ninput::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nlegend {\n padding: 0;\n}\nprogress {\n vertical-align: baseline;\n}\nsmall {\n font-size: 80%;\n}\nsvg {\n display: block;\n vertical-align: middle;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\ntextarea {\n resize: vertical;\n}\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::webkit-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea:-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ntextarea::-ms-input-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nul, ol {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/* windicss layer components */\n/* windicss layer utilities */\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.bg-normal {\n background-color: var(--kolibri-color-normal);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity));\n}\n.bg-spin-1 {\n background-color: var(--kolibri-color-spin-1);\n}\n.bg-spin-2 {\n background-color: var(--kolibri-color-spin-2);\n}\n.bg-spin-3 {\n background-color: var(--kolibri-color-spin-3);\n}\n.rounded {\n border-radius: var(--kolibri-border-radius);\n}\n.border-1 {\n border-width: 1px;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: -webkit-inline-flex;\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: -ms-grid;\n display: grid;\n}\n.hidden {\n display: none;\n}\n.flex-wrap {\n -ms-flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n}\n.content-center {\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n}\n.float-left {\n float: left;\n}\n.font-80 {\n font-weight: 80;\n}\n.font-60 {\n font-weight: 60;\n}\n.h-full {\n height: 100%;\n}\n.h-0 {\n height: 0px;\n}\n.h-0\\.41c-2\\.42\\2c 0-4\\.82-1\\.57-4\\.82-3\\.58c0\\.05-0\\.98\\2c 0\\.43-1\\.91\\2c 1\\.07-2\\.65c0\\.3\\2c 0\\.05\\2c 0\\.61\\2c 0\\.09\\2c 0\\.92\\2c 0\\.09c1\\.1\\2c 0\\2c 1\\.69-0\\.58\\2c 1\\.74-1\\.16 {\n height: 0.29rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.list-none {\n list-style-type: none;\n}\n.list-disc {\n list-style-type: disc;\n}\n.list-decimal {\n list-style-type: decimal;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.mb-1 {\n margin-bottom: calc(1 * var(--kolibri-spacing));\n}\n.mr-2 {\n margin-right: calc(2 * var(--kolibri-spacing));\n}\n.ml-2 {\n margin-left: calc(2 * var(--kolibri-spacing));\n}\n.mt-2 {\n margin-top: calc(2 * var(--kolibri-spacing));\n}\n.mt-4 {\n margin-top: calc(4 * var(--kolibri-spacing));\n}\n.outline {\n outline-style: solid;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-visible {\n overflow-y: visible;\n}\n.p-2 {\n padding: calc(2 * var(--kolibri-spacing));\n}\n.p-4 {\n padding: calc(4 * var(--kolibri-spacing));\n}\n.px {\n padding-left: 1px;\n padding-right: 1px;\n}\n.py-2 {\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pb-2 {\n padding-bottom: calc(2 * var(--kolibri-spacing));\n}\n.tab {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n.absolute {\n position: absolute;\n}\n.text-center {\n text-align: center;\n}\n.text-normal {\n color: var(--kolibri-color-normal);\n}\n.hover\\:text-primary:hover {\n color: var(--kolibri-color-primary);\n}\n.italic {\n font-style: italic;\n}\n.underline {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n.indent {\n text-indent: 1.5rem;\n}\n.visible {\n visibility: visible;\n}\n.w-full {\n width: 100%;\n}\n.w-4\\/5 {\n width: 80%;\n}\n.z-50 {\n z-index: 50;\n}\n.gap-1 {\n grid-gap: calc(1 * var(--kolibri-spacing));\n gap: calc(1 * var(--kolibri-spacing));\n}\n.gap-2 {\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}\n.grid-flow-col {\n grid-auto-flow: column;\n}\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate: 0;\n --tw-rotate-x: 0;\n --tw-rotate-y: 0;\n --tw-rotate-z: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n -webkit-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n -ms-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));\n}\n.animate {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n}\n.filter {\n --tw-blur: var(--tw-empty,/*!*/ /*!*/);\n --tw-brightness: var(--tw-empty,/*!*/ /*!*/);\n --tw-contrast: var(--tw-empty,/*!*/ /*!*/);\n --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);\n --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);\n --tw-invert: var(--tw-empty,/*!*/ /*!*/);\n --tw-saturate: var(--tw-empty,/*!*/ /*!*/);\n --tw-sepia: var(--tw-empty,/*!*/ /*!*/);\n --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur {\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n}\n:host * {\n -ms-hyphens: var(--kolibri-hyphens);\n -webkit-hyphens: var(--kolibri-hyphens);\n hyphens: var(--kolibri-hyphens);\n font-family: var(--kolibri-font-family);\n line-height: var(--kolibri-line-height);\n word-break: break-word;\n}\n\n:host {\n overflow: hidden;\n}\n:host > div {\n overflow-x: auto;\n border-radius: var(--kolibri-border-radius);\n border-style: solid;\n border-width: 1px;\n}\n:host > div table {\n border: 0;\n width: 100%;\n}\n:host > div table tr {\n border-top-style: solid;\n border-top-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th, :host > div table tr td {\n border-right-style: solid;\n border-right-width: 1px;\n padding-top: calc(1 * var(--kolibri-spacing));\n padding-bottom: calc(1 * var(--kolibri-spacing));\n padding-left: calc(2 * var(--kolibri-spacing));\n padding-right: calc(2 * var(--kolibri-spacing));\n}\n:host > div table tr th:last-child,\n:host > div table tr td:last-child {\n border: 0;\n}\n:host > div table tr th, :host > div table tr .th {\n --tw-bg-opacity: 1;\n background-color: rgba(229, 231, 235, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: rgba(243, 244, 246, var(--tw-bg-opacity));\n}\n:host > div table tr:nth-child(odd) {\n @apply white;\n}\n:host > div.pagination {\n border-style: none;\n display: -ms-grid;\n display: grid;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-flex-line-pack: center;\n -webkit-align-content: center;\n align-content: center;\n padding-top: calc(2 * var(--kolibri-spacing));\n padding-left: calc(1 * var(--kolibri-spacing));\n padding-right: calc(1 * var(--kolibri-spacing));\n width: 100%;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n grid-auto-flow: column;\n}\n:host > div.pagination > div::last-child {\n display: -webkit-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n -ms-grid-column-align: end;\n justify-self: end;\n grid-gap: calc(2 * var(--kolibri-spacing));\n gap: calc(2 * var(--kolibri-spacing));\n}',PAGINATION_OPTIONS=[10,20,50,100],KolTable=class{constructor(t){registerInstance(this,t),this.horizontal=!0,this.sortDirections=new Map,this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.handlePagination={onClick:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onClick)&&this.state._pagination._on.onClick(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePage:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onChangePage)&&this.state._pagination._on.onChangePage(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:n}))},onChangePageSize:(t,n)=>{var i;"function"==typeof(null===(i=this.state._pagination._on)||void 0===i?void 0:i.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,n),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:n})),setState(this,"_pageSize",n)}},this.beforePatchPagination=(t,n,i,a)=>{"_pagination"===a&&(this.showPagination=!0===t||""===t||"object"==typeof t&&null!==t)},this.updateSortedData=()=>{let t=this.state._data;if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"NOS":t=[...this.state._data];break;case"ASC":t=this.sortFunction([...this.state._data]);break;default:t=this.sortFunction([...this.state._data]).reverse()}setState(this,"_sortedData",t)},this._caption=void 0,this._data=void 0,this._headers=void 0,this._minWidth=void 0,this._pagination=void 0,this.state={_caption:"",_data:[],_headers:{horizontal:[],vertical:[]},_pagination:{_page:1,_pageSize:10,_total:0},_sortedData:[]}}validateCaption(t){watchString(this,"_caption",t,{required:!0})}validateData(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{void 0===t&&(t=[]);try{t=parseJson(t)}catch(t){}Array.isArray(t)&&void 0===t.find((t=>!("object"==typeof t&&null!==t)))&&setState(this,"_data",t,{afterPatch:()=>{const t=setTimeout((()=>{clearTimeout(t),this.updateSortedData()}))}})}))}))}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var n;null===(n=t.horizontal)||void 0===n||n.forEach((t=>{t.forEach((t=>{"function"==typeof t.sort&&"string"==typeof t.sortDirection&&this.sortDirections.set(t.sort,t.sortDirection)}))}))}}})}))}))}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validatePagination(t){try{t=parseJson(t)}catch(t){}watchValidator(this,"_pagination",(()=>!0),new Set(["boolean","KoliBriTablePagination"]),t,{hooks:{beforePatch:this.beforePatchPagination}})}componentWillLoad(){this.validateCaption(this._caption),this.validateData(this._data),this.validateHeaders(this._headers),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination)}getNumberOfCols(t,n){let i=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var i;return n+=null!==(i=t.colSpan)&&void 0!==i?i:1})),i<n&&(i=n)})),0===i&&(i=n.length),i}getNumberOfRows(t,n){let i=0;return t.forEach((t=>{let n=0;t.forEach((t=>{var i;return n+=null!==(i=t.rowSpan)&&void 0!==i?i:1})),i<n&&(i=n)})),0===i&&(i=n.length),i}filterHeaderKeys(t){const n=[];return t.forEach((t=>{t.forEach((t=>{"string"==typeof t.key&&n.push(t)}))})),n}getPrimaryHeader(t){var n,i;let a=this.filterHeaderKeys(null!==(n=t.horizontal)&&void 0!==n?n:[]);return this.horizontal=!0,0===a.length&&(a=this.filterHeaderKeys(null!==(i=t.vertical)&&void 0!==i?i:[]),a.length>0&&(this.horizontal=!1)),a}createDataField(t,n){n.horizontal=Array.isArray(null==n?void 0:n.horizontal)?n.horizontal:[],n.vertical=Array.isArray(null==n?void 0:n.vertical)?n.vertical:[];const i=this.getPrimaryHeader(n),a=this.getNumberOfCols(n.horizontal,t),e=this.getNumberOfRows(n.vertical,t),o=[],r=[],s=[];n.vertical.forEach(((t,n)=>{r[n]=0,s[n]=[]}));for(let l=0;l<e;l++){const e=[];n.vertical.forEach(((t,n)=>{let i=0;if(s[n].forEach((t=>i+=t)),i<=l){const a=t[l-i+r[n]];if("object"==typeof a){e.push(Object.assign(Object.assign({},a),{asTd:!1,data:{}}));let t=1;if("number"==typeof a.rowSpan&&a.rowSpan>1&&(t=a.rowSpan),s[n].push(t),"number"==typeof a.colSpan&&a.colSpan>1)for(let i=1;i<a.colSpan;i++)s[n+i].push(t);r[n]++}}}));for(let n=0;n<a;n++)!0===this.horizontal?"object"==typeof i[n]&&null!==i[n]&&"string"==typeof i[n].key&&"object"==typeof t[l]&&null!==t[l]&&e.push(Object.assign(Object.assign({},i[n]),{colSpan:void 0,data:t[l],label:t[l][i[n].key],rowSpan:void 0})):"object"==typeof i[l]&&null!==i[l]&&"string"==typeof i[l].key&&"object"==typeof t[n]&&null!==t[n]&&e.push(Object.assign(Object.assign({},i[l]),{colSpan:void 0,data:t[n],label:t[n][i[l].key],rowSpan:void 0}));o.push(e)}if(0===t.length){let t=0,i=0;Array.isArray(n.horizontal)&&n.horizontal.length>0&&n.horizontal[0].forEach((n=>{t+=n.colSpan||1})),Array.isArray(n.vertical)&&n.vertical.length>0&&(t-=n.vertical.length,n.vertical[0].forEach((t=>{i+=t.rowSpan||1})));const a={label:"Es sind keine Einträge vorhanden.",colSpan:t,rowSpan:Math.max(i,1)};0===o.length?o.push([a]):o[0].push(a)}return o}selectDisplayedData(t,n,i){return"number"==typeof n&&n>0&&"number"==typeof i&&i>0?(this.pageStartSlice=n*(i-1),this.pageEndSlice=n*i>t.length?t.length:n*i,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}cellRender(t,n){const i=setTimeout((()=>{if(clearTimeout(i),"function"==typeof t.render&&n instanceof HTMLElement){const i=t.render(n,{asTd:t.asTd,label:t.label,textAlign:t.textAlign,width:t.width},t.data,this.state._data);"string"==typeof i&&(n.innerHTML=i)}}),50)}render(){var t,n;const i=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(n=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==n?n:10:this.state._sortedData.length,this.state._pagination._page||1),a=this.createDataField(i,this.state._headers);return getExperimalMode()&&console.log(this.state._caption,this.state._data,a),h(Host,null,h("div",{tabindex:"0"},h("table",{style:{minWidth:this.state._minWidth}},h("caption",null,this.state._caption),Array.isArray(this.state._headers.horizontal)&&h("thead",null,this.state._headers.horizontal.map((t=>h("tr",null,t.map((t=>!0===t.asTd?h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}):h("th",{scope:"number"==typeof t.colSpan&&t.colSpan>1?"colgroup":"col",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))))))))),h("tbody",null,a.map(((t,n)=>h("tr",{key:`row-${n}`},t.map((t=>!1===t.asTd?h("th",{scope:"number"==typeof t.rowSpan&&t.rowSpan>1?"rowgroup":"row",colSpan:t.colSpan,rowSpan:t.rowSpan,style:{width:t.width},"aria-sort":"function"==typeof t.sort?"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"none":"ASC"===this.sortDirections.get(t.sort)?"ascending":"descending":void 0},h("div",{class:"w-full flex gap-1 items-center"},h("div",{class:{"w-full":!0,[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},innerHTML:t.label,style:{textAlign:t.textAlign}}),"function"==typeof t.sort&&h("kol-button",{exportparts:"button,ghost",_ariaLabel:"Sortierung von "+t.label+" ändern",_icon:"NOS"===this.sortDirections.get(t.sort)||void 0===this.sortDirections.get(t.sort)?"fas fa-sort":"ASC"===this.sortDirections.get(t.sort)?"fas fa-sort-up":"fas fa-sort-down",_iconOnly:!0,_label:"Sortierung von "+t.label+" ändern",_on:{onClick:()=>{if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.sortDirections.set(this.sortFunction,"DESC");break;case"DESC":this.sortDirections.set(this.sortFunction,"NOS");break;default:this.sortDirections.set(this.sortFunction,"ASC")}this.updateSortedData()}}},_variant:"ghost"}))):h("td",{class:{[t.textAlign]:"string"==typeof t.textAlign&&t.textAlign.length>0},colSpan:t.colSpan,rowSpan:t.rowSpan,style:{textAlign:t.textAlign,width:t.width},ref:"function"==typeof t.render?n=>{this.cellRender(t,n)}:void 0,innerHTML:"function"!=typeof t.render?t.label:""}))))))))),this.pageEndSlice>0&&this.showPagination&&h("div",null,h("span",null,"Einträge ",this.pageEndSlice>0?this.pageStartSlice+1:0," bis ",this.pageEndSlice," von"," ",this.state._pagination._total||(Array.isArray(this.state._data)?this.state._data.length:0)," angezeigt"),h("div",null,h("kol-pagination",{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_total:this.state._pagination._total||this.state._data.length}))))}static get watchers(){return{_caption:["validateCaption"],_data:["validateData"],_headers:["validateHeaders"],_minWidth:["validateMinWidth"],_pagination:["validatePagination"]}}};KolTable.style={default:defaultStyleCss};export{KolTable as kol_table};