monobill-mintui 0.3.58 → 0.3.59
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.
|
@@ -138,6 +138,21 @@ declare class MintResourceTable extends HTMLElement {
|
|
|
138
138
|
private _attachTableEventListeners;
|
|
139
139
|
private _attachEventListeners;
|
|
140
140
|
private _escapeHtml;
|
|
141
|
+
/**
|
|
142
|
+
* Get the page number from URL query params for this table
|
|
143
|
+
* Returns null if not found or invalid
|
|
144
|
+
*/
|
|
145
|
+
private _getPageFromUrl;
|
|
146
|
+
/**
|
|
147
|
+
* Update URL query params with the current page number
|
|
148
|
+
* Preserves all other query params
|
|
149
|
+
*/
|
|
150
|
+
private _updatePageInUrl;
|
|
151
|
+
/**
|
|
152
|
+
* Load page number from URL query params and set it as the current page
|
|
153
|
+
* Called during initialization
|
|
154
|
+
*/
|
|
155
|
+
private _loadPageFromUrl;
|
|
141
156
|
}
|
|
142
157
|
export default MintResourceTable;
|
|
143
158
|
//# sourceMappingURL=ResourceTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceTable.d.ts","sourceRoot":"","sources":["../../../src/components/resource-table/ResourceTable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ResourceTable.d.ts","sourceRoot":"","sources":["../../../src/components/resource-table/ResourceTable.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -149,5 +149,5 @@
|
|
|
149
149
|
border: inherit;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
`,document.head.appendChild(t)}}customElements.get("mint-table")||customElements.define("mint-table",yt);class kt extends HTMLElement{constructor(){super(...arguments),this._root=null,this._textWrap=null,this._dismissBtn=null,this._clickHandler=null}static get observedAttributes(){return["dismissable"]}connectedCallback(){this._render()}disconnectedCallback(){this._dismissBtn&&this._clickHandler&&this._dismissBtn.removeEventListener("click",this._clickHandler)}attributeChangedCallback(){this._render()}_render(){var i;if(this.classList.add("inline-flex","items-center","gap-2","px-3","py-1","rounded-full","border","border-gray-200","dark:border-gray-700","bg-gray-100","dark:bg-gray-900","text-gray-900","dark:text-gray-100","text-sm","font-medium"),!this._root){for(this._root=document.createElement("div"),this._root.className="flex items-center gap-2 w-full",this._textWrap=document.createElement("span"),this._textWrap.className="inline-flex items-center min-w-[0.5rem]",this._textWrap.setAttribute("data-mt-chip-text","");this.firstChild;){const s=this.firstChild;if(s===this._root)break;this._textWrap.appendChild(s)}this._root.appendChild(this._textWrap),this.appendChild(this._root)}this.getAttribute("dismissable")==="true"?(this._dismissBtn||this._createDismissBtn(),this._dismissBtn&&!this._dismissBtn.isConnected&&((i=this._root)==null||i.appendChild(this._dismissBtn))):this._dismissBtn&&this._dismissBtn.parentElement===this._root&&this._dismissBtn.remove()}_createDismissBtn(){const t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Dismiss"),t.className=["shrink-0","inline-flex","items-center","justify-center","w-5","h-5","rounded-full","text-gray-500","dark:text-gray-300","hover:text-gray-700","dark:hover:text-gray-100","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-offset-1","focus-visible:ring-gray-400","dark:focus-visible:ring-gray-500","transition-colors","duration-150","border-none","bg-transparent","cursor-pointer"].join(" ");const e=document.createElement("mint-icon");e.setAttribute("name","close"),e.className="w-3 h-3",t.appendChild(e),this._clickHandler=i=>{i.stopPropagation(),this.dispatchEvent(new CustomEvent("dismissed",{bubbles:!0,composed:!0}))},t.addEventListener("click",this._clickHandler),this._dismissBtn=t}}customElements.get("mint-chip")||customElements.define("mint-chip",kt);class Et extends HTMLElement{constructor(){super(...arguments),this._container=null,this._chipsWrap=null,this._input=null,this._tags=[],this._placeholder="Add tag",this._dragIndex=null,this._dragChip=null,this._isPointerDragging=!1,this._pointerMoveHandler=null,this._pointerUpHandler=null}static get observedAttributes(){return["tags","placeholder","sortable","label","info","error","error-message","name","id","required","loading"]}connectedCallback(){this._parseAttrs(),this._render(),this._pointerMoveHandler||(this._pointerMoveHandler=t=>this._onPointerMove(t),window.addEventListener("pointermove",this._pointerMoveHandler)),this._pointerUpHandler||(this._pointerUpHandler=t=>this._onPointerUp(t),window.addEventListener("pointerup",this._pointerUpHandler),window.addEventListener("pointercancel",this._pointerUpHandler))}attributeChangedCallback(t,e,i){if(e!==i){if(t==="error"||t==="error-message"){if(this._renderErrorState(),this._container){const s=this.hasError(),n=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1.5","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-900","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=n.join(" ")}return}if(t==="loading"){this._parseAttrs(),this._render();return}this._parseAttrs(),this._render()}}set tags(t){this._tags=Array.isArray(t)?[...t]:[],this._syncAttr(),this._render()}get tags(){return[...this._tags]}_parseAttrs(){const t=this.getAttribute("tags");if(!t)return;try{const i=JSON.parse(t);Array.isArray(i)&&(this._tags=i)}catch(i){console.warn("mint-tags: failed to parse tags attribute",i)}const e=this.getAttribute("placeholder");e!==null&&(this._placeholder=e)}_syncAttr(){this.setAttribute("tags",JSON.stringify(this._tags))}getLabel(){return this.getAttribute("label")||""}getInfo(){return this.getAttribute("info")||""}hasError(){return this.getAttribute("error")==="true"}getErrorMessage(){return this.getAttribute("error-message")||""}getName(){return this.getAttribute("name")||""}getId(){return this.getAttribute("id")||""}isRequired(){return this.getAttribute("required")==="true"}isLoading(){return this.hasAttribute("loading")}_render(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block","w-full");const t=this.isLoading(),e=this.getLabel(),i=this.getInfo(),s=this.hasError(),n=this.getId()||`mint-tags-${Math.random().toString(36).substr(2,9)}`;if(this.getId()||this.setAttribute("id",n),this._container)this._input&&(this._input.placeholder=this._placeholder);else{this._container=document.createElement("div");const o=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-800","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=o.join(" "),this._chipsWrap=document.createElement("div"),this._chipsWrap.className="flex flex-wrap items-center gap-2",this._chipsWrap.addEventListener("dragover",c=>{this.hasAttribute("sortable")&&c.preventDefault()}),this._chipsWrap.addEventListener("drop",c=>{this.hasAttribute("sortable")&&c.preventDefault()}),this._input=document.createElement("input"),this._input.type="text",this._input.placeholder=this._placeholder,this._input.className=["min-w-[6rem]","flex-1","bg-transparent","border-none","outline-none","text-sm","text-gray-900","dark:text-gray-100","placeholder:text-gray-400","dark:placeholder:text-gray-500","p-1.5"].join(" "),this._input.addEventListener("keydown",c=>{c.key==="Enter"&&(c.preventDefault(),this._addFromInput())}),this._container.appendChild(this._chipsWrap),this.appendChild(this._container)}if(this._container){const o=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-800","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=o.join(" ")}let r=this.querySelector(".mint-tags-label-container");if(e){r||(r=document.createElement("div"),r.className="mint-tags-label-container mb-[.25rem]",this._container&&this._container.parentElement===this?this.insertBefore(r,this._container):this.insertBefore(r,this.firstChild));let o=r.querySelector(".mint-tags-label");e?(o||(o=document.createElement("label"),o.className="mint-tags-label text-sm font-medium text-gray-900 dark:text-gray-100 select-none",r.appendChild(o)),o.textContent=e,o.setAttribute("for",n)):o&&o.remove()}else r&&r.remove();let a=this.querySelector(".mint-tags-info");i?(a||(a=document.createElement("span"),a.className="mint-tags-info text-xs text-gray-500 dark:text-gray-400 select-none mt-1 block",this._container&&this._container.parentElement===this?this.insertBefore(a,this._container.nextSibling):this.appendChild(a)),a.textContent=i):a&&a.remove();const l=this.getName();l?(this.setAttribute("name",l),this._input&&(this._input.name=l,this._input.id=n)):(this.removeAttribute("name"),this._input&&(this._input.removeAttribute("name"),this._input.id=n)),this._wireInputBackspace(),this._renderChips(),this._renderErrorState(),this._renderSkeleton(t)}_renderSkeleton(t){const e=this._container;if(!e)return;e.classList.contains("relative")||e.classList.add("relative");let i=e.querySelector(".mint-tags-skeleton");t?(i||(i=document.createElement("div"),i.className="mint-tags-skeleton absolute inset-0 z-10 pointer-events-none rounded-lg bg-gray-200 dark:bg-gray-700 animate-pulse",e.appendChild(i)),i.style.display="block",this._chipsWrap&&(this._chipsWrap.style.visibility="hidden",this._chipsWrap.style.pointerEvents="none"),this._input&&(this._input.style.visibility="hidden",this._input.style.pointerEvents="none")):(i&&(i.style.display="none"),this._chipsWrap&&(this._chipsWrap.style.visibility="visible",this._chipsWrap.style.pointerEvents="auto"),this._input&&(this._input.style.visibility="visible",this._input.style.pointerEvents="auto"))}_renderErrorState(){const t=this.hasError(),e=this.getErrorMessage();let i=this.querySelector(".mint-tags-error");t&&e?(i||(i=document.createElement("div"),i.className="mint-tags-error mt-1 text-xs text-red-600 dark:text-red-400",this.appendChild(i)),i.textContent=e):i&&i.remove()}_renderChips(){if(!this._chipsWrap)return;this._chipsWrap.innerHTML="";let t=0;this._tags.forEach(e=>{const i=document.createElement("mint-chip");i.dataset.index=String(t++),i.dataset.value=e.value,i.draggable=this.hasAttribute("sortable"),i.draggable&&i.classList.add("cursor-move"),e.dismissable&&(i.setAttribute("dismissable","true"),i.addEventListener("dismissed",()=>this._removeTag(e.value))),this._chipsWrap.appendChild(i);const s=i.querySelector("[data-mt-chip-text]");s&&(s.textContent=e.label||e.value),this._setupChipEvents(i,e),i.draggable&&(i.addEventListener("dragstart",n=>this._onDragStart(n,i)),i.addEventListener("dragover",n=>this._onDragOverChip(n,i)),i.addEventListener("drop",n=>this._onDrop(n)),i.addEventListener("dragend",()=>this._onDragEnd())),this.hasAttribute("sortable")&&i.addEventListener("pointerdown",n=>this._onPointerDown(n,i))}),this._input&&(this.hasAttribute("sortable")&&(this._input.addEventListener("dragover",e=>this._onDragOverInput(e)),this._input.addEventListener("drop",e=>this._onDrop(e)),this._input.addEventListener("dragend",()=>this._onDragEnd())),this._chipsWrap.appendChild(this._input))}_addFromInput(){if(!this._input)return;const t=this._input.value.trim();if(!t)return;if(this._tags.some(i=>i.value.toLowerCase()===t.toLowerCase())){this._input.value="";return}this._tags.push({value:t,label:t,dismissable:!0}),this._syncAttr(),this._renderChips(),this._emitChange(),this._input.value="",setTimeout(()=>{var i;(i=this._input)==null||i.focus()},10)}_removeTag(t){this._tags=this._tags.filter(e=>e.value!==t),this._syncAttr(),this._renderChips(),this._emitChange()}_emitChange(){this.dispatchEvent(new CustomEvent("tags-change",{bubbles:!0,composed:!0,detail:{tags:this.tags}}))}_focusLastChip(){var e;const t=(e=this._chipsWrap)==null?void 0:e.querySelectorAll("mint-chip");t&&t.length>0&&t[t.length-1].focus({preventScroll:!0})}_focusInput(){setTimeout(()=>{var t;(t=this._input)==null||t.focus({preventScroll:!0})},10)}_wireInputBackspace(){this._input&&this._input.addEventListener("keydown",t=>{var e;t.key==="Backspace"&&((e=this._input)==null?void 0:e.value)===""&&(t.preventDefault(),this._focusLastChip())})}_setupChipEvents(t,e){t.tabIndex=0,t.addEventListener("keydown",i=>{(i.key==="Backspace"||i.key==="Delete")&&e.dismissable&&(i.preventDefault(),this._removeTag(e.value),this._focusInput())})}_onDragStart(t,e){var i;this.hasAttribute("sortable")&&(this._dragChip=e,this._dragIndex=Number(e.dataset.index),(i=t.dataTransfer)==null||i.setData("text/plain",e.dataset.index||""),t.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.dropEffect="move"),e.classList.add("opacity-60"))}_reorderTags(t,e){if(t<0||e<0||t>=this._tags.length||e>=this._tags.length)return;const i=[...this._tags],[s]=i.splice(t,1);i.splice(e,0,s),this._tags=i,this._syncAttr(),this._renderChips(),this._emitChange()}_onDragOverInput(t){this.hasAttribute("sortable")&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),this._dragChip&&this._chipsWrap&&this._input&&this._chipsWrap.insertBefore(this._dragChip,this._input))}_onDragOverChip(t,e){if(!this.hasAttribute("sortable")||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),!this._dragChip||!this._chipsWrap)||e===this._dragChip)return;const i=e.getBoundingClientRect(),s=t.clientX,n=i.left+i.width*.5;if(s<n){if(this._dragChip.nextSibling===e)return;this._chipsWrap.insertBefore(this._dragChip,e)}else{if(e.nextSibling===this._dragChip)return;const r=e.nextSibling;r?this._chipsWrap.insertBefore(this._dragChip,r):this._chipsWrap.appendChild(this._dragChip)}}_onDrop(t){this.hasAttribute("sortable")&&t.preventDefault()}_onDragEnd(){this._dragChip&&this._dragChip.classList.remove("opacity-60"),this._syncOrderFromDom(),this._dragChip=null,this._dragIndex=null}_syncOrderFromDom(){if(!this._chipsWrap)return;const t=Array.from(this._chipsWrap.querySelectorAll("mint-chip"));if(t.length===0)return;const e=[];t.forEach(i=>{const s=i.dataset.value;if(!s)return;const n=this._tags.find(r=>r.value===s);n&&e.push(n)}),e.length===this._tags.length&&(this._tags=e,this._syncAttr(),this._renderChips(),this._emitChange())}_onPointerDown(t,e){if(this.hasAttribute("sortable")&&t.pointerType!=="mouse"){this._isPointerDragging=!0,this._dragChip=e,this._dragIndex=Number(e.dataset.index);try{e.setPointerCapture(t.pointerId)}catch{}e.classList.add("opacity-60","select-none"),t.preventDefault()}}_onPointerMove(t){if(!this._isPointerDragging||!this._dragChip||!this._chipsWrap||t.pointerType==="mouse")return;const e=document.elementFromPoint(t.clientX,t.clientY);if(!e)return;const i=e.closest("mint-chip");if(i&&i!==this._dragChip){const s=i.getBoundingClientRect(),n=t.clientX,r=s.left+s.width*.5;if(n<r)this._dragChip.nextSibling!==i&&this._chipsWrap.insertBefore(this._dragChip,i);else if(i.nextSibling!==this._dragChip){const a=i.nextSibling;a?this._chipsWrap.insertBefore(this._dragChip,a):this._chipsWrap.appendChild(this._dragChip)}return}this._input&&e.closest("input")===this._input&&this._chipsWrap.insertBefore(this._dragChip,this._input)}_onPointerUp(t){if(this._isPointerDragging){if(this._isPointerDragging=!1,this._dragChip){try{this._dragChip.releasePointerCapture(t.pointerId)}catch{}this._dragChip.classList.remove("opacity-60","select-none")}this._syncOrderFromDom(),this._dragChip=null,this._dragIndex=null}}}customElements.get("mint-tags")||customElements.define("mint-tags",Et);class xt extends HTMLElement{constructor(){super(...arguments),this._clickHandler=null,this._keydownHandler=null}connectedCallback(){this._render(),this._setupEventListeners()}disconnectedCallback(){this._cleanupEventListeners()}_render(){this.classList.add("transition-colors","duration-200","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-offset-1","focus-visible:ring-gray-400","dark:focus-visible:ring-gray-500","rounded"),this.getAttribute("disabled")==="true"?this.classList.add("cursor-not-allowed","opacity-50"):this.classList.add("cursor-pointer"),this.getAttribute("role")||this.setAttribute("role","button"),this.getAttribute("tabindex")||this.setAttribute("tabindex","0")}_setupEventListeners(){this._clickHandler=t=>{if(this.getAttribute("disabled")==="true"){t.preventDefault(),t.stopPropagation();return}this._handleClick(t)},this._keydownHandler=t=>{if(t.key==="Enter"||t.key===" "){if(this.getAttribute("disabled")==="true"){t.preventDefault(),t.stopPropagation();return}t.preventDefault(),this._handleClick(t)}},this.addEventListener("click",this._clickHandler),this.addEventListener("keydown",this._keydownHandler)}_cleanupEventListeners(){this._clickHandler&&(this.removeEventListener("click",this._clickHandler),this._clickHandler=null),this._keydownHandler&&(this.removeEventListener("keydown",this._keydownHandler),this._keydownHandler=null)}_handleClick(t){this.dispatchEvent(new CustomEvent("clickable-click",{bubbles:!0,composed:!0,detail:{originalEvent:t}}))}static get observedAttributes(){return["disabled"]}attributeChangedCallback(t,e,i){t==="disabled"&&(i==="true"?(this.classList.remove("cursor-pointer"),this.classList.add("opacity-50","cursor-not-allowed"),this.setAttribute("aria-disabled","true")):(this.classList.remove("opacity-50","cursor-not-allowed"),this.classList.add("cursor-pointer"),this.removeAttribute("aria-disabled")))}}customElements.get("mint-clickable")||customElements.define("mint-clickable",xt);class Ct extends HTMLElement{constructor(){super(),this._headingElement=null,this._iconElement=null,this._dismissButton=null,this._headerWrapper=null,this._bodyWrapper=null,this._dismissHandler=null}static get observedAttributes(){return["heading","dismissable","tone"]}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block"),this.render()}disconnectedCallback(){this._dismissButton&&this._dismissHandler&&this._dismissButton.removeEventListener("click",this._dismissHandler)}attributeChangedCallback(t,e,i){e!==i&&this.render()}getHeading(){return this.getAttribute("heading")||""}getTone(){const t=this.getAttribute("tone");return t==="info"||t==="success"||t==="warning"||t==="danger"?t:"info"}isDismissable(){return this.getAttribute("dismissable")==="true"}getIconName(){switch(this.getTone()){case"info":return"info";case"success":return"success";case"warning":return"warning";case"danger":return"error";default:return"info"}}getIconColorClasses(){switch(this.getTone()){case"info":return"text-blue-600 dark:text-blue-400";case"success":return"text-green-600 dark:text-green-400";case"warning":return"text-yellow-600 dark:text-yellow-400";case"danger":return"text-red-600 dark:text-red-400";default:return"text-blue-600 dark:text-blue-400"}}getHeadingColorClasses(){return"text-gray-900 dark:text-gray-100"}getHeaderBackgroundClasses(){switch(this.getTone()){case"info":return"bg-blue-100 dark:bg-blue-900/30";case"success":return"bg-green-100 dark:bg-green-900/30";case"warning":return"bg-yellow-100 dark:bg-yellow-900/30";case"danger":return"bg-red-100 dark:bg-red-900/30";default:return"bg-blue-100 dark:bg-blue-900/30"}}getBorderClasses(){switch(this.getTone()){case"info":return"border-blue-200 dark:border-blue-800";case"success":return"border-green-200 dark:border-green-800";case"warning":return"border-yellow-200 dark:border-yellow-800";case"danger":return"border-red-200 dark:border-red-800";default:return"border-blue-200 dark:border-blue-800"}}getAriaLive(){return this.getTone()==="danger"?"assertive":"polite"}render(){const t=this.getTone(),e=this.getHeading(),i=this.isDismissable();this.className=`box-border m-0 p-0 border-0 align-baseline block rounded-lg border shadow-sm overflow-hidden transition-colors duration-200 ${this.getBorderClasses()}`;const s=this.getAriaLive();this.setAttribute("role","alert"),this.setAttribute("aria-live",s),t==="danger"?this.setAttribute("aria-atomic","true"):this.removeAttribute("aria-atomic");const n=[];for(this._bodyWrapper?Array.from(this._bodyWrapper.childNodes).forEach(a=>{n.push(a)}):Array.from(this.childNodes).forEach(r=>{r!==this._headerWrapper&&r!==this._bodyWrapper&&r!==this._iconElement&&r!==this._headingElement&&r!==this._dismissButton&&n.push(r)}),this._dismissButton&&this._dismissHandler&&this._dismissButton.removeEventListener("click",this._dismissHandler);this.firstChild;)this.removeChild(this.firstChild);if(this._headerWrapper=null,this._bodyWrapper=null,this._iconElement=null,this._headingElement=null,this._dismissButton=null,this._headerWrapper=document.createElement("div"),this._headerWrapper.className=`px-4 py-3 flex items-center gap-3 ${this.getHeaderBackgroundClasses()}`,this._iconElement=document.createElement("mint-icon"),this._iconElement.setAttribute("name",this.getIconName()),this._iconElement.className=`flex-shrink-0 w-5 h-5 ${this.getIconColorClasses()}`,this._headerWrapper.appendChild(this._iconElement),this._headingElement=document.createElement("mint-text"),this._headingElement.className=`font-semibold flex-1 ${this.getHeadingColorClasses()}`,this._headingElement.textContent=e||"",this._headerWrapper.appendChild(this._headingElement),i){this._dismissButton=document.createElement("button"),this._dismissButton.className="flex-shrink-0 p-1 rounded hover:bg-black/10 dark:hover:bg-white/10 transition-colors",this._dismissButton.setAttribute("aria-label","Dismiss alert"),this._dismissButton.setAttribute("type","button");const r=document.createElement("mint-icon");r.setAttribute("name","close"),r.className="w-4 h-4 text-gray-700 dark:text-gray-300",this._dismissButton.appendChild(r),this._dismissHandler=a=>{a.preventDefault(),a.stopPropagation(),this.dispatchEvent(new CustomEvent("dismissed",{bubbles:!0,composed:!0})),this.remove()},this._dismissButton.addEventListener("click",this._dismissHandler),this._headerWrapper.appendChild(this._dismissButton)}this._bodyWrapper=document.createElement("div"),this._bodyWrapper.className="px-4 py-3 bg-white dark:bg-gray-900",n.forEach(r=>{this._bodyWrapper.appendChild(r)}),this.appendChild(this._headerWrapper),this.appendChild(this._bodyWrapper)}}customElements.get("mint-alert")||customElements.define("mint-alert",Ct);class wt extends HTMLElement{constructor(){super(),this._configuration=null,this._rows=[],this._search="",this._currentPage=1,this._perPage=15,this._totalRows=0,this._lastPage=0,this._offset=0,this._rowsToShow=15,this._loaded=!1,this._fetching=!1,this._loading=!1,this._fetchError=null,this._searching=!1,this._sorting=!1,this._sortingColumn=null,this._type="provided",this._searchTimeoutId=null,this._sortTimeoutId=null,this._searchColumns=[],this._exportColumns={},this._columns=[],this._tableId="",this._searchInput=null,this._tableContainer=null,this._paginationContainer=null,this._skeletonContainer=null,this._inMintCard=!1}static get observedAttributes(){return["configuration"]}get inMintCard(){return this._inMintCard}get configuration(){return this._configuration}set configuration(t){t&&typeof t=="object"&&!Array.isArray(t)?(this._configuration=t,this._tableId=this._configuration.id||`mint-resource-table-${Date.now()}`,this._perPage=this._configuration.perPage||15,this._rowsToShow=this._perPage,this._type=typeof this._configuration.data=="string"?"ajax":"provided",this._loaded=!1,this._currentPage=1,this._offset=0,this._type==="provided"&&Array.isArray(this._configuration.data)&&(this._rows=[...this._configuration.data],this._totalRows=this._configuration.data.length),this._initializeColumns(),this._loadColumnVisibility(),this.isConnected&&this.render()):t==null?this._configuration=null:this._parseConfiguration()}connectedCallback(){var t,e;this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block","w-full"),this._inMintCard=((e=(t=this.parentElement)==null?void 0:t.tagName)==null?void 0:e.toLowerCase())==="mint-card",this._configuration||this._parseConfiguration(),this._initializeColumns(),this._loadColumnVisibility(),this._attachRowClickHandler(),this.render()}disconnectedCallback(){this._searchTimeoutId&&clearTimeout(this._searchTimeoutId),this._rowClickHandler&&(this.removeEventListener("click",this._rowClickHandler,!0),this._rowClickHandler=null),this._scrollHandler&&(window.removeEventListener("scroll",this._scrollHandler),this._scrollHandler=null)}attributeChangedCallback(t,e,i){t==="configuration"&&e!==i&&(!this._configuration||typeof i=="string")&&(this._parseConfiguration(),this.render())}refresh(){this._configuration&&(this._type==="ajax"?this._configuration.loadMore?(this._offset=0,this._currentPage=1,this._rowsToShow=this._perPage,this._rows=[],this._fetchData(void 0,!0,this._perPage,0)):this._fetchData(void 0,!0,this._perPage,this._offset):this.render())}_parseConfiguration(){const t=this.getAttribute("configuration");if(!t){console.error("mint-resource-table: configuration attribute is required");return}try{this._configuration=JSON.parse(t),this._tableId=this._configuration.id||`mint-resource-table-${Date.now()}`,this._perPage=this._configuration.perPage||15,this._rowsToShow=this._perPage,this._type=typeof this._configuration.data=="string"?"ajax":"provided",this._loaded=!1,this._currentPage=1,this._offset=0,this._type==="provided"&&Array.isArray(this._configuration.data)&&(this._rows=[...this._configuration.data],this._totalRows=this._configuration.data.length),this._initializeColumns(),this._loadColumnVisibility()}catch(e){console.error("mint-resource-table: Invalid configuration JSON",e)}}_getColumnVisibilityStorageKey(){return`mrtc-${this._tableId}`}_saveColumnVisibility(){if(!this._configuration)return;const t={};this._configuration.columns.forEach((e,i)=>{t[i]=e.hidden||!1});try{localStorage.setItem(this._getColumnVisibilityStorageKey(),JSON.stringify(t))}catch(e){console.warn("Failed to save column visibility to localStorage:",e)}}_loadColumnVisibility(){if(this._configuration)try{const t=localStorage.getItem(this._getColumnVisibilityStorageKey());if(t){const e=JSON.parse(t);this._configuration.columns.forEach((i,s)=>{e[s]!==void 0&&(i.hidden=e[s])})}}catch(t){console.warn("Failed to load column visibility from localStorage:",t)}}_initializeColumns(){this._configuration&&(this._searchColumns=[],this._exportColumns={},this._columns=[],this._configuration.columns.forEach(t=>{t.searchable&&t.data&&this._searchColumns.push(t.data),t.export&&t.data&&(this._exportColumns[t.data]=t.label),t.data&&this._columns.push(t.data)}),this._configuration.sortBy||(this._configuration.sortBy="id"),this._configuration.sort||(this._configuration.sort="asc"))}async _fetchData(t,e=!0,i,s){var l,o,c,h,p,d,f,u;if(!this._configuration)return;const n=t||(typeof this._configuration.data=="string"?this._configuration.data:null);if(!n||this._fetching||this._loading)return;e&&(this._fetching=!0,this.render()),this._loading=!0;const r=i||this._perPage,a=s!==void 0?s:this._offset;try{const m=new URLSearchParams({perPage:r.toString(),offset:a.toString(),search:this._search,sortBy:this._configuration.sortBy||"id",sort:this._configuration.sort||"asc",searchColumns:this._searchColumns.join(","),columns:this._columns.join(",")}),g={};this._configuration.headers&&(g.headers=this._configuration.headers);const _=await fetch(`${n}?${m.toString()}`,g);if(!_.ok)throw new Error(`HTTP error! status: ${_.status}`);const v=await _.json(),b=((l=v.content)==null?void 0:l.rows)||[],k=((o=v.content)==null?void 0:o.total)||0;if(this._configuration.loadMore&&a!==0)this._rows=this._rows.concat(b);else{let C=b;this._configuration.predefinedData?(C=[...this._configuration.predefinedData,...b],this._totalRows=k+this._configuration.predefinedData.length):this._totalRows=k,this._rows=C}const A=Math.floor(a/r)+1;this._configuration.loadMore||(((c=v.content)==null?void 0:c.current_page)!==void 0&&v.content.current_page===A?this._currentPage=v.content.current_page:this._currentPage=A,this._offset=(this._currentPage-1)*r),this._lastPage=((h=v.content)==null?void 0:h.last_page)||1,this._fetching=!1,this._loaded=!0,this._loading=!1,this._fetchError=null,this._searching=!1;const E=this._sorting;if(E&&this._updateSortIcons(),this._sorting=!1,this._sortingColumn=null,E&&this._updateSortIcons(),this.dispatchEvent(new CustomEvent("loaded",{detail:{rows:this._rows}})),this._updateSearchIcon(),(d=(p=this.querySelector(`#${this._tableId}`))==null?void 0:p.closest("table"))==null?void 0:d.querySelector("tbody")){if(E){const C=this._loading,S=this._fetching;this._loading=!1,this._fetching=!1,this._updateTableBody(),this._loading=C,this._fetching=S}else this._updateTableBody();this._updatePagination()}else this.render()}catch(m){this._fetching=!1,this._loading=!1,this._loaded=!0,this._searching=!1,this._fetchError=m instanceof Error?m.message:"Failed to fetch data",console.error("mint-resource-table: Error fetching data",m),this._updateSearchIcon(),((u=(f=this.querySelector(`#${this._tableId}`))==null?void 0:f.closest("table"))==null?void 0:u.querySelector("tbody"))?(this._updateTableBody(),this._updatePagination()):this.render()}}_getRows(){if(!this._configuration)return[];if(this._type==="ajax")return this._rows;let t=[...this._rows];const e=this._configuration.sortBy||"id",i=this._configuration.sort||"asc";if(this._search){const s=this._search.toLowerCase().trim().split(/\s+/);t=t.filter(n=>{const r=Object.values(n).map(a=>String(a).toLowerCase()).join(" ");return s.every(a=>r.includes(a))})}if(t.sort((s,n)=>{const r=s[e],a=n[e];if(r==null&&a==null)return 0;if(r==null)return 1;if(a==null)return-1;const l=typeof r=="number"?r:typeof r=="string"&&!isNaN(Number(r))&&r.trim()!==""?Number(r):null,o=typeof a=="number"?a:typeof a=="string"&&!isNaN(Number(a))&&a.trim()!==""?Number(a):null;if(l!==null&&o!==null){const d=l-o;return i==="asc"?d:-d}const c=r instanceof Date?r:typeof r=="string"?new Date(r):null,h=a instanceof Date?a:typeof a=="string"?new Date(a):null;if(c&&h&&!isNaN(c.getTime())&&!isNaN(h.getTime())){const d=c.getTime()-h.getTime();return i==="asc"?d:-d}const p=String(r).localeCompare(String(a),void 0,{numeric:!0,sensitivity:"base"});return i==="asc"?p:-p}),this._perPage){const s=Math.ceil(t.length/this._perPage);this._lastPage=s,t.forEach((n,r)=>{n.page=Math.ceil((r+1)/this._perPage)}),this._currentPage>s&&s>0&&(this._currentPage=s)}return this._configuration.loadMore?t.slice(0,this._rowsToShow):t.filter(s=>!this._perPage||s.page===this._currentPage)}_toggleSort(t){var i;if(!this._configuration||!t.data||!t.sortable)return;const e=t.data;if(this._sortTimeoutId!==null&&(clearTimeout(this._sortTimeoutId),this._sortTimeoutId=null),this._sorting=!0,this._sortingColumn=t,this._updateSortIcons(),this._type==="ajax")this._sortTimeoutId=window.setTimeout(()=>{var n;if(this._sortTimeoutId=null,!this._configuration||!e||!t.sortable)return;let s=this._configuration.sort||"asc";((n=this._configuration.sortBy)==null?void 0:n.toLowerCase())===e.toLowerCase()&&(s=s==="desc"?"asc":"desc"),this._configuration.sort=s,this._configuration.sortBy=e,this._updateSortIcons(),this._offset=0,this._currentPage=1,this._configuration.loadMore&&(this._rowsToShow=this._perPage),this._fetching=!1,this._loading=!1,this._configuration.loadMore?this._fetchData(void 0,!1,this._perPage,0):this._fetchData(void 0,!1,this._perPage,0)},10);else{let s=this._configuration.sort||"asc";((i=this._configuration.sortBy)==null?void 0:i.toLowerCase())===e.toLowerCase()&&(s=s==="desc"?"asc":"desc"),this._configuration.sort=s,this._configuration.sortBy=e,this._currentPage=1,this._sorting=!1,this._sortingColumn=null,this._updateSortIcons(),this.render()}}_getSortClass(t){var e,i,s,n,r;return this._sorting&&this._sortingColumn===t?"spinner":((i=(e=this._configuration)==null?void 0:e.sortBy)==null?void 0:i.toLowerCase())===((s=t.data)==null?void 0:s.toLowerCase())?((r=(n=this._configuration)==null?void 0:n.sort)==null?void 0:r.toLowerCase())==="desc"?"caret-down":"caret-up":""}_updateSortIcons(){this._configuration&&this._configuration.columns.forEach((t,e)=>{if(!t.sortable||t.hidden)return;const i=this.querySelector(`th[data-column-key="${e}"]`);if(!i)return;const s=i.querySelector(".ml-2.flex.items-center");if(!s)return;const n=s.querySelector("mint-icon"),r=s.querySelector("mint-spinner"),a=this._getSortClass(t);if(a==="spinner"){if(n&&n.remove(),!r){const l=document.createElement("mint-spinner");l.className="w-4 h-4",s.appendChild(l)}}else if(r&&r.remove(),n)n.setAttribute("name",a),n.className=`w-4 h-4 ${a==="sort-arrows"?"text-gray-400":""}`;else{const l=document.createElement("mint-icon");l.setAttribute("name",a),l.className=`w-4 h-4 ${a==="sort-arrows"?"text-gray-400":""}`,s.appendChild(l)}})}_showFetchingState(){}_triggerSearch(){this._searchTimeoutId&&clearTimeout(this._searchTimeoutId),this._searching=!0,this._type==="ajax"&&this._updateSearchIcon(),this._type!=="ajax"&&(this._currentPage=1),this._updateTableBody(),this._type!=="ajax"&&this._updatePagination(),this._searchTimeoutId=window.setTimeout(()=>{this._type==="ajax"?(this._offset=0,this._fetchData(void 0,!1,this._perPage,0)):this._searching=!1},400)}_updateSearchIcon(){const t=this.querySelector(`#search-${this._tableId}`);if(!t)return;const e=this._type==="ajax"&&(this._searching||this._fetching);setTimeout(()=>{const i=t.querySelector(".relative")||t.querySelector("div");if(!i)return;const s=i.querySelector("mint-icon"),n=i.querySelector("mint-spinner");if(e){if(s&&!n){const r=document.createElement("mint-spinner");r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 pointer-events-none",s.replaceWith(r)}else if(!s&&!n){const r=document.createElement("mint-spinner");r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 pointer-events-none",i.appendChild(r)}}else if(n){t.getAttribute("icon")||t.setAttribute("icon","search");const r=document.createElement("mint-icon");r.setAttribute("name","search"),r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400 dark:text-gray-500 pointer-events-none",n.replaceWith(r)}},0)}_updateTableBody(){var a,l;if(!this._configuration)return;const t=this._getRows(),e=(l=(a=this.querySelector(`#${this._tableId}`))==null?void 0:a.closest("table"))==null?void 0:l.querySelector("tbody");if(!e){this.render();return}const i=this.querySelector(`#search-${this._tableId}`),s=document.activeElement===i||(i==null?void 0:i.querySelector("input"))===document.activeElement,n=this._search;let r="";if(!((this._fetching||this._loading)&&!this._sorting)&&(t.forEach((o,c)=>{const h=typeof this._configuration.onRowClick=="function",p=h?"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors":"";r+=`<tr data-row-index="${c}" ${h?'data-row-clickable="true"':""}${p?` class="${p}"`:""}>`,this._configuration.columns.forEach((d,f)=>{if(d.hidden)return;const u=!d.show||d.show(this,o);if(r+=`<td style="${this._getStyle(d)}" class="${this._getClasses(d,!0)}">`,u)if(d.raw)if(d.action)(!d.action.show||d.action.show(this,o))&&(r+=`<mint-button variant="solid" data-action="column-action" data-row-index="${c}" data-column-key="${this._configuration.columns.indexOf(d)}">${d.action.label}</mint-button>`);else if(d.actions)if(d.actionStyle!=="buttons"){const m=`actions-popover-${this._tableId}-${c}`,g=`actions-button-${this._tableId}-${c}`;r+=`<mint-button id="${g}" variant="link" icon="ellipsis">`,r+="</mint-button>",r+=`<mint-popover id="${m}" trigger-id="${g}" direction="down">`,d.actions.forEach((_,v)=>{if(!_.show||_.show(this,o)){const b=typeof _.label=="function"?_.label(this,o):_.label;r+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${c}" data-action-index="${v}" data-column-key="${this._configuration.columns.indexOf(d)}">${b}</div>`}}),r+="</mint-popover>"}else d.actions.forEach((m,g)=>{if(!m.show||m.show(this,o)){const _=m.label?typeof m.label=="function"?m.label(this,o):m.label:"",v=m.icon?` icon="${this._escapeHtml(m.icon)}"`:"",b=m.tone?` tone="${this._escapeHtml(m.tone)}"`:"";r+=`<mint-button variant="link" class="${m.classes||""}" data-action="row-action" data-row-index="${c}" data-action-index="${g}" data-column-key="${this._configuration.columns.indexOf(d)}"${v}${b}>`,_&&(r+=this._escapeHtml(String(_))),r+="</mint-button>"}});else typeof d.format=="function"?r+=d.format(this,o):d.data&&(r+=this._escapeHtml(String(o[d.data]||"")));else if(d.action){if(!d.action.show||d.action.show(this,o)){const m=typeof d.action.label=="function"?d.action.label(this,o):d.action.label;r+=`<mint-button variant="solid" data-action="column-action" data-row-index="${c}" data-column-key="${this._configuration.columns.indexOf(d)}">${this._escapeHtml(String(m))}</mint-button>`}}else if(d.actions)if(d.actionStyle!=="buttons"){const m=`actions-popover-${this._tableId}-${c}`,g=`actions-button-${this._tableId}-${c}`;r+=`<mint-button id="${g}" variant="link" icon="ellipsis">`,r+="</mint-button>",r+=`<mint-popover id="${m}" trigger-id="${g}" direction="down">`,d.actions.forEach((_,v)=>{if(!_.show||_.show(this,o)){const b=typeof _.label=="function"?_.label(this,o):_.label;r+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${c}" data-action-index="${v}" data-column-key="${this._configuration.columns.indexOf(d)}">${b}</div>`}}),r+="</mint-popover>"}else d.actions.forEach((m,g)=>{if(!m.show||m.show(this,o)){const _=m.label?typeof m.label=="function"?m.label(this,o):m.label:"",v=m.icon?` icon="${this._escapeHtml(m.icon)}"`:"",b=m.tone?` tone="${this._escapeHtml(m.tone)}"`:"";r+=`<mint-button variant="link" class="${m.classes||""}" data-action="row-action" data-row-index="${c}" data-action-index="${g}" data-column-key="${this._configuration.columns.indexOf(d)}"${v}${b}>`,_&&(r+=this._escapeHtml(String(_))),r+="</mint-button>"}});else typeof d.format=="function"?r+=this._escapeHtml(d.format(this,o)):d.data&&(r+=this._escapeHtml(String(o[d.data]||"")));r+="</td>"}),r+="</tr>"}),t.length===0&&(this._fetchError?r+=`<tr><td colspan="${this._configuration.columns.filter(o=>!o.hidden).length}" class="text-center py-8 text-red-500 dark:text-red-400">Failed to load data: ${this._escapeHtml(this._fetchError)}</td></tr>`:r+=`<tr><td colspan="${this._configuration.columns.filter(o=>!o.hidden).length}" class="text-center py-8">No records found.</td></tr>`),e.innerHTML=r,this._attachTableEventListeners(),this._attachRowClickHandler(),s&&i)){const o=i.querySelector("input")||i._element;o?(o.value=n,setTimeout(()=>{o.focus(),o.setSelectionRange(n.length,n.length)},0)):i.value!==void 0&&(i.value=n,setTimeout(()=>{i.focus()},0))}}_updatePagination(){var s,n;if(!this._configuration)return;const t=this._lastPage||Math.ceil(this._rows.length/this._perPage);if(!this._configuration.perPage||this._configuration.loadMore||t<=1){const r=(s=this.querySelector("nav"))==null?void 0:s.closest(".flex.justify-end");r&&r.remove();return}let e=(n=this.querySelector("nav"))==null?void 0:n.closest(".flex.justify-end");if(!e){const r=this.querySelector("mint-table");if(!r){this.render();return}e=document.createElement("div"),e.className="flex justify-end "+(this._inMintCard?"p-3.5":"mt-4"),r.insertAdjacentElement("afterend",e)}let i="<nav>";i+='<ul class="flex gap-1">',i+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let r=1;r<=Math.min(2,t);r++){const l=this._currentPage===r?' disabled="true"':"";i+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}if(t>2&&(i+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<t-1&&(i+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,i+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,i+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),t>2)for(let r=Math.max(t-1,this._currentPage+2);r<=t;r++){const l=this._currentPage===r?' disabled="true"':"";i+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}i+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=t?'disabled="true"':""} data-action="page-next"></mint-button></li>`,i+="</ul>",i+="</nav>",e.innerHTML=i,setTimeout(()=>{this._attachPaginationListeners(),e.querySelectorAll("mint-button[data-action]").forEach(r=>{"render"in r&&typeof r.render=="function"&&r.render()})},0)}_loadMore(){this._loading||this._fetching||!(this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows)||(this._offset+=this._perPage,this._currentPage+=1,this._rowsToShow+=this._perPage,this._type==="ajax"?this._fetchData():this.render())}_goToPage(t){const e=this._lastPage||Math.ceil(this._rows.length/this._perPage);t>e&&(t=e),t<1&&(t=1),this._currentPage=t,this._offset=(t-1)*this._perPage,this._type==="ajax"?this._fetchData():this.render()}_handleButtonClick(t){if(this._configuration)switch(t.type){case"export":break;case"print":window.print();break;case"csv":this._downloadCSV();break;default:t.onClick&&t.onClick(this);break}}_downloadCSV(){if(!this._configuration)return;const t=this.querySelector("table");if(!t)return;const e=t.querySelectorAll("tr");let i="data:text/csv;charset=utf-8,";e.forEach(r=>{const a=[];r.querySelectorAll("th, td").forEach(l=>{var c;const o=l.getAttribute("colspan");if(o)for(let h=0;h<parseInt(o)-1;h++)a.push("");a.push('"'+((c=l.textContent)==null?void 0:c.trim().replace(/"/g,'""'))+'"')}),i+=a.join(",")+`
|
|
153
|
-
`});const s=encodeURI(i),n=document.createElement("a");n.setAttribute("href",s),n.setAttribute("download",`${this._configuration.export_name||this._tableId}.csv`),document.body.appendChild(n),n.click(),document.body.removeChild(n)}_columnChange(t,e){const i=t.target.checked;e.hidden=!i,this._saveColumnVisibility();const s=`edit-columns-popover-${this._tableId}`,n=this.querySelector(`#${s}`),r=n==null?void 0:n.hasAttribute("open");this.render(),r&&n&&requestAnimationFrame(()=>{const a=this.querySelector(`#${s}`);a&&typeof a.open=="function"&&a.open()})}_getStyle(t){let e="";return(t.nowrap||t.actions)&&(e+="white-space: nowrap;"),t.offsetLeft&&(e+=`left: ${t.offsetLeft} !important;`),t.offsetRight&&(e+=`right: ${t.offsetRight} !important;`),t.width&&(e+=`min-width: ${t.width}px; max-width: ${t.width}px;`),e}_getClasses(t,e=!1){const i=[];return t.class&&i.push(t.class.trim()),t.sortable&&!e&&i.push("cursor-pointer"),t.stickLeft&&i.push("sticky-left"),t.stickRight&&i.push("sticky-right"),i.join(" ")}render(){if(!this._configuration){this.innerHTML='<div class="p-4 text-red-500">Error: Invalid configuration</div>';return}const t=!this._loaded||this._rows.length>0||this._search.length>0||this._searching,e=this._getRows(),i=this._lastPage||Math.ceil(this._rows.length/this._perPage);let s="";if(t){if(s+='<div class="flex '+(this._inMintCard?"p-3.5":"mb-3")+'">',s+='<div class="flex-grow-1 flex-1">',s+='<div class="flex gap-2 items-center">',this._configuration.showSearch!==!1){const r=`search-${this._tableId}`;s+=`<mint-input id="${r}" type="search" label="" placeholder="Search..." class="flex-1" icon="search" value="${this._escapeHtml(this._search)}"></mint-input>`}if(this._configuration.buttons&&this._configuration.buttons.forEach(r=>{const a=r.icon?` icon="${this._escapeHtml(r.icon)}"`:"",l=r.tone?` tone="${this._escapeHtml(r.tone)}"`:"";s+=`<mint-button variant="solid" class="${r.class||""}" data-button-type="${r.type||"custom"}"${a}${l}>`,r.label&&(s+=this._escapeHtml(r.label)),s+="</mint-button>"}),s+="</div>",s+="</div>",this._configuration.editColumns!==!1&&this._configuration.columns.some(a=>!a.actions&&a.editable!==!1)){const a=`edit-columns-popover-${this._tableId}`,l=`edit-columns-button-${this._tableId}`;s+='<div class="ml-2">',s+=`<mint-button id="${l}" variant="solid" icon="edit"></mint-button>`,s+=`<mint-popover id="${a}" trigger-id="${l}" direction="down">`,this._configuration.columns.forEach(o=>{!o.actions&&o.editable!==!1&&(s+='<div class="p-2">',s+=`<mint-checkbox label="${o.label}" ${o.hidden?"":"checked"} data-column-key="${this._configuration.columns.indexOf(o)}"></mint-checkbox>`,s+="</div>")}),s+="</mint-popover>",s+="</div>"}s+="</div>"}if(this._type==="ajax"&&(!this._loaded||this._fetching||this._loading)&&!this._fetchError&&!this._sorting){s+='<mint-table class="table-section'+(this._inMintCard?" rounded-t-none":"")+'">',s+=`<table id="${this._tableId}">`,s+="<thead><tr>",this._configuration.columns.forEach((r,a)=>{r.hidden||(s+=`<th width="${r.width||""}" style="${this._getStyle(r)}" class="${this._getClasses(r)}" data-column-key="${a}">`,r.showLabel!==!1&&(s+='<div class="flex items-center">',s+=`<div class="flex-1">${r.raw?r.label:this._escapeHtml(r.label)}</div>`,r.sortable&&(s+='<div class="ml-2 flex items-center">',s+='<mint-icon name="" class="w-4 h-4 text-gray-400"></mint-icon>',s+="</div>"),s+="</div>"),s+="</th>")}),s+="</tr></thead>",s+="<tbody>";for(let r=0;r<4;r++)s+="<tr>",this._configuration.columns.forEach(a=>{a.hidden||(s+=`<td style="${this._getStyle(a)}" class="${this._getClasses(a,!0)}">`,s+='<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></div>',s+="</td>")}),s+="</tr>";if(s+="</tbody>",s+="</table>",s+="</mint-table>",this._configuration.perPage&&!this._configuration.loadMore&&(i>1||this._lastPage>0)){const r=this._lastPage>0?this._lastPage:i;if(r>1){s+='<div class="flex justify-end '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<nav>",s+='<ul class="flex gap-1">',s+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let a=1;a<=Math.min(2,r);a++){const o=this._currentPage===a?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${o} data-action="page" data-page="${a}">${a}</mint-button></li>`}if(r>2&&(s+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<r-1&&(s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),r>2)for(let a=Math.max(r-1,this._currentPage+2);a<=r;a++){const o=this._currentPage===a?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${o} data-action="page" data-page="${a}">${a}</mint-button></li>`}s+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=r?'disabled="true"':""} data-action="page-next"></mint-button></li>`,s+="</ul>",s+="</nav>",s+="</div>"}}}else if(e.length>0||this._search.length>0||this._searching||this._fetchError){if(s+='<mint-table class="table-section'+(this._inMintCard?" rounded-t-none":"")+'">',s+=`<table id="${this._tableId}">`,s+="<thead><tr>",this._configuration.columns.forEach((r,a)=>{if(!r.hidden){if(s+=`<th width="${r.width||""}" style="${this._getStyle(r)}" class="${this._getClasses(r)}" data-column-key="${a}">`,r.showLabel!==!1){if(s+='<div class="flex items-center">',s+=`<div class="flex-1">${r.raw?r.label:this._escapeHtml(r.label)}</div>`,r.sortable){s+='<div class="ml-2 flex items-center">';const l=this._getSortClass(r);l==="spinner"?s+='<mint-spinner class="w-4 h-4"></mint-spinner>':s+=`<mint-icon name="${l}" class="w-4 h-4 ${l==="sort-arrows"?"text-gray-400":""}"></mint-icon>`,s+="</div>"}s+="</div>"}s+="</th>"}}),s+="</tr></thead>",s+="<tbody>",!this._fetching&&!this._loading&&e.forEach((r,a)=>{const l=typeof this._configuration.onRowClick=="function",o=l?"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors":"";s+=`<tr data-row-index="${a}" ${l?'data-row-clickable="true"':""}${o?` class="${o}"`:""}>`,this._configuration.columns.forEach((c,h)=>{if(c.hidden)return;const p=!c.show||c.show(this,r);if(s+=`<td style="${this._getStyle(c)}" class="${this._getClasses(c,!0)}">`,p)if(c.raw)if(c.action){if(!c.action.show||c.action.show(this,r)){const d=typeof c.action.label=="function"?c.action.label(this,r):c.action.label;s+=`<mint-button variant="solid" data-action="column-action" data-row-index="${a}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(d))}</mint-button>`}}else if(c.actions)if(c.actionStyle!=="buttons"){const d=`actions-popover-${this._tableId}-${a}`,f=`actions-button-${this._tableId}-${a}`;s+=`<mint-button id="${f}" variant="link" icon="ellipsis">`,s+="</mint-button>",s+=`<mint-popover id="${d}" trigger-id="${f}" direction="down">`,c.actions.forEach((u,m)=>{if(!u.show||u.show(this,r)){const g=typeof u.label=="function"?u.label(this,r):u.label;s+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${a}" data-action-index="${m}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(g))}</div>`}}),s+="</mint-popover>"}else c.actions.forEach((d,f)=>{if(!d.show||d.show(this,r)){const u=d.label?typeof d.label=="function"?d.label(this,r):d.label:"",m=d.icon?` icon="${this._escapeHtml(d.icon)}"`:"",g=d.tone?` tone="${this._escapeHtml(d.tone)}"`:"";s+=`<mint-button variant="link" class="${d.classes||""}" data-action="row-action" data-row-index="${a}" data-action-index="${f}" data-column-key="${this._configuration.columns.indexOf(c)}"${m}${g}>`,u&&(s+=this._escapeHtml(String(u))),s+="</mint-button>"}});else typeof c.format=="function"?s+=c.format(this,r):c.data&&(s+=this._escapeHtml(String(r[c.data]||"")));else if(c.action)(!c.action.show||c.action.show(this,r))&&(s+=`<mint-button variant="solid" data-action="column-action" data-row-index="${a}" data-column-key="${this._configuration.columns.indexOf(c)}">${c.action.label}</mint-button>`);else if(c.actions)if(c.actionStyle!=="buttons"){const d=`actions-popover-${this._tableId}-${a}`,f=`actions-button-${this._tableId}-${a}`;s+=`<mint-button id="${f}" variant="link" icon="ellipsis">`,s+="</mint-button>",s+=`<mint-popover id="${d}" trigger-id="${f}" direction="down">`,c.actions.forEach((u,m)=>{if(!u.show||u.show(this,r)){const g=typeof u.label=="function"?u.label(this,r):u.label;s+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${a}" data-action-index="${m}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(g))}</div>`}}),s+="</mint-popover>"}else c.actions.forEach((d,f)=>{if(!d.show||d.show(this,r)){const u=d.label?typeof d.label=="function"?d.label(this,r):d.label:"",m=d.icon?` icon="${this._escapeHtml(d.icon)}"`:"",g=d.tone?` tone="${this._escapeHtml(d.tone)}"`:"";s+=`<mint-button variant="link" class="${d.classes||""}" data-action="row-action" data-row-index="${a}" data-action-index="${f}" data-column-key="${this._configuration.columns.indexOf(c)}"${m}${g}>`,u&&(s+=this._escapeHtml(String(u))),s+="</mint-button>"}});else typeof c.format=="function"?s+=this._escapeHtml(c.format(this,r)):c.data&&(s+=this._escapeHtml(String(r[c.data]||"")));s+="</td>"}),s+="</tr>"}),!this._fetching&&!this._loading&&e.length===0&&(this._fetchError?s+=`<tr><td colspan="${this._configuration.columns.filter(r=>!r.hidden).length}" class="text-center py-8 text-red-500 dark:text-red-400">Failed to load data: ${this._escapeHtml(this._fetchError)}</td></tr>`:s+=`<tr><td colspan="${this._configuration.columns.filter(r=>!r.hidden).length}" class="text-center py-8">No records found.</td></tr>`),s+="</tbody>",s+="</table>",this._configuration.loadMore&&(this._loading||this._fetching?(s+='<div class="flex justify-center '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<mint-spinner></mint-spinner>",s+="</div>"):(this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows)&&(s+='<div class="flex justify-center '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+='<mint-button variant="ghost" data-action="load-more">Load more</mint-button>',s+="</div>")),this._configuration.perPage&&!this._configuration.loadMore&&this._loaded&&i>1){s+='<div class="flex justify-end '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<nav>",s+='<ul class="flex gap-1">',s+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let r=1;r<=Math.min(2,i);r++){const l=this._currentPage===r?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}if(i>2&&(s+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<i-1&&(s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),i>2)for(let r=Math.max(i-1,this._currentPage+2);r<=i;r++){const l=this._currentPage===r?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}s+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=i?'disabled="true"':""} data-action="page-next"></mint-button></li>`,s+="</ul>",s+="</nav>",s+="</div>"}s+="</mint-table>"}else s+='<slot name="empty"></slot>';this.innerHTML=s,this.querySelectorAll("mint-button[data-action]").forEach(r=>{r.render&&r.render()}),this.querySelectorAll("mint-button[data-button-type]").forEach(r=>{r.render&&r.render()}),this._attachEventListeners(),this._type==="ajax"&&!this._loaded&&!this._fetching&&!this._loading&&this._fetchData()}_attachRowClickHandler(){this._rowClickHandler&&this.removeEventListener("click",this._rowClickHandler,!0);const t=e=>{var o;const i=e.target;if(i.tagName==="MINT-BUTTON"||i.tagName==="BUTTON"||i.closest("mint-button")||i.closest("button")||i.closest("mint-popover")||i.closest("[data-action]"))return;const s=i.closest('tr[data-row-clickable="true"]');if(!s)return;const n=s.getAttribute("data-row-index");if(!n)return;const r=parseInt(n),l=this._getRows()[r];!l||!((o=this._configuration)!=null&&o.onRowClick)||(this._configuration.onRowClick.length===1?this._configuration.onRowClick(l):this._configuration.onRowClick(this,l))};this.addEventListener("click",t,!0),this._rowClickHandler=t}_attachPaginationListeners(){this.querySelectorAll('[data-action="page"]').forEach(t=>{t.addEventListener("click",()=>{const e=parseInt(t.getAttribute("data-page")||"1");this._goToPage(e)})}),this.querySelectorAll('[data-action="page-prev"]').forEach(t=>{t.addEventListener("click",()=>{this._goToPage(this._currentPage-1)})}),this.querySelectorAll('[data-action="page-next"]').forEach(t=>{t.addEventListener("click",()=>{this._goToPage(this._currentPage+1)})})}_attachTableEventListeners(){this.querySelectorAll('[data-action="row-action"]').forEach(t=>{t.addEventListener("click",()=>{var l;const e=parseInt(t.getAttribute("data-row-index")||"0"),i=parseInt(t.getAttribute("data-action-index")||"0"),s=parseInt(t.getAttribute("data-column-key")||"0"),r=this._getRows()[e],a=(l=this._configuration)==null?void 0:l.columns[s];a&&a.actions&&a.actions[i]&&a.actions[i].onClick(this,r)})}),this.querySelectorAll('[data-action="column-action"]').forEach(t=>{t.addEventListener("click",()=>{var a;const e=parseInt(t.getAttribute("data-row-index")||"0"),i=parseInt(t.getAttribute("data-column-key")||"0"),n=this._getRows()[e],r=(a=this._configuration)==null?void 0:a.columns[i];r&&r.action&&r.action.onClick(this,n)})})}_attachEventListeners(){var e;const t=this.querySelector(`#search-${this._tableId}`);if(t){const i=t.querySelector("input")||t._element;i?i.addEventListener("input",s=>{this._search=s.target.value,this._triggerSearch()}):t.addEventListener("input",s=>{this._search=t.value||s.target.value||"",this._triggerSearch()})}if(this._attachTableEventListeners(),this._attachRowClickHandler(),this.querySelectorAll("th[data-column-key]").forEach(i=>{i.addEventListener("click",()=>{var r;const s=parseInt(i.getAttribute("data-column-key")||"0"),n=(r=this._configuration)==null?void 0:r.columns[s];n&&this._toggleSort(n)})}),this.querySelectorAll("[data-button-type]").forEach(i=>{i.addEventListener("click",()=>{var r,a;const s=i.getAttribute("data-button-type"),n=(a=(r=this._configuration)==null?void 0:r.buttons)==null?void 0:a.find(l=>(l.type||"custom")===s);n&&this._handleButtonClick(n)})}),this.querySelectorAll("mint-checkbox[data-column-key]").forEach(i=>{i.addEventListener("change",s=>{var a;s.stopPropagation();const n=parseInt(i.getAttribute("data-column-key")||"0"),r=(a=this._configuration)==null?void 0:a.columns[n];r&&this._columnChange(s,r)}),i.addEventListener("click",s=>{s.stopPropagation()})}),this._attachPaginationListeners(),this.querySelectorAll('[data-action="load-more"]').forEach(i=>{i.addEventListener("click",()=>{this._loadMore()})}),(e=this._configuration)!=null&&e.loadMore){this._scrollHandler&&window.removeEventListener("scroll",this._scrollHandler);const i=()=>{const s=window.pageYOffset||document.documentElement.scrollTop,n=window.innerHeight;if(document.documentElement.scrollHeight-s-n<=100){const a=this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows;!this._loading&&!this._fetching&&a&&this._loadMore()}};this._scrollHandler=i,window.addEventListener("scroll",i)}}_escapeHtml(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}}customElements.get("mint-resource-table")||customElements.define("mint-resource-table",wt);class At extends HTMLElement{constructor(){super(),this._overlay=null,this._offCanvas=null,this._header=null,this._headingSlot=null,this._bodySlot=null,this._actionsSlot=null,this._closeButton=null,this._darkModeObserver=null}static get observedAttributes(){return["id","heading","open","position","full-page","width"]}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","fixed","inset-0","z-50"),this.isOpen()||this.classList.add("hidden"),this.render(),this._observeDarkMode()}disconnectedCallback(){this._darkModeObserver&&(this._darkModeObserver.disconnect(),this._darkModeObserver=null)}attributeChangedCallback(t,e,i){e!==i&&this.render()}getId(){return this.getAttribute("id")||""}getHeading(){return this.getAttribute("heading")||""}getPosition(){var e;const t=(e=this.getAttribute("position"))==null?void 0:e.toLowerCase();return t==="top"||t==="bottom"||t==="left"||t==="right"?t:"right"}isFullPage(){return this.getAttribute("full-page")==="true"}getWidth(){return this.getAttribute("width")||"w-80"}isOpen(){return this.getAttribute("open")==="true"}open(){this.setAttribute("open","true")}close(){this.removeAttribute("open")}render(){const t=this.getId(),e=this.getHeading(),i=this.isOpen(),s=this.getPosition(),n=this.isFullPage();t&&(this.id=t),this._overlay||(this._overlay=document.createElement("div"),this._overlay.className="fixed inset-0 bg-black bg-opacity-50 transition-opacity duration-200 z-40",this._overlay.addEventListener("click",()=>this.close()),this.appendChild(this._overlay)),this._offCanvas||(this._offCanvas=document.createElement("div"),this.appendChild(this._offCanvas));const r=this._getPositionClasses(s,n);this._offCanvas.className=r;let a=this._offCanvas.querySelector(".off-canvas-content");if(a||(a=document.createElement("div"),a.className="off-canvas-content bg-white dark:bg-gray-900 dark:border dark:border-gray-700 shadow-xl flex flex-col pointer-events-auto transition-all duration-300 ease-out",a.style.transform=this._getTransformValue(s,!1),this._offCanvas.appendChild(a)),i?this._animateEnter():this._animateExit(),Array.from(a.classList).forEach(u=>{(u.startsWith("w-")||u.startsWith("max-w-"))&&a.classList.remove(u)}),a.classList.remove("h-full","max-h-[90vh]","max-h-screen"),n)a.classList.add("w-full","h-full");else{const u=this.getWidth();s==="top"||s==="bottom"?a.classList.add("w-full","max-h-[90vh]"):a.classList.add(u,"h-full")}this._header||(this._header=document.createElement("div"),this._header.className="flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700 flex-shrink-0",a.appendChild(this._header)),this._headingSlot||(this._headingSlot=document.createElement("div"),this._headingSlot.className="flex-1",this._headingSlot.setAttribute("slot","heading"),this._header.appendChild(this._headingSlot));let o=this._headingSlot.querySelector("mint-text");e?(o||(o=document.createElement("mint-text"),o.setAttribute("size","sub-heading"),o.setAttribute("bold","true"),this._headingSlot.appendChild(o)),o.textContent=e):o&&o.remove(),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._headingSlot&&u.getAttribute("slot")==="heading").forEach(u=>{this._headingSlot&&u.parentElement!==this._headingSlot&&this._headingSlot.appendChild(u)}),this._closeButton||(this._closeButton=document.createElement("mint-button"),this._closeButton.setAttribute("variant","ghost"),this._closeButton.setAttribute("icon","close"),this._closeButton.addEventListener("click",()=>this.close()),this._header.appendChild(this._closeButton)),this._bodySlot||(this._bodySlot=document.createElement("div"),this._bodySlot.className="flex-1 overflow-y-auto p-4",this._bodySlot.setAttribute("slot","body"),a.appendChild(this._bodySlot)),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._bodySlot&&u.getAttribute("slot")==="body").forEach(u=>{this._bodySlot&&u.parentElement!==this._bodySlot&&this._bodySlot.appendChild(u)}),this._actionsSlot||(this._actionsSlot=document.createElement("div"),this._actionsSlot.className="p-4 border-t border-gray-200 dark:border-gray-700 flex-shrink-0",this._actionsSlot.setAttribute("slot","actions"),a.appendChild(this._actionsSlot));let p=this._actionsSlot.querySelector("mint-stack");p||(p=document.createElement("mint-stack"),p.setAttribute("direction","horizontal"),p.className="justify-end",this._actionsSlot.appendChild(p)),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._actionsSlot&&u.getAttribute("slot")==="actions").forEach(u=>{Array.from(u.children).forEach(g=>{g.parentElement!==p&&p.appendChild(g)}),u.parentElement&&u.remove()}),Array.from(this.children).forEach(u=>{u!==this._overlay&&u!==this._offCanvas&&u.getAttribute("slot")!=="heading"&&u.getAttribute("slot")!=="body"&&u.getAttribute("slot")!=="actions"&&u!==this._headingSlot&&u!==this._bodySlot&&u!==this._actionsSlot&&u.parentElement!==this._bodySlot&&this._bodySlot.appendChild(u)}),this._updateBackgroundColor()}_getPositionClasses(t,e){const i="fixed z-50 pointer-events-none transition-all duration-300 ease-out";switch(t){case"top":return`${i} top-0 left-0 right-0 ${e?"h-full":""}`;case"bottom":return`${i} bottom-0 left-0 right-0 ${e?"h-full":""}`;case"left":return`${i} left-0 top-0 bottom-0 ${e?"w-full":""}`;case"right":return`${i} right-0 top-0 bottom-0 ${e?"w-full":""}`;default:return`${i} right-0 top-0 bottom-0 ${e?"w-full":""}`}}_getTransformValue(t,e){if(e)switch(t){case"top":return"translateY(0)";case"bottom":return"translateY(0)";case"left":return"translateX(0)";case"right":return"translateX(0)";default:return"translateX(0)"}else switch(t){case"top":return"translateY(-100%)";case"bottom":return"translateY(100%)";case"left":return"translateX(-100%)";case"right":return"translateX(100%)";default:return"translateX(100%)"}}_updateBackgroundColor(){if(!this._offCanvas)return;const t=document.documentElement.classList.contains("dark"),e=this._offCanvas.querySelector(".off-canvas-content");e&&(t?(e.classList.remove("bg-white"),e.classList.add("bg-gray-900","border","border-gray-700")):(e.classList.remove("bg-gray-900","border","border-gray-700"),e.classList.add("bg-white")))}_observeDarkMode(){this._darkModeObserver||(this._darkModeObserver=new MutationObserver(()=>{this._updateBackgroundColor()}),this._darkModeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}))}_animateEnter(){var i;const t=(i=this._offCanvas)==null?void 0:i.querySelector(".off-canvas-content");if(!t)return;const e=this.getPosition();t.style.transform=this._getTransformValue(e,!1),t.style.transition="transform 300ms ease-out",this.classList.remove("hidden"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{t.style.transform=this._getTransformValue(e,!0)})})}_animateExit(){var i;const t=(i=this._offCanvas)==null?void 0:i.querySelector(".off-canvas-content");if(!t){this.classList.add("hidden");return}const e=this.getPosition();t.style.transition="transform 300ms ease-in",t.style.transform=this._getTransformValue(e,!1),setTimeout(()=>{this.classList.add("hidden"),t.style.transform="",t.style.transition=""},300)}}customElements.get("mint-off-canvas")||customElements.define("mint-off-canvas",At);class St extends HTMLElement{constructor(){super(),this._clickHandler=null}static get observedAttributes(){return["active","disabled","target"]}connectedCallback(){this.render(),this.setupEventListeners()}disconnectedCallback(){this.removeEventListeners()}attributeChangedCallback(t,e,i){e!==i&&this.render()}getTarget(){return this.getAttribute("target")||""}isActive(){const t=this.getAttribute("active");return t!==null&&t!=="false"}isDisabled(){return this.getAttribute("disabled")==="true"}get active(){return this.isActive()}set active(t){t?this.setAttribute("active","true"):this.setAttribute("active","false")}render(){const t=this.isActive(),e=this.isDisabled();this.className="",this.classList.add("box-border","m-0","p-0","border-0","inline-block","cursor-pointer","px-4","py-1.5","text-sm","font-medium","transition-all","duration-200","rounded-lg","border","text-gray-700","dark:text-gray-300");const i=this.closest("mint-tab-list"),s=(i==null?void 0:i.getAttribute("position"))||"top",n=s==="left"||s==="right";e?(this.classList.add("opacity-60","cursor-not-allowed","pointer-events-none","bg-gray-50","dark:bg-gray-900","border-gray-300","dark:border-gray-700","text-gray-400","dark:text-gray-500"),this.classList.remove("cursor-pointer")):t?(this.classList.add("bg-white","dark:bg-gray-900","border-gray-200","dark:border-gray-700","text-gray-900","dark:text-gray-100","shadow-sm","relative","z-10"),n?s==="left"?this.classList.add("mr-[-1px]"):this.classList.add("ml-[-1px]"):this.classList.add("mb-[-1px]")):this.classList.add("bg-gray-100","dark:bg-gray-900","border-gray-200","dark:border-gray-700","text-gray-600","dark:text-gray-400","hover:bg-gray-50","dark:hover:bg-gray-600")}setupEventListeners(){this.isDisabled()||this._clickHandler||(this._clickHandler=this.handleClick.bind(this),this.addEventListener("click",this._clickHandler))}removeEventListeners(){this._clickHandler&&(this.removeEventListener("click",this._clickHandler),this._clickHandler=null)}handleClick(t){if(this.isDisabled()){t.preventDefault(),t.stopPropagation();return}t.__mintTabsSynthetic||(t.stopPropagation(),this.dispatchEvent(new CustomEvent("tab-click",{detail:{tab:this,target:this.getTarget()},bubbles:!0,cancelable:!0,composed:!0})))}}customElements.get("mint-tab")||customElements.define("mint-tab",St);class Lt extends HTMLElement{static get observedAttributes(){return["position"]}constructor(){super()}connectedCallback(){this.render()}attributeChangedCallback(t,e,i){e!==i&&this.render()}getPosition(){return this.getAttribute("position")||"top"}render(){const t=this.getPosition();this.classList.remove("flex","inline-flex","flex-row","flex-col","gap-1","gap-2","pb-0","pr-0","pl-0","mb-0","mr-0","ml-0","self-start"),this.classList.add("box-border","m-0","p-1","border","bg-gray-100","dark:bg-gray-900","dark:border-gray-700","border-gray-200","w-auto","rounded-lg","gap-2"),t==="top"?this.classList.add("inline-flex","flex-row","mb-0","self-start"):t==="left"?this.classList.add("flex","flex-col","mr-0"):t==="right"&&this.classList.add("flex","flex-col","ml-0")}}customElements.get("mint-tab-list")||customElements.define("mint-tab-list",Lt);class Dt extends HTMLElement{static get observedAttributes(){return["id"]}constructor(){super()}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","block","w-full"),this.render(),this.checkInitialVisibility()}attributeChangedCallback(t,e,i){e!==i&&t==="id"&&(this.render(),this.checkInitialVisibility())}getId(){return this.getAttribute("id")||""}show(){this.style.display="block"}hide(){this.style.display="none"}checkInitialVisibility(){const t=this.closest("mint-tabs");if(!t){this.style.display="none";return}const e=t.querySelectorAll("mint-tab");let i=!1;if(e.forEach(s=>{const n=s.getAttribute("active"),r=s.getAttribute("target"),a=this.getId();n==="true"&&r===a&&(i=!0)}),!i&&e.length>0){const n=e[0].getAttribute("target"),r=this.getId();n===r&&!t.querySelector('mint-tab[active="true"]')&&(i=!0)}i?this.style.display="block":this.style.display="none"}render(){}}customElements.get("mint-tab-content")||customElements.define("mint-tab-content",Dt);class It extends HTMLElement{constructor(){super(),this._tabClickHandler=null,this._mutationObserver=null}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","block"),this.render(),this.setupEventListeners(),this.setupMutationObserver(),this.initializeActiveTab()}disconnectedCallback(){this.removeEventListeners(),this._mutationObserver&&(this._mutationObserver.disconnect(),this._mutationObserver=null)}render(){const t=this.querySelector("mint-tab-list");if(this.querySelectorAll("mint-tab-content"),!t){console.warn("mint-tabs: mint-tab-list is required");return}const e=t.getAttribute("position")||"top";this.classList.remove("flex","flex-row","flex-col","gap-4","gap-6"),e==="left"||e==="right"?(this.classList.add("flex","flex-row","items-start"),e==="left"?(t.classList.add("mr-4","flex-shrink-0"),t.classList.remove("ml-4")):(t.classList.add("ml-4","flex-shrink-0","order-2"),t.classList.remove("mr-4"),this.querySelectorAll("mint-tab-content").forEach(s=>{s.classList.add("order-1")}))):(this.classList.add("flex","flex-col"),t.classList.remove("mr-4","ml-4","flex-shrink-0","order-2"),this.querySelectorAll("mint-tab-content").forEach(s=>{s.classList.remove("order-1")}))}initializeActiveTab(){requestAnimationFrame(()=>{const t=this.querySelectorAll("mint-tab");let e=null;if(t.forEach(s=>{s.getAttribute("active")==="true"&&(e=s)}),!e&&t.length>0&&(e=t[0],e.setAttribute("active","true")),e){const s=e.getAttribute("target");s?this.showContent(s):this.hideAllContent()}else this.hideAllContent();this.querySelectorAll("mint-tab-content").forEach(s=>{const n=s;n.checkInitialVisibility&&n.checkInitialVisibility()})})}hideAllContent(){this.querySelectorAll("mint-tab-content").forEach(e=>{const i=e;i.hide?i.hide():e.style.display="none"})}showContent(t){this.querySelectorAll("mint-tab-content").forEach(s=>{const n=s;n.hide?n.hide():s.style.display="none"});const i=this.querySelector(`mint-tab-content[id="${t}"]`);i&&(i.show?i.show():i.style.display="block")}setupEventListeners(){this._tabClickHandler||(this._tabClickHandler=this.handleTabClick.bind(this),this.addEventListener("tab-click",this._tabClickHandler))}removeEventListeners(){this._tabClickHandler&&(this.removeEventListener("tab-click",this._tabClickHandler),this._tabClickHandler=null)}setupMutationObserver(){this._mutationObserver=new MutationObserver(()=>{this.render()});const t=this.querySelector("mint-tab-list");t&&this._mutationObserver.observe(t,{attributes:!0,attributeFilter:["position"]})}handleTabClick(t){var r,a;const e=(r=t.detail)==null?void 0:r.tab,i=(a=t.detail)==null?void 0:a.target;if(!e)return;const s=e.closest("mint-tab-list");if(!s)return;s.querySelectorAll("mint-tab").forEach(l=>{const o=l;l===e?o.active=!0:o.active=!1}),i&&this.showContent(i)}}customElements.get("mint-tabs")||customElements.define("mint-tabs",It);exports.Alert=Ct;exports.BackButton=lt;exports.Button=X;exports.Card=at;exports.Checkbox=pt;exports.Chip=kt;exports.Choice=ft;exports.Clickable=xt;exports.DatePicker=gt;exports.Dropzone=bt;exports.Form=vt;exports.Grid=ht;exports.Icon=it;exports.Input=mt;exports.Link=ot;exports.Modal=dt;exports.OffCanvas=At;exports.Page=ct;exports.Popover=ut;exports.ResourceTable=wt;exports.Select=_t;exports.Spinner=et;exports.Stack=nt;exports.Switch=st;exports.Tab=St;exports.TabContent=Dt;exports.TabList=Lt;exports.Table=yt;exports.Tabs=It;exports.Tags=Et;exports.Text=rt;exports.default=X;
|
|
152
|
+
`,document.head.appendChild(t)}}customElements.get("mint-table")||customElements.define("mint-table",yt);class kt extends HTMLElement{constructor(){super(...arguments),this._root=null,this._textWrap=null,this._dismissBtn=null,this._clickHandler=null}static get observedAttributes(){return["dismissable"]}connectedCallback(){this._render()}disconnectedCallback(){this._dismissBtn&&this._clickHandler&&this._dismissBtn.removeEventListener("click",this._clickHandler)}attributeChangedCallback(){this._render()}_render(){var i;if(this.classList.add("inline-flex","items-center","gap-2","px-3","py-1","rounded-full","border","border-gray-200","dark:border-gray-700","bg-gray-100","dark:bg-gray-900","text-gray-900","dark:text-gray-100","text-sm","font-medium"),!this._root){for(this._root=document.createElement("div"),this._root.className="flex items-center gap-2 w-full",this._textWrap=document.createElement("span"),this._textWrap.className="inline-flex items-center min-w-[0.5rem]",this._textWrap.setAttribute("data-mt-chip-text","");this.firstChild;){const s=this.firstChild;if(s===this._root)break;this._textWrap.appendChild(s)}this._root.appendChild(this._textWrap),this.appendChild(this._root)}this.getAttribute("dismissable")==="true"?(this._dismissBtn||this._createDismissBtn(),this._dismissBtn&&!this._dismissBtn.isConnected&&((i=this._root)==null||i.appendChild(this._dismissBtn))):this._dismissBtn&&this._dismissBtn.parentElement===this._root&&this._dismissBtn.remove()}_createDismissBtn(){const t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Dismiss"),t.className=["shrink-0","inline-flex","items-center","justify-center","w-5","h-5","rounded-full","text-gray-500","dark:text-gray-300","hover:text-gray-700","dark:hover:text-gray-100","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-offset-1","focus-visible:ring-gray-400","dark:focus-visible:ring-gray-500","transition-colors","duration-150","border-none","bg-transparent","cursor-pointer"].join(" ");const e=document.createElement("mint-icon");e.setAttribute("name","close"),e.className="w-3 h-3",t.appendChild(e),this._clickHandler=i=>{i.stopPropagation(),this.dispatchEvent(new CustomEvent("dismissed",{bubbles:!0,composed:!0}))},t.addEventListener("click",this._clickHandler),this._dismissBtn=t}}customElements.get("mint-chip")||customElements.define("mint-chip",kt);class Et extends HTMLElement{constructor(){super(...arguments),this._container=null,this._chipsWrap=null,this._input=null,this._tags=[],this._placeholder="Add tag",this._dragIndex=null,this._dragChip=null,this._isPointerDragging=!1,this._pointerMoveHandler=null,this._pointerUpHandler=null}static get observedAttributes(){return["tags","placeholder","sortable","label","info","error","error-message","name","id","required","loading"]}connectedCallback(){this._parseAttrs(),this._render(),this._pointerMoveHandler||(this._pointerMoveHandler=t=>this._onPointerMove(t),window.addEventListener("pointermove",this._pointerMoveHandler)),this._pointerUpHandler||(this._pointerUpHandler=t=>this._onPointerUp(t),window.addEventListener("pointerup",this._pointerUpHandler),window.addEventListener("pointercancel",this._pointerUpHandler))}attributeChangedCallback(t,e,i){if(e!==i){if(t==="error"||t==="error-message"){if(this._renderErrorState(),this._container){const s=this.hasError(),n=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1.5","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-900","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=n.join(" ")}return}if(t==="loading"){this._parseAttrs(),this._render();return}this._parseAttrs(),this._render()}}set tags(t){this._tags=Array.isArray(t)?[...t]:[],this._syncAttr(),this._render()}get tags(){return[...this._tags]}_parseAttrs(){const t=this.getAttribute("tags");if(!t)return;try{const i=JSON.parse(t);Array.isArray(i)&&(this._tags=i)}catch(i){console.warn("mint-tags: failed to parse tags attribute",i)}const e=this.getAttribute("placeholder");e!==null&&(this._placeholder=e)}_syncAttr(){this.setAttribute("tags",JSON.stringify(this._tags))}getLabel(){return this.getAttribute("label")||""}getInfo(){return this.getAttribute("info")||""}hasError(){return this.getAttribute("error")==="true"}getErrorMessage(){return this.getAttribute("error-message")||""}getName(){return this.getAttribute("name")||""}getId(){return this.getAttribute("id")||""}isRequired(){return this.getAttribute("required")==="true"}isLoading(){return this.hasAttribute("loading")}_render(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block","w-full");const t=this.isLoading(),e=this.getLabel(),i=this.getInfo(),s=this.hasError(),n=this.getId()||`mint-tags-${Math.random().toString(36).substr(2,9)}`;if(this.getId()||this.setAttribute("id",n),this._container)this._input&&(this._input.placeholder=this._placeholder);else{this._container=document.createElement("div");const o=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-800","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=o.join(" "),this._chipsWrap=document.createElement("div"),this._chipsWrap.className="flex flex-wrap items-center gap-2",this._chipsWrap.addEventListener("dragover",c=>{this.hasAttribute("sortable")&&c.preventDefault()}),this._chipsWrap.addEventListener("drop",c=>{this.hasAttribute("sortable")&&c.preventDefault()}),this._input=document.createElement("input"),this._input.type="text",this._input.placeholder=this._placeholder,this._input.className=["min-w-[6rem]","flex-1","bg-transparent","border-none","outline-none","text-sm","text-gray-900","dark:text-gray-100","placeholder:text-gray-400","dark:placeholder:text-gray-500","p-1.5"].join(" "),this._input.addEventListener("keydown",c=>{c.key==="Enter"&&(c.preventDefault(),this._addFromInput())}),this._container.appendChild(this._chipsWrap),this.appendChild(this._container)}if(this._container){const o=["flex","flex-wrap","items-center","gap-2","w-full","px-2","py-1","min-h-[2rem]","rounded-lg","border-2",s?"border-red-300 dark:border-red-300":"border-gray-200 dark:border-gray-700","bg-white","dark:bg-gray-800","focus-within:ring-2","focus-within:ring-offset-1",s?"focus-within:ring-red-400 dark:focus-within:ring-red-500":"focus-within:ring-gray-400 dark:focus-within:ring-gray-500","transition-colors","duration-200"];this._container.className=o.join(" ")}let r=this.querySelector(".mint-tags-label-container");if(e){r||(r=document.createElement("div"),r.className="mint-tags-label-container mb-[.25rem]",this._container&&this._container.parentElement===this?this.insertBefore(r,this._container):this.insertBefore(r,this.firstChild));let o=r.querySelector(".mint-tags-label");e?(o||(o=document.createElement("label"),o.className="mint-tags-label text-sm font-medium text-gray-900 dark:text-gray-100 select-none",r.appendChild(o)),o.textContent=e,o.setAttribute("for",n)):o&&o.remove()}else r&&r.remove();let a=this.querySelector(".mint-tags-info");i?(a||(a=document.createElement("span"),a.className="mint-tags-info text-xs text-gray-500 dark:text-gray-400 select-none mt-1 block",this._container&&this._container.parentElement===this?this.insertBefore(a,this._container.nextSibling):this.appendChild(a)),a.textContent=i):a&&a.remove();const l=this.getName();l?(this.setAttribute("name",l),this._input&&(this._input.name=l,this._input.id=n)):(this.removeAttribute("name"),this._input&&(this._input.removeAttribute("name"),this._input.id=n)),this._wireInputBackspace(),this._renderChips(),this._renderErrorState(),this._renderSkeleton(t)}_renderSkeleton(t){const e=this._container;if(!e)return;e.classList.contains("relative")||e.classList.add("relative");let i=e.querySelector(".mint-tags-skeleton");t?(i||(i=document.createElement("div"),i.className="mint-tags-skeleton absolute inset-0 z-10 pointer-events-none rounded-lg bg-gray-200 dark:bg-gray-700 animate-pulse",e.appendChild(i)),i.style.display="block",this._chipsWrap&&(this._chipsWrap.style.visibility="hidden",this._chipsWrap.style.pointerEvents="none"),this._input&&(this._input.style.visibility="hidden",this._input.style.pointerEvents="none")):(i&&(i.style.display="none"),this._chipsWrap&&(this._chipsWrap.style.visibility="visible",this._chipsWrap.style.pointerEvents="auto"),this._input&&(this._input.style.visibility="visible",this._input.style.pointerEvents="auto"))}_renderErrorState(){const t=this.hasError(),e=this.getErrorMessage();let i=this.querySelector(".mint-tags-error");t&&e?(i||(i=document.createElement("div"),i.className="mint-tags-error mt-1 text-xs text-red-600 dark:text-red-400",this.appendChild(i)),i.textContent=e):i&&i.remove()}_renderChips(){if(!this._chipsWrap)return;this._chipsWrap.innerHTML="";let t=0;this._tags.forEach(e=>{const i=document.createElement("mint-chip");i.dataset.index=String(t++),i.dataset.value=e.value,i.draggable=this.hasAttribute("sortable"),i.draggable&&i.classList.add("cursor-move"),e.dismissable&&(i.setAttribute("dismissable","true"),i.addEventListener("dismissed",()=>this._removeTag(e.value))),this._chipsWrap.appendChild(i);const s=i.querySelector("[data-mt-chip-text]");s&&(s.textContent=e.label||e.value),this._setupChipEvents(i,e),i.draggable&&(i.addEventListener("dragstart",n=>this._onDragStart(n,i)),i.addEventListener("dragover",n=>this._onDragOverChip(n,i)),i.addEventListener("drop",n=>this._onDrop(n)),i.addEventListener("dragend",()=>this._onDragEnd())),this.hasAttribute("sortable")&&i.addEventListener("pointerdown",n=>this._onPointerDown(n,i))}),this._input&&(this.hasAttribute("sortable")&&(this._input.addEventListener("dragover",e=>this._onDragOverInput(e)),this._input.addEventListener("drop",e=>this._onDrop(e)),this._input.addEventListener("dragend",()=>this._onDragEnd())),this._chipsWrap.appendChild(this._input))}_addFromInput(){if(!this._input)return;const t=this._input.value.trim();if(!t)return;if(this._tags.some(i=>i.value.toLowerCase()===t.toLowerCase())){this._input.value="";return}this._tags.push({value:t,label:t,dismissable:!0}),this._syncAttr(),this._renderChips(),this._emitChange(),this._input.value="",setTimeout(()=>{var i;(i=this._input)==null||i.focus()},10)}_removeTag(t){this._tags=this._tags.filter(e=>e.value!==t),this._syncAttr(),this._renderChips(),this._emitChange()}_emitChange(){this.dispatchEvent(new CustomEvent("tags-change",{bubbles:!0,composed:!0,detail:{tags:this.tags}}))}_focusLastChip(){var e;const t=(e=this._chipsWrap)==null?void 0:e.querySelectorAll("mint-chip");t&&t.length>0&&t[t.length-1].focus({preventScroll:!0})}_focusInput(){setTimeout(()=>{var t;(t=this._input)==null||t.focus({preventScroll:!0})},10)}_wireInputBackspace(){this._input&&this._input.addEventListener("keydown",t=>{var e;t.key==="Backspace"&&((e=this._input)==null?void 0:e.value)===""&&(t.preventDefault(),this._focusLastChip())})}_setupChipEvents(t,e){t.tabIndex=0,t.addEventListener("keydown",i=>{(i.key==="Backspace"||i.key==="Delete")&&e.dismissable&&(i.preventDefault(),this._removeTag(e.value),this._focusInput())})}_onDragStart(t,e){var i;this.hasAttribute("sortable")&&(this._dragChip=e,this._dragIndex=Number(e.dataset.index),(i=t.dataTransfer)==null||i.setData("text/plain",e.dataset.index||""),t.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.dropEffect="move"),e.classList.add("opacity-60"))}_reorderTags(t,e){if(t<0||e<0||t>=this._tags.length||e>=this._tags.length)return;const i=[...this._tags],[s]=i.splice(t,1);i.splice(e,0,s),this._tags=i,this._syncAttr(),this._renderChips(),this._emitChange()}_onDragOverInput(t){this.hasAttribute("sortable")&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),this._dragChip&&this._chipsWrap&&this._input&&this._chipsWrap.insertBefore(this._dragChip,this._input))}_onDragOverChip(t,e){if(!this.hasAttribute("sortable")||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),!this._dragChip||!this._chipsWrap)||e===this._dragChip)return;const i=e.getBoundingClientRect(),s=t.clientX,n=i.left+i.width*.5;if(s<n){if(this._dragChip.nextSibling===e)return;this._chipsWrap.insertBefore(this._dragChip,e)}else{if(e.nextSibling===this._dragChip)return;const r=e.nextSibling;r?this._chipsWrap.insertBefore(this._dragChip,r):this._chipsWrap.appendChild(this._dragChip)}}_onDrop(t){this.hasAttribute("sortable")&&t.preventDefault()}_onDragEnd(){this._dragChip&&this._dragChip.classList.remove("opacity-60"),this._syncOrderFromDom(),this._dragChip=null,this._dragIndex=null}_syncOrderFromDom(){if(!this._chipsWrap)return;const t=Array.from(this._chipsWrap.querySelectorAll("mint-chip"));if(t.length===0)return;const e=[];t.forEach(i=>{const s=i.dataset.value;if(!s)return;const n=this._tags.find(r=>r.value===s);n&&e.push(n)}),e.length===this._tags.length&&(this._tags=e,this._syncAttr(),this._renderChips(),this._emitChange())}_onPointerDown(t,e){if(this.hasAttribute("sortable")&&t.pointerType!=="mouse"){this._isPointerDragging=!0,this._dragChip=e,this._dragIndex=Number(e.dataset.index);try{e.setPointerCapture(t.pointerId)}catch{}e.classList.add("opacity-60","select-none"),t.preventDefault()}}_onPointerMove(t){if(!this._isPointerDragging||!this._dragChip||!this._chipsWrap||t.pointerType==="mouse")return;const e=document.elementFromPoint(t.clientX,t.clientY);if(!e)return;const i=e.closest("mint-chip");if(i&&i!==this._dragChip){const s=i.getBoundingClientRect(),n=t.clientX,r=s.left+s.width*.5;if(n<r)this._dragChip.nextSibling!==i&&this._chipsWrap.insertBefore(this._dragChip,i);else if(i.nextSibling!==this._dragChip){const a=i.nextSibling;a?this._chipsWrap.insertBefore(this._dragChip,a):this._chipsWrap.appendChild(this._dragChip)}return}this._input&&e.closest("input")===this._input&&this._chipsWrap.insertBefore(this._dragChip,this._input)}_onPointerUp(t){if(this._isPointerDragging){if(this._isPointerDragging=!1,this._dragChip){try{this._dragChip.releasePointerCapture(t.pointerId)}catch{}this._dragChip.classList.remove("opacity-60","select-none")}this._syncOrderFromDom(),this._dragChip=null,this._dragIndex=null}}}customElements.get("mint-tags")||customElements.define("mint-tags",Et);class xt extends HTMLElement{constructor(){super(...arguments),this._clickHandler=null,this._keydownHandler=null}connectedCallback(){this._render(),this._setupEventListeners()}disconnectedCallback(){this._cleanupEventListeners()}_render(){this.classList.add("transition-colors","duration-200","focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-offset-1","focus-visible:ring-gray-400","dark:focus-visible:ring-gray-500","rounded"),this.getAttribute("disabled")==="true"?this.classList.add("cursor-not-allowed","opacity-50"):this.classList.add("cursor-pointer"),this.getAttribute("role")||this.setAttribute("role","button"),this.getAttribute("tabindex")||this.setAttribute("tabindex","0")}_setupEventListeners(){this._clickHandler=t=>{if(this.getAttribute("disabled")==="true"){t.preventDefault(),t.stopPropagation();return}this._handleClick(t)},this._keydownHandler=t=>{if(t.key==="Enter"||t.key===" "){if(this.getAttribute("disabled")==="true"){t.preventDefault(),t.stopPropagation();return}t.preventDefault(),this._handleClick(t)}},this.addEventListener("click",this._clickHandler),this.addEventListener("keydown",this._keydownHandler)}_cleanupEventListeners(){this._clickHandler&&(this.removeEventListener("click",this._clickHandler),this._clickHandler=null),this._keydownHandler&&(this.removeEventListener("keydown",this._keydownHandler),this._keydownHandler=null)}_handleClick(t){this.dispatchEvent(new CustomEvent("clickable-click",{bubbles:!0,composed:!0,detail:{originalEvent:t}}))}static get observedAttributes(){return["disabled"]}attributeChangedCallback(t,e,i){t==="disabled"&&(i==="true"?(this.classList.remove("cursor-pointer"),this.classList.add("opacity-50","cursor-not-allowed"),this.setAttribute("aria-disabled","true")):(this.classList.remove("opacity-50","cursor-not-allowed"),this.classList.add("cursor-pointer"),this.removeAttribute("aria-disabled")))}}customElements.get("mint-clickable")||customElements.define("mint-clickable",xt);class Ct extends HTMLElement{constructor(){super(),this._headingElement=null,this._iconElement=null,this._dismissButton=null,this._headerWrapper=null,this._bodyWrapper=null,this._dismissHandler=null}static get observedAttributes(){return["heading","dismissable","tone"]}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block"),this.render()}disconnectedCallback(){this._dismissButton&&this._dismissHandler&&this._dismissButton.removeEventListener("click",this._dismissHandler)}attributeChangedCallback(t,e,i){e!==i&&this.render()}getHeading(){return this.getAttribute("heading")||""}getTone(){const t=this.getAttribute("tone");return t==="info"||t==="success"||t==="warning"||t==="danger"?t:"info"}isDismissable(){return this.getAttribute("dismissable")==="true"}getIconName(){switch(this.getTone()){case"info":return"info";case"success":return"success";case"warning":return"warning";case"danger":return"error";default:return"info"}}getIconColorClasses(){switch(this.getTone()){case"info":return"text-blue-600 dark:text-blue-400";case"success":return"text-green-600 dark:text-green-400";case"warning":return"text-yellow-600 dark:text-yellow-400";case"danger":return"text-red-600 dark:text-red-400";default:return"text-blue-600 dark:text-blue-400"}}getHeadingColorClasses(){return"text-gray-900 dark:text-gray-100"}getHeaderBackgroundClasses(){switch(this.getTone()){case"info":return"bg-blue-100 dark:bg-blue-900/30";case"success":return"bg-green-100 dark:bg-green-900/30";case"warning":return"bg-yellow-100 dark:bg-yellow-900/30";case"danger":return"bg-red-100 dark:bg-red-900/30";default:return"bg-blue-100 dark:bg-blue-900/30"}}getBorderClasses(){switch(this.getTone()){case"info":return"border-blue-200 dark:border-blue-800";case"success":return"border-green-200 dark:border-green-800";case"warning":return"border-yellow-200 dark:border-yellow-800";case"danger":return"border-red-200 dark:border-red-800";default:return"border-blue-200 dark:border-blue-800"}}getAriaLive(){return this.getTone()==="danger"?"assertive":"polite"}render(){const t=this.getTone(),e=this.getHeading(),i=this.isDismissable();this.className=`box-border m-0 p-0 border-0 align-baseline block rounded-lg border shadow-sm overflow-hidden transition-colors duration-200 ${this.getBorderClasses()}`;const s=this.getAriaLive();this.setAttribute("role","alert"),this.setAttribute("aria-live",s),t==="danger"?this.setAttribute("aria-atomic","true"):this.removeAttribute("aria-atomic");const n=[];for(this._bodyWrapper?Array.from(this._bodyWrapper.childNodes).forEach(a=>{n.push(a)}):Array.from(this.childNodes).forEach(r=>{r!==this._headerWrapper&&r!==this._bodyWrapper&&r!==this._iconElement&&r!==this._headingElement&&r!==this._dismissButton&&n.push(r)}),this._dismissButton&&this._dismissHandler&&this._dismissButton.removeEventListener("click",this._dismissHandler);this.firstChild;)this.removeChild(this.firstChild);if(this._headerWrapper=null,this._bodyWrapper=null,this._iconElement=null,this._headingElement=null,this._dismissButton=null,this._headerWrapper=document.createElement("div"),this._headerWrapper.className=`px-4 py-3 flex items-center gap-3 ${this.getHeaderBackgroundClasses()}`,this._iconElement=document.createElement("mint-icon"),this._iconElement.setAttribute("name",this.getIconName()),this._iconElement.className=`flex-shrink-0 w-5 h-5 ${this.getIconColorClasses()}`,this._headerWrapper.appendChild(this._iconElement),this._headingElement=document.createElement("mint-text"),this._headingElement.className=`font-semibold flex-1 ${this.getHeadingColorClasses()}`,this._headingElement.textContent=e||"",this._headerWrapper.appendChild(this._headingElement),i){this._dismissButton=document.createElement("button"),this._dismissButton.className="flex-shrink-0 p-1 rounded hover:bg-black/10 dark:hover:bg-white/10 transition-colors",this._dismissButton.setAttribute("aria-label","Dismiss alert"),this._dismissButton.setAttribute("type","button");const r=document.createElement("mint-icon");r.setAttribute("name","close"),r.className="w-4 h-4 text-gray-700 dark:text-gray-300",this._dismissButton.appendChild(r),this._dismissHandler=a=>{a.preventDefault(),a.stopPropagation(),this.dispatchEvent(new CustomEvent("dismissed",{bubbles:!0,composed:!0})),this.remove()},this._dismissButton.addEventListener("click",this._dismissHandler),this._headerWrapper.appendChild(this._dismissButton)}this._bodyWrapper=document.createElement("div"),this._bodyWrapper.className="px-4 py-3 bg-white dark:bg-gray-900",n.forEach(r=>{this._bodyWrapper.appendChild(r)}),this.appendChild(this._headerWrapper),this.appendChild(this._bodyWrapper)}}customElements.get("mint-alert")||customElements.define("mint-alert",Ct);class wt extends HTMLElement{constructor(){super(),this._configuration=null,this._rows=[],this._search="",this._currentPage=1,this._perPage=15,this._totalRows=0,this._lastPage=0,this._offset=0,this._rowsToShow=15,this._loaded=!1,this._fetching=!1,this._loading=!1,this._fetchError=null,this._searching=!1,this._sorting=!1,this._sortingColumn=null,this._type="provided",this._searchTimeoutId=null,this._sortTimeoutId=null,this._searchColumns=[],this._exportColumns={},this._columns=[],this._tableId="",this._searchInput=null,this._tableContainer=null,this._paginationContainer=null,this._skeletonContainer=null,this._inMintCard=!1}static get observedAttributes(){return["configuration"]}get inMintCard(){return this._inMintCard}get configuration(){return this._configuration}set configuration(t){t&&typeof t=="object"&&!Array.isArray(t)?(this._configuration=t,this._tableId=this._configuration.id||`mint-resource-table-${Date.now()}`,this._perPage=this._configuration.perPage||15,this._rowsToShow=this._perPage,this._type=typeof this._configuration.data=="string"?"ajax":"provided",this._loaded=!1,this._currentPage=1,this._offset=0,this._type==="provided"&&Array.isArray(this._configuration.data)&&(this._rows=[...this._configuration.data],this._totalRows=this._configuration.data.length),this._initializeColumns(),this._loadColumnVisibility(),this.isConnected&&this.render()):t==null?this._configuration=null:this._parseConfiguration()}connectedCallback(){var t,e;this.classList.add("box-border","m-0","p-0","border-0","align-baseline","block","w-full"),this._inMintCard=((e=(t=this.parentElement)==null?void 0:t.tagName)==null?void 0:e.toLowerCase())==="mint-card",this._configuration||this._parseConfiguration(),this._initializeColumns(),this._loadColumnVisibility(),this._loadPageFromUrl(),this._attachRowClickHandler(),this.render()}disconnectedCallback(){this._searchTimeoutId&&clearTimeout(this._searchTimeoutId),this._rowClickHandler&&(this.removeEventListener("click",this._rowClickHandler,!0),this._rowClickHandler=null),this._scrollHandler&&(window.removeEventListener("scroll",this._scrollHandler),this._scrollHandler=null)}attributeChangedCallback(t,e,i){t==="configuration"&&e!==i&&(!this._configuration||typeof i=="string")&&(this._parseConfiguration(),this.render())}refresh(){this._configuration&&(this._type==="ajax"?this._configuration.loadMore?(this._offset=0,this._currentPage=1,this._rowsToShow=this._perPage,this._rows=[],this._fetchData(void 0,!0,this._perPage,0)):this._fetchData(void 0,!0,this._perPage,this._offset):this.render())}_parseConfiguration(){const t=this.getAttribute("configuration");if(!t){console.error("mint-resource-table: configuration attribute is required");return}try{this._configuration=JSON.parse(t),this._tableId=this._configuration.id||`mint-resource-table-${Date.now()}`,this._perPage=this._configuration.perPage||15,this._rowsToShow=this._perPage,this._type=typeof this._configuration.data=="string"?"ajax":"provided",this._loaded=!1;const e=this._getPageFromUrl();this._currentPage=e||1,this._offset=(this._currentPage-1)*this._perPage,this._type==="provided"&&Array.isArray(this._configuration.data)&&(this._rows=[...this._configuration.data],this._totalRows=this._configuration.data.length),this._initializeColumns(),this._loadColumnVisibility()}catch(e){console.error("mint-resource-table: Invalid configuration JSON",e)}}_getColumnVisibilityStorageKey(){return`mrtc-${this._tableId}`}_saveColumnVisibility(){if(!this._configuration)return;const t={};this._configuration.columns.forEach((e,i)=>{t[i]=e.hidden||!1});try{localStorage.setItem(this._getColumnVisibilityStorageKey(),JSON.stringify(t))}catch(e){console.warn("Failed to save column visibility to localStorage:",e)}}_loadColumnVisibility(){if(this._configuration)try{const t=localStorage.getItem(this._getColumnVisibilityStorageKey());if(t){const e=JSON.parse(t);this._configuration.columns.forEach((i,s)=>{e[s]!==void 0&&(i.hidden=e[s])})}}catch(t){console.warn("Failed to load column visibility from localStorage:",t)}}_initializeColumns(){this._configuration&&(this._searchColumns=[],this._exportColumns={},this._columns=[],this._configuration.columns.forEach(t=>{t.searchable&&t.data&&this._searchColumns.push(t.data),t.export&&t.data&&(this._exportColumns[t.data]=t.label),t.data&&this._columns.push(t.data)}),this._configuration.sortBy||(this._configuration.sortBy="id"),this._configuration.sort||(this._configuration.sort="asc"))}async _fetchData(t,e=!0,i,s){var l,o,c,h,p,d,f,u;if(!this._configuration)return;const n=t||(typeof this._configuration.data=="string"?this._configuration.data:null);if(!n||this._fetching||this._loading)return;e&&(this._fetching=!0,this.render()),this._loading=!0;const r=i||this._perPage,a=s!==void 0?s:this._offset;try{const m=new URLSearchParams({perPage:r.toString(),offset:a.toString(),search:this._search,sortBy:this._configuration.sortBy||"id",sort:this._configuration.sort||"asc",searchColumns:this._searchColumns.join(","),columns:this._columns.join(",")}),g={};this._configuration.headers&&(g.headers=this._configuration.headers);const _=await fetch(`${n}?${m.toString()}`,g);if(!_.ok)throw new Error(`HTTP error! status: ${_.status}`);const v=await _.json(),b=((l=v.content)==null?void 0:l.rows)||[],k=((o=v.content)==null?void 0:o.total)||0;if(this._configuration.loadMore&&a!==0)this._rows=this._rows.concat(b);else{let C=b;this._configuration.predefinedData?(C=[...this._configuration.predefinedData,...b],this._totalRows=k+this._configuration.predefinedData.length):this._totalRows=k,this._rows=C}const A=Math.floor(a/r)+1;this._configuration.loadMore||(((c=v.content)==null?void 0:c.current_page)!==void 0&&v.content.current_page===A?this._currentPage=v.content.current_page:this._currentPage=A,this._offset=(this._currentPage-1)*r),this._lastPage=((h=v.content)==null?void 0:h.last_page)||1,this._fetching=!1,this._loaded=!0,this._loading=!1,this._fetchError=null,this._searching=!1;const E=this._sorting;if(E&&this._updateSortIcons(),this._sorting=!1,this._sortingColumn=null,E&&this._updateSortIcons(),this.dispatchEvent(new CustomEvent("loaded",{detail:{rows:this._rows}})),this._updateSearchIcon(),(d=(p=this.querySelector(`#${this._tableId}`))==null?void 0:p.closest("table"))==null?void 0:d.querySelector("tbody")){if(E){const C=this._loading,S=this._fetching;this._loading=!1,this._fetching=!1,this._updateTableBody(),this._loading=C,this._fetching=S}else this._updateTableBody();this._updatePagination()}else this.render()}catch(m){this._fetching=!1,this._loading=!1,this._loaded=!0,this._searching=!1,this._fetchError=m instanceof Error?m.message:"Failed to fetch data",console.error("mint-resource-table: Error fetching data",m),this._updateSearchIcon(),((u=(f=this.querySelector(`#${this._tableId}`))==null?void 0:f.closest("table"))==null?void 0:u.querySelector("tbody"))?(this._updateTableBody(),this._updatePagination()):this.render()}}_getRows(){if(!this._configuration)return[];if(this._type==="ajax")return this._rows;let t=[...this._rows];const e=this._configuration.sortBy||"id",i=this._configuration.sort||"asc";if(this._search){const s=this._search.toLowerCase().trim().split(/\s+/);t=t.filter(n=>{const r=Object.values(n).map(a=>String(a).toLowerCase()).join(" ");return s.every(a=>r.includes(a))})}if(t.sort((s,n)=>{const r=s[e],a=n[e];if(r==null&&a==null)return 0;if(r==null)return 1;if(a==null)return-1;const l=typeof r=="number"?r:typeof r=="string"&&!isNaN(Number(r))&&r.trim()!==""?Number(r):null,o=typeof a=="number"?a:typeof a=="string"&&!isNaN(Number(a))&&a.trim()!==""?Number(a):null;if(l!==null&&o!==null){const d=l-o;return i==="asc"?d:-d}const c=r instanceof Date?r:typeof r=="string"?new Date(r):null,h=a instanceof Date?a:typeof a=="string"?new Date(a):null;if(c&&h&&!isNaN(c.getTime())&&!isNaN(h.getTime())){const d=c.getTime()-h.getTime();return i==="asc"?d:-d}const p=String(r).localeCompare(String(a),void 0,{numeric:!0,sensitivity:"base"});return i==="asc"?p:-p}),this._perPage){const s=Math.ceil(t.length/this._perPage);this._lastPage=s,t.forEach((n,r)=>{n.page=Math.ceil((r+1)/this._perPage)}),this._currentPage>s&&s>0&&(this._currentPage=s)}return this._configuration.loadMore?t.slice(0,this._rowsToShow):t.filter(s=>!this._perPage||s.page===this._currentPage)}_toggleSort(t){var i;if(!this._configuration||!t.data||!t.sortable)return;const e=t.data;if(this._sortTimeoutId!==null&&(clearTimeout(this._sortTimeoutId),this._sortTimeoutId=null),this._sorting=!0,this._sortingColumn=t,this._updateSortIcons(),this._type==="ajax")this._sortTimeoutId=window.setTimeout(()=>{var n;if(this._sortTimeoutId=null,!this._configuration||!e||!t.sortable)return;let s=this._configuration.sort||"asc";((n=this._configuration.sortBy)==null?void 0:n.toLowerCase())===e.toLowerCase()&&(s=s==="desc"?"asc":"desc"),this._configuration.sort=s,this._configuration.sortBy=e,this._updateSortIcons(),this._offset=0,this._currentPage=1,this._configuration.loadMore&&(this._rowsToShow=this._perPage),this._fetching=!1,this._loading=!1,this._configuration.loadMore?this._fetchData(void 0,!1,this._perPage,0):this._fetchData(void 0,!1,this._perPage,0)},10);else{let s=this._configuration.sort||"asc";((i=this._configuration.sortBy)==null?void 0:i.toLowerCase())===e.toLowerCase()&&(s=s==="desc"?"asc":"desc"),this._configuration.sort=s,this._configuration.sortBy=e,this._currentPage=1,this._sorting=!1,this._sortingColumn=null,this._updateSortIcons(),this.render()}}_getSortClass(t){var e,i,s,n,r;return this._sorting&&this._sortingColumn===t?"spinner":((i=(e=this._configuration)==null?void 0:e.sortBy)==null?void 0:i.toLowerCase())===((s=t.data)==null?void 0:s.toLowerCase())?((r=(n=this._configuration)==null?void 0:n.sort)==null?void 0:r.toLowerCase())==="desc"?"caret-down":"caret-up":""}_updateSortIcons(){this._configuration&&this._configuration.columns.forEach((t,e)=>{if(!t.sortable||t.hidden)return;const i=this.querySelector(`th[data-column-key="${e}"]`);if(!i)return;const s=i.querySelector(".ml-2.flex.items-center");if(!s)return;const n=s.querySelector("mint-icon"),r=s.querySelector("mint-spinner"),a=this._getSortClass(t);if(a==="spinner"){if(n&&n.remove(),!r){const l=document.createElement("mint-spinner");l.className="w-4 h-4",s.appendChild(l)}}else if(r&&r.remove(),n)n.setAttribute("name",a),n.className=`w-4 h-4 ${a==="sort-arrows"?"text-gray-400":""}`;else{const l=document.createElement("mint-icon");l.setAttribute("name",a),l.className=`w-4 h-4 ${a==="sort-arrows"?"text-gray-400":""}`,s.appendChild(l)}})}_showFetchingState(){}_triggerSearch(){this._searchTimeoutId&&clearTimeout(this._searchTimeoutId),this._searching=!0,this._type==="ajax"&&this._updateSearchIcon(),this._type!=="ajax"&&(this._currentPage=1),this._updateTableBody(),this._type!=="ajax"&&this._updatePagination(),this._searchTimeoutId=window.setTimeout(()=>{this._type==="ajax"?(this._offset=0,this._fetchData(void 0,!1,this._perPage,0)):this._searching=!1},400)}_updateSearchIcon(){const t=this.querySelector(`#search-${this._tableId}`);if(!t)return;const e=this._type==="ajax"&&(this._searching||this._fetching);setTimeout(()=>{const i=t.querySelector(".relative")||t.querySelector("div");if(!i)return;const s=i.querySelector("mint-icon"),n=i.querySelector("mint-spinner");if(e){if(s&&!n){const r=document.createElement("mint-spinner");r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 pointer-events-none",s.replaceWith(r)}else if(!s&&!n){const r=document.createElement("mint-spinner");r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 pointer-events-none",i.appendChild(r)}}else if(n){t.getAttribute("icon")||t.setAttribute("icon","search");const r=document.createElement("mint-icon");r.setAttribute("name","search"),r.className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400 dark:text-gray-500 pointer-events-none",n.replaceWith(r)}},0)}_updateTableBody(){var a,l;if(!this._configuration)return;const t=this._getRows(),e=(l=(a=this.querySelector(`#${this._tableId}`))==null?void 0:a.closest("table"))==null?void 0:l.querySelector("tbody");if(!e){this.render();return}const i=this.querySelector(`#search-${this._tableId}`),s=document.activeElement===i||(i==null?void 0:i.querySelector("input"))===document.activeElement,n=this._search;let r="";if(!((this._fetching||this._loading)&&!this._sorting)&&(t.forEach((o,c)=>{const h=typeof this._configuration.onRowClick=="function",p=h?"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors":"";r+=`<tr data-row-index="${c}" ${h?'data-row-clickable="true"':""}${p?` class="${p}"`:""}>`,this._configuration.columns.forEach((d,f)=>{if(d.hidden)return;const u=!d.show||d.show(this,o);if(r+=`<td style="${this._getStyle(d)}" class="${this._getClasses(d,!0)}">`,u)if(d.raw)if(d.action)(!d.action.show||d.action.show(this,o))&&(r+=`<mint-button variant="solid" data-action="column-action" data-row-index="${c}" data-column-key="${this._configuration.columns.indexOf(d)}">${d.action.label}</mint-button>`);else if(d.actions)if(d.actionStyle!=="buttons"){const m=`actions-popover-${this._tableId}-${c}`,g=`actions-button-${this._tableId}-${c}`;r+=`<mint-button id="${g}" variant="link" icon="ellipsis">`,r+="</mint-button>",r+=`<mint-popover id="${m}" trigger-id="${g}" direction="down">`,d.actions.forEach((_,v)=>{if(!_.show||_.show(this,o)){const b=typeof _.label=="function"?_.label(this,o):_.label;r+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${c}" data-action-index="${v}" data-column-key="${this._configuration.columns.indexOf(d)}">${b}</div>`}}),r+="</mint-popover>"}else d.actions.forEach((m,g)=>{if(!m.show||m.show(this,o)){const _=m.label?typeof m.label=="function"?m.label(this,o):m.label:"",v=m.icon?` icon="${this._escapeHtml(m.icon)}"`:"",b=m.tone?` tone="${this._escapeHtml(m.tone)}"`:"";r+=`<mint-button variant="link" class="${m.classes||""}" data-action="row-action" data-row-index="${c}" data-action-index="${g}" data-column-key="${this._configuration.columns.indexOf(d)}"${v}${b}>`,_&&(r+=this._escapeHtml(String(_))),r+="</mint-button>"}});else typeof d.format=="function"?r+=d.format(this,o):d.data&&(r+=this._escapeHtml(String(o[d.data]||"")));else if(d.action){if(!d.action.show||d.action.show(this,o)){const m=typeof d.action.label=="function"?d.action.label(this,o):d.action.label;r+=`<mint-button variant="solid" data-action="column-action" data-row-index="${c}" data-column-key="${this._configuration.columns.indexOf(d)}">${this._escapeHtml(String(m))}</mint-button>`}}else if(d.actions)if(d.actionStyle!=="buttons"){const m=`actions-popover-${this._tableId}-${c}`,g=`actions-button-${this._tableId}-${c}`;r+=`<mint-button id="${g}" variant="link" icon="ellipsis">`,r+="</mint-button>",r+=`<mint-popover id="${m}" trigger-id="${g}" direction="down">`,d.actions.forEach((_,v)=>{if(!_.show||_.show(this,o)){const b=typeof _.label=="function"?_.label(this,o):_.label;r+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${c}" data-action-index="${v}" data-column-key="${this._configuration.columns.indexOf(d)}">${b}</div>`}}),r+="</mint-popover>"}else d.actions.forEach((m,g)=>{if(!m.show||m.show(this,o)){const _=m.label?typeof m.label=="function"?m.label(this,o):m.label:"",v=m.icon?` icon="${this._escapeHtml(m.icon)}"`:"",b=m.tone?` tone="${this._escapeHtml(m.tone)}"`:"";r+=`<mint-button variant="link" class="${m.classes||""}" data-action="row-action" data-row-index="${c}" data-action-index="${g}" data-column-key="${this._configuration.columns.indexOf(d)}"${v}${b}>`,_&&(r+=this._escapeHtml(String(_))),r+="</mint-button>"}});else typeof d.format=="function"?r+=this._escapeHtml(d.format(this,o)):d.data&&(r+=this._escapeHtml(String(o[d.data]||"")));r+="</td>"}),r+="</tr>"}),t.length===0&&(this._fetchError?r+=`<tr><td colspan="${this._configuration.columns.filter(o=>!o.hidden).length}" class="text-center py-8 text-red-500 dark:text-red-400">Failed to load data: ${this._escapeHtml(this._fetchError)}</td></tr>`:r+=`<tr><td colspan="${this._configuration.columns.filter(o=>!o.hidden).length}" class="text-center py-8">No records found.</td></tr>`),e.innerHTML=r,this._attachTableEventListeners(),this._attachRowClickHandler(),s&&i)){const o=i.querySelector("input")||i._element;o?(o.value=n,setTimeout(()=>{o.focus(),o.setSelectionRange(n.length,n.length)},0)):i.value!==void 0&&(i.value=n,setTimeout(()=>{i.focus()},0))}}_updatePagination(){var s,n;if(!this._configuration)return;const t=this._lastPage||Math.ceil(this._rows.length/this._perPage);if(!this._configuration.perPage||this._configuration.loadMore||t<=1){const r=(s=this.querySelector("nav"))==null?void 0:s.closest(".flex.justify-end");r&&r.remove();return}let e=(n=this.querySelector("nav"))==null?void 0:n.closest(".flex.justify-end");if(!e){const r=this.querySelector("mint-table");if(!r){this.render();return}e=document.createElement("div"),e.className="flex justify-end "+(this._inMintCard?"p-3.5":"mt-4"),r.insertAdjacentElement("afterend",e)}let i="<nav>";i+='<ul class="flex gap-1">',i+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let r=1;r<=Math.min(2,t);r++){const l=this._currentPage===r?' disabled="true"':"";i+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}if(t>2&&(i+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<t-1&&(i+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,i+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,i+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),t>2)for(let r=Math.max(t-1,this._currentPage+2);r<=t;r++){const l=this._currentPage===r?' disabled="true"':"";i+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}i+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=t?'disabled="true"':""} data-action="page-next"></mint-button></li>`,i+="</ul>",i+="</nav>",e.innerHTML=i,setTimeout(()=>{this._attachPaginationListeners(),e.querySelectorAll("mint-button[data-action]").forEach(r=>{"render"in r&&typeof r.render=="function"&&r.render()})},0)}_loadMore(){this._loading||this._fetching||!(this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows)||(this._offset+=this._perPage,this._currentPage+=1,this._rowsToShow+=this._perPage,this._type==="ajax"?this._fetchData():this.render())}_goToPage(t){const e=this._lastPage||Math.ceil(this._rows.length/this._perPage);t>e&&(t=e),t<1&&(t=1),this._currentPage=t,this._offset=(t-1)*this._perPage,this._updatePageInUrl(t),this._type==="ajax"?this._fetchData():this.render()}_handleButtonClick(t){if(this._configuration)switch(t.type){case"export":break;case"print":window.print();break;case"csv":this._downloadCSV();break;default:t.onClick&&t.onClick(this);break}}_downloadCSV(){if(!this._configuration)return;const t=this.querySelector("table");if(!t)return;const e=t.querySelectorAll("tr");let i="data:text/csv;charset=utf-8,";e.forEach(r=>{const a=[];r.querySelectorAll("th, td").forEach(l=>{var c;const o=l.getAttribute("colspan");if(o)for(let h=0;h<parseInt(o)-1;h++)a.push("");a.push('"'+((c=l.textContent)==null?void 0:c.trim().replace(/"/g,'""'))+'"')}),i+=a.join(",")+`
|
|
153
|
+
`});const s=encodeURI(i),n=document.createElement("a");n.setAttribute("href",s),n.setAttribute("download",`${this._configuration.export_name||this._tableId}.csv`),document.body.appendChild(n),n.click(),document.body.removeChild(n)}_columnChange(t,e){const i=t.target.checked;e.hidden=!i,this._saveColumnVisibility();const s=`edit-columns-popover-${this._tableId}`,n=this.querySelector(`#${s}`),r=n==null?void 0:n.hasAttribute("open");this.render(),r&&n&&requestAnimationFrame(()=>{const a=this.querySelector(`#${s}`);a&&typeof a.open=="function"&&a.open()})}_getStyle(t){let e="";return(t.nowrap||t.actions)&&(e+="white-space: nowrap;"),t.offsetLeft&&(e+=`left: ${t.offsetLeft} !important;`),t.offsetRight&&(e+=`right: ${t.offsetRight} !important;`),t.width&&(e+=`min-width: ${t.width}px; max-width: ${t.width}px;`),e}_getClasses(t,e=!1){const i=[];return t.class&&i.push(t.class.trim()),t.sortable&&!e&&i.push("cursor-pointer"),t.stickLeft&&i.push("sticky-left"),t.stickRight&&i.push("sticky-right"),i.join(" ")}render(){if(!this._configuration){this.innerHTML='<div class="p-4 text-red-500">Error: Invalid configuration</div>';return}const t=!this._loaded||this._rows.length>0||this._search.length>0||this._searching,e=this._getRows(),i=this._lastPage||Math.ceil(this._rows.length/this._perPage);let s="";if(t){if(s+='<div class="flex '+(this._inMintCard?"p-3.5":"mb-3")+'">',s+='<div class="flex-grow-1 flex-1">',s+='<div class="flex gap-2 items-center">',this._configuration.showSearch!==!1){const r=`search-${this._tableId}`;s+=`<mint-input id="${r}" type="search" label="" placeholder="Search..." class="flex-1" icon="search" value="${this._escapeHtml(this._search)}"></mint-input>`}if(this._configuration.buttons&&this._configuration.buttons.forEach(r=>{const a=r.icon?` icon="${this._escapeHtml(r.icon)}"`:"",l=r.tone?` tone="${this._escapeHtml(r.tone)}"`:"";s+=`<mint-button variant="solid" class="${r.class||""}" data-button-type="${r.type||"custom"}"${a}${l}>`,r.label&&(s+=this._escapeHtml(r.label)),s+="</mint-button>"}),s+="</div>",s+="</div>",this._configuration.editColumns!==!1&&this._configuration.columns.some(a=>!a.actions&&a.editable!==!1)){const a=`edit-columns-popover-${this._tableId}`,l=`edit-columns-button-${this._tableId}`;s+='<div class="ml-2">',s+=`<mint-button id="${l}" variant="solid" icon="edit"></mint-button>`,s+=`<mint-popover id="${a}" trigger-id="${l}" direction="down">`,this._configuration.columns.forEach(o=>{!o.actions&&o.editable!==!1&&(s+='<div class="p-2">',s+=`<mint-checkbox label="${o.label}" ${o.hidden?"":"checked"} data-column-key="${this._configuration.columns.indexOf(o)}"></mint-checkbox>`,s+="</div>")}),s+="</mint-popover>",s+="</div>"}s+="</div>"}if(this._type==="ajax"&&(!this._loaded||this._fetching||this._loading)&&!this._fetchError&&!this._sorting){s+='<mint-table class="table-section'+(this._inMintCard?" rounded-t-none":"")+'">',s+=`<table id="${this._tableId}">`,s+="<thead><tr>",this._configuration.columns.forEach((r,a)=>{r.hidden||(s+=`<th width="${r.width||""}" style="${this._getStyle(r)}" class="${this._getClasses(r)}" data-column-key="${a}">`,r.showLabel!==!1&&(s+='<div class="flex items-center">',s+=`<div class="flex-1">${r.raw?r.label:this._escapeHtml(r.label)}</div>`,r.sortable&&(s+='<div class="ml-2 flex items-center">',s+='<mint-icon name="" class="w-4 h-4 text-gray-400"></mint-icon>',s+="</div>"),s+="</div>"),s+="</th>")}),s+="</tr></thead>",s+="<tbody>";for(let r=0;r<4;r++)s+="<tr>",this._configuration.columns.forEach(a=>{a.hidden||(s+=`<td style="${this._getStyle(a)}" class="${this._getClasses(a,!0)}">`,s+='<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></div>',s+="</td>")}),s+="</tr>";if(s+="</tbody>",s+="</table>",s+="</mint-table>",this._configuration.perPage&&!this._configuration.loadMore&&(i>1||this._lastPage>0)){const r=this._lastPage>0?this._lastPage:i;if(r>1){s+='<div class="flex justify-end '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<nav>",s+='<ul class="flex gap-1">',s+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let a=1;a<=Math.min(2,r);a++){const o=this._currentPage===a?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${o} data-action="page" data-page="${a}">${a}</mint-button></li>`}if(r>2&&(s+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<r-1&&(s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),r>2)for(let a=Math.max(r-1,this._currentPage+2);a<=r;a++){const o=this._currentPage===a?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${o} data-action="page" data-page="${a}">${a}</mint-button></li>`}s+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=r?'disabled="true"':""} data-action="page-next"></mint-button></li>`,s+="</ul>",s+="</nav>",s+="</div>"}}}else if(e.length>0||this._search.length>0||this._searching||this._fetchError){if(s+='<mint-table class="table-section'+(this._inMintCard?" rounded-t-none":"")+'">',s+=`<table id="${this._tableId}">`,s+="<thead><tr>",this._configuration.columns.forEach((r,a)=>{if(!r.hidden){if(s+=`<th width="${r.width||""}" style="${this._getStyle(r)}" class="${this._getClasses(r)}" data-column-key="${a}">`,r.showLabel!==!1){if(s+='<div class="flex items-center">',s+=`<div class="flex-1">${r.raw?r.label:this._escapeHtml(r.label)}</div>`,r.sortable){s+='<div class="ml-2 flex items-center">';const l=this._getSortClass(r);l==="spinner"?s+='<mint-spinner class="w-4 h-4"></mint-spinner>':s+=`<mint-icon name="${l}" class="w-4 h-4 ${l==="sort-arrows"?"text-gray-400":""}"></mint-icon>`,s+="</div>"}s+="</div>"}s+="</th>"}}),s+="</tr></thead>",s+="<tbody>",!this._fetching&&!this._loading&&e.forEach((r,a)=>{const l=typeof this._configuration.onRowClick=="function",o=l?"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors":"";s+=`<tr data-row-index="${a}" ${l?'data-row-clickable="true"':""}${o?` class="${o}"`:""}>`,this._configuration.columns.forEach((c,h)=>{if(c.hidden)return;const p=!c.show||c.show(this,r);if(s+=`<td style="${this._getStyle(c)}" class="${this._getClasses(c,!0)}">`,p)if(c.raw)if(c.action){if(!c.action.show||c.action.show(this,r)){const d=typeof c.action.label=="function"?c.action.label(this,r):c.action.label;s+=`<mint-button variant="solid" data-action="column-action" data-row-index="${a}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(d))}</mint-button>`}}else if(c.actions)if(c.actionStyle!=="buttons"){const d=`actions-popover-${this._tableId}-${a}`,f=`actions-button-${this._tableId}-${a}`;s+=`<mint-button id="${f}" variant="link" icon="ellipsis">`,s+="</mint-button>",s+=`<mint-popover id="${d}" trigger-id="${f}" direction="down">`,c.actions.forEach((u,m)=>{if(!u.show||u.show(this,r)){const g=typeof u.label=="function"?u.label(this,r):u.label;s+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${a}" data-action-index="${m}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(g))}</div>`}}),s+="</mint-popover>"}else c.actions.forEach((d,f)=>{if(!d.show||d.show(this,r)){const u=d.label?typeof d.label=="function"?d.label(this,r):d.label:"",m=d.icon?` icon="${this._escapeHtml(d.icon)}"`:"",g=d.tone?` tone="${this._escapeHtml(d.tone)}"`:"";s+=`<mint-button variant="link" class="${d.classes||""}" data-action="row-action" data-row-index="${a}" data-action-index="${f}" data-column-key="${this._configuration.columns.indexOf(c)}"${m}${g}>`,u&&(s+=this._escapeHtml(String(u))),s+="</mint-button>"}});else typeof c.format=="function"?s+=c.format(this,r):c.data&&(s+=this._escapeHtml(String(r[c.data]||"")));else if(c.action)(!c.action.show||c.action.show(this,r))&&(s+=`<mint-button variant="solid" data-action="column-action" data-row-index="${a}" data-column-key="${this._configuration.columns.indexOf(c)}">${c.action.label}</mint-button>`);else if(c.actions)if(c.actionStyle!=="buttons"){const d=`actions-popover-${this._tableId}-${a}`,f=`actions-button-${this._tableId}-${a}`;s+=`<mint-button id="${f}" variant="link" icon="ellipsis">`,s+="</mint-button>",s+=`<mint-popover id="${d}" trigger-id="${f}" direction="down">`,c.actions.forEach((u,m)=>{if(!u.show||u.show(this,r)){const g=typeof u.label=="function"?u.label(this,r):u.label;s+=`<div class="p-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700" data-action="row-action" data-row-index="${a}" data-action-index="${m}" data-column-key="${this._configuration.columns.indexOf(c)}">${this._escapeHtml(String(g))}</div>`}}),s+="</mint-popover>"}else c.actions.forEach((d,f)=>{if(!d.show||d.show(this,r)){const u=d.label?typeof d.label=="function"?d.label(this,r):d.label:"",m=d.icon?` icon="${this._escapeHtml(d.icon)}"`:"",g=d.tone?` tone="${this._escapeHtml(d.tone)}"`:"";s+=`<mint-button variant="link" class="${d.classes||""}" data-action="row-action" data-row-index="${a}" data-action-index="${f}" data-column-key="${this._configuration.columns.indexOf(c)}"${m}${g}>`,u&&(s+=this._escapeHtml(String(u))),s+="</mint-button>"}});else typeof c.format=="function"?s+=this._escapeHtml(c.format(this,r)):c.data&&(s+=this._escapeHtml(String(r[c.data]||"")));s+="</td>"}),s+="</tr>"}),!this._fetching&&!this._loading&&e.length===0&&(this._fetchError?s+=`<tr><td colspan="${this._configuration.columns.filter(r=>!r.hidden).length}" class="text-center py-8 text-red-500 dark:text-red-400">Failed to load data: ${this._escapeHtml(this._fetchError)}</td></tr>`:s+=`<tr><td colspan="${this._configuration.columns.filter(r=>!r.hidden).length}" class="text-center py-8">No records found.</td></tr>`),s+="</tbody>",s+="</table>",this._configuration.loadMore&&(this._loading||this._fetching?(s+='<div class="flex justify-center '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<mint-spinner></mint-spinner>",s+="</div>"):(this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows)&&(s+='<div class="flex justify-center '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+='<mint-button variant="ghost" data-action="load-more">Load more</mint-button>',s+="</div>")),this._configuration.perPage&&!this._configuration.loadMore&&this._loaded&&i>1){s+='<div class="flex justify-end '+(this._inMintCard?"p-3.5":"mt-4")+'">',s+="<nav>",s+='<ul class="flex gap-1">',s+=`<li><mint-button variant="solid" size="sm" icon="caret-left" ${this._currentPage===1?'disabled="true"':""} data-action="page-prev"></mint-button></li>`;for(let r=1;r<=Math.min(2,i);r++){const l=this._currentPage===r?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}if(i>2&&(s+='<li><span class="px-2">...</span></li>'),this._currentPage>2&&this._currentPage<i-1&&(s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage-1}">${this._currentPage-1}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" disabled="true" data-action="page" data-page="${this._currentPage}">${this._currentPage}</mint-button></li>`,s+=`<li><mint-button variant="solid" size="sm" data-action="page" data-page="${this._currentPage+1}">${this._currentPage+1}</mint-button></li>`),i>2)for(let r=Math.max(i-1,this._currentPage+2);r<=i;r++){const l=this._currentPage===r?' disabled="true"':"";s+=`<li><mint-button variant="solid" size="sm"${l} data-action="page" data-page="${r}">${r}</mint-button></li>`}s+=`<li><mint-button variant="solid" size="sm" icon="caret-right" ${this._currentPage>=i?'disabled="true"':""} data-action="page-next"></mint-button></li>`,s+="</ul>",s+="</nav>",s+="</div>"}s+="</mint-table>"}else s+='<slot name="empty"></slot>';this.innerHTML=s,this.querySelectorAll("mint-button[data-action]").forEach(r=>{r.render&&r.render()}),this.querySelectorAll("mint-button[data-button-type]").forEach(r=>{r.render&&r.render()}),this._attachEventListeners(),this._type==="ajax"&&!this._loaded&&!this._fetching&&!this._loading&&this._fetchData()}_attachRowClickHandler(){this._rowClickHandler&&this.removeEventListener("click",this._rowClickHandler,!0);const t=e=>{var o;const i=e.target;if(i.tagName==="MINT-BUTTON"||i.tagName==="BUTTON"||i.closest("mint-button")||i.closest("button")||i.closest("mint-popover")||i.closest("[data-action]"))return;const s=i.closest('tr[data-row-clickable="true"]');if(!s)return;const n=s.getAttribute("data-row-index");if(!n)return;const r=parseInt(n),l=this._getRows()[r];!l||!((o=this._configuration)!=null&&o.onRowClick)||(this._configuration.onRowClick.length===1?this._configuration.onRowClick(l):this._configuration.onRowClick(this,l))};this.addEventListener("click",t,!0),this._rowClickHandler=t}_attachPaginationListeners(){this.querySelectorAll('[data-action="page"]').forEach(t=>{t.addEventListener("click",()=>{const e=parseInt(t.getAttribute("data-page")||"1");this._goToPage(e)})}),this.querySelectorAll('[data-action="page-prev"]').forEach(t=>{t.addEventListener("click",()=>{this._goToPage(this._currentPage-1)})}),this.querySelectorAll('[data-action="page-next"]').forEach(t=>{t.addEventListener("click",()=>{this._goToPage(this._currentPage+1)})})}_attachTableEventListeners(){this.querySelectorAll('[data-action="row-action"]').forEach(t=>{t.addEventListener("click",()=>{var l;const e=parseInt(t.getAttribute("data-row-index")||"0"),i=parseInt(t.getAttribute("data-action-index")||"0"),s=parseInt(t.getAttribute("data-column-key")||"0"),r=this._getRows()[e],a=(l=this._configuration)==null?void 0:l.columns[s];a&&a.actions&&a.actions[i]&&a.actions[i].onClick(this,r)})}),this.querySelectorAll('[data-action="column-action"]').forEach(t=>{t.addEventListener("click",()=>{var a;const e=parseInt(t.getAttribute("data-row-index")||"0"),i=parseInt(t.getAttribute("data-column-key")||"0"),n=this._getRows()[e],r=(a=this._configuration)==null?void 0:a.columns[i];r&&r.action&&r.action.onClick(this,n)})})}_attachEventListeners(){var e;const t=this.querySelector(`#search-${this._tableId}`);if(t){const i=t.querySelector("input")||t._element;i?i.addEventListener("input",s=>{this._search=s.target.value,this._triggerSearch()}):t.addEventListener("input",s=>{this._search=t.value||s.target.value||"",this._triggerSearch()})}if(this._attachTableEventListeners(),this._attachRowClickHandler(),this.querySelectorAll("th[data-column-key]").forEach(i=>{i.addEventListener("click",()=>{var r;const s=parseInt(i.getAttribute("data-column-key")||"0"),n=(r=this._configuration)==null?void 0:r.columns[s];n&&this._toggleSort(n)})}),this.querySelectorAll("[data-button-type]").forEach(i=>{i.addEventListener("click",()=>{var r,a;const s=i.getAttribute("data-button-type"),n=(a=(r=this._configuration)==null?void 0:r.buttons)==null?void 0:a.find(l=>(l.type||"custom")===s);n&&this._handleButtonClick(n)})}),this.querySelectorAll("mint-checkbox[data-column-key]").forEach(i=>{i.addEventListener("change",s=>{var a;s.stopPropagation();const n=parseInt(i.getAttribute("data-column-key")||"0"),r=(a=this._configuration)==null?void 0:a.columns[n];r&&this._columnChange(s,r)}),i.addEventListener("click",s=>{s.stopPropagation()})}),this._attachPaginationListeners(),this.querySelectorAll('[data-action="load-more"]').forEach(i=>{i.addEventListener("click",()=>{this._loadMore()})}),(e=this._configuration)!=null&&e.loadMore){this._scrollHandler&&window.removeEventListener("scroll",this._scrollHandler);const i=()=>{const s=window.pageYOffset||document.documentElement.scrollTop,n=window.innerHeight;if(document.documentElement.scrollHeight-s-n<=100){const a=this._type==="ajax"?this._lastPage>0&&this._currentPage<this._lastPage:this._totalRows>0&&this._rowsToShow<this._totalRows;!this._loading&&!this._fetching&&a&&this._loadMore()}};this._scrollHandler=i,window.addEventListener("scroll",i)}}_escapeHtml(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}_getPageFromUrl(){if(!this._tableId)return null;const e=new URLSearchParams(window.location.search).get(`mui.${this._tableId}`);if(!e)return null;const i=parseInt(e,10);return isNaN(i)||i<1?null:i}_updatePageInUrl(t){if(!this._tableId)return;const e=new URL(window.location.href),i=e.searchParams;i.set(`mui.${this._tableId}`,t.toString()),t===1&&i.set(`mui.${this._tableId}`,"1"),window.history.replaceState({},"",e.toString())}_loadPageFromUrl(){if(!this._configuration||!this._tableId)return;const t=this._getPageFromUrl();t!==null&&(this._currentPage=t,this._offset=(this._currentPage-1)*this._perPage)}}customElements.get("mint-resource-table")||customElements.define("mint-resource-table",wt);class At extends HTMLElement{constructor(){super(),this._overlay=null,this._offCanvas=null,this._header=null,this._headingSlot=null,this._bodySlot=null,this._actionsSlot=null,this._closeButton=null,this._darkModeObserver=null}static get observedAttributes(){return["id","heading","open","position","full-page","width"]}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","align-baseline","fixed","inset-0","z-50"),this.isOpen()||this.classList.add("hidden"),this.render(),this._observeDarkMode()}disconnectedCallback(){this._darkModeObserver&&(this._darkModeObserver.disconnect(),this._darkModeObserver=null)}attributeChangedCallback(t,e,i){e!==i&&this.render()}getId(){return this.getAttribute("id")||""}getHeading(){return this.getAttribute("heading")||""}getPosition(){var e;const t=(e=this.getAttribute("position"))==null?void 0:e.toLowerCase();return t==="top"||t==="bottom"||t==="left"||t==="right"?t:"right"}isFullPage(){return this.getAttribute("full-page")==="true"}getWidth(){return this.getAttribute("width")||"w-80"}isOpen(){return this.getAttribute("open")==="true"}open(){this.setAttribute("open","true")}close(){this.removeAttribute("open")}render(){const t=this.getId(),e=this.getHeading(),i=this.isOpen(),s=this.getPosition(),n=this.isFullPage();t&&(this.id=t),this._overlay||(this._overlay=document.createElement("div"),this._overlay.className="fixed inset-0 bg-black bg-opacity-50 transition-opacity duration-200 z-40",this._overlay.addEventListener("click",()=>this.close()),this.appendChild(this._overlay)),this._offCanvas||(this._offCanvas=document.createElement("div"),this.appendChild(this._offCanvas));const r=this._getPositionClasses(s,n);this._offCanvas.className=r;let a=this._offCanvas.querySelector(".off-canvas-content");if(a||(a=document.createElement("div"),a.className="off-canvas-content bg-white dark:bg-gray-900 dark:border dark:border-gray-700 shadow-xl flex flex-col pointer-events-auto transition-all duration-300 ease-out",a.style.transform=this._getTransformValue(s,!1),this._offCanvas.appendChild(a)),i?this._animateEnter():this._animateExit(),Array.from(a.classList).forEach(u=>{(u.startsWith("w-")||u.startsWith("max-w-"))&&a.classList.remove(u)}),a.classList.remove("h-full","max-h-[90vh]","max-h-screen"),n)a.classList.add("w-full","h-full");else{const u=this.getWidth();s==="top"||s==="bottom"?a.classList.add("w-full","max-h-[90vh]"):a.classList.add(u,"h-full")}this._header||(this._header=document.createElement("div"),this._header.className="flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700 flex-shrink-0",a.appendChild(this._header)),this._headingSlot||(this._headingSlot=document.createElement("div"),this._headingSlot.className="flex-1",this._headingSlot.setAttribute("slot","heading"),this._header.appendChild(this._headingSlot));let o=this._headingSlot.querySelector("mint-text");e?(o||(o=document.createElement("mint-text"),o.setAttribute("size","sub-heading"),o.setAttribute("bold","true"),this._headingSlot.appendChild(o)),o.textContent=e):o&&o.remove(),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._headingSlot&&u.getAttribute("slot")==="heading").forEach(u=>{this._headingSlot&&u.parentElement!==this._headingSlot&&this._headingSlot.appendChild(u)}),this._closeButton||(this._closeButton=document.createElement("mint-button"),this._closeButton.setAttribute("variant","ghost"),this._closeButton.setAttribute("icon","close"),this._closeButton.addEventListener("click",()=>this.close()),this._header.appendChild(this._closeButton)),this._bodySlot||(this._bodySlot=document.createElement("div"),this._bodySlot.className="flex-1 overflow-y-auto p-4",this._bodySlot.setAttribute("slot","body"),a.appendChild(this._bodySlot)),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._bodySlot&&u.getAttribute("slot")==="body").forEach(u=>{this._bodySlot&&u.parentElement!==this._bodySlot&&this._bodySlot.appendChild(u)}),this._actionsSlot||(this._actionsSlot=document.createElement("div"),this._actionsSlot.className="p-4 border-t border-gray-200 dark:border-gray-700 flex-shrink-0",this._actionsSlot.setAttribute("slot","actions"),a.appendChild(this._actionsSlot));let p=this._actionsSlot.querySelector("mint-stack");p||(p=document.createElement("mint-stack"),p.setAttribute("direction","horizontal"),p.className="justify-end",this._actionsSlot.appendChild(p)),Array.from(this.children).filter(u=>u!==this._overlay&&u!==this._offCanvas&&u!==this._actionsSlot&&u.getAttribute("slot")==="actions").forEach(u=>{Array.from(u.children).forEach(g=>{g.parentElement!==p&&p.appendChild(g)}),u.parentElement&&u.remove()}),Array.from(this.children).forEach(u=>{u!==this._overlay&&u!==this._offCanvas&&u.getAttribute("slot")!=="heading"&&u.getAttribute("slot")!=="body"&&u.getAttribute("slot")!=="actions"&&u!==this._headingSlot&&u!==this._bodySlot&&u!==this._actionsSlot&&u.parentElement!==this._bodySlot&&this._bodySlot.appendChild(u)}),this._updateBackgroundColor()}_getPositionClasses(t,e){const i="fixed z-50 pointer-events-none transition-all duration-300 ease-out";switch(t){case"top":return`${i} top-0 left-0 right-0 ${e?"h-full":""}`;case"bottom":return`${i} bottom-0 left-0 right-0 ${e?"h-full":""}`;case"left":return`${i} left-0 top-0 bottom-0 ${e?"w-full":""}`;case"right":return`${i} right-0 top-0 bottom-0 ${e?"w-full":""}`;default:return`${i} right-0 top-0 bottom-0 ${e?"w-full":""}`}}_getTransformValue(t,e){if(e)switch(t){case"top":return"translateY(0)";case"bottom":return"translateY(0)";case"left":return"translateX(0)";case"right":return"translateX(0)";default:return"translateX(0)"}else switch(t){case"top":return"translateY(-100%)";case"bottom":return"translateY(100%)";case"left":return"translateX(-100%)";case"right":return"translateX(100%)";default:return"translateX(100%)"}}_updateBackgroundColor(){if(!this._offCanvas)return;const t=document.documentElement.classList.contains("dark"),e=this._offCanvas.querySelector(".off-canvas-content");e&&(t?(e.classList.remove("bg-white"),e.classList.add("bg-gray-900","border","border-gray-700")):(e.classList.remove("bg-gray-900","border","border-gray-700"),e.classList.add("bg-white")))}_observeDarkMode(){this._darkModeObserver||(this._darkModeObserver=new MutationObserver(()=>{this._updateBackgroundColor()}),this._darkModeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}))}_animateEnter(){var i;const t=(i=this._offCanvas)==null?void 0:i.querySelector(".off-canvas-content");if(!t)return;const e=this.getPosition();t.style.transform=this._getTransformValue(e,!1),t.style.transition="transform 300ms ease-out",this.classList.remove("hidden"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{t.style.transform=this._getTransformValue(e,!0)})})}_animateExit(){var i;const t=(i=this._offCanvas)==null?void 0:i.querySelector(".off-canvas-content");if(!t){this.classList.add("hidden");return}const e=this.getPosition();t.style.transition="transform 300ms ease-in",t.style.transform=this._getTransformValue(e,!1),setTimeout(()=>{this.classList.add("hidden"),t.style.transform="",t.style.transition=""},300)}}customElements.get("mint-off-canvas")||customElements.define("mint-off-canvas",At);class St extends HTMLElement{constructor(){super(),this._clickHandler=null}static get observedAttributes(){return["active","disabled","target"]}connectedCallback(){this.render(),this.setupEventListeners()}disconnectedCallback(){this.removeEventListeners()}attributeChangedCallback(t,e,i){e!==i&&this.render()}getTarget(){return this.getAttribute("target")||""}isActive(){const t=this.getAttribute("active");return t!==null&&t!=="false"}isDisabled(){return this.getAttribute("disabled")==="true"}get active(){return this.isActive()}set active(t){t?this.setAttribute("active","true"):this.setAttribute("active","false")}render(){const t=this.isActive(),e=this.isDisabled();this.className="",this.classList.add("box-border","m-0","p-0","border-0","inline-block","cursor-pointer","px-4","py-1.5","text-sm","font-medium","transition-all","duration-200","rounded-lg","border","text-gray-700","dark:text-gray-300");const i=this.closest("mint-tab-list"),s=(i==null?void 0:i.getAttribute("position"))||"top",n=s==="left"||s==="right";e?(this.classList.add("opacity-60","cursor-not-allowed","pointer-events-none","bg-gray-50","dark:bg-gray-900","border-gray-300","dark:border-gray-700","text-gray-400","dark:text-gray-500"),this.classList.remove("cursor-pointer")):t?(this.classList.add("bg-white","dark:bg-gray-900","border-gray-200","dark:border-gray-700","text-gray-900","dark:text-gray-100","shadow-sm","relative","z-10"),n?s==="left"?this.classList.add("mr-[-1px]"):this.classList.add("ml-[-1px]"):this.classList.add("mb-[-1px]")):this.classList.add("bg-gray-100","dark:bg-gray-900","border-gray-200","dark:border-gray-700","text-gray-600","dark:text-gray-400","hover:bg-gray-50","dark:hover:bg-gray-600")}setupEventListeners(){this.isDisabled()||this._clickHandler||(this._clickHandler=this.handleClick.bind(this),this.addEventListener("click",this._clickHandler))}removeEventListeners(){this._clickHandler&&(this.removeEventListener("click",this._clickHandler),this._clickHandler=null)}handleClick(t){if(this.isDisabled()){t.preventDefault(),t.stopPropagation();return}t.__mintTabsSynthetic||(t.stopPropagation(),this.dispatchEvent(new CustomEvent("tab-click",{detail:{tab:this,target:this.getTarget()},bubbles:!0,cancelable:!0,composed:!0})))}}customElements.get("mint-tab")||customElements.define("mint-tab",St);class Lt extends HTMLElement{static get observedAttributes(){return["position"]}constructor(){super()}connectedCallback(){this.render()}attributeChangedCallback(t,e,i){e!==i&&this.render()}getPosition(){return this.getAttribute("position")||"top"}render(){const t=this.getPosition();this.classList.remove("flex","inline-flex","flex-row","flex-col","gap-1","gap-2","pb-0","pr-0","pl-0","mb-0","mr-0","ml-0","self-start"),this.classList.add("box-border","m-0","p-1","border","bg-gray-100","dark:bg-gray-900","dark:border-gray-700","border-gray-200","w-auto","rounded-lg","gap-2"),t==="top"?this.classList.add("inline-flex","flex-row","mb-0","self-start"):t==="left"?this.classList.add("flex","flex-col","mr-0"):t==="right"&&this.classList.add("flex","flex-col","ml-0")}}customElements.get("mint-tab-list")||customElements.define("mint-tab-list",Lt);class Dt extends HTMLElement{static get observedAttributes(){return["id"]}constructor(){super()}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","block","w-full"),this.render(),this.checkInitialVisibility()}attributeChangedCallback(t,e,i){e!==i&&t==="id"&&(this.render(),this.checkInitialVisibility())}getId(){return this.getAttribute("id")||""}show(){this.style.display="block"}hide(){this.style.display="none"}checkInitialVisibility(){const t=this.closest("mint-tabs");if(!t){this.style.display="none";return}const e=t.querySelectorAll("mint-tab");let i=!1;if(e.forEach(s=>{const n=s.getAttribute("active"),r=s.getAttribute("target"),a=this.getId();n==="true"&&r===a&&(i=!0)}),!i&&e.length>0){const n=e[0].getAttribute("target"),r=this.getId();n===r&&!t.querySelector('mint-tab[active="true"]')&&(i=!0)}i?this.style.display="block":this.style.display="none"}render(){}}customElements.get("mint-tab-content")||customElements.define("mint-tab-content",Dt);class It extends HTMLElement{constructor(){super(),this._tabClickHandler=null,this._mutationObserver=null}connectedCallback(){this.classList.add("box-border","m-0","p-0","border-0","block"),this.render(),this.setupEventListeners(),this.setupMutationObserver(),this.initializeActiveTab()}disconnectedCallback(){this.removeEventListeners(),this._mutationObserver&&(this._mutationObserver.disconnect(),this._mutationObserver=null)}render(){const t=this.querySelector("mint-tab-list");if(this.querySelectorAll("mint-tab-content"),!t){console.warn("mint-tabs: mint-tab-list is required");return}const e=t.getAttribute("position")||"top";this.classList.remove("flex","flex-row","flex-col","gap-4","gap-6"),e==="left"||e==="right"?(this.classList.add("flex","flex-row","items-start"),e==="left"?(t.classList.add("mr-4","flex-shrink-0"),t.classList.remove("ml-4")):(t.classList.add("ml-4","flex-shrink-0","order-2"),t.classList.remove("mr-4"),this.querySelectorAll("mint-tab-content").forEach(s=>{s.classList.add("order-1")}))):(this.classList.add("flex","flex-col"),t.classList.remove("mr-4","ml-4","flex-shrink-0","order-2"),this.querySelectorAll("mint-tab-content").forEach(s=>{s.classList.remove("order-1")}))}initializeActiveTab(){requestAnimationFrame(()=>{const t=this.querySelectorAll("mint-tab");let e=null;if(t.forEach(s=>{s.getAttribute("active")==="true"&&(e=s)}),!e&&t.length>0&&(e=t[0],e.setAttribute("active","true")),e){const s=e.getAttribute("target");s?this.showContent(s):this.hideAllContent()}else this.hideAllContent();this.querySelectorAll("mint-tab-content").forEach(s=>{const n=s;n.checkInitialVisibility&&n.checkInitialVisibility()})})}hideAllContent(){this.querySelectorAll("mint-tab-content").forEach(e=>{const i=e;i.hide?i.hide():e.style.display="none"})}showContent(t){this.querySelectorAll("mint-tab-content").forEach(s=>{const n=s;n.hide?n.hide():s.style.display="none"});const i=this.querySelector(`mint-tab-content[id="${t}"]`);i&&(i.show?i.show():i.style.display="block")}setupEventListeners(){this._tabClickHandler||(this._tabClickHandler=this.handleTabClick.bind(this),this.addEventListener("tab-click",this._tabClickHandler))}removeEventListeners(){this._tabClickHandler&&(this.removeEventListener("tab-click",this._tabClickHandler),this._tabClickHandler=null)}setupMutationObserver(){this._mutationObserver=new MutationObserver(()=>{this.render()});const t=this.querySelector("mint-tab-list");t&&this._mutationObserver.observe(t,{attributes:!0,attributeFilter:["position"]})}handleTabClick(t){var r,a;const e=(r=t.detail)==null?void 0:r.tab,i=(a=t.detail)==null?void 0:a.target;if(!e)return;const s=e.closest("mint-tab-list");if(!s)return;s.querySelectorAll("mint-tab").forEach(l=>{const o=l;l===e?o.active=!0:o.active=!1}),i&&this.showContent(i)}}customElements.get("mint-tabs")||customElements.define("mint-tabs",It);exports.Alert=Ct;exports.BackButton=lt;exports.Button=X;exports.Card=at;exports.Checkbox=pt;exports.Chip=kt;exports.Choice=ft;exports.Clickable=xt;exports.DatePicker=gt;exports.Dropzone=bt;exports.Form=vt;exports.Grid=ht;exports.Icon=it;exports.Input=mt;exports.Link=ot;exports.Modal=dt;exports.OffCanvas=At;exports.Page=ct;exports.Popover=ut;exports.ResourceTable=wt;exports.Select=_t;exports.Spinner=et;exports.Stack=nt;exports.Switch=st;exports.Tab=St;exports.TabContent=Dt;exports.TabList=Lt;exports.Table=yt;exports.Tabs=It;exports.Tags=Et;exports.Text=rt;exports.default=X;
|
package/dist/index.js
CHANGED
|
@@ -6359,7 +6359,7 @@ class St extends HTMLElement {
|
|
|
6359
6359
|
}
|
|
6360
6360
|
connectedCallback() {
|
|
6361
6361
|
var t, e;
|
|
6362
|
-
this.classList.add("box-border", "m-0", "p-0", "border-0", "align-baseline", "block", "w-full"), this._inMintCard = ((e = (t = this.parentElement) == null ? void 0 : t.tagName) == null ? void 0 : e.toLowerCase()) === "mint-card", this._configuration || this._parseConfiguration(), this._initializeColumns(), this._loadColumnVisibility(), this._attachRowClickHandler(), this.render();
|
|
6362
|
+
this.classList.add("box-border", "m-0", "p-0", "border-0", "align-baseline", "block", "w-full"), this._inMintCard = ((e = (t = this.parentElement) == null ? void 0 : t.tagName) == null ? void 0 : e.toLowerCase()) === "mint-card", this._configuration || this._parseConfiguration(), this._initializeColumns(), this._loadColumnVisibility(), this._loadPageFromUrl(), this._attachRowClickHandler(), this.render();
|
|
6363
6363
|
}
|
|
6364
6364
|
disconnectedCallback() {
|
|
6365
6365
|
this._searchTimeoutId && clearTimeout(this._searchTimeoutId), this._rowClickHandler && (this.removeEventListener("click", this._rowClickHandler, !0), this._rowClickHandler = null), this._scrollHandler && (window.removeEventListener("scroll", this._scrollHandler), this._scrollHandler = null);
|
|
@@ -6383,7 +6383,9 @@ class St extends HTMLElement {
|
|
|
6383
6383
|
return;
|
|
6384
6384
|
}
|
|
6385
6385
|
try {
|
|
6386
|
-
this._configuration = JSON.parse(t), this._tableId = this._configuration.id || `mint-resource-table-${Date.now()}`, this._perPage = this._configuration.perPage || 15, this._rowsToShow = this._perPage, this._type = typeof this._configuration.data == "string" ? "ajax" : "provided", this._loaded = !1
|
|
6386
|
+
this._configuration = JSON.parse(t), this._tableId = this._configuration.id || `mint-resource-table-${Date.now()}`, this._perPage = this._configuration.perPage || 15, this._rowsToShow = this._perPage, this._type = typeof this._configuration.data == "string" ? "ajax" : "provided", this._loaded = !1;
|
|
6387
|
+
const e = this._getPageFromUrl();
|
|
6388
|
+
this._currentPage = e || 1, this._offset = (this._currentPage - 1) * this._perPage, this._type === "provided" && Array.isArray(this._configuration.data) && (this._rows = [...this._configuration.data], this._totalRows = this._configuration.data.length), this._initializeColumns(), this._loadColumnVisibility();
|
|
6387
6389
|
} catch (e) {
|
|
6388
6390
|
console.error("mint-resource-table: Invalid configuration JSON", e);
|
|
6389
6391
|
}
|
|
@@ -6685,7 +6687,7 @@ class St extends HTMLElement {
|
|
|
6685
6687
|
}
|
|
6686
6688
|
_goToPage(t) {
|
|
6687
6689
|
const e = this._lastPage || Math.ceil(this._rows.length / this._perPage);
|
|
6688
|
-
t > e && (t = e), t < 1 && (t = 1), this._currentPage = t, this._offset = (t - 1) * this._perPage, this._type === "ajax" ? this._fetchData() : this.render();
|
|
6690
|
+
t > e && (t = e), t < 1 && (t = 1), this._currentPage = t, this._offset = (t - 1) * this._perPage, this._updatePageInUrl(t), this._type === "ajax" ? this._fetchData() : this.render();
|
|
6689
6691
|
}
|
|
6690
6692
|
_handleButtonClick(t) {
|
|
6691
6693
|
if (this._configuration)
|
|
@@ -6974,6 +6976,35 @@ class St extends HTMLElement {
|
|
|
6974
6976
|
const e = document.createElement("div");
|
|
6975
6977
|
return e.textContent = t, e.innerHTML;
|
|
6976
6978
|
}
|
|
6979
|
+
/**
|
|
6980
|
+
* Get the page number from URL query params for this table
|
|
6981
|
+
* Returns null if not found or invalid
|
|
6982
|
+
*/
|
|
6983
|
+
_getPageFromUrl() {
|
|
6984
|
+
if (!this._tableId) return null;
|
|
6985
|
+
const e = new URLSearchParams(window.location.search).get(`mui.${this._tableId}`);
|
|
6986
|
+
if (!e) return null;
|
|
6987
|
+
const i = parseInt(e, 10);
|
|
6988
|
+
return isNaN(i) || i < 1 ? null : i;
|
|
6989
|
+
}
|
|
6990
|
+
/**
|
|
6991
|
+
* Update URL query params with the current page number
|
|
6992
|
+
* Preserves all other query params
|
|
6993
|
+
*/
|
|
6994
|
+
_updatePageInUrl(t) {
|
|
6995
|
+
if (!this._tableId) return;
|
|
6996
|
+
const e = new URL(window.location.href), i = e.searchParams;
|
|
6997
|
+
i.set(`mui.${this._tableId}`, t.toString()), t === 1 && i.set(`mui.${this._tableId}`, "1"), window.history.replaceState({}, "", e.toString());
|
|
6998
|
+
}
|
|
6999
|
+
/**
|
|
7000
|
+
* Load page number from URL query params and set it as the current page
|
|
7001
|
+
* Called during initialization
|
|
7002
|
+
*/
|
|
7003
|
+
_loadPageFromUrl() {
|
|
7004
|
+
if (!this._configuration || !this._tableId) return;
|
|
7005
|
+
const t = this._getPageFromUrl();
|
|
7006
|
+
t !== null && (this._currentPage = t, this._offset = (this._currentPage - 1) * this._perPage);
|
|
7007
|
+
}
|
|
6977
7008
|
}
|
|
6978
7009
|
customElements.get("mint-resource-table") || customElements.define("mint-resource-table", St);
|
|
6979
7010
|
class Lt extends HTMLElement {
|