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