@webority/ui-elements 0.153.0 → 0.155.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/{WuiCodeBlock-DHpmEskS.js → WuiCodeBlock-cLLbSBK4.js} +1 -1
  2. package/dist/{WuiCommandPalette-DqHh4lH6.js → WuiCommandPalette-Dpz0DXKJ.js} +1 -1
  3. package/dist/{WuiDataTable-B4BYCd_s.js → WuiDataTable-8nQDiTHE.js} +1 -1
  4. package/dist/{WuiLeadPopup-YN4YCbOe.js → WuiLeadPopup-BmZG0Fk_.js} +1 -1
  5. package/dist/{WuiOnboardingChecklist-Cx-TgpBY.js → WuiOnboardingChecklist-C-nllg2h.js} +1 -1
  6. package/dist/{WuiResizable-DQZdQVCz.js → WuiResizable-KvfLtbCw.js} +1 -1
  7. package/dist/{WuiSavedViews-UaiP6YNG.js → WuiSavedViews-Br9YKOVU.js} +1 -1
  8. package/dist/{WuiSelect-DBPre2oe.js → WuiSelect-BPWPI07i.js} +1 -1
  9. package/dist/{chips-Dony2fgq.js → chips-Dr_W3avk.js} +1 -1
  10. package/dist/copyText-Q-QZKBmx.js +1 -0
  11. package/dist/dataTable-CcH1lBIM.js +1 -0
  12. package/dist/{drawerDiscard-C0yRSl1I.js → drawerDiscard-Cra-QhD5.js} +1 -1
  13. package/dist/elements/code-block.js +1 -1
  14. package/dist/elements/command-palette.js +1 -1
  15. package/dist/elements/data-table.js +1 -1
  16. package/dist/elements/filter-popover.js +1 -1
  17. package/dist/elements/kanban.js +1 -1
  18. package/dist/elements/lead-popup.js +1 -1
  19. package/dist/elements/onboarding-checklist.js +1 -1
  20. package/dist/elements/resizable.js +1 -1
  21. package/dist/elements/saved-views.js +1 -1
  22. package/dist/elements/select.js +1 -1
  23. package/dist/filterPopover-CaHWe9V0.js +1 -0
  24. package/dist/helpers.js +1 -1
  25. package/dist/{kanban-Dz8m-17x.js → kanban-CDaks135.js} +1 -1
  26. package/dist/{kanbanModel-C2IOPJ8L.js → kanbanModel-BaT75e-b.js} +1 -1
  27. package/dist/recents-Dcw-b5cB.js +1 -0
  28. package/dist/{search-C8xIzt6h.js → search-PZCXpBAn.js} +1 -1
  29. package/dist/server.js +1 -1
  30. package/dist/{themeTransition-9LQC6fx8.js → themeTransition-CfrJtERx.js} +1 -1
  31. package/dist/ui-elements/carousel.global.js +1 -1
  32. package/dist/ui-elements/code-block.global.js +1 -1
  33. package/dist/ui-elements/command-palette.global.js +2 -2
  34. package/dist/ui-elements/comment-thread.global.js +1 -1
  35. package/dist/ui-elements/consent-banner.global.js +1 -1
  36. package/dist/ui-elements/context-menu.global.js +1 -1
  37. package/dist/ui-elements/date-range.global.js +1 -1
  38. package/dist/ui-elements/drawer.global.js +1 -1
  39. package/dist/ui-elements/glyphs.global.js +1 -1
  40. package/dist/ui-elements/image-crop.global.js +1 -1
  41. package/dist/ui-elements/inline-edit.global.js +1 -1
  42. package/dist/ui-elements/kanban.global.js +1 -1
  43. package/dist/ui-elements/lead-popup.global.js +2 -2
  44. package/dist/ui-elements/lightbox.global.js +1 -1
  45. package/dist/ui-elements/markdown.global.js +1 -1
  46. package/dist/ui-elements/org-tree.global.js +1 -1
  47. package/dist/ui-elements/phone.global.js +1 -1
  48. package/dist/ui-elements/resizable.global.js +1 -1
  49. package/dist/ui-elements/saved-views.global.js +1 -1
  50. package/dist/ui-elements/select-chips.global.js +1 -1
  51. package/dist/ui-elements/select-recents.global.js +1 -1
  52. package/dist/ui-elements/select-search.global.js +1 -1
  53. package/dist/ui-elements/slider.global.js +1 -1
  54. package/dist/ui-elements/sortable.global.js +1 -1
  55. package/dist/ui-elements/status-icon.global.js +1 -1
  56. package/dist/ui-elements/timepicker.global.js +1 -1
  57. package/dist/ui-elements/tour.global.js +1 -1
  58. package/dist/ui-elements/tree.global.js +1 -1
  59. package/dist/ui-elements/wizard.global.js +1 -1
  60. package/dist/ui-elements.global.js +3 -3
  61. package/dist/ui-elements.js +1 -1
  62. package/dist/ui-file-viewer.global.js +1 -1
  63. package/dist/ui-file-viewer.js +1 -1
  64. package/dist/ui-lead-popup.global.js +1 -1
  65. package/package.json +4 -4
  66. package/types/copyText.d.ts +1 -1
  67. package/types/themeTransition.d.ts +1 -1
  68. package/dist/copyText-DM5HhXjf.js +0 -1
  69. package/dist/dataTable-B-7oAeii.js +0 -1
  70. package/dist/filterPopover-D8BOb-Hz.js +0 -1
  71. package/dist/recents-CmLLdV8O.js +0 -1
@@ -1 +1 @@
1
- import{n as e,t}from"./buttonClass-GtEi8hAY.js";import{n,r,t as i}from"./dom-Do1pAA12.js";import{t as a}from"./loader-ByHAB1wi.js";import{n as o,t as s}from"./devWarn-DXdRWZs3.js";import{E as c,k as l,r as u,w as ee,y as d}from"./dataTable-B-7oAeii.js";import{t as te}from"./iconGlyphs.g-DPqoOoXy.js";import{LIST_QUERY_RESERVED as f,SEARCH_PARAM as p}from"./listQuery.js";import{l as ne,s as m}from"./wuiHttp-DGbD7Fra.js";function re(e,t){let n=e.getInstance(t);n&&(n.tip?.isConnected?(t.addEventListener(`hidden${e.EVENT_KEY}`,()=>n.dispose(),{once:!0}),n.hide()):n.dispose())}var h=`Select all rows`,g=`Select row`,_=`wui-select-cell`,ie=(e,t)=>{let n=e.createElement(`input`);return n.type=`checkbox`,n.className=`wui-check`,n.setAttribute(`aria-label`,t),n};function v(e=document){let t=e.createElement(`th`);return t.className=_,t.appendChild(ie(e,h)),t}function ae(e=document,{disabled:t=!1}={}){let n=e.createElement(`td`);n.className=_;let r=ie(e,g);return r.disabled=t,n.appendChild(r),n}function oe(e=document){let t=e.createElement(`td`);return t.className=_,t}var y=e=>e.firstElementChild?.classList.contains(_),b=e=>e.matches(`.wui-group-row, .wui-virtual-spacer`),x=(e,t,n)=>[...e.querySelectorAll(t)].filter(e=>e instanceof n);function se(e){for(let t of e){if(y(t)||b(t))continue;let e=t.getAttribute(`data-row-selectable`)===`false`;t.insertBefore(ae(t.ownerDocument,{disabled:e}),t.firstChild)}}function ce(e){let t=e.querySelector(`thead tr`);if(!(t instanceof HTMLTableRowElement))return null;y(t)||t.insertBefore(v(e.ownerDocument),t.firstChild),se(x(e,`tbody tr`,HTMLTableRowElement));for(let t of x(e,`tfoot tr`,HTMLTableRowElement))y(t)||t.insertBefore(oe(e.ownerDocument),t.firstChild);let n=t.querySelector(`.${_} .wui-check`);return n instanceof HTMLInputElement?n:null}function le(e){let t=e.querySelector(`thead .${_} .wui-check`),n=x(e,`tbody tr .wui-check:not(:disabled)`,HTMLInputElement),r=n.length,i=n.filter(e=>e.checked).length;t instanceof HTMLInputElement&&(t.checked=r>0&&i===r,t.indeterminate=i>0&&i<r);for(let t of x(e,`tbody tr`,HTMLTableRowElement)){let e=t.querySelector(`.wui-check`);t.classList.toggle(`is-selected`,e instanceof HTMLInputElement&&e.checked)}return{selected:i,total:r}}var ue=`tbody .${_} .wui-check:not(:disabled)`;function de(e,t){let n=null,r=e=>e instanceof Element&&e.matches(`.wui-select-cell .wui-check:not(:disabled)`)&&!!e.closest(`tbody`);e.addEventListener(`mousedown`,e=>{e.shiftKey&&r(e.target)&&e.preventDefault()}),e.addEventListener(`click`,i=>{let a=i.target;if(r(a)){if(i.shiftKey&&n?.isConnected&&n!==a){let r=x(e,ue,HTMLInputElement),i=r.indexOf(n),o=r.indexOf(a);if(i>=0&&o>=0){let e=[];for(let t of r.slice(Math.min(i,o),Math.max(i,o)+1))t!==a&&t.checked!==a.checked&&(t.checked=a.checked,e.push(t));e.length&&t?.(e,a.checked)}}n=a}})}var S=Object.freeze({loading:`Loading rows`,error:`These rows did not load. Try again.`,network:`The connection dropped before the rows loaded. Check it and try again.`,forbidden:`You do not have access to these rows.`,retry:`Retry`,actionFailed:`That did not work. Try again.`,actionForbidden:`You do not have permission to do that.`,empty:`No rows`}),fe=5,pe=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLButtonElement||e instanceof HTMLFieldSetElement||e instanceof HTMLObjectElement||e instanceof HTMLOutputElement,me=e=>e instanceof HTMLObjectElement||e instanceof HTMLOutputElement?!1:e.disabled,he=e=>pe(e)&&`type`in e&&e.type===`hidden`,C=(e,t,n)=>[...e.querySelectorAll(t)].filter(e=>e instanceof n),w=(e,t,n)=>{let r=e.querySelector(t);return r instanceof n?r:null},T=(e,t,n)=>{let r=e.closest(t);return r instanceof n?r:null},ge=e=>e.localName===`wui-select`,_e=/* @__PURE__ */ new WeakMap,E=(e,t)=>{let n=Number(e);return Number.isInteger(n)?n:t},ve=e=>({total:E(e.dataset.total,0),totalCapped:e.dataset.totalCapped===`true`,page:E(e.dataset.page,1),pageSize:E(e.dataset.pageSize,0),sortBy:e.dataset.sortBy||``,sortOrder:e.dataset.sortOrder===`desc`?`desc`:`asc`}),ye=(e,t)=>{e&&k().toast(e,{variant:t})},be=(e,t)=>{if(!e)return;let n=new Set([...e.elements].filter(e=>!he(e)||e.hasAttribute(`data-range-mirror`)).map(e=>e.getAttribute(`name`)).filter(e=>e&&!f.includes(e))),r=[...t].some(([e,t])=>t!==``&&n.has(e));for(let t of C(e,`[data-wui-filter-clear]`,HTMLElement))t.hidden=!r},xe=new Intl.NumberFormat(`en-IN`),Se=(e,t)=>t?`${xe.format(e)}+`:xe.format(e),Ce=(e,t,n)=>{let r=e.closest(`.wui-list-card`),i=r?w(r,`.wui-list-card-count`,HTMLElement):null;i&&(i.textContent=Se(t,n))};function D(e=document){let t=C(e,`[data-wui-server]`,HTMLElement);e instanceof HTMLElement&&e.matches(`[data-wui-server]`)&&t.unshift(e);for(let e of t){if(_e.has(e))continue;let t=we(e);_e.set(e,t),e.hasAttribute(`data-load-first-page`)&&t.reload()}}function O(e){let t=e instanceof Element?T(e,`[data-wui-server]`,HTMLElement):null;return t&&_e.get(t)||null}function we(n){let i=w(n,`.table-wrap`,HTMLElement),a=i?w(i,`:scope > table`,HTMLTableElement):null,re=n.dataset.src;if(!i||!a||!re)throw Error(`A server-paged table needs data-src and a .table-wrap > table: render it with <app-data-table src>.`);let h=w(i,`:scope > [data-wui-table-state]`,HTMLElement),g=w(n,`[data-wui-table-pager]`,HTMLElement),ie=w(n,`[data-wui-table-status]`,HTMLElement),v={urlState:n.dataset.urlState!==`false`,refreshOnSuccess:n.dataset.refreshOnSuccess!==`false`,filtersForm:n.dataset.filtersForm||null,filtersRegion:n.dataset.filtersRegion||null,searchInput:n.dataset.searchInput||null,loadingText:n.dataset.loadingText||S.loading,errorText:n.dataset.errorText||S.error},ae=new URL(re,window.location.href),oe=new Set(ae.searchParams.keys()),y=a.hasAttribute(`data-app-datatable-selectable`),b=/* @__PURE__ */ new Set,x=!1,ue=m(),_e=new AbortController,E={signal:_e.signal},xe=w(a,`:scope > tbody[data-wui-rows]`,HTMLTableSectionElement),D=r(xe,`A server-paged table needs its rows in <app-table-rows> (tbody[data-wui-rows]).`),O=ve(D),we=null,Te=null,Ee=e=>{let t=new URLSearchParams;for(let[n,r]of new URLSearchParams(e))oe.has(n)||t.append(n,r);return t},De=e=>Ee(new URL(e,window.location.href).search),Oe=e=>{let t=e.toString();return`${window.location.pathname}${t?`?${t}`:``}${window.location.hash}`},ke=e=>{let t=new URL(ae.href);for(let[n,r]of e)oe.has(n)||t.searchParams.append(n,r);return t.origin===window.location.origin?`${t.pathname}${t.search}`:t.href},je=(e,t)=>{let n=new URLSearchParams(e);return n.has(`page`)&&n.set(`page`,String(t.page)),n.has(`pageSize`)&&n.set(`pageSize`,String(t.pageSize)),n.has(`sortBy`)?t.sortBy?(n.set(`sortBy`,t.sortBy),n.set(`sortOrder`,t.sortOrder)):(n.delete(`sortBy`),n.delete(`sortOrder`)):n.delete(`sortOrder`),n},A=je(v.urlState?Ee(window.location.search):new URLSearchParams,O);v.urlState&&Oe(A)!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&window.history.replaceState(window.history.state,``,Oe(A));let j=(e,t)=>i.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:t})),M=e=>{ie&&(ie.textContent=e)},Me=e=>{if(e.total===0)return S.empty;let t=e.pageSize>0?Math.max(1,Math.ceil(e.total/e.pageSize)):1,n=e.totalCapped?Se(e.total,!0):`${e.total}`;return`Page ${e.page} of ${t}, ${n} ${e.total===1?`row`:`rows`}`},N=()=>C(a,`:scope > thead > tr:first-child > th`,HTMLTableCellElement),P=e=>{if(y&&C(e,`:scope > tr:not(.wui-group-row, .wui-virtual-spacer)`,HTMLTableRowElement).some(e=>!e.dataset.rowKey))throw Error(`A selectable server-paged table needs data-row-key on every row, so a selection can span pages.`)},F=e=>{let t=n.dataset.activeRowKey;if(t!==void 0)for(let n of e){let e=n.classList.contains(`wui-row-active`),r=t!==``&&n.dataset.rowKey===t;n.classList.toggle(`wui-row-active`,r),r?n.setAttribute(`aria-current`,`true`):e&&n.removeAttribute(`aria-current`)}},Ne=e=>{if(y){se(e);for(let t of e){let e=w(t,`.${_} .wui-check:not(:disabled)`,HTMLInputElement);e&&(x&&b.add(t.dataset.rowKey),e.checked=b.has(t.dataset.rowKey))}le(a)}F(e);let t=N();if(a.classList.contains(`wui-table-stack`))for(let n of e)[...n.cells].forEach((e,n)=>{let r=t[n]?.textContent?.trim();r&&!e.hasAttribute(`data-label`)&&e.setAttribute(`data-label`,r)});t.forEach((t,n)=>{if(t.classList.contains(`wui-col-hidden`))for(let t of e)t.cells[n]?.classList.add(`wui-col-hidden`)})},Pe=e=>Ne(C(e,`:scope > tr`,HTMLTableRowElement)),Fe=e=>{for(let t of e.querySelectorAll(`:scope > template[data-wui-pager], :scope > template[data-wui-empty], :scope > template[data-wui-filters]`))t.remove()},I=e=>e?.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0})),Ie=(e,t)=>{if(!h)return;let n=w(e,`:scope > template[data-wui-empty]`,HTMLTemplateElement);I(h),t.total===0&&n?(h.replaceChildren(n.content.cloneNode(!0)),h.hidden=!1):(h.replaceChildren(),h.hidden=!0)},Le=e=>{let t=ve(e),n=t.sortBy!==O.sortBy||t.sortOrder!==O.sortOrder?d(D.rows):null;if(g){let t=w(e,`:scope > template[data-wui-pager]`,HTMLTemplateElement);I(g),g.replaceChildren(...t?[t.content.cloneNode(!0)]:[]),g.hidden=!1}Ie(e,t);let r=w(e,`:scope > template[data-wui-filters]`,HTMLTemplateElement),o=v.filtersRegion&&r?w(document,v.filtersRegion,HTMLElement):null;o&&r&&(I(o),o.replaceChildren(r.content.cloneNode(!0))),Fe(e),I(D),a.replaceChild(e,D),D=e;let s=x&&t.total!==O.total;return O=t,s&&(x=!1),i.removeAttribute(`data-wui-table-error`),Pe(e),H(),ee(e.rows,n),s&&We(),o},Re=e=>{let t=document.createElement(`template`);t.innerHTML=`<table>${e}</table>`;let n=w(t.content,`tbody[data-wui-rows]`,HTMLTableSectionElement);return n&&P(n),n?document.importNode(n,!0):null},ze=(e,t=N())=>{let n=document.createElement(`tr`);for(let r=0;r<e;r++){let e=t[r],i=e?.classList.contains(`text-center`),a=!i&&(e?.classList.contains(`num`)||e?.classList.contains(`text-end`)||e?.classList.contains(`wui-cell-end`)),o=document.createElement(`td`);i?o.classList.add(`text-center`):a&&o.classList.add(e?.classList.contains(`num`)?`num`:`wui-cell-end`);let s=document.createElement(`span`);s.className=`skeleton`,s.setAttribute(`aria-hidden`,`true`);let c=i?44:a?56:60;s.style.cssText=`display:block;width:${c}%;height:12px;border-radius:6px`,o.append(s),n.append(o)}return n},L=()=>{if(D.querySelector(`:scope > tr:not([data-wui-skeleton])`))return;let e=Math.max(1,N().length);D.replaceChildren(...Array.from({length:fe},()=>{let t=ze(e);return t.setAttribute(`data-wui-skeleton`,``),t})),i.removeAttribute(`data-wui-table-error`),h&&(h.hidden=!0)},R=e=>{e?(i.setAttribute(`aria-busy`,`true`),L()):i.removeAttribute(`aria-busy`)},Be=e=>e===`forbidden`?S.forbidden:e===`network`?S.network:v.errorText,Ve=n=>{let r=Be(n);if(i.setAttribute(`data-wui-table-error`,n),g&&(g.hidden=!0),h){let i=document.createElement(`div`);i.className=`empty-state wui-empty-state-table wui-table-error`,i.setAttribute(`role`,`alert`);let a=document.createElement(`span`);a.className=`empty-state-icon`,a.innerHTML=te(n===`forbidden`?`lock`:`alert-circle`,{size:24});let o=document.createElement(`div`);o.className=`empty-state-title`,o.textContent=r;let s=document.createElement(`div`);s.className=`empty-state-action`;let c=document.createElement(`button`);c.type=`button`,c.className=e(`primary`,`outline`,`sm`),c.dataset.wui=t,c.setAttribute(`data-wui-table-retry`,``),c.textContent=S.retry,s.append(c),i.append(a,o,s),I(h),h.replaceChildren(i),h.hidden=!1}M(r)},z=()=>v.filtersForm?w(document,v.filtersForm,HTMLFormElement):null,B=async(e,t=`none`,{quiet:r=!1}={})=>{let a=new URLSearchParams(e);r||(we={query:a,mode:t},R(!0),M(v.loadingText)),j(`wui:table:loading`,{query:a.toString()});let c=await ue.run(ke(a));if(c.kind===`aborted`||c.kind===`stale`||c.kind===`session`)return c;r||R(!1);let l=null;if(c.ok)try{l=Re(c.html)}catch(e){s(e)}if(!c.ok||!l){let e=c.ok?`server`:c.kind;return r?o(`A quiet server table refresh failed; the rows on screen are kept.`,e):Ve(e),j(`wui:table:error`,{status:c.status,kind:e,message:Be(e)}),c}let u=Le(l);return A=je(a,O),be(z(),A),v.urlState&&t===`push`?window.history.pushState(window.history.state,``,Oe(A)):v.urlState&&t===`replace`&&window.history.replaceState(window.history.state,``,Oe(A)),r||M(Me(O)),k().refresh(i),u&&k().refresh(u),Ce(n,O.total,O.totalCapped),j(`wui:table:loaded`,{...O,query:A.toString()}),c},V=e=>(e.delete(`page`),e),He=()=>C(a,`:scope > thead th[data-sort-key]`,HTMLTableCellElement),H=()=>{for(let e of He()){let t=e.dataset.sortKey===O.sortBy;e.setAttribute(`aria-sort`,t?O.sortOrder===`desc`?`descending`:`ascending`:`none`)}};for(let e of He())if(e.classList.add(`sortable`),e.tabIndex=0,!e.querySelector(`.sort-icon`)){let t=e.classList.contains(`num`)||e.classList.contains(`text-end`),n=document.createElement(`span`);n.className=t?`sort-icon wui-sort-lead`:`sort-icon`,n.innerHTML=te(`chevrons-up-down`,{size:14}),t?e.prepend(n):e.append(n)}let Ue=e=>{let t=V(new URLSearchParams(A)),n=O.sortBy===e&&O.sortOrder===`asc`?`desc`:`asc`;return t.set(`sortBy`,e),t.set(`sortOrder`,n),B(t,`push`)};a.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`th[data-sort-key]`,HTMLTableCellElement):null;t&&a.tHead?.contains(t)&&Ue(t.dataset.sortKey??``)}),a.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target instanceof Element?T(e.target,`th[data-sort-key]`,HTMLTableCellElement):null;t&&a.tHead?.contains(t)&&(e.preventDefault(),Ue(t.dataset.sortKey??``))});let We=()=>{le(a);let e=x?{selected:O.total,total:O.total,allMatching:x}:{selected:b.size,total:O.total};a.dispatchEvent(new CustomEvent(`selectionchange`,{bubbles:!0,detail:e}))};y&&(de(a,(e,t)=>{for(let n of e){let e=T(n,`tr`,HTMLTableRowElement)?.dataset.rowKey;e&&(t?b.add(e):b.delete(e))}t||(x=!1)}),a.addEventListener(`change`,e=>{let t=e.target;if(t instanceof HTMLInputElement&&t.matches(`.wui-select-cell .wui-check:not(:disabled)`)){if(t.checked||(x=!1),a.tHead?.contains(t))for(let e of C(D,`:scope > tr`,HTMLTableRowElement)){let n=w(e,`.${_} .wui-check:not(:disabled)`,HTMLInputElement);n&&(n.checked=t.checked,t.checked?b.add(e.dataset.rowKey):b.delete(e.dataset.rowKey))}else{let e=T(t,`tr`,HTMLTableRowElement)?.dataset.rowKey;if(!e)return;t.checked?b.add(e):b.delete(e)}We()}})),g&&(g.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`a[href]`,HTMLAnchorElement):null;!t||e.defaultPrevented||e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),B(De(t.getAttribute(`href`)??``),`push`))}),g.addEventListener(`change`,e=>{let t=e.target;t instanceof HTMLSelectElement&&t.classList.contains(`tpg-select`)&&t.value&&(e.stopPropagation(),B(De(t.value),`push`))}));let U=()=>{if(!v.searchInput)return null;let e=w(document,v.searchInput,HTMLElement);return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:e?w(e,`input`,HTMLInputElement):null},W=()=>n.isConnected?!0:(_e.abort(),clearTimeout(Te??void 0),!1),Ge=(e,t)=>{let n=[...e.elements].filter(pe),r=/* @__PURE__ */ new Set;for(let e of n)e.name&&!he(e)&&r.add(e.name);let i=[];for(let e of n)if(e.name&&!me(e)){if(e instanceof HTMLInputElement&&e.matches(`input[type="hidden"][data-wui-carried]`))r.has(e.name)||i.push([e.name,e.value]);else if(e instanceof HTMLInputElement&&e.matches(`input[type=checkbox], input[type=radio]`))e.checked&&i.push([e.name,e.value]);else if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)e.matches(`[type=submit], [type=button], [type=reset], [type=image], [type=file]`)||i.push([e.name,e.value]);else if(e instanceof HTMLSelectElement)for(let t of e.selectedOptions)i.push([e.name,t.value])}return(t instanceof HTMLButtonElement||t instanceof HTMLInputElement)&&t.name&&!t.disabled&&i.push([t.name,t.value]),i},Ke=(e,t)=>{let n=new Set([...e.elements].filter(pe).map(e=>e.name).filter(Boolean)),r=new URLSearchParams,i=e=>e!==`search`&&f.includes(e);for(let[e,t]of A)e!==`page`&&(i(e)||!n.has(e))&&r.append(e,t);for(let[n,a]of Ge(e,t))a===``||i(n)||oe.has(n)||r.append(n,a);let a=U();if(a){r.delete(p);let e=a.value.trim();e&&r.set(p,e)}return B(r,`push`)},qe=e=>v.filtersForm&&e.closest?.(v.filtersForm)||v.filtersRegion&&e.closest?.(v.filtersRegion)||null;document.addEventListener(`submit`,e=>{W()&&v.filtersForm&&e.target instanceof HTMLFormElement&&e.target.matches(v.filtersForm)&&(e.preventDefault(),Ke(e.target,e.submitter))},E),document.addEventListener(`change`,e=>{if(!W()||!v.filtersForm||!(e.target instanceof Element))return;let t=T(e.target,v.filtersForm,HTMLFormElement);!t||e.target===U()||t.hasAttribute(`data-wui-apply-on-change`)||e.target.closest(`wui-filter-popover`)||Ke(t)},E);let Je=(e,t)=>{if(!e)return;let n=e=>t.get(e)??``;for(let r of C(e,`input[name]:not([type=hidden])`,HTMLInputElement))if(r.type===`checkbox`)r.checked=t.getAll(r.name).includes(r.value);else if(r.type===`radio`){let e=n(r.name)===r.value;if(r.checked===e)continue;r.checked=e,e&&r.dispatchEvent(new Event(`change`))}else r.value!==n(r.name)&&(r.value=n(r.name),r.dispatchEvent(new Event(`input`,{bubbles:!0})));for(let r of C(e,`select[name]`,HTMLSelectElement))if(!r.multiple)r.value=n(r.name);else for(let e of r.options)e.selected=t.getAll(r.name).includes(e.value);for(let r of[...e.querySelectorAll(`wui-select[name]`)].filter(ge)){let e=r.getAttribute(`name`)??``;r.value=r.mode===`multiple`||r.mode===`tag`?t.getAll(e):n(e)}for(let t of e.querySelectorAll(`wui-date-range`)){let e=t.getAttribute(`start-name`)||t.getAttribute(`name`),r=t.getAttribute(`end-name`);t.value={start:e?n(e):``,end:r?n(r):``}}};document.addEventListener(`click`,e=>{if(!W())return;let t=e.target instanceof Element?T(e.target,`a[href]`,HTMLAnchorElement):null;if(!t||!qe(t)||e.defaultPrevented||e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)return;let n=new URL(t.getAttribute(`href`)??``,window.location.href);if(n.origin!==window.location.origin||n.pathname!==window.location.pathname)return;e.preventDefault();let r=V(De(n.href));Je(t.closest(`form`),r),be(t.closest(`form`),r),B(r,`push`)},E),document.addEventListener(`input`,e=>{if(!W())return;let t=U();t&&e.target===t&&(clearTimeout(Te??void 0),Te=setTimeout(()=>{if(!W())return;let e=V(new URLSearchParams(A)),n=t.value.trim();n?e.set(p,n):e.delete(p),e.toString()!==A.toString()&&B(e,`replace`)},300))},E),v.urlState&&window.addEventListener(`popstate`,()=>{if(!W())return;let e=Ee(window.location.search),t=U();t&&(t.value=e.get(`search`)??``),be(z(),e),B(e,`none`)},E),document.addEventListener(`wui:modal:success`,()=>{W()&&v.refreshOnSuccess&&B(A,`none`)},E),h?.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`[data-wui-table-retry]`)&&we&&B(we.query,we.mode)});let G=e=>[...D.rows].find(t=>t.dataset.rowKey===e)??null,Ye=e=>{if(!e?.trim())return null;let t=document.createElement(`template`);if(t.innerHTML=`<table><tbody>${e}</tbody></table>`,t.content.querySelector(`tbody[data-wui-rows]`))return null;let n=C(t.content,`table > tbody > tr[data-row-key]`,HTMLTableRowElement);return n.length?n.map(e=>document.importNode(e,!0)):null},Xe=(e,t,n)=>{let r=n?e[0]:e.find(e=>e.dataset.rowKey===t.dataset.rowKey);if(!r)return null;let a=[];for(let n of e){let e=n===r?t:G(n.dataset.rowKey);e&&(I(e),e.replaceWith(n),a.push(n))}return Ne(a),k().refresh(i),r},Ze=e=>e.message||(e.kind===`forbidden`?S.actionForbidden:S.actionFailed),Qe=e=>{e?.isConnected&&e.getAttribute(`data-wui-save-state`)===`saving`&&l(e,null)},$e=e=>{if(e instanceof HTMLTableRowElement)return e;let t=document.createElement(`template`);t.innerHTML=`<table><tbody>${String(e)}</tbody></table>`;let n=w(t.content,`table > tbody > tr`,HTMLTableRowElement);return document.importNode(r(n,"saveRow's `row` is the row as it will read: a <tr> element or its HTML."),!0)},et=async({url:e,method:t=`POST`,body:n,key:r,row:a}={})=>{if(!e)throw Error("saveRow needs `url`: the handler that saves the row.");let o=r==null,s=o?null:G(String(r));if(!o&&!s)throw Error(`saveRow found no row with data-row-key="${r}" on this page.`);let ee=N().filter(e=>!e.classList.contains(_)),d=a?$e(a):s??ze(Math.max(1,ee.length),ee);s&&d!==s?s.replaceWith(d):s||D.insertBefore(d,D.firstChild),d!==s&&Ne([d]),h&&!i.hasAttribute(`data-wui-table-error`)&&(h.hidden=!0),l(d,`saving`);let te=c(d),f=await ne(e,{method:t.toUpperCase(),body:n});if(f.kind===`session`)return!1;if(f.ok){let e=Ye(f.html),t=e&&d.isConnected?Xe(e,d,o):null;return t?M(u.saved(c(t)||te)):(await B(A,`none`),Qe(d)),Ae(f,f.toastVariant||`success`),j(`wui:table:saved`,{key:t?.dataset.rowKey??(o?null:String(r)),added:o,status:f.status}),!0}let p=Ze(f),m=d;return s&&d!==s&&d.isConnected?(d.replaceWith(s),m=s):o&&!a&&(d.remove(),m=null,h?.childElementCount&&!D.querySelector(`:scope > tr`)&&(h.hidden=!1)),m?.isConnected&&l(m,`error`,p),f.kind!==`aborted`&&ye(p,`danger`),M(u.notSaved(te,p)),j(`wui:table:failed`,{key:o?null:String(r),added:o,status:f.status,kind:f.kind,message:p}),!1},tt=async e=>{let t=e.dataset.url;if(!t)throw Error(`A data-wui-row-action button needs data-url: the handler the action posts to.`);let n=T(e,`tr`,HTMLTableRowElement),r=n?.dataset.rowKey??null,i=e.dataset.wuiRowAction||``,a=n?c(n):``;e.disabled=!0,e.setAttribute(`aria-busy`,`true`),n&&l(n,`saving`);let o=await ne(t,{method:(e.dataset.method||`post`).toUpperCase()});if(e.disabled=!1,e.removeAttribute(`aria-busy`),o.kind===`session`||o.kind===`aborted`)Qe(n);else{if(o.ok){Ae(o,o.toastVariant||`success`);let e=n?.isConnected?Ye(o.html):null,t=e&&n?Xe(e,n,!1):null;t?M(u.saved(c(t)||a)):(await B(A,`none`),Qe(n))}else{let e=Ze(o);ye(e,`danger`),n?.isConnected&&l(n,`error`,e),M(u.notSaved(a,e))}j(`wui:table:action`,{action:i,key:r,ok:o.ok,status:o.status})}};return a.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`[data-wui-row-action]`,HTMLButtonElement):null;t&&D.contains(t)&&!t.disabled&&(e.preventDefault(),tt(t))}),P(D),Fe(D),y&&ce(a),Pe(D),H(),{el:n,reload:async e=>{let t=e?.quiet===!0;return t&&i.getAttribute(`aria-busy`)===`true`?null:B(A,`none`,{quiet:t})},query:()=>new URLSearchParams(A),setQuery:e=>{let t=new URLSearchParams(A);for(let[n,r]of Object.entries(e??{})){t.delete(n);for(let e of Array.isArray(r)?r:[r])e!=null&&e!==``&&t.append(n,String(e))}return e&&`page`in e||t.delete(`page`),B(t,`push`)},saveRow:et,setActiveRow:e=>{n.dataset.activeRowKey=e==null?``:String(e),F(C(D,`:scope > tr`,HTMLTableRowElement))},selection:{keys:()=>[...b],count:()=>x?O.total:b.size,allMatching:()=>x,selectAllMatching:()=>{x=!0;for(let e of C(D,`:scope > tr`,HTMLTableRowElement)){let t=w(e,`.${_} .wui-check`,HTMLInputElement);t?.disabled||(t&&(t.checked=!0),e.dataset.rowKey&&b.add(e.dataset.rowKey))}We()},clear:()=>{x=!1,b.clear();for(let e of C(D,`:scope > tr > .${_} .wui-check:not(:disabled)`,HTMLInputElement))e.checked=!1;We()}}}}var Te=8e3,Ee=`That did not work. Try again.`,De=[`success`,`info`,`warning`,`danger`],Oe=e=>De.some(t=>t===e);function ke(e){if(!Oe(e))throw RangeError(`Unknown toast variant "${e}".`);return e}function k(){return r(window.WUI,`window.WUI is not defined: the Razor behaviour script did not load on this page.`)}function Ae(e,t=`success`){if(!e?.message)return;let n=e.toastAction;n?k().toast(e.message,{variant:ke(t),duration:Te,action:{label:n.label,onClick:()=>je(n)}}):k().toast(e.message,{variant:ke(t)})}async function je(e){let t=await ne(e.url,{method:e.method});if(t.kind!==`session`&&t.kind!==`aborted`){if(t.ok){Ae(t,t.toastVariant||`success`);for(let e of document.querySelectorAll(`[data-wui-server]`))e instanceof HTMLElement&&e.dataset.refreshOnSuccess!==`false`&&O(e)?.reload()}else k().toast(t.message||Ee,{variant:`danger`})}}var A=`wui-remote-modal`,j=`wui-remote-drawer`,M=Object.freeze({sm:360,md:480,lg:640,xl:720}),Me=`wui-modal-fullscreen`,N=Object.freeze({sm:380,md:440,lg:640,xl:880}),P=Object.freeze({loading:`Loading`,close:`Close`,retry:`Try again`,errorTitle:`This could not be loaded`,forbidden:`You do not have access to this.`,client:`It may have been moved or deleted.`,server:`Something went wrong on our side. Try again in a moment.`,network:`Could not reach the server. Check your connection and try again.`,submitFailed:`Your changes were not saved.`,invalid:`Some fields need attention.`}),F=`a[href],button:not([disabled]),input:not([disabled]):not([type="hidden"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,Ne=`input:not([type="hidden"]):not([disabled]),select:not([disabled]),textarea:not([disabled]),[contenteditable="true"]`,Pe=`[aria-invalid="true"], .is-invalid, .input-validation-error`,Fe=`.wui-error-summary, [data-wui-form-errors], .validation-summary-errors, [data-valmsg-summary]`,I=`[data-wui-modal-content]`,Ie=`[data-wui-pane-close], [data-bs-dismiss="modal"]`,Le=`<button type="button" class="wui-modal-close" data-bs-dismiss="modal" aria-label="Close"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"></path></svg></button>`,Re=/* @__PURE__ */ new WeakMap,ze=/* @__PURE__ */ new WeakSet;function L(e,t){if(e==null)throw TypeError(`The remote modal needs ${t}, and the page does not have it.`);return e}var R=(e,t)=>{let n=e.querySelector(t);return n instanceof HTMLElement?n:null},Be=(e,t,n)=>L(R(e,t),n),Ve=(e,t)=>[...e.querySelectorAll(t)].filter(e=>e instanceof HTMLElement),z=()=>Object.assign(/* @__PURE__ */ Error(`The remote modal load was aborted.`),{name:`AbortError`}),B=e=>typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`,V=(e,t)=>{let n=e instanceof Element?e.closest(t):null;return n instanceof HTMLElement?n:null},He=e=>{let t=window.bootstrap?.Modal;if(!t)throw Error(`WUI.modal.load(${String(e)}): Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);return t},H=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML},Ue=e=>Object.hasOwn(N,e),We=e=>Object.hasOwn(M,e);function U(e){if(e==null||e===``)return null;if(e===`fullscreen`)return{fullscreen:!0};if(Ue(e))return{px:N[e]};let t=typeof e==`number`?e:/^\d+$/.test(String(e))?Number(e):NaN;if(Number.isInteger(t)&&t>0)return{px:t};throw TypeError(`Unsupported modal size "${String(e)}". Use sm, md, lg, xl, fullscreen or a px number.`)}var W=e=>{if(e.classList.contains(`wui-modal-fullscreen`))return{fullscreen:!0};let t=Number.parseInt(e.style.getPropertyValue(`--wui-modal-max-width`),10);return{px:t>0?t:N.md}},Ge=(e,t)=>{e.classList.toggle(Me,!!t.fullscreen),t.fullscreen?e.style.removeProperty(`--wui-modal-max-width`):e.style.setProperty(`--wui-modal-max-width`,`${t.px}px`)},Ke=[`center`,`top`];function qe(e){if(e==null||e===``)return null;if(We(e))return{px:M[e]};let t=typeof e==`number`?e:/^\d+$/.test(String(e))?Number(e):NaN;if(Number.isInteger(t)&&t>0)return{px:t};throw TypeError(`Unsupported drawer size "${String(e)}". Use sm, md, lg, xl or a px number.`)}var Je=e=>e.container===`drawer`,G=e=>e.container===`pane`,Ye=e=>e.container!==`modal`,Xe=(e,t)=>Je(e)?qe(t):U(t),Ze=()=>document.getElementById(`wui-remote-drawer`)?.classList.contains(`show`)??!1,Qe=e=>{let t=typeof e==`string`?document.querySelector(e):e,n=t instanceof HTMLElement?t:null;return n?.matches(`[data-wui-pane-host]`)?n:null},$e=e=>G(e)?e.shell:Be(e.shell,`.modal-dialog`,`a dialog frame`);function et(e=`modal`){let t=e===`drawer`,n=t?j:A,r=document.getElementById(n);return r||(r=document.createElement(`div`),r.id=n,r.className=t?`modal fade wui-modal-shell wui-remote-drawer`:`modal fade wui-modal-shell`,r.tabIndex=-1,r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`role`,`dialog`),r.setAttribute(`aria-modal`,`true`),r.style.setProperty(`--wui-modal-max-width`,`${t?M.md:N.md}px`),r.innerHTML=t?`<div class="modal-dialog wui-remote-drawer-dialog"><div class="modal-content wui-modal"></div></div>`:`<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal"></div></div>`,document.body.appendChild(r),r)}var tt=e=>`<div class="wui-modal-header"><div class="wui-modal-heading"><div class="wui-modal-headtext"><div class="wui-modal-title">${H(e)}</div></div></div>${Le}</div>`,nt=e=>`<div class="modal-content wui-modal" aria-busy="true">${tt(e)}<div class="wui-modal-body"><div class="wui-modal-loading" role="status"><span class="visually-hidden">${H(P.loading)}</span><div class="skeleton wui-modal-skeleton"></div><div class="skeleton wui-modal-skeleton"></div><div class="skeleton wui-modal-skeleton wui-modal-skeleton--short"></div></div></div></div>`,rt=(n,r)=>`<div class="modal-content wui-modal" data-wui-modal-error="${H(r)}">${tt(n)}<div class="wui-modal-body"><div class="wui-modal-state" role="alert"><p class="wui-modal-state-title">${H(P.errorTitle)}</p><p class="wui-modal-state-text">${H(P[r]||P.server)}</p><div class="wui-modal-state-actions"><button type="button" class="${e(`primary`,`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${H(P.close)}</button><button type="button" class="${e(`primary`,`solid`,`md`)}" data-wui-modal-retry data-wui="${t}">${H(P.retry)}</button></div></div></div></div>`,it=e=>{let t=document.createElement(`template`);return t.innerHTML=e,Be(t.content,`.modal-content`,`a card`)},K=e=>R(e.shell,`.modal-content`);function at(e){if(!e)return;e.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0}));let t=window.bootstrap,n=t?[t.Tooltip,t.Popover]:[];for(let r of[e,...e.querySelectorAll(`*`)]){for(let e of n)re(e,r);t?.Dropdown.getInstance(r)?.dispose()}}function ot(e,t){let n=K(e),r=n?ct(n):/* @__PURE__ */ new Map;at(n),n?n.replaceWith(t):$e(e).appendChild(t),lt(t,r),k().refresh()}var st=`input[type="file"][name]`;function ct(e){let t=/* @__PURE__ */ new Map;for(let n of e.querySelectorAll(st)){if(!(n instanceof HTMLInputElement))continue;let e=n.files;e&&e.length>0&&t.set(n.name,[...e])}return t}function lt(e,t){if(t.size!==0&&typeof DataTransfer<`u`)for(let n of e.querySelectorAll(st)){if(!(n instanceof HTMLInputElement))continue;let e=t.get(n.name);if(!e)continue;let r=new DataTransfer;for(let t of e)r.items.add(t);n.files=r.files,n.dispatchEvent(new Event(`change`,{bubbles:!0}))}}var ut=e=>G(e)?!e.shell.hidden:e.shell.classList.contains(`show`);function dt(e,t,n=!1){let r=t?R(e,Pe):null,i=r?r.matches(F)?r:R(r,F)||r:null;if(!i&&n)i=R(e,`[data-autofocus]`)||R(e,Ne)||R(e,`.wui-modal-close`);else if(!i){let t=Ve(e,F);i=R(e,`[data-autofocus]`)||t.find(e=>!e.classList.contains(`wui-modal-close`))||t[0]||e}r?i?.focus?.():i?.focus?.({preventScroll:!0})}function ft(e,t){let n=Ve(e,F).filter(e=>e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`);if(!n.length){t.preventDefault(),e.focus();return}let r=L(n[0],`a focusable control`),i=L(n[n.length-1],`a focusable control`),a=document.activeElement;!e.contains(a)||a===e?(t.preventDefault(),(t.shiftKey?i:r).focus()):t.shiftKey&&a===r?(t.preventDefault(),i.focus()):!t.shiftKey&&a===i&&(t.preventDefault(),r.focus())}function pt(e,t){let n=R(e.shell,`[data-wui-modal-live]`);n||(n=document.createElement(`div`),n.className=`visually-hidden`,n.setAttribute(`aria-live`,`assertive`),n.setAttribute(`data-wui-modal-live`,``),$e(e).appendChild(n)),n.textContent=``,n.textContent=t}var mt=e=>{let t=R(e.shell,`[data-wui-modal-live]`);t&&(t.textContent=``)},ht=(e,t,n)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n}))};function gt(e,t,n,r){let i={...r,container:e.container};ht(t,`wui:modal:${n}`,i),Je(e)&&ht(t,`wui:drawer:${n}`,i),G(e)&&ht(t,`wui:pane:${n}`,i)}var _t=e=>e.matches(`[data-wui-pane-host]`)?`pane`:e.classList.contains(`wui-remote-drawer`)?`drawer`:`modal`;function vt(e){let t=Re.get(e);if(t)return t;let n={shell:e,container:_t(e),queue:m(),defaultSize:W(e),defaultLabel:e.getAttribute(`aria-label`),placeholder:K({shell:e})?.outerHTML||`<div class="modal-content wui-modal"></div>`,remoteUrl:e.getAttribute(`data-wui-remote-url`),cache:e.getAttribute(`data-wui-remote-cache`)===`true`,loadedUrl:null,session:null};return Re.set(e,n),e.addEventListener(`submit`,e=>Rt(n,e)),e.addEventListener(`click`,e=>{V(e.target,`[data-wui-modal-retry]`)&&n.session&&(e.preventDefault(),J(n,n.session))}),G(n)&&e.addEventListener(`click`,t=>{let r=V(t.target,Ie);r&&e.contains(r)&&n.session&&q(n,n.session,`dismissed`,null)}),e.addEventListener(`hidden.bs.modal`,t=>{t.target===e&&(e.classList.contains(`wui-modal-stacked`)&&xt(n),St(n))}),e.addEventListener(`shown.bs.modal`,t=>{if(t.target!==e)return;e.classList.contains(`wui-modal-stacked`)&&[...document.querySelectorAll(`.modal-backdrop`)].at(-1)?.classList.add(`wui-modal-backdrop-stacked`);let r=K(n);n.session&&r?.matches(I)&&!r.contains(document.activeElement)&&dt(r,!1,Ye(n))}),n.remoteUrl&&e.addEventListener(`show.bs.modal`,t=>{t.target===e&&Ct(n,t)}),n}function yt(e,t,n){e.session&&(e.queue.abort(),e.session.resolveClosed({status:`dismissed`,detail:{replaced:!0}}));let r=()=>void 0,i=new Promise(e=>{r=e}),a={url:t,method:(n.method||`GET`).toUpperCase(),body:n.body,options:n,trigger:n.trigger||null,explicitSize:null,closing:null,resolveClosed:r,handle:{el:e.shell,closed:i,close:()=>q(e,a,`dismissed`,null),reload:()=>J(e,a)}};return e.session=a,a}function q(e,t,n,r){e.session===t&&(t.closing={status:n,detail:r},G(e)?bt(e,t):window.bootstrap?.Modal.getOrCreateInstance(e.shell).hide())}function bt(e,t){let n=e.shell,{status:r,detail:i}=L(t.closing,`the closing state`),a=n.contains(document.activeElement);e.queue.abort(),e.session=null,at(K(e)),n.replaceChildren(),n.hidden=!0,n.removeAttribute(`data-open`),t.resolveClosed({status:r,detail:i}),gt(e,n,`closed`,{status:r,url:t.url}),a&&t.trigger?.isConnected&&t.trigger.focus?.()}function xt(e){e.shell.classList.remove(`wui-modal-stacked`),Ze()&&(document.body.classList.add(`modal-open`),document.body.style.overflow=`hidden`)}function St(e){let t=e.session;if(e.queue.abort(),e.session=null,mt(e),t){let n=t.closing||{status:`dismissed`,detail:null};t.resolveClosed({status:n.status,detail:n.detail}),gt(e,e.shell,`closed`,{status:n.status,url:t.url});let r=document.activeElement;t.trigger?.isConnected&&(!r||r===document.body||e.shell.contains(r))&&t.trigger.focus?.()}e.cache||(ot(e,it(e.placeholder)),e.loadedUrl=null,Ge(e.shell,e.defaultSize),e.defaultLabel?e.shell.setAttribute(`aria-label`,e.defaultLabel):e.shell.removeAttribute(`aria-label`))}function Ct(e,t){let n=`relatedTarget`in t?t.relatedTarget:null,r=n instanceof HTMLElement?n:null,i=r?.getAttribute(`data-wui-url`)||e.remoteUrl||``,a=yt(e,i,{trigger:r});a.explicitSize=wt(e,r?.getAttribute(`data-wui-size`)),a.explicitSize&&Ge(e.shell,a.explicitSize),e.cache&&e.loadedUrl===i||(e.loadedUrl&&ot(e,it(e.placeholder)),J(e,a,{keepPlaceholder:!0}))}function wt(e,t){try{return Xe(e,t)}catch(e){return s(e),null}}async function J(e,t,{keepPlaceholder:n=!1}={}){n||ot(e,it(nt(t.options.title||Tt(e))));let r=await e.queue.run(t.url,{method:t.method,body:t.body,navigate:t.options.navigate});if(e.session!==t||r.kind===`aborted`||r.kind===`stale`)return`aborted`;if(r.kind===`session`)return`session`;if((r.kind===`ok`||r.kind===`validation`)&&kt(e,t,r.html,!1))return e.loadedUrl=t.url,gt(e,e.shell,`loaded`,{url:t.url,handle:t.handle}),`loaded`;let i=r.kind===`ok`||r.kind===`validation`?`server`:r.kind;return ot(e,it(rt(t.options.title||Tt(e),i))),ut(e)&&dt(L(K(e),`a card`),!1,Ye(e)),gt(e,e.shell,`error`,{url:t.url,kind:i,status:r.status}),`error`}var Tt=e=>K(e)?.querySelector(`.wui-modal-title`)?.textContent||e.shell.getAttribute(`aria-label`)||``,Et=`/_content/Webority.Ui.Razor/js/`,Dt=e=>new URL(e,window.location.href).pathname.includes(Et);function Ot(e){if([...document.scripts].some(t=>t.getAttribute(`src`)===e))return;let t=document.createElement(`script`);t.src=e,document.head.appendChild(t)}function kt(e,t,n,r){let i=document.createElement(`template`);i.innerHTML=n;let a=!1;for(let e of i.content.querySelectorAll(`script`)){if(e.getAttribute(`type`)===`application/json`)continue;let t=e.getAttribute(`src`);e.remove(),t&&Dt(t)?Ot(t):a=!0}a&&o(`WUI.modal: ${t.url} returned a fragment with script; it was removed. Keep page behaviour in the page.`);let c=R(i.content,I);if(!c)return s(`WUI.modal: ${t.url} did not answer with an <app-modal-content> fragment.`),!1;if(ot(e,c),r||mt(e),!G(e)){Ge(e.shell,t.explicitSize||wt(e,c.getAttribute(`data-wui-size`))||e.defaultSize);let n=c.getAttribute(`data-wui-title`);n&&e.shell.setAttribute(`aria-label`,n)}return ut(e)&&dt(c,r,Ye(e)),!0}var At=`button[type="submit"], button:not([type]), input[type="submit"], input[type="image"]`;function jt(e,t,n){let r=[...e.elements].filter(e=>e.matches(At));if(n){e.setAttribute(`data-wui-submitting`,``);let n=t&&r.includes(t)?t:r[0];for(let e of r)e.toggleAttribute(`data-wui-was-disabled`,e.disabled),e.disabled=!0;n&&(n.classList.add(`is-loading`),n.setAttribute(`aria-busy`,`true`),n.tagName===`BUTTON`&&n.insertAdjacentHTML(`afterbegin`,`<span class="spinner-border spinner-border-sm me-2" aria-hidden="true" data-wui-submit-spinner></span>`))}else{e.removeAttribute(`data-wui-submitting`);for(let e of r)e.disabled=e.hasAttribute(`data-wui-was-disabled`),e.removeAttribute(`data-wui-was-disabled`),e.classList.remove(`is-loading`),e.removeAttribute(`aria-busy`),e.querySelector(`[data-wui-submit-spinner]`)?.remove()}}function Mt(e){for(let t of e.querySelectorAll(Fe))t.remove();for(let t of e.querySelectorAll(Pe))t.removeAttribute(`aria-invalid`),t.classList.remove(`is-invalid`,`input-validation-error`);for(let t of e.querySelectorAll(`.field-error`))t.textContent=``}var Nt=/* @__PURE__ */ new Set(/* @__PURE__ */ `bad request.unauthorized.payment required.forbidden.not found.method not allowed.not acceptable.proxy authentication required.request timeout.conflict.gone.length required.precondition failed.payload too large.uri too long.unsupported media type.range not satisfiable.expectation failed.misdirected request.unprocessable content.unprocessable entity.locked.failed dependency.too early.upgrade required.precondition required.too many requests.request header fields too large.unavailable for legal reasons`.split(`.`)),Pt=(e,t)=>{if(typeof e==`object`&&e&&t in e)return Reflect.get(e,t)};async function Ft(e){if(!e||e.status<400||e.status>499||e.status===422||!e.headers.get(`content-type`)?.toLowerCase().includes(`json`))return null;let t;try{t=JSON.parse(await e.text())}catch{return null}let n=e=>typeof e==`string`?e.trim():``,r=n(Pt(t,`title`)),i=(e.statusText||``).trim().toLowerCase(),a=Nt.has(r.toLowerCase())||r.toLowerCase()===i;return n(Pt(t,`message`))||n(Pt(t,`detail`))||(r&&!a?r:null)}function It(e,t,n,r){let i=t.closest(`.wui-modal-body`)||t;i.querySelector(`[data-wui-modal-submit-error]`)?.remove(),Mt(i);let a=document.createElement(`div`);a.className=`alert alert-danger wui-modal-submit-error`,a.setAttribute(`role`,`alert`),a.setAttribute(`data-wui-modal-submit-error`,``),a.innerHTML=H(`${P.submitFailed} ${r||P[n]||P.server}`),i.prepend(a),pt(e,a.textContent)}var Lt=(e,t)=>{let n=new URL(e,window.location.href);for(let[e,r]of t)typeof r==`string`&&n.searchParams.append(e,r);return n.origin===window.location.origin?n.pathname+n.search:n.href};async function Rt(e,t){let n=t.target,r=e.session;if(!(n instanceof HTMLFormElement)||!r||n.hasAttribute(`data-wui-native`)||!n.closest(I)||(t.preventDefault(),n.hasAttribute(`data-wui-submitting`)))return;let i=`submitter`in t&&(t.submitter instanceof HTMLButtonElement||t.submitter instanceof HTMLInputElement)?t.submitter:null,a=i?.getAttribute(`formaction`)||n.getAttribute(`action`)||r.url,o=(i?.getAttribute(`formmethod`)||n.getAttribute(`method`)||`GET`).toUpperCase(),c=new FormData(n);i?.name&&!c.has(i.name)&&c.append(i.name,i.value);let l=o===`GET`;jt(n,i,!0);let u;try{u=await e.queue.run(l?Lt(a,c):a,{method:o,body:l?void 0:c,navigate:r.options.navigate})}catch(t){s(t),e.session===r&&n.isConnected&&(jt(n,i,!1),It(e,n,`server`,null));return}if(e.session!==r)return;if(n.isConnected&&jt(n,i,!1),u.kind===`ok`&&u.result===`success`){zt(e,r,u);return}if(u.kind===`aborted`||u.kind===`stale`||u.kind===`session`)return;if(u.kind===`validation`&&kt(e,r,u.html,!0)){let t=L(K(e),`a card`).querySelector(Fe)?.textContent?.replace(/\s+/g,` `).trim();pt(e,t||P.invalid);return}if(u.kind===`ok`&&u.html&&kt(e,r,u.html,!1))return;let ee=u.kind===`ok`||u.kind===`validation`?`server`:u.kind,d=await Ft(u.response);e.session===r&&It(e,n,ee,d)}function zt(e,t,n){let r=n.message,i=n.redirect||null,a=n.toastVariant||`success`;if(!Qt(a))throw TypeError(`Unknown toast variant "${a}". Use ${Zt.join(`, `)}.`);let o={url:t.url,trigger:t.trigger,handle:t.handle,message:r,redirect:i,data:n.data??null,container:e.container};i&&!t.options.navigate?Sn(r,a):r&&k().toast(r,{variant:a}),gt(e,t.trigger?.isConnected?t.trigger:document,`success`,o),t.options.onSuccess?.(o,t.handle),i&&(t.options.navigate||(e=>window.location.assign(e)))(i);let s=n.next;s&&!i?(t.url=s,t.method=`GET`,t.body=void 0,J(e,t)):n.keepOpen?n.html&&kt(e,t,n.html,!1):q(e,t,`success`,o)}function Bt(e){let t=V(e.target,`[data-wui-modal], [data-wui-drawer], [data-wui-pane]`);t&&(t.matches(`a[href]`)&&(e.ctrlKey||e.metaKey||e.shiftKey||e.button!==0)||(e.preventDefault(),t.hasAttribute(`data-wui-pane`)?Jt(t.getAttribute(`data-wui-pane`)??``,{target:t.getAttribute(`data-wui-pane-target`),trigger:t}).catch(e=>{B(e)||s(e)}):t.hasAttribute(`data-wui-modal`)?Wt(t.getAttribute(`data-wui-modal`)??``,{size:t.getAttribute(`data-wui-size`)||void 0,title:t.getAttribute(`data-wui-title`)||void 0,trigger:t}).catch(e=>{B(e)||s(e)}):Kt(t.getAttribute(`data-wui-drawer`)??``,{size:t.getAttribute(`data-wui-drawer-size`)||void 0,title:t.getAttribute(`data-wui-title`)||void 0,trigger:t}).catch(e=>{B(e)||s(e)})))}function Vt(e){if(e.key!==`Tab`||e.defaultPrevented)return;let t=e.currentTarget;if(!(t instanceof Document))return;let n=Ve(t,`.modal.show`),r=R(t,`.modal.show.wui-modal-stacked`)??n[n.length-1];r&&ft(r,e)}function Ht(e){if(e.key!==`Escape`||e.defaultPrevented)return;let t=V(e.target,qt),n=t&&Re.get(t),r=e.currentTarget;n?.session&&r instanceof Document&&!r.querySelector(`.modal.show`)&&q(n,n.session,`dismissed`,null)}function Ut(e=document){let t=e instanceof Document?e:L(e.ownerDocument,`an owner document`);ze.has(t)||(ze.add(t),t.addEventListener(`click`,Bt),t.addEventListener(`keydown`,Vt),t.addEventListener(`keydown`,Ht));let n=Ve(e,`.modal[data-wui-remote-url]`);e instanceof HTMLElement&&e.matches(`.modal[data-wui-remote-url]`)&&n.unshift(e);for(let e of n)vt(e)}function Wt(e,t={}){try{if(!e)throw TypeError(`WUI.modal.load: a fragment url is required.`);let n=He(e),r=t.container===`drawer`,i=r?qe(t.size):U(t.size),a=t.placement||`center`;if(!Ke.includes(a))throw TypeError(`WUI.modal.load: unsupported placement "${a}". Use center or top.`);if(t.signal?.aborted)return Promise.reject(z());let o=et(r?`drawer`:`modal`);Ut(document);let s=vt(o),c=ut(s),l=yt(s,e,t);l.explicitSize=i,Ge(o,i||s.defaultSize),r||Be(o,`.modal-dialog`,`a dialog frame`).classList.toggle(`modal-dialog-centered`,a===`center`),t.title&&o.setAttribute(`aria-label`,t.title),c||(!r&&Ze()&&(document.body.appendChild(o),o.classList.add(`wui-modal-stacked`)),n.getInstance(o)?.dispose(),n.getOrCreateInstance(o,{backdrop:t.staticBackdrop===!1||`static`,keyboard:t.staticBackdrop===!1}));let u=c?Promise.resolve():new Promise(e=>o.addEventListener(`shown.bs.modal`,()=>e(),{once:!0})),ee=J(s,l);return c||n.getOrCreateInstance(o).show(),Gt(s,l,t,u,ee,`WUI.modal.load`)}catch(e){return Promise.reject(e)}}function Gt(e,t,n,r,i,a){let o=new Promise((r,i)=>{n.signal?.addEventListener(`abort`,()=>{e.session===t&&(e.queue.abort(),q(e,t,`dismissed`,{aborted:!0})),i(z())},{once:!0})}),s=Promise.all([r,i]).then(([,e])=>{if(e===`aborted`)throw z();if(e===`session`)throw Error(`${a}(${t.url}): the session expired; the browser is signing in again.`);return t.handle});return Promise.race([s,o])}function Kt(e,t={}){return Wt(e,{...t,container:`drawer`,placement:void 0})}var qt=`[data-wui-pane-host]`;function Jt(e,t={}){try{if(!e)throw TypeError(`WUI.pane.load: a fragment url is required.`);let n=Qe(t.target);if(!n)throw TypeError(`WUI.pane.load: the target is not an <app-detail-pane>.`);if(t.signal?.aborted)return Promise.reject(z());Ut(document);let r=vt(n),i=yt(r,e,t);n.hidden=!1,n.setAttribute(`data-open`,``);let a=J(r,i);return Gt(r,i,t,Promise.resolve(),a,`WUI.pane.load`)}catch(e){return Promise.reject(e)}}function Yt(e){let t=Qe(e);if(!t)throw TypeError(`WUI.pane.close: the target is not an <app-detail-pane>.`);let n=Re.get(t);n?.session&&q(n,n.session,`dismissed`,null)}var Y=`wuiConfirm`,Xt=Object.freeze([`danger`]),Zt=Object.freeze([`success`,`info`,`warning`,`danger`]),Qt=e=>Zt.some(t=>t===e),$t=`wui.flash`,X=Object.freeze({confirmTitle:`Are you sure?`,confirmLabel:`Confirm`,cancelLabel:`Cancel`,failed:`That did not work. Try again.`,forbidden:`You do not have permission to do that.`,network:`Could not reach the server. Check your connection and try again.`}),en=/* @__PURE__ */ new WeakSet,tn=/* @__PURE__ */ new WeakSet,nn=null,rn=null,an=!1,on=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML},sn=(e,t)=>{e&&k().toast(e,{variant:t})},cn=()=>r(window.bootstrap?.Modal,`data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);function ln(){let n=document.getElementById(Y);return n||(n=document.createElement(`div`),n.id=Y,n.className=`modal fade wui-modal-shell`,n.tabIndex=-1,n.setAttribute(`aria-hidden`,`true`),n.setAttribute(`role`,`dialog`),n.setAttribute(`aria-modal`,`true`),n.style.setProperty(`--wui-modal-max-width`,`${N.md}px`),n.innerHTML=`<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal wui-confirm"><div class="wui-modal-body"><div class="wui-confirm-content"><span class="wui-confirm-icon"><wui-status-icon tone="info" size="120"></wui-status-icon></span><h3 class="wui-confirm-title" tabindex="-1" data-autofocus></h3><p class="wui-confirm-msg"></p></div></div><div class="wui-modal-footer"><div class="wui-confirm-actions"><button type="button" class="${e(`primary`,`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${on(X.cancelLabel)}</button><button type="button" class="${e(`primary`,`solid`,`md`)}" data-app-confirm data-wui="${t}"></button></div></div></div></div>`,document.body.appendChild(n),n)}function un(e,t){let n=e.getAttribute(`data-wui-confirm-tone`);if(n!==null&&!Xt.includes(n))throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);dn({title:e.getAttribute(`data-wui-confirm-title`),message:e.getAttribute(`data-wui-confirm`),label:e.getAttribute(`data-wui-confirm-label`),danger:n===`danger`},t)}function dn({title:e,message:t,label:n,danger:r},i){let a=cn(),o=ln(),s=o.querySelector(`.wui-confirm-title`),c=o.querySelector(`[data-app-confirm]`);if(!s||!c)throw Error(`#${Y} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${Y}"> without confirm-href, or leave the dialog to the library.`);let l=o.querySelector(`.wui-confirm-msg`);l||(l=document.createElement(`p`),l.className=`wui-confirm-msg`,s.after(l));let u=e||X.confirmTitle;s.textContent=u,l.textContent=t,c.textContent=n||X.confirmLabel,c.classList.toggle(`btn-danger`,r),c.classList.toggle(`btn-primary`,!r),o.querySelector(`wui-status-icon`)?.setAttribute(`tone`,r?`delete`:`info`),o.setAttribute(`aria-label`,u),rn=i,an=!1,a.getOrCreateInstance(o).show()}var fn=(e,t)=>{nn=e;try{t()}finally{nn=null}},pn=(e,t)=>{let n=Reflect.get(e,t);if(n===void 0||typeof n==`string`)return n;throw TypeError(`confirmAction: ${t} must be text.`)},mn=e=>{if(typeof e!=`object`||!e)throw TypeError(`confirmAction: options must be an object with a message.`);let t=`message`in e?e.message:void 0;if(typeof t!=`string`)throw TypeError(`confirmAction: message must be text.`);return{title:pn(e,`title`),message:t,label:pn(e,`label`),tone:pn(e,`tone`)}};function hn(e,t,n){let{title:r,message:i,label:a,tone:o}=mn(t);if(o!=null&&!Xt.includes(o))throw TypeError(`confirmAction: tone "${o}" is not supported. Use danger, or leave it off.`);Fn(e.ownerDocument),dn({title:r,message:i,label:a,danger:o===`danger`},()=>fn(e,n))}var gn=e=>`disabled`in e&&e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`,_n=e=>{n(e,HTMLElement,`data-wui-confirm needs an HTML element to click.`).click()};function vn(e){let t=i(e.target,`[data-wui-confirm]:not(form)`);t&&t!==nn&&!gn(t)&&(e.preventDefault(),e.stopImmediatePropagation(),un(t,()=>fn(t,()=>_n(t))))}function yn(e){let t=e.target;if(!(t instanceof HTMLFormElement)||!t.hasAttribute(`data-wui-confirm`)||t===nn||e.submitter&&e.submitter===nn||t.querySelector(`input[data-app-repeater-hidden]`))return;e.preventDefault(),e.stopImmediatePropagation();let n=e.submitter instanceof HTMLButtonElement||e.submitter instanceof HTMLInputElement?e.submitter:null,r=n?.form===t?n:void 0;un(t,()=>fn(t,()=>t.requestSubmit(r)))}function bn(e){let t=i(e.target,`#${Y} [data-app-confirm]`);if(!t||t.hasAttribute(`disabled`)||!rn)return;an=!0;let n=cn(),a=r(t.closest(`#${Y}`),`#${Y} is missing around its confirm button.`);n.getOrCreateInstance(a).hide()}function xn(e){if(!(e.target instanceof Element)||e.target.id!==`wuiConfirm`)return;let t=an?rn:null;rn=null,an=!1,t?.()}function Sn(e,t){e&&window.sessionStorage.setItem($t,JSON.stringify({message:e,variant:t}))}var Cn=e=>e===`forbidden`?X.forbidden:e===`network`?X.network:X.failed;function wn(){for(let e of document.querySelectorAll(`[data-wui-server]`))e.getAttribute(`data-refresh-on-success`)!==`false`&&O(e)?.reload()}var Tn=(e,t)=>{`disabled`in e&&(e.disabled=t)};async function En(e){let t=e.getAttribute(`data-wui-post`);if(!t)throw Error(`A data-wui-post button needs the URL the action posts to.`);return Dn(t,e)}async function Dn(e,t,n){let r=t.getAttribute(`data-wui-post-reload`);if(r!==null&&r!==`page`)throw TypeError(`data-wui-post-reload="${r}" is not supported. Use page, or leave it off to reload the server tables.`);Tn(t,!0),t.setAttribute(`aria-busy`,`true`);let i=await ne(e,{method:`POST`,body:n});if(i.kind===`session`||i.kind===`aborted`)return;let a=i.toastVariant||`success`;i.ok&&(i.redirect||r===`page`)?(Sn(i.message,a),i.redirect?window.location.assign(i.redirect):window.location.reload()):(Tn(t,!1),t.removeAttribute(`aria-busy`),i.ok?(Ae(i,a),wn()):sn(i.message||Cn(i.kind),`danger`))}function On(e,t){Tn(e,!1),e.removeAttribute(`aria-busy`),s(t),sn(X.failed,`danger`)}function kn(e){let t=i(e.target,`[data-wui-post]`);t&&(e.preventDefault(),gn(t)||t.getAttribute(`aria-busy`)===`true`||En(t).catch(e=>On(t,e)))}function An(e){let t=i(e.target,`form[data-wui-post-form]`);if(!(t instanceof HTMLFormElement)||e.defaultPrevented)return;e.preventDefault();let n=r(e.submitter||t.querySelector(`button:not(.repeater-add):not(.repeater-remove)`),`A data-wui-post-form needs a submit button to report its result on.`);if(n.getAttribute(`aria-busy`)===`true`)return;Dn(t.action,n,new FormData(t)).catch(e=>On(n,e));let a=t.closest(`.dropdown`)?.querySelector(`[data-bs-toggle='dropdown']`);a&&window.bootstrap?.Dropdown?.getInstance(a)?.hide()}function jn(){let e=window.sessionStorage.getItem($t);if(!e)return;window.sessionStorage.removeItem($t);let t=JSON.parse(e);if(typeof t!=`object`||!t)throw TypeError(`stored flash is not an object.`);let n=`message`in t?t.message:void 0,r=`variant`in t?t.variant:void 0;if(typeof r!=`string`||!Qt(r))throw TypeError(`stored flash variant "${String(r)}" is not supported.`);if(typeof n!=`string`)throw TypeError(`stored flash message is not text.`);sn(n,r)}function Mn(e){let t=e.querySelectorAll?[...e.querySelectorAll(`[data-wui-flash]`)]:[];e instanceof Element&&e.matches(`[data-wui-flash]`)&&t.unshift(e);for(let e of t){let t=e.getAttribute(`data-wui-flash-variant`)||`success`;if(!Qt(t))throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${Zt.join(`, `)}.`);let n=e.getAttribute(`data-wui-flash`)||(e.textContent??``).trim();e.remove(),sn(n,t)}}var Nn=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e.form:null;function Pn(e){if(!(e.target instanceof Element))return;let t=e.target.closest(`[data-wui-auto-submit]`);if(!t)return;let n=Nn(e.target)||t.closest(`form`);n instanceof HTMLFormElement&&n.requestSubmit()}function Fn(e){tn.has(e)||(tn.add(e),e.addEventListener(`click`,bn),e.addEventListener(`hidden.bs.modal`,xn))}function In(e=document){let t=e instanceof Element?e.ownerDocument:e;en.has(t)||(en.add(t),t.addEventListener(`click`,vn,!0),t.addEventListener(`submit`,yn,!0),Fn(t),t.addEventListener(`click`,kn),t.addEventListener(`submit`,An),t.addEventListener(`change`,Pn),jn()),Mn(e)}var Ln=Object.freeze({title:`Leave without saving?`,message:`Your changes on this page are not saved. If you leave now, they are lost.`,leaveLabel:`Leave`}),Rn=`form[data-wui-unsaved]`,zn=`[aria-invalid="true"], .field-error:not(:empty), .field-validation-error, .validation-summary-errors, .wui-error-summary`,Bn=`[download], [data-wui-modal], [data-wui-post], [data-bs-toggle]`,Vn=/* @__PURE__ */ new Set([`submit`,`button`,`reset`,`image`]),Hn=/* @__PURE__ */ new Set([`hidden`,`checkbox`,`radio`,`file`,`submit`,`button`,`reset`,`image`,`range`,`color`]),Un=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLButtonElement||e instanceof HTMLFieldSetElement||e instanceof HTMLObjectElement||e instanceof HTMLOutputElement,Wn=e=>Un(e)?e instanceof HTMLObjectElement||e instanceof HTMLOutputElement?!1:e.disabled:`disabled`in e&&!!e.disabled,Gn=e=>`name`in e&&typeof e.name==`string`&&e.name!==``,Kn=e=>typeof e==`object`&&!!e,qn=e=>Array.isArray(e)&&e.every(e=>Array.isArray(e)&&typeof e[0]==`string`);function Jn(e){let t=JSON.parse(e);if(!qn(t))throw Error(`unsaved-changes snapshot is malformed`);return t}var Z=/* @__PURE__ */ new WeakMap,Yn=/* @__PURE__ */ new WeakSet,Xn=e=>`${e.name}:${e.size}:${e.lastModified}`,Zn=e=>[...e.querySelectorAll(Rn)].filter(e=>e instanceof HTMLFormElement);function Q(e){let t=[];for(let n of e.elements)Gn(n)&&!Wn(n)&&(Un(n)&&Vn.has(n.type)||(n instanceof HTMLInputElement&&(n.type===`checkbox`||n.type===`radio`)?t.push([n.name,n.value,n.checked]):n instanceof HTMLInputElement&&n.type===`file`?t.push([n.name,[...n.files||[]].map(Xn)]):n instanceof HTMLSelectElement&&n.type===`select-multiple`?t.push([n.name,[...n.selectedOptions].map(e=>e.value)]):n instanceof HTMLFieldSetElement||n instanceof HTMLObjectElement?t.push([n.name,null]):t.push([n.name,`value`in n?n.value:null])));return JSON.stringify(t)}function Qn(e){return Q(e)}function $n(e,t){let n=/* @__PURE__ */ new Map,r=Jn(t);for(let e of r){let t=n.get(e[0]);t?t.push(e):n.set(e[0],[e])}let i=Jn(Q(e)).map(e=>n.get(e[0])?.shift()??e);for(let e of n.values())i.push(...e);return JSON.stringify(i)}function er(e){for(let t of e.elements)if(Un(t)&&t.name&&!Wn(t)){if(t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!Hn.has(t.type)){if(t.value.trim()!==``)return!0}else if(t instanceof HTMLInputElement&&t.type===`file`&&(t.files?.length??0)>0)return!0}return!1}var tr=e=>({saved:e.querySelector(zn)&&er(e)?null:Q(e),engaged:!1,discarded:!1});function nr(e){let t=Z.get(e);return!t||t.discarded||!e.isConnected?!1:t.saved===null||t.engaged&&Q(e)!==t.saved}var rr=(e,t)=>Zn(e).filter(e=>e!==t&&nr(e)),ir=()=>!!window.bootstrap?.Modal;function ar(e,t,n){let r=t.map(e=>e.getAttribute(`data-wui-unsaved`)).find(Boolean)||Ln.message;hn(e,{title:Ln.title,message:r,label:Ln.leaveLabel,tone:`danger`},()=>{for(let e of t){let t=Z.get(e);t&&(t.discarded=!0)}n()})}function or(e){if(e.matches(Bn))return!1;let t=e.getAttribute(`target`);if(t&&t.toLowerCase()!==`_self`)return!1;let n=e.getAttribute(`href`);if(n===null)return!1;let r=new URL(n,window.location.href);if(r.protocol!==`http:`&&r.protocol!==`https:`)return!1;let i=window.location;return!(r.hash&&r.origin===i.origin&&r.pathname===i.pathname&&r.search===i.search)}function sr(e,t){if((t?.getAttribute(`formmethod`)||e.getAttribute(`method`)||`get`).toLowerCase()===`dialog`)return!1;let n=t?.getAttribute(`formtarget`)||e.getAttribute(`target`);return!n||n.toLowerCase()===`_self`}function cr(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target,n=i(t,`a[href]`);if(!(n instanceof HTMLAnchorElement)||!or(n))return;let r=rr(n.ownerDocument,null);r.length&&ir()&&(e.preventDefault(),ar(n,r,()=>n.click()))}function lr(e){let t=e.target;if(!(t instanceof HTMLFormElement)||e.defaultPrevented||!sr(t,e.submitter))return;let n=rr(t.ownerDocument,t);if(n.length&&ir()){e.preventDefault();let r=e.submitter,i=(r instanceof HTMLButtonElement||r instanceof HTMLInputElement)&&r.form===t?r:void 0;ar(t,n,()=>t.requestSubmit(i));return}let r=Z.get(t);r&&(r.saved=Q(t),r.discarded=!1)}function ur(e){rr(document,null).length&&(e.preventDefault(),e.returnValue=``)}function dr(e){let t=e.target,n=i(t,Rn);return n instanceof HTMLFormElement?n:null}function fr(e){let t=dr(e);if(!t)return;let n=Z.get(t);n&&!n.engaged&&(n.saved!==null&&(n.saved=Q(t)),n.engaged=!0)}function pr(e){let t=dr(e),n=t&&Z.get(t);n&&(n.discarded=!1,e.isTrusted&&(n.engaged=!0))}function mr(e){for(let t of Zn(e)){let e=Z.get(t);e?.saved&&(e.saved=$n(t,e.saved))}}function hr(e){let t=Kn(e)?e.handle:void 0;return Kn(t)?t.el:void 0}function gr(e){if(!(e instanceof CustomEvent))return;let t=hr(e.detail);if(t instanceof Element)for(let e of Zn(t))vr(e)}function _r(e=document){let t=e instanceof Document?e:e.ownerDocument;if(!Yn.has(t)){Yn.add(t);for(let e of[`focusin`,`pointerdown`,`drop`])t.addEventListener(e,fr,!0);for(let e of[`input`,`change`])t.addEventListener(e,pr,!0);t.addEventListener(`click`,cr),t.addEventListener(`submit`,lr),t.addEventListener(`wui:modal:success`,gr),t.addEventListener(a,()=>mr(t)),r(t.defaultView,`unsaved-changes guard needs a document with a window`).addEventListener(`beforeunload`,ur)}let n=Zn(e);e instanceof HTMLFormElement&&e.matches(Rn)&&n.unshift(e);for(let e of n)Z.has(e)||Z.set(e,tr(e))}function vr(e){if(!(e instanceof HTMLFormElement)||!e.matches(Rn))throw TypeError(`resetUnsavedChanges: ${String(e)} is not a <form data-wui-unsaved>.`);Z.set(e,{saved:Q(e),engaged:!1,discarded:!1})}var yr=Object.freeze({question:`Discard your changes?`,discard:`Discard`,keep:`Keep editing`}),br=`wui:drawer:discard`,xr=`wui-drawer[confirm-discard]`,Sr=`.wui-modal-shell`,Cr=`data-wui-no-discard`,wr=`.wui-drawer-discard`,Tr=`input, select, textarea`,Er=e=>typeof e==`object`&&!!e||typeof e==`function`;function Dr(e){let t=e.currentTarget;if(!(t instanceof Document))throw Error(`The discard guard is not wired on a document.`);return t}function Or(e,t){return i(e,t)}var kr=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement,$=/* @__PURE__ */ new WeakMap,Ar=/* @__PURE__ */ new WeakSet,jr=/* @__PURE__ */ new WeakSet;function Mr(n,r,i,a,o){let s=n.createElement(`button`);return s.type=`button`,s.className=e(r,i,`sm`),s.dataset.wui=t,s.setAttribute(a,``),s.textContent=o,s}function Nr(e,t){let n=e.createElement(`div`);n.className=`wui-drawer-discard`,n.setAttribute(`role`,`alert`);let r=e.createElement(`span`);return r.className=`wui-drawer-discard-text`,r.textContent=t,n.append(r,Mr(e,`danger`,`solid`,`data-wui-discard-confirm`,yr.discard),Mr(e,`primary`,`soft`,`data-wui-discard-keep`,yr.keep)),n}function Pr(e){if(!(e instanceof Element))return null;let t=e.closest(xr);if(t)return t;let n=e.closest(Sr);return n&&Lr(n).length?n:null}function Fr(e){return e.closest(xr)??e.closest(Sr)}function Ir(e,t){return t.hasAttribute(Cr)||e.hasAttribute(Cr)?!1:t.hasAttribute(`confirm-discard`)||e.hasAttribute(`data-wui-confirm-discard`)?!0:(e.getAttribute(`method`)||`get`).toLowerCase()!==`get`}function Lr(e){return e.matches(xr)?e.querySelectorAll(`form`):[...e.querySelectorAll(`form`)].filter(t=>Ir(t,e))}function Rr(e){let t=$.get(e);return t!=null&&Qn(e)!==t}function zr(e){let t=e.ownerDocument.createElement(`div`);return t.className=`wui-drawer-footer`,r(e.querySelector(`.wui-drawer-panel`),`The drawer has no panel to hold its footer.`).append(t),jr.add(t),t}function Br(e){let t=e.ownerDocument.createElement(`div`);return t.className=`wui-modal-footer`,(e.querySelector(`.wui-modal-body`)?.parentElement??e.querySelector(`.modal-content`)??e).append(t),jr.add(t),t}function Vr(e){let t=e.querySelector(`[data-wui-discard-confirm]`);if(!(t instanceof HTMLElement))throw Error(`The discard prompt has no confirm button.`);t.focus()}function Hr(e,t,n){let r=e.querySelector(wr);if(r){Vr(r);return}let i=Nr(e.ownerDocument,t),a;if(e.matches(xr))a=e.querySelector(`.wui-drawer-footer`)??zr(e),a.prepend(i);else if(e.hasAttribute(`confirm-discard`))a=e.querySelector(`.wui-modal-footer`)??Br(e),a.prepend(i);else{if(!n)throw Error(`A discard prompt needs the form that is dirty.`);a=n.querySelector(`.modal-footer`),a?a.prepend(i):(a=n,n.append(i))}a.classList.add(`wui-drawer-discarding`),Vr(i)}function Ur(e){let t=e.parentElement;if(e.remove(),!t)throw Error(`The discard prompt has no footer.`);t.classList.remove(`wui-drawer-discarding`),jr.has(t)&&t.remove()}function Wr(e){for(let t of Lr(e))for(let e of t.querySelectorAll(Tr))if(kr(e)&&e.type!==`hidden`&&!e.disabled){e.focus({preventScroll:!0});return}}function Gr(e){let t=Pr(e.target);if(t)for(let e of Lr(t))$.get(e)??$.set(e,Qn(e))}function Kr(e){for(let t of Dr(e).querySelectorAll(`form`)){let e=$.get(t);e!=null&&$.set(t,$n(t,e))}}function qr(e){let t=e.target;t instanceof HTMLFormElement&&Pr(t)&&$.set(t,Qn(t))}function Jr(e){if(!Er(e))return;let t=`handle`in e?e.handle:void 0;if(Er(t))return`el`in t?t.el:void 0}function Yr(e){if(!(e instanceof CustomEvent))return;let t=e.detail,n=Jr(t);if(n instanceof Element)for(let e of n.querySelectorAll(`form`))$.delete(e)}function Xr(e){let t=e.target;t instanceof Element&&t.matches(xr)&&[...Lr(t)].some(Rr)&&(e.preventDefault(),Hr(t,t.getAttribute(`confirm-discard`),null))}function Zr(e){let t=e.target;if(!(t instanceof Element)||!t.matches(Sr))return;let n=[...Lr(t)].find(Rr);n&&(e.preventDefault(),Hr(t,n.getAttribute(`data-wui-confirm-discard`)??t.getAttribute(`confirm-discard`)??yr.question,n))}function Qr(e){let t=e.closest(`wui-drawer`);if(t){t.dispatchEvent(new CustomEvent(`wui-drawer-close`,{bubbles:!0,cancelable:!0}))&&t.hide();return}let n=e.closest(Sr);n&&window.bootstrap?.Modal.getInstance(n)?.hide()}function $r(e){let t=r(e.closest(wr),`The discard button is outside its prompt.`),n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);for(let e of Lr(n))$.set(e,Qn(e));n.dispatchEvent(new CustomEvent(br,{bubbles:!0})),n.matches(xr)?r(n.closest(`wui-drawer`),`The confirm-discard drawer is not a wui-drawer.`).hide():r(window.bootstrap?.Modal.getInstance(n),`Bootstrap's Modal has no instance for the discarded dialog.`).hide()}function ei(e){let t=r(e.closest(wr),`The keep button is outside its prompt.`),n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);Wr(n)}function ti(e){let t=Or(e.target,`[data-wui-discard-confirm]`);if(t){$r(t);return}let n=Or(e.target,`[data-wui-discard-keep]`);if(n){ei(n);return}let r=Or(e.target,`[data-wui-dismiss]`);r&&Qr(r)}function ni(e){if(e.key!==`Escape`)return;let t=Dr(e).querySelector(wr);if(!t)return;e.preventDefault(),e.stopPropagation();let n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);Wr(n)}function ri(e=document){let t=e instanceof Document?e:e.ownerDocument;Ar.has(t)||(Ar.add(t),t.addEventListener(`focusin`,Gr),t.addEventListener(`pointerdown`,Gr),t.addEventListener(`submit`,qr),t.addEventListener(a,Kr),t.addEventListener(`wui:modal:success`,Yr),t.addEventListener(`wui:modal:loaded`,Yr),t.addEventListener(`wui-drawer-close`,Xr,!0),t.addEventListener(`hide.bs.modal`,Zr),t.addEventListener(`click`,ti),t.addEventListener(`keydown`,ni,!0))}export{Ae as C,je as S,D as T,Ut as _,Ln as a,Jt as b,vr as c,$t as d,Zt as f,Yt as g,In as h,ri as i,Y as l,hn as m,yr as n,Qn as o,X as p,Nr as r,_r as s,br as t,Xt as u,Kt as v,O as w,Te as x,Wt as y};
1
+ import{n as e,t}from"./buttonClass-GtEi8hAY.js";import{n,r,t as i}from"./dom-Do1pAA12.js";import{t as a}from"./loader-ByHAB1wi.js";import{n as o,t as s}from"./devWarn-DXdRWZs3.js";import{E as c,k as l,r as u,w as ee,y as d}from"./dataTable-CcH1lBIM.js";import{t as te}from"./iconGlyphs.g-DPqoOoXy.js";import{LIST_QUERY_RESERVED as f,SEARCH_PARAM as p}from"./listQuery.js";import{l as ne,s as m}from"./wuiHttp-DGbD7Fra.js";function re(e,t){let n=e.getInstance(t);n&&(n.tip?.isConnected?(t.addEventListener(`hidden${e.EVENT_KEY}`,()=>n.dispose(),{once:!0}),n.hide()):n.dispose())}var h=`Select all rows`,g=`Select row`,_=`wui-select-cell`,ie=(e,t)=>{let n=e.createElement(`input`);return n.type=`checkbox`,n.className=`wui-check`,n.setAttribute(`aria-label`,t),n};function v(e=document){let t=e.createElement(`th`);return t.className=_,t.appendChild(ie(e,h)),t}function ae(e=document,{disabled:t=!1}={}){let n=e.createElement(`td`);n.className=_;let r=ie(e,g);return r.disabled=t,n.appendChild(r),n}function oe(e=document){let t=e.createElement(`td`);return t.className=_,t}var y=e=>e.firstElementChild?.classList.contains(_),b=e=>e.matches(`.wui-group-row, .wui-virtual-spacer`),x=(e,t,n)=>[...e.querySelectorAll(t)].filter(e=>e instanceof n);function se(e){for(let t of e){if(y(t)||b(t))continue;let e=t.getAttribute(`data-row-selectable`)===`false`;t.insertBefore(ae(t.ownerDocument,{disabled:e}),t.firstChild)}}function ce(e){let t=e.querySelector(`thead tr`);if(!(t instanceof HTMLTableRowElement))return null;y(t)||t.insertBefore(v(e.ownerDocument),t.firstChild),se(x(e,`tbody tr`,HTMLTableRowElement));for(let t of x(e,`tfoot tr`,HTMLTableRowElement))y(t)||t.insertBefore(oe(e.ownerDocument),t.firstChild);let n=t.querySelector(`.${_} .wui-check`);return n instanceof HTMLInputElement?n:null}function le(e){let t=e.querySelector(`thead .${_} .wui-check`),n=x(e,`tbody tr .wui-check:not(:disabled)`,HTMLInputElement),r=n.length,i=n.filter(e=>e.checked).length;t instanceof HTMLInputElement&&(t.checked=r>0&&i===r,t.indeterminate=i>0&&i<r);for(let t of x(e,`tbody tr`,HTMLTableRowElement)){let e=t.querySelector(`.wui-check`);t.classList.toggle(`is-selected`,e instanceof HTMLInputElement&&e.checked)}return{selected:i,total:r}}var ue=`tbody .${_} .wui-check:not(:disabled)`;function de(e,t){let n=null,r=e=>e instanceof Element&&e.matches(`.wui-select-cell .wui-check:not(:disabled)`)&&!!e.closest(`tbody`);e.addEventListener(`mousedown`,e=>{e.shiftKey&&r(e.target)&&e.preventDefault()}),e.addEventListener(`click`,i=>{let a=i.target;if(r(a)){if(i.shiftKey&&n?.isConnected&&n!==a){let r=x(e,ue,HTMLInputElement),i=r.indexOf(n),o=r.indexOf(a);if(i>=0&&o>=0){let e=[];for(let t of r.slice(Math.min(i,o),Math.max(i,o)+1))t!==a&&t.checked!==a.checked&&(t.checked=a.checked,e.push(t));e.length&&t?.(e,a.checked)}}n=a}})}var S=Object.freeze({loading:`Loading rows`,error:`These rows did not load. Try again.`,network:`The connection dropped before the rows loaded. Check it and try again.`,forbidden:`You do not have access to these rows.`,retry:`Retry`,actionFailed:`That did not work. Try again.`,actionForbidden:`You do not have permission to do that.`,empty:`No rows`}),fe=5,pe=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLButtonElement||e instanceof HTMLFieldSetElement||e instanceof HTMLObjectElement||e instanceof HTMLOutputElement,me=e=>e instanceof HTMLObjectElement||e instanceof HTMLOutputElement?!1:e.disabled,he=e=>pe(e)&&`type`in e&&e.type===`hidden`,C=(e,t,n)=>[...e.querySelectorAll(t)].filter(e=>e instanceof n),w=(e,t,n)=>{let r=e.querySelector(t);return r instanceof n?r:null},T=(e,t,n)=>{let r=e.closest(t);return r instanceof n?r:null},ge=e=>e.localName===`wui-select`,_e=/* @__PURE__ */ new WeakMap,E=(e,t)=>{let n=Number(e);return Number.isInteger(n)?n:t},ve=e=>({total:E(e.dataset.total,0),totalCapped:e.dataset.totalCapped===`true`,page:E(e.dataset.page,1),pageSize:E(e.dataset.pageSize,0),sortBy:e.dataset.sortBy||``,sortOrder:e.dataset.sortOrder===`desc`?`desc`:`asc`}),ye=(e,t)=>{e&&k().toast(e,{variant:t})},be=(e,t)=>{if(!e)return;let n=new Set([...e.elements].filter(e=>!he(e)||e.hasAttribute(`data-range-mirror`)).map(e=>e.getAttribute(`name`)).filter(e=>e&&!f.includes(e))),r=[...t].some(([e,t])=>t!==``&&n.has(e));for(let t of C(e,`[data-wui-filter-clear]`,HTMLElement))t.hidden=!r},xe=new Intl.NumberFormat(`en-IN`),Se=(e,t)=>t?`${xe.format(e)}+`:xe.format(e),Ce=(e,t,n)=>{let r=e.closest(`.wui-list-card`),i=r?w(r,`.wui-list-card-count`,HTMLElement):null;i&&(i.textContent=Se(t,n))};function D(e=document){let t=C(e,`[data-wui-server]`,HTMLElement);e instanceof HTMLElement&&e.matches(`[data-wui-server]`)&&t.unshift(e);for(let e of t){if(_e.has(e))continue;let t=we(e);_e.set(e,t),e.hasAttribute(`data-load-first-page`)&&t.reload()}}function O(e){let t=e instanceof Element?T(e,`[data-wui-server]`,HTMLElement):null;return t&&_e.get(t)||null}function we(n){let i=w(n,`.table-wrap`,HTMLElement),a=i?w(i,`:scope > table`,HTMLTableElement):null,re=n.dataset.src;if(!i||!a||!re)throw Error(`A server-paged table needs data-src and a .table-wrap > table: render it with <app-data-table src>.`);let h=w(i,`:scope > [data-wui-table-state]`,HTMLElement),g=w(n,`[data-wui-table-pager]`,HTMLElement),ie=w(n,`[data-wui-table-status]`,HTMLElement),v={urlState:n.dataset.urlState!==`false`,refreshOnSuccess:n.dataset.refreshOnSuccess!==`false`,filtersForm:n.dataset.filtersForm||null,filtersRegion:n.dataset.filtersRegion||null,searchInput:n.dataset.searchInput||null,loadingText:n.dataset.loadingText||S.loading,errorText:n.dataset.errorText||S.error},ae=new URL(re,window.location.href),oe=new Set(ae.searchParams.keys()),y=a.hasAttribute(`data-app-datatable-selectable`),b=/* @__PURE__ */ new Set,x=!1,ue=m(),_e=new AbortController,E={signal:_e.signal},xe=w(a,`:scope > tbody[data-wui-rows]`,HTMLTableSectionElement),D=r(xe,`A server-paged table needs its rows in <app-table-rows> (tbody[data-wui-rows]).`),O=ve(D),we=null,Te=null,Ee=e=>{let t=new URLSearchParams;for(let[n,r]of new URLSearchParams(e))oe.has(n)||t.append(n,r);return t},De=e=>Ee(new URL(e,window.location.href).search),Oe=e=>{let t=e.toString();return`${window.location.pathname}${t?`?${t}`:``}${window.location.hash}`},ke=e=>{let t=new URL(ae.href);for(let[n,r]of e)oe.has(n)||t.searchParams.append(n,r);return t.origin===window.location.origin?`${t.pathname}${t.search}`:t.href},je=(e,t)=>{let n=new URLSearchParams(e);return n.has(`page`)&&n.set(`page`,String(t.page)),n.has(`pageSize`)&&n.set(`pageSize`,String(t.pageSize)),n.has(`sortBy`)?t.sortBy?(n.set(`sortBy`,t.sortBy),n.set(`sortOrder`,t.sortOrder)):(n.delete(`sortBy`),n.delete(`sortOrder`)):n.delete(`sortOrder`),n},A=je(v.urlState?Ee(window.location.search):new URLSearchParams,O);v.urlState&&Oe(A)!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&window.history.replaceState(window.history.state,``,Oe(A));let j=(e,t)=>i.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:t})),M=e=>{ie&&(ie.textContent=e)},Me=e=>{if(e.total===0)return S.empty;let t=e.pageSize>0?Math.max(1,Math.ceil(e.total/e.pageSize)):1,n=e.totalCapped?Se(e.total,!0):`${e.total}`;return`Page ${e.page} of ${t}, ${n} ${e.total===1?`row`:`rows`}`},N=()=>C(a,`:scope > thead > tr:first-child > th`,HTMLTableCellElement),P=e=>{if(y&&C(e,`:scope > tr:not(.wui-group-row, .wui-virtual-spacer)`,HTMLTableRowElement).some(e=>!e.dataset.rowKey))throw Error(`A selectable server-paged table needs data-row-key on every row, so a selection can span pages.`)},F=e=>{let t=n.dataset.activeRowKey;if(t!==void 0)for(let n of e){let e=n.classList.contains(`wui-row-active`),r=t!==``&&n.dataset.rowKey===t;n.classList.toggle(`wui-row-active`,r),r?n.setAttribute(`aria-current`,`true`):e&&n.removeAttribute(`aria-current`)}},Ne=e=>{if(y){se(e);for(let t of e){let e=w(t,`.${_} .wui-check:not(:disabled)`,HTMLInputElement);e&&(x&&b.add(t.dataset.rowKey),e.checked=b.has(t.dataset.rowKey))}le(a)}F(e);let t=N();if(a.classList.contains(`wui-table-stack`))for(let n of e)[...n.cells].forEach((e,n)=>{let r=t[n]?.textContent?.trim();r&&!e.hasAttribute(`data-label`)&&e.setAttribute(`data-label`,r)});t.forEach((t,n)=>{if(t.classList.contains(`wui-col-hidden`))for(let t of e)t.cells[n]?.classList.add(`wui-col-hidden`)})},Pe=e=>Ne(C(e,`:scope > tr`,HTMLTableRowElement)),Fe=e=>{for(let t of e.querySelectorAll(`:scope > template[data-wui-pager], :scope > template[data-wui-empty], :scope > template[data-wui-filters]`))t.remove()},I=e=>e?.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0})),Ie=(e,t)=>{if(!h)return;let n=w(e,`:scope > template[data-wui-empty]`,HTMLTemplateElement);I(h),t.total===0&&n?(h.replaceChildren(n.content.cloneNode(!0)),h.hidden=!1):(h.replaceChildren(),h.hidden=!0)},Le=e=>{let t=ve(e),n=t.sortBy!==O.sortBy||t.sortOrder!==O.sortOrder?d(D.rows):null;if(g){let t=w(e,`:scope > template[data-wui-pager]`,HTMLTemplateElement);I(g),g.replaceChildren(...t?[t.content.cloneNode(!0)]:[]),g.hidden=!1}Ie(e,t);let r=w(e,`:scope > template[data-wui-filters]`,HTMLTemplateElement),o=v.filtersRegion&&r?w(document,v.filtersRegion,HTMLElement):null;o&&r&&(I(o),o.replaceChildren(r.content.cloneNode(!0))),Fe(e),I(D),a.replaceChild(e,D),D=e;let s=x&&t.total!==O.total;return O=t,s&&(x=!1),i.removeAttribute(`data-wui-table-error`),Pe(e),H(),ee(e.rows,n),s&&We(),o},Re=e=>{let t=document.createElement(`template`);t.innerHTML=`<table>${e}</table>`;let n=w(t.content,`tbody[data-wui-rows]`,HTMLTableSectionElement);return n&&P(n),n?document.importNode(n,!0):null},ze=(e,t=N())=>{let n=document.createElement(`tr`);for(let r=0;r<e;r++){let e=t[r],i=e?.classList.contains(`text-center`),a=!i&&(e?.classList.contains(`num`)||e?.classList.contains(`text-end`)||e?.classList.contains(`wui-cell-end`)),o=document.createElement(`td`);i?o.classList.add(`text-center`):a&&o.classList.add(e?.classList.contains(`num`)?`num`:`wui-cell-end`);let s=document.createElement(`span`);s.className=`skeleton`,s.setAttribute(`aria-hidden`,`true`);let c=i?44:a?56:60;s.style.cssText=`display:block;width:${c}%;height:12px;border-radius:6px`,o.append(s),n.append(o)}return n},L=()=>{if(D.querySelector(`:scope > tr:not([data-wui-skeleton])`))return;let e=Math.max(1,N().length);D.replaceChildren(...Array.from({length:fe},()=>{let t=ze(e);return t.setAttribute(`data-wui-skeleton`,``),t})),i.removeAttribute(`data-wui-table-error`),h&&(h.hidden=!0)},R=e=>{e?(i.setAttribute(`aria-busy`,`true`),L()):i.removeAttribute(`aria-busy`)},Be=e=>e===`forbidden`?S.forbidden:e===`network`?S.network:v.errorText,Ve=n=>{let r=Be(n);if(i.setAttribute(`data-wui-table-error`,n),g&&(g.hidden=!0),h){let i=document.createElement(`div`);i.className=`empty-state wui-empty-state-table wui-table-error`,i.setAttribute(`role`,`alert`);let a=document.createElement(`span`);a.className=`empty-state-icon`,a.innerHTML=te(n===`forbidden`?`lock`:`alert-circle`,{size:24});let o=document.createElement(`div`);o.className=`empty-state-title`,o.textContent=r;let s=document.createElement(`div`);s.className=`empty-state-action`;let c=document.createElement(`button`);c.type=`button`,c.className=e(`primary`,`outline`,`sm`),c.dataset.wui=t,c.setAttribute(`data-wui-table-retry`,``),c.textContent=S.retry,s.append(c),i.append(a,o,s),I(h),h.replaceChildren(i),h.hidden=!1}M(r)},z=()=>v.filtersForm?w(document,v.filtersForm,HTMLFormElement):null,B=async(e,t=`none`,{quiet:r=!1}={})=>{let a=new URLSearchParams(e);r||(we={query:a,mode:t},R(!0),M(v.loadingText)),j(`wui:table:loading`,{query:a.toString()});let c=await ue.run(ke(a));if(c.kind===`aborted`||c.kind===`stale`||c.kind===`session`)return c;r||R(!1);let l=null;if(c.ok)try{l=Re(c.html)}catch(e){s(e)}if(!c.ok||!l){let e=c.ok?`server`:c.kind;return r?o(`A quiet server table refresh failed; the rows on screen are kept.`,e):Ve(e),j(`wui:table:error`,{status:c.status,kind:e,message:Be(e)}),c}let u=Le(l);return A=je(a,O),be(z(),A),v.urlState&&t===`push`?window.history.pushState(window.history.state,``,Oe(A)):v.urlState&&t===`replace`&&window.history.replaceState(window.history.state,``,Oe(A)),r||M(Me(O)),k().refresh(i),u&&k().refresh(u),Ce(n,O.total,O.totalCapped),j(`wui:table:loaded`,{...O,query:A.toString()}),c},V=e=>(e.delete(`page`),e),He=()=>C(a,`:scope > thead th[data-sort-key]`,HTMLTableCellElement),H=()=>{for(let e of He()){let t=e.dataset.sortKey===O.sortBy;e.setAttribute(`aria-sort`,t?O.sortOrder===`desc`?`descending`:`ascending`:`none`)}};for(let e of He())if(e.classList.add(`sortable`),e.tabIndex=0,!e.querySelector(`.sort-icon`)){let t=e.classList.contains(`num`)||e.classList.contains(`text-end`),n=document.createElement(`span`);n.className=t?`sort-icon wui-sort-lead`:`sort-icon`,n.innerHTML=te(`chevrons-up-down`,{size:14}),t?e.prepend(n):e.append(n)}let Ue=e=>{let t=V(new URLSearchParams(A)),n=O.sortBy===e&&O.sortOrder===`asc`?`desc`:`asc`;return t.set(`sortBy`,e),t.set(`sortOrder`,n),B(t,`push`)};a.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`th[data-sort-key]`,HTMLTableCellElement):null;t&&a.tHead?.contains(t)&&Ue(t.dataset.sortKey??``)}),a.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target instanceof Element?T(e.target,`th[data-sort-key]`,HTMLTableCellElement):null;t&&a.tHead?.contains(t)&&(e.preventDefault(),Ue(t.dataset.sortKey??``))});let We=()=>{le(a);let e=x?{selected:O.total,total:O.total,allMatching:x}:{selected:b.size,total:O.total};a.dispatchEvent(new CustomEvent(`selectionchange`,{bubbles:!0,detail:e}))};y&&(de(a,(e,t)=>{for(let n of e){let e=T(n,`tr`,HTMLTableRowElement)?.dataset.rowKey;e&&(t?b.add(e):b.delete(e))}t||(x=!1)}),a.addEventListener(`change`,e=>{let t=e.target;if(t instanceof HTMLInputElement&&t.matches(`.wui-select-cell .wui-check:not(:disabled)`)){if(t.checked||(x=!1),a.tHead?.contains(t))for(let e of C(D,`:scope > tr`,HTMLTableRowElement)){let n=w(e,`.${_} .wui-check:not(:disabled)`,HTMLInputElement);n&&(n.checked=t.checked,t.checked?b.add(e.dataset.rowKey):b.delete(e.dataset.rowKey))}else{let e=T(t,`tr`,HTMLTableRowElement)?.dataset.rowKey;if(!e)return;t.checked?b.add(e):b.delete(e)}We()}})),g&&(g.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`a[href]`,HTMLAnchorElement):null;!t||e.defaultPrevented||e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),B(De(t.getAttribute(`href`)??``),`push`))}),g.addEventListener(`change`,e=>{let t=e.target;t instanceof HTMLSelectElement&&t.classList.contains(`tpg-select`)&&t.value&&(e.stopPropagation(),B(De(t.value),`push`))}));let U=()=>{if(!v.searchInput)return null;let e=w(document,v.searchInput,HTMLElement);return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:e?w(e,`input`,HTMLInputElement):null},W=()=>n.isConnected?!0:(_e.abort(),clearTimeout(Te??void 0),!1),Ge=(e,t)=>{let n=[...e.elements].filter(pe),r=/* @__PURE__ */ new Set;for(let e of n)e.name&&!he(e)&&r.add(e.name);let i=[];for(let e of n)if(e.name&&!me(e)){if(e instanceof HTMLInputElement&&e.matches(`input[type="hidden"][data-wui-carried]`))r.has(e.name)||i.push([e.name,e.value]);else if(e instanceof HTMLInputElement&&e.matches(`input[type=checkbox], input[type=radio]`))e.checked&&i.push([e.name,e.value]);else if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)e.matches(`[type=submit], [type=button], [type=reset], [type=image], [type=file]`)||i.push([e.name,e.value]);else if(e instanceof HTMLSelectElement)for(let t of e.selectedOptions)i.push([e.name,t.value])}return(t instanceof HTMLButtonElement||t instanceof HTMLInputElement)&&t.name&&!t.disabled&&i.push([t.name,t.value]),i},Ke=(e,t)=>{let n=new Set([...e.elements].filter(pe).map(e=>e.name).filter(Boolean)),r=new URLSearchParams,i=e=>e!==`search`&&f.includes(e);for(let[e,t]of A)e!==`page`&&(i(e)||!n.has(e))&&r.append(e,t);for(let[n,a]of Ge(e,t))a===``||i(n)||oe.has(n)||r.append(n,a);let a=U();if(a){r.delete(p);let e=a.value.trim();e&&r.set(p,e)}return B(r,`push`)},qe=e=>v.filtersForm&&e.closest?.(v.filtersForm)||v.filtersRegion&&e.closest?.(v.filtersRegion)||null;document.addEventListener(`submit`,e=>{W()&&v.filtersForm&&e.target instanceof HTMLFormElement&&e.target.matches(v.filtersForm)&&(e.preventDefault(),Ke(e.target,e.submitter))},E),document.addEventListener(`change`,e=>{if(!W()||!v.filtersForm||!(e.target instanceof Element))return;let t=T(e.target,v.filtersForm,HTMLFormElement);!t||e.target===U()||t.hasAttribute(`data-wui-apply-on-change`)||e.target.closest(`wui-filter-popover`)||Ke(t)},E);let Je=(e,t)=>{if(!e)return;let n=e=>t.get(e)??``;for(let r of C(e,`input[name]:not([type=hidden])`,HTMLInputElement))if(r.type===`checkbox`)r.checked=t.getAll(r.name).includes(r.value);else if(r.type===`radio`){let e=n(r.name)===r.value;if(r.checked===e)continue;r.checked=e,e&&r.dispatchEvent(new Event(`change`))}else r.value!==n(r.name)&&(r.value=n(r.name),r.dispatchEvent(new Event(`input`,{bubbles:!0})));for(let r of C(e,`select[name]`,HTMLSelectElement))if(!r.multiple)r.value=n(r.name);else for(let e of r.options)e.selected=t.getAll(r.name).includes(e.value);for(let r of[...e.querySelectorAll(`wui-select[name]`)].filter(ge)){let e=r.getAttribute(`name`)??``;r.value=r.mode===`multiple`||r.mode===`tag`?t.getAll(e):n(e)}for(let t of e.querySelectorAll(`wui-date-range`)){let e=t.getAttribute(`start-name`)||t.getAttribute(`name`),r=t.getAttribute(`end-name`);t.value={start:e?n(e):``,end:r?n(r):``}}};document.addEventListener(`click`,e=>{if(!W())return;let t=e.target instanceof Element?T(e.target,`a[href]`,HTMLAnchorElement):null;if(!t||!qe(t)||e.defaultPrevented||e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)return;let n=new URL(t.getAttribute(`href`)??``,window.location.href);if(n.origin!==window.location.origin||n.pathname!==window.location.pathname)return;e.preventDefault();let r=V(De(n.href));Je(t.closest(`form`),r),be(t.closest(`form`),r),B(r,`push`)},E),document.addEventListener(`input`,e=>{if(!W())return;let t=U();t&&e.target===t&&(clearTimeout(Te??void 0),Te=setTimeout(()=>{if(!W())return;let e=V(new URLSearchParams(A)),n=t.value.trim();n?e.set(p,n):e.delete(p),e.toString()!==A.toString()&&B(e,`replace`)},300))},E),v.urlState&&window.addEventListener(`popstate`,()=>{if(!W())return;let e=Ee(window.location.search),t=U();t&&(t.value=e.get(`search`)??``),be(z(),e),B(e,`none`)},E),document.addEventListener(`wui:modal:success`,()=>{W()&&v.refreshOnSuccess&&B(A,`none`)},E),h?.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`[data-wui-table-retry]`)&&we&&B(we.query,we.mode)});let G=e=>[...D.rows].find(t=>t.dataset.rowKey===e)??null,Ye=e=>{if(!e?.trim())return null;let t=document.createElement(`template`);if(t.innerHTML=`<table><tbody>${e}</tbody></table>`,t.content.querySelector(`tbody[data-wui-rows]`))return null;let n=C(t.content,`table > tbody > tr[data-row-key]`,HTMLTableRowElement);return n.length?n.map(e=>document.importNode(e,!0)):null},Xe=(e,t,n)=>{let r=n?e[0]:e.find(e=>e.dataset.rowKey===t.dataset.rowKey);if(!r)return null;let a=[];for(let n of e){let e=n===r?t:G(n.dataset.rowKey);e&&(I(e),e.replaceWith(n),a.push(n))}return Ne(a),k().refresh(i),r},Ze=e=>e.message||(e.kind===`forbidden`?S.actionForbidden:S.actionFailed),Qe=e=>{e?.isConnected&&e.getAttribute(`data-wui-save-state`)===`saving`&&l(e,null)},$e=e=>{if(e instanceof HTMLTableRowElement)return e;let t=document.createElement(`template`);t.innerHTML=`<table><tbody>${String(e)}</tbody></table>`;let n=w(t.content,`table > tbody > tr`,HTMLTableRowElement);return document.importNode(r(n,"saveRow's `row` is the row as it will read: a <tr> element or its HTML."),!0)},et=async({url:e,method:t=`POST`,body:n,key:r,row:a}={})=>{if(!e)throw Error("saveRow needs `url`: the handler that saves the row.");let o=r==null,s=o?null:G(String(r));if(!o&&!s)throw Error(`saveRow found no row with data-row-key="${r}" on this page.`);let ee=N().filter(e=>!e.classList.contains(_)),d=a?$e(a):s??ze(Math.max(1,ee.length),ee);s&&d!==s?s.replaceWith(d):s||D.insertBefore(d,D.firstChild),d!==s&&Ne([d]),h&&!i.hasAttribute(`data-wui-table-error`)&&(h.hidden=!0),l(d,`saving`);let te=c(d),f=await ne(e,{method:t.toUpperCase(),body:n});if(f.kind===`session`)return!1;if(f.ok){let e=Ye(f.html),t=e&&d.isConnected?Xe(e,d,o):null;return t?M(u.saved(c(t)||te)):(await B(A,`none`),Qe(d)),Ae(f,f.toastVariant||`success`),j(`wui:table:saved`,{key:t?.dataset.rowKey??(o?null:String(r)),added:o,status:f.status}),!0}let p=Ze(f),m=d;return s&&d!==s&&d.isConnected?(d.replaceWith(s),m=s):o&&!a&&(d.remove(),m=null,h?.childElementCount&&!D.querySelector(`:scope > tr`)&&(h.hidden=!1)),m?.isConnected&&l(m,`error`,p),f.kind!==`aborted`&&ye(p,`danger`),M(u.notSaved(te,p)),j(`wui:table:failed`,{key:o?null:String(r),added:o,status:f.status,kind:f.kind,message:p}),!1},tt=async e=>{let t=e.dataset.url;if(!t)throw Error(`A data-wui-row-action button needs data-url: the handler the action posts to.`);let n=T(e,`tr`,HTMLTableRowElement),r=n?.dataset.rowKey??null,i=e.dataset.wuiRowAction||``,a=n?c(n):``;e.disabled=!0,e.setAttribute(`aria-busy`,`true`),n&&l(n,`saving`);let o=await ne(t,{method:(e.dataset.method||`post`).toUpperCase()});if(e.disabled=!1,e.removeAttribute(`aria-busy`),o.kind===`session`||o.kind===`aborted`)Qe(n);else{if(o.ok){Ae(o,o.toastVariant||`success`);let e=n?.isConnected?Ye(o.html):null,t=e&&n?Xe(e,n,!1):null;t?M(u.saved(c(t)||a)):(await B(A,`none`),Qe(n))}else{let e=Ze(o);ye(e,`danger`),n?.isConnected&&l(n,`error`,e),M(u.notSaved(a,e))}j(`wui:table:action`,{action:i,key:r,ok:o.ok,status:o.status})}};return a.addEventListener(`click`,e=>{let t=e.target instanceof Element?T(e.target,`[data-wui-row-action]`,HTMLButtonElement):null;t&&D.contains(t)&&!t.disabled&&(e.preventDefault(),tt(t))}),P(D),Fe(D),y&&ce(a),Pe(D),H(),{el:n,reload:async e=>{let t=e?.quiet===!0;return t&&i.getAttribute(`aria-busy`)===`true`?null:B(A,`none`,{quiet:t})},query:()=>new URLSearchParams(A),setQuery:e=>{let t=new URLSearchParams(A);for(let[n,r]of Object.entries(e??{})){t.delete(n);for(let e of Array.isArray(r)?r:[r])e!=null&&e!==``&&t.append(n,String(e))}return e&&`page`in e||t.delete(`page`),B(t,`push`)},saveRow:et,setActiveRow:e=>{n.dataset.activeRowKey=e==null?``:String(e),F(C(D,`:scope > tr`,HTMLTableRowElement))},selection:{keys:()=>[...b],count:()=>x?O.total:b.size,allMatching:()=>x,selectAllMatching:()=>{x=!0;for(let e of C(D,`:scope > tr`,HTMLTableRowElement)){let t=w(e,`.${_} .wui-check`,HTMLInputElement);t?.disabled||(t&&(t.checked=!0),e.dataset.rowKey&&b.add(e.dataset.rowKey))}We()},clear:()=>{x=!1,b.clear();for(let e of C(D,`:scope > tr > .${_} .wui-check:not(:disabled)`,HTMLInputElement))e.checked=!1;We()}}}}var Te=8e3,Ee=`That did not work. Try again.`,De=[`success`,`info`,`warning`,`danger`],Oe=e=>De.some(t=>t===e);function ke(e){if(!Oe(e))throw RangeError(`Unknown toast variant "${e}".`);return e}function k(){return r(window.WUI,`window.WUI is not defined: the Razor behaviour script did not load on this page.`)}function Ae(e,t=`success`){if(!e?.message)return;let n=e.toastAction;n?k().toast(e.message,{variant:ke(t),duration:Te,action:{label:n.label,onClick:()=>je(n)}}):k().toast(e.message,{variant:ke(t)})}async function je(e){let t=await ne(e.url,{method:e.method});if(t.kind!==`session`&&t.kind!==`aborted`){if(t.ok){Ae(t,t.toastVariant||`success`);for(let e of document.querySelectorAll(`[data-wui-server]`))e instanceof HTMLElement&&e.dataset.refreshOnSuccess!==`false`&&O(e)?.reload()}else k().toast(t.message||Ee,{variant:`danger`})}}var A=`wui-remote-modal`,j=`wui-remote-drawer`,M=Object.freeze({sm:360,md:480,lg:640,xl:720}),Me=`wui-modal-fullscreen`,N=Object.freeze({sm:380,md:440,lg:640,xl:880}),P=Object.freeze({loading:`Loading`,close:`Close`,retry:`Try again`,errorTitle:`This could not be loaded`,forbidden:`You do not have access to this.`,client:`It may have been moved or deleted.`,server:`Something went wrong on our side. Try again in a moment.`,network:`Could not reach the server. Check your connection and try again.`,submitFailed:`Your changes were not saved.`,invalid:`Some fields need attention.`}),F=`a[href],button:not([disabled]),input:not([disabled]):not([type="hidden"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,Ne=`input:not([type="hidden"]):not([disabled]),select:not([disabled]),textarea:not([disabled]),[contenteditable="true"]`,Pe=`[aria-invalid="true"], .is-invalid, .input-validation-error`,Fe=`.wui-error-summary, [data-wui-form-errors], .validation-summary-errors, [data-valmsg-summary]`,I=`[data-wui-modal-content]`,Ie=`[data-wui-pane-close], [data-bs-dismiss="modal"]`,Le=`<button type="button" class="wui-modal-close" data-bs-dismiss="modal" aria-label="Close"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"></path></svg></button>`,Re=/* @__PURE__ */ new WeakMap,ze=/* @__PURE__ */ new WeakSet;function L(e,t){if(e==null)throw TypeError(`The remote modal needs ${t}, and the page does not have it.`);return e}var R=(e,t)=>{let n=e.querySelector(t);return n instanceof HTMLElement?n:null},Be=(e,t,n)=>L(R(e,t),n),Ve=(e,t)=>[...e.querySelectorAll(t)].filter(e=>e instanceof HTMLElement),z=()=>Object.assign(/* @__PURE__ */ Error(`The remote modal load was aborted.`),{name:`AbortError`}),B=e=>typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`,V=(e,t)=>{let n=e instanceof Element?e.closest(t):null;return n instanceof HTMLElement?n:null},He=e=>{let t=window.bootstrap?.Modal;if(!t)throw Error(`WUI.modal.load(${String(e)}): Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);return t},H=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML},Ue=e=>Object.hasOwn(N,e),We=e=>Object.hasOwn(M,e);function U(e){if(e==null||e===``)return null;if(e===`fullscreen`)return{fullscreen:!0};if(Ue(e))return{px:N[e]};let t=typeof e==`number`?e:/^\d+$/.test(String(e))?Number(e):NaN;if(Number.isInteger(t)&&t>0)return{px:t};throw TypeError(`Unsupported modal size "${String(e)}". Use sm, md, lg, xl, fullscreen or a px number.`)}var W=e=>{if(e.classList.contains(`wui-modal-fullscreen`))return{fullscreen:!0};let t=Number.parseInt(e.style.getPropertyValue(`--wui-modal-max-width`),10);return{px:t>0?t:N.md}},Ge=(e,t)=>{e.classList.toggle(Me,!!t.fullscreen),t.fullscreen?e.style.removeProperty(`--wui-modal-max-width`):e.style.setProperty(`--wui-modal-max-width`,`${t.px}px`)},Ke=[`center`,`top`];function qe(e){if(e==null||e===``)return null;if(We(e))return{px:M[e]};let t=typeof e==`number`?e:/^\d+$/.test(String(e))?Number(e):NaN;if(Number.isInteger(t)&&t>0)return{px:t};throw TypeError(`Unsupported drawer size "${String(e)}". Use sm, md, lg, xl or a px number.`)}var Je=e=>e.container===`drawer`,G=e=>e.container===`pane`,Ye=e=>e.container!==`modal`,Xe=(e,t)=>Je(e)?qe(t):U(t),Ze=()=>document.getElementById(`wui-remote-drawer`)?.classList.contains(`show`)??!1,Qe=e=>{let t=typeof e==`string`?document.querySelector(e):e,n=t instanceof HTMLElement?t:null;return n?.matches(`[data-wui-pane-host]`)?n:null},$e=e=>G(e)?e.shell:Be(e.shell,`.modal-dialog`,`a dialog frame`);function et(e=`modal`){let t=e===`drawer`,n=t?j:A,r=document.getElementById(n);return r||(r=document.createElement(`div`),r.id=n,r.className=t?`modal fade wui-modal-shell wui-remote-drawer`:`modal fade wui-modal-shell`,r.tabIndex=-1,r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`role`,`dialog`),r.setAttribute(`aria-modal`,`true`),r.style.setProperty(`--wui-modal-max-width`,`${t?M.md:N.md}px`),r.innerHTML=t?`<div class="modal-dialog wui-remote-drawer-dialog"><div class="modal-content wui-modal"></div></div>`:`<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal"></div></div>`,document.body.appendChild(r),r)}var tt=e=>`<div class="wui-modal-header"><div class="wui-modal-heading"><div class="wui-modal-headtext"><div class="wui-modal-title">${H(e)}</div></div></div>${Le}</div>`,nt=e=>`<div class="modal-content wui-modal" aria-busy="true">${tt(e)}<div class="wui-modal-body"><div class="wui-modal-loading" role="status"><span class="visually-hidden">${H(P.loading)}</span><div class="skeleton wui-modal-skeleton"></div><div class="skeleton wui-modal-skeleton"></div><div class="skeleton wui-modal-skeleton wui-modal-skeleton--short"></div></div></div></div>`,rt=(n,r)=>`<div class="modal-content wui-modal" data-wui-modal-error="${H(r)}">${tt(n)}<div class="wui-modal-body"><div class="wui-modal-state" role="alert"><p class="wui-modal-state-title">${H(P.errorTitle)}</p><p class="wui-modal-state-text">${H(P[r]||P.server)}</p><div class="wui-modal-state-actions"><button type="button" class="${e(`primary`,`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${H(P.close)}</button><button type="button" class="${e(`primary`,`solid`,`md`)}" data-wui-modal-retry data-wui="${t}">${H(P.retry)}</button></div></div></div></div>`,it=e=>{let t=document.createElement(`template`);return t.innerHTML=e,Be(t.content,`.modal-content`,`a card`)},K=e=>R(e.shell,`.modal-content`);function at(e){if(!e)return;e.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0}));let t=window.bootstrap,n=t?[t.Tooltip,t.Popover]:[];for(let r of[e,...e.querySelectorAll(`*`)]){for(let e of n)re(e,r);t?.Dropdown.getInstance(r)?.dispose()}}function ot(e,t){let n=K(e),r=n?ct(n):/* @__PURE__ */ new Map;at(n),n?n.replaceWith(t):$e(e).appendChild(t),lt(t,r),k().refresh()}var st=`input[type="file"][name]`;function ct(e){let t=/* @__PURE__ */ new Map;for(let n of e.querySelectorAll(st)){if(!(n instanceof HTMLInputElement))continue;let e=n.files;e&&e.length>0&&t.set(n.name,[...e])}return t}function lt(e,t){if(t.size!==0&&typeof DataTransfer<`u`)for(let n of e.querySelectorAll(st)){if(!(n instanceof HTMLInputElement))continue;let e=t.get(n.name);if(!e)continue;let r=new DataTransfer;for(let t of e)r.items.add(t);n.files=r.files,n.dispatchEvent(new Event(`change`,{bubbles:!0}))}}var ut=e=>G(e)?!e.shell.hidden:e.shell.classList.contains(`show`);function dt(e,t,n=!1){let r=t?R(e,Pe):null,i=r?r.matches(F)?r:R(r,F)||r:null;if(!i&&n)i=R(e,`[data-autofocus]`)||R(e,Ne)||R(e,`.wui-modal-close`);else if(!i){let t=Ve(e,F);i=R(e,`[data-autofocus]`)||t.find(e=>!e.classList.contains(`wui-modal-close`))||t[0]||e}r?i?.focus?.():i?.focus?.({preventScroll:!0})}function ft(e,t){let n=Ve(e,F).filter(e=>e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`);if(!n.length){t.preventDefault(),e.focus();return}let r=L(n[0],`a focusable control`),i=L(n[n.length-1],`a focusable control`),a=document.activeElement;!e.contains(a)||a===e?(t.preventDefault(),(t.shiftKey?i:r).focus()):t.shiftKey&&a===r?(t.preventDefault(),i.focus()):!t.shiftKey&&a===i&&(t.preventDefault(),r.focus())}function pt(e,t){let n=R(e.shell,`[data-wui-modal-live]`);n||(n=document.createElement(`div`),n.className=`visually-hidden`,n.setAttribute(`aria-live`,`assertive`),n.setAttribute(`data-wui-modal-live`,``),$e(e).appendChild(n)),n.textContent=``,n.textContent=t}var mt=e=>{let t=R(e.shell,`[data-wui-modal-live]`);t&&(t.textContent=``)},ht=(e,t,n)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n}))};function gt(e,t,n,r){let i={...r,container:e.container};ht(t,`wui:modal:${n}`,i),Je(e)&&ht(t,`wui:drawer:${n}`,i),G(e)&&ht(t,`wui:pane:${n}`,i)}var _t=e=>e.matches(`[data-wui-pane-host]`)?`pane`:e.classList.contains(`wui-remote-drawer`)?`drawer`:`modal`;function vt(e){let t=Re.get(e);if(t)return t;let n={shell:e,container:_t(e),queue:m(),defaultSize:W(e),defaultLabel:e.getAttribute(`aria-label`),placeholder:K({shell:e})?.outerHTML||`<div class="modal-content wui-modal"></div>`,remoteUrl:e.getAttribute(`data-wui-remote-url`),cache:e.getAttribute(`data-wui-remote-cache`)===`true`,loadedUrl:null,session:null};return Re.set(e,n),e.addEventListener(`submit`,e=>Rt(n,e)),e.addEventListener(`click`,e=>{V(e.target,`[data-wui-modal-retry]`)&&n.session&&(e.preventDefault(),J(n,n.session))}),G(n)&&e.addEventListener(`click`,t=>{let r=V(t.target,Ie);r&&e.contains(r)&&n.session&&q(n,n.session,`dismissed`,null)}),e.addEventListener(`hidden.bs.modal`,t=>{t.target===e&&(e.classList.contains(`wui-modal-stacked`)&&xt(n),St(n))}),e.addEventListener(`shown.bs.modal`,t=>{if(t.target!==e)return;e.classList.contains(`wui-modal-stacked`)&&[...document.querySelectorAll(`.modal-backdrop`)].at(-1)?.classList.add(`wui-modal-backdrop-stacked`);let r=K(n);n.session&&r?.matches(I)&&!r.contains(document.activeElement)&&dt(r,!1,Ye(n))}),n.remoteUrl&&e.addEventListener(`show.bs.modal`,t=>{t.target===e&&Ct(n,t)}),n}function yt(e,t,n){e.session&&(e.queue.abort(),e.session.resolveClosed({status:`dismissed`,detail:{replaced:!0}}));let r=()=>void 0,i=new Promise(e=>{r=e}),a={url:t,method:(n.method||`GET`).toUpperCase(),body:n.body,options:n,trigger:n.trigger||null,explicitSize:null,closing:null,resolveClosed:r,handle:{el:e.shell,closed:i,close:()=>q(e,a,`dismissed`,null),reload:()=>J(e,a)}};return e.session=a,a}function q(e,t,n,r){e.session===t&&(t.closing={status:n,detail:r},G(e)?bt(e,t):window.bootstrap?.Modal.getOrCreateInstance(e.shell).hide())}function bt(e,t){let n=e.shell,{status:r,detail:i}=L(t.closing,`the closing state`),a=n.contains(document.activeElement);e.queue.abort(),e.session=null,at(K(e)),n.replaceChildren(),n.hidden=!0,n.removeAttribute(`data-open`),t.resolveClosed({status:r,detail:i}),gt(e,n,`closed`,{status:r,url:t.url}),a&&t.trigger?.isConnected&&t.trigger.focus?.()}function xt(e){e.shell.classList.remove(`wui-modal-stacked`),Ze()&&(document.body.classList.add(`modal-open`),document.body.style.overflow=`hidden`)}function St(e){let t=e.session;if(e.queue.abort(),e.session=null,mt(e),t){let n=t.closing||{status:`dismissed`,detail:null};t.resolveClosed({status:n.status,detail:n.detail}),gt(e,e.shell,`closed`,{status:n.status,url:t.url});let r=document.activeElement;t.trigger?.isConnected&&(!r||r===document.body||e.shell.contains(r))&&t.trigger.focus?.()}e.cache||(ot(e,it(e.placeholder)),e.loadedUrl=null,Ge(e.shell,e.defaultSize),e.defaultLabel?e.shell.setAttribute(`aria-label`,e.defaultLabel):e.shell.removeAttribute(`aria-label`))}function Ct(e,t){let n=`relatedTarget`in t?t.relatedTarget:null,r=n instanceof HTMLElement?n:null,i=r?.getAttribute(`data-wui-url`)||e.remoteUrl||``,a=yt(e,i,{trigger:r});a.explicitSize=wt(e,r?.getAttribute(`data-wui-size`)),a.explicitSize&&Ge(e.shell,a.explicitSize),e.cache&&e.loadedUrl===i||(e.loadedUrl&&ot(e,it(e.placeholder)),J(e,a,{keepPlaceholder:!0}))}function wt(e,t){try{return Xe(e,t)}catch(e){return s(e),null}}async function J(e,t,{keepPlaceholder:n=!1}={}){n||ot(e,it(nt(t.options.title||Tt(e))));let r=await e.queue.run(t.url,{method:t.method,body:t.body,navigate:t.options.navigate});if(e.session!==t||r.kind===`aborted`||r.kind===`stale`)return`aborted`;if(r.kind===`session`)return`session`;if((r.kind===`ok`||r.kind===`validation`)&&kt(e,t,r.html,!1))return e.loadedUrl=t.url,gt(e,e.shell,`loaded`,{url:t.url,handle:t.handle}),`loaded`;let i=r.kind===`ok`||r.kind===`validation`?`server`:r.kind;return ot(e,it(rt(t.options.title||Tt(e),i))),ut(e)&&dt(L(K(e),`a card`),!1,Ye(e)),gt(e,e.shell,`error`,{url:t.url,kind:i,status:r.status}),`error`}var Tt=e=>K(e)?.querySelector(`.wui-modal-title`)?.textContent||e.shell.getAttribute(`aria-label`)||``,Et=`/_content/Webority.Ui.Razor/js/`,Dt=e=>new URL(e,window.location.href).pathname.includes(Et);function Ot(e){if([...document.scripts].some(t=>t.getAttribute(`src`)===e))return;let t=document.createElement(`script`);t.src=e,document.head.appendChild(t)}function kt(e,t,n,r){let i=document.createElement(`template`);i.innerHTML=n;let a=!1;for(let e of i.content.querySelectorAll(`script`)){if(e.getAttribute(`type`)===`application/json`)continue;let t=e.getAttribute(`src`);e.remove(),t&&Dt(t)?Ot(t):a=!0}a&&o(`WUI.modal: ${t.url} returned a fragment with script; it was removed. Keep page behaviour in the page.`);let c=R(i.content,I);if(!c)return s(`WUI.modal: ${t.url} did not answer with an <app-modal-content> fragment.`),!1;if(ot(e,c),r||mt(e),!G(e)){Ge(e.shell,t.explicitSize||wt(e,c.getAttribute(`data-wui-size`))||e.defaultSize);let n=c.getAttribute(`data-wui-title`);n&&e.shell.setAttribute(`aria-label`,n)}return ut(e)&&dt(c,r,Ye(e)),!0}var At=`button[type="submit"], button:not([type]), input[type="submit"], input[type="image"]`;function jt(e,t,n){let r=[...e.elements].filter(e=>e.matches(At));if(n){e.setAttribute(`data-wui-submitting`,``);let n=t&&r.includes(t)?t:r[0];for(let e of r)e.toggleAttribute(`data-wui-was-disabled`,e.disabled),e.disabled=!0;n&&(n.classList.add(`is-loading`),n.setAttribute(`aria-busy`,`true`),n.tagName===`BUTTON`&&n.insertAdjacentHTML(`afterbegin`,`<span class="spinner-border spinner-border-sm me-2" aria-hidden="true" data-wui-submit-spinner></span>`))}else{e.removeAttribute(`data-wui-submitting`);for(let e of r)e.disabled=e.hasAttribute(`data-wui-was-disabled`),e.removeAttribute(`data-wui-was-disabled`),e.classList.remove(`is-loading`),e.removeAttribute(`aria-busy`),e.querySelector(`[data-wui-submit-spinner]`)?.remove()}}function Mt(e){for(let t of e.querySelectorAll(Fe))t.remove();for(let t of e.querySelectorAll(Pe))t.removeAttribute(`aria-invalid`),t.classList.remove(`is-invalid`,`input-validation-error`);for(let t of e.querySelectorAll(`.field-error`))t.textContent=``}var Nt=/* @__PURE__ */ new Set(/* @__PURE__ */ `bad request.unauthorized.payment required.forbidden.not found.method not allowed.not acceptable.proxy authentication required.request timeout.conflict.gone.length required.precondition failed.payload too large.uri too long.unsupported media type.range not satisfiable.expectation failed.misdirected request.unprocessable content.unprocessable entity.locked.failed dependency.too early.upgrade required.precondition required.too many requests.request header fields too large.unavailable for legal reasons`.split(`.`)),Pt=(e,t)=>{if(typeof e==`object`&&e&&t in e)return Reflect.get(e,t)};async function Ft(e){if(!e||e.status<400||e.status>499||e.status===422||!e.headers.get(`content-type`)?.toLowerCase().includes(`json`))return null;let t;try{t=JSON.parse(await e.text())}catch{return null}let n=e=>typeof e==`string`?e.trim():``,r=n(Pt(t,`title`)),i=(e.statusText||``).trim().toLowerCase(),a=Nt.has(r.toLowerCase())||r.toLowerCase()===i;return n(Pt(t,`message`))||n(Pt(t,`detail`))||(r&&!a?r:null)}function It(e,t,n,r){let i=t.closest(`.wui-modal-body`)||t;i.querySelector(`[data-wui-modal-submit-error]`)?.remove(),Mt(i);let a=document.createElement(`div`);a.className=`alert alert-danger wui-modal-submit-error`,a.setAttribute(`role`,`alert`),a.setAttribute(`data-wui-modal-submit-error`,``),a.innerHTML=H(`${P.submitFailed} ${r||P[n]||P.server}`),i.prepend(a),pt(e,a.textContent)}var Lt=(e,t)=>{let n=new URL(e,window.location.href);for(let[e,r]of t)typeof r==`string`&&n.searchParams.append(e,r);return n.origin===window.location.origin?n.pathname+n.search:n.href};async function Rt(e,t){let n=t.target,r=e.session;if(!(n instanceof HTMLFormElement)||!r||n.hasAttribute(`data-wui-native`)||!n.closest(I)||(t.preventDefault(),n.hasAttribute(`data-wui-submitting`)))return;let i=`submitter`in t&&(t.submitter instanceof HTMLButtonElement||t.submitter instanceof HTMLInputElement)?t.submitter:null,a=i?.getAttribute(`formaction`)||n.getAttribute(`action`)||r.url,o=(i?.getAttribute(`formmethod`)||n.getAttribute(`method`)||`GET`).toUpperCase(),c=new FormData(n);i?.name&&!c.has(i.name)&&c.append(i.name,i.value);let l=o===`GET`;jt(n,i,!0);let u;try{u=await e.queue.run(l?Lt(a,c):a,{method:o,body:l?void 0:c,navigate:r.options.navigate})}catch(t){s(t),e.session===r&&n.isConnected&&(jt(n,i,!1),It(e,n,`server`,null));return}if(e.session!==r)return;if(n.isConnected&&jt(n,i,!1),u.kind===`ok`&&u.result===`success`){zt(e,r,u);return}if(u.kind===`aborted`||u.kind===`stale`||u.kind===`session`)return;if(u.kind===`validation`&&kt(e,r,u.html,!0)){let t=L(K(e),`a card`).querySelector(Fe)?.textContent?.replace(/\s+/g,` `).trim();pt(e,t||P.invalid);return}if(u.kind===`ok`&&u.html&&kt(e,r,u.html,!1))return;let ee=u.kind===`ok`||u.kind===`validation`?`server`:u.kind,d=await Ft(u.response);e.session===r&&It(e,n,ee,d)}function zt(e,t,n){let r=n.message,i=n.redirect||null,a=n.toastVariant||`success`;if(!Qt(a))throw TypeError(`Unknown toast variant "${a}". Use ${Zt.join(`, `)}.`);let o={url:t.url,trigger:t.trigger,handle:t.handle,message:r,redirect:i,data:n.data??null,container:e.container};i&&!t.options.navigate?Sn(r,a):r&&k().toast(r,{variant:a}),gt(e,t.trigger?.isConnected?t.trigger:document,`success`,o),t.options.onSuccess?.(o,t.handle),i&&(t.options.navigate||(e=>window.location.assign(e)))(i);let s=n.next;s&&!i?(t.url=s,t.method=`GET`,t.body=void 0,J(e,t)):n.keepOpen?n.html&&kt(e,t,n.html,!1):q(e,t,`success`,o)}function Bt(e){let t=V(e.target,`[data-wui-modal], [data-wui-drawer], [data-wui-pane]`);t&&(t.matches(`a[href]`)&&(e.ctrlKey||e.metaKey||e.shiftKey||e.button!==0)||(e.preventDefault(),t.hasAttribute(`data-wui-pane`)?Jt(t.getAttribute(`data-wui-pane`)??``,{target:t.getAttribute(`data-wui-pane-target`),trigger:t}).catch(e=>{B(e)||s(e)}):t.hasAttribute(`data-wui-modal`)?Wt(t.getAttribute(`data-wui-modal`)??``,{size:t.getAttribute(`data-wui-size`)||void 0,title:t.getAttribute(`data-wui-title`)||void 0,trigger:t}).catch(e=>{B(e)||s(e)}):Kt(t.getAttribute(`data-wui-drawer`)??``,{size:t.getAttribute(`data-wui-drawer-size`)||void 0,title:t.getAttribute(`data-wui-title`)||void 0,trigger:t}).catch(e=>{B(e)||s(e)})))}function Vt(e){if(e.key!==`Tab`||e.defaultPrevented)return;let t=e.currentTarget;if(!(t instanceof Document))return;let n=Ve(t,`.modal.show`),r=R(t,`.modal.show.wui-modal-stacked`)??n[n.length-1];r&&ft(r,e)}function Ht(e){if(e.key!==`Escape`||e.defaultPrevented)return;let t=V(e.target,qt),n=t&&Re.get(t),r=e.currentTarget;n?.session&&r instanceof Document&&!r.querySelector(`.modal.show`)&&q(n,n.session,`dismissed`,null)}function Ut(e=document){let t=e instanceof Document?e:L(e.ownerDocument,`an owner document`);ze.has(t)||(ze.add(t),t.addEventListener(`click`,Bt),t.addEventListener(`keydown`,Vt),t.addEventListener(`keydown`,Ht));let n=Ve(e,`.modal[data-wui-remote-url]`);e instanceof HTMLElement&&e.matches(`.modal[data-wui-remote-url]`)&&n.unshift(e);for(let e of n)vt(e)}function Wt(e,t={}){try{if(!e)throw TypeError(`WUI.modal.load: a fragment url is required.`);let n=He(e),r=t.container===`drawer`,i=r?qe(t.size):U(t.size),a=t.placement||`center`;if(!Ke.includes(a))throw TypeError(`WUI.modal.load: unsupported placement "${a}". Use center or top.`);if(t.signal?.aborted)return Promise.reject(z());let o=et(r?`drawer`:`modal`);Ut(document);let s=vt(o),c=ut(s),l=yt(s,e,t);l.explicitSize=i,Ge(o,i||s.defaultSize),r||Be(o,`.modal-dialog`,`a dialog frame`).classList.toggle(`modal-dialog-centered`,a===`center`),t.title&&o.setAttribute(`aria-label`,t.title),c||(!r&&Ze()&&(document.body.appendChild(o),o.classList.add(`wui-modal-stacked`)),n.getInstance(o)?.dispose(),n.getOrCreateInstance(o,{backdrop:t.staticBackdrop===!1||`static`,keyboard:t.staticBackdrop===!1}));let u=c?Promise.resolve():new Promise(e=>o.addEventListener(`shown.bs.modal`,()=>e(),{once:!0})),ee=J(s,l);return c||n.getOrCreateInstance(o).show(),Gt(s,l,t,u,ee,`WUI.modal.load`)}catch(e){return Promise.reject(e)}}function Gt(e,t,n,r,i,a){let o=new Promise((r,i)=>{n.signal?.addEventListener(`abort`,()=>{e.session===t&&(e.queue.abort(),q(e,t,`dismissed`,{aborted:!0})),i(z())},{once:!0})}),s=Promise.all([r,i]).then(([,e])=>{if(e===`aborted`)throw z();if(e===`session`)throw Error(`${a}(${t.url}): the session expired; the browser is signing in again.`);return t.handle});return Promise.race([s,o])}function Kt(e,t={}){return Wt(e,{...t,container:`drawer`,placement:void 0})}var qt=`[data-wui-pane-host]`;function Jt(e,t={}){try{if(!e)throw TypeError(`WUI.pane.load: a fragment url is required.`);let n=Qe(t.target);if(!n)throw TypeError(`WUI.pane.load: the target is not an <app-detail-pane>.`);if(t.signal?.aborted)return Promise.reject(z());Ut(document);let r=vt(n),i=yt(r,e,t);n.hidden=!1,n.setAttribute(`data-open`,``);let a=J(r,i);return Gt(r,i,t,Promise.resolve(),a,`WUI.pane.load`)}catch(e){return Promise.reject(e)}}function Yt(e){let t=Qe(e);if(!t)throw TypeError(`WUI.pane.close: the target is not an <app-detail-pane>.`);let n=Re.get(t);n?.session&&q(n,n.session,`dismissed`,null)}var Y=`wuiConfirm`,Xt=Object.freeze([`danger`]),Zt=Object.freeze([`success`,`info`,`warning`,`danger`]),Qt=e=>Zt.some(t=>t===e),$t=`wui.flash`,X=Object.freeze({confirmTitle:`Are you sure?`,confirmLabel:`Confirm`,cancelLabel:`Cancel`,failed:`That did not work. Try again.`,forbidden:`You do not have permission to do that.`,network:`Could not reach the server. Check your connection and try again.`}),en=/* @__PURE__ */ new WeakSet,tn=/* @__PURE__ */ new WeakSet,nn=null,rn=null,an=!1,on=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML},sn=(e,t)=>{e&&k().toast(e,{variant:t})},cn=()=>r(window.bootstrap?.Modal,`data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);function ln(){let n=document.getElementById(Y);return n||(n=document.createElement(`div`),n.id=Y,n.className=`modal fade wui-modal-shell`,n.tabIndex=-1,n.setAttribute(`aria-hidden`,`true`),n.setAttribute(`role`,`dialog`),n.setAttribute(`aria-modal`,`true`),n.style.setProperty(`--wui-modal-max-width`,`${N.md}px`),n.innerHTML=`<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal wui-confirm"><div class="wui-modal-body"><div class="wui-confirm-content"><span class="wui-confirm-icon"><wui-status-icon tone="info" size="120"></wui-status-icon></span><h3 class="wui-confirm-title" tabindex="-1" data-autofocus></h3><p class="wui-confirm-msg"></p></div></div><div class="wui-modal-footer"><div class="wui-confirm-actions"><button type="button" class="${e(`primary`,`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${on(X.cancelLabel)}</button><button type="button" class="${e(`primary`,`solid`,`md`)}" data-app-confirm data-wui="${t}"></button></div></div></div></div>`,document.body.appendChild(n),n)}function un(e,t){let n=e.getAttribute(`data-wui-confirm-tone`);if(n!==null&&!Xt.includes(n))throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);dn({title:e.getAttribute(`data-wui-confirm-title`),message:e.getAttribute(`data-wui-confirm`),label:e.getAttribute(`data-wui-confirm-label`),danger:n===`danger`},t)}function dn({title:e,message:t,label:n,danger:r},i){let a=cn(),o=ln(),s=o.querySelector(`.wui-confirm-title`),c=o.querySelector(`[data-app-confirm]`);if(!s||!c)throw Error(`#${Y} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${Y}"> without confirm-href, or leave the dialog to the library.`);let l=o.querySelector(`.wui-confirm-msg`);l||(l=document.createElement(`p`),l.className=`wui-confirm-msg`,s.after(l));let u=e||X.confirmTitle;s.textContent=u,l.textContent=t,c.textContent=n||X.confirmLabel,c.classList.toggle(`btn-danger`,r),c.classList.toggle(`btn-primary`,!r),o.querySelector(`wui-status-icon`)?.setAttribute(`tone`,r?`delete`:`info`),o.setAttribute(`aria-label`,u),rn=i,an=!1,a.getOrCreateInstance(o).show()}var fn=(e,t)=>{nn=e;try{t()}finally{nn=null}},pn=(e,t)=>{let n=Reflect.get(e,t);if(n===void 0||typeof n==`string`)return n;throw TypeError(`confirmAction: ${t} must be text.`)},mn=e=>{if(typeof e!=`object`||!e)throw TypeError(`confirmAction: options must be an object with a message.`);let t=`message`in e?e.message:void 0;if(typeof t!=`string`)throw TypeError(`confirmAction: message must be text.`);return{title:pn(e,`title`),message:t,label:pn(e,`label`),tone:pn(e,`tone`)}};function hn(e,t,n){let{title:r,message:i,label:a,tone:o}=mn(t);if(o!=null&&!Xt.includes(o))throw TypeError(`confirmAction: tone "${o}" is not supported. Use danger, or leave it off.`);Fn(e.ownerDocument),dn({title:r,message:i,label:a,danger:o===`danger`},()=>fn(e,n))}var gn=e=>`disabled`in e&&e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`,_n=e=>{n(e,HTMLElement,`data-wui-confirm needs an HTML element to click.`).click()};function vn(e){let t=i(e.target,`[data-wui-confirm]:not(form)`);t&&t!==nn&&!gn(t)&&(e.preventDefault(),e.stopImmediatePropagation(),un(t,()=>fn(t,()=>_n(t))))}function yn(e){let t=e.target;if(!(t instanceof HTMLFormElement)||!t.hasAttribute(`data-wui-confirm`)||t===nn||e.submitter&&e.submitter===nn||t.querySelector(`input[data-app-repeater-hidden]`))return;e.preventDefault(),e.stopImmediatePropagation();let n=e.submitter instanceof HTMLButtonElement||e.submitter instanceof HTMLInputElement?e.submitter:null,r=n?.form===t?n:void 0;un(t,()=>fn(t,()=>t.requestSubmit(r)))}function bn(e){let t=i(e.target,`#${Y} [data-app-confirm]`);if(!t||t.hasAttribute(`disabled`)||!rn)return;an=!0;let n=cn(),a=r(t.closest(`#${Y}`),`#${Y} is missing around its confirm button.`);n.getOrCreateInstance(a).hide()}function xn(e){if(!(e.target instanceof Element)||e.target.id!==`wuiConfirm`)return;let t=an?rn:null;rn=null,an=!1,t?.()}function Sn(e,t){e&&window.sessionStorage.setItem($t,JSON.stringify({message:e,variant:t}))}var Cn=e=>e===`forbidden`?X.forbidden:e===`network`?X.network:X.failed;function wn(){for(let e of document.querySelectorAll(`[data-wui-server]`))e.getAttribute(`data-refresh-on-success`)!==`false`&&O(e)?.reload()}var Tn=(e,t)=>{`disabled`in e&&(e.disabled=t)};async function En(e){let t=e.getAttribute(`data-wui-post`);if(!t)throw Error(`A data-wui-post button needs the URL the action posts to.`);return Dn(t,e)}async function Dn(e,t,n){let r=t.getAttribute(`data-wui-post-reload`);if(r!==null&&r!==`page`)throw TypeError(`data-wui-post-reload="${r}" is not supported. Use page, or leave it off to reload the server tables.`);Tn(t,!0),t.setAttribute(`aria-busy`,`true`);let i=await ne(e,{method:`POST`,body:n});if(i.kind===`session`||i.kind===`aborted`)return;let a=i.toastVariant||`success`;i.ok&&(i.redirect||r===`page`)?(Sn(i.message,a),i.redirect?window.location.assign(i.redirect):window.location.reload()):(Tn(t,!1),t.removeAttribute(`aria-busy`),i.ok?(Ae(i,a),wn()):sn(i.message||Cn(i.kind),`danger`))}function On(e,t){Tn(e,!1),e.removeAttribute(`aria-busy`),s(t),sn(X.failed,`danger`)}function kn(e){let t=i(e.target,`[data-wui-post]`);t&&(e.preventDefault(),gn(t)||t.getAttribute(`aria-busy`)===`true`||En(t).catch(e=>On(t,e)))}function An(e){let t=i(e.target,`form[data-wui-post-form]`);if(!(t instanceof HTMLFormElement)||e.defaultPrevented)return;e.preventDefault();let n=r(e.submitter||t.querySelector(`button:not(.repeater-add):not(.repeater-remove)`),`A data-wui-post-form needs a submit button to report its result on.`);if(n.getAttribute(`aria-busy`)===`true`)return;let a=new URL(r(t.getAttribute(`action`),`A data-wui-post-form needs an action attribute to post to.`),document.baseURI).href;Dn(a,n,new FormData(t)).catch(e=>On(n,e));let o=t.closest(`.dropdown`)?.querySelector(`[data-bs-toggle='dropdown']`);o&&window.bootstrap?.Dropdown?.getInstance(o)?.hide()}function jn(){let e=window.sessionStorage.getItem($t);if(!e)return;window.sessionStorage.removeItem($t);let t=JSON.parse(e);if(typeof t!=`object`||!t)throw TypeError(`stored flash is not an object.`);let n=`message`in t?t.message:void 0,r=`variant`in t?t.variant:void 0;if(typeof r!=`string`||!Qt(r))throw TypeError(`stored flash variant "${String(r)}" is not supported.`);if(typeof n!=`string`)throw TypeError(`stored flash message is not text.`);sn(n,r)}function Mn(e){let t=e.querySelectorAll?[...e.querySelectorAll(`[data-wui-flash]`)]:[];e instanceof Element&&e.matches(`[data-wui-flash]`)&&t.unshift(e);for(let e of t){let t=e.getAttribute(`data-wui-flash-variant`)||`success`;if(!Qt(t))throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${Zt.join(`, `)}.`);let n=e.getAttribute(`data-wui-flash`)||(e.textContent??``).trim();e.remove(),sn(n,t)}}var Nn=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e.form:null;function Pn(e){if(!(e.target instanceof Element))return;let t=e.target.closest(`[data-wui-auto-submit]`);if(!t)return;let n=Nn(e.target)||t.closest(`form`);n instanceof HTMLFormElement&&n.requestSubmit()}function Fn(e){tn.has(e)||(tn.add(e),e.addEventListener(`click`,bn),e.addEventListener(`hidden.bs.modal`,xn))}function In(e=document){let t=e instanceof Element?e.ownerDocument:e;en.has(t)||(en.add(t),t.addEventListener(`click`,vn,!0),t.addEventListener(`submit`,yn,!0),Fn(t),t.addEventListener(`click`,kn),t.addEventListener(`submit`,An),t.addEventListener(`change`,Pn),jn()),Mn(e)}var Ln=Object.freeze({title:`Leave without saving?`,message:`Your changes on this page are not saved. If you leave now, they are lost.`,leaveLabel:`Leave`}),Rn=`form[data-wui-unsaved]`,zn=`[aria-invalid="true"], .field-error:not(:empty), .field-validation-error, .validation-summary-errors, .wui-error-summary`,Bn=`[download], [data-wui-modal], [data-wui-post], [data-bs-toggle]`,Vn=/* @__PURE__ */ new Set([`submit`,`button`,`reset`,`image`]),Hn=/* @__PURE__ */ new Set([`hidden`,`checkbox`,`radio`,`file`,`submit`,`button`,`reset`,`image`,`range`,`color`]),Un=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLButtonElement||e instanceof HTMLFieldSetElement||e instanceof HTMLObjectElement||e instanceof HTMLOutputElement,Wn=e=>Un(e)?e instanceof HTMLObjectElement||e instanceof HTMLOutputElement?!1:e.disabled:`disabled`in e&&!!e.disabled,Gn=e=>`name`in e&&typeof e.name==`string`&&e.name!==``,Kn=e=>typeof e==`object`&&!!e,qn=e=>Array.isArray(e)&&e.every(e=>Array.isArray(e)&&typeof e[0]==`string`);function Jn(e){let t=JSON.parse(e);if(!qn(t))throw Error(`unsaved-changes snapshot is malformed`);return t}var Z=/* @__PURE__ */ new WeakMap,Yn=/* @__PURE__ */ new WeakSet,Xn=e=>`${e.name}:${e.size}:${e.lastModified}`,Zn=e=>[...e.querySelectorAll(Rn)].filter(e=>e instanceof HTMLFormElement);function Q(e){let t=[];for(let n of e.elements)Gn(n)&&!Wn(n)&&(Un(n)&&Vn.has(n.type)||(n instanceof HTMLInputElement&&(n.type===`checkbox`||n.type===`radio`)?t.push([n.name,n.value,n.checked]):n instanceof HTMLInputElement&&n.type===`file`?t.push([n.name,[...n.files||[]].map(Xn)]):n instanceof HTMLSelectElement&&n.type===`select-multiple`?t.push([n.name,[...n.selectedOptions].map(e=>e.value)]):n instanceof HTMLFieldSetElement||n instanceof HTMLObjectElement?t.push([n.name,null]):t.push([n.name,`value`in n?n.value:null])));return JSON.stringify(t)}function Qn(e){return Q(e)}function $n(e,t){let n=/* @__PURE__ */ new Map,r=Jn(t);for(let e of r){let t=n.get(e[0]);t?t.push(e):n.set(e[0],[e])}let i=Jn(Q(e)).map(e=>n.get(e[0])?.shift()??e);for(let e of n.values())i.push(...e);return JSON.stringify(i)}function er(e){for(let t of e.elements)if(Un(t)&&t.name&&!Wn(t)){if(t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!Hn.has(t.type)){if(t.value.trim()!==``)return!0}else if(t instanceof HTMLInputElement&&t.type===`file`&&(t.files?.length??0)>0)return!0}return!1}var tr=e=>({saved:e.querySelector(zn)&&er(e)?null:Q(e),engaged:!1,discarded:!1});function nr(e){let t=Z.get(e);return!t||t.discarded||!e.isConnected?!1:t.saved===null||t.engaged&&Q(e)!==t.saved}var rr=(e,t)=>Zn(e).filter(e=>e!==t&&nr(e)),ir=()=>!!window.bootstrap?.Modal;function ar(e,t,n){let r=t.map(e=>e.getAttribute(`data-wui-unsaved`)).find(Boolean)||Ln.message;hn(e,{title:Ln.title,message:r,label:Ln.leaveLabel,tone:`danger`},()=>{for(let e of t){let t=Z.get(e);t&&(t.discarded=!0)}n()})}function or(e){if(e.matches(Bn))return!1;let t=e.getAttribute(`target`);if(t&&t.toLowerCase()!==`_self`)return!1;let n=e.getAttribute(`href`);if(n===null)return!1;let r=new URL(n,window.location.href);if(r.protocol!==`http:`&&r.protocol!==`https:`)return!1;let i=window.location;return!(r.hash&&r.origin===i.origin&&r.pathname===i.pathname&&r.search===i.search)}function sr(e,t){if((t?.getAttribute(`formmethod`)||e.getAttribute(`method`)||`get`).toLowerCase()===`dialog`)return!1;let n=t?.getAttribute(`formtarget`)||e.getAttribute(`target`);return!n||n.toLowerCase()===`_self`}function cr(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target,n=i(t,`a[href]`);if(!(n instanceof HTMLAnchorElement)||!or(n))return;let r=rr(n.ownerDocument,null);r.length&&ir()&&(e.preventDefault(),ar(n,r,()=>n.click()))}function lr(e){let t=e.target;if(!(t instanceof HTMLFormElement)||e.defaultPrevented||!sr(t,e.submitter))return;let n=rr(t.ownerDocument,t);if(n.length&&ir()){e.preventDefault();let r=e.submitter,i=(r instanceof HTMLButtonElement||r instanceof HTMLInputElement)&&r.form===t?r:void 0;ar(t,n,()=>t.requestSubmit(i));return}let r=Z.get(t);r&&(r.saved=Q(t),r.discarded=!1)}function ur(e){rr(document,null).length&&(e.preventDefault(),e.returnValue=``)}function dr(e){let t=e.target,n=i(t,Rn);return n instanceof HTMLFormElement?n:null}function fr(e){let t=dr(e);if(!t)return;let n=Z.get(t);n&&!n.engaged&&(n.saved!==null&&(n.saved=Q(t)),n.engaged=!0)}function pr(e){let t=dr(e),n=t&&Z.get(t);n&&(n.discarded=!1,e.isTrusted&&(n.engaged=!0))}function mr(e){for(let t of Zn(e)){let e=Z.get(t);e?.saved&&(e.saved=$n(t,e.saved))}}function hr(e){let t=Kn(e)?e.handle:void 0;return Kn(t)?t.el:void 0}function gr(e){if(!(e instanceof CustomEvent))return;let t=hr(e.detail);if(t instanceof Element)for(let e of Zn(t))vr(e)}function _r(e=document){let t=e instanceof Document?e:e.ownerDocument;if(!Yn.has(t)){Yn.add(t);for(let e of[`focusin`,`pointerdown`,`drop`])t.addEventListener(e,fr,!0);for(let e of[`input`,`change`])t.addEventListener(e,pr,!0);t.addEventListener(`click`,cr),t.addEventListener(`submit`,lr),t.addEventListener(`wui:modal:success`,gr),t.addEventListener(a,()=>mr(t)),r(t.defaultView,`unsaved-changes guard needs a document with a window`).addEventListener(`beforeunload`,ur)}let n=Zn(e);e instanceof HTMLFormElement&&e.matches(Rn)&&n.unshift(e);for(let e of n)Z.has(e)||Z.set(e,tr(e))}function vr(e){if(!(e instanceof HTMLFormElement)||!e.matches(Rn))throw TypeError(`resetUnsavedChanges: ${String(e)} is not a <form data-wui-unsaved>.`);Z.set(e,{saved:Q(e),engaged:!1,discarded:!1})}var yr=Object.freeze({question:`Discard your changes?`,discard:`Discard`,keep:`Keep editing`}),br=`wui:drawer:discard`,xr=`wui-drawer[confirm-discard]`,Sr=`.wui-modal-shell`,Cr=`data-wui-no-discard`,wr=`.wui-drawer-discard`,Tr=`input, select, textarea`,Er=e=>typeof e==`object`&&!!e||typeof e==`function`;function Dr(e){let t=e.currentTarget;if(!(t instanceof Document))throw Error(`The discard guard is not wired on a document.`);return t}function Or(e,t){return i(e,t)}var kr=e=>e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement,$=/* @__PURE__ */ new WeakMap,Ar=/* @__PURE__ */ new WeakSet,jr=/* @__PURE__ */ new WeakSet;function Mr(n,r,i,a,o){let s=n.createElement(`button`);return s.type=`button`,s.className=e(r,i,`sm`),s.dataset.wui=t,s.setAttribute(a,``),s.textContent=o,s}function Nr(e,t){let n=e.createElement(`div`);n.className=`wui-drawer-discard`,n.setAttribute(`role`,`alert`);let r=e.createElement(`span`);return r.className=`wui-drawer-discard-text`,r.textContent=t,n.append(r,Mr(e,`danger`,`solid`,`data-wui-discard-confirm`,yr.discard),Mr(e,`primary`,`soft`,`data-wui-discard-keep`,yr.keep)),n}function Pr(e){if(!(e instanceof Element))return null;let t=e.closest(xr);if(t)return t;let n=e.closest(Sr);return n&&Lr(n).length?n:null}function Fr(e){return e.closest(xr)??e.closest(Sr)}function Ir(e,t){return t.hasAttribute(Cr)||e.hasAttribute(Cr)?!1:t.hasAttribute(`confirm-discard`)||e.hasAttribute(`data-wui-confirm-discard`)?!0:(e.getAttribute(`method`)||`get`).toLowerCase()!==`get`}function Lr(e){return e.matches(xr)?e.querySelectorAll(`form`):[...e.querySelectorAll(`form`)].filter(t=>Ir(t,e))}function Rr(e){let t=$.get(e);return t!=null&&Qn(e)!==t}function zr(e){let t=e.ownerDocument.createElement(`div`);return t.className=`wui-drawer-footer`,r(e.querySelector(`.wui-drawer-panel`),`The drawer has no panel to hold its footer.`).append(t),jr.add(t),t}function Br(e){let t=e.ownerDocument.createElement(`div`);return t.className=`wui-modal-footer`,(e.querySelector(`.wui-modal-body`)?.parentElement??e.querySelector(`.modal-content`)??e).append(t),jr.add(t),t}function Vr(e){let t=e.querySelector(`[data-wui-discard-confirm]`);if(!(t instanceof HTMLElement))throw Error(`The discard prompt has no confirm button.`);t.focus()}function Hr(e,t,n){let r=e.querySelector(wr);if(r){Vr(r);return}let i=Nr(e.ownerDocument,t),a;if(e.matches(xr))a=e.querySelector(`.wui-drawer-footer`)??zr(e),a.prepend(i);else if(e.hasAttribute(`confirm-discard`))a=e.querySelector(`.wui-modal-footer`)??Br(e),a.prepend(i);else{if(!n)throw Error(`A discard prompt needs the form that is dirty.`);a=n.querySelector(`.modal-footer`),a?a.prepend(i):(a=n,n.append(i))}a.classList.add(`wui-drawer-discarding`),Vr(i)}function Ur(e){let t=e.parentElement;if(e.remove(),!t)throw Error(`The discard prompt has no footer.`);t.classList.remove(`wui-drawer-discarding`),jr.has(t)&&t.remove()}function Wr(e){for(let t of Lr(e))for(let e of t.querySelectorAll(Tr))if(kr(e)&&e.type!==`hidden`&&!e.disabled){e.focus({preventScroll:!0});return}}function Gr(e){let t=Pr(e.target);if(t)for(let e of Lr(t))$.get(e)??$.set(e,Qn(e))}function Kr(e){for(let t of Dr(e).querySelectorAll(`form`)){let e=$.get(t);e!=null&&$.set(t,$n(t,e))}}function qr(e){let t=e.target;t instanceof HTMLFormElement&&Pr(t)&&$.set(t,Qn(t))}function Jr(e){if(!Er(e))return;let t=`handle`in e?e.handle:void 0;if(Er(t))return`el`in t?t.el:void 0}function Yr(e){if(!(e instanceof CustomEvent))return;let t=e.detail,n=Jr(t);if(n instanceof Element)for(let e of n.querySelectorAll(`form`))$.delete(e)}function Xr(e){let t=e.target;t instanceof Element&&t.matches(xr)&&[...Lr(t)].some(Rr)&&(e.preventDefault(),Hr(t,t.getAttribute(`confirm-discard`),null))}function Zr(e){let t=e.target;if(!(t instanceof Element)||!t.matches(Sr))return;let n=[...Lr(t)].find(Rr);n&&(e.preventDefault(),Hr(t,n.getAttribute(`data-wui-confirm-discard`)??t.getAttribute(`confirm-discard`)??yr.question,n))}function Qr(e){let t=e.closest(`wui-drawer`);if(t){t.dispatchEvent(new CustomEvent(`wui-drawer-close`,{bubbles:!0,cancelable:!0}))&&t.hide();return}let n=e.closest(Sr);n&&window.bootstrap?.Modal.getInstance(n)?.hide()}function $r(e){let t=r(e.closest(wr),`The discard button is outside its prompt.`),n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);for(let e of Lr(n))$.set(e,Qn(e));n.dispatchEvent(new CustomEvent(br,{bubbles:!0})),n.matches(xr)?r(n.closest(`wui-drawer`),`The confirm-discard drawer is not a wui-drawer.`).hide():r(window.bootstrap?.Modal.getInstance(n),`Bootstrap's Modal has no instance for the discarded dialog.`).hide()}function ei(e){let t=r(e.closest(wr),`The keep button is outside its prompt.`),n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);Wr(n)}function ti(e){let t=Or(e.target,`[data-wui-discard-confirm]`);if(t){$r(t);return}let n=Or(e.target,`[data-wui-discard-keep]`);if(n){ei(n);return}let r=Or(e.target,`[data-wui-dismiss]`);r&&Qr(r)}function ni(e){if(e.key!==`Escape`)return;let t=Dr(e).querySelector(wr);if(!t)return;e.preventDefault(),e.stopPropagation();let n=Fr(t);if(Ur(t),!n)throw Error(`The discard prompt is outside its drawer or modal.`);Wr(n)}function ri(e=document){let t=e instanceof Document?e:e.ownerDocument;Ar.has(t)||(Ar.add(t),t.addEventListener(`focusin`,Gr),t.addEventListener(`pointerdown`,Gr),t.addEventListener(`submit`,qr),t.addEventListener(a,Kr),t.addEventListener(`wui:modal:success`,Yr),t.addEventListener(`wui:modal:loaded`,Yr),t.addEventListener(`wui-drawer-close`,Xr,!0),t.addEventListener(`hide.bs.modal`,Zr),t.addEventListener(`click`,ti),t.addEventListener(`keydown`,ni,!0))}export{Ae as C,je as S,D as T,Ut as _,Ln as a,Jt as b,vr as c,$t as d,Zt as f,Yt as g,In as h,ri as i,Y as l,hn as m,yr as n,Qn as o,X as p,Nr as r,_r as s,br as t,Xt as u,Kt as v,O as w,Te as x,Wt as y};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiCodeBlock-DHpmEskS.js";e(`wui-code-block`,t);export{t as WuiCodeBlock};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiCodeBlock-cLLbSBK4.js";e(`wui-code-block`,t);export{t as WuiCodeBlock};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiCommandPalette-DqHh4lH6.js";e(`wui-command-palette`,t);export{t as WuiCommandPalette};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiCommandPalette-Dpz0DXKJ.js";e(`wui-command-palette`,t);export{t as WuiCommandPalette};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiDataTable-B4BYCd_s.js";import{A as n,C as r,D as i,E as a,M as o,O as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as h,g,h as _,i as v,j as y,k as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k,v as A,w as j,x as M,y as N}from"../dataTable-B-7oAeii.js";e(`wui-data-table`,t);export{O as COLUMN_MAX_WIDTH,C as COLUMN_MIN_WIDTH,E as DATA_TABLE_TEXT,v as PIN_AT_VAR,d as PIN_SIDES,w as RESIZE_STEP,D as RESIZE_STEP_LARGE,p as ROW_HEIGHTS,x as ROW_MOVE_LIMIT,k as ROW_MOVE_MS,m as ROW_SAVE_ATTR,h as ROW_SAVE_ERROR_CLASS,T as ROW_SAVE_STATES,S as VIRTUAL_OVERSCAN,t as WuiDataTable,_ as clampColumnWidth,g as groupCount,u as groupItems,A as identityCell,N as measureRows,f as pinAtValue,M as pinClasses,c as pinOffsetVar,r as planPins,j as playRowMoves,l as readColumnWidths,a as rowLabel,i as rowOrderChanged,s as saveOutcomeText,b as setRowSaveState,n as settledRows,y as virtualRange,o as writeColumnWidths};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiDataTable-8nQDiTHE.js";import{A as n,C as r,D as i,E as a,M as o,O as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as h,g,h as _,i as v,j as y,k as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k,v as A,w as j,x as M,y as N}from"../dataTable-CcH1lBIM.js";e(`wui-data-table`,t);export{O as COLUMN_MAX_WIDTH,C as COLUMN_MIN_WIDTH,E as DATA_TABLE_TEXT,v as PIN_AT_VAR,d as PIN_SIDES,w as RESIZE_STEP,D as RESIZE_STEP_LARGE,p as ROW_HEIGHTS,x as ROW_MOVE_LIMIT,k as ROW_MOVE_MS,m as ROW_SAVE_ATTR,h as ROW_SAVE_ERROR_CLASS,T as ROW_SAVE_STATES,S as VIRTUAL_OVERSCAN,t as WuiDataTable,_ as clampColumnWidth,g as groupCount,u as groupItems,A as identityCell,N as measureRows,f as pinAtValue,M as pinClasses,c as pinOffsetVar,r as planPins,j as playRowMoves,l as readColumnWidths,a as rowLabel,i as rowOrderChanged,s as saveOutcomeText,b as setRowSaveState,n as settledRows,y as virtualRange,o as writeColumnWidths};
@@ -1 +1 @@
1
- import{n as e,t}from"../filterPopover-D8BOb-Hz.js";e();export{t as FILTER_POPOVER_MAX_CHIPS};
1
+ import{n as e,t}from"../filterPopover-CaHWe9V0.js";e();export{t as FILTER_POPOVER_MAX_CHIPS};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../kanban-Dz8m-17x.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"../kanbanModel-C2IOPJ8L.js";e(`wui-kanban`,t);export{h as KANBAN_DRAG_THRESHOLD_PX,u as KANBAN_LONG_PRESS_MS,p as KANBAN_PHONE_QUERY,s as KANBAN_STORAGE_PREFIX,n as KANBAN_SUMMARY_FORMATS,d as KANBAN_TEXT,m as KANBAN_TONES,t as WuiKanban,r as kanbanCardLabel,c as kanbanOverflow,g as kanbanStorageKey,i as kanbanSummaryFormat,a as kanbanVisibleLimit,f as readKanbanCollapsed,l as sumKanbanValues,o as writeKanbanCollapsed};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../kanban-CDaks135.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"../kanbanModel-BaT75e-b.js";e(`wui-kanban`,t);export{h as KANBAN_DRAG_THRESHOLD_PX,u as KANBAN_LONG_PRESS_MS,p as KANBAN_PHONE_QUERY,s as KANBAN_STORAGE_PREFIX,n as KANBAN_SUMMARY_FORMATS,d as KANBAN_TEXT,m as KANBAN_TONES,t as WuiKanban,r as kanbanCardLabel,c as kanbanOverflow,g as kanbanStorageKey,i as kanbanSummaryFormat,a as kanbanVisibleLimit,f as readKanbanCollapsed,l as sumKanbanValues,o as writeKanbanCollapsed};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiLeadPopup-YN4YCbOe.js";e(`wui-lead-popup`,t);export{t as WuiLeadPopup};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiLeadPopup-BmZG0Fk_.js";e(`wui-lead-popup`,t);export{t as WuiLeadPopup};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiOnboardingChecklist-Cx-TgpBY.js";e(`wui-onboarding-checklist`,t);export{t as WuiOnboardingChecklist};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiOnboardingChecklist-C-nllg2h.js";e(`wui-onboarding-checklist`,t);export{t as WuiOnboardingChecklist};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiResizable-DQZdQVCz.js";e(`wui-resizable`,t);export{t as WuiResizable};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiResizable-KvfLtbCw.js";e(`wui-resizable`,t);export{t as WuiResizable};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiSavedViews-UaiP6YNG.js";e(`wui-saved-views`,t);export{t as WuiSavedViews};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiSavedViews-Br9YKOVU.js";e(`wui-saved-views`,t);export{t as WuiSavedViews};
@@ -1 +1 @@
1
- import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiSelect-DBPre2oe.js";e(`wui-select`,t);export{t as WuiSelect};
1
+ import{n as e}from"../elementBase-Cxeyx0tU.js";import{t}from"../WuiSelect-BPWPI07i.js";e(`wui-select`,t);export{t as WuiSelect};
@@ -0,0 +1 @@
1
+ import{n as e,r as t,t as n}from"./anchorOverlay-CXnWfezA.js";import{n as r,t as i}from"./elementBase-Cxeyx0tU.js";import{d as a}from"./shortcutKeys-COVLox98.js";var o=2,s=`wui-filter-popover-pinned`,c=`.wui-filter-popover-trigger`,l=`.wui-filter-popover-panel`,u=`.wui-filter-popover-head`,d=`input:not([type]),input[type="text"],input[type="search"]`,f=`a[href],button:not([disabled]),input:not([disabled]):not([type='hidden']),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex='-1'])`;function p(){try{return sessionStorage.getItem(s)===`1`}catch{return!1}}function m(e){try{e?sessionStorage.setItem(s,`1`):sessionStorage.removeItem(s)}catch(e){if(!(e instanceof DOMException))throw e}}function h(e){if(e===null||e instanceof Node)return e;throw TypeError(`event target is not a node`)}function g(e,t){let n=e?.querySelector(t)??null;return n instanceof HTMLElement?n:null}var _=class extends i{_doc;_timer;_sticky;_inside;_pendingSubmit;_onEnter;_onLeave;_onClick;_onChange;_onListClose;_onFocusOut;_onKeyDown;_onShortcut;_onEscape;_onOutside;constructor(){super(),this._doc=null,this._timer=null,this._sticky=!1,this._inside=!1,this._pendingSubmit=!1,this._onEnter=e=>{e.pointerType!==`touch`&&e.pointerType!==`pen`&&(this._inside=!0,this._schedule(!0))},this._onLeave=e=>{e.pointerType!==`touch`&&e.pointerType!==`pen`&&(this._inside=!1,this._schedule(!1))},this._onClick=e=>{this._trigger?.contains(h(e.target))&&(this._clear(),this.isOpen&&this._sticky?this._close(!0):this._open(!0,e.detail===0))},this._onChange=e=>{let t=this._pin;if(t&&e.target===t){m(t.checked),t.checked?this._clear():this._schedule(!1);return}let n=e.target;if(n instanceof Element&&n.closest(`wui-select[mode="multiple"], wui-select[mode="tag"]`)?.querySelector(`[aria-expanded="true"]`)){this._pendingSubmit=!0;return}let r=this.closest(`form.wui-filter-form`);r instanceof HTMLFormElement&&r.requestSubmit()},this._onListClose=()=>{if(!this._pendingSubmit)return;this._pendingSubmit=!1;let e=this.closest(`form.wui-filter-form`);e instanceof HTMLFormElement&&e.requestSubmit()},this._onFocusOut=e=>{this.contains(h(e.relatedTarget))||this._schedule(!1)},this._onKeyDown=e=>{let t=e.target;if(e.key!==`Enter`||!(t instanceof Element)||!this._panel?.contains(t)||!t.matches(d))return;e.preventDefault();let n=this.closest(`form.wui-filter-form`);n instanceof HTMLFormElement&&n.requestSubmit()},this._onShortcut=e=>{this.ownerDocument.querySelector(`wui-filter-popover`)===this&&a(e,{f:()=>this._open(!0,!0)})},this._onEscape=e=>{e.key===`Escape`&&this.isOpen&&this._close(!0)},this._onOutside=e=>{this.isOpen&&!e.composedPath().includes(this)&&this._close(!1)}}get isOpen(){let e=this._panel;return e?!e.hidden:!1}connectedCallback(){this._doc=this.ownerDocument,this.addEventListener(`pointerenter`,this._onEnter),this.addEventListener(`pointerleave`,this._onLeave),this.addEventListener(`click`,this._onClick),this.addEventListener(`change`,this._onChange),this.addEventListener(`focusout`,this._onFocusOut),this.addEventListener(`keydown`,this._onKeyDown),this.addEventListener(`wui-select:close`,this._onListClose),this._doc.addEventListener(`keydown`,this._onShortcut),p()&&this._pin&&(this._pin.checked=!0,this._open(!1,!1))}disconnectedCallback(){this._clear(),this.removeEventListener(`pointerenter`,this._onEnter),this.removeEventListener(`pointerleave`,this._onLeave),this.removeEventListener(`click`,this._onClick),this.removeEventListener(`change`,this._onChange),this.removeEventListener(`focusout`,this._onFocusOut),this.removeEventListener(`keydown`,this._onKeyDown),this.removeEventListener(`wui-select:close`,this._onListClose),this._doc?.removeEventListener(`keydown`,this._onShortcut),this._doc?.removeEventListener(`keydown`,this._onEscape),this._doc?.removeEventListener(`click`,this._onOutside),t(this),this._doc=null}get _trigger(){return g(this,c)}get _panel(){return g(this,l)}get _pin(){let e=this.querySelector(`${u} input[type="checkbox"]`);return e instanceof HTMLInputElement?e:null}get _pinned(){return this._pin?.checked===!0}_clear(){this._timer!==null&&clearTimeout(this._timer),this._timer=null}_schedule(e){if(this._clear(),e){if(this.isOpen)return;this._timer=setTimeout(()=>{this._timer=null,this._open(!1,!1)},150)}else this.isOpen&&!this._stayOpen()&&(this._timer=setTimeout(()=>{this._timer=null,this._stayOpen()||this._close(!1)},400))}_stayOpen(){let e=this._panel;return e?this._pinned||this._inside||e.contains(this.ownerDocument.activeElement)||e.querySelector(`[aria-expanded="true"]`)!==null:!1}_open(t,n){this._clear();let r=this._panel,i=this._trigger;r&&i&&(this.isOpen?t&&(this._sticky=!0):(r.hidden=!1,i.setAttribute(`aria-expanded`,`true`),this._sticky=t,this._reposition(),e(this,()=>{this._triggerOutOfView()?this._close(!1):this._reposition()}),this._doc?.addEventListener(`keydown`,this._onEscape),this._doc?.addEventListener(`click`,this._onOutside)),n&&(g(r.querySelector(`.wui-filter-popover-grid`),f)??g(r,f))?.focus())}_close(e){this._clear();let n=this._panel;if(!n||!this.isOpen)return;let r=n.contains(this.ownerDocument.activeElement);n.hidden=!0,this._trigger?.setAttribute(`aria-expanded`,`false`),this._sticky=!1,t(this),this._doc?.removeEventListener(`keydown`,this._onEscape),this._doc?.removeEventListener(`click`,this._onOutside),e&&r&&this._trigger?.focus()}_reposition(){this.isOpen&&this._trigger&&n(this._trigger,this._panel,{clampHeight:!0,alignEnd:!0})}_triggerOutOfView(){let e=this._trigger;if(!e||!this._doc?.elementFromPoint)return!1;let t=e.getBoundingClientRect();if(!t.width&&!t.height)return!1;let n=this._doc.elementFromPoint(t.left+t.width/2,t.top+t.height/2);return!n||!(e.contains(n)||this._panel?.contains(n))}};function v(){r(`wui-filter-popover`,_)}export{v as n,o as t};
package/dist/helpers.js CHANGED
@@ -1 +1 @@
1
- import{r as e}from"./dom-Do1pAA12.js";import{n as t,r as n,t as r}from"./commentText-BnX7rA2-.js";import{n as i,t as a}from"./copyText-DM5HhXjf.js";import{_ as o,a as s,b as c,c as l,d as u,f as d,g as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,x as w,y as T}from"./formatters-ljfITOZ3.js";import{A as E,C as D,D as O,E as k,M as A,O as j,S as M,T as N,_ as P,a as ee,b as te,c as ne,d as re,f as ie,g as ae,h as oe,i as se,j as ce,k as le,l as ue,m as de,n as fe,o as pe,p as me,r as he,s as ge,t as _e,u as ve,v as ye,w as be,x as xe,y as Se}from"./dataTable-B-7oAeii.js";import{t as Ce}from"./iconGlyphs.g-DPqoOoXy.js";import{i as we,n as Te,r as Ee,t as De}from"./inlineEditText-CsLCQbcg.js";import{a as Oe,c as ke,d as Ae,f as je,h as Me,i as Ne,l as Pe,m as Fe,n as Ie,o as Le,p as Re,r as ze,s as Be,t as Ve,u as He}from"./kanbanModel-C2IOPJ8L.js";import{a as Ue,i as We,n as Ge,o as Ke,r as qe,t as Je}from"./mentionText-BJsw_opZ.js";import{a as Ye,c as Xe,i as Ze,n as Qe,o as $e,r as et,s as tt,t as nt}from"./notificationDays-BIWczft0.js";import{o as rt}from"./optionLabel-4xjXWy74.js";import{n as it,r as at,t as ot}from"./relativeTime-BahImc8F.js";import{a as st,c as ct,d as lt,f as ut,g as dt,h as ft,i as pt,l as mt,m as ht,n as gt,o as _t,p as vt,r as yt,s as bt,t as xt,u as St,v as Ct,y as wt}from"./themeTransition-9LQC6fx8.js";import{a as Tt,c as Et,d as Dt,f as Ot,i as kt,l as At,m as jt,n as Mt,o as Nt,p as Pt,r as Ft,s as It,t as Lt,u as Rt}from"./shortcutKeys-COVLox98.js";import{n as zt,t as Bt}from"./stepperHeader-yinJ_7Dk.js";import{t as Vt}from"./textMatch-wdY7XLIc.js";import{t as Ht}from"./tourSeenStore-z0Y_Znzx.js";import{i as Ut,n as Wt,o as Gt,r as Kt,s as qt,t as Jt}from"./zone-BR02ZkHF.js";var Yt=`image/jpeg,image/png,image/webp,image/heic,image/heif,.heic,.heif`,Xt=10,Zt=512,Qt=`image/webp`,$t=[96,48],F={dialogTitle:`Edit photo`,dialogSubtitle:`Drag to position the photo, then zoom or rotate it.`,save:`Save photo`,cancel:`Cancel`,choose:`Upload photo`,change:`Change photo`,camera:`Take photo`,remove:`Remove photo`,unreadable:`That photo could not be opened. Choose a JPG, PNG or WebP image.`,heicUnreadable:`This browser cannot open HEIC photos. Choose a JPG, PNG or WebP image instead.`,cropFailed:`That photo could not be saved. Try again, or choose another one.`};function en(e){if(!e)return!1;let t=String(e.type||``).toLowerCase();return t===`image/heic`||t===`image/heif`||/\.hei[cf]$/i.test(String(e.name||``))}function tn(e){return en(e)?F.heicUnreadable:F.unreadable}function nn(e,t){let n=Number(t);return{name:e?.name||`photo`,type:Qt,size:Number.isInteger(n)&&n>0?n:512}}var rn=`data-wui-command-shortcut`,an=`k`,on=/* @__PURE__ */ new WeakSet;function sn(e,t){return!(e.ctrlKey||e.metaKey)||e.altKey||e.shiftKey||e.repeat?!1:String(e.key).toLowerCase()===String(t).toLowerCase()}function cn(e){return e.nodeType===Node.DOCUMENT_NODE}function ln(t){let n=e(window.bootstrap?.Modal,`data-wui-command-shortcut: Bootstrap's bundle (window.bootstrap) is not loaded on this page.`),r=t.closest(`.modal`);r&&n.getOrCreateInstance(r).show()}function un(e){let t=cn(e)?e:e.ownerDocument;!on.has(t)&&e.querySelector(`[data-wui-command-shortcut]`)&&(on.add(t),t.addEventListener(`keydown`,e=>{for(let n of t.querySelectorAll(`[${rn}]`))if(sn(e,n.getAttribute(`data-wui-command-shortcut`)||an)){e.preventDefault(),n.localName===`wui-command-palette`||n.classList.contains(`modal`)?ln(n):(n.focus(),`select`in n&&typeof n.select==`function`&&n.select());return}}))}function dn(e){return typeof customElements<`u`&&customElements.get(e)!==void 0}async function fn(e){await customElements.whenDefined(e)}var pn=`image/png,image/jpeg,image/webp`,mn=5,hn={"image/png":[`.png`],"image/jpeg":[`.jpg`,`.jpeg`],"image/webp":[`.webp`],"image/gif":[`.gif`],"image/svg+xml":[`.svg`],"image/heic":[`.heic`],"image/heif":[`.heif`],"application/pdf":[`.pdf`],"text/plain":[`.txt`]},gn={"image/png":`PNG`,"image/jpeg":`JPG`,"image/webp":`WEBP`,"image/gif":`GIF`,"image/svg+xml":`SVG`,"image/heic":`HEIC`,"image/heif":`HEIC`,"application/pdf":`PDF`,"text/plain":`text file`,"image/*":`images`,"video/*":`videos`,"audio/*":`audio`,".png":`PNG`,".jpg":`JPG`,".jpeg":`JPG`,".webp":`WEBP`,".gif":`GIF`,".svg":`SVG`,".heic":`HEIC`,".heif":`HEIC`,".pdf":`PDF`,".txt":`text file`},I=e=>String(e||``).split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean),_n=[`.png`,`.jpg`,`.jpeg`,`.webp`,`.gif`,`.svg`,`.bmp`,`.avif`,`.heic`,`.heif`];function vn(e){if(!e)return!1;let t=typeof e==`object`&&e.type?String(e.type).toLowerCase():``;if(t)return t.startsWith(`image/`);let n=typeof e==`string`?e:e.name||e.url||``,r=String(n).toLowerCase();return _n.some(e=>r.endsWith(e))}var yn=[`KB`,`MB`,`GB`];function bn(e){if(e<1024)return`${e} B`;let t=e/1024,n=0;for(;t>=1024&&n<yn.length-1;)t/=1024,n+=1;return`${t.toFixed(1)} ${yn[n]}`}function xn(e){if(!e)return!1;let t=typeof e==`object`&&e.type?String(e.type).toLowerCase():``;if(t)return t===`application/pdf`;let n=typeof e==`string`?e:e.name||e.url||``;return String(n).toLowerCase().replace(/[?#][\s\S]*$/,``).endsWith(`.pdf`)}function Sn(e){let t=I(e);return t.length?t.every(e=>e.startsWith(`.`)?_n.includes(e):e===`image/*`||e.startsWith(`image/`)):!1}function Cn(e){let t=[];for(let n of I(e)){let e=gn[n]||(n.startsWith(`.`)?n.slice(1).toUpperCase():n.toUpperCase());t.includes(e)||t.push(e)}return t.length<=1?t[0]||`supported`:`${t.slice(0,-1).join(`, `)} or ${t[t.length-1]}`}function wn(e,t){let n=I(t);if(!n.length)return!0;let r=(e.type||``).toLowerCase(),i=(e.name||``).toLowerCase();return n.some(e=>e.startsWith(`.`)?i.endsWith(e):e.endsWith(`/*`)?r.startsWith(e.slice(0,-1)):r&&r===e?!0:!r&&(hn[e]||[]).some(e=>i.endsWith(e)))}function Tn(e,t={}){if(!e)return null;let n=t.accept===void 0?pn:t.accept,r=t.maxSizeMb===void 0?5:t.maxSizeMb;if(!wn(e,n)){let e=Cn(n),t=I(n).map(e=>[`images`,`videos`,`audio`].includes(gn[e]??``));return t.every(Boolean)?`Choose ${e}.`:t.some(Boolean)?`Choose ${e.endsWith(` file`)?`${e}s`:`${e} files`}.`:`Choose a ${e.endsWith(` file`)?e:`${e} file`}.`}return r!==null&&r>0&&e.size>r*1024*1024?`Keep the file under ${r} MB.`:null}function En(e,t){let n=Array.from(e||[]),r=t.multiple?n:n.slice(0,1),i=[],a=[];for(let e of r){let n=Tn(e,{accept:t.accept,maxSizeMb:t.maxSizeMb});n?a.push({file:e,message:n}):i.push(e)}return{files:i,rejections:a}}function Dn(e,t){let{overClass:n,isDisabled:r=()=>!1,onFiles:i,onReject:a,...o}=t,s=0,c=t=>e.classList.toggle(n,t),l=e=>{e.preventDefault(),r()||(s+=1,c(!0))},u=e=>{e.preventDefault(),r()||c(!0)},d=e=>{e.preventDefault(),r()||(s=Math.max(0,s-1),s===0&&c(!1))},f=e=>{if(e.preventDefault(),s=0,c(!1),r())return;let{files:t,rejections:n}=En(e.dataTransfer?.files,o);t.length&&i(t);let l=n[0];l&&a(l)};return e.addEventListener(`dragenter`,l),e.addEventListener(`dragover`,u),e.addEventListener(`dragleave`,d),e.addEventListener(`drop`,f),()=>{e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)}}var L=/[0-9]/,On={9:L,A:/[A-Za-z]/,"*":/[0-9A-Za-z]/},kn=/[9A*]/,R=/* @__PURE__ */ new Set([`text`,`tel`,`search`,`url`,`password`]),An=e=>{let t=e.replace(/\D/g,``);return t.length===12&&t.startsWith(`91`)?t.slice(2):t.length===11&&t.startsWith(`0`)?t.slice(1):e},jn=e=>{let t=Number(e.slice(0,2)),n=Number(e.slice(2,4)),r=Number(e.slice(4,8));if(r<1)return!1;let i=new Date(Date.UTC(r,n-1,t));return i.getUTCFullYear()===r&&i.getUTCMonth()===n-1&&i.getUTCDate()===t},Mn=e=>e.length<=3?e:`${e.slice(0,-3).replace(/\B(?=(\d{2})+(?!\d))/g,`,`)},${e.slice(-3)}`,Nn=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());return t?`${t[3]}-${t[2]}-${t[1]}`:e};function z(e,{upper:t=!1,normalize:n,valid:r,post:i=e=>e,message:a=`Enter the full value`}={}){let o=[...e].map(e=>{let t=On[e];return t?{re:t}:{lit:e}}),s=o.filter(e=>e.re).length;return{inputMode:o.every(e=>!e.re||e.re===L)?`numeric`:`text`,normalize:n,post:i,message:a,extract(e){let n=``,r=0;for(let i of e){for(;r<o.length&&o[r]?.lit!==void 0&&o[r]?.lit!==i;)r++;if(r>=o.length)break;let e=o[r];e?.lit===void 0?e?.re.test(i)&&(n+=t?i.toUpperCase():i,r++):r++}return n},layout(e){let t=``,n=[],r=0;for(let i=0;i<o.length&&r<e.length;i++){let a=o[i];a?.lit===void 0?(t+=e.charAt(r++),n.push(!0)):(t+=a.lit,n.push(!1))}return{text:t,isRaw:n}},isValid:e=>e.length===s&&(!r||r(e))}}function Pn(){return{inputMode:`decimal`,post:e=>e,message:`Enter a valid amount`,extract(e){let t=``,n=!1,r=0;for(let i of e)L.test(i)?n?r<2&&(t+=i,r++):t+=i:i===`.`&&!n&&(n=!0,t+=i);return t.startsWith(`.`)&&(t=`0${t}`),t.replace(/^0+(?=\d)/,``)},layout(e){let[t=``,n]=e.split(`.`),r=Mn(t)+(e.includes(`.`)?`.${n}`:``);return{text:r,isRaw:[...r].map(e=>e!==`,`)}},isValid:e=>/^\d+(\.\d{1,2})?$/.test(e)}}var B={"phone-in":()=>z(`99999 99999`,{normalize:An,valid:e=>/^[6-9]/.test(e),message:`Enter a 10-digit mobile number`}),pan:()=>z(`AAAAA9999A`,{upper:!0,valid:e=>/^[A-Z]{5}\d{4}[A-Z]$/.test(e),message:`Enter a valid PAN`}),gstin:()=>z(`99AAAAA9999A***`,{upper:!0,valid:e=>/^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/.test(e),message:`Enter a valid GSTIN`}),aadhaar:()=>z(`9999 9999 9999`,{valid:e=>/^[2-9]/.test(e),message:`Enter a valid 12-digit Aadhaar number`}),ifsc:()=>z(`AAAA*******`,{upper:!0,valid:e=>/^[A-Z]{4}0[A-Z0-9]{6}$/.test(e),message:`Enter a valid IFSC`}),"pin-code":()=>z(`999999`,{valid:e=>/^[1-9]/.test(e),message:`Enter a valid 6-digit PIN code`}),date:()=>z(`99-99-9999`,{normalize:Nn,valid:jn,post:(e,t)=>e.length===8&&jn(e)?`${e.slice(4)}-${e.slice(2,4)}-${e.slice(0,2)}`:t,message:`Enter a valid date as DD-MM-YYYY`}),amount:Pn},Fn=Object.keys(B),In=e=>{let t=String(e).toLowerCase();return Object.hasOwn(B,t)?t:void 0},Ln=e=>kn.test(String(e))&&In(e)===void 0,Rn=/* @__PURE__ */ new Map;function V(e){if(e==null||e===``)return null;let t=String(e),n=Rn.get(t);return n===void 0&&(n=Ln(t)?z(t):Object.hasOwn(B,t)?B[t]?.()??null:null,Rn.set(t,n)),n}var H=(e,t)=>e.normalize?e.normalize(t):t;function zn(e,t){let n=V(e);return n?n.extract(H(n,String(t??``))):String(t??``)}function Bn(e,t){let n=V(e);if(!n)return String(t??``);let r=n.extract(H(n,String(t??``)));return n.post(r,n.layout(r).text)}function Vn(e,t){let n=V(e);return n?n.layout(n.extract(H(n,String(t??``)))).text:String(t??``)}var Hn=(e,t)=>{if(t<=0)return 0;let n=0;for(let r=0;r<e.length;r++)if(e[r]&&++n===t)return r+1;return e.length},U=/* @__PURE__ */ new WeakMap,Un=e=>U.get(e)?.(),Wn=/* @__PURE__ */ new WeakMap;function Gn(e,t,n,r){let i=e.getAll(t),a=Wn.get(e)??/* @__PURE__ */ new Set;Wn.set(e,a);let o=i.findIndex((e,r)=>e===n&&!a.has(`${t}\u0000${r}`));if(!(o<0)){if(a.add(`${t}\u0000${o}`),i[o]=r,i.length===1)e.set(t,r);else{e.delete(t);for(let n of i)e.append(t,n)}}}function Kn(e){let t=null,n=null,r=!1,i=(t,n)=>{n===null?e.removeAttribute(t):n!==void 0&&e.setAttribute(t,n)},a,o,s=()=>{t?.remove(),t=null,n&&(n.hidden=!1),n=null,r&&e.classList.remove(`error`),r=!1,i(`aria-invalid`,a),i(`aria-describedby`,o),a=void 0,o=void 0};return i=>{if(!i){s();return}let c=e.closest(`.field`),l=c instanceof HTMLElement?c:null,u=l?.querySelector(`.field-error`);if(!(u&&u!==t&&u.textContent?.trim())){if(!t){if(r=!e.classList.contains(`error`),e.classList.add(`error`),a=e.getAttribute(`aria-invalid`),o=e.getAttribute(`aria-describedby`),l){t=document.createElement(`div`),t.className=`field-error`,e.id&&(t.id=`${e.id}-error`);let r=l.querySelector(`.field-hint`);n=r instanceof HTMLElement?r:null,n&&(n.hidden=!0),l.insertBefore(t,[...l.children].find(e=>e.classList.contains(`field-count`))??null),t.id&&e.setAttribute(`aria-describedby`,t.id)}e.setAttribute(`aria-invalid`,`true`)}t&&(t.textContent=i)}}}function qn(t,{mask:n,postFormatted:r=!1,onChange:i,onInvalidChange:a}={}){let o=V(n);if(!o||!R.has(t.type))return()=>{};let s=Object.getPrototypeOf(t),c=Object.getOwnPropertyDescriptor(s,`value`);if(!c?.set)throw Error(`input value setter missing`);let l=c.set,u=!t.hasAttribute(`inputmode`);u&&t.setAttribute(`inputmode`,o.inputMode);let d=a??Kn(t),f=null,p=!1,m=!1,h=!1,g=``,_=``,v,y=()=>{let e=h?g:``;e!==_&&(_=e,d(_))},b=(e,n,r)=>{let a=o.extract(e.slice(0,n)).length,s=o.extract(e),{text:c,isRaw:u}=o.layout(s);if(t.value!==c&&(l.call(t,c),document.activeElement===t&&R.has(t.type))){let e=Hn(u,a);t.setSelectionRange(e,e)}t.dataset.maskRaw=s,g=s&&!o.isValid(s)?o.message:``,t.setCustomValidity(g),y(),r&&s!==f&&i?.(s,c),f=s},x=Object.getOwnPropertyDescriptor(t,`value`),S=x??c;Object.defineProperty(t,"value",{configurable:!0,...S.enumerable===void 0?{}:{enumerable:S.enumerable},get:()=>e(S.get,`input value getter missing`).call(t),set:n=>{if(e(S.set,`input value setter missing`).call(t,n),m)return;let r=H(o,t.value);b(r,r.length,!0)}});let C=()=>{p=!0,t.dispatchEvent(new Event(`input`,{bubbles:!0})),p=!1},w=e=>{let n=e instanceof InputEvent?e:null;if(p||m||n?.isComposing)return;let r=n?.inputType===`insertText`&&(n.data?.length??0)<=1||n?.inputType?.startsWith(`delete`)?t.value:H(o,t.value);b(r,t.selectionStart??r.length,!0)},T=()=>{m=!0},E=()=>{m=!1;let e=H(o,t.value);b(e,t.selectionStart??e.length,!0),C()},D=e=>{let n=e.inputType===`deleteContentBackward`;if(!n&&e.inputType!==`deleteContentForward`||e.isComposing)return;let r=t.selectionStart;if(r==null||r!==t.selectionEnd)return;let{isRaw:i}=o.layout(o.extract(t.value)),a=n?r-1:r;for(;a>=0&&a<i.length&&!i[a];)a+=n?-1:1;a!==(n?r-1:r)&&(e.preventDefault(),a<0||a>=i.length||(b(t.value.slice(0,a)+t.value.slice(a+1),n?a:r,!0),C()))},O=e=>{if(t.readOnly||t.disabled)return;let n=e.clipboardData?.getData(`text`);if(n==null)return;e.preventDefault();let r=H(o,n),i=t.selectionStart??t.value.length,a=t.selectionEnd??i;b(t.value.slice(0,i)+r+t.value.slice(a),i+r.length,!0),C()},k=()=>{let e=o.extract(t.value);return o.post(e,o.layout(e).text)},A=()=>{h=!0,y()};t.addEventListener(`input`,w),t.addEventListener(`beforeinput`,D),t.addEventListener(`paste`,O),t.addEventListener(`compositionstart`,T),t.addEventListener(`compositionend`,E),t.addEventListener(`blur`,A),t.addEventListener(`invalid`,A);let j=t.form,M=e=>{t.name&&!t.disabled&&Gn(e.formData,t.name,t.value,k())},N=()=>{clearTimeout(v),v=setTimeout(()=>{h=!1,b(H(o,t.value),t.value.length,!0)},0)};r||(j?.addEventListener(`formdata`,M),U.set(t,k)),j?.addEventListener(`reset`,N),j?.addEventListener(`submit`,A);let P=H(o,t.value);return b(P,P.length,!1),()=>{clearTimeout(v),t.removeEventListener(`input`,w),t.removeEventListener(`beforeinput`,D),t.removeEventListener(`paste`,O),t.removeEventListener(`compositionstart`,T),t.removeEventListener(`compositionend`,E),t.removeEventListener(`blur`,A),t.removeEventListener(`invalid`,A),j?.removeEventListener(`formdata`,M),j?.removeEventListener(`reset`,N),j?.removeEventListener(`submit`,A),U.delete(t),x?Object.defineProperty(t,"value",x):Reflect.deleteProperty(t,`value`),h=!1,g=``,y(),t.setCustomValidity(``),delete t.dataset.maskRaw,u&&t.removeAttribute(`inputmode`)}}function Jn(){let e=typeof window>`u`?void 0:window.jQuery?.validator?.prototype;if(!e||e.wuiMaskHook)return;let t=e.elementValue;e.elementValue=function(e){let n=Un(e);return n===void 0?t.call(this,e):n},e.wuiMaskHook=!0}var W=/* @__PURE__ */ new WeakMap,G,Yn=e=>{W.has(e)||W.set(e,qn(e,{mask:e.dataset.appMask,postFormatted:e.hasAttribute(`data-mask-post-formatted`)}))},Xn=e=>[...e.querySelectorAll(`input[data-app-mask]`)].filter(e=>e instanceof HTMLInputElement),Zn=e=>e instanceof Element?[...e instanceof HTMLInputElement&&e.matches(`input[data-app-mask]`)?[e]:[],...Xn(e)]:[];function Qn(){G||typeof MutationObserver>`u`||(G=new MutationObserver(e=>{for(let t of e){for(let e of t.removedNodes)for(let t of Zn(e))W.get(t)?.(),W.delete(t);for(let e of t.addedNodes)for(let t of Zn(e))Yn(t)}}),G.observe(document.documentElement,{childList:!0,subtree:!0}))}function $n(e=document){Jn();for(let t of Xn(e))Yn(t);e===document&&Qn()}function er(e){if(!e)return;let t=e.querySelector(`[aria-current="page"]`);if(!t)return;let n=t.getBoundingClientRect();if(n.height===0)return;let r=e.getBoundingClientRect(),i=r.height,a=t=>t.top-r.top-e.clientTop+e.scrollTop,o=a(n),s=o+n.height,c=(t.closest(`.app-nav-group`)?.querySelector(`:scope > .app-nav-group-label`))?.getBoundingClientRect(),l;if(c&&c.height>0)l=Math.min(Math.max(a(c),s-i),o);else if(o<e.scrollTop)l=o;else if(s>e.scrollTop+i)l=s-i;else return;e.scrollTop=Math.max(0,l)}var K={minLength:10,uppercase:!0,lowercase:!0,digit:!0,special:!0,uniqueChars:0,customRules:[]},tr=`Password requirements`;function nr(e){return e===!0||e==null?{...K}:{...K,...e}}function rr(e){let t=nr(e),n=[];if(t.minLength>0&&n.push({key:`length`,label:`At least ${t.minLength} characters long`,test:e=>e.length>=t.minLength}),t.uppercase&&n.push({key:`uppercase`,label:`At least one uppercase letter`,test:e=>/[A-Z]/.test(e)}),t.lowercase&&n.push({key:`lowercase`,label:`At least one lowercase letter`,test:e=>/[a-z]/.test(e)}),t.digit&&n.push({key:`digit`,label:`At least one digit`,test:e=>/[0-9]/.test(e)}),t.special&&n.push({key:`special`,label:`At least one special character`,test:e=>/[^A-Za-z0-9]/.test(e)}),t.uniqueChars>0){let e=t.uniqueChars;n.push({key:`unique`,label:`At least ${e} unique character${e>1?`s`:``}`,test:t=>new Set(t).size>=e})}for(let[e,r]of(t.customRules??[]).entries()){let t=new RegExp(r.pattern);n.push({key:`custom-${e}`,label:r.label,test:e=>t.test(e)})}return n}function ir(e,t){let n=e==null?``:String(e);return rr(t).map(e=>({key:e.key,label:e.label,met:e.test(n)}))}function ar(e,t){return ir(e,t).every(e=>e.met)}var q=`.table-wrap, .table-responsive, [class*="table-responsive-"]`,J=1;function or(e){let t=()=>{let t=e.scrollWidth-e.clientWidth,n=Math.abs(e.scrollLeft);e.toggleAttribute(`data-wui-overflow-start`,t>J&&n>J),e.toggleAttribute(`data-wui-overflow-end`,t>J&&n<t-J),e.toggleAttribute(`data-wui-overflow-top`,e.scrollTop>J)},n=()=>{if(e.scrollWidth-e.clientWidth>J){let t=getComputedStyle(e);e.style.setProperty(`--wui-scroll-pad-start`,t.paddingInlineStart),e.style.setProperty(`--wui-scroll-pad-end`,t.paddingInlineEnd)}else e.style.getPropertyValue(`--wui-scroll-pad-end`)&&(e.style.removeProperty(`--wui-scroll-pad-start`),e.style.removeProperty(`--wui-scroll-pad-end`))},r=()=>{n(),t()};e.addEventListener(`scroll`,t,{passive:!0});let i=null;if(typeof ResizeObserver<`u`){i=new ResizeObserver(r),i.observe(e);for(let t of e.children)i.observe(t)}return r(),()=>{e.removeEventListener(`scroll`,t),i?.disconnect(),e.removeAttribute(`data-wui-overflow-start`),e.removeAttribute(`data-wui-overflow-end`),e.removeAttribute(`data-wui-overflow-top`),e.style.getPropertyValue(`--wui-scroll-pad-end`)&&(e.style.removeProperty(`--wui-scroll-pad-start`),e.style.removeProperty(`--wui-scroll-pad-end`))}}var Y=/* @__PURE__ */ new WeakMap,X,sr=e=>{Y.has(e)||Y.set(e,or(e))},cr=e=>{if(!(e instanceof HTMLElement))return[];let t=e.matches(`.table-wrap, .table-responsive, [class*="table-responsive-"]`)?[e]:[];if(e.firstElementChild===null)return t;let n=[...e.querySelectorAll(q)].filter(e=>e instanceof HTMLElement);return[...t,...n]};function lr(){X||typeof MutationObserver>`u`||(X=new MutationObserver(e=>{for(let t of e){for(let e of t.removedNodes)for(let t of cr(e))Y.get(t)?.(),Y.delete(t);for(let e of t.addedNodes)for(let t of cr(e))sr(t)}}),X.observe(document.documentElement,{childList:!0,subtree:!0}))}function ur(e=document){for(let t of e.querySelectorAll(q))t instanceof HTMLElement&&sr(t);e===document&&lr()}var dr=`data-wui-submit-once`,Z=`data-wui-submit-pending`,Q=`wui-submit-spinner`,fr=/* @__PURE__ */ new WeakSet,$=/* @__PURE__ */ new WeakMap;function pr(e){return e instanceof HTMLButtonElement||e instanceof HTMLInputElement?e:null}function mr(e){if(e.setAttribute(`aria-busy`,`true`),e.tagName===`INPUT`||e.querySelector(`.${Q}`))return;let t=e.ownerDocument.createElement(`span`);t.className=`spinner-border spinner-border-sm me-2 ${Q}`,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function hr(e){e.removeAttribute(`aria-busy`),e.querySelector(`.${Q}`)?.remove()}function gr(e){return e.method===`post`&&e.target!==`_blank`&&e.getAttribute(`data-wui-submit-once`)!==`off`}function _r(e){let t=e.target;if(!(t instanceof HTMLFormElement)||!gr(t))return;if(t.hasAttribute(Z)){e.preventDefault();return}t.setAttribute(Z,``);let n=pr(e.submitter);setTimeout(()=>{t.hasAttribute(Z)&&(e.defaultPrevented?t.removeAttribute(Z):n&&(n.disabled=!0,mr(n),$.set(t,n)))},0)}var vr=e=>[...e.querySelectorAll(`form[${Z}]`)].filter(e=>e instanceof HTMLFormElement);function yr(e){for(let t of vr(e)){t.removeAttribute(Z);let e=$.get(t);e&&(e.disabled=!1,hr(e),$.delete(t))}}function br(e){let t=e.ownerDocument===null?e:e.ownerDocument;fr.has(t)||(fr.add(t),t.addEventListener(`submit`,_r,!0),t.defaultView?.addEventListener(`pageshow`,()=>yr(t)))}export{Yt as AVATAR_ACCEPT,Xt as AVATAR_MAX_SIZE_MB,Zt as AVATAR_OUTPUT_SIZE,Qt as AVATAR_OUTPUT_TYPE,$t as AVATAR_PREVIEW_SIZES,F as AVATAR_TEXT,_e as COLUMN_MAX_WIDTH,fe as COLUMN_MIN_WIDTH,rn as COMMAND_SHORTCUT_ATTRIBUTE,r as COMMENT_INTENTS,t as COMMENT_REACTIONS,n as COMMENT_TEXT,a as COPY_FEEDBACK_MS,x as CURRENCIES,C as CURRENCY_SYMBOLS,he as DATA_TABLE_TEXT,g as DATE_PATTERNS,T as DEFAULT_CURRENCY,pn as DEFAULT_IMAGE_ACCEPT,mn as DEFAULT_MAX_SIZE_MB,K as DEFAULT_PASSWORD_RULES,tr as DEFAULT_REQUIREMENTS_TITLE,xt as DEFAULT_THEME_EFFECT,gt as DEFAULT_THEME_STORAGE_KEY,y as DURATION_UNITS,p as EMPTY_VALUE,s as FORMAT_STYLES,De as INLINE_EDIT_SAVED_MS,Te as INLINE_EDIT_TEXT,Ee as INLINE_EDIT_TYPES,Jt as IST_TIME_ZONE,Ve as KANBAN_DRAG_THRESHOLD_PX,Ie as KANBAN_LONG_PRESS_MS,ze as KANBAN_PHONE_QUERY,Ne as KANBAN_STORAGE_PREFIX,Oe as KANBAN_SUMMARY_FORMATS,Le as KANBAN_TEXT,Be as KANBAN_TONES,Lt as LIST_KEYS,R as MASK_INPUT_TYPES,Fn as MASK_NAMES,Je as MENTION_ID_PATTERN,_ as MONEY_UNITS,nt as NOTIFICATION_COUNT_CAP,Qe as NOTIFICATION_TEXT,se as PIN_AT_VAR,ee as PIN_SIDES,ot as RELATIVE_LIMIT_DAYS,pe as RESIZE_STEP,ge as RESIZE_STEP_LARGE,ne as ROW_HEIGHTS,ue as ROW_MOVE_LIMIT,ve as ROW_MOVE_MS,re as ROW_SAVE_ATTR,ie as ROW_SAVE_ERROR_CLASS,me as ROW_SAVE_STATES,q as SCROLL_EDGE_SELECTOR,Mt as SELECT_KEY,Ft as SHORTCUTS_OFF_ATTRIBUTE,kt as SHORTCUT_EVENT,Tt as SHORTCUT_SCOPE_ATTRIBUTE,Nt as SHORTCUT_TEXT,dr as SUBMIT_ONCE_ATTRIBUTE,yt as THEME_CHANGE_EVENT,pt as THEME_EFFECTS,st as THEME_EFFECT_DURATION,_t as THEME_MODES,bt as THEME_SWITCHING_CLASS,de as VIRTUAL_OVERSCAN,En as acceptDroppedFiles,Cn as acceptLabel,ct as applyTheme,It as ariaKeyShortcuts,Dn as attachFileDrop,qn as attachInputMask,Ct as attachRowDrag,or as attachScrollEdges,nn as avatarCropOptions,tn as avatarUnreadableMessage,rr as buildPasswordRules,oe as clampColumnWidth,i as copyTextToClipboard,Ht as createLocalSeenStore,c as currencyPrefix,Bt as deriveStepStatus,ir as evaluatePassword,b as formatCompact,l as formatCurrency,m as formatDate,S as formatDateTime,u as formatDuration,bn as formatFileSize,Vn as formatMasked,d as formatNumber,v as formatPercent,it as formatRelativeTime,h as formatValue,Ce as glyphSvg,ae as groupCount,P as groupItems,et as groupNotificationsByDay,ye as identityCell,Et as inShortcutScope,un as initCommandShortcuts,$n as initInputMasks,ur as initScrollEdges,br as initSubmitOnce,we as inlineEditText,sn as isCommandChord,w as isCurrencyCode,dn as isElementDefined,en as isHeicFile,vn as isImageFile,Sn as isImageOnlyAccept,Ln as isMaskPattern,xn as isPdfFile,Wt as isTimeZone,At as isTypingTarget,ke as kanbanCardLabel,Pe as kanbanOverflow,He as kanbanStorageKey,Ae as kanbanSummaryFormat,je as kanbanVisibleLimit,Un as maskedPostValue,Vt as matchSegments,wn as matchesAccept,Se as measureRows,Ge as mentionLabel,qe as mentionTextFromValue,We as mentionValueFromText,Ue as mentionedIds,Rt as moveFocus,mt as nextTheme,Ze as notificationCountText,Ye as notificationDayHeading,$e as notificationTime,tt as notificationTriggerLabel,Xe as notificationUnreadAnnouncement,Ke as parseMentionValue,ar as passwordSatisfies,te as pinAtValue,xe as pinClasses,M as pinOffsetVar,D as planPins,be as playRowMoves,Bn as postedMasked,zn as rawMasked,N as readColumnWidths,Re as readKanbanCollapsed,St as readStoredTheme,at as relativeTimeTitle,V as resolveMask,lt as resolveTheme,er as revealActiveNavItem,k as rowLabel,O as rowOrderChanged,Dt as runShortcut,j as saveOutcomeText,le as setRowSaveState,E as settledRows,Ot as shortcutKey,Pt as shortcutName,jt as shortcutsOff,zt as stepperHeaderItems,ut as storeTheme,Fe as sumKanbanValues,wt as syncTargets,vt as themeBootScript,ht as themeKeyframes,f as timeZoneLabel,o as toInstant,Kt as todayIn,ft as transitionTheme,Tn as validateFile,ce as virtualRange,Ut as wallClockOf,dt as watchSystemTheme,fn as whenElementDefined,rt as withTrustedLabel,A as writeColumnWidths,Me as writeKanbanCollapsed,Gt as zoneOffsetMs,qt as zoneParts};
1
+ import{r as e}from"./dom-Do1pAA12.js";import{n as t,r as n,t as r}from"./commentText-BnX7rA2-.js";import{n as i,t as a}from"./copyText-Q-QZKBmx.js";import{_ as o,a as s,b as c,c as l,d as u,f as d,g as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,x as w,y as T}from"./formatters-ljfITOZ3.js";import{A as E,C as D,D as O,E as k,M as A,O as j,S as M,T as N,_ as P,a as ee,b as te,c as ne,d as re,f as ie,g as ae,h as oe,i as se,j as ce,k as le,l as ue,m as de,n as fe,o as pe,p as me,r as he,s as ge,t as _e,u as ve,v as ye,w as be,x as xe,y as Se}from"./dataTable-CcH1lBIM.js";import{t as Ce}from"./iconGlyphs.g-DPqoOoXy.js";import{i as we,n as Te,r as Ee,t as De}from"./inlineEditText-CsLCQbcg.js";import{a as Oe,c as ke,d as Ae,f as je,h as Me,i as Ne,l as Pe,m as Fe,n as Ie,o as Le,p as Re,r as ze,s as Be,t as Ve,u as He}from"./kanbanModel-BaT75e-b.js";import{a as Ue,i as We,n as Ge,o as Ke,r as qe,t as Je}from"./mentionText-BJsw_opZ.js";import{a as Ye,c as Xe,i as Ze,n as Qe,o as $e,r as et,s as tt,t as nt}from"./notificationDays-BIWczft0.js";import{o as rt}from"./optionLabel-4xjXWy74.js";import{n as it,r as at,t as ot}from"./relativeTime-BahImc8F.js";import{a as st,c as ct,d as lt,f as ut,g as dt,h as ft,i as pt,l as mt,m as ht,n as gt,o as _t,p as vt,r as yt,s as bt,t as xt,u as St,v as Ct,y as wt}from"./themeTransition-CfrJtERx.js";import{a as Tt,c as Et,d as Dt,f as Ot,i as kt,l as At,m as jt,n as Mt,o as Nt,p as Pt,r as Ft,s as It,t as Lt,u as Rt}from"./shortcutKeys-COVLox98.js";import{n as zt,t as Bt}from"./stepperHeader-yinJ_7Dk.js";import{t as Vt}from"./textMatch-wdY7XLIc.js";import{t as Ht}from"./tourSeenStore-z0Y_Znzx.js";import{i as Ut,n as Wt,o as Gt,r as Kt,s as qt,t as Jt}from"./zone-BR02ZkHF.js";var Yt=`image/jpeg,image/png,image/webp,image/heic,image/heif,.heic,.heif`,Xt=10,Zt=512,Qt=`image/webp`,$t=[96,48],F={dialogTitle:`Edit photo`,dialogSubtitle:`Drag to position the photo, then zoom or rotate it.`,save:`Save photo`,cancel:`Cancel`,choose:`Upload photo`,change:`Change photo`,camera:`Take photo`,remove:`Remove photo`,unreadable:`That photo could not be opened. Choose a JPG, PNG or WebP image.`,heicUnreadable:`This browser cannot open HEIC photos. Choose a JPG, PNG or WebP image instead.`,cropFailed:`That photo could not be saved. Try again, or choose another one.`};function en(e){if(!e)return!1;let t=String(e.type||``).toLowerCase();return t===`image/heic`||t===`image/heif`||/\.hei[cf]$/i.test(String(e.name||``))}function tn(e){return en(e)?F.heicUnreadable:F.unreadable}function nn(e,t){let n=Number(t);return{name:e?.name||`photo`,type:Qt,size:Number.isInteger(n)&&n>0?n:512}}var rn=`data-wui-command-shortcut`,an=`k`,on=/* @__PURE__ */ new WeakSet;function sn(e,t){return!(e.ctrlKey||e.metaKey)||e.altKey||e.shiftKey||e.repeat?!1:String(e.key).toLowerCase()===String(t).toLowerCase()}function cn(e){return e.nodeType===Node.DOCUMENT_NODE}function ln(t){let n=e(window.bootstrap?.Modal,`data-wui-command-shortcut: Bootstrap's bundle (window.bootstrap) is not loaded on this page.`),r=t.closest(`.modal`);r&&n.getOrCreateInstance(r).show()}function un(e){let t=cn(e)?e:e.ownerDocument;!on.has(t)&&e.querySelector(`[data-wui-command-shortcut]`)&&(on.add(t),t.addEventListener(`keydown`,e=>{for(let n of t.querySelectorAll(`[${rn}]`))if(sn(e,n.getAttribute(`data-wui-command-shortcut`)||an)){e.preventDefault(),n.localName===`wui-command-palette`||n.classList.contains(`modal`)?ln(n):(n.focus(),`select`in n&&typeof n.select==`function`&&n.select());return}}))}function dn(e){return typeof customElements<`u`&&customElements.get(e)!==void 0}async function fn(e){await customElements.whenDefined(e)}var pn=`image/png,image/jpeg,image/webp`,mn=5,hn={"image/png":[`.png`],"image/jpeg":[`.jpg`,`.jpeg`],"image/webp":[`.webp`],"image/gif":[`.gif`],"image/svg+xml":[`.svg`],"image/heic":[`.heic`],"image/heif":[`.heif`],"application/pdf":[`.pdf`],"text/plain":[`.txt`]},gn={"image/png":`PNG`,"image/jpeg":`JPG`,"image/webp":`WEBP`,"image/gif":`GIF`,"image/svg+xml":`SVG`,"image/heic":`HEIC`,"image/heif":`HEIC`,"application/pdf":`PDF`,"text/plain":`text file`,"image/*":`images`,"video/*":`videos`,"audio/*":`audio`,".png":`PNG`,".jpg":`JPG`,".jpeg":`JPG`,".webp":`WEBP`,".gif":`GIF`,".svg":`SVG`,".heic":`HEIC`,".heif":`HEIC`,".pdf":`PDF`,".txt":`text file`},I=e=>String(e||``).split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean),_n=[`.png`,`.jpg`,`.jpeg`,`.webp`,`.gif`,`.svg`,`.bmp`,`.avif`,`.heic`,`.heif`];function vn(e){if(!e)return!1;let t=typeof e==`object`&&e.type?String(e.type).toLowerCase():``;if(t)return t.startsWith(`image/`);let n=typeof e==`string`?e:e.name||e.url||``,r=String(n).toLowerCase();return _n.some(e=>r.endsWith(e))}var yn=[`KB`,`MB`,`GB`];function bn(e){if(e<1024)return`${e} B`;let t=e/1024,n=0;for(;t>=1024&&n<yn.length-1;)t/=1024,n+=1;return`${t.toFixed(1)} ${yn[n]}`}function xn(e){if(!e)return!1;let t=typeof e==`object`&&e.type?String(e.type).toLowerCase():``;if(t)return t===`application/pdf`;let n=typeof e==`string`?e:e.name||e.url||``;return String(n).toLowerCase().replace(/[?#][\s\S]*$/,``).endsWith(`.pdf`)}function Sn(e){let t=I(e);return t.length?t.every(e=>e.startsWith(`.`)?_n.includes(e):e===`image/*`||e.startsWith(`image/`)):!1}function Cn(e){let t=[];for(let n of I(e)){let e=gn[n]||(n.startsWith(`.`)?n.slice(1).toUpperCase():n.toUpperCase());t.includes(e)||t.push(e)}return t.length<=1?t[0]||`supported`:`${t.slice(0,-1).join(`, `)} or ${t[t.length-1]}`}function wn(e,t){let n=I(t);if(!n.length)return!0;let r=(e.type||``).toLowerCase(),i=(e.name||``).toLowerCase();return n.some(e=>e.startsWith(`.`)?i.endsWith(e):e.endsWith(`/*`)?r.startsWith(e.slice(0,-1)):r&&r===e?!0:!r&&(hn[e]||[]).some(e=>i.endsWith(e)))}function Tn(e,t={}){if(!e)return null;let n=t.accept===void 0?pn:t.accept,r=t.maxSizeMb===void 0?5:t.maxSizeMb;if(!wn(e,n)){let e=Cn(n),t=I(n).map(e=>[`images`,`videos`,`audio`].includes(gn[e]??``));return t.every(Boolean)?`Choose ${e}.`:t.some(Boolean)?`Choose ${e.endsWith(` file`)?`${e}s`:`${e} files`}.`:`Choose a ${e.endsWith(` file`)?e:`${e} file`}.`}return r!==null&&r>0&&e.size>r*1024*1024?`Keep the file under ${r} MB.`:null}function En(e,t){let n=Array.from(e||[]),r=t.multiple?n:n.slice(0,1),i=[],a=[];for(let e of r){let n=Tn(e,{accept:t.accept,maxSizeMb:t.maxSizeMb});n?a.push({file:e,message:n}):i.push(e)}return{files:i,rejections:a}}function Dn(e,t){let{overClass:n,isDisabled:r=()=>!1,onFiles:i,onReject:a,...o}=t,s=0,c=t=>e.classList.toggle(n,t),l=e=>{e.preventDefault(),r()||(s+=1,c(!0))},u=e=>{e.preventDefault(),r()||c(!0)},d=e=>{e.preventDefault(),r()||(s=Math.max(0,s-1),s===0&&c(!1))},f=e=>{if(e.preventDefault(),s=0,c(!1),r())return;let{files:t,rejections:n}=En(e.dataTransfer?.files,o);t.length&&i(t);let l=n[0];l&&a(l)};return e.addEventListener(`dragenter`,l),e.addEventListener(`dragover`,u),e.addEventListener(`dragleave`,d),e.addEventListener(`drop`,f),()=>{e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)}}var L=/[0-9]/,On={9:L,A:/[A-Za-z]/,"*":/[0-9A-Za-z]/},kn=/[9A*]/,R=/* @__PURE__ */ new Set([`text`,`tel`,`search`,`url`,`password`]),An=e=>{let t=e.replace(/\D/g,``);return t.length===12&&t.startsWith(`91`)?t.slice(2):t.length===11&&t.startsWith(`0`)?t.slice(1):e},jn=e=>{let t=Number(e.slice(0,2)),n=Number(e.slice(2,4)),r=Number(e.slice(4,8));if(r<1)return!1;let i=new Date(Date.UTC(r,n-1,t));return i.getUTCFullYear()===r&&i.getUTCMonth()===n-1&&i.getUTCDate()===t},Mn=e=>e.length<=3?e:`${e.slice(0,-3).replace(/\B(?=(\d{2})+(?!\d))/g,`,`)},${e.slice(-3)}`,Nn=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());return t?`${t[3]}-${t[2]}-${t[1]}`:e};function z(e,{upper:t=!1,normalize:n,valid:r,post:i=e=>e,message:a=`Enter the full value`}={}){let o=[...e].map(e=>{let t=On[e];return t?{re:t}:{lit:e}}),s=o.filter(e=>e.re).length;return{inputMode:o.every(e=>!e.re||e.re===L)?`numeric`:`text`,normalize:n,post:i,message:a,extract(e){let n=``,r=0;for(let i of e){for(;r<o.length&&o[r]?.lit!==void 0&&o[r]?.lit!==i;)r++;if(r>=o.length)break;let e=o[r];e?.lit===void 0?e?.re.test(i)&&(n+=t?i.toUpperCase():i,r++):r++}return n},layout(e){let t=``,n=[],r=0;for(let i=0;i<o.length&&r<e.length;i++){let a=o[i];a?.lit===void 0?(t+=e.charAt(r++),n.push(!0)):(t+=a.lit,n.push(!1))}return{text:t,isRaw:n}},isValid:e=>e.length===s&&(!r||r(e))}}function Pn(){return{inputMode:`decimal`,post:e=>e,message:`Enter a valid amount`,extract(e){let t=``,n=!1,r=0;for(let i of e)L.test(i)?n?r<2&&(t+=i,r++):t+=i:i===`.`&&!n&&(n=!0,t+=i);return t.startsWith(`.`)&&(t=`0${t}`),t.replace(/^0+(?=\d)/,``)},layout(e){let[t=``,n]=e.split(`.`),r=Mn(t)+(e.includes(`.`)?`.${n}`:``);return{text:r,isRaw:[...r].map(e=>e!==`,`)}},isValid:e=>/^\d+(\.\d{1,2})?$/.test(e)}}var B={"phone-in":()=>z(`99999 99999`,{normalize:An,valid:e=>/^[6-9]/.test(e),message:`Enter a 10-digit mobile number`}),pan:()=>z(`AAAAA9999A`,{upper:!0,valid:e=>/^[A-Z]{5}\d{4}[A-Z]$/.test(e),message:`Enter a valid PAN`}),gstin:()=>z(`99AAAAA9999A***`,{upper:!0,valid:e=>/^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/.test(e),message:`Enter a valid GSTIN`}),aadhaar:()=>z(`9999 9999 9999`,{valid:e=>/^[2-9]/.test(e),message:`Enter a valid 12-digit Aadhaar number`}),ifsc:()=>z(`AAAA*******`,{upper:!0,valid:e=>/^[A-Z]{4}0[A-Z0-9]{6}$/.test(e),message:`Enter a valid IFSC`}),"pin-code":()=>z(`999999`,{valid:e=>/^[1-9]/.test(e),message:`Enter a valid 6-digit PIN code`}),date:()=>z(`99-99-9999`,{normalize:Nn,valid:jn,post:(e,t)=>e.length===8&&jn(e)?`${e.slice(4)}-${e.slice(2,4)}-${e.slice(0,2)}`:t,message:`Enter a valid date as DD-MM-YYYY`}),amount:Pn},Fn=Object.keys(B),In=e=>{let t=String(e).toLowerCase();return Object.hasOwn(B,t)?t:void 0},Ln=e=>kn.test(String(e))&&In(e)===void 0,Rn=/* @__PURE__ */ new Map;function V(e){if(e==null||e===``)return null;let t=String(e),n=Rn.get(t);return n===void 0&&(n=Ln(t)?z(t):Object.hasOwn(B,t)?B[t]?.()??null:null,Rn.set(t,n)),n}var H=(e,t)=>e.normalize?e.normalize(t):t;function zn(e,t){let n=V(e);return n?n.extract(H(n,String(t??``))):String(t??``)}function Bn(e,t){let n=V(e);if(!n)return String(t??``);let r=n.extract(H(n,String(t??``)));return n.post(r,n.layout(r).text)}function Vn(e,t){let n=V(e);return n?n.layout(n.extract(H(n,String(t??``)))).text:String(t??``)}var Hn=(e,t)=>{if(t<=0)return 0;let n=0;for(let r=0;r<e.length;r++)if(e[r]&&++n===t)return r+1;return e.length},U=/* @__PURE__ */ new WeakMap,Un=e=>U.get(e)?.(),Wn=/* @__PURE__ */ new WeakMap;function Gn(e,t,n,r){let i=e.getAll(t),a=Wn.get(e)??/* @__PURE__ */ new Set;Wn.set(e,a);let o=i.findIndex((e,r)=>e===n&&!a.has(`${t}\u0000${r}`));if(!(o<0)){if(a.add(`${t}\u0000${o}`),i[o]=r,i.length===1)e.set(t,r);else{e.delete(t);for(let n of i)e.append(t,n)}}}function Kn(e){let t=null,n=null,r=!1,i=(t,n)=>{n===null?e.removeAttribute(t):n!==void 0&&e.setAttribute(t,n)},a,o,s=()=>{t?.remove(),t=null,n&&(n.hidden=!1),n=null,r&&e.classList.remove(`error`),r=!1,i(`aria-invalid`,a),i(`aria-describedby`,o),a=void 0,o=void 0};return i=>{if(!i){s();return}let c=e.closest(`.field`),l=c instanceof HTMLElement?c:null,u=l?.querySelector(`.field-error`);if(!(u&&u!==t&&u.textContent?.trim())){if(!t){if(r=!e.classList.contains(`error`),e.classList.add(`error`),a=e.getAttribute(`aria-invalid`),o=e.getAttribute(`aria-describedby`),l){t=document.createElement(`div`),t.className=`field-error`,e.id&&(t.id=`${e.id}-error`);let r=l.querySelector(`.field-hint`);n=r instanceof HTMLElement?r:null,n&&(n.hidden=!0),l.insertBefore(t,[...l.children].find(e=>e.classList.contains(`field-count`))??null),t.id&&e.setAttribute(`aria-describedby`,t.id)}e.setAttribute(`aria-invalid`,`true`)}t&&(t.textContent=i)}}}function qn(t,{mask:n,postFormatted:r=!1,onChange:i,onInvalidChange:a}={}){let o=V(n);if(!o||!R.has(t.type))return()=>{};let s=Object.getPrototypeOf(t),c=Object.getOwnPropertyDescriptor(s,`value`);if(!c?.set)throw Error(`input value setter missing`);let l=c.set,u=!t.hasAttribute(`inputmode`);u&&t.setAttribute(`inputmode`,o.inputMode);let d=a??Kn(t),f=null,p=!1,m=!1,h=!1,g=``,_=``,v,y=()=>{let e=h?g:``;e!==_&&(_=e,d(_))},b=(e,n,r)=>{let a=o.extract(e.slice(0,n)).length,s=o.extract(e),{text:c,isRaw:u}=o.layout(s);if(t.value!==c&&(l.call(t,c),document.activeElement===t&&R.has(t.type))){let e=Hn(u,a);t.setSelectionRange(e,e)}t.dataset.maskRaw=s,g=s&&!o.isValid(s)?o.message:``,t.setCustomValidity(g),y(),r&&s!==f&&i?.(s,c),f=s},x=Object.getOwnPropertyDescriptor(t,`value`),S=x??c;Object.defineProperty(t,"value",{configurable:!0,...S.enumerable===void 0?{}:{enumerable:S.enumerable},get:()=>e(S.get,`input value getter missing`).call(t),set:n=>{if(e(S.set,`input value setter missing`).call(t,n),m)return;let r=H(o,t.value);b(r,r.length,!0)}});let C=()=>{p=!0,t.dispatchEvent(new Event(`input`,{bubbles:!0})),p=!1},w=e=>{let n=e instanceof InputEvent?e:null;if(p||m||n?.isComposing)return;let r=n?.inputType===`insertText`&&(n.data?.length??0)<=1||n?.inputType?.startsWith(`delete`)?t.value:H(o,t.value);b(r,t.selectionStart??r.length,!0)},T=()=>{m=!0},E=()=>{m=!1;let e=H(o,t.value);b(e,t.selectionStart??e.length,!0),C()},D=e=>{let n=e.inputType===`deleteContentBackward`;if(!n&&e.inputType!==`deleteContentForward`||e.isComposing)return;let r=t.selectionStart;if(r==null||r!==t.selectionEnd)return;let{isRaw:i}=o.layout(o.extract(t.value)),a=n?r-1:r;for(;a>=0&&a<i.length&&!i[a];)a+=n?-1:1;a!==(n?r-1:r)&&(e.preventDefault(),a<0||a>=i.length||(b(t.value.slice(0,a)+t.value.slice(a+1),n?a:r,!0),C()))},O=e=>{if(t.readOnly||t.disabled)return;let n=e.clipboardData?.getData(`text`);if(n==null)return;e.preventDefault();let r=H(o,n),i=t.selectionStart??t.value.length,a=t.selectionEnd??i;b(t.value.slice(0,i)+r+t.value.slice(a),i+r.length,!0),C()},k=()=>{let e=o.extract(t.value);return o.post(e,o.layout(e).text)},A=()=>{h=!0,y()};t.addEventListener(`input`,w),t.addEventListener(`beforeinput`,D),t.addEventListener(`paste`,O),t.addEventListener(`compositionstart`,T),t.addEventListener(`compositionend`,E),t.addEventListener(`blur`,A),t.addEventListener(`invalid`,A);let j=t.form,M=e=>{t.name&&!t.disabled&&Gn(e.formData,t.name,t.value,k())},N=()=>{clearTimeout(v),v=setTimeout(()=>{h=!1,b(H(o,t.value),t.value.length,!0)},0)};r||(j?.addEventListener(`formdata`,M),U.set(t,k)),j?.addEventListener(`reset`,N),j?.addEventListener(`submit`,A);let P=H(o,t.value);return b(P,P.length,!1),()=>{clearTimeout(v),t.removeEventListener(`input`,w),t.removeEventListener(`beforeinput`,D),t.removeEventListener(`paste`,O),t.removeEventListener(`compositionstart`,T),t.removeEventListener(`compositionend`,E),t.removeEventListener(`blur`,A),t.removeEventListener(`invalid`,A),j?.removeEventListener(`formdata`,M),j?.removeEventListener(`reset`,N),j?.removeEventListener(`submit`,A),U.delete(t),x?Object.defineProperty(t,"value",x):Reflect.deleteProperty(t,`value`),h=!1,g=``,y(),t.setCustomValidity(``),delete t.dataset.maskRaw,u&&t.removeAttribute(`inputmode`)}}function Jn(){let e=typeof window>`u`?void 0:window.jQuery?.validator?.prototype;if(!e||e.wuiMaskHook)return;let t=e.elementValue;e.elementValue=function(e){let n=Un(e);return n===void 0?t.call(this,e):n},e.wuiMaskHook=!0}var W=/* @__PURE__ */ new WeakMap,G,Yn=e=>{W.has(e)||W.set(e,qn(e,{mask:e.dataset.appMask,postFormatted:e.hasAttribute(`data-mask-post-formatted`)}))},Xn=e=>[...e.querySelectorAll(`input[data-app-mask]`)].filter(e=>e instanceof HTMLInputElement),Zn=e=>e instanceof Element?[...e instanceof HTMLInputElement&&e.matches(`input[data-app-mask]`)?[e]:[],...Xn(e)]:[];function Qn(){G||typeof MutationObserver>`u`||(G=new MutationObserver(e=>{for(let t of e){for(let e of t.removedNodes)for(let t of Zn(e))W.get(t)?.(),W.delete(t);for(let e of t.addedNodes)for(let t of Zn(e))Yn(t)}}),G.observe(document.documentElement,{childList:!0,subtree:!0}))}function $n(e=document){Jn();for(let t of Xn(e))Yn(t);e===document&&Qn()}function er(e){if(!e)return;let t=e.querySelector(`[aria-current="page"]`);if(!t)return;let n=t.getBoundingClientRect();if(n.height===0)return;let r=e.getBoundingClientRect(),i=r.height,a=t=>t.top-r.top-e.clientTop+e.scrollTop,o=a(n),s=o+n.height,c=(t.closest(`.app-nav-group`)?.querySelector(`:scope > .app-nav-group-label`))?.getBoundingClientRect(),l;if(c&&c.height>0)l=Math.min(Math.max(a(c),s-i),o);else if(o<e.scrollTop)l=o;else if(s>e.scrollTop+i)l=s-i;else return;e.scrollTop=Math.max(0,l)}var K={minLength:10,uppercase:!0,lowercase:!0,digit:!0,special:!0,uniqueChars:0,customRules:[]},tr=`Password requirements`;function nr(e){return e===!0||e==null?{...K}:{...K,...e}}function rr(e){let t=nr(e),n=[];if(t.minLength>0&&n.push({key:`length`,label:`At least ${t.minLength} characters long`,test:e=>e.length>=t.minLength}),t.uppercase&&n.push({key:`uppercase`,label:`At least one uppercase letter`,test:e=>/[A-Z]/.test(e)}),t.lowercase&&n.push({key:`lowercase`,label:`At least one lowercase letter`,test:e=>/[a-z]/.test(e)}),t.digit&&n.push({key:`digit`,label:`At least one digit`,test:e=>/[0-9]/.test(e)}),t.special&&n.push({key:`special`,label:`At least one special character`,test:e=>/[^A-Za-z0-9]/.test(e)}),t.uniqueChars>0){let e=t.uniqueChars;n.push({key:`unique`,label:`At least ${e} unique character${e>1?`s`:``}`,test:t=>new Set(t).size>=e})}for(let[e,r]of(t.customRules??[]).entries()){let t=new RegExp(r.pattern);n.push({key:`custom-${e}`,label:r.label,test:e=>t.test(e)})}return n}function ir(e,t){let n=e==null?``:String(e);return rr(t).map(e=>({key:e.key,label:e.label,met:e.test(n)}))}function ar(e,t){return ir(e,t).every(e=>e.met)}var q=`.table-wrap, .table-responsive, [class*="table-responsive-"]`,J=1;function or(e){let t=()=>{let t=e.scrollWidth-e.clientWidth,n=Math.abs(e.scrollLeft);e.toggleAttribute(`data-wui-overflow-start`,t>J&&n>J),e.toggleAttribute(`data-wui-overflow-end`,t>J&&n<t-J),e.toggleAttribute(`data-wui-overflow-top`,e.scrollTop>J)},n=()=>{if(e.scrollWidth-e.clientWidth>J){let t=getComputedStyle(e);e.style.setProperty(`--wui-scroll-pad-start`,t.paddingInlineStart),e.style.setProperty(`--wui-scroll-pad-end`,t.paddingInlineEnd)}else e.style.getPropertyValue(`--wui-scroll-pad-end`)&&(e.style.removeProperty(`--wui-scroll-pad-start`),e.style.removeProperty(`--wui-scroll-pad-end`))},r=()=>{n(),t()};e.addEventListener(`scroll`,t,{passive:!0});let i=null;if(typeof ResizeObserver<`u`){i=new ResizeObserver(r),i.observe(e);for(let t of e.children)i.observe(t)}return r(),()=>{e.removeEventListener(`scroll`,t),i?.disconnect(),e.removeAttribute(`data-wui-overflow-start`),e.removeAttribute(`data-wui-overflow-end`),e.removeAttribute(`data-wui-overflow-top`),e.style.getPropertyValue(`--wui-scroll-pad-end`)&&(e.style.removeProperty(`--wui-scroll-pad-start`),e.style.removeProperty(`--wui-scroll-pad-end`))}}var Y=/* @__PURE__ */ new WeakMap,X,sr=e=>{Y.has(e)||Y.set(e,or(e))},cr=e=>{if(!(e instanceof HTMLElement))return[];let t=e.matches(`.table-wrap, .table-responsive, [class*="table-responsive-"]`)?[e]:[];if(e.firstElementChild===null)return t;let n=[...e.querySelectorAll(q)].filter(e=>e instanceof HTMLElement);return[...t,...n]};function lr(){X||typeof MutationObserver>`u`||(X=new MutationObserver(e=>{for(let t of e){for(let e of t.removedNodes)for(let t of cr(e))Y.get(t)?.(),Y.delete(t);for(let e of t.addedNodes)for(let t of cr(e))sr(t)}}),X.observe(document.documentElement,{childList:!0,subtree:!0}))}function ur(e=document){for(let t of e.querySelectorAll(q))t instanceof HTMLElement&&sr(t);e===document&&lr()}var dr=`data-wui-submit-once`,Z=`data-wui-submit-pending`,Q=`wui-submit-spinner`,fr=/* @__PURE__ */ new WeakSet,$=/* @__PURE__ */ new WeakMap;function pr(e){return e instanceof HTMLButtonElement||e instanceof HTMLInputElement?e:null}function mr(e){if(e.setAttribute(`aria-busy`,`true`),e.tagName===`INPUT`||e.querySelector(`.${Q}`))return;let t=e.ownerDocument.createElement(`span`);t.className=`spinner-border spinner-border-sm me-2 ${Q}`,t.setAttribute(`aria-hidden`,`true`),e.prepend(t)}function hr(e){e.removeAttribute(`aria-busy`),e.querySelector(`.${Q}`)?.remove()}function gr(e){return e.method===`post`&&e.target!==`_blank`&&e.getAttribute(`data-wui-submit-once`)!==`off`}function _r(e){let t=e.target;if(!(t instanceof HTMLFormElement)||!gr(t))return;if(t.hasAttribute(Z)){e.preventDefault();return}t.setAttribute(Z,``);let n=pr(e.submitter);setTimeout(()=>{t.hasAttribute(Z)&&(e.defaultPrevented?t.removeAttribute(Z):n&&(n.disabled=!0,mr(n),$.set(t,n)))},0)}var vr=e=>[...e.querySelectorAll(`form[${Z}]`)].filter(e=>e instanceof HTMLFormElement);function yr(e){for(let t of vr(e)){t.removeAttribute(Z);let e=$.get(t);e&&(e.disabled=!1,hr(e),$.delete(t))}}function br(e){let t=e.ownerDocument===null?e:e.ownerDocument;fr.has(t)||(fr.add(t),t.addEventListener(`submit`,_r,!0),t.defaultView?.addEventListener(`pageshow`,()=>yr(t)))}export{Yt as AVATAR_ACCEPT,Xt as AVATAR_MAX_SIZE_MB,Zt as AVATAR_OUTPUT_SIZE,Qt as AVATAR_OUTPUT_TYPE,$t as AVATAR_PREVIEW_SIZES,F as AVATAR_TEXT,_e as COLUMN_MAX_WIDTH,fe as COLUMN_MIN_WIDTH,rn as COMMAND_SHORTCUT_ATTRIBUTE,r as COMMENT_INTENTS,t as COMMENT_REACTIONS,n as COMMENT_TEXT,a as COPY_FEEDBACK_MS,x as CURRENCIES,C as CURRENCY_SYMBOLS,he as DATA_TABLE_TEXT,g as DATE_PATTERNS,T as DEFAULT_CURRENCY,pn as DEFAULT_IMAGE_ACCEPT,mn as DEFAULT_MAX_SIZE_MB,K as DEFAULT_PASSWORD_RULES,tr as DEFAULT_REQUIREMENTS_TITLE,xt as DEFAULT_THEME_EFFECT,gt as DEFAULT_THEME_STORAGE_KEY,y as DURATION_UNITS,p as EMPTY_VALUE,s as FORMAT_STYLES,De as INLINE_EDIT_SAVED_MS,Te as INLINE_EDIT_TEXT,Ee as INLINE_EDIT_TYPES,Jt as IST_TIME_ZONE,Ve as KANBAN_DRAG_THRESHOLD_PX,Ie as KANBAN_LONG_PRESS_MS,ze as KANBAN_PHONE_QUERY,Ne as KANBAN_STORAGE_PREFIX,Oe as KANBAN_SUMMARY_FORMATS,Le as KANBAN_TEXT,Be as KANBAN_TONES,Lt as LIST_KEYS,R as MASK_INPUT_TYPES,Fn as MASK_NAMES,Je as MENTION_ID_PATTERN,_ as MONEY_UNITS,nt as NOTIFICATION_COUNT_CAP,Qe as NOTIFICATION_TEXT,se as PIN_AT_VAR,ee as PIN_SIDES,ot as RELATIVE_LIMIT_DAYS,pe as RESIZE_STEP,ge as RESIZE_STEP_LARGE,ne as ROW_HEIGHTS,ue as ROW_MOVE_LIMIT,ve as ROW_MOVE_MS,re as ROW_SAVE_ATTR,ie as ROW_SAVE_ERROR_CLASS,me as ROW_SAVE_STATES,q as SCROLL_EDGE_SELECTOR,Mt as SELECT_KEY,Ft as SHORTCUTS_OFF_ATTRIBUTE,kt as SHORTCUT_EVENT,Tt as SHORTCUT_SCOPE_ATTRIBUTE,Nt as SHORTCUT_TEXT,dr as SUBMIT_ONCE_ATTRIBUTE,yt as THEME_CHANGE_EVENT,pt as THEME_EFFECTS,st as THEME_EFFECT_DURATION,_t as THEME_MODES,bt as THEME_SWITCHING_CLASS,de as VIRTUAL_OVERSCAN,En as acceptDroppedFiles,Cn as acceptLabel,ct as applyTheme,It as ariaKeyShortcuts,Dn as attachFileDrop,qn as attachInputMask,Ct as attachRowDrag,or as attachScrollEdges,nn as avatarCropOptions,tn as avatarUnreadableMessage,rr as buildPasswordRules,oe as clampColumnWidth,i as copyTextToClipboard,Ht as createLocalSeenStore,c as currencyPrefix,Bt as deriveStepStatus,ir as evaluatePassword,b as formatCompact,l as formatCurrency,m as formatDate,S as formatDateTime,u as formatDuration,bn as formatFileSize,Vn as formatMasked,d as formatNumber,v as formatPercent,it as formatRelativeTime,h as formatValue,Ce as glyphSvg,ae as groupCount,P as groupItems,et as groupNotificationsByDay,ye as identityCell,Et as inShortcutScope,un as initCommandShortcuts,$n as initInputMasks,ur as initScrollEdges,br as initSubmitOnce,we as inlineEditText,sn as isCommandChord,w as isCurrencyCode,dn as isElementDefined,en as isHeicFile,vn as isImageFile,Sn as isImageOnlyAccept,Ln as isMaskPattern,xn as isPdfFile,Wt as isTimeZone,At as isTypingTarget,ke as kanbanCardLabel,Pe as kanbanOverflow,He as kanbanStorageKey,Ae as kanbanSummaryFormat,je as kanbanVisibleLimit,Un as maskedPostValue,Vt as matchSegments,wn as matchesAccept,Se as measureRows,Ge as mentionLabel,qe as mentionTextFromValue,We as mentionValueFromText,Ue as mentionedIds,Rt as moveFocus,mt as nextTheme,Ze as notificationCountText,Ye as notificationDayHeading,$e as notificationTime,tt as notificationTriggerLabel,Xe as notificationUnreadAnnouncement,Ke as parseMentionValue,ar as passwordSatisfies,te as pinAtValue,xe as pinClasses,M as pinOffsetVar,D as planPins,be as playRowMoves,Bn as postedMasked,zn as rawMasked,N as readColumnWidths,Re as readKanbanCollapsed,St as readStoredTheme,at as relativeTimeTitle,V as resolveMask,lt as resolveTheme,er as revealActiveNavItem,k as rowLabel,O as rowOrderChanged,Dt as runShortcut,j as saveOutcomeText,le as setRowSaveState,E as settledRows,Ot as shortcutKey,Pt as shortcutName,jt as shortcutsOff,zt as stepperHeaderItems,ut as storeTheme,Fe as sumKanbanValues,wt as syncTargets,vt as themeBootScript,ht as themeKeyframes,f as timeZoneLabel,o as toInstant,Kt as todayIn,ft as transitionTheme,Tn as validateFile,ce as virtualRange,Ut as wallClockOf,dt as watchSystemTheme,fn as whenElementDefined,rt as withTrustedLabel,A as writeColumnWidths,Me as writeKanbanCollapsed,Gt as zoneOffsetMs,qt as zoneParts};