@webority/ui-elements 0.143.0 → 0.144.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.
- package/dist/{WuiDrawer-BJ8zqtQ2.js → WuiDrawer-SkxcDhgf.js} +1 -1
- package/dist/drawerDiscard-DdoTN5aX.js +1 -0
- package/dist/elements/drawer.js +1 -1
- package/dist/helpers.js +1 -1
- package/dist/server.js +1 -1
- package/dist/ui-elements/carousel.global.js +1 -1
- package/dist/ui-elements/code-block.global.js +1 -1
- package/dist/ui-elements/command-palette.global.js +1 -1
- package/dist/ui-elements/comment-thread.global.js +1 -1
- package/dist/ui-elements/consent-banner.global.js +1 -1
- package/dist/ui-elements/context-menu.global.js +1 -1
- package/dist/ui-elements/date-range.global.js +1 -1
- package/dist/ui-elements/drawer.global.js +1 -1
- package/dist/ui-elements/image-crop.global.js +1 -1
- package/dist/ui-elements/inline-edit.global.js +1 -1
- package/dist/ui-elements/kanban.global.js +1 -1
- package/dist/ui-elements/lead-popup.global.js +1 -1
- package/dist/ui-elements/lightbox.global.js +1 -1
- package/dist/ui-elements/markdown.global.js +1 -1
- package/dist/ui-elements/org-tree.global.js +1 -1
- package/dist/ui-elements/phone.global.js +1 -1
- package/dist/ui-elements/resizable.global.js +1 -1
- package/dist/ui-elements/saved-views.global.js +1 -1
- package/dist/ui-elements/select-chips.global.js +1 -1
- package/dist/ui-elements/select-search.global.js +1 -1
- package/dist/ui-elements/slider.global.js +1 -1
- package/dist/ui-elements/sortable.global.js +1 -1
- package/dist/ui-elements/status-icon.global.js +1 -1
- package/dist/ui-elements/timepicker.global.js +1 -1
- package/dist/ui-elements/tour.global.js +1 -1
- package/dist/ui-elements/tree.global.js +1 -1
- package/dist/ui-elements/wizard.global.js +1 -1
- package/dist/ui-elements.global.js +18 -18
- package/dist/ui-elements.js +1 -1
- package/package.json +3 -3
- package/dist/drawerDiscard-B5J5OEeg.js +0 -1
package/dist/ui-elements.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./elementBase-DV9IZZCu.js";import{n as t}from"./filterPopover-DrwHiZiL.js";import{c as n}from"./kanban-D-ljbA4A.js";import{n as r}from"./statusIcons-Dt2ZVJyk.js";import{t as i}from"./WuiCarousel-C2NWcFxr.js";import{t as a}from"./WuiCodeBlock-CXBYH2Ej.js";import{t as o}from"./WuiCommandPalette-Bk9UuXmZ.js";import{i as s}from"./WuiCommentThread-ZXxBt71o.js";import{t as c}from"./WuiConsentBanner-CYOU67bp.js";import{t as l}from"./WuiContextMenu-BvDHn1cP.js";import{t as u}from"./WuiDataTable-XscBy1ct.js";import{t as d}from"./WuiDatePicker-_h8R3HSU.js";import{t as f}from"./WuiDateRange-BtkmxMSN.js";import{t as p}from"./WuiDock-Bd2ijOaJ.js";import{t as m}from"./WuiDrawer-
|
|
1
|
+
import{n as e}from"./elementBase-DV9IZZCu.js";import{n as t}from"./filterPopover-DrwHiZiL.js";import{c as n}from"./kanban-D-ljbA4A.js";import{n as r}from"./statusIcons-Dt2ZVJyk.js";import{t as i}from"./WuiCarousel-C2NWcFxr.js";import{t as a}from"./WuiCodeBlock-CXBYH2Ej.js";import{t as o}from"./WuiCommandPalette-Bk9UuXmZ.js";import{i as s}from"./WuiCommentThread-ZXxBt71o.js";import{t as c}from"./WuiConsentBanner-CYOU67bp.js";import{t as l}from"./WuiContextMenu-BvDHn1cP.js";import{t as u}from"./WuiDataTable-XscBy1ct.js";import{t as d}from"./WuiDatePicker-_h8R3HSU.js";import{t as f}from"./WuiDateRange-BtkmxMSN.js";import{t as p}from"./WuiDock-Bd2ijOaJ.js";import{t as m}from"./WuiDrawer-SkxcDhgf.js";import{t as h}from"./WuiHoverCard-sq6EZZYD.js";import{t as g}from"./WuiImageCrop-DzzzPagi.js";import{i as _}from"./WuiInlineEdit-CBw0bupF.js";import{t as v}from"./WuiLeadPopup-Dwmg7coE.js";import{t as y}from"./WuiLightbox-DCTE3ULH.js";import{t as b}from"./WuiMarkdown-DmgLFkB-.js";import{i as x}from"./WuiMentionInput-9iC7Tur2.js";import{t as S}from"./WuiNavigationMenu-CGqTADvr.js";import{t as C}from"./WuiNotificationCenter-CClYbyQ2.js";import{t as w}from"./WuiOnboardingChecklist-DXUETu1h.js";import{t as T}from"./WuiOrgTree-DuaBtFl9.js";import{t as E}from"./WuiOtp-BqWijfNj.js";import{t as D}from"./WuiOverflow-Bn68qgAQ.js";import{t as O}from"./WuiPhone-oEkvgH1D.js";import{t as k}from"./WuiRating-DhhqYj5Z.js";import{t as A}from"./WuiRecordPager-BOaFcs_W.js";import{t as j}from"./WuiRelativeTime-BG6rgUhw.js";import{t as M}from"./WuiResizable-mt9EMhjQ.js";import{t as N}from"./WuiRollingNumber-CF3H6l7t.js";import{t as P}from"./WuiSavedViews-KUVaYmGJ.js";import{t as F}from"./WuiSelect-BEhh06ZD.js";import{t as I}from"./WuiShortcuts-Cerbe67I.js";import{t as L}from"./WuiShowMore-D3VHRZJg.js";import{t as R}from"./WuiSlider-2kB__6zU.js";import{t as z}from"./WuiSortable-r5iZtzM1.js";import{t as B}from"./WuiTimePicker-CLS7ahpd.js";import{t as V}from"./WuiTour-D18C-wQP.js";import{t as H}from"./WuiTree-BZaGfmr9.js";import{t as U}from"./WuiTruncate-DyDQWMBu.js";import{n as W,t as ee}from"./WuiWhatsNew-Biolggw8.js";import{n as G,t as K}from"./WuiWizardStep-DB-BbyEO.js";import{c as q,f as J,l as Y,m as X,p as Z,s as Q,u as te}from"./formatters-Ba0CvsTs.js";import{_ as ne,r as re}from"./themeTransition-rHRVbhHB.js";import{t as ie}from"./drawerDiscard-DdoTN5aX.js";import{i as ae}from"./shortcutKeys-CvxSh3bV.js";function $(){t(),e(`wui-select`,F),e(`wui-saved-views`,P),e(`wui-phone`,O),e(`wui-datepicker`,d),e(`wui-date-range`,f),e(`wui-dock`,p),e(`wui-image-crop`,g),e(`wui-kanban`,n),e(`wui-lead-popup`,v),e(`wui-inline-edit`,_),e(`wui-consent-banner`,c),e(`wui-slider`,R),e(`wui-sortable`,z),e(`wui-timepicker`,B),e(`wui-tour`,V),e(`wui-tree`,H),e(`wui-org-tree`,T),e(`wui-command-palette`,o),e(`wui-context-menu`,l),e(`wui-otp`,E),e(`wui-status-icon`,r),e(`wui-shortcuts`,I),e(`wui-record-pager`,A),e(`wui-carousel`,i),e(`wui-code-block`,a),e(`wui-markdown`,b),e(`wui-data-table`,u),e(`wui-drawer`,m),e(`wui-hover-card`,h),e(`wui-lightbox`,y),e(`wui-navigation-menu`,S),e(`wui-notification-center`,C),e(`wui-onboarding-checklist`,w),e(`wui-overflow`,D),e(`wui-rating`,k),e(`wui-relative-time`,j),e(`wui-resizable`,M),e(`wui-rolling-number`,N),e(`wui-show-more`,L),e(`wui-truncate`,U),e(`wui-whats-new`,W),e(`wui-mention-input`,x),e(`wui-comment-thread`,s),e(`wui-wizard-step`,K),e(`wui-wizard`,G)}$();export{ie as DISCARD_EVENT,ne as ROW_DROP_EVENT,ae as SHORTCUT_EVENT,re as THEME_CHANGE_EVENT,ee as WHATS_NEW_READ_EVENT,i as WuiCarousel,a as WuiCodeBlock,o as WuiCommandPalette,s as WuiCommentThread,c as WuiConsentBanner,l as WuiContextMenu,u as WuiDataTable,d as WuiDatePicker,f as WuiDateRange,p as WuiDock,m as WuiDrawer,h as WuiHoverCard,g as WuiImageCrop,_ as WuiInlineEdit,n as WuiKanban,v as WuiLeadPopup,y as WuiLightbox,b as WuiMarkdown,x as WuiMentionInput,S as WuiNavigationMenu,C as WuiNotificationCenter,w as WuiOnboardingChecklist,T as WuiOrgTree,E as WuiOtp,D as WuiOverflow,O as WuiPhone,k as WuiRating,A as WuiRecordPager,j as WuiRelativeTime,M as WuiResizable,N as WuiRollingNumber,P as WuiSavedViews,F as WuiSelect,I as WuiShortcuts,L as WuiShowMore,R as WuiSlider,z as WuiSortable,r as WuiStatusIcon,B as WuiTimePicker,V as WuiTour,H as WuiTree,U as WuiTruncate,W as WuiWhatsNew,G as WuiWizard,K as WuiWizardStep,$ as defineWeborityElements,Q as formatCompact,q as formatCurrency,Y as formatDate,te as formatDateTime,J as formatNumber,Z as formatPercent,X as formatValue};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/ui-elements",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.144.0",
|
|
4
4
|
"description": "Webority framework-agnostic UI custom elements (<wui-*>) — the single implementation of the interactive components, styled by @webority/theme. Used natively in Razor and wrapped by @webority/ui-react.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|
|
@@ -99,8 +99,8 @@
|
|
|
99
99
|
"@tiptap/markdown": "3.31.4",
|
|
100
100
|
"@tiptap/starter-kit": "3.31.4",
|
|
101
101
|
"@vitest/coverage-v8": "5.0.1",
|
|
102
|
-
"@webority/markdown-core": "0.
|
|
103
|
-
"@webority/theme": "0.
|
|
102
|
+
"@webority/markdown-core": "0.144.0",
|
|
103
|
+
"@webority/theme": "0.144.0",
|
|
104
104
|
"echarts": "6.1.0",
|
|
105
105
|
"jsdom": "30.1.1",
|
|
106
106
|
"libphonenumber-js": "^1.13.9",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./buttonClass-DpG9WzgJ.js";import{t as n}from"./loader-CVFmEPjv.js";import{n as r,t as i}from"./devWarn-DXdRWZs3.js";import{l as a,s as o}from"./wuiHttp-DgnM7K2Q.js";import{E as s,k as c,r as l,w as u,y as ee}from"./dataTable-BGZc5iC1.js";import{t as d}from"./iconGlyphs.g-BlwTSNXS.js";import{LIST_QUERY_RESERVED as te,SEARCH_PARAM as f}from"./listQuery.js";function p(e,t){e&&(e.tip?.isConnected?(t.addEventListener(`hidden${e.constructor.EVENT_KEY}`,()=>e.dispose(),{once:!0}),e.hide()):e.dispose())}var m=`wui-remote-modal`,h=`wui-remote-drawer`,g=Object.freeze({sm:360,md:480,lg:640,xl:720}),_=`wui-modal-fullscreen`,v=Object.freeze({sm:380,md:440,lg:640,xl:880}),y=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.`}),b=`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"]`,x=`[aria-invalid="true"], .is-invalid, .input-validation-error`,S=`.wui-error-summary, [data-wui-form-errors], .validation-summary-errors, [data-valmsg-summary]`,C=`[data-wui-modal-content]`,re=`[data-wui-pane-close], [data-bs-dismiss="modal"]`,ie=`<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>`,w=/* @__PURE__ */ new WeakMap,T=/* @__PURE__ */ new WeakSet,E=()=>Object.assign(/* @__PURE__ */ Error(`The remote modal load was aborted.`),{name:`AbortError`}),ae=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},D=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML};function oe(e){if(e==null||e===``)return null;if(e===`fullscreen`)return{fullscreen:!0};if(Object.hasOwn(v,e))return{px:v[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 se=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:v.md}},O=(e,t)=>{e.classList.toggle(_,!!t.fullscreen),t.fullscreen?e.style.removeProperty(`--wui-modal-max-width`):e.style.setProperty(`--wui-modal-max-width`,`${t.px}px`)},ce=[`center`,`top`];function le(e){if(e==null||e===``)return null;if(Object.hasOwn(g,e))return{px:g[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 k=e=>e.container===`drawer`,A=e=>e.container===`pane`,j=e=>e.container!==`modal`,ue=(e,t)=>k(e)?le(t):oe(t),M=()=>document.getElementById(`wui-remote-drawer`)?.classList.contains(`show`)??!1,de=e=>{let t=typeof e==`string`?document.querySelector(e):e;return t?.matches?.(`[data-wui-pane-host]`)?t:null},fe=e=>A(e)?e.shell:e.shell.querySelector(`.modal-dialog`);function pe(e=`modal`){let t=e===`drawer`,n=t?h:m,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?g.md:v.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 me=e=>`<div class="wui-modal-header"><div class="wui-modal-heading"><div class="wui-modal-headtext"><div class="wui-modal-title">${D(e)}</div></div></div>${ie}</div>`,he=e=>`<div class="modal-content wui-modal" aria-busy="true">${me(e)}<div class="wui-modal-body"><div class="wui-modal-loading" role="status"><span class="visually-hidden">${D(y.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>`,N=(n,r)=>`<div class="modal-content wui-modal" data-wui-modal-error="${D(r)}">${me(n)}<div class="wui-modal-body"><div class="wui-modal-state" role="alert"><p class="wui-modal-state-title">${D(y.errorTitle)}</p><p class="wui-modal-state-text">${D(y[r]||y.server)}</p><div class="wui-modal-state-actions"><button type="button" class="${e(`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${D(y.close)}</button><button type="button" class="${e(`primary`,`md`)}" data-wui-modal-retry data-wui="${t}">${D(y.retry)}</button></div></div></div></div>`,ge=e=>{let t=document.createElement(`template`);return t.innerHTML=e,t.content.querySelector(`.modal-content`)},P=e=>e.shell.querySelector(`.modal-content`);function _e(e){if(!e)return;e.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0}));let t=window.bootstrap,n=[t?.Tooltip,t?.Popover].filter(e=>e?.getInstance);for(let r of[e,...e.querySelectorAll(`*`)]){for(let e of n)p(e.getInstance(r),r);t?.Dropdown?.getInstance?.(r)?.dispose()}}function F(e,t){let n=P(e),r=n?ye(n):/* @__PURE__ */ new Map;_e(n),n?n.replaceWith(t):fe(e).appendChild(t),be(t,r),window.WUI?.refresh?.()}var ve=`input[type="file"][name]`;function ye(e){let t=/* @__PURE__ */ new Map;for(let n of e.querySelectorAll(ve))n.files.length>0&&t.set(n.name,[...n.files]);return t}function be(e,t){if(t.size!==0&&typeof DataTransfer<`u`)for(let n of e.querySelectorAll(ve)){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 xe=e=>A(e)?!e.shell.hidden:e.shell.classList.contains(`show`);function I(e,t,n=!1){let r=t&&e.querySelector(x),i=r?r.matches(b)?r:r.querySelector(b)||r:null;if(!i&&n)i=e.querySelector(`[data-autofocus]`)||e.querySelector(ne)||e.querySelector(`.wui-modal-close`);else if(!i){let t=[...e.querySelectorAll(b)];i=e.querySelector(`[data-autofocus]`)||t.find(e=>!e.classList.contains(`wui-modal-close`))||t[0]||e}i?.focus?.()}function L(e,t){let n=[...e.querySelectorAll(b)].filter(e=>e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`);if(!n.length){t.preventDefault(),e.focus();return}let r=n[0],i=n[n.length-1],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 Se(e,t){let n=e.shell.querySelector(`[data-wui-modal-live]`);n||(n=document.createElement(`div`),n.className=`visually-hidden`,n.setAttribute(`aria-live`,`assertive`),n.setAttribute(`data-wui-modal-live`,``),fe(e).appendChild(n)),n.textContent=``,n.textContent=t}var Ce=e=>{let t=e.shell.querySelector(`[data-wui-modal-live]`);t&&(t.textContent=``)},we=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n}));function R(e,t,n,r){let i={...r,container:e.container};we(t,`wui:modal:${n}`,i),k(e)&&we(t,`wui:drawer:${n}`,i),A(e)&&we(t,`wui:pane:${n}`,i)}var Te=e=>e.matches(`[data-wui-pane-host]`)?`pane`:e.classList.contains(`wui-remote-drawer`)?`drawer`:`modal`;function z(e){let t=w.get(e);return t||(t={shell:e,container:Te(e),queue:o(),defaultSize:se(e),defaultLabel:e.getAttribute(`aria-label`),placeholder:P({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},w.set(e,t),e.addEventListener(`submit`,e=>Ue(t,e)),e.addEventListener(`click`,e=>{e.target.closest?.(`[data-wui-modal-retry]`)&&t.session&&(e.preventDefault(),H(t,t.session))}),A(t)&&e.addEventListener(`click`,e=>{let n=e.target.closest?.(re);n&&e.currentTarget.contains(n)&&t.session&&V(t,t.session,`dismissed`,null)}),e.addEventListener(`hidden.bs.modal`,n=>{n.target===e&&(e.classList.contains(`wui-modal-stacked`)&&De(t),Oe(t))}),e.addEventListener(`shown.bs.modal`,n=>{if(n.target!==e)return;e.classList.contains(`wui-modal-stacked`)&&[...document.querySelectorAll(`.modal-backdrop`)].at(-1)?.classList.add(`wui-modal-backdrop-stacked`);let r=P(t);t.session&&r?.matches(C)&&!r.contains(document.activeElement)&&I(r,!1,j(t))}),t.remoteUrl&&e.addEventListener(`show.bs.modal`,n=>{n.target===e&&ke(t,n)}),t)}function B(e,t,n){e.session&&(e.queue.abort(),e.session.resolveClosed({status:`dismissed`,detail:{replaced:!0}}));let r,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:null};return a.handle={el:e.shell,closed:i,close:()=>V(e,a,`dismissed`,null),reload:()=>H(e,a)},e.session=a,a}function V(e,t,n,r){e.session===t&&(t.closing={status:n,detail:r},A(e)?Ee(e,t):window.bootstrap?.Modal?.getOrCreateInstance(e.shell).hide())}function Ee(e,t){let n=e.shell,{status:r,detail:i}=t.closing,a=n.contains(document.activeElement);e.queue.abort(),e.session=null,_e(P(e)),n.replaceChildren(),n.hidden=!0,n.removeAttribute(`data-open`),t.resolveClosed({status:r,detail:i}),R(e,n,`closed`,{status:r,url:t.url}),a&&t.trigger?.isConnected&&t.trigger.focus?.()}function De(e){e.shell.classList.remove(`wui-modal-stacked`),M()&&(document.body.classList.add(`modal-open`),document.body.style.overflow=`hidden`)}function Oe(e){let t=e.session;if(e.queue.abort(),e.session=null,Ce(e),t){let{status:n,detail:r}=t.closing||{status:`dismissed`,detail:null};t.resolveClosed({status:n,detail:r}),R(e,e.shell,`closed`,{status:n,url:t.url});let i=document.activeElement;t.trigger?.isConnected&&(!i||i===document.body||e.shell.contains(i))&&t.trigger.focus?.()}e.cache||(F(e,ge(e.placeholder)),e.loadedUrl=null,O(e.shell,e.defaultSize),e.defaultLabel?e.shell.setAttribute(`aria-label`,e.defaultLabel):e.shell.removeAttribute(`aria-label`))}function ke(e,t){let n=t.relatedTarget instanceof Element?t.relatedTarget:null,r=n?.getAttribute(`data-wui-url`)||e.remoteUrl,i=B(e,r,{trigger:n});i.explicitSize=Ae(e,n?.getAttribute(`data-wui-size`)),i.explicitSize&&O(e.shell,i.explicitSize),e.cache&&e.loadedUrl===r||(e.loadedUrl&&F(e,ge(e.placeholder)),H(e,i,{keepPlaceholder:!0}))}function Ae(e,t){try{return ue(e,t)}catch(e){return i(e),null}}async function H(e,t,{keepPlaceholder:n=!1}={}){n||F(e,ge(he(t.options.title||je(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`)&&Fe(e,t,r.html,!1))return e.loadedUrl=t.url,R(e,e.shell,`loaded`,{url:t.url,handle:t.handle}),`loaded`;let i=r.kind===`ok`||r.kind===`validation`?`server`:r.kind;return F(e,ge(N(t.options.title||je(e),i))),xe(e)&&I(P(e),!1,j(e)),R(e,e.shell,`error`,{url:t.url,kind:i,status:r.status}),`error`}var je=e=>P(e)?.querySelector(`.wui-modal-title`)?.textContent||e.shell.getAttribute(`aria-label`)||``,Me=`/_content/Webority.Ui.Razor/js/`,Ne=e=>new URL(e,window.location.href).pathname.includes(Me);function Pe(e){if([...document.scripts].some(t=>t.getAttribute(`src`)===e))return;let t=document.createElement(`script`);t.src=e,document.head.appendChild(t)}function Fe(e,t,n,a){let o=document.createElement(`template`);o.innerHTML=n;let s=!1;for(let e of o.content.querySelectorAll(`script`)){if(e.getAttribute(`type`)===`application/json`)continue;let t=e.getAttribute(`src`);e.remove(),t&&Ne(t)?Pe(t):s=!0}s&&r(`WUI.modal: ${t.url} returned a fragment with script; it was removed. Keep page behaviour in the page.`);let c=o.content.querySelector(C);if(!c)return i(`WUI.modal: ${t.url} did not answer with an <app-modal-content> fragment.`),!1;if(F(e,c),a||Ce(e),!A(e)){O(e.shell,t.explicitSize||Ae(e,c.getAttribute(`data-wui-size`))||e.defaultSize);let n=c.getAttribute(`data-wui-title`);n&&e.shell.setAttribute(`aria-label`,n)}return xe(e)&&I(c,a,j(e)),!0}var Ie=`button[type="submit"], button:not([type]), input[type="submit"], input[type="image"]`;function Le(e,t,n){let r=[...e.elements].filter(e=>e.matches(Ie));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 Re(e){for(let t of e.querySelectorAll(S))t.remove();for(let t of e.querySelectorAll(x))t.removeAttribute(`aria-invalid`),t.classList.remove(`is-invalid`,`input-validation-error`);for(let t of e.querySelectorAll(`.field-error`))t.textContent=``}var ze=/* @__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(`.`));async function Be(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(t?.title),i=(e.statusText||``).trim().toLowerCase(),a=ze.has(r.toLowerCase())||r.toLowerCase()===i;return n(t?.message)||n(t?.detail)||(r&&!a?r:null)}function Ve(e,t,n,r){let i=t.closest(`.wui-modal-body`)||t;i.querySelector(`[data-wui-modal-submit-error]`)?.remove(),Re(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=D(`${y.submitFailed} ${r||y[n]||y.server}`),i.prepend(a),Se(e,a.textContent)}var He=(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 Ue(e,t){let n=t.target,r=e.session;if(!(n instanceof HTMLFormElement)||!r||n.hasAttribute(`data-wui-native`)||!n.closest(C)||(t.preventDefault(),n.hasAttribute(`data-wui-submitting`)))return;let i=t.submitter||null,a=i?.getAttribute(`formaction`)||n.getAttribute(`action`)||r.url,o=(i?.getAttribute(`formmethod`)||n.getAttribute(`method`)||`GET`).toUpperCase(),s=new FormData(n);i?.name&&!s.has(i.name)&&s.append(i.name,i.value);let c=o===`GET`;Le(n,i,!0);let l=await e.queue.run(c?He(a,s):a,{method:o,body:c?void 0:s,navigate:r.options.navigate});if(e.session!==r)return;if(n.isConnected&&Le(n,i,!1),l.kind===`ok`&&l.result===`success`){We(e,r,l);return}if(l.kind===`aborted`||l.kind===`stale`||l.kind===`session`)return;if(l.kind===`validation`&&Fe(e,r,l.html,!0)){let t=P(e).querySelector(S)?.textContent.replace(/\s+/g,` `).trim();Se(e,t||y.invalid);return}if(l.kind===`ok`&&l.html&&Fe(e,r,l.html,!1))return;let u=l.kind===`ok`||l.kind===`validation`?`server`:l.kind,ee=await Be(l.response);e.session===r&&Ve(e,n,u,ee)}function We(e,t,n){let r=n.message,i=n.redirect||null,a={url:t.url,trigger:t.trigger,handle:t.handle,message:r,redirect:i,data:n.data??null,container:e.container};r&&window.WUI?.toast?.(r,{variant:`success`}),R(e,t.trigger?.isConnected?t.trigger:document,`success`,a),t.options.onSuccess?.(a,t.handle),i&&(t.options.navigate||(e=>window.location.assign(e)))(i),n.next&&!i?(t.url=n.next,t.method=`GET`,t.body=void 0,H(e,t)):n.keepOpen?n.html&&Fe(e,t,n.html,!1):V(e,t,`success`,a)}function Ge(e){let t=e.target.closest?.(`[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`)?$e(t.getAttribute(`data-wui-pane`),{target:t.getAttribute(`data-wui-pane-target`),trigger:t}).catch(e=>{e?.name!==`AbortError`&&i(e)}):t.hasAttribute(`data-wui-modal`)?Ye(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=>{e?.name!==`AbortError`&&i(e)}):Ze(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=>{e?.name!==`AbortError`&&i(e)})))}function Ke(e){if(e.key!==`Tab`||e.defaultPrevented)return;let t=e.currentTarget.querySelectorAll(`.modal.show`),n=e.currentTarget.querySelector(`.modal.show.wui-modal-stacked`)??t[t.length-1];n&&L(n,e)}function qe(e){if(e.key!==`Escape`||e.defaultPrevented)return;let t=e.target.closest?.(Qe),n=t&&w.get(t);n?.session&&!e.currentTarget.querySelector(`.modal.show`)&&V(n,n.session,`dismissed`,null)}function Je(e=document){let t=e.ownerDocument||e;T.has(t)||(T.add(t),t.addEventListener(`click`,Ge),t.addEventListener(`keydown`,Ke),t.addEventListener(`keydown`,qe));let n=[...e.querySelectorAll?.(`.modal[data-wui-remote-url]`)||[]];e.matches?.(`.modal[data-wui-remote-url]`)&&n.unshift(e);for(let e of n)z(e)}function Ye(e,t={}){try{if(!e)throw TypeError(`WUI.modal.load: a fragment url is required.`);let n=ae(e),r=t.container===`drawer`,i=r?le(t.size):oe(t.size),a=t.placement||`center`;if(!ce.includes(a))throw TypeError(`WUI.modal.load: unsupported placement "${a}". Use center or top.`);if(t.signal?.aborted)return Promise.reject(E());let o=pe(r?`drawer`:`modal`);Je(document);let s=z(o),c=xe(s),l=B(s,e,t);l.explicitSize=i,O(o,i||s.defaultSize),r||o.querySelector(`.modal-dialog`).classList.toggle(`modal-dialog-centered`,a===`center`),t.title&&o.setAttribute(`aria-label`,t.title),c||(!r&&M()&&(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=H(s,l);return c||n.getOrCreateInstance(o).show(),Xe(s,l,t,u,ee,`WUI.modal.load`)}catch(e){return Promise.reject(e)}}function Xe(e,t,n,r,i,a){let o=new Promise((r,i)=>{n.signal?.addEventListener(`abort`,()=>{e.session===t&&(e.queue.abort(),V(e,t,`dismissed`,{aborted:!0})),i(E())},{once:!0})}),s=Promise.all([r,i]).then(([,e])=>{if(e===`aborted`)throw E();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 Ze(e,t={}){return Ye(e,{...t,container:`drawer`,placement:void 0})}var Qe=`[data-wui-pane-host]`;function $e(e,t={}){try{if(!e)throw TypeError(`WUI.pane.load: a fragment url is required.`);let n=de(t.target);if(!n)throw TypeError(`WUI.pane.load: the target is not an <app-detail-pane>.`);if(t.signal?.aborted)return Promise.reject(E());Je(document);let r=z(n),i=B(r,e,t);n.hidden=!1,n.setAttribute(`data-open`,``);let a=H(r,i);return Xe(r,i,t,Promise.resolve(),a,`WUI.pane.load`)}catch(e){return Promise.reject(e)}}function et(e){let t=de(e);if(!t)throw TypeError(`WUI.pane.close: the target is not an <app-detail-pane>.`);let n=w.get(t);n?.session&&V(n,n.session,`dismissed`,null)}var tt=`Select all rows`,nt=`Select row`,U=`wui-select-cell`,rt=(e,t)=>{let n=e.createElement(`input`);return n.type=`checkbox`,n.className=`wui-check`,n.setAttribute(`aria-label`,t),n};function it(e=document){let t=e.createElement(`th`);return t.className=U,t.appendChild(rt(e,tt)),t}function at(e=document,{disabled:t=!1}={}){let n=e.createElement(`td`);n.className=U;let r=rt(e,nt);return r.disabled=t,n.appendChild(r),n}function ot(e=document){let t=e.createElement(`td`);return t.className=U,t}var st=e=>e.firstElementChild?.classList.contains(U),ct=e=>e.matches(`.wui-group-row, .wui-virtual-spacer`);function lt(e){for(let t of e){if(st(t)||ct(t))continue;let e=t.getAttribute(`data-row-selectable`)===`false`;t.insertBefore(at(t.ownerDocument,{disabled:e}),t.firstChild)}}function ut(e){let t=e.querySelector(`thead tr`);if(!t)return null;st(t)||t.insertBefore(it(e.ownerDocument),t.firstChild),lt(e.querySelectorAll(`tbody tr`));for(let t of e.querySelectorAll(`tfoot tr`))st(t)||t.insertBefore(ot(e.ownerDocument),t.firstChild);return t.querySelector(`.${U} .wui-check`)}function dt(e){let t=e.querySelector(`thead .${U} .wui-check`),n=[...e.querySelectorAll(`tbody tr .wui-check:not(:disabled)`)],r=n.length,i=n.filter(e=>e.checked).length;t&&(t.checked=r>0&&i===r,t.indeterminate=i>0&&i<r);for(let t of e.querySelectorAll(`tbody tr`))t.classList.toggle(`is-selected`,!!t.querySelector(`.wui-check`)?.checked);return{selected:i,total:r}}var ft=`tbody .${U} .wui-check:not(:disabled)`;function pt(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=[...e.querySelectorAll(ft)],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 mt=8e3,ht=`That did not work. Try again.`;function gt(e,t=`success`){if(!e?.message)return;let n=e.toastAction;n?window.WUI?.toast?.(e.message,{variant:t,duration:mt,action:{label:n.label,onClick:()=>_t(n)}}):window.WUI?.toast?.(e.message,{variant:t})}async function _t(e){let t=await a(e.url,{method:e.method});if(t.kind!==`session`&&t.kind!==`aborted`){if(t.ok){gt(t,t.toastVariant||`success`);for(let e of document.querySelectorAll(`[data-wui-server]`))e.dataset.refreshOnSuccess!==`false`&&Dt(e)?.reload()}else window.WUI?.toast?.(t.message||ht,{variant:`danger`})}}var W=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`}),vt=5,yt=/* @__PURE__ */ new WeakMap,bt=(e,t)=>{let n=Number(e);return Number.isInteger(n)?n:t},xt=e=>({total:bt(e.dataset.total,0),page:bt(e.dataset.page,1),pageSize:bt(e.dataset.pageSize,0),sortBy:e.dataset.sortBy||``,sortOrder:e.dataset.sortOrder===`desc`?`desc`:`asc`}),St=(e,t)=>{e&&window.WUI?.toast?.(e,{variant:t})},Ct=(e,t)=>{if(!e)return;let n=new Set([...e.elements].filter(e=>e.type!==`hidden`||e.hasAttribute(`data-range-mirror`)).map(e=>e.getAttribute(`name`)).filter(e=>e&&!te.includes(e))),r=[...t].some(([e,t])=>t!==``&&n.has(e));for(let t of e.querySelectorAll(`[data-wui-filter-clear]`))t.hidden=!r},wt=new Intl.NumberFormat(`en-IN`),Tt=(e,t)=>{let n=e.closest(`.wui-list-card`)?.querySelector(`.wui-list-card-count`);n&&(n.textContent=wt.format(t))};function Et(e=document){let t=e.querySelectorAll?[...e.querySelectorAll(`[data-wui-server]`)]:[];e instanceof Element&&e.matches(`[data-wui-server]`)&&t.unshift(e);for(let e of t)yt.has(e)||yt.set(e,Ot(e))}function Dt(e){let t=e instanceof Element?e.closest(`[data-wui-server]`):null;return t&&yt.get(t)||null}function Ot(n){let p=n.querySelector(`.table-wrap`),m=p?.querySelector(`:scope > table`),h=n.dataset.src;if(!m||!h)throw Error(`A server-paged table needs data-src and a .table-wrap > table: render it with <app-data-table src>.`);let g=p.querySelector(`:scope > [data-wui-table-state]`),_=n.querySelector(`[data-wui-table-pager]`),v=n.querySelector(`[data-wui-table-status]`),y={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||W.loading,errorText:n.dataset.errorText||W.error},b=new URL(h,window.location.href),ne=new Set(b.searchParams.keys()),x=m.hasAttribute(`data-app-datatable-selectable`),S=/* @__PURE__ */ new Set,C=!1,re=o(),ie=new AbortController,w={signal:ie.signal},T=m.querySelector(`:scope > tbody[data-wui-rows]`);if(!T)throw Error(`A server-paged table needs its rows in <app-table-rows> (tbody[data-wui-rows]).`);let E=xt(T),ae=null,D=null,oe=e=>{let t=new URLSearchParams;for(let[n,r]of new URLSearchParams(e))ne.has(n)||t.append(n,r);return t},se=e=>oe(new URL(e,window.location.href).search),O=e=>{let t=e.toString();return`${window.location.pathname}${t?`?${t}`:``}${window.location.hash}`},ce=e=>{let t=new URL(b.href);for(let[n,r]of e)ne.has(n)||t.searchParams.append(n,r);return t.origin===window.location.origin?`${t.pathname}${t.search}`:t.href},le=(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},k=le(y.urlState?oe(window.location.search):new URLSearchParams,E);y.urlState&&O(k)!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&window.history.replaceState(window.history.state,``,O(k));let A=(e,t)=>p.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:t})),j=e=>{v&&(v.textContent=e)},ue=e=>{if(e.total===0)return W.empty;let t=e.pageSize>0?Math.max(1,Math.ceil(e.total/e.pageSize)):1;return`Page ${e.page} of ${t}, ${e.total} ${e.total===1?`row`:`rows`}`},M=()=>[...m.querySelectorAll(`:scope > thead > tr:first-child > th`)],de=e=>{if(x&&[...e.querySelectorAll(`:scope > tr:not(.wui-group-row, .wui-virtual-spacer)`)].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.`)},fe=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`)}},pe=e=>{if(x){lt(e);for(let t of e){let e=t.querySelector(`.${U} .wui-check:not(:disabled)`);e&&(C&&S.add(t.dataset.rowKey),e.checked=S.has(t.dataset.rowKey))}dt(m)}fe(e);let t=M();if(m.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`)})},me=e=>pe([...e.querySelectorAll(`:scope > tr`)]),he=e=>{for(let t of e.querySelectorAll(`:scope > template[data-wui-pager], :scope > template[data-wui-empty], :scope > template[data-wui-filters]`))t.remove()},N=e=>e?.dispatchEvent(new CustomEvent(`wui:teardown`,{bubbles:!0})),ge=(e,t)=>{if(!g)return;let n=e.querySelector(`:scope > template[data-wui-empty]`);N(g),t.total===0&&n?(g.replaceChildren(n.content.cloneNode(!0)),g.hidden=!1):(g.replaceChildren(),g.hidden=!0)},P=e=>{let t=xt(e),n=t.sortBy!==E.sortBy||t.sortOrder!==E.sortOrder?ee(T.rows):null;if(_){let t=e.querySelector(`:scope > template[data-wui-pager]`);N(_),_.replaceChildren(...t?[t.content.cloneNode(!0)]:[]),_.hidden=!1}ge(e,t);let r=e.querySelector(`:scope > template[data-wui-filters]`),i=y.filtersRegion&&r?document.querySelector(y.filtersRegion):null;i&&(N(i),i.replaceChildren(r.content.cloneNode(!0))),he(e),N(T),m.replaceChild(e,T),T=e;let a=C&&t.total!==E.total;return E=t,a&&(C=!1),p.removeAttribute(`data-wui-table-error`),me(e),we(),u(e.rows,n),a&&Te(),i},_e=e=>{let t=document.createElement(`template`);t.innerHTML=`<table>${e}</table>`;let n=t.content.querySelector(`tbody[data-wui-rows]`);return n&&de(n),n?document.importNode(n,!0):null},F=(e,t=M())=>{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},ve=()=>{if(T.querySelector(`:scope > tr:not([data-wui-skeleton])`))return;let e=Math.max(1,M().length);T.replaceChildren(...Array.from({length:vt},()=>{let t=F(e);return t.setAttribute(`data-wui-skeleton`,``),t})),p.removeAttribute(`data-wui-table-error`),g&&(g.hidden=!0)},ye=e=>{e?(p.setAttribute(`aria-busy`,`true`),ve()):p.removeAttribute(`aria-busy`)},be=e=>e===`forbidden`?W.forbidden:e===`network`?W.network:y.errorText,xe=n=>{let r=be(n);if(p.setAttribute(`data-wui-table-error`,n),_&&(_.hidden=!0),g){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=d(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(`outline`,`sm`),c.dataset.wui=t,c.setAttribute(`data-wui-table-retry`,``),c.textContent=W.retry,s.append(c),i.append(a,o,s),N(g),g.replaceChildren(i),g.hidden=!1}j(r)},I=()=>y.filtersForm?document.querySelector(y.filtersForm):null,L=async(e,t=`none`,{quiet:a=!1}={})=>{let o=new URLSearchParams(e);a||(ae={query:o,mode:t},ye(!0),j(y.loadingText)),A(`wui:table:loading`,{query:o.toString()});let s=await re.run(ce(o));if(s.kind===`aborted`||s.kind===`stale`||s.kind===`session`)return s;a||ye(!1);let c=null,l=s.ok?null:s.kind;if(s.ok){try{c=_e(s.html)}catch(e){i(e)}c||(l=`server`)}if(l)return a?r(`A quiet server table refresh failed; the rows on screen are kept.`,l):xe(l),A(`wui:table:error`,{status:s.status,kind:l,message:be(l)}),s;let u=P(c);return k=le(o,E),Ct(I(),k),y.urlState&&t===`push`?window.history.pushState(window.history.state,``,O(k)):y.urlState&&t===`replace`&&window.history.replaceState(window.history.state,``,O(k)),a||j(ue(E)),window.WUI?.refresh?.(p),u&&window.WUI?.refresh?.(u),Tt(n,E.total),A(`wui:table:loaded`,{...E,query:k.toString()}),s},Se=e=>(e.delete(`page`),e),Ce=()=>[...m.querySelectorAll(`:scope > thead th[data-sort-key]`)],we=()=>{for(let e of Ce()){let t=e.dataset.sortKey===E.sortBy;e.setAttribute(`aria-sort`,t?E.sortOrder===`desc`?`descending`:`ascending`:`none`)}};for(let e of Ce())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=d(`chevrons-up-down`,{size:14}),t?e.prepend(n):e.append(n)}let R=e=>{let t=Se(new URLSearchParams(k)),n=E.sortBy===e&&E.sortOrder===`asc`?`desc`:`asc`;return t.set(`sortBy`,e),t.set(`sortOrder`,n),L(t,`push`)};m.addEventListener(`click`,e=>{let t=e.target.closest(`th[data-sort-key]`);t&&m.tHead?.contains(t)&&R(t.dataset.sortKey)}),m.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest?.(`th[data-sort-key]`);t&&m.tHead?.contains(t)&&(e.preventDefault(),R(t.dataset.sortKey))});let Te=()=>{dt(m);let e=C?{selected:E.total,total:E.total,allMatching:C}:{selected:S.size,total:E.total};m.dispatchEvent(new CustomEvent(`selectionchange`,{bubbles:!0,detail:e}))};x&&(pt(m,(e,t)=>{for(let n of e){let e=n.closest(`tr`)?.dataset.rowKey;e&&(t?S.add(e):S.delete(e))}t||(C=!1)}),m.addEventListener(`change`,e=>{let t=e.target;if(t.matches?.(`.wui-select-cell .wui-check:not(:disabled)`)){if(t.checked||(C=!1),m.tHead?.contains(t))for(let e of T.querySelectorAll(`:scope > tr`)){let n=e.querySelector(`.${U} .wui-check:not(:disabled)`);n&&(n.checked=t.checked,t.checked?S.add(e.dataset.rowKey):S.delete(e.dataset.rowKey))}else{let e=t.closest(`tr`)?.dataset.rowKey;if(!e)return;t.checked?S.add(e):S.delete(e)}Te()}})),_&&(_.addEventListener(`click`,e=>{let t=e.target.closest(`a[href]`);!t||e.defaultPrevented||e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),L(se(t.getAttribute(`href`)),`push`))}),_.addEventListener(`change`,e=>{e.target.classList?.contains(`tpg-select`)&&e.target.value&&(e.stopPropagation(),L(se(e.target.value),`push`))}));let z=()=>{if(!y.searchInput)return null;let e=document.querySelector(y.searchInput);return e&&(e.matches(`input, textarea`)?e:e.querySelector(`input`))},B=()=>n.isConnected?!0:(ie.abort(),clearTimeout(D),!1),V=(e,t)=>{let n=/* @__PURE__ */ new Set;for(let t of e.elements)t.name&&t.type!==`hidden`&&n.add(t.name);let r=[];for(let t of e.elements)if(t.name&&!t.disabled){if(t.matches(`input[type="hidden"][data-wui-carried]`))n.has(t.name)||r.push([t.name,t.value]);else if(t.matches(`input[type=checkbox], input[type=radio]`))t.checked&&r.push([t.name,t.value]);else if(t.matches(`input, textarea`))t.matches(`[type=submit], [type=button], [type=reset], [type=image], [type=file]`)||r.push([t.name,t.value]);else if(t.localName===`select`)for(let e of t.selectedOptions)r.push([t.name,e.value])}return t?.name&&!t.disabled&&r.push([t.name,t.value]),r},Ee=(e,t)=>{let n=new Set([...e.elements].map(e=>e.name).filter(Boolean)),r=new URLSearchParams,i=e=>e!==`search`&&te.includes(e);for(let[e,t]of k)e!==`page`&&(i(e)||!n.has(e))&&r.append(e,t);for(let[n,a]of V(e,t))a===``||i(n)||ne.has(n)||r.append(n,a);let a=z();if(a){r.delete(f);let e=a.value.trim();e&&r.set(f,e)}return L(r,`push`)},De=e=>y.filtersForm&&e.closest?.(y.filtersForm)||y.filtersRegion&&e.closest?.(y.filtersRegion)||null;document.addEventListener(`submit`,e=>{B()&&y.filtersForm&&e.target instanceof HTMLFormElement&&e.target.matches(y.filtersForm)&&(e.preventDefault(),Ee(e.target,e.submitter))},w),document.addEventListener(`change`,e=>{if(!B()||!y.filtersForm)return;let t=e.target.closest?.(y.filtersForm);!t||e.target===z()||t.hasAttribute(`data-wui-apply-on-change`)||e.target.closest?.(`wui-filter-popover`)||Ee(t)},w);let Oe=(e,t)=>{if(!e)return;let n=e=>t.get(e)??``;for(let r of e.querySelectorAll(`input[name]:not([type=hidden])`))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 e.querySelectorAll(`select[name]`))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]`)){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(!B())return;let t=e.target.closest?.(`a[href]`);if(!t||!De(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=Se(se(n.href));Oe(t.closest(`form`),r),Ct(t.closest(`form`),r),L(r,`push`)},w),document.addEventListener(`input`,e=>{if(!B())return;let t=z();t&&e.target===t&&(clearTimeout(D),D=setTimeout(()=>{if(!B())return;let e=Se(new URLSearchParams(k)),n=t.value.trim();n?e.set(f,n):e.delete(f),e.toString()!==k.toString()&&L(e,`replace`)},300))},w),y.urlState&&window.addEventListener(`popstate`,()=>{if(!B())return;let e=oe(window.location.search),t=z();t&&(t.value=e.get(`search`)??``),Ct(I(),e),L(e,`none`)},w),document.addEventListener(`wui:modal:success`,()=>{B()&&y.refreshOnSuccess&&L(k,`none`)},w),g?.addEventListener(`click`,e=>{e.target.closest(`[data-wui-table-retry]`)&&ae&&L(ae.query,ae.mode)});let ke=e=>[...T.rows].find(t=>t.dataset.rowKey===e)??null,Ae=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=[...t.content.querySelectorAll(`table > tbody > tr[data-row-key]`)];return n.length?n.map(e=>document.importNode(e,!0)):null},H=(e,t,n)=>{let r=n?e[0]:e.find(e=>e.dataset.rowKey===t.dataset.rowKey);if(!r)return null;let i=[];for(let n of e){let e=n===r?t:ke(n.dataset.rowKey);e&&(N(e),e.replaceWith(n),i.push(n))}return pe(i),window.WUI?.refresh?.(p),r},je=e=>e.message||(e.kind===`forbidden`?W.actionForbidden:W.actionFailed),Me=e=>{e?.isConnected&&e.getAttribute(`data-wui-save-state`)===`saving`&&c(e,null)},Ne=e=>{if(e instanceof HTMLTableRowElement)return e;let t=document.createElement(`template`);t.innerHTML=`<table><tbody>${String(e)}</tbody></table>`;let n=t.content.querySelector(`table > tbody > tr`);if(!n)throw Error("saveRow's `row` is the row as it will read: a <tr> element or its HTML.");return document.importNode(n,!0)},Pe=async({url:e,method:t=`POST`,body:n,key:r,row:i}={})=>{if(!e)throw Error("saveRow needs `url`: the handler that saves the row.");let o=r==null,u=o?null:ke(String(r));if(!o&&!u)throw Error(`saveRow found no row with data-row-key="${r}" on this page.`);let ee=M().filter(e=>!e.classList.contains(U)),d=i?Ne(i):u??F(Math.max(1,ee.length),ee);u&&d!==u?u.replaceWith(d):u||T.insertBefore(d,T.firstChild),d!==u&&pe([d]),g&&!p.hasAttribute(`data-wui-table-error`)&&(g.hidden=!0),c(d,`saving`);let te=s(d),f=await a(e,{method:t.toUpperCase(),body:n});if(f.kind===`session`)return!1;if(f.ok){let e=Ae(f.html),t=e&&d.isConnected?H(e,d,o):null;return t?j(l.saved(s(t)||te)):(await L(k,`none`),Me(d)),gt(f,f.toastVariant||`success`),A(`wui:table:saved`,{key:t?.dataset.rowKey??(o?null:String(r)),added:o,status:f.status}),!0}let m=je(f),h=d;return u&&d!==u&&d.isConnected?(d.replaceWith(u),h=u):o&&!i&&(d.remove(),h=null,g?.childElementCount&&!T.querySelector(`:scope > tr`)&&(g.hidden=!1)),h?.isConnected&&c(h,`error`,m),f.kind!==`aborted`&&St(m,`danger`),j(l.notSaved(te,m)),A(`wui:table:failed`,{key:o?null:String(r),added:o,status:f.status,kind:f.kind,message:m}),!1},Fe=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=e.closest(`tr`),r=n?.dataset.rowKey??null,i=e.dataset.wuiRowAction||``,o=n?s(n):``;e.disabled=!0,e.setAttribute(`aria-busy`,`true`),n&&c(n,`saving`);let u=await a(t,{method:(e.dataset.method||`post`).toUpperCase()});if(e.disabled=!1,e.removeAttribute(`aria-busy`),u.kind===`session`||u.kind===`aborted`)Me(n);else{if(u.ok){gt(u,u.toastVariant||`success`);let e=n?.isConnected?Ae(u.html):null,t=e?H(e,n,!1):null;t?j(l.saved(s(t)||o)):(await L(k,`none`),Me(n))}else{let e=je(u);St(e,`danger`),n?.isConnected&&c(n,`error`,e),j(l.notSaved(o,e))}A(`wui:table:action`,{action:i,key:r,ok:u.ok,status:u.status})}};return m.addEventListener(`click`,e=>{let t=e.target.closest(`[data-wui-row-action]`);t&&T.contains(t)&&!t.disabled&&(e.preventDefault(),Fe(t))}),de(T),he(T),x&&ut(m),me(T),we(),{el:n,reload:async e=>{let t=e?.quiet===!0;return t&&p.getAttribute(`aria-busy`)===`true`?null:L(k,`none`,{quiet:t})},query:()=>new URLSearchParams(k),setQuery:e=>{let t=new URLSearchParams(k);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`),L(t,`push`)},saveRow:Pe,setActiveRow:e=>{n.dataset.activeRowKey=e==null?``:String(e),fe([...T.querySelectorAll(`:scope > tr`)])},selection:{keys:()=>[...S],count:()=>C?E.total:S.size,allMatching:()=>C,selectAllMatching:()=>{C=!0;for(let e of T.querySelectorAll(`:scope > tr`)){let t=e.querySelector(`.${U} .wui-check`);t?.disabled||(t&&(t.checked=!0),e.dataset.rowKey&&S.add(e.dataset.rowKey))}Te()},clear:()=>{C=!1,S.clear();for(let e of T.querySelectorAll(`:scope > tr > .${U} .wui-check:not(:disabled)`))e.checked=!1;Te()}}}}var G=`wuiConfirm`,kt=Object.freeze([`danger`]),At=Object.freeze([`success`,`info`,`warning`,`danger`]),jt=`wui.flash`,K=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.`}),Mt=/* @__PURE__ */ new WeakSet,Nt=/* @__PURE__ */ new WeakSet,Pt=null,Ft=null,It=!1,Lt=e=>{let t=document.createElement(`span`);return t.textContent=e??``,t.innerHTML},Rt=(e,t)=>{e&&window.WUI?.toast?.(e,{variant:t})},zt=()=>{let e=window.bootstrap?.Modal;if(!e)throw Error(`data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);return e};function Bt(){let n=document.getElementById(G);return n||(n=document.createElement(`div`),n.id=G,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`,`${v.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(`soft`,`md`)}" data-bs-dismiss="modal" data-wui="${t}">${Lt(K.cancelLabel)}</button><button type="button" class="${e(`primary`,`md`)}" data-app-confirm data-wui="${t}"></button></div></div></div></div>`,document.body.appendChild(n),n)}function Vt(e,t){let n=e.getAttribute(`data-wui-confirm-tone`);if(n!==null&&!kt.includes(n))throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);Ht({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 Ht({title:e,message:t,label:n,danger:r},i){let a=zt(),o=Bt(),s=o.querySelector(`.wui-confirm-title`),c=o.querySelector(`[data-app-confirm]`);if(!s||!c)throw Error(`#${G} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${G}"> 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)),s.textContent=e||K.confirmTitle,l.textContent=t,c.textContent=n||K.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`,s.textContent),Ft=i,It=!1,a.getOrCreateInstance(o).show()}var Ut=(e,t)=>{Pt=e;try{t()}finally{Pt=null}};function Wt(e,{title:t,message:n,label:r,tone:i},a){if(i!=null&&!kt.includes(i))throw TypeError(`confirmAction: tone "${i}" is not supported. Use danger, or leave it off.`);sn(e.ownerDocument),Ht({title:t,message:n,label:r,danger:i===`danger`},()=>Ut(e,a))}var Gt=e=>e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`;function Kt(e){let t=e.target.closest?.(`[data-wui-confirm]:not(form)`);t&&t!==Pt&&!Gt(t)&&(e.preventDefault(),e.stopImmediatePropagation(),Vt(t,()=>Ut(t,()=>t.click())))}function qt(e){let t=e.target;if(!(t instanceof HTMLFormElement)||!t.hasAttribute(`data-wui-confirm`)||t===Pt||e.submitter&&e.submitter===Pt||t.querySelector(`input[data-app-repeater-hidden]`))return;e.preventDefault(),e.stopImmediatePropagation();let n=e.submitter?.form===t?e.submitter:void 0;Vt(t,()=>Ut(t,()=>t.requestSubmit(n)))}function Jt(e){let t=e.target.closest?.(`#${G} [data-app-confirm]`);t&&!t.disabled&&Ft&&(It=!0,zt().getOrCreateInstance(t.closest(`#${G}`)).hide())}function Yt(e){if(e.target.id!==`wuiConfirm`)return;let t=It?Ft:null;Ft=null,It=!1,t?.()}var Xt=(e,t)=>{e&&window.sessionStorage.setItem(jt,JSON.stringify({message:e,variant:t}))},Zt=e=>e===`forbidden`?K.forbidden:e===`network`?K.network:K.failed;function Qt(){for(let e of document.querySelectorAll(`[data-wui-server]`))e.dataset.refreshOnSuccess!==`false`&&Dt(e)?.reload()}async function $t(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 en(t,e)}async function en(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.`);t.disabled=!0,t.setAttribute(`aria-busy`,`true`);let i=await a(e,{method:`POST`,body:n});if(i.kind===`session`||i.kind===`aborted`)return;let o=i.toastVariant||`success`;i.ok&&(i.redirect||r===`page`)?(Xt(i.message,o),i.redirect?window.location.assign(i.redirect):window.location.reload()):(t.disabled=!1,t.removeAttribute(`aria-busy`),i.ok?(gt(i,o),Qt()):Rt(i.message||Zt(i.kind),`danger`))}function tn(e){let t=e.target.closest?.(`[data-wui-post]`);t&&(e.preventDefault(),Gt(t)||t.getAttribute(`aria-busy`)===`true`||$t(t).catch(e=>i(e)))}function nn(e){let t=e.target.closest?.(`form[data-wui-post-form]`);if(!t||e.defaultPrevented)return;e.preventDefault();let n=e.submitter||t.querySelector(`button`);n.getAttribute(`aria-busy`)!==`true`&&(en(t.getAttribute(`action`),n,new FormData(t)).catch(e=>i(e)),window.bootstrap?.Dropdown?.getInstance(t.closest(`.dropdown`)?.querySelector(`[data-bs-toggle='dropdown']`))?.hide())}function rn(){let e=window.sessionStorage.getItem(jt);if(!e)return;window.sessionStorage.removeItem(jt);let{message:t,variant:n}=JSON.parse(e);Rt(t,n)}function an(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(!At.includes(t))throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${At.join(`, `)}.`);let n=e.getAttribute(`data-wui-flash`)||e.textContent.trim();e.remove(),Rt(n,t)}}function on(e){let t=e.target instanceof Element?e.target.closest(`[data-wui-auto-submit]`):null,n=t&&(e.target.form||t.closest(`form`));n&&n.requestSubmit()}function sn(e){Nt.has(e)||(Nt.add(e),e.addEventListener(`click`,Jt),e.addEventListener(`hidden.bs.modal`,Yt))}function cn(e=document){let t=e.ownerDocument||e;Mt.has(t)||(Mt.add(t),t.addEventListener(`click`,Kt,!0),t.addEventListener(`submit`,qt,!0),sn(t),t.addEventListener(`click`,tn),t.addEventListener(`submit`,nn),t.addEventListener(`change`,on),rn()),an(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`}),q=`form[data-wui-unsaved]`,un=`[aria-invalid="true"], .field-error:not(:empty), .field-validation-error, .validation-summary-errors, .wui-error-summary`,dn=`[download], [data-wui-modal], [data-wui-post], [data-bs-toggle]`,fn=/* @__PURE__ */ new Set([`submit`,`button`,`reset`,`image`]),pn=/* @__PURE__ */ new Set([`hidden`,`checkbox`,`radio`,`file`,`submit`,`button`,`reset`,`image`,`range`,`color`]),J=/* @__PURE__ */ new WeakMap,mn=/* @__PURE__ */ new WeakSet,hn=e=>`${e.name}:${e.size}:${e.lastModified}`;function Y(e){let t=[];for(let n of e.elements)!n.name||n.disabled||fn.has(n.type)||(n.type===`checkbox`||n.type===`radio`?t.push([n.name,n.value,n.checked]):n.type===`file`?t.push([n.name,[...n.files||[]].map(hn)]):n.type===`select-multiple`?t.push([n.name,[...n.selectedOptions].map(e=>e.value)]):t.push([n.name,n.value]));return JSON.stringify(t)}function X(e){return Y(e)}function gn(e,t){let n=/* @__PURE__ */ new Map;for(let e of JSON.parse(t)){let t=n.get(e[0]);t?t.push(e):n.set(e[0],[e])}let r=JSON.parse(Y(e)).map(e=>n.get(e[0])?.shift()??e);for(let e of n.values())r.push(...e);return JSON.stringify(r)}function _n(e){for(let t of e.elements)if(t.name&&!t.disabled){if(t.tagName===`TEXTAREA`||t.tagName===`INPUT`&&!pn.has(t.type)){if(t.value.trim()!==``)return!0}else if(t.tagName===`INPUT`&&t.type===`file`&&t.files?.length>0)return!0}return!1}var vn=e=>({saved:e.querySelector(un)&&_n(e)?null:Y(e),engaged:!1,discarded:!1});function yn(e){let t=J.get(e);return!t||t.discarded||!e.isConnected?!1:t.saved===null||t.engaged&&Y(e)!==t.saved}var bn=(e,t)=>[...e.querySelectorAll(q)].filter(e=>e!==t&&yn(e)),xn=()=>!!window.bootstrap?.Modal;function Sn(e,t,n){let r=t.map(e=>e.getAttribute(`data-wui-unsaved`)).find(Boolean)||ln.message;Wt(e,{title:ln.title,message:r,label:ln.leaveLabel,tone:`danger`},()=>{for(let e of t)J.get(e).discarded=!0;n()})}function Cn(e){if(e.matches(dn))return!1;let t=e.getAttribute(`target`);if(t&&t.toLowerCase()!==`_self`)return!1;let n=new URL(e.getAttribute(`href`),window.location.href);if(n.protocol!==`http:`&&n.protocol!==`https:`)return!1;let r=window.location;return!(n.hash&&n.origin===r.origin&&n.pathname===r.pathname&&n.search===r.search)}function wn(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 Tn(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target.closest?.(`a[href]`);if(!t||!Cn(t))return;let n=bn(t.ownerDocument,null);n.length&&xn()&&(e.preventDefault(),Sn(t,n,()=>t.click()))}function En(e){let t=e.target;if(!(t instanceof HTMLFormElement)||e.defaultPrevented||!wn(t,e.submitter))return;let n=bn(t.ownerDocument,t);if(n.length&&xn()){e.preventDefault();let r=e.submitter?.form===t?e.submitter:void 0;Sn(t,n,()=>t.requestSubmit(r));return}let r=J.get(t);r&&(r.saved=Y(t),r.discarded=!1)}function Dn(e){bn(document,null).length&&(e.preventDefault(),e.returnValue=``)}function On(e){let t=e.target.closest?.(q),n=t&&J.get(t);n&&!n.engaged&&(n.saved!==null&&(n.saved=Y(t)),n.engaged=!0)}function kn(e){let t=e.target.closest?.(q),n=t&&J.get(t);n&&(n.discarded=!1,e.isTrusted&&(n.engaged=!0))}function An(e){for(let t of e.currentTarget.querySelectorAll(q)){let e=J.get(t);e?.saved&&(e.saved=gn(t,e.saved))}}function jn(e){let t=e.detail?.handle?.el;if(t instanceof Element)for(let e of t.querySelectorAll(q))Nn(e)}function Mn(e=document){let t=e.ownerDocument||e;if(!mn.has(t)){mn.add(t);for(let e of[`focusin`,`pointerdown`,`drop`])t.addEventListener(e,On,!0);for(let e of[`input`,`change`])t.addEventListener(e,kn,!0);t.addEventListener(`click`,Tn),t.addEventListener(`submit`,En),t.addEventListener(`wui:modal:success`,jn),t.addEventListener(n,An),t.defaultView.addEventListener(`beforeunload`,Dn)}let r=[...e.querySelectorAll?.(q)||[]];e.matches?.(q)&&r.unshift(e);for(let e of r)J.has(e)||J.set(e,vn(e))}function Nn(e){if(!(e instanceof HTMLFormElement)||!e.matches(q))throw TypeError(`resetUnsavedChanges: ${String(e)} is not a <form data-wui-unsaved>.`);J.set(e,{saved:Y(e),engaged:!1,discarded:!1})}var Pn=Object.freeze({question:`Discard your changes?`,discard:`Discard`,keep:`Keep editing`}),Fn=`wui:drawer:discard`,Z=`wui-drawer[confirm-discard]`,In=`.wui-modal-shell`,Ln=`data-wui-no-discard`,Rn=`.wui-drawer-discard`,zn=`input, select, textarea`,Q=/* @__PURE__ */ new WeakMap,Bn=/* @__PURE__ */ new WeakSet,Vn=/* @__PURE__ */ new WeakSet;function Hn(n,r,i,a){let o=n.createElement(`button`);return o.type=`button`,o.className=e(r,`sm`),o.dataset.wui=t,o.setAttribute(i,``),o.textContent=a,o}function Un(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,Hn(e,`danger`,`data-wui-discard-confirm`,Pn.discard),Hn(e,`soft`,`data-wui-discard-keep`,Pn.keep)),n}function Wn(e){let t=e.closest?.(Z);if(t)return t;let n=e.closest?.(In);return n&&$(n).length?n:null}function Gn(e){return e.closest(Z)??e.closest(In)}function Kn(e,t){return t.hasAttribute(Ln)||e.hasAttribute(Ln)?!1:t.hasAttribute(`confirm-discard`)||e.hasAttribute(`data-wui-confirm-discard`)?!0:(e.getAttribute(`method`)||`get`).toLowerCase()!==`get`}function $(e){return e.matches(Z)?e.querySelectorAll(`form`):[...e.querySelectorAll(`form`)].filter(t=>Kn(t,e))}function qn(e){let t=Q.get(e);return t!=null&&X(e)!==t}function Jn(e){let t=e.ownerDocument.createElement(`div`);return t.className=`wui-drawer-footer`,e.querySelector(`.wui-drawer-panel`).append(t),Vn.add(t),t}function Yn(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),Vn.add(t),t}function Xn(e){e.querySelector(`[data-wui-discard-confirm]`).focus()}function Zn(e,t,n){let r=e.querySelector(Rn);if(r){Xn(r);return}let i=Un(e.ownerDocument,t),a;e.matches(Z)?(a=e.querySelector(`.wui-drawer-footer`)??Jn(e),a.prepend(i)):e.hasAttribute(`confirm-discard`)?(a=e.querySelector(`.wui-modal-footer`)??Yn(e),a.prepend(i)):(a=n.querySelector(`.modal-footer`),a?a.prepend(i):(a=n,n.append(i))),a.classList.add(`wui-drawer-discarding`),Xn(i)}function Qn(e){let t=e.parentElement;e.remove(),t.classList.remove(`wui-drawer-discarding`),Vn.has(t)&&t.remove()}function $n(e){for(let t of $(e)){let e=[...t.querySelectorAll(zn)].find(e=>e.type!==`hidden`&&!e.disabled);if(e){e.focus();return}}}function er(e){let t=Wn(e.target);if(t)for(let e of $(t))Q.get(e)??Q.set(e,X(e))}function tr(e){for(let t of e.currentTarget.querySelectorAll(`form`)){let e=Q.get(t);e!=null&&Q.set(t,gn(t,e))}}function nr(e){let t=e.target;t instanceof HTMLFormElement&&Wn(t)&&Q.set(t,X(t))}function rr(e){let t=e.detail?.handle?.el;if(t instanceof Element)for(let e of t.querySelectorAll(`form`))Q.delete(e)}function ir(e){let t=e.target;t instanceof Element&&t.matches(Z)&&[...$(t)].some(qn)&&(e.preventDefault(),Zn(t,t.getAttribute(`confirm-discard`),null))}function ar(e){let t=e.target;if(!(t instanceof Element)||!t.matches(In))return;let n=[...$(t)].find(qn);n&&(e.preventDefault(),Zn(t,n.getAttribute(`data-wui-confirm-discard`)??t.getAttribute(`confirm-discard`)??Pn.question,n))}function or(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(In);n&&window.bootstrap?.Modal?.getInstance(n)?.hide()}function sr(e){let t=e.closest(Rn),n=Gn(t);Qn(t);for(let e of $(n))Q.set(e,X(e));n.dispatchEvent(new CustomEvent(Fn,{bubbles:!0})),n.matches(Z)?n.hide():window.bootstrap.Modal.getInstance(n).hide()}function cr(e){let t=e.closest(Rn),n=Gn(t);Qn(t),$n(n)}function lr(e){let t=e.target,n=t.closest?.(`[data-wui-discard-confirm]`);if(n){sr(n);return}let r=t.closest?.(`[data-wui-discard-keep]`);if(r){cr(r);return}let i=t.closest?.(`[data-wui-dismiss]`);i&&or(i)}function ur(e){if(e.key!==`Escape`)return;let t=e.currentTarget.querySelector(Rn);if(!t)return;e.preventDefault(),e.stopPropagation();let n=Gn(t);Qn(t),$n(n)}function dr(e=document){let t=e.ownerDocument||e;Bn.has(t)||(Bn.add(t),t.addEventListener(`focusin`,er),t.addEventListener(`pointerdown`,er),t.addEventListener(`submit`,nr),t.addEventListener(n,tr),t.addEventListener(`wui:modal:success`,rr),t.addEventListener(`wui:modal:loaded`,rr),t.addEventListener(`wui-drawer-close`,ir,!0),t.addEventListener(`hide.bs.modal`,ar),t.addEventListener(`click`,lr),t.addEventListener(`keydown`,ur,!0))}export{Ze as C,Je as S,$e as T,Et as _,ln as a,gt as b,Nn as c,jt as d,At as f,Dt as g,cn as h,dr as i,G as l,Wt as m,Pn as n,X as o,K as p,Un as r,Mn as s,Fn as t,kt as u,mt as v,Ye as w,et as x,_t as y};
|