iszolea-ui 1.0.21 → 1.0.22

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/js/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  // Iszolea Corp ©
2
- (()=>{var Kr=Object.defineProperty,pa=Object.defineProperties;var ca=Object.getOwnPropertyDescriptors;var Wr=Object.getOwnPropertySymbols;var ha=Object.prototype.hasOwnProperty,fa=Object.prototype.propertyIsEnumerable;var zr=(t,e,i)=>e in t?Kr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,w=(t,e)=>{for(var i in e||(e={}))ha.call(e,i)&&zr(t,i,e[i]);if(Wr)for(var i of Wr(e))fa.call(e,i)&&zr(t,i,e[i]);return t},S=(t,e)=>pa(t,ca(e));var me=(t,e)=>{for(var i in e)Kr(t,i,{get:e[i],enumerable:!0})};var wt=(n=>(n[n.Invalid=0]="Invalid",n[n.Valid=1]="Valid",n[n.ExpireSoon=2]="ExpireSoon",n[n.Expired=3]="Expired",n))(wt||{});var Xe=(a=>(a[a.GridView=0]="GridView",a[a.Dashboard=1]="Dashboard",a[a.MenuNode=2]="MenuNode",a[a.Report=3]="Report",a[a.Diagram=4]="Diagram",a[a.CDM=5]="CDM",a))(Xe||{});function O(t,e=!0){let i=e?"success":"error",r=e?2e3:4e3;DevExpress.ui.notify({message:t,type:i,onShowing:n=>{let o=n.element.find(".dx-toast-message");o.html((o.html()||"").replace("\\n","<br />"))}},i,r)}var qt=t=>t?Array.isArray(t)?t[0].StackTrace!==void 0||t[0].Error!==void 0:t.Error!==void 0:!1;var Ye=(i=>(i[i.Completed=1]="Completed",i[i.Errored=2]="Errored",i))(Ye||{});var Li={};me(Li,{createButtons:()=>Qr,createDialog:()=>_e,createItem:()=>wa});var Pi={};me(Pi,{CSS_CLASSES:()=>ee});var ee={dxDataGrid:"iszolea-dx-datagrid",dxButton:"iszolea-dx-button",dxPopup:"iszolea-dx-popup"};var ma="popup-content",ga="popup-footer",va="buttons",Ri="ok-btn",Jr="cancel-btn";function ya(t,e){return{$content:$("<div />").addClass(ma).addClass(e).appendTo(t),$footer:$("<div />").addClass(ga).appendTo(t)}}var Xt=[];function xa(t,e,i=!1){let r=e.onShowing;e.onShown=a=>{r&&r(a);let s=o.content().find("input[type=text]"),l=s.eq(0);l.focus();let d={keydown:u=>{Xt[Xt.length-1]===o&&(u.keyCode===13&&$(u.currentTarget).trigger("change"),n(u))}};i?s.on(d):l.on(d)};function n(a){a.keyCode===13&&o.content().find(`.${ee.dxButton}.${Ri}`).click(),a.keyCode===27&&o.content().find(`.${ee.dxButton}.${Jr}`).click()}let o=t.dxPopup(e).dxPopup("instance");return{show:()=>{o.show(),$(document).on({keydown:n}),Xt.push(o)},hide:()=>{$(document).off({keydown:n}),o.hide(),Xt.pop()},remove:()=>t.remove()}}function Qr(t,e){let i=$("<table />").addClass(va),r=$("<tr>").appendTo(i);return t&&$("<td />").attr("width","50%").append($("<div />").addClass(ee.dxButton).addClass(Ri).dxButton(t)).appendTo(r),e&&$("<td />").attr("width","50%").append($("<div />").addClass(ee.dxButton).addClass(Jr).dxButton(e)).appendTo(r),i}function wa(t,e){return $("<div />").addClass("item").append($("<div />").addClass("form-label").text(t),$("<div />").addClass("value").append(e))}function _e(t,e,i,r,n){let o=$("<div>").appendTo("body"),a=null,s=null,l=n?n.useKeyPressBehavior:!1;function d(){s.hide(),s.remove()}let u={contentTemplate:p=>{let{$content:g,$footer:b}=ya(p);g.append(e),i&&r?(a=Qr({text:i.text,icon:i.icon,disabled:i.disabled,type:"success",onClick:I=>i.onClick(d)},{text:r.text,icon:r.icon,disabled:r.disabled,onClick:I=>r.onClick(d)}),b.append(a)):b.remove()},elementAttr:{class:"iszolea-dx-popup"}},c={};return $.extend(!0,c,t,u),s=xa(o,c,l),s.show(),{okBtn:a?a.find(`.${Ri}`).dxButton("instance"):null,close:()=>d()}}var Ia="iszolea-error-dx-popup",ba="iszolea-error-dx-popup__content",Da="iszolea-error-dx-popup__error-message",Ca="iszolea-error-dx-popup__error-details",jr="Show details",Ea="Hide details";function qr(t,e){let i,r=Array.isArray(e)?e:[e],n=$("<div />").addClass(ba);r.forEach((s,l)=>{let d=$("<p />").addClass(Da).text(s.Error),u=$("<p />").addClass(Ca).text(s.StackTrace);n.append(d,u).hide(),l<r.length-1&&n.append($("<hr />"))});let o=_e({title:t,height:"auto",animation:{show:{direction:"bottom",type:"slideIn"},hide:{direction:"bottom",type:"slideOut"}},position:{my:"bottom",at:"bottom",offset:{y:-50}},shading:!1,dragEnabled:!1,onInitialized:s=>{i=s.component,s.element.addClass(Ia)}},n,{text:jr,onClick:()=>{let s=!i.option("fullScreen");a(s),o.okBtn.option("text",s?Ea:jr)}},{text:"Close",onClick:s=>s()}),a=s=>{n.toggle(s),i.option("fullScreen",s),i.repaint()}}var It=(r=>(r[r.UnexpectedException=0]="UnexpectedException",r[r.SqlException=1]="SqlException",r[r.IszoleaConfigurationException=2]="IszoleaConfigurationException",r))(It||{});var Yt=t=>{switch(t){case 1:return"We attempted to execute the data query however it appears there is an error in the data source.";case 2:return"Something wrong with iszolea configuration. Check ClientId/ClientSecret fields in the appsettings.json file.";default:return""}};var _i="Unexpected error occurred. Please contact to developers.",Sa=[504],Ai=()=>_i;function Ze(t,e=!1){return e&&O(t.Message),JSON.stringify(t.Data)}function Ae(t,e,i){let r=t.Message,n={message:r},o,a=Ta(r);if(a!==null?o=(i?i(a):"")||_i:o=r||_i,e){let s=t.Data;if(qt(s)){let l=Array.isArray(s)&&s.length,d=!Array.isArray(s)&&(s.StackTrace||s.Error);if(l||d)return qr(o,s),n}O(o,!1)}return n}function Ta(t){return!isNaN(t)&&It[+t]?+t:null}function Xr(t){let e=t.request.response?JSON.parse(t.request.response):{};return e.RequestState===1?(Ze(e),!0):(Ae(e,!0),!1)}function x(t,e="GET",i=null,r,n){let o=$.Deferred(),a=(n==null?void 0:n.notifyError)===void 0||n.notifyError,s={headers:{Accept:"application/json"}},l=$.extend({type:e,url:t,data:i},n,s);return $.ajax(l).done(d=>{let u=d;if(u.RequestState===1){Ze(u,r),o.resolve(u.Data);return}let{message:c}=Ae(u,a,(n==null?void 0:n.getUserFriendlyErrorMessage)||Yt);o.reject(c)}).fail((d,u)=>{!Sa.includes(d.status)&&a&&O(Ai(),!1),o.reject(u)}),o}function te(t){let e=DevExpress.data.AspNet.createStore(S(w({},t),{onBeforeSend:(i,r)=>{t.onBeforeSend&&t.onBeforeSend(i,r);let n=(t==null?void 0:t.notifyError)===void 0||t.notifyError;r.dataFilter=o=>{let a=JSON.parse(o);return a.RequestState===1?Ze(a,t.notifySuccess):JSON.stringify(Ae(a,n,t==null?void 0:t.getUserFriendlyErrorMessage))},r.error=o=>{let a=JSON.parse(o.responseText||"{}");a.RequestState||Ae(a,n,t==null?void 0:t.getUserFriendlyErrorMessage)}}}));return e._errorHandler=i=>{i&&!i.message&&(i.message=Ai())},e}var Gi={};me(Gi,{default:()=>se});var Ge={};async function se(t){if(Ge[t])return await Ge[t];Ge[t]=x(t),Ge[t].catch(i=>{throw Ge[t]=null,i});let e=await Ge[t];return Ge[t]=null,e}var Yr={sendRequest:x,handleError:Ae,handleSuccess:Ze,handleUpload:Xr,createDxDataSource:te,isErrorInfo:qt,loadWithMultipleProtection:Gi};var U=t=>{throw new Error(`The required ${t?`${t} `:""} isn't created`)};var Ui={};me(Ui,{WindowResizeListener:()=>ge,bootstrapLayoutBreakpoints:()=>Z,getUrlByMenuItemData:()=>Se});var Z={xs:{name:"xs",minWidth:0,maxWidth:575},sm:{name:"sm",minWidth:576,maxWidth:767},md:{name:"md",minWidth:768,maxWidth:991},lg:{name:"lg",minWidth:992,maxWidth:1199},xl:{name:"xl",minWidth:1200,maxWidth:1/0}},Ma=Object.getOwnPropertyNames(Z).map(t=>Z[t]),ge=class{constructor(e,i,r=100,n=Ma){this.onWindowResizeListener=this.onWindowResize.bind(this);this.onResize=e,this.onLayoutBreakpointChanged=i,this.resizeDelay=r,this.layoutBreakpoints=n,this.currentLayoutBreakpoint=this.getLayoutBreakpointByWindowWidth(window.innerWidth),this.attachEvents()}destroy(){this.detachEvents()}attachEvents(){window.addEventListener("resize",this.onWindowResizeListener)}detachEvents(){window.removeEventListener("resize",this.onWindowResizeListener)}getLayoutBreakpointByWindowWidth(e){return this.layoutBreakpoints.find(i=>i.minWidth<=e&&(!i.maxWidth||i.maxWidth>=e))}onWindowResize(e){clearTimeout(this.lastWindowResizeTimeoutId),this.lastWindowResizeTimeoutId=window.setTimeout(()=>this.onWindowResizeInternal(e),this.resizeDelay)}onWindowResizeInternal(e){let i=this.getLayoutBreakpointByWindowWidth(window.innerWidth);if(this.currentLayoutBreakpoint!==i){let r=this.currentLayoutBreakpoint;this.currentLayoutBreakpoint=i,this.emitBreakpointChanged({previousBreakpoint:r,currentBreakpoint:this.currentLayoutBreakpoint,originalEvent:e})}this.emitResizeEvent(e)}emitResizeEvent(e){var i;try{(i=this.onResize)==null||i.call(this,e)}catch(r){console.error(r)}}emitBreakpointChanged(e){var i;try{(i=this.onLayoutBreakpointChanged)==null||i.call(this,e)}catch(r){console.error(r)}}};function Se(t){let{Area:e,Controller:i,Action:r,IsClickable:n}=t;if(n&&i)return encodeURI(e?`/${e}/${i}/${r}`:`/${i}/${r}`)}var j={isLegacyRender:!1};var Vi=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.container=e.container,this.userName=e.userName,this.items=e.items,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.getDisplayedUserInfo=e.getDisplayedUserInfo||Vi.defaultGetDisplayedUserInfo,this.onItemClick=e.onItemClick,this.windowResizeListener=new ge(void 0,this.onLayoutBreakpointChangedListener)}get root(){return this._root}render(){if(!this.root){if(this.renderMainElements(),this.renderUserInfo(),this.renderItems(),!this.root)return U("root");this.container.appendChild(this.root)}}addItems(e){this.items=this.items.concat(e),this.renderItems()}insertItems(e,i){this.items.splice(i,0,...e),this.renderItems()}updateItems(e){this.items=e,this.renderItems()}get isMobileView(){return this.windowResizeListener.currentLayoutBreakpoint.maxWidth<this.collapseBreakpoint.maxWidth}renderMainElements(){this._root=document.createElement("div"),this._root.classList.add("user-menu"),this.mobileContentContainer=document.createElement("div"),this.mobileContentContainer.classList.add(`d-${this.collapseBreakpoint.name}-none`),this.desktopRootDropdown=document.createElement("div"),this.desktopRootDropdown.classList.add("dropdown","d-none",`d-${this.collapseBreakpoint.name}-block`),this.desktopContentTrigger=document.createElement("button"),this.desktopContentTrigger.classList.add("header__icon-button","btn","btn-outline-light"),this.desktopContentTrigger.setAttribute("type","button"),this.desktopContentTrigger.setAttribute("data-toggle","dropdown");let e=document.createElement("i");j.isLegacyRender?e.classList.add("header__icon-button-icon","fas","fa-user"):e.classList.add("header__icon-button-icon","isoz-icon-user"),this.desktopContentContainer=document.createElement("div"),this.desktopContentContainer.classList.add("dropdown-menu","dropdown-menu-right"),this.desktopContentTrigger.appendChild(e),this.desktopRootDropdown.appendChild(this.desktopContentTrigger),this.desktopRootDropdown.appendChild(this.desktopContentContainer),this.itemsContainer=document.createElement("ul"),this.itemsContainer.classList.add("user-menu__items"),j.isLegacyRender?(this.userInfoContainer=document.createElement("h6"),this.userInfoContainer.classList.add("user-info","h6")):(this.userInfoContainer=document.createElement("a"),this.userInfoContainer.classList.add("user-info","dropdown-item")),this.userInfoDivider=document.createElement("div"),this.userInfoDivider.classList.add("dropdown-divider","d-none",`d-${this.collapseBreakpoint.name}-block`),this.isMobileView?(this.mobileContentContainer.appendChild(this.userInfoContainer),this.mobileContentContainer.appendChild(this.userInfoDivider),this.mobileContentContainer.appendChild(this.itemsContainer)):(this.desktopContentContainer.appendChild(this.userInfoContainer),this.desktopContentContainer.appendChild(this.userInfoDivider),this.desktopContentContainer.appendChild(this.itemsContainer)),this._root.appendChild(this.mobileContentContainer),this._root.appendChild(this.desktopRootDropdown)}renderUserInfo(){if(!this.userInfoContainer)return U("userInfoContainer");if(j.isLegacyRender){let e=document.createElement("span");e.classList.add("user-info__content"),e.innerText=this.getDisplayedUserInfo(this.userName),this.userInfoContainer.appendChild(e)}else this.userInfoContainer.innerText=this.getDisplayedUserInfo(this.userName)}renderItems(){if(!this.itemsContainer)return U("itemsContainer");this.clearItemsContainer(),this.items.forEach(e=>{let i=this.createItemElement(e,this.isMobileView);this.itemsContainer.appendChild(i)})}createItemElement(e,i){let r=this.createItemElementBase(e),n=document.createElement("a");return n.classList.add(i?"nav-link":"dropdown-item"),n.href=e.Url||"javascript:void(0)",n.text=e.Text,r.appendChild(n),this.attachEventsToItem(n,e),r}createItemElementBase(e){let i=document.createElement("li");return i.classList.add("nav-item"),i}attachEventsToItem(e,i){e.addEventListener("click",r=>this.onMenuItemClick({item:i,originalEvent:r}))}switchView(e){e?(this.applyMobileViewForUserInfo(),this.applyMobileViewForItems()):(this.applyDesktopViewForUserInfo(),this.applyDesktopViewForItems())}applyMobileViewForUserInfo(){this.mobileContentContainer.insertBefore(this.userInfoContainer,null),this.mobileContentContainer.insertBefore(this.userInfoDivider,null)}applyDesktopViewForUserInfo(){this.desktopContentContainer.insertBefore(this.userInfoContainer,null),this.desktopContentContainer.insertBefore(this.userInfoDivider,null)}applyMobileViewForItems(){var e;this.mobileContentContainer.insertBefore(this.itemsContainer,null);for(let i of this.itemsContainer.children)(e=i.firstElementChild)==null||e.classList.replace("dropdown-item","nav-link")}applyDesktopViewForItems(){var e;this.desktopContentContainer.insertBefore(this.itemsContainer,null);for(let i of this.itemsContainer.children)(e=i.firstElementChild)==null||e.classList.replace("nav-link","dropdown-item")}clearItemsContainer(){for(;this.itemsContainer.firstChild;)this.itemsContainer.firstChild.remove()}emitItemClick(e){var i,r,n;try{(i=this.onItemClick)==null||i.call(this,e),(n=(r=e.item).OnClick)==null||n.call(r,e)}catch(o){console.error(o)}}onLayoutBreakpointChanged(e){this.switchView(this.isMobileView)}async onMenuItemClick(e){this.emitItemClick(e),e.cancel&&e.originalEvent.preventDefault()}},Ue=Vi;Ue.defaultGetDisplayedUserInfo=e=>`Welcome ${e}`;var Zt=class{constructor(e){this.container=e.container,this.items=e.items,this.onItemClick=e.onItemClick}updateItems(e){this.items=e}emitItemClick(e){var i;try{(i=this.onItemClick)==null||i.call(this,e)}catch(r){console.error(r)}}};var et=class extends Zt{constructor(e){super(e);this.onWindowResizeEventHandler=this.onWindowResize.bind(this);this.onToggleDropdownButtonClickHandler=this.onToggleDropdownButtonClick.bind(this);this.onToggleDropdownButtonMouseEnterHandler=this.onToggleDropdownButtonMouseEnter.bind(this);this.itemActionMode=e.itemAction||"hover",this.collapsingMode=e.collapsingMode??3,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.collapseIconName=e.collapseIcon||"fa-ellipsis-v",this.windowResizeListener=new ge(this.collapsingMode===3?this.onWindowResizeEventHandler:void 0,void 0,et.adaptivityCollapsingDelay)}render(){if(!this.root){if(this.renderRoot(),this.renderItems(),!this.root)return U("root");this.container.appendChild(this.root)}}updateItems(e){if(super.updateItems(e),!this.root)return new Error("The BootstrapCollapsingMenu isn't rendered");for(;this.root.firstChild;)this.root.firstChild.remove();this.renderItems()}applyAdaptivityCollapsing(){if(!(this.collapsingMode!==3||!this.root||!this.items.length||!this.collapseRoot||!this.collapseDropdown))if(this.isNeedCollapse()){this.collapseRoot.classList.remove("d-none");do{let e=this.root.children[this.root.children.length-2];if(!e)break;this.moveRootItemsToCollapseDropdown(e)}while(this.isNeedCollapse())}else{for(;this.collapseDropdown.children.length;)if(this.moveRootItemsToRoot(this.collapseDropdown.firstElementChild),this.isNeedCollapse()){let e=this.root.children[this.root.children.length-2];e&&this.moveRootItemsToCollapseDropdown(e);break}this.collapseDropdown.children.length||this.collapseRoot.classList.add("d-none")}}updateActiveItemsState(){this.forEachMenuItemRecursive(this.items,e=>{let i=e.active;e.active=ki(e.originalModel),e.active!==i&&this.applyStatesToItemElement(e.menuItemEl.firstElementChild,e)})}closeOpenedDropdown(e){this.itemActionMode==="hover"&&(this.root.classList.remove(et.HOVER_MODE_CSS_CLASS),$(e).one("mouseleave",()=>{this.root.classList.add(et.HOVER_MODE_CSS_CLASS)}))}forEachMenuItemRecursive(e,i){e.forEach(r=>{i(r),this.isNestedItemsOwnerItem(r)&&this.forEachMenuItemRecursive(r.items,i)})}renderRoot(){this.root=document.createElement("ul"),this.root.classList.add("navbar-nav","mr-auto"),this.itemActionMode==="hover"&&this.root.classList.add(et.HOVER_MODE_CSS_CLASS)}renderItems(){this.renderRootItems(),this.items.length&&this.collapsingMode!==0&&(this.root||U("root"),this.root.style.visibility="hidden",this.renderCollapseElements(),setTimeout(()=>{this.applyAdaptivityCollapsing(),this.root.style.visibility=""},10)),this.changeDefaultDropdownBehaviorForNestedDropdown()}changeDefaultDropdownBehaviorForNestedDropdown(){$(this.root.querySelectorAll(".dropdown")).on("hide.bs.dropdown",e=>!(e.target!==this.currentOpeningSubMenu&&e.target.contains(this.currentOpeningSubMenu))),$(this.root.querySelectorAll(".dropdown-submenu")).on("show.bs.dropdown",e=>{this.currentOpeningSubMenu=void 0})}renderCollapseElements(){if(!this.root)return U("root");this.collapseRoot=document.createElement("li"),this.collapseRoot.classList.add("nav-item","dropdown","collapsing-menu__collapse-root"),this.collapseButton=document.createElement("button"),this.collapseButton.classList.add("header__icon-button","btn","btn-outline-light"),this.collapseButton.setAttribute("type","button"),this.collapseButton.setAttribute("data-toggle","dropdown");let e=document.createElement("i");e.classList.add("header__icon-button-icon","fas",this.collapseIconName),this.collapseDropdown=document.createElement("ul"),this.collapseDropdown.classList.add("dropdown-menu","dropdown-menu-right"),this.collapseButton.appendChild(e),this.collapseRoot.appendChild(this.collapseButton),this.collapseRoot.appendChild(this.collapseDropdown),this.root.appendChild(this.collapseRoot)}renderRootItems(){if(!this.root)return U("root");this.items.forEach(e=>{let i;this.isNestedItemsOwnerItem(e)?i=this.createRootItemWithNestedItems(e):i=this.createRootItemElement(e),this.root.appendChild(i)})}createRootItemWithNestedItems(e){let i=this.createRootItemElement(e);i.classList.add("dropdown");let r=i.querySelector(".nav-link");r instanceof HTMLElement&&this.setItemContentAsDropdownToggler(r);let n=this.createDropdownMenu(e);return i.appendChild(n),i}createRootItemElement(e){let i=document.createElement("li");i.classList.add("nav-item"),e.title&&i.setAttribute("title",e.title);let r=document.createElement("a");r.classList.add("nav-link"),r.href=e.url||"javascript:void(0)",r.text=e.text;let n=this.createItemIconElement(e);return n&&r.insertBefore(n,r.firstChild),this.applyStatesToItemElement(r,e),this.attachEventsToItem(r,e),i.appendChild(r),e.menuItemEl=i,i}createNestedSubMenuItemElement(e){let i=this.createNestedItem(e);i.classList.add("dropdown","dropdown-submenu");let r=i.querySelector(".dropdown-item");r instanceof HTMLElement&&this.setItemContentAsDropdownToggler(r);let n=this.createDropdownMenu(e);return i.appendChild(n),i}createNestedItem(e){let i=document.createElement("li");e.title&&i.setAttribute("title",e.title);let r=document.createElement("a");r.classList.add("dropdown-item"),r.href=e.url||"javascript:void(0)",r.text=e.text;let n=this.createItemIconElement(e);return n&&r.insertBefore(n,r.firstChild),this.applyStatesToItemElement(r,e),this.attachEventsToItem(r,e),i.appendChild(r),e.menuItemEl=i,i}createDropdownMenu(e){let i=document.createElement("ul");return i.classList.add("dropdown-menu"),e.items.forEach(r=>{let n;this.isNestedItemsOwnerItem(r)?n=this.createNestedSubMenuItemElement(r):n=this.createNestedItem(r),i.appendChild(n)}),i}createItemIconElement(e){if(!e.icon)return null;let i=document.createElement("i");return i.style.backgroundImage=`url(${e.icon})`,i}setItemContentAsDropdownToggler(e){e.classList.add("dropdown-toggle"),e.setAttribute("data-toggle","dropdown"),e.addEventListener("click",this.onToggleDropdownButtonClickHandler),e.addEventListener("mouseenter",this.onToggleDropdownButtonMouseEnterHandler)}applyStatesToItemElement(e,i){i.active?e.classList.add("active"):e.classList.remove("active"),i.hidden?e.classList.add("d-none"):e.classList.remove("d-none"),i.disabled?e.classList.add("disabled"):e.classList.remove("disabled")}attachEventsToItem(e,i){e.addEventListener("click",r=>this.emitItemClick({item:i,originalEvent:r}))}isNestedItemsOwnerItem(e){return e.items&&e.items.length&&e.items.some(i=>!i.hidden)}moveRootItemsToCollapseDropdown(e){if(e instanceof Element)this.applyCollapsingViewForRootItem(e),this.collapseDropdown.insertBefore(e,this.collapseDropdown.firstElementChild);else{let i=document.createDocumentFragment();for(let r of e)i.insertBefore(r,i.firstElementChild),this.applyCollapsingViewForRootItem(r);this.collapseDropdown.appendChild(i)}}moveRootItemsToRoot(e){if(e instanceof Element)this.applyExpandedViewForRootItem(e),this.root.insertBefore(e,this.root.children[this.root.children.length-1]||null);else{let i=document.createDocumentFragment();for(let r of e)i.insertBefore(r,i.firstElementChild),this.applyExpandedViewForRootItem(r);this.root.appendChild(i)}}applyCollapsingViewForRootItem(e){e.classList.add("dropdown-submenu");for(let i of e.children)i.classList.replace("nav-link","dropdown-item")}applyExpandedViewForRootItem(e){e.classList.remove("dropdown-submenu");for(let i of e.children)i.classList.replace("dropdown-item","nav-link")}isNeedCollapse(){if(this.windowResizeListener.currentLayoutBreakpoint.minWidth<this.collapseBreakpoint.minWidth)return!1;this.root.style.maxWidth="none";let e=this.root.getBoundingClientRect();this.root.classList.add("collapsing-menu_normal-white-space");let i=this.root.getBoundingClientRect();return this.root.classList.remove("collapsing-menu_normal-white-space"),this.root.style.maxWidth="",e.width>i.width}isDropdownRectsIntersect(e,i,r=2){return e.left<i.right-r&&i.left+r<e.right&&e.top<i.bottom-r&&i.top+r<e.bottom}applyShadowsForOverlapingDropdownIfNeeded(e){e.style.left="",e.classList.remove("dropdown-menu-left-shadowed");let i=e.getBoundingClientRect();i.right>window.innerWidth&&(e.style.left=`-${i.width}px`),i=e.getBoundingClientRect();let r=document.querySelectorAll(".dropdown-menu");for(let n of r)if(n!==e&&this.isDropdownRectsIntersect(n.getBoundingClientRect(),i)){e.classList.add("dropdown-menu-left-shadowed");break}}onWindowResize(e){this.applyAdaptivityCollapsing()}onToggleDropdownButtonClick(e){e.target instanceof HTMLElement&&e.target.parentElement&&(this.currentOpeningSubMenu=e.target.parentElement)}onToggleDropdownButtonMouseEnter(e){this.windowResizeListener.currentLayoutBreakpoint.maxWidth>=this.collapseBreakpoint.maxWidth&&e.target instanceof HTMLElement&&e.target.nextElementSibling instanceof HTMLElement&&e.target.nextElementSibling.classList.contains("dropdown-menu")&&this.applyShadowsForOverlapingDropdownIfNeeded(e.target.nextElementSibling)}},tt=et;tt.HOVER_MODE_CSS_CLASS="navbar-nav_hover-action",tt.adaptivityCollapsingDelay=50;var Zr=(t,e)=>{var i;for(let r of t){if(r.Name===e)return r;if((i=r.Items)==null?void 0:i.length){let n=Zr(r.Items,e);if(n)return n}}},en=t=>{let e=t.Items;if(!e||!e.length){let r=Se(t);return r?[r]:[]}let i=[];for(let r of e)i=i.concat(en(r));return i},ki=t=>{let e=window.location.pathname+window.location.search,i=en(t);for(let r of i)if(new RegExp(`^.*${r.replace("?","\\?")}$`).test(e))return!0;return!1},it=class{constructor(e,i,r,n,o){this.onMenuItemClickHandler=this.onMenuItemClick.bind(this);this.container=e,this.isGlobalMenu=r,this.items=i,this.onNavigationMenuItemClick=o,this.menu=new tt({container:this.container,items:this.mapNavigationMenuItemModelToMenuItems(i),collapseBreakpoint:n,onItemClick:this.onMenuItemClickHandler})}updateData(e,i){this.items=e,this.isGlobalMenu=i,this.menu.updateItems(this.mapNavigationMenuItemModelToMenuItems(this.items))}render(){this.menu.render()}applyAdaptivityCollapsing(){this.menu.applyAdaptivityCollapsing()}updateActiveItemsState(){this.menu.updateActiveItemsState()}async onMenuItemClick(e){let i=this.mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e);if(i&&(this.emitNavigationMenuItemClick(i),i.cancel)){e.originalEvent.preventDefault();let r=e.originalEvent.target;this.menu.closeOpenedDropdown(r)}}emitNavigationMenuItemClick(e){var i,r,n;try{(i=this.onNavigationMenuItemClick)==null||i.call(this,e),(n=(r=e.item).OnClick)==null||n.call(r,e)}catch(o){console.error(o)}}mapNavigationMenuItemModelToMenuItems(e){return e.map(i=>({text:i.Name,icon:i.Icon,items:i.Items?this.mapNavigationMenuItemModelToMenuItems(i.Items):void 0,url:Se(i),hidden:i.Visible===!1,active:ki(i),disabled:i.Disabled,title:i.Description,originalModel:i}))}mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e){let i=Zr(this.items,e.item.text);return i?{originalEvent:e.originalEvent,cancel:!1,item:S(w({},i),{isGlobal:this.isGlobalMenu})}:null}};var Ve="iszolea-ui|logo-settings";var $i=class{constructor(e,i){this.$container=e,this.dataSource=i}initWidget(){return this._initWidget(this.dataSource)}updateData(){return window.sessionStorage.removeItem(Ve),this.$imageElement.remove(),this.$titleContainer.remove(),this._initWidget(this.dataSource)}_initWidget(e){let i=window.sessionStorage.getItem(Ve);return i?(this._createLogo(JSON.parse(i)),$.Deferred()):this._createLogo(e)}_createLogo(e){if(typeof e=="object"){let i=e;return this._createLogoMarkup(i),$.Deferred()}return x(this.dataSource,"post").done(i=>{let r={};r.applicationName=i.ApplicationName,r.businessName=i.BusinessName,r.logoImage=i.LogoImage,r.landingPageLogo=i.LandingPageLogo,r.description=i.Description,window.sessionStorage.setItem(Ve,JSON.stringify(r)),this._createLogoMarkup(r)})}_createLogoMarkup(e){this.$imageElement=$("<img />").attr("src",e.logoImage).appendTo(this.$container),this.$titleContainer=$("<span />").addClass("title-container").appendTo(this.$container),this.$titleContainer.append($("<div />").addClass("business-name").text(e.businessName)),this.$titleContainer.append($("<div />").addClass("app-name").text(e.applicationName.toUpperCase()))}};var rt=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.desktopContainer=e.desktopContainer,this.mobileContainer=e.mobileContainer,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.onSwitch=e.onSwitch,this._value=e.startValue!==void 0?e.startValue:!0,this.windowResizeListener=new ge(void 0,this.onLayoutBreakpointChangedListener)}get value(){return this._value}get container(){return this.isMobileView?this.mobileContainer:this.desktopContainer}get isMobileView(){return this.windowResizeListener.currentLayoutBreakpoint.maxWidth<this.collapseBreakpoint.maxWidth}setVisible(e){var i;(i=this.menuSwitcher)==null||i.option("visible",e)}render(){this.renderSwitch()}destroy(){var i;let e=this.menuSwitcher.element();(i=this.menuSwitcher)==null||i.dispose(),e==null||e.remove()}setValue(e){this.menuSwitcher.option("value",e)}handleValueChanged(e){this.onValueChanged=e}renderSwitch(){this.menuSwitcher=$("<div>").dxSwitch({switchedOffText:"Personal",switchedOnText:"Global",value:this.value,width:"100px",onValueChanged:({value:e})=>{this._value=e,this.onSwitch&&this.onSwitch(this.value),this.onValueChanged&&this.onValueChanged(e)}}).dxSwitch("instance"),this.container.appendChild(this.menuSwitcher.element()[0])}switchView(){this.destroy(),this.render()}onLayoutBreakpointChanged(e){this.switchView()}};var ei=class{constructor(e){this.$container=e.$container,this.getMenuDataSource=e.getMenuDataSource,this.getIsGlobalMenuShown=e.getIsGlobalMenuShown,this.onDimensionsChanged=e.onDimensionsChanged,this.onMenuItemOpened=e.onMenuItemOpened,this.onMenuItemClick=e.onMenuItemClick}setVisible(e){var i;(i=this.searchDropDown)==null||i.option("visible",e),this.onDimensionsChanged&&this.onDimensionsChanged()}setSearchText(e){var i;(i=this.searchDropDown)==null||i.option("value",e)}reloadMenuItems(){var e;(e=this.searchResultsTreeList)==null||e.option("dataSource",this.getDataSourceForSearch(this.getMenuDataSource()))}render(){let e=document.createElement("form");e.classList.add("form-inline");let i=$("<div />").dxDropDownBox({placeholder:"Search",visible:!1,showDropDownButton:!1,applyValueMode:"instantly",acceptCustomValue:!0,openOnFieldClick:!1,mode:"search",elementAttr:{type:"search","aria-label":"Search"},contentTemplate:(r,n)=>{n.addClass("header-search-results-tree-list");let o=$("<div>").dxTreeList({dataSource:this.getDataSourceForSearch(this.getMenuDataSource()),hoverStateEnabled:!0,focusedRowEnabled:!0,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:!1},noDataText:"No search results",dataStructure:"tree",keyExpr:"Id",itemsExpr:"Items",filterMode:"fullBranch",showColumnHeaders:!1,columns:[{dataField:"Name",dataType:"string"}],onCellClick:({data:a})=>{this.navigateToMenuItem(a)},onKeyDown:a=>{let s=a.event,l=this.searchResultsTreeList.option("focusedRowKey");if(l!=null)switch(s.key){case"Enter":let d=this.searchResultsTreeList.getNodeByKey(l).data;this.navigateToMenuItem(d);break;case"ArrowRight":case" ":this.searchResultsTreeList.expandRow(l);break;case"ArrowLeft":this.searchResultsTreeList.collapseRow(l);break;case"Escape":setTimeout(()=>this.searchDropDown.focus());break}}});return this.searchResultsTreeList=o.dxTreeList("instance"),o},dropDownOptions:{position:{of:".search-dropdown",my:"top",at:"bottom",offset:{x:0,y:4}},animation:{show:{duration:0},hide:{duration:0}},closeOnOutsideClick:!1,onShown:r=>{this.searchDropDown.focus()}},onFocusIn:r=>{r.component.element().addClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged(),this.checkSearchResutPopupVisibility(r.component.element().find("input.dx-texteditor-input").val())},onFocusOut:r=>{r.component.element().find("input.dx-texteditor-input").val()||(r.component.element().removeClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged())},onKeyUp:r=>{setTimeout(()=>{let n=r.event,o=r.component.element().find("input.dx-texteditor-input").val();this.checkSearchResutPopupVisibility(o),this.searchResultsTreeList.searchByText(o),["Tab","Enter","ArrowDown","ArrowUp"].some(s=>s===n.key)&&this.searchResultsTreeList.focus(this.searchResultsTreeList.getCellElement(0,"Name"))})},onKeyDown:r=>{r.event.key==="Escape"&&this.closeSearchDropDown()},onValueChanged:r=>{this.checkSearchResutPopupVisibility(r.value)}}).addClass(["form-control","mr-sm-2","search-dropdown"]);this.searchDropDown=i.dxDropDownBox("instance"),e.appendChild(i[0]),this.$container.append(e)}navigateToMenuItem(e){var r;let i=Se(e);if(i){this.closeSearchDropDown();let n={item:e,originalEvent:null,cancel:!1};if((r=this.onMenuItemClick)==null||r.call(this,n),n.cancel)return;this.onMenuItemOpened&&this.onMenuItemOpened({menuItem:e}),window.location.href=i}}closeSearchDropDown(){var e,i,r;this.searchResultsTreeList.option("focusedRowKey",void 0),(e=this.searchDropDown)==null||e.option("value",""),(i=this.searchDropDown)==null||i.focus(),(r=this.searchDropDown)==null||r.blur()}checkSearchResutPopupVisibility(e){var i,r;e?(i=this.searchDropDown)==null||i.open():(r=this.searchDropDown)==null||r.close()}getDataSourceForSearch(e){if(!e)return;let i=r=>{let n=(o,a)=>{a.Items&&a.Items.length&&(a.Items=a.Items.reduce(n,[]));let s=a.Visible===void 0||a.Visible===null||a.Visible===!0,l=a.Disabled===!0;return s&&!l&&o.push(S(w({},a),{isGlobal:r})),o};return n};if(e.personalItems&&e.personalItems.length){let r={Name:"Global Menu",Id:-1,isGlobal:!0,Type:2,Items:e.gloabalItems.reduce(i(!0),[])},n={Name:"Personal Menu",Id:-2,isGlobal:!1,Type:2,Items:e.personalItems.reduce(i(!1),[])};return this.getIsGlobalMenuShown()?[r,n]:[n,r]}else return e.gloabalItems.reduce(i(!0),[])}};var Ni={};me(Ni,{EventEmitter:()=>ve,getGeneralUserFriendlyErrorMessage:()=>Yt});var ve=class{constructor(){this.eventListeners=[]}on(e,i){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(i),i}once(e,i){this.on(e,r=>{i(r),this.off(e,i)})}emit(e,i=null){let r=this.eventListeners[e];if(r)for(let n of r)n&&n.call(this,i)}off(e,i){let r=this.eventListeners[e];if(r){let n=[];for(let o of r)o!==i&&n.push(o);this.eventListeners[e]=n}}addHandler(e,i,r){let n=()=>{i(r(),()=>this.off(e,n))};this.on(e,n)}};var Oa="iszolea-ui|header-data-cache",tn="iszolea-ui|show-global-menu",Hi=t=>`${Oa}${t?`|${t}`:""}`,bt=class extends ve{constructor(e){super();this.onNaviagtionMenuItemClickHandler=this.onNaviagtionMenuItemClick.bind(this);this.onNavigationMenuItemOpenedHandler=this.onNavigationMenuItemOpened.bind(this);this.onUserMenuItemClickHandler=this.onUserMenuItemClick.bind(this);this.elements={};var i,r,n,o,a;this.$el=e.$el,this.menuSettings=e.menuSettings,this.logoSettings=e.logoSettings,this.theme=e.theme||"iszolea",this.displaySearch=e.displaySearch,this.collapseBreakpoint=((i=e.menuSettings)==null?void 0:i.collapseBreakpoint)||Z.md,this.$partialViewPlaceHolder=(r=e.menuSettings)==null?void 0:r.partialViewPlaceHolder,this.updateUrlAfterPartialLoading=(n=e.menuSettings)==null?void 0:n.updateUrlAfterPartialLoading,this.onPartialViewLoaded=(o=e.menuSettings)==null?void 0:o.onPartialViewLoaded,this.beforePartialViewLoading=(a=e.menuSettings)==null?void 0:a.beforePartialViewLoading,this.loadPanel=this.createLoadPanel(),e.immediateRender===!1&&console.warn("The 'immediateRender === false' option isn't supported at the moment."),DevExpress.ui.dxOverlay.baseZIndex(1700),this.render(),this.init().then(()=>{var s;return(s=e==null?void 0:e.onInit)==null?void 0:s.call(e)}),this.subscribeOnHistoryPopState()}async updateData(){!this.menuSettings||(this.clearAppMenuModelCache(),this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}render(){this.renderRoot(),this.renderBrand(),this.renderContentToggler(),this.renderContent(),this.renderLoadBar(),this.updateContentAndTogglerVisible()}subscribeOnHistoryPopState(){this.$partialViewPlaceHolder&&$(window).bind("popstate",e=>{let r=e.originalEvent.state;r&&r.isLoadedByAjax?(this.loadPageViaAjaxCore(r.url),this.updateMenuSwitcherState(r.isMenuSwitcherGlobal),this.navigationMenu.updateActiveItemsState()):location.reload()})}createLoadPanel(){return $("<div />").dxLoadPanel({shadingColor:"rgba(0,0,0,0.4)",visible:!1,showIndicator:!0,showPane:!0,shading:!0,closeOnOutsideClick:!1}).appendTo(this.$el).dxLoadPanel("instance")}renderRoot(){this.elements.root=this.$el[0],this.elements.root.classList.add("header",this.theme,"navbar","navbar-dark",`navbar-expand-${this.collapseBreakpoint.name}`)}renderBrand(){if(this.logo||!this.logoSettings)return;if(!this.elements.root)return U("root");let e=document.createElement("a");e.classList.add("header__brand","navbar-brand"),e.href="/",this.elements.root.appendChild(e),this.elements.logoContainer=e,this.logo=new $i($(this.elements.logoContainer),this.logoSettings),this.logo.initWidget()}renderSearch(){if(!!this.displaySearch){if(!this.elements.contentContainer)return U("contentContainer");this.search=new ei({$container:$(this.elements.contentContainer),getMenuDataSource:()=>this.getSearchDataSource(this.data),getIsGlobalMenuShown:()=>this.getIsGlobalMenuShown(),onDimensionsChanged:()=>{var e;return(e=this.navigationMenu)==null?void 0:e.applyAdaptivityCollapsing()},onMenuItemClick:this.onNaviagtionMenuItemClickHandler,onMenuItemOpened:this.onNavigationMenuItemOpenedHandler}),this.search.render()}}getIsGlobalMenuShown(){var e;return this.isShowGlobalMenu()||!((e=this.data)==null?void 0:e.AddGlobalPersonalSwitcher)}onNavigationMenuItemOpened(e){this.updateMenuSwitcherState(e.menuItem.isGlobal)}updateMenuSwitcherState(e){!this.menuSwitcher||this.menuSwitcher.value!==e&&this.menuSwitcher.setValue(e)}renderContentToggler(){if(!this.elements.root)return U("root");this.elements.toggleButton=document.createElement("button"),this.elements.toggleButton.classList.add("navbar-toggler"),this.elements.toggleButton.setAttribute("type","button"),this.elements.toggleButton.setAttribute("data-toggle","collapse"),this.elements.toggleButton.setAttribute("data-target",".header__content"),this.elements.toggleButton.onclick=()=>{var i;(i=this.search)==null||i.setSearchText("")};let e=document.createElement("span");e.classList.add("navbar-toggler-icon"),this.elements.toggleButtonContainer=document.createElement("div"),this.elements.toggleButtonContainer.classList.add("header__toggle-button-container"),this.elements.toggleButton.appendChild(e),this.elements.toggleButtonContainer.appendChild(this.elements.toggleButton),this.elements.root.appendChild(this.elements.toggleButtonContainer)}renderContent(){if(!this.elements.root)return U("root");this.elements.contentContainer=document.createElement("div"),this.elements.contentContainer.classList.add("collapse","navbar-collapse","header__content"),this.elements.root.appendChild(this.elements.contentContainer),this.renderSearch(),this.renderNavigationMenu([]),this.renderMenuSwitcher(),this.renderUserMenu([])}renderNavigationMenu(e){if(!this.elements.contentContainer)return U("contentContainer");let i=this.getIsGlobalMenuShown();this.navigationMenu?this.navigationMenu.updateData(e,i):(this.navigationMenu=new it(this.elements.contentContainer,e,i,this.collapseBreakpoint,this.onNaviagtionMenuItemClickHandler),this.navigationMenu.render())}onUserMenuItemClick(e){var r,n;if((n=(r=this.menuSettings).onUserMenuClick)==null||n.call(r,e),e.cancel||this.isKeyPressed(e.originalEvent))return;let i=e.item.Url;e.item.AlwaysReloadPage?window.location.href=i:e.cancel=this.tryDoPartialPageLoading(i)}onNaviagtionMenuItemClick(e){var r,n;if((n=(r=this.menuSettings).onNavigationMenuItemClick)==null||n.call(r,e),e.cancel||this.isKeyPressed(e.originalEvent))return;this.updateMenuSwitcherState(e.item.isGlobal);let i=Se(e.item);e.cancel=this.tryDoPartialPageLoading(i)}isKeyPressed(e){return e&&(e.altKey||e.ctrlKey||e.shiftKey)}tryDoPartialPageLoading(e){var i;if(this.$partialViewPlaceHolder&&e&&this.checkIsLocalUrl(e)){if(this.updateUrlAfterPartialLoading){let r={isLoadedByAjax:!0,isMenuSwitcherGlobal:!!((i=this.menuSwitcher)==null?void 0:i.value),url:e};window.history.pushState(r,null,e)}return this.loadPageViaAjaxCore(e),this.navigationMenu.updateActiveItemsState(),!0}return!1}checkIsLocalUrl(e){return!bt.GLOBAL_URL_REGEX.test(e)}checkIsPartialPageContent(e){return e&&!bt.DOCTYPE_MARKER_REGEX.test(e)}loadPageViaAjaxCore(e){var n;window.isIsozServerException=!1,this.loadPanel.show();let i=new URL(window.location.origin+e);i.searchParams.append("isozPartialLoading","true");let r=i.toString();(n=this.beforePartialViewLoading)==null||n.call(this),$.ajax(r,{dataType:"html"}).always((o,a)=>{var s;a!=="success"||!this.checkIsPartialPageContent(o)?window.location.href=e:(this.$partialViewPlaceHolder.html(o),(s=this.onPartialViewLoaded)==null||s.call(this),this.loadPanel.hide())})}renderUserMenu(e){var i;if(!!((i=this.menuSettings)==null?void 0:i.userName)){if(!this.elements.contentContainer)return U("contentContainer");if(this.userMenu)this.userMenu.updateItems(e);else{let r=document.createElement("div");r.classList.add("dropdown-divider"),this.elements.contentContainer.appendChild(r),this.userMenu=new Ue({container:this.elements.contentContainer,userName:this.menuSettings.userName,items:e,collapseBreakpoint:this.collapseBreakpoint,onItemClick:this.onUserMenuItemClickHandler}),this.userMenu.render()}}}renderMenuSwitcher(){var e,i,r,n;if((e=this.data)==null?void 0:e.AddGlobalPersonalSwitcher){if(this.menuSwitcher)return}else{this.menuSwitcher&&(this.menuSwitcher.destroy(),(i=this.elements.menuSwitcherDesktopContainer)==null||i.remove(),(r=this.elements.menuSwitcherMobileContainer)==null||r.remove(),this.menuSwitcher=void 0,this.elements.menuSwitcherDesktopContainer=void 0,this.elements.menuSwitcherMobileContainer=void 0);return}if(!this.elements.contentContainer)return U("contentContainer");if(!this.elements.toggleButtonContainer)return U("toggleButtonContainer");this.elements.menuSwitcherDesktopContainer=document.createElement("div"),this.elements.menuSwitcherDesktopContainer.classList.add("menu-switcher"),this.elements.menuSwitcherMobileContainer=document.createElement("div"),this.elements.menuSwitcherMobileContainer.classList.add("menu-switcher"),this.menuSwitcher=new rt({desktopContainer:this.elements.menuSwitcherDesktopContainer,mobileContainer:this.elements.menuSwitcherMobileContainer,collapseBreakpoint:this.collapseBreakpoint,startValue:this.isShowGlobalMenu(),onSwitch:o=>{var s,l;window.localStorage.setItem(tn,JSON.stringify(o));let a=this.getNavigationItems(this.data);(s=this.search)==null||s.setSearchText(""),(l=this.search)==null||l.reloadMenuItems(),this.renderNavigationMenu(a||[]),this.updateContentAndTogglerVisible()}}),this.menuSwitcher.render(),this.emit(bt.MENU_SWITCHER_INITIALIZED_EVENT),this.elements.contentContainer.insertBefore(this.elements.menuSwitcherDesktopContainer,(n=this.userMenu)==null?void 0:n.root),this.elements.toggleButtonContainer.insertBefore(this.elements.menuSwitcherMobileContainer,this.elements.toggleButton)}renderLoadBar(){this.$loadBar=$("<div />").addClass("load-bar").hide().appendTo(this.$el);let e=$("<div />").addClass("load").appendTo(this.$loadBar);$("<div />").addClass("bar").appendTo(e);function i(r){$(r).animate({left:$(".load").width()},2e3,()=>{$(r).css("left",`${-$(r).width()}px`),i(r)})}i(".bar")}rerenderMenus(){let e=this.getNavigationItems(this.data),i=this.getUserItems(this.data);e&&this.renderNavigationMenu(e),i&&this.renderUserMenu(i),this.renderMenuSwitcher(),this.updateContentAndTogglerVisible()}updateContentAndTogglerVisible(){var n,o;if(!this.elements.contentContainer&&!this.elements.toggleButton)return;let e=this.getNavigationItems(this.data),i=this.getUserItems(this.data),r=e&&e.length>0||((n=this.menuSettings)==null?void 0:n.userName)||i&&i.length>0;this.elements.toggleButton.classList.toggle("d-none",!r),this.elements.contentContainer.classList.toggle("d-none",!r),(o=this.search)==null||o.setVisible(!!r)}async init(){!this.menuSettings||(this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}async loadData(){var i,r,n,o,a;if(!this.menuSettings)throw new Error("The header doesn't have menu settings");if(typeof this.menuSettings.data!="string")return this.menuSettings.data;let e=this.getCachedAppMenuModel();if(e)return e;try{return(i=this.search)==null||i.setVisible(!1),(r=this.$loadBar)==null||r.show(),e=await x(this.menuSettings.data),this.cacheAppMenuModel(e),(n=this.search)==null||n.reloadMenuItems(),e}finally{(o=this.search)==null||o.setVisible(!0),(a=this.$loadBar)==null||a.hide()}}getNavigationItems(e){return e?this.isShowGlobalMenu()||!e.AddGlobalPersonalSwitcher?e.NavigationItems:e.PersonalNavigationItems:void 0}getSearchDataSource(e){if(!!e)return{gloabalItems:e.NavigationItems,personalItems:e.AddGlobalPersonalSwitcher?e.PersonalNavigationItems:void 0}}getUserItems(e){if(!!e)return e.UserItems}getCachedAppMenuModel(){if(!this.menuSettings)return null;let e=window.sessionStorage.getItem(Hi(this.menuSettings.userName));return e===null?e:JSON.parse(e)}cacheAppMenuModel(e){return this.menuSettings?(window.sessionStorage.setItem(Hi(this.menuSettings.userName),JSON.stringify(e)),!0):!1}clearAppMenuModelCache(){return this.menuSettings?(window.sessionStorage.removeItem(Hi(this.menuSettings.userName)),!0):!1}isShowGlobalMenu(){let e=window.localStorage.getItem(tn),i=e===null?e:JSON.parse(e);return i===null||i}},ke=bt;ke.MENU_SWITCHER_INITIALIZED_EVENT="menu-switcher-initialized-event",ke.GLOBAL_URL_REGEX=new RegExp("^(?:[a-z]+:)?//","i"),ke.DOCTYPE_MARKER_REGEX=new RegExp("!DOCTYPE html>","i");var Fa=["default","string","number","date","boolean","object","datetime"],nt=Fa;var ot=(r=>(r[r.None=0]="None",r[r.AddNewRows=1]="AddNewRows",r[r.ReplaceAllRows=2]="ReplaceAllRows",r))(ot||{});var at=(s=>(s.Default="default",s.String="string",s.Number="number",s.Date="date",s.Boolean="boolean",s.Object="object",s.Datetime="datetime",s))(at||{});var Wi=(r=>(r[r.Success=0]="Success",r[r.Warning=1]="Warning",r[r.Error=2]="Error",r))(Wi||{}),Ba={year:"local"},st=class{constructor(e){this.indicatorClassByStatus=new Map([[0,"footer__indicator_type_success"],[1,"footer__indicator_type_warning"],[2,"footer__indicator_type_error"]]);let i=w(w({},e),Ba);this.$root=i.$root,this.name=i.name!==!1?i.name:void 0,this.licence=i.licence!==!1?i.licence:void 0,this.year=st.getCurrentYear(i.year),this.version=e.version||void 0,this.showName=i.name!==!1,this.showLicence=i.licence!==!1,this.showYear=i.year!==!1,this.showConnectedTo=!!i.serverName&&!!i.database,this.indicatorsOptions=e.indicators||[],this.indicatorsByName=new Map,this.connectedTo=this.showConnectedTo?`${i.serverName} - ${i.database}`:void 0}static getCurrentYear(e){return e==="local"||e===!1?new Date().getFullYear():e}init(){this.$root.addClass("footer"),this.renderIndicators(),this.renderCopyright(),this.showYear&&this.renderYear(),this.showName&&this.renderName(),this.showConnectedTo&&this.renderConnectedTo(),this.showLicence&&this.renderLicence()}setIndicatorValue(e,i){let r=this.indicatorsByName.get(e);r&&this.setIndicatorValueCore(r,i)}renderIndicators(){var e;(e=this.indicatorsOptions)==null||e.forEach(i=>{i.text&&$("<span>").addClass("footer__indicator-text").html(`${i.text}:`).appendTo(this.$root);let r=$("<span>").addClass("footer__indicator").appendTo(this.$root);this.setIndicatorValueCore(r,i.value),this.indicatorsByName.set(i.name,r),i.getValue&&i.getValueIntervalMs&&setInterval(async()=>{let n=await i.getValue();this.setIndicatorValueCore(r,n)},i.getValueIntervalMs)})}setIndicatorValueCore(e,i){e.attr("title",i.title),e.removeClass([...this.indicatorClassByStatus.values()]),e.addClass(this.indicatorClassByStatus.get(i.status))}renderCopyright(){$("<span>").addClass("footer__copyright").html("&copy;").appendTo(this.$root)}renderName(){this.name&&$("<span>").addClass("footer__item").addClass("footer__app-name").text(this.name+(this.version?`: ${this.version}`:"")).appendTo(this.$root)}renderConnectedTo(){this.name&&$("<span>").addClass("footer__item").addClass("footer__connected-to").text(`Connected to: ${this.connectedTo}.`).appendTo(this.$root)}renderYear(){$("<span>").addClass("footer__item").addClass("footer__current-year").text(this.year).appendTo(this.$root)}renderLicence(){this.licence&&$("<span>").addClass("footer__item").addClass("footer__licence-info").append($("<span>").addClass("footer__licence-owner").text(`${this.getLicenceOwnerDisplayText(this.licence)}. `)).append($("<span>").addClass("footer__licence-date").text(this.getLicenceExpirationDateDisplayText(this.licence))).appendTo(this.$root)}getLicenceOwnerDisplayText(e){return`Licenced to: ${e.Owner}`}getLicenceExpirationDateDisplayText(e){return`Licence Expiry: ${(typeof e.ExpirationDate=="string"?new Date(e.ExpirationDate):e.ExpirationDate).toLocaleDateString()}`}};var ti=null,rn=[];window.addEventListener("resize",()=>{ti&&window.clearTimeout(ti),ti=window.setTimeout(()=>{rn.forEach(t=>t()),ti=null},100)});function ii(t){rn.push(t)}var Dt={main:".main",header:".main .header",content:".content-area",panel:".panel",footer:"footer"},zi=null,Ct=null,ri=null;function nn(t){$(Dt.content).height(Ct),t.option("height",ri)}function Pa(t,e=!1,i=!1){let r=$(Dt.main),n=$(Dt.header),o=$(Dt.content),a=$(Dt.footer),s=o.outerHeight()-o.height();Ct=r.height()-n.height()-a.outerHeight()-s,zi=$(window).height();let l=o.children(),d=0;l.each((u,c)=>{let p=$(c);p.is(t.element())||(d+=p.is(":visible")&&p.css("position")!=="absolute"?p.outerHeight(!0):0)}),ri=e?Ct:Ct-d,i&&(ri+=t.element().outerHeight()),nn(t)}function Ra(t){let e=$(window).height(),i=e-zi;Ct+=i,ri+=i,zi=e,nn(t)}function le(t,e=!1,i=!1){Pa(t,e,i),ii(()=>Ra(t))}var La="isoz-icon-disabled",ie={lg:"iszolea-lg",md:"iszolea-md",sm:"iszolea-sm"},q=class{static setElementMiddleSize(e){e.addClass(ie.md)}static setElementSmallSize(e){e.addClass(ie.sm)}static setWidgetMiddleSize(e){q.setWidgetSize(e,ie.md)}static setWidgetSmallSize(e){q.setWidgetSize(e,ie.sm)}static getIconClass(e,i,r=16){let n=`isoz isoz-icon-${e}-${r}`;return i?`${n} ${La}`:n}static setWidgetSize(e,i){e&&e.option("elementAttr",{class:i})}};var _a={title:"isoz-title"},Et=class{static getToolbarTitleTemplateItem(e,i){return{location:"before",template:()=>{let r=$(`<span class="${_a.title}">${e}</span>`);return i&&r.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Report details")),r}}}};var on={title:"isoz-title",header:"isoz-toolbar-header",dropDownButton:"dx-dropdownmenu-button"};function an(t,e={title:"",description:"",options:{}}){let{title:i="",description:r="",options:n={}}=e,{items:o=[],elementAttr:a={}}=n;o.forEach(l=>{let d={class:ie.md};if(l.options){let{editorOptions:u}=l.options;u||(u={}),u.elementAttr=d,l.options.elementAttr=d,l.options.editorOtions=u}});let s=l=>{l.element.find(`.${on.dropDownButton}`).addClass(ie.md),(n==null?void 0:n.onContentReady)&&n.onContentReady(l)};return $(`${t}`).dxToolbar(S(w({},n),{items:[Et.getToolbarTitleTemplateItem(i,r),...o],onContentReady:s,elementAttr:S(w({},a),{class:on.header})})).dxToolbar("instance")}var Aa={panel:".panel-body"};function sn(t){let e=t.element(),i=t.element().parents(Aa.panel).eq(0),r=i.position().top,n=i.height(),o=i.outerHeight()-i.height(),a=e.position().top,s=n-(a-r)+o/2;t.option("height",s)}function Ki(t){sn(t),ii(()=>sn(t))}function ln(t,e,i=!1){let r=Ji(t,e);return e.height||(i?Ki(r):le(r)),r}function Ji(t,e){let i=(typeof t=="string"?$(t):t).dxDataGrid(e).dxDataGrid("instance");return i.element().addClass(ee.dxDataGrid),i}function dn(t,e,i=!1){let r=(typeof t=="string"?$(t):t).dxTreeList(e).dxTreeList("instance");return r.element().addClass(ee.dxDataGrid),e.height||(i?Ki(r):le(r)),r}var un=t=>t.slice(2).toLowerCase(),Ga=t=>{let e=un(t);return{searchPanel:`.dx-${e}-search-panel`,toolbarEditButton:`.dx-${e}-toolbar-button.dx-edit-button`,toolbarExportButton:`.dx-${e}-export-button`,selectCheckBox:".dx-select-checkbox"}};function pn(t){let e=j.isLegacyRender?Ua(t):hn(t);return(t.summaryColumn||t.showSummaryInColumn)&&(e.summary={totalItems:[{column:t.summaryColumn||t.showSummaryInColumn,showInColumn:t.showSummaryInColumn||t.summaryColumn,summaryType:"count"}]}),e.export={enabled:!!t.exportFileName,fileName:t.exportFileName,allowExportSelectedData:!0},j.isLegacyRender||(e.groupPanel={visible:!0}),e}function cn(t){let e=hn(t);return e.selection={mode:"none"},e}function hn(t){return{allowColumnResizing:!0,cacheEnabled:!0,columnAutoWidth:!0,filterRow:{visible:!0,applyFilter:"onClick"},headerFilter:{visible:!0},hoverStateEnabled:!0,paging:{pageSize:80},pager:{visible:!1},remoteOperations:!0,scrolling:{mode:"virtual",rowRenderingMode:"virtual"},searchPanel:{visible:!0,width:240,placeholder:"Search..."},showRowLines:!0,showBorders:!0,selection:{mode:"multiple"},wordWrapEnabled:!0}}function Ua(t){return{allowColumnResizing:!0,remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,filterRow:{visible:!0,applyFilter:"onClick"},selection:{mode:"multiple"},paging:{pageSize:50},searchPanel:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"}}}function Va(t,e){let i=(r,n)=>r.find(o=>o.name===n);if(t==null?void 0:t.items){let{items:r}=t;if(e){let s=i(r,e);s&&(s.options.type="default")}let n=i(r,"saveButton");n&&(n.showText="always",n.options.text="Save");let o=i(r,"revertButton");o&&(o.showText="always",o.options.text="Discard");let a=i(r,"refresh");a&&(a.showText="always",a.options.text="Refresh",a.options.hint="Reload Data")}}function ka(t){var s,l,d;let e=t.option("selection"),r=e&&e.mode!=="none"?t.getVisibleColumns().findIndex(u=>!!u.dataField):0,n=(s=t.getVisibleColumns()[r])==null?void 0:s.dataField,o=t.option("summary.totalItems"),a=(l=o==null?void 0:o.filter(u=>u.summaryType==="count")[0])==null?void 0:l.column;n&&a!==n&&t.option("summary",{totalItems:[{column:(d=t.getVisibleColumns()[r])==null?void 0:d.dataField,summaryType:"count"}]})}function ni(t,e){let i=Ga(t),r=!1;return{onCellPrepared:n=>{var o,a;j.isLegacyRender||n.rowType==="header"&&n.cellElement.css("text-align","center"),((o=e.options)==null?void 0:o.onCellPrepared)&&((a=e.options)==null||a.onCellPrepared(n))},onContentReady:n=>{var a;let o=n.component;e.disableSummaryColumnDetection||ka(o),r||(r=!0,setTimeout(()=>{let s=o.getScrollable();s&&s.scrollTo({top:0})}));for(let s=0;s<o.columnCount();s++){let l=o.columnOption(s,"dataType");(e.setDefaultColumnWidth||e.setDefaultColumnWidth===void 0)&&(o.columnOption(s,"width")||(l==="boolean"&&o.columnOption(s,"width","45px"),l==="datetime"&&o.columnOption(s,"width","135px"),l==="date"&&o.columnOption(s,"width","140px"))),j.isLegacyRender||((l==="datetime"||l==="date")&&o.columnOption(s,"alignment","right"),l==="date"&&o.columnOption(s,"format","dd MMM yyyy"),l==="datetime"&&o.columnOption(s,"format","HH:mm, dd MMM yyyy"))}j.isLegacyRender||(e.buttonsSize==="sm"?q.setWidgetSmallSize($(i.searchPanel).dxTextBox("instance")):q.setWidgetMiddleSize($(i.searchPanel).dxTextBox("instance")),q.setElementSmallSize(n.component.element().find(i.selectCheckBox)),$(i.toolbarExportButton).length>0&&(e.buttonsSize==="sm"?q.setWidgetSmallSize($(i.toolbarExportButton).dxButton("instance")):q.setWidgetMiddleSize($(i.toolbarExportButton).dxButton("instance")))),((a=e.options)==null?void 0:a.onContentReady)&&e.options.onContentReady(n)},onToolbarPreparing:n=>{var c;let{toolbarOptions:o={}}=n,a=n.component,{items:s=[]}=o;j.isLegacyRender?(e.title&&n.toolbarOptions.items.unshift({location:"before",template(){let p=$("<h2 />").addClass("grid-header").text(e.title);return e.headerDescription&&p.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),p}}),s.forEach(p=>{p.widget==="dxButton"&&p.name==="applyFilterButton"&&(p.options.visible=!1)})):(e.title&&s.unshift(Et.getToolbarTitleTemplateItem(e.title,e.headerDescription)),s.filter(p=>{if(p.widget==="dxButton"){if(p.name==="applyFilterButton"){p.options.visible=!1;return}let g=e.buttonsSize==="sm"?16:24;switch(p.name){case"addRowButton":p.options.icon=q.getIconClass("plus",!1,g);break;case"saveButton":p.options.icon=q.getIconClass("save",!1,g);break;case"revertButton":p.options.icon=q.getIconClass("close",!1,g);break;default:p.options.icon=void 0;break}p.options.elementAttr||(p.options.elementAttr={}),p.options.elementAttr.class=e.buttonsSize==="sm"?ie.sm:ie.md,p.showText="always"}}),Va(o,e.toolbarAccentButtonName),e.toolbarItems&&s.push(...e.toolbarItems),o.elementAttr={class:"isoz-toolbar-header"});let l=n.toolbarOptions.items.findIndex(p=>p.name==="saveButton"),d=n.toolbarOptions.items.findIndex(p=>p.name==="searchPanel"),u=-1;l>-1?u=l:d>-1?u=d:u=n.toolbarOptions.items.length,n.toolbarOptions.items.splice(u,0,{location:"after",widget:"dxButton",name:"refresh",options:{icon:"refresh",height:30,elementAttr:{class:"dx-datagrid-toolbar-button"},stylingMode:"text",onClick:()=>a==null?void 0:a.refresh(),onContentReady:p=>{p.element.find(".dx-button-content").css({paddingTop:6,paddingBottom:6})}}}),((c=e.options)==null?void 0:c.onToolbarPreparing)&&e.options.onToolbarPreparing(n)},onEditorPreparing:n=>{var o;switch(j.isLegacyRender||(n.editorOptions=S(w({},n.editorOptions),{elementAttr:{class:ie.md}}),n.editorName==="dxSelectBox"&&(n.editorOptions.dropDownOptions=S(w({},n.editorOptions.dropDownOptions),{onShowing:a=>{let s=un(t);a.component._$popupContent.addClass(`isoz-${s}-selectbox-popup`)}})),n.editorName==="dxCheckBox"&&q.setElementSmallSize(n.editorElement)),n.parentType){case"filterRow":let a=l=>{n.element&&n.element.find(".dx-apply-button").trigger("dxclick")};n.editorOptions.onEnterKey=a,n.editorOptions.onFocusOut=a;break;case"searchPanel":let s=l=>{n.component.searchByText(l.component.option("value"))};n.editorOptions.onValueChanged=()=>{},n.editorOptions.onEnterKey=s,n.editorOptions.onFocusOut=s;break}((o=e.options)==null?void 0:o.onEditorPreparing)&&e.options.onEditorPreparing(n)},onContextMenuPreparing:n=>{var o,a,s;if(!j.isLegacyRender&&n.target==="content"&&!!e.exportFileName&&(n.items||(n.items=[]),n.items.push({text:"Export all data",onItemClick:()=>{n.component.exportToExcel(!1)},icon:"xlsxfile"}),((o=e.options.selection)==null?void 0:o.mode)!=="none")){let l=n.component.getSelectedRowKeys();n.items.push({text:"Export selected rows",onItemClick:()=>n.component.exportToExcel(!0),icon:"exportselected",disabled:!l||!l.length})}((a=e.options)==null?void 0:a.onContextMenuPreparing)&&((s=e.options)==null||s.onContextMenuPreparing(n))}}}function de(t,e){let i=pn(e),r=$.extend({},i,e.options),n=ni("dxDataGrid",$.extend(!0,{},e,{options:r}));return r=$.extend(!0,{},r,n),e.isFullScreen||e.isFullScreen===void 0?ln(t,r,e.inPanelGrid):Ji(t,r)}function fn(t,e,i={},r,n){return de(t,{options:e,exportFileName:i.exportFileName,inPanelGrid:i.inPanelGrid,showSummaryInColumn:i.showSummaryInColumn,summaryColumn:i.summaryColumn,headerDescription:n,title:r})}function mn(t,e={}){let i=cn(e),r=$.extend({},i,e.options),n=ni("dxTreeList",$.extend(!0,{},e,{options:r}));return r=$.extend(!0,{},r,n),dn(t,r,e.inPanelGrid)}var Qi={};me(Qi,{createConfirm:()=>$a});function $a(t){let e=$.Deferred(),r=$("<div/>").appendTo(window.document.body).dxPopup({showTitle:!1,height:140,width:370,contentTemplate:n=>{n.addClass("iszolea-dx-confirm"),$("<b/>").addClass("message").text(t).appendTo(n);let o=$("<div/>").addClass("buttons").appendTo(n);$("<div/>").dxButton({text:"Delete",type:"danger",onClick:()=>{r.hide(),e.resolve(!0)}}).appendTo(o),$("<div/>").dxButton({text:"Cancel",onClick:()=>{r.hide(),e.resolve(!1)}}).appendTo(o)},onHidden:()=>{r.dispose(),r.element().remove()}}).dxPopup("instance");return r.show(),e}var ji={};me(ji,{createLanding:()=>Na});function Na(t,e,i){Ha(e).then(r=>{Wa(t,r,i)})}function Ha(t){let e=$.Deferred();if(typeof t=="string"){let i=window.sessionStorage.getItem(Ve);i?e.resolve(JSON.parse(i)):x(t,"post").done(r=>{let n={applicationName:r.ApplicationName,businessName:r.BusinessName,landingPageLogo:r.LandingPageLogo,logoImage:r.LogoImage,description:r.Description};window.sessionStorage.setItem(Ve,JSON.stringify(n)),e.resolve(n)})}else e.resolve(t);return e}function Wa(t,e,i){let r=$("<div />").addClass("iszolea-landing-page").appendTo(t);$("<img />").attr("src",e.landingPageLogo).addClass("logo-large").appendTo(r),$("<span />").addClass("business-name").text(e.businessName).appendTo(r),$("<h2 />").text(`Welcome to ${e.description}`).appendTo(r),i&&$("<div />").addClass("sign-in-button").append($("<div />").dxButton({text:"Sign In",type:"default",onClick:()=>{window.sessionStorage.clear(),window.location.href=`/Home/Login?returnUrl=${encodeURIComponent(window.location.href.toString())}`}})).appendTo(r)}var qi={};me(qi,{createAccessDeniedToReport:()=>za});function za(t,e,i){let r=$("<div>").addClass("access-denied-to-report-page").appendTo(t);if($("<h2>").addClass("error-text").text("Access denied to the report").appendTo(r),e&&e.length){let n=e.map(o=>$("<span>").addClass("role").text(o));$("<p>").text("Required roles for report: ").append(n).appendTo(r)}if(i&&i.length){let n=i.map(o=>$("<span>").addClass("role").text(o));$("<p>").text("Required roles for db connection: ").append(n).appendTo(r)}}var _r={};me(_r,{ControlConfigurator:()=>St,ControlDisplay:()=>Ot,DisplayManager:()=>Nt,default:()=>bi});function ue(t,e){let i=$("<p/>").html(e).text(),r=$("<div>",{class:"report-details-popover"}).html(i).appendTo(document.body);return $(r).dxPopover({target:t,showEvent:"dxclick",position:"bottom",width:500}).dxPopover("instance")}function $e(t,e,i={},r,n,o=!1){let a=!1,s={export:{enabled:!!i.exportFileName,fileName:i.exportFileName,allowExportSelectedData:!0},remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,selection:{mode:"multiple"},paging:{pageSize:50},searchPanel:{visible:!0},filterRow:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"},onContentReady:c=>{if(Ja(c.component),!a){if(a=!0,!o)for(let p=0;p<c.component.columnCount();p++){let g=c.component.columnOption(p,"dataType");c.component.columnOption(p,"width")||(g==="boolean"&&c.component.columnOption(p,"width","100px"),g==="datetime"&&c.component.columnOption(p,"width","150px"))}setTimeout(()=>{let p=c.component.getScrollable();p&&p.scrollTo({top:0})})}},onToolbarPreparing:c=>{r&&c.toolbarOptions.items.unshift({location:"before",template(){let p=$("<h2 />").addClass("grid-header").text(r);return n&&p.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),p}})}},l=e.onContentReady?c=>{s.onContentReady(c),e.onContentReady(c)}:s.onContentReady;Ka(e,i);let d=$.extend({},s,e,{onContentReady:l}),u=$(t).dxDataGrid(d).dxDataGrid("instance");return u.element().addClass(ee.dxDataGrid),u}function Ka(t,e){var r,n,o;if((n=(r=t==null?void 0:t.summary)==null?void 0:r.totalItems)==null?void 0:n.some(a=>a.summaryType==="count"))return;let i=e==null?void 0:e.summaryColumn;!i&&((o=t==null?void 0:t.columns)==null?void 0:o.length)&&(i=typeof t.columns[0]=="string"?t.columns[0]:t.columns[0].dataField),i&&(t.summary||(t.summary={}),t.summary.totalItems||(t.summary.totalItems=[]),t.summary.totalItems.push({column:i,summaryType:"count"}))}function Ja(t){var s,l,d;let e=t.option("selection"),r=e&&e.mode!=="none"?t.getVisibleColumns().findIndex(u=>!!u.dataField):0,n=(s=t.getVisibleColumns()[r])==null?void 0:s.dataField,o=t.option("summary.totalItems"),a=(l=o==null?void 0:o.filter(u=>u.summaryType==="count")[0])==null?void 0:l.column;n&&a!==n&&t.option("summary",{totalItems:[{column:(d=t.getVisibleColumns()[r])==null?void 0:d.dataField,summaryType:"count"}]})}function oi(t,e,i={},r,n,o=!1,a=!1){let s=$e(t,e,i,r,n,o);return a||le(s),s}function ye(t,e){return $("<span>").attr("title",e).text(t)}var gn=new Map;var St=class{constructor(e){this.displayTypes=[{key:1,value:"Icons"},{key:2,value:"PredefinedValues"}];this.editors={[1]:vn,[2]:yn};this.roles=[];this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.availableRolesUrl=e.availableRolesUrl,this.groupFieldsUrl=e.groupFieldsUrl,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.pageTitle=e.pageTitle}render(){this.$container.addClass("aps-grid"),this.getAvailableRoles().then(e=>{this.roles=e,this.createMainGrid()})}async getAvailableRoles(){return x(this.availableRolesUrl).then(e=>e.map(i=>i.Name).sort((i,r)=>{let n=gn.get(i)||9999,o=gn.get(r)||9999;return n-o}))}getDisplayTypeEditor(e,i,r){let n=this.editors[i];return n?new n(e,r):null}createMainGrid(){let e,i={dataSource:this.createMainGridDataSource(),columnChooser:{enabled:!0,allowSearch:!0,mode:"select"},height:"100%",editing:{mode:"cell",allowUpdating:!0,refreshMode:"repaint"},repaintChangesOnly:!0,remoteOperations:{summary:!0,paging:!0,grouping:!1,sorting:!1,filtering:!1},grouping:{allowCollapsing:!1},groupPanel:{visible:!1},selection:{mode:"multiple"},allowColumnReordering:!1,columnHidingEnabled:!1,hoverStateEnabled:!0,columnAutoWidth:!1,rowAlternationEnabled:!0,columnMinWidth:80,onRowUpdating:n=>{if(!n.newData||!n.oldData)return;n.component.beginCustomLoading("Updating");let o=n.newData.Roles,a=n.oldData.Roles,s=(l,d=n.newData,u=n.oldData)=>{d.hasOwnProperty(l)||(d[l]=u[l])};o&&a&&Object.getOwnPropertyNames(o).forEach(l=>{let d=o[l],u=a[l];d.Id=u.Id,s("CanBeCreated",d,u),s("CanBeRead",d,u),s("CanBeUpdated",d,u),s("CanBeDeleted",d,u)}),s("Label"),s("Order"),s("ToolTip"),s("IsDefaultViewField"),s("IsKeyColumn"),s("GroupField"),s("DisplayType"),s("DataOwner"),s("XLSScheduleLabel")},onRowUpdated:n=>{n.component.endCustomLoading(),n.component.repaint()},columns:this.prepareMainGridColumns([{dataField:"Name",caption:"Field",allowEditing:!1,fixed:!0,fixedPosition:"left",sortOrder:"asc",width:180},{dataField:"GroupField",caption:"Group",allowEditing:!0,width:200,editCellTemplate:(n,o)=>$("<div />").dxSelectBox({value:o.value,dataSource:[...new Set(e.getDataSource().items().filter(a=>a.GroupField).map(a=>a.GroupField).sort())],acceptCustomValue:!0,showClearButton:!0,onValueChanged:a=>{o.setValue(a.value)}})},{dataField:"Label",allowEditing:!0,width:180},{dataField:"Type",allowEditing:!1,width:80},{dataField:"DataOwner",allowEditing:!0,width:80,headerCellTemplate:ye("DO","Data Owner")},{dataField:"XLSScheduleLabel",allowEditing:!0,width:80,headerCellTemplate:ye("XLS","XLS Schedule Label")},{dataField:"DisplayType",allowEditing:!0,width:160,customizeText:n=>{if(!n.value)return null;let o=JSON.parse(n.value);return this.displayTypes.find(s=>s.key===o.type).value},editCellTemplate:(n,o)=>{let a=JSON.parse(o.value),s=a?a.type:null,l=a?a.data:[];return $("<div />").dxDropDownBox({dropDownOptions:{width:400},dataSource:this.displayTypes,valueExpr:"key",displayExpr:"value",value:s,showClearButton:!0,onValueChanged:d=>{o.setValue(d.value)},contentTemplate:()=>{let d=$("<div />"),u=$("<div />").appendTo(d),c=$('<div style="margin: 8px 0;" />').appendTo(d),p=$('<div style="text-align: right;" />').appendTo(d),g=$('<div style="margin-right: 8px;" />').appendTo(p),b=$('<div style="margin-right: 8px;" />').appendTo(p),I=s?this.getDisplayTypeEditor(c,s,l):null;return I&&I.render(),u.dxSelectBox({items:this.displayTypes,value:s,valueExpr:"key",displayExpr:"value",onValueChanged:B=>{I=this.getDisplayTypeEditor(c,B.value,l),I.render(),g.dxButton("instance").option("disabled",!1)}}),g.dxButton({text:"Save",type:"success",disabled:!I,onClick:()=>{let B={type:u.dxSelectBox("instance").option("value"),data:I.getData().map(E=>({value:E.value,title:E.title,image:E.image}))};o.setValue(JSON.stringify(B)),o.component.closeEditCell()}}).appendTo(p),b.dxButton({text:"Cancel",onClick:()=>{o.component.closeEditCell()}}).appendTo(p),d.dxScrollView({width:"100%",height:"100%"}),d}})}},{dataField:"IsDefaultViewField",caption:"Display in default view",allowEditing:!0,width:100},{dataField:"IsKeyColumn",allowEditing:!0,width:150},{dataField:"Order",allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:0,message:"Order can't be negative"}],width:80},{dataField:"Width",dataType:"number",headerCellTemplate:ye("Width","Width (in pixels)"),allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:1,message:"Width can't be less then 1px"}],width:80},{dataField:"HidingOrder",dataType:"number",headerCellTemplate:ye("Hide","Hiding Order"),allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:1,message:"Hiding order can't be less then 1"}],width:70},{dataField:"ToolTip",allowEditing:!0,minWidth:180},{name:"Roles",allowEditing:!0,allowHiding:!1,showInColumnChooser:!0,columns:this.createRolesColumns(this.roles)}])},r={summaryColumn:"Name"};return this.isStandalonePage?e=oi(this.$container,i,r,this.pageTitle,"",!0):e=$e(this.$container,i,r,this.pageTitle,"",!0),e}prepareMainGridColumns(e){return e.forEach(i=>{(i.allowHiding===void 0||i.allowHiding===null)&&(i.allowHiding=!1),(i.showInColumnChooser===void 0||i.showInColumnChooser===null)&&(i.showInColumnChooser=!1)}),e}createRolesColumns(e){return e.map(i=>({name:i,caption:i,allowHiding:!0,visible:!0,showInColumnChooser:!0,columns:[this.createRolesPermissionColumn(i,"CanBeRead",{headerCellTemplate:ye("Read","Read")}),this.createRolesPermissionColumn(i,"CanBeUpdated",{headerCellTemplate:ye("Edit","Edit")})]}))}createRolesPermissionColumn(e,i,r){return S(w({},r),{name:`${e}_${i}`,dataField:`Roles.${e}.${i}`,allowHiding:!1,showInColumnChooser:!1,allowHeaderFiltering:!1,allowFiltering:!1,minWidth:60})}createMainGridDataSource(){return{store:te({loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl,key:"Name"})}}},vn=class{constructor(e,i){this.$container=e,this.data=i}render(){this.grid=$e(this.$container,{dataSource:this.data,editing:{mode:"row",allowAdding:!0,allowDeleting:!0,allowUpdating:!0,useIcons:!0},headerFilter:{visible:!1},grouping:{contextMenuEnabled:!1},groupPanel:{visible:!1},searchPanel:{visible:!1},filterRow:{visible:!1},remoteOperations:!1,selection:{mode:"none"},columns:[{dataField:"value",allowEditing:!0},{dataField:"title",allowEditing:!0},{dataField:"image",allowEditing:!0,cellTemplate:(e,i)=>{$("<div>").css({"text-align":"center"}).append($("<img>",{src:i.data.image})).appendTo(e)},editCellTemplate:(e,i)=>{let r=i.value||"",n=$('<div style="position: relative; display: flex; align-items: center; justify-content: center;" />'),o=$(`<img src="${r}" />`),a=$('<a class="dx-link dx-icon-upload" style="position: absolute; right: 8px; text-decoration: none; font-size: 18px;" />'),s=$('<input type="file" style="display:none;" />');return a.on("click",()=>{s.click()}),s.on("change",l=>{if(l.target.files.length){let d=new FileReader;d.onloadend=()=>{o.attr("src",d.result),i.setValue(d.result)};let u=l.target.files[0];u?d.readAsDataURL(u):o.attr("src","")}}),o.appendTo(n),a.appendTo(n),s.appendTo(n),n}},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:e=>{let i=this.grid.option("dataSource");i.splice(e.row.rowIndex,1),this.grid.option("dataSource",i)}}]}]})}getData(){return this.grid.option("dataSource")}},yn=class{constructor(e,i){this.$container=e,this.data=i}render(){this.grid=$e(this.$container,{dataSource:this.data,editing:{mode:"row",allowAdding:!0,allowDeleting:!0,allowUpdating:!0,useIcons:!0},headerFilter:{visible:!1},grouping:{contextMenuEnabled:!1},groupPanel:{visible:!1},searchPanel:{visible:!1},filterRow:{visible:!1},remoteOperations:!1,selection:{mode:"none"},columns:[{dataField:"value",allowEditing:!0},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:e=>{let i=this.grid.option("dataSource");i.splice(e.row.rowIndex,1),this.grid.option("dataSource",i)}}]}]})}getData(){return this.grid.option("dataSource")}};DevExpress.ui.dxDataGrid.registerModule("columnChooserSorting",{extenders:{controllers:{columns:{getChooserColumns(t){return this.callBase(t).sort((i,r)=>{let n=(i==null?void 0:i.caption)||"",o=(r==null?void 0:r.caption)||"";return n.localeCompare(o)})}}}}});var Qa=(t,e)=>{if(t===null||e===null||t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0},lt=t=>{let e=null,i=null;return function(...r){return Qa(e,r)||(i=t(...r)),e=r,i}};var xe=class{constructor(e){this._currentViewId=xe.defaultControlDisplayView.id;this.views=xe.defaultViews;this.getViewByIdInternal=e=>this.views&&this.views.find(i=>i.id===e);this.getViewById=lt(this.getViewByIdInternal);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl}get currentView(){return this.getViewById(this._currentViewId)}get currentViewId(){return this._currentViewId}set currentViewId(e){this._currentViewId=e}async getViews(){return this.views===xe.defaultViews&&await this.loadViews(),this.views}updateCurrentView(e){return this.updateView(this.currentView.id,e)}async createNewView(e,i,r){let n=this.mapViewModelToDto({id:-1,name:e,gridState:i,isGlobal:r});return n=await x(this.insertDataUrl,"POST",n),await this.loadViews(),this.mapViewDtoToModel(n)}async updateView(e,i){if(e===xe.defaultControlDisplayView.id)return!1;let r=this.getViewById(e);if(!r)return!1;let n=w(w({},r),i),o=this.mapViewModelToDto(n);return o=await x(this.updateDataUrl,"PUT",o),await this.loadViews(),!0}async deleteView(e){return e===xe.defaultControlDisplayView.id||!this.getViewById(e)?!1:(await x(this.deleteDataUrl,"DELETE",{viewId:e}),await this.loadViews(),!0)}async loadViews(){let e=await se(this.loadDataUrl);return this.views=e.map(i=>this.mapViewDtoToModel(i)),this.views.unshift(xe.defaultControlDisplayView),this.resetCachedResultOfGetViewByIdFunction(),this.views}mapViewModelToDto(e){return{Id:e.id,Name:e.name,GridState:JSON.stringify(e.gridState),IsGlobal:e.isGlobal}}mapViewDtoToModel(e){return{id:e.Id,name:e.Name,gridState:JSON.parse(e.GridState),isGlobal:e.IsGlobal}}resetCachedResultOfGetViewByIdFunction(){this.getViewById=lt(this.getViewByIdInternal)}},V=xe;V.defaultControlDisplayView={id:0,name:"Default",gridState:null,isGlobal:!1},V.defaultViews=[xe.defaultControlDisplayView];var Xi=class{constructor(e){this.options=e,this.currentSavedGridState=e.initialState,this.options.owner.option("stateStoring",{enabled:!0,type:"custom",customLoad:()=>Promise.resolve(this.currentSavedGridState)})}get hasChanges(){return this.currentSavedGridState!==null&&JSON.stringify(this.currentUnsavedGridState)!==JSON.stringify(this.currentSavedGridState)}get currentUnsavedGridState(){return this.prepareUnsavedGridState(this.options.owner.state())}async apply(e,i=!0){return new Promise((r,n)=>{let o=i?void 0:this.options.owner.filter();this.options.owner.beginUpdate(),this.options.owner.clearFilter("filterValue"),this.options.owner.state(e);let a=this.options.owner.getVisibleColumns().filter(l=>!l.type);a[0]&&a[0].dataField&&this.options.owner.option("summary",{totalItems:[{column:a[0].dataField,summaryType:"count"}]}),o&&this.options.owner.filter(o),this.options.owner.endUpdate();let s=()=>{this.save(),r(),this.options.owner.off("contentReady",s)};this.options.owner.on("contentReady",s)})}save(){this.currentSavedGridState=this.currentUnsavedGridState}reset(){this.options.owner.state(this.currentSavedGridState)}prepareUnsavedGridState(e){if(e.columns){let i=e.columns.filter(n=>n.visible),r=i[i.length-1];r.width=void 0}return e}};var Yi=class{constructor(e){this.onGridToolbarPreparing=e=>{let i=e.toolbarOptions&&e.toolbarOptions.items;!i||(this.removeDefaultColumnChooserButton(i),i.splice(1,0,this.viewsToolbarItem))};this.options=S(w({},e),{gridStateManager:e.gridStateManager?e.gridStateManager:new Xi({owner:e.owner,initialState:null}),gridViewsManager:e.gridViewsManager?e.gridViewsManager:new V(e.gridViewsManagerOptions),autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner)}async tryApplyView(e){let i=await this.confirmChangesLoss();return i&&await this.applyView(e),i}async applyView(e){this.beginViewApplyingLoading(),this.options.gridViewsManager.currentViewId=e,await this.options.gridStateManager.apply(this.options.gridViewsManager.currentView.gridState,!1),this.endViewApplyingLoading(),this.syncUIWithCurrentView(),this.options.onViewApplied&&this.options.onViewApplied(e)}integrateToGrid(e){let i=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{i&&i(r),this.onGridToolbarPreparing(r)})}removeDefaultColumnChooserButton(e){e.splice(e.findIndex(i=>i.name==="columnChooserButton"),1)}get viewsToolbarItem(){return this._viewsToolbarItem||(this._viewsToolbarItem=this.createViewsToolbarItem()),this._viewsToolbarItem}get isDefaultView(){return this.options.gridViewsManager.currentViewId===V.defaultControlDisplayView.id}get hasChanges(){let e=this.options.gridViewsManager.currentView;return this.currentViewTitle?this.currentViewTitle.option("value")!==e.name||this.options.gridStateManager.hasChanges:!1}createViewsToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Views",visible:this.options.visible,cssClass:"aps-views__toolbar-item",options:{items:[V.defaultControlDisplayView],value:V.defaultControlDisplayView.id,valueExpr:"id",displayExpr:"name",width:200,dropDownOptions:{width:500},onInitialized:i=>{this.viewsDropdownBox=i.component,this.loadViewDropdownBoxData()},onValueChanged:async i=>{if(i.value===this.options.gridViewsManager.currentViewId||!e){e=!0;return}await this.tryApplyView(i.value)||(e=!1,this.syncUIWithCurrentView(!0))},contentTemplate:i=>{if(!i.component)return;this.viewsDataGrid=this.createViewsDataGrid(i.component),this.currentViewTitle=this.createCurrentViewTitle(i.component),this.saveViewButton=this.createSaveViewButton(),this.saveViewAsButton=this.createSaveViewAsButton(),this.columnChooserButton=this.createColumnChooserButton();let r=$("<div />").addClass("aps-views__header").append(this.currentViewTitle.element()).append(this.saveViewButton.element()).append(this.saveViewAsButton.element()).append(this.columnChooserButton.element());return $("<div />").height("100%").append(r).append(this.viewsDataGrid.element())}}}}createViewsDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!0,allowDeleting:!0,mode:"cell",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this view?"}},wordWrapEnabled:!0,loadPanel:{shading:!0},columns:[{dataField:"name",allowEditing:!1},{dataField:"isGlobal",caption:"Is Global",dataType:"boolean",width:70},{type:"buttons",buttons:[{name:"delete",visible:i=>i.row&&i.row.key!==V.defaultControlDisplayView.id}]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,showColumnLines:!1,selection:{mode:"single"},height:"calc(100% - 51px)",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No views",onSelectionChanged:i=>{e.option("value",i.selectedRowKeys&&i.selectedRowKeys.length?i.selectedRowKeys[0]:0)},onEditorPreparing:i=>{if(i.dataField==="isGlobal"){i.editorOptions.disabled=!this.options.canCreateGlobalViews,i.editorOptions.visible=i.row.data.id!==V.defaultControlDisplayView.id;let r=i.editorOptions.onValueChanged;i.editorOptions.onValueChanged=async n=>{i.component.beginCustomLoading("Updating"),await this.options.gridViewsManager.updateView(i.row.data.id,{isGlobal:n.value}),i.component.endCustomLoading(),r(n)}}},onCellPrepared:i=>{if(i.column.type!=="buttons"||!i.data)return;!i.data.isGlobal||i.data.isGlobal&&this.options.canCreateGlobalViews||Array.from(i.cellElement.children()).forEach(n=>{$(n).css({color:"#ddd !important",cursor:"default"}).off("click")})},onRowRemoving:i=>{!i.key||this.deleteView(i.key)}}).dxDataGrid("instance")}createCurrentViewTitle(e){return $("<div />").addClass("aps-views__current-view").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:this.isDefaultView}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-views__save-view").dxButton({text:"Save",type:"normal",disabled:this.isDefaultView,onClick:this.save.bind(this),icon:"save"}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-views__save-view-as").dxButton({text:"Save As",type:"normal",onClick:this.createSaveAsDialog.bind(this),icon:"save"}).dxButton("instance")}createColumnChooserButton(){return $("<button />").addClass("aps-views__column-chooser").dxButton({text:"Column Chooser",type:"back",onClick:this.openColumnChooser.bind(this),icon:"column-chooser"}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),i=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"View Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),r=i.dxTextBox("instance"),n=i.dxValidator("instance");r.element().appendTo(e);let o=$('<div style="margin-bottom:16px;" />').dxCheckBox({text:"Global view",disabled:!this.options.canCreateGlobalViews}).dxCheckBox("instance");return o.element().appendTo(e),_e({title:"Create New View",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async a=>{!n.validate().isValid||(await this.saveAs(r.option("value"),o.option("value")),a())}},{text:"Cancel",onClick:a=>a()})}openColumnChooser(){this.options.owner.showColumnChooser()}async loadViewDropdownBoxData(){if(!this.viewsDropdownBox)return;let e=await this.options.gridViewsManager.getViews(),i=new DevExpress.data.ArrayStore({key:"id",data:e});this.viewsDropdownBox.option("dataSource",i),this.viewsDropdownBox.option("value",this.options.gridViewsManager.currentViewId),this.viewsDataGrid&&this.viewsDataGrid.option("dataSource",i)}async save(){!this.hasChanges||(this.options.gridStateManager.save(),await this.options.gridViewsManager.updateCurrentView({name:this.currentViewTitle.option("value"),gridState:this.options.gridStateManager.currentSavedGridState}),O("Saved",!0),await this.loadViewDropdownBoxData())}async saveAs(e,i){if(!this.options.gridStateManager)return;this.options.gridStateManager.save();let r=await this.options.gridViewsManager.createNewView(e,this.options.gridStateManager.currentSavedGridState,i);await this.loadViewDropdownBoxData(),await this.applyView(r.id),O("View is created",!0)}async deleteView(e){await this.options.gridViewsManager.deleteView(e),this.options.onViewDeleted&&this.options.onViewDeleted(e),await this.loadViewDropdownBoxData(),this.options.gridViewsManager.currentViewId!==V.defaultControlDisplayView.id&&await this.applyView(V.defaultControlDisplayView.id)}beginViewApplyingLoading(){this.currentViewTitle&&this.currentViewTitle.option("readOnly",!0),this.saveViewButton&&this.saveViewButton.option("disabled",!0),this.saveViewAsButton&&this.saveViewAsButton.option("disabled",!0),this.viewsDataGrid&&this.viewsDataGrid.beginCustomLoading("Applying...")}endViewApplyingLoading(){this.currentViewTitle&&this.currentViewTitle.option("readOnly",!1),this.saveViewButton&&this.saveViewButton.option("disabled",!1),this.saveViewAsButton&&this.saveViewAsButton.option("disabled",!1),this.viewsDataGrid&&this.viewsDataGrid.endCustomLoading()}syncUIWithCurrentView(e=!1){!e&&this.currentViewTitle&&(this.currentViewTitle.option("value",this.options.gridViewsManager.currentView.name),this.currentViewTitle.option("readOnly",this.isDefaultView)),this.viewsDropdownBox.option("value",this.options.gridViewsManager.currentViewId),setTimeout(()=>{this.viewsDataGrid&&(this.options.gridViewsManager.currentViewId===V.defaultControlDisplayView.id?this.viewsDataGrid.selectRowsByIndexes([0]):this.viewsDataGrid.selectRows([this.options.gridViewsManager.currentViewId],!1))},0);let i=this.options.gridViewsManager.currentView.isGlobal&&!this.options.canCreateGlobalViews;this.saveViewButton&&this.saveViewButton.option("disabled",this.isDefaultView||i)}async confirmChangesLoss(){return this.hasChanges?DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes"):!0}};var Tt=class{constructor(e){this.getFilterByIdInternal=e=>this.filters&&this.filters.find(i=>i.id===e);this.getFilterById=lt(this.getFilterByIdInternal);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl}get currentFilter(){return this.getFilterById(this._currentFilterId)}get currentFilterId(){return this._currentFilterId}set currentFilterId(e){this._currentFilterId=e}async getFilters(){return this.filters||await this.loadFilters(),this.filters}updateCurrentFilter(e){return!!this.currentFilter&&this.updateFilter(this.currentFilter.id,e)}async createNewFilter(e,i,r,n){let o=this.mapFilterModelToDto({id:-1,name:e,isDefault:r,isGlobal:n,filterState:i});return o=await x(this.insertDataUrl,"POST",o),await this.loadFilters(),this.mapFilterDtoToModel(o)}async updateFilter(e,i){let r=this.getFilterById(e);if(!r)return!1;let n=w(w({},r),i),o=this.mapFilterModelToDto(n);return o=await x(this.updateDataUrl,"PUT",o),await this.loadFilters(),!0}async deleteFilter(e){return this.getFilterById(e)?(await x(this.deleteDataUrl,"DELETE",{filterId:e}),await this.loadFilters(),!0):!1}async loadFilters(){let e=await se(this.loadDataUrl);return this.filters=e.map(i=>this.mapFilterDtoToModel(i)),this.resetCachedResultOfGetFilterByIdFunction(),this.filters}mapFilterModelToDto(e){return{Id:e.id,Name:e.name,IsDefault:e.isDefault,IsGlobal:e.isGlobal,FilterState:JSON.stringify(e.filterState)}}mapFilterDtoToModel(e){return{id:e.Id,name:e.Name,isDefault:e.IsDefault||!1,isGlobal:e.IsGlobal||!1,filterState:JSON.parse(e.FilterState)}}resetCachedResultOfGetFilterByIdFunction(){this.getFilterById=lt(this.getFilterByIdInternal)}};var Zi=class{constructor(e){this.isInFilterApplying=!1;this.onGridToolbarPreparing=e=>{let i=e.toolbarOptions&&e.toolbarOptions.items;!i||i.splice(1,0,this.filtersToolbarItem)};this.options=S(w({},e),{gridFiltersManager:e.gridFiltersManager?e.gridFiltersManager:new Tt(e.gridFiltersManagerOptions),autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner),this.filterExpressionCalculator=$("<div />").dxFilterBuilder({fields:this.getFlatColumnsList(this.options.owner.option("columns"))}).dxFilterBuilder("instance")}async tryApplyFilter(e){let i=await this.confirmChangesLoss();return i&&await this.applyFilter(e),i}async applyFilter(e,i=!1){this.isInFilterApplying=!0,this.options.gridFiltersManager.currentFilterId=e,this.updateFilterPopupContent(this.options.gridFiltersManager.currentFilter),this.filtersDropdownBox.option("value",this.options.gridFiltersManager.currentFilterId);let r=this.options.owner.getDataSource();if(this.options.gridFiltersManager.currentFilter){this.filterExpressionCalculator.option("value",this.options.gridFiltersManager.currentFilter.filterState);let n=this.filterExpressionCalculator.getFilterExpression();if(r.isLoading()){let o=()=>{r.off("loadingChanged",o),setTimeout(()=>{r=this.options.owner.getDataSource(),r.filter(n)})};r.on("loadingChanged",o)}else r.filter(n)}else r.filter(null);i||await r.load(),this.options.onFilterApplied&&this.options.onFilterApplied(e),this.isInFilterApplying=!1}integrateToGrid(e){let i=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{i&&i(r),this.onGridToolbarPreparing(r)})}get filtersToolbarItem(){return this._filtersToolbarItem||(this._filtersToolbarItem=this.createFiltersToolbarItem()),this._filtersToolbarItem}get filterPopup(){return this._filterPopup||(this._filterPopup=this.createFilterPopup()),this._filterPopup}get hasChanges(){let e=this.options.gridFiltersManager.currentFilter,i=this.filterNameTextBox&&this.filterNameTextBox.option("value"),r=e&&e.name,n=this.filterBuilder&&this.filterBuilder.option("value"),o=e&&e.filterState,a=this.filterIsGlobalCheckbox&&this.filterIsGlobalCheckbox.option("value"),s=e&&e.isGlobal;return i!==r||n!==o||a!==s}createFiltersToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Data Sets",visible:this.options.visible,cssClass:"aps-filters__toolbar-item",options:{value:this.options.gridFiltersManager.currentFilterId,valueExpr:"id",displayExpr:"name",showClearButton:!0,placeholder:"None",width:200,dropDownOptions:{width:500},onInitialized:async i=>{this.filtersDropdownBox=i.component;let[,r]=await Promise.all([this.loadFilterDropdownBoxData(),this.options.apsControlDisplayUserSettingsManager.getUserSettings()]);r.defaultFilterId&&i.component.option("value",r.defaultFilterId)},onValueChanged:async i=>{if(this.isInFilterApplying)return;if(!e){e=!0;return}let r=i.value;await this.tryApplyFilter(r)||(e=!1,r=i.previousValue,i.component.option("value",r)),this.filtersDataGrid&&this.filtersDataGrid.selectRows(r,!1),this.currentFilterTitle&&this.currentFilterTitle.option("value",i.component.option("text")||i.component.option("placeholder"))},onOpened:i=>{!i.component||this.filtersDataGrid&&this.filtersDataGrid.selectRows(i.component.option("value"),!1)},contentTemplate:i=>{if(!i.component)return;this.filtersDataGrid=this.createFiltersDataGrid(i.component),this.currentFilterTitle=this.createCurrentFilterTitle(i.component),this.newFilterButton=this.createNewFilterButton();let r=$("<div />").addClass("aps-filters__header").append(this.currentFilterTitle.element()).append(this.newFilterButton.element());return $("<div />").css("height","100%").append(r).append(this.filtersDataGrid.element())}}}}createFiltersDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!0,allowDeleting:!0,mode:"cell",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this data set?"}},wordWrapEnabled:!0,columns:[{dataField:"name",allowEditing:!1},{dataField:"isDefault",caption:"Is Default",dataType:"boolean",width:80},{dataField:"isGlobal",caption:"Is Global",dataType:"boolean",width:70},{type:"buttons",buttons:[{icon:"edit",hint:"Edit",onClick:async i=>{if(!i.row||!i.row.key)return;await this.tryApplyFilter(i.row.key)&&!this.filterPopup.option("visible")&&this.openEditFilterPopup(this.options.gridFiltersManager.currentFilter)}},"delete"]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,showColumnLines:!1,selection:{mode:"single"},height:"calc(100% - 51px)",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No data sets",onSelectionChanged:i=>{e.option("value",i.selectedRowKeys?i.selectedRowKeys[0]:null)},onEditorPreparing:i=>{if(i.dataField==="isGlobal"){i.editorOptions.disabled=!this.options.canCreateGlobalFilters;let r=i.editorOptions.onValueChanged;i.editorOptions.onValueChanged=async n=>{i.component.beginCustomLoading("Updating"),await this.options.gridFiltersManager.updateFilter(i.row.data.id,{isGlobal:n.value}),i.component.endCustomLoading(),r(n)}}},onCellPrepared:i=>{i.column.type!=="buttons"||!i.data||i.column.type==="buttons"&&(!i.data.isGlobal||i.data.isGlobal&&this.options.canCreateGlobalFilters||Array.from(i.cellElement.children()).forEach(n=>{$(n).css({color:"#ddd !important",cursor:"default"}).off("click")}))},onRowUpdating:i=>{if(!i.key||i.newData.isDefault===void 0)return;let r=i.component.getDataSource().items().find(n=>n.isDefault);r&&(r.isDefault=!1),this.options.apsControlDisplayUserSettingsManager.updateUserSettings({defaultFilterId:i.newData.isDefault?i.key:void 0})},onRowRemoving:i=>{!i.key||this.deleteFilter(i.key)}}).dxDataGrid("instance")}createCurrentFilterTitle(e){return $("<div />").addClass("aps-filters__current-filter").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:!0}).dxTextBox("instance")}createNewFilterButton(){return $("<button />").addClass("aps-filters__add-new-filter").dxButton({text:"New Data Set",type:"normal",onClick:()=>{this.openNewFilterPopup()},icon:"plus"}).dxButton("instance")}createFilterPopup(){let e=$("<div />").appendTo("body"),i=!1;return e.dxPopup({container:this.options.owner.element(),shading:!1,resizeEnabled:!0,width:650,height:500,onShowing:r=>{this.filtersDropdownBox&&this.filtersDropdownBox.close()},onHiding:async r=>{if(!this.hasChanges||i){i=!1;return}r.cancel=!0,i=await this.confirmChangesLoss(),i&&(r.component.hide(),this.filtersDropdownBox&&this.filtersDropdownBox.open())}}).dxPopup("instance")}createFilterNameTextBox(){return $("<div />").dxTextBox({placeholder:"Enter Data Set Name..."}).dxTextBox("instance")}createFilterIsGlobalCheckbox(){return $("<div />").dxCheckBox({text:"Global data set"}).dxCheckBox("instance")}getFlatColumnsList(e,...i){let r=[];for(let n of e)if(n.columns&&n.columns.length>0){let o=this.getFlatColumnsList(n.columns);r=r.concat(o)}else{let o=$.extend({},n);if(o.dataType==="date"||o.dataType==="datetime"){let a=o.dataType==="datetime",s="dd MMM yy",d=a?"hh:mm, dd MMM yy":s,u=c=>{let p=c.split(", "),g=DevExpress.localization.parseDate(p[1],s)||null;if(g){let b=p[0].split(":");return g.setHours(parseInt(b[0])),g.setMinutes(parseInt(b[1])),g}else return null};o.format=d,o.editorTemplate=c=>$("<div />").dxDateBox({displayFormat:d,type:a?"datetime":"date",width:150,onValueChanged:({value:p})=>{c.setValue(DevExpress.localization.formatDate(p,d))},value:(a?u(c.value):DevExpress.localization.parseDate(c.value,d))||null}),o.filterOperations=["=","<>","<",">","<=",">=","isblank","isnotblank"],o.calculateFilterExpression=function(c){let p=[e,...i];return p[0]&&(a?p[0]=u(p[0]):p[0]=DevExpress.localization.parseDate(c,d)||null),this.defaultCalculateFilterExpression(...p)}}r.push(o)}return r.sort((n,o)=>{let a=(n.caption||"").toLowerCase(),s=(o.caption||"").toLowerCase();return a<s?-1:a>s?1:0})}createFilterBuilder(){return $("<div />").dxFilterBuilder({fields:this.getFlatColumnsList(this.options.owner.option("columns"))}).dxFilterBuilder("instance")}createFilterPopupContent(e){let i=$("<div />").height("100%"),r=$('<div class="aps-filters__name-container" />').height("36px");this.filterNameTextBox=this.createFilterNameTextBox(),this.filterBuilder=this.createFilterBuilder(),this.filterIsGlobalCheckbox=this.createFilterIsGlobalCheckbox(),this.filterNameTextBox.option("value",e&&e.name),this.filterNameTextBox.element().appendTo(r),this.filterIsGlobalCheckbox.option("value",e&&e.isGlobal),this.filterIsGlobalCheckbox.element().appendTo(r),this.filterIsGlobalCheckbox.option("disabled",!this.options.canCreateGlobalFilters),r.appendTo(i),this.filterBuilder.option("value",e&&e.filterState);let n=$("<div />").height("calc(100% - 36px)").appendTo(i);return this.filterBuilder.element().appendTo(n),n.dxScrollView({scrollByContent:!0}),i}createFilterPopupToolbarItems(e){return e?[this.createUpdateFilterPopupToolbarItem(),this.createSaveFilterAsNewPopupToolbarItem(),this.createResetFilterPopupToolbarItem(),this.createDeleteFilterPopupToolbarItem()]:[this.createSaveFilterPopupToolbarItem()]}createSaveFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Apply and Save",onClick:this.createNewFilter.bind(this),icon:"save"}}}createUpdateFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Apply and Update",onClick:()=>{!this.options.gridFiltersManager.currentFilter||this.updateFilter(this.options.gridFiltersManager.currentFilter)},icon:"save"}}}createSaveFilterAsNewPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Save As New",onClick:this.createNewFilter.bind(this),icon:"save"}}}createResetFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Reset",onClick:async()=>{!this.hasChanges||!this.filterBuilder||!this.options.gridFiltersManager.currentFilter||!await DevExpress.ui.dialog.confirm("Are you sure you want to reset unsaved changes?","Reset the data set")||this.resetChanges()},icon:"undo"}}}createDeleteFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Delete Data Set",onClick:async()=>{!this.options.gridFiltersManager.currentFilter||!await DevExpress.ui.dialog.confirm(`Are you sure you want to delete the "${this.options.gridFiltersManager.currentFilter.name}" data set?`,"Delete the data set")||(await this.deleteFilter(this.options.gridFiltersManager.currentFilterId),this.filterPopup.hide())},icon:"trash"}}}async openNewFilterPopup(){!await this.tryApplyFilter(void 0)||(this.updateFilterPopupContent(),this.filterPopup.show())}openEditFilterPopup(e){this.updateFilterPopupContent(e),this.filterPopup.show()}updateFilterPopupContent(e){let i=this.filterPopup.option("animation");this.filterPopup.option("animation",void 0),this.filterPopup.option("title",e?`Edit the "${e.name}" data set`:"Create a new data set"),this.filterPopup.option("contentTemplate",()=>this.createFilterPopupContent(e)),this.filterPopup.option("toolbarItems",this.createFilterPopupToolbarItems(e)),this.filterPopup.repaint(),this.filterPopup.option("animation",i)}async createNewFilter(){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let e=this.filterNameTextBox.option("value"),i=this.filterBuilder.option("value"),r=!1,n=this.filterIsGlobalCheckbox.option("value");if(!e)return;let o=await this.options.gridFiltersManager.createNewFilter(e,i,r,n);await this.loadFilterDropdownBoxData(),await this.applyFilter(o.id),O("Created",!0)}async updateFilter(e){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let i=this.filterNameTextBox.option("value"),r=this.filterBuilder.option("value"),n=this.filterIsGlobalCheckbox.option("value");!i||!await this.options.gridFiltersManager.updateFilter(e.id,{name:i,filterState:r,isGlobal:n})||(O("Updated",!0),await this.applyFilter(this.options.gridFiltersManager.currentFilter.id),await this.loadFilterDropdownBoxData())}async deleteFilter(e){await this.options.gridFiltersManager.deleteFilter(e),this.options.onFilterDeleted&&this.options.onFilterDeleted(e),await this.applyFilter(void 0),await this.loadFilterDropdownBoxData()}resetChanges(){this.filterNameTextBox.option("value",this.options.gridFiltersManager.currentFilter.name),this.filterBuilder.option("value",this.options.gridFiltersManager.currentFilter.filterState),this.filterIsGlobalCheckbox.option("value",this.options.gridFiltersManager.currentFilter.isGlobal)}async loadFilterDropdownBoxData(){if(!this.filtersDropdownBox)return;let[e,i]=await Promise.all([this.options.apsControlDisplayUserSettingsManager.getUserSettings(),this.options.gridFiltersManager.getFilters()]);if(e.defaultFilterId){let n=i.find(o=>o.id===e.defaultFilterId);n&&(n.isDefault=!0)}let r=new DevExpress.data.ArrayStore({key:"id",data:i});this.filtersDropdownBox.option("dataSource",r),this.filtersDataGrid&&this.filtersDataGrid.option("dataSource",r)}async confirmChangesLoss(){return await new Promise(e=>setTimeout(()=>e(),0)),!this.hasChanges||!this.filterPopup.option("visible")?!0:DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes")}};var Mt=class{constructor(e){this.$container=e.$container,this.cssClass=e.cssClass,this.maxFileSize=e.maxFileSize,this.acceptedFileTypes=e.acceptedFileTypes,this.selectButtonText=e.selectButtonText,this.allowedFileExtensions=e.allowedFileExtensions,this.onValueChanged=e.onValueChanged,this.onUploadStarted=e.onUploadStarted,this.onUploaded=e.onUploaded}render(){let e=$("<div />");this.cssClass&&e.addClass(this.cssClass),this.fileUploader=e.dxFileUploader({selectButtonText:this.selectButtonText,labelText:"",allowedFileExtensions:this.allowedFileExtensions,accept:this.acceptedFileTypes,uploadMode:"useForm",maxFileSize:this.maxFileSize,showFileList:!1,onValueChanged:i=>{var r;i.component.option("labelText",i.value[0]?i.value[0].name:""),(r=this.onValueChanged)==null||r.call(this,i)},onUploadStarted:i=>{var r;i.element.find(".dx-fileuploader-upload-button").hide(),(r=this.onUploadStarted)==null||r.call(this,i)},onUploaded:i=>{var r;(r=this.onUploaded)==null||r.call(this,i)}}).dxFileUploader("instance"),this.$container.append(this.fileUploader.element())}upload(e,i){return new Promise((r,n)=>{let o=new FormData,a=this.fileUploader.element().find("input")[0].files[0];o.append("file",a);for(let s in i)o.append(s,i[s]);$.ajax({url:e,type:"post",data:o,contentType:!1,processData:!1,success:s=>{s.RequestState===1?r(s.Data):n(s.Message)},error:s=>n("Unknown error")})})}};var ai=class extends ve{constructor(e){super();this.fileUploadUrl=e.fileUploadUrl,this.$container=e.$container,this.title=e.title,this.getTablesListUrl=e.getTablesListUrl,this.createTableUrl=e.createTableUrl,this.addRowsUrl=e.addRowsUrl,this.predefinedTable=e.predefinedTable,this.canChangeMode=e.predefinedImportFileMode===void 0,this.mode=e.predefinedImportFileMode!==void 0?e.predefinedImportFileMode:0,this.createTableButtonText=e.createTableButtonText||"Create Table",this.updateTableButtonText=e.updateTableButtonText||"Add New Rows",this.createTableModeText=e.createTableModeText||"Create Table",this.updateTableModeText=e.updateTableModeText||"Add New Rows"}show(){this.popup=$("<div />").appendTo(this.$container).dxPopup({showTitle:!0,title:this.title,visible:!1,dragEnabled:!1,resizeEnabled:!1,showCloseButton:!0,closeOnOutsideClick:!1,fullScreen:!0,maxWidth:1300,maxHeight:800,contentTemplate:e=>{let i=$("<div />");this.form=this.createForm(),i.append(this.form.element()),i.dxScrollView({width:"100%",height:"100%"}).appendTo(e)},toolbarItems:[{toolbar:"bottom",widget:"dxButton",location:"after",options:{text:this.getActionButtonText(),type:"success",onInitialized:e=>{this.actionButton=e.component},onClick:async()=>{this.mode===0?this.createTable():this.addRowsToTable()}}},{toolbar:"bottom",widget:"dxButton",location:"after",options:{text:"Cancel",onClick:()=>this.popup.hide()}}]}).dxPopup("instance"),this.popup.show(),this.onModeSwitching()}dispose(){this.popup&&this.popup.dispose()}createForm(){return $("<div>").dxForm({showColonAfterLabel:!0,labelLocation:"top",colCountByScreen:{md:4,sm:1},screenByWidth:i=>i<1256?"sm":"md",items:[{dataField:"Mode",itemType:"simple",template:(i,r)=>{this.createModeSwitcher(r)}},{dataField:"Schema",editorOptions:{disabled:!this.canChangeMode},validationRules:[{type:"required"}]},{dataField:"Table",editorOptions:{disabled:!this.canChangeMode},validationRules:[{type:"required"}]},{dataField:"TableSelector",label:{text:"Table"},editorType:"dxSelectBox",visible:!1,colSpan:2,editorOptions:{dataSource:new DevExpress.data.DataSource({store:te({loadUrl:this.getTablesListUrl,loadParams:{contextName:"",tablesOnly:!0,isWarehouseContext:!0},loadMethod:"post",notifyError:!1}),paginate:!1,sort:"this"}),searchEnabled:!0},validationRules:[{type:"required"}]},{dataField:"Source File",itemType:"simple",template:(i,r)=>{this.createFilesUploader(r)}},{dataField:"Columns Selector",label:{visible:!1},colSpan:4,itemType:"simple",template:(i,r)=>{this.createDataGrid(r)}}]}).dxForm("instance")}createModeSwitcher(e){$("<div />").dxButtonGroup({items:[{text:this.createTableModeText,icon:"inserttable",value:0},{text:this.updateTableModeText,icon:"insertrowbelow",value:1}],keyExpr:"value",disabled:!this.canChangeMode,stylingMode:"outlined",selectionMode:"single",selectedItemKeys:[this.mode],onItemClick:i=>{this.mode=i.itemData.value,this.onModeSwitching()}}).appendTo(e)}createFilesUploader(e){this.fileUploader=new Mt({$container:e,cssClass:"table-creator__upload",maxFileSize:10*1e6,acceptedFileTypes:".xls, .xlsx",allowedFileExtensions:[".xls",".xlsx"],selectButtonText:"Select Excel file",onValueChanged:async()=>{this.dataGrid.beginCustomLoading("Parsing selected file..."),this.fileUploader.upload(this.fileUploadUrl).then(i=>{if(i){this.setRowsCount(i.RowsCount);let r=new DevExpress.data.DataSource({store:{type:"array",key:"Id",data:i.Columns},paginate:!1});this.dataGrid.option("dataSource",r)}}).catch(i=>{O(`Parsing Error : ${i}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}),this.fileUploader.render()}createDataGrid(e){let i={noDataText:"Select Excel File",hoverStateEnabled:!0,searchPanel:{visible:!1},headerFilter:{visible:!1},filterRow:{visible:!1},sorting:{mode:"none"},paging:{pageSize:1e4,enabled:!1},editing:{allowUpdating:!0,mode:"cell"},selection:{mode:"none"},columns:[{dataField:"Id",visible:!1},{dataField:"Selected",dataType:"boolean",visible:this.mode===0},{dataField:"IsKeyColumn",dataType:"boolean",visible:this.mode===0},{dataField:"Name",caption:"Column Name"},{dataField:"Type",allowEditing:!1},{dataField:"IsNullable",allowEditing:this.mode===0&&this.canChangeMode,setCellValue:(r,n)=>{r.IsNullable=n,n&&(r.IsKeyColumn=!1)}}],remoteOperations:!1,onToolbarPreparing:r=>{r.toolbarOptions.items.push({template:()=>$("<div>").append($("<span>").addClass("table-creator__table-header").text("Parsed File Metadata")),location:"before"},{template:()=>(this.rowsCounter=$("<span>").text("1000"),this.rowsCounterContainer=$("<div>").append($("<span>").text("Rows Count: "),this.rowsCounter).hide(),this.rowsCounterContainer),location:"after"})},onEditorPreparing:r=>{if(r.parentType==="dataRow"&&r.dataField==="IsKeyColumn"){let n=r.editorOptions;n.disabled=r.row.data.IsNullable}}};this.dataGrid=de("<div />",{options:i,summaryColumn:"Name",isFullScreen:!1,setDefaultColumnWidth:!1}),e.append(this.dataGrid.element())}createTable(){if(this.form.validate().isValid){let i=this.dataGrid.getDataSource();i||O("Select file with data",!1);let r=i.items();if(!this.areColumnsValid(r))O("At least 1 key column must be set",!1);else{let n={schema:this.form.option("formData").Schema,table:this.form.option("formData").Table,columns:JSON.stringify(r)};this.dataGrid.beginCustomLoading("Creating and filling DB table..."),this.fileUploader.upload(this.createTableUrl,n).then(o=>{o===!0?(this.popup.hide(),O(`The table [${n.schema}].[${n.table}] has been created`,!0),this.emit(ai.TABLE_UPDATED_EVENT)):O("The table has not been created",!1)}).catch(o=>{O(`Table creating error: ${o}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}}addRowsToTable(){if(this.form.validate().isValid){let i=this.dataGrid.getDataSource();i||O("Select file with data",!1);let r=i.items(),n={table:this.form.option("formData").TableSelector,columns:JSON.stringify(r)};this.dataGrid.beginCustomLoading("Adding rows to DB table..."),this.fileUploader.upload(this.addRowsUrl,n).then(o=>{o===!0?(this.popup.hide(),O(`The table ${n.table} has been updated`,!0),this.emit(ai.TABLE_UPDATED_EVENT)):O("The table has not been updated",!1)}).catch(o=>{O(`Table updating error: ${o}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}onModeSwitching(){let e=this.mode===0;this.actionButton.option("text",this.getActionButtonText()),this.dataGrid.columnOption("IsKeyColumn","visible",e),this.dataGrid.columnOption("IsNullable","visible",e),this.canChangeMode?(this.form.itemOption("Schema","visible",e),this.form.itemOption("Table","visible",e),this.form.itemOption("TableSelector","visible",!e)):(this.form.itemOption("Schema","visible",!0),this.form.updateData("Schema",this.predefinedTable.schema),this.form.itemOption("Table","visible",!0),this.form.updateData("Table",this.predefinedTable.table),this.form.itemOption("TableSelector","visible",!1))}getActionButtonText(){return this.mode===0?this.createTableButtonText:this.updateTableButtonText}areColumnsValid(e){return e.filter(i=>i.Selected).some(i=>i.IsKeyColumn)}setRowsCount(e){this.rowsCounterContainer.show(),this.rowsCounter.text(e)}},Ne=ai;Ne.TABLE_UPDATED_EVENT="file-importer-table-updated-event";var er=class{constructor(e){this.onGridToolbarPreparing=e=>{let i=e.toolbarOptions&&e.toolbarOptions.items;if(!i)return;let r=[this.displaysToolbarItem];this.importFileOptions&&this.importFileOptions.mode!==0&&r.push(this.importFileToolbarItem),i.splice(1,0,...r)};this.options=e,this.gridDisplaysManager=e.gridDisplaysManager,this.gridViewsManager=e.gridViewsManager,this.gridFiltersManager=e.gridFiltersManager,this.importFileOptions=e.importFileOptions,this.gridDisplaysManager.onDisplaisLoaded=i=>{let r=new DevExpress.data.ArrayStore({key:"Id",data:i});this.displaysDropdownBox&&this.displaysDropdownBox.option("dataSource",r),this.dataGrid&&this.dataGrid.option("dataSource",r),this.dataGrid&&this.dataGrid.endCustomLoading()},this.gridDisplaysManager.onDisplayChanged=i=>{this.displaysDropdownBox&&this.displaysDropdownBox.option("value",i?i.Id:null),this.currentDisplayTitle&&this.currentDisplayTitle.option("value",i?i.Name:null),this.currentDisplayTitle&&this.currentDisplayTitle.option("disabled",!i),this.saveAsButton&&this.saveAsButton.option("disabled",!i),this.saveButton&&this.saveButton.option("disabled",!i),this.dataGrid&&(i?this.dataGrid.selectRows([i.Id],!1):this.dataGrid.deselectAll())},this.integrateToGrid(this.options.owner)}integrateToGrid(e){let i=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{i&&i(r),this.onGridToolbarPreparing(r)})}createDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:this.options.editMode,mode:"row",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this display?"}},loadPanel:{shading:!0},allowColumnResizing:!0,columnAutoWidth:!0,wordWrapEnabled:!0,columns:[{dataField:"Name",caption:"Display"},{dataField:"FilterId",caption:"Data Set",lookup:{valueExpr:"id",displayExpr:"name"}},{dataField:"ViewId",caption:"View",lookup:{valueExpr:"id",displayExpr:"name"}}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,height:this.options.editMode?"calc(100% - 51px)":"100%",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No displays",onInitialized:async i=>{let r=await this.gridFiltersManager.getFilters(),n=await this.gridViewsManager.getViews();i.component.columnOption("FilterId","lookup.dataSource",r),i.component.columnOption("ViewId","lookup.dataSource",n)},onCellClick:async i=>{i.rowType==="data"&&e.option("value",i.data.Id)},onRowRemoving:async i=>{this.dataGrid.beginCustomLoading("Loading"),await this.gridDisplaysManager.deleteDisplay(i.key)}}).dxDataGrid("instance")}createDisplaysToolbarItem(){let e={valueExpr:"Id",displayExpr:"Name",showClearButton:!0,placeholder:"None",width:200,onInitialized:r=>{this.displaysDropdownBox=r.component,this.gridDisplaysManager.getDisplays()},onValueChanged:async r=>{let n=this.gridDisplaysManager.currentDisplay,o=n&&n.FilterId!==this.gridFiltersManager.currentFilterId,a=n&&n.ViewId!==this.gridViewsManager.currentViewId;await(o||a?this.confirmChangesLoss():Promise.resolve(!0))&&(this.gridDisplaysManager.currentDisplayId=r.value)}},i={dropDownOptions:{width:800},contentTemplate:this.options.editMode?r=>{this.dataGrid=this.createDataGrid(r.component),this.currentDisplayTitle=this.createCurrentDisplayTitle(r.component),this.saveButton=this.createSaveViewButton(),this.saveAsButton=this.createSaveViewAsButton();let n=$("<div />").addClass("aps-displays__header").append(this.currentDisplayTitle.element()).append(this.saveButton.element()).append(this.saveAsButton.element()),o=$("<div />").height("100%");return this.options.editMode&&o.append(n),o.append(this.dataGrid.element()),o}:void 0,onOpened:()=>{this.saveAsButton&&this.saveAsButton.option("disabled",!this.gridFiltersManager.currentFilterId),this.saveButton&&this.saveButton.option("disabled",!this.gridDisplaysManager.currentDisplay)}};return{widget:this.options.editMode?"dxDropDownBox":"dxSelectBox",location:"after",text:"Displays",cssClass:"aps-displays__toolbar-item",options:this.options.editMode?$.extend(e,i):e}}createImportFileToolbarItem(){return{location:"after",widget:"dxButton",options:{icon:"upload",hint:"Import file",height:30,stylingMode:"text",onClick:()=>{this.fileImporter&&this.fileImporter.dispose(),this.fileImporter=new Ne({$container:this.options.owner.element().parent(),title:"Import File to CDM",createTableUrl:this.importFileOptions.createTableUrl,addRowsUrl:this.importFileOptions.addRowsUrl,fileUploadUrl:this.importFileOptions.fileUploadUrl,predefinedImportFileMode:this.getPredefinedImportFileMode(this.importFileOptions.mode),predefinedTable:this.importFileOptions.predefinedTable,createTableButtonText:"Replace All Rows",createTableModeText:"Replace Rows"}),this.fileImporter.on(Ne.TABLE_UPDATED_EVENT,()=>this.options.owner.refresh()),this.fileImporter.show()},onContentReady:e=>{e.element.find(".dx-button-content").css({paddingTop:5,paddingBottom:5})}}}}getPredefinedImportFileMode(e){switch(e){case 1:return 1;case 2:return 0;default:throw new Error("Unsupported mode")}}createCurrentDisplayTitle(e){return $("<div />").addClass("aps-displays__current-display").dxTextBox({value:e.option("text")||e.option("placeholder"),disabled:!this.gridDisplaysManager.currentDisplay}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-displays__save-display").dxButton({text:"Save",type:"normal",disabled:!this.gridDisplaysManager.currentDisplay,onClick:()=>{this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.updateCurrentDisplay(this.currentDisplayTitle.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId)},icon:"save"}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-display__save-display-as").dxButton({text:"Save As",type:"normal",disabled:!this.gridFiltersManager.currentFilterId,onClick:()=>this.createSaveAsDialog(),icon:"save"}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),i=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"Display Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),r=i.dxTextBox("instance"),n=i.dxValidator("instance");return r.element().appendTo(e),_e({title:"Create New Display",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async o=>{!n.validate().isValid||(this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.createNewDisplay(r.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId),o())}},{text:"Cancel",onClick:o=>o()})}async confirmChangesLoss(){return DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes")}get displaysToolbarItem(){return this._displaysToolbarItem||(this._displaysToolbarItem=this.createDisplaysToolbarItem()),this._displaysToolbarItem}get importFileToolbarItem(){return this._importFileToolbarItem||(this._importFileToolbarItem=this.createImportFileToolbarItem()),this._importFileToolbarItem}};var tr=class{constructor(e){this._currentDisplayId=0;this.getDisplayById=e=>!e||!this.displays?null:this.displays.find(i=>i.Id===e);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl,this.eventHandlers={changed:[],loaded:[]}}async loadDisplays(){return this.displays=await se(this.loadDataUrl),this.onDisplaisLoadedPrivate(),this.displays}async getDisplays(){return this.displays||await this.loadDisplays()}async createNewDisplay(e,i,r){let n={Id:0,Name:e,FilterId:i,ViewId:r};await x(this.insertDataUrl,"POST",n),await this.loadDisplays()}async deleteDisplay(e){await x(this.deleteDataUrl,"DELETE",{id:e}),await this.loadDisplays()}updateCurrentDisplay(e,i,r){return this.updateDisplay(this.currentDisplay.Id,e,i,r)}async updateDisplay(e,i,r,n){await x(this.updateDataUrl,"PUT",{id:e,name:i,filterId:r,viewId:n}),await this.loadDisplays()}onDisplayChangedPrivate(){this.eventHandlers.changed.forEach(e=>e(this.currentDisplay))}onDisplaisLoadedPrivate(){this.eventHandlers.loaded.forEach(e=>e(this.displays))}get currentDisplayId(){return this._currentDisplayId}set currentDisplayId(e){this._currentDisplayId=e,this.onDisplayChangedPrivate()}get currentDisplay(){return this.getDisplayById(this._currentDisplayId)}set onDisplayChanged(e){this.eventHandlers.changed.push(e)}set onDisplaisLoaded(e){this.eventHandlers.loaded.push(e)}};var ir=class{constructor(e){this.onGridEditorPreparing=e=>{if(!e.component||!e.editorOptions||e.parentType!=="dataRow"||!e.dataField||!e.row||!e.row.key)return;let i=e.dataField,r=e.row.key,n=e.editorOptions.onValueChanged;e.editorOptions.onValueChanged=o=>{n(o),this.updateMultipleRows(i,r,o.value)}};this.options=S(w({},e),{autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner)}integrateToGrid(e){e.option("selection",{mode:"multiple"}),e.on("editorPreparing",this.onGridEditorPreparing)}async updateMultipleRows(e,i,r){let n=await this.options.owner.getSelectedRowKeys();if(!n.length)return;let o=n.findIndex(a=>a===i);o<0||n.length===1||(n.splice(o,1),n.forEach(a=>{this.options.owner.cellValue(this.options.owner.getRowIndexByKey(a),e,r)}))}};var rr=class{constructor(e){this.defaultUserSettings={defaultFilterId:void 0,defaultViewId:V.defaultControlDisplayView.id};this.isLatestLoadedUserSettingsExpired=!0;this.options=w({},e),this.options.loadedUserSettings&&(this.latestLoadedUserSettings=this.options.loadedUserSettings),this.startAutoCacheResettingTimer()}get latestLoadedUserSettings(){return this._latestLoadedUserSettings}set latestLoadedUserSettings(e){this._latestLoadedUserSettings=e,this.isLatestLoadedUserSettingsExpired=!1}async getUserSettings(){if(!this.isLatestLoadedUserSettingsExpired)return this.latestLoadedUserSettings;try{this.latestLoadedUserSettings=await this.loadUserSettings()}catch(e){console.error(e)}return this.latestLoadedUserSettings}async updateUserSettings(e){try{this.latestLoadedUserSettings=await this.updateUserSettingsInternal(e)}catch(i){console.error(i)}return this.latestLoadedUserSettings}startAutoCacheResettingTimer(){this.autoResettingCacheTimerId=window.setInterval(()=>{this.isLatestLoadedUserSettingsExpired=!0},5e3)}stopAutoCacheResettingTimer(){window.clearInterval(this.autoResettingCacheTimerId)}},si=class extends rr{async loadUserSettings(){let e=localStorage.getItem(si.userSettingsStorageKey);return e?JSON.parse(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let i=await this.getUserSettings(),r=w(w({},i),e);return localStorage.setItem(si.userSettingsStorageKey,JSON.stringify(r)),r}},xn=si;xn.userSettingsStorageKey="aps:control-display:user-settings";var nr=class extends rr{constructor(e){super(e);this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl}async loadUserSettings(){let e=await se(this.loadDataUrl);return e?this.mapControlDisplayUserSettingsDtoToModel(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let i=await this.getUserSettings(),r=w(w({},i),e),n=await x(this.updateDataUrl,"PUT",this.mapControlDisplayUserSettingsModelToDto(r));return this.mapControlDisplayUserSettingsDtoToModel(n)}mapControlDisplayUserSettingsModelToDto(e){return{DefaultFilterId:e.defaultFilterId,DefaultViewId:e.defaultViewId}}mapControlDisplayUserSettingsDtoToModel(e){return{defaultFilterId:e.DefaultFilterId,defaultViewId:e.DefaultViewId}}};function wn(t){let e="",i=t.filter(n=>n.visible),r=i.filter(n=>n.visibleIndex!==null&&n.visibleIndex!==void 0);return r.length?e=r.sort((n,o)=>n.visibleIndex-o.visibleIndex)[0].dataField:e=i[0]&&i[0].dataField||"",e}var Ot=class{constructor(e){this.onViewApplied=e=>{this.clearFilterRowAfterViewSwitching()};this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.pageTitle=e.pageTitle,this.exportFileName=e.exportFileName,this.userName=e.userName,this.userConfigUrl=e.userConfigUrl,this.controlLogsUrl=e.controlLogsUrl,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.gridFiltersManagerOptions=e.gridFiltersManagerOptions,this.gridViewsManagerOptions=e.gridViewsManagerOptions,this.gridDisplaysManagerOptions=e.gridDisplaysManagerOptions,this.remoteControlDisplayUserSettingsManagerLoadOptions=e.remoteControlDisplayUserSettingsManagerLoadOptions,this.importFileOptions=e.importFileOptions,this.$container.addClass(["aps-grid","control-display-grid"])}render(){x(this.userConfigUrl).then(e=>{let i=new Tt(this.gridFiltersManagerOptions),r=new V(this.gridViewsManagerOptions),n=new tr(this.gridDisplaysManagerOptions);this.mainGrid=this.createMainGrid(e.FieldsConfiguration);let o=e.CanCreateDisplays&&e.CanCreateViews&&e.CanCreateFilters;(o||e.CanApplayDisplays)&&(this.gridDisplaysToolbarComponent=new er({owner:this.mainGrid,editMode:o,gridFiltersManager:i,gridViewsManager:r,gridDisplaysManager:n,importFileOptions:this.importFileOptions})),this.gridViewsToolbarComponent=new Yi({owner:this.mainGrid,onViewApplied:this.onViewApplied,onViewDeleted:async()=>{await n.loadDisplays()},autoIntegration:!0,gridViewsManager:r,canCreateGlobalViews:e.CanCreateGlobalViews,visible:e.CanCreateViews}),this.gridFiltersToolbarComponent=new Zi({apsControlDisplayUserSettingsManager:new nr({userId:this.userName,loadDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.loadDataUrl,updateDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.updateDataUrl}),owner:this.mainGrid,onFilterDeleted:async a=>{await n.loadDisplays()},autoIntegration:!0,gridFiltersManager:i,canCreateGlobalFilters:e.CanCreateGlobalFilters,visible:e.CanCreateFilters}),this.multipleEditingDataGridPlugin=new ir({owner:this.mainGrid}),n.onDisplayChanged=async a=>{a?(await this.gridFiltersToolbarComponent.applyFilter(a.FilterId,!0),await this.gridViewsToolbarComponent.applyView(a.ViewId)):(this.gridFiltersToolbarComponent.applyFilter(void 0,!0),await this.gridViewsToolbarComponent.applyView(V.defaultControlDisplayView.id))}})}hasPermisson(e,i){return e&i}buildTree(e){let i="__GROUP__",r=e.reduce((o,a)=>(a.Columns=[],a.GroupField=a.GroupField?`${i}${a.GroupField}`:null,o[a.Name]=a,o),{});r=e.filter(o=>o.GroupField).map(o=>o.GroupField).filter((o,a,s)=>s.indexOf(o)===a).reduce((o,a)=>{let s=a.replace(i,""),l={Name:a,Label:s,Columns:[],GroupField:r[s]&&r[s].GroupField&&r[s].GroupField!==a?r[s].GroupField:null};return o[a]=l,o},r);let n=[];for(let o in r)if(r.hasOwnProperty(o)){let a=r[o];a.GroupField?r[a.GroupField].Columns.push(a):n.push(a)}return n}renderDisplayType(e,i){e.type===1&&(i.cellTemplate=(r,n)=>{let o=String(n.value),a=e.data.find(s=>String(s.value)===o);a?$("<div>").css({"text-align":"center"}).attr("title",a.title).append($("<img>",{src:a.image})).appendTo(r):$("<div />").css({"text-align":"center"}).text(n.value).appendTo(r)},i.editCellTemplate=(r,n)=>{$("<div />").dxSelectBox({dataSource:e.data,displayValue:"title",itemTemplate:o=>$("<div />").css({"text-align":"center"}).attr("title",o.title).append($("<img>",{src:o.image})).appendTo(r),fieldTemplate:(o,a)=>{let s=e.data.find(u=>parseInt(u.value)===n.value),l=$("<div />").addClass("item-name"),d=$("<div />").addClass("aps-icon-editor__custom-item").append($("<img>",{src:s?s.image:""}).attr("title",s?s.title:"")).append(l);l.dxTextBox({value:"",readOnly:!0}),a.append(d)},onValueChanged:({value:o,component:a})=>{n.setValue(parseInt(o.value)),a.blur()},value:n.value!==null&&n!==void 0&&n.value.toString(),selectedItem:e.data.find(o=>parseInt(o.value)===n.value)}).appendTo(r)},i.allowSearch=!1,i.allowFiltering=!1,i.allowHeaderFiltering=!0,i.allowGrouping=!1),e.type===2&&(i.editCellTemplate=(r,n)=>{$("<div />").dxSelectBox({dataSource:e.data.map(o=>o.value).sort(),acceptCustomValue:!0,showClearButton:!0,onValueChanged:({value:o,component:a})=>{n.setValue(o||""),a.blur()},value:n.value}).appendTo(r)})}configureColumn(e){let i=e.Label||e.Name,r=e.ToolTip||i,n=e.Columns.length?{caption:i,columns:e.Columns.map(o=>this.configureColumn(o))}:{dataField:e.Name,dataType:e.Type,caption:i,headerCellTemplate:ye(i,r),visible:e.IsDefaultViewField,visibleIndex:e.Order,allowFixing:!1,allowEditing:!!this.hasPermisson(e.Permissions,4),width:e.Width,hidingPriority:e.HidingOrder};if(e.DisplayType){let o=JSON.parse(e.DisplayType);if(o.type===1){let a=o.data.map(s=>({text:s.title,value:s.value}));a.splice(0,0,{text:"Blank",value:null}),n.headerFilter={dataSource:a}}this.renderDisplayType(o,n)}return n}configureColumns(e){return e=e.filter(r=>this.hasPermisson(r.Permissions,1)),e=this.buildTree(e),e.map(r=>this.configureColumn(r))}createMainGrid(e){let i=e.some(a=>a.IsKeyColumn),r=this.configureColumns(e),n=wn(r),o={dataSource:this.createMainGridDataSource(e),editing:{allowUpdating:i,allowAdding:!1,allowDeleting:!1,mode:"batch"},scrolling:{mode:"virtual",preloadEnabled:!0},remoteOperations:!0,pager:{visible:!1},height:this.isStandalonePage?void 0:"100%",columnChooser:{enabled:!0,mode:"dragAndDrop"},columnFixing:{enabled:!0},filterPanel:{visible:!0,texts:{createFilter:"None"}},summary:{totalItems:[{summaryType:"count",column:n}]},allowColumnResizing:!0,columnHidingEnabled:!1,hoverStateEnabled:!0,columns:r,allowColumnReordering:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},masterDetail:i?{enabled:!0,template:(a,s)=>{let l={};e.filter(d=>d.IsKeyColumn).forEach(d=>l[d.Name]=s.data[d.Name]),$("<div>").dxDataGrid({dataSource:{store:te({loadUrl:`${this.controlLogsUrl}?key=${JSON.stringify(l)}`})},showBorders:!0,columns:[{dataField:"User",width:200},{dataField:"CreatedAt",caption:"Date",dataType:"date",format:"shortDateShortTime",width:200},{dataField:"Changes",cellTemplate:(d,u)=>{let c=u.data.Changes.map(p=>`<div class='aps-control-log'>
2
+ (()=>{var Kr=Object.defineProperty,pa=Object.defineProperties;var ca=Object.getOwnPropertyDescriptors;var Wr=Object.getOwnPropertySymbols;var ha=Object.prototype.hasOwnProperty,fa=Object.prototype.propertyIsEnumerable;var zr=(i,e,t)=>e in i?Kr(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,w=(i,e)=>{for(var t in e||(e={}))ha.call(e,t)&&zr(i,t,e[t]);if(Wr)for(var t of Wr(e))fa.call(e,t)&&zr(i,t,e[t]);return i},S=(i,e)=>pa(i,ca(e));var me=(i,e)=>{for(var t in e)Kr(i,t,{get:e[t],enumerable:!0})};var wt=(n=>(n[n.Invalid=0]="Invalid",n[n.Valid=1]="Valid",n[n.ExpireSoon=2]="ExpireSoon",n[n.Expired=3]="Expired",n))(wt||{});var Xe=(a=>(a[a.GridView=0]="GridView",a[a.Dashboard=1]="Dashboard",a[a.MenuNode=2]="MenuNode",a[a.Report=3]="Report",a[a.Diagram=4]="Diagram",a[a.CDM=5]="CDM",a))(Xe||{});function O(i,e=!0){let t=e?"success":"error",r=e?2e3:4e3;DevExpress.ui.notify({message:i,type:t,onShowing:n=>{let o=n.element.find(".dx-toast-message");o.html((o.html()||"").replace("\\n","<br />"))}},t,r)}var qt=i=>i?Array.isArray(i)?i[0].StackTrace!==void 0||i[0].Error!==void 0:i.Error!==void 0:!1;var Ye=(t=>(t[t.Completed=1]="Completed",t[t.Errored=2]="Errored",t))(Ye||{});var Li={};me(Li,{createButtons:()=>Qr,createDialog:()=>_e,createItem:()=>wa});var Pi={};me(Pi,{CSS_CLASSES:()=>ee});var ee={dxDataGrid:"iszolea-dx-datagrid",dxButton:"iszolea-dx-button",dxPopup:"iszolea-dx-popup"};var ma="popup-content",ga="popup-footer",va="buttons",Ri="ok-btn",Jr="cancel-btn";function ya(i,e){return{$content:$("<div />").addClass(ma).addClass(e).appendTo(i),$footer:$("<div />").addClass(ga).appendTo(i)}}var Xt=[];function xa(i,e,t=!1){let r=e.onShowing;e.onShown=a=>{r&&r(a);let s=o.content().find("input[type=text]"),l=s.eq(0);l.focus();let d={keydown:u=>{Xt[Xt.length-1]===o&&(u.keyCode===13&&$(u.currentTarget).trigger("change"),n(u))}};t?s.on(d):l.on(d)};function n(a){a.keyCode===13&&o.content().find(`.${ee.dxButton}.${Ri}`).click(),a.keyCode===27&&o.content().find(`.${ee.dxButton}.${Jr}`).click()}let o=i.dxPopup(e).dxPopup("instance");return{show:()=>{o.show(),$(document).on({keydown:n}),Xt.push(o)},hide:()=>{$(document).off({keydown:n}),o.hide(),Xt.pop()},remove:()=>i.remove()}}function Qr(i,e){let t=$("<table />").addClass(va),r=$("<tr>").appendTo(t);return i&&$("<td />").attr("width","50%").append($("<div />").addClass(ee.dxButton).addClass(Ri).dxButton(i)).appendTo(r),e&&$("<td />").attr("width","50%").append($("<div />").addClass(ee.dxButton).addClass(Jr).dxButton(e)).appendTo(r),t}function wa(i,e){return $("<div />").addClass("item").append($("<div />").addClass("form-label").text(i),$("<div />").addClass("value").append(e))}function _e(i,e,t,r,n){let o=$("<div>").appendTo("body"),a=null,s=null,l=n?n.useKeyPressBehavior:!1;function d(){s.hide(),s.remove()}let u={contentTemplate:p=>{let{$content:g,$footer:b}=ya(p);g.append(e),t&&r?(a=Qr({text:t.text,icon:t.icon,disabled:t.disabled,type:"success",onClick:I=>t.onClick(d)},{text:r.text,icon:r.icon,disabled:r.disabled,onClick:I=>r.onClick(d)}),b.append(a)):b.remove()},elementAttr:{class:"iszolea-dx-popup"}},c={};return $.extend(!0,c,i,u),s=xa(o,c,l),s.show(),{okBtn:a?a.find(`.${Ri}`).dxButton("instance"):null,close:()=>d()}}var Ia="iszolea-error-dx-popup",ba="iszolea-error-dx-popup__content",Da="iszolea-error-dx-popup__error-message",Ca="iszolea-error-dx-popup__error-details",jr="Show details",Ea="Hide details";function qr(i,e){let t,r=Array.isArray(e)?e:[e],n=$("<div />").addClass(ba);r.forEach((s,l)=>{let d=$("<p />").addClass(Da).text(s.Error),u=$("<p />").addClass(Ca).text(s.StackTrace);n.append(d,u).hide(),l<r.length-1&&n.append($("<hr />"))});let o=_e({title:i,height:"auto",animation:{show:{direction:"bottom",type:"slideIn"},hide:{direction:"bottom",type:"slideOut"}},position:{my:"bottom",at:"bottom",offset:{y:-50}},shading:!1,dragEnabled:!1,onInitialized:s=>{t=s.component,s.element.addClass(Ia)}},n,{text:jr,onClick:()=>{let s=!t.option("fullScreen");a(s),o.okBtn.option("text",s?Ea:jr)}},{text:"Close",onClick:s=>s()}),a=s=>{n.toggle(s),t.option("fullScreen",s),t.repaint()}}var It=(r=>(r[r.UnexpectedException=0]="UnexpectedException",r[r.SqlException=1]="SqlException",r[r.IszoleaConfigurationException=2]="IszoleaConfigurationException",r))(It||{});var Yt=i=>{switch(i){case 1:return"We attempted to execute the data query however it appears there is an error in the data source.";case 2:return"Something wrong with iszolea configuration. Check ClientId/ClientSecret fields in the appsettings.json file.";default:return""}};var _i="Unexpected error occurred. Please contact to developers.",Sa=[504],Ai=()=>_i;function Ze(i,e=!1){return e&&O(i.Message),JSON.stringify(i.Data)}function Ae(i,e,t){let r=i.Message,n={message:r},o,a=Ta(r);if(a!==null?o=(t?t(a):"")||_i:o=r||_i,e){let s=i.Data;if(qt(s)){let l=Array.isArray(s)&&s.length,d=!Array.isArray(s)&&(s.StackTrace||s.Error);if(l||d)return qr(o,s),n}O(o,!1)}return n}function Ta(i){return!isNaN(i)&&It[+i]?+i:null}function Xr(i){let e=i.request.response?JSON.parse(i.request.response):{};return e.RequestState===1?(Ze(e),!0):(Ae(e,!0),!1)}function x(i,e="GET",t=null,r,n){let o=$.Deferred(),a=(n==null?void 0:n.notifyError)===void 0||n.notifyError,s={headers:{Accept:"application/json"}},l=$.extend({type:e,url:i,data:t},n,s);return $.ajax(l).done(d=>{let u=d;if(u.RequestState===1){Ze(u,r),o.resolve(u.Data);return}let{message:c}=Ae(u,a,(n==null?void 0:n.getUserFriendlyErrorMessage)||Yt);o.reject(c)}).fail((d,u)=>{!Sa.includes(d.status)&&a&&O(Ai(),!1),o.reject(u)}),o}function te(i){let e=DevExpress.data.AspNet.createStore(S(w({},i),{onBeforeSend:(t,r)=>{i.onBeforeSend&&i.onBeforeSend(t,r);let n=(i==null?void 0:i.notifyError)===void 0||i.notifyError;r.dataFilter=o=>{let a=JSON.parse(o);return a.RequestState===1?Ze(a,i.notifySuccess):JSON.stringify(Ae(a,n,i==null?void 0:i.getUserFriendlyErrorMessage))},r.error=o=>{let a=JSON.parse(o.responseText||"{}");a.RequestState||Ae(a,n,i==null?void 0:i.getUserFriendlyErrorMessage)}}}));return e._errorHandler=t=>{t&&!t.message&&(t.message=Ai())},e}var Gi={};me(Gi,{default:()=>se});var Ge={};async function se(i){if(Ge[i])return await Ge[i];Ge[i]=x(i),Ge[i].catch(t=>{throw Ge[i]=null,t});let e=await Ge[i];return Ge[i]=null,e}var Yr={sendRequest:x,handleError:Ae,handleSuccess:Ze,handleUpload:Xr,createDxDataSource:te,isErrorInfo:qt,loadWithMultipleProtection:Gi};var U=i=>{throw new Error(`The required ${i?`${i} `:""} isn't created`)};var Ui={};me(Ui,{WindowResizeListener:()=>ge,bootstrapLayoutBreakpoints:()=>Z,getUrlByMenuItemData:()=>Se});var Z={xs:{name:"xs",minWidth:0,maxWidth:575},sm:{name:"sm",minWidth:576,maxWidth:767},md:{name:"md",minWidth:768,maxWidth:991},lg:{name:"lg",minWidth:992,maxWidth:1199},xl:{name:"xl",minWidth:1200,maxWidth:1/0}},Ma=Object.getOwnPropertyNames(Z).map(i=>Z[i]),ge=class{constructor(e,t,r=100,n=Ma){this.onWindowResizeListener=this.onWindowResize.bind(this);this.onResize=e,this.onLayoutBreakpointChanged=t,this.resizeDelay=r,this.layoutBreakpoints=n,this.currentLayoutBreakpoint=this.getLayoutBreakpointByWindowWidth(window.innerWidth),this.attachEvents()}destroy(){this.detachEvents()}attachEvents(){window.addEventListener("resize",this.onWindowResizeListener)}detachEvents(){window.removeEventListener("resize",this.onWindowResizeListener)}getLayoutBreakpointByWindowWidth(e){return this.layoutBreakpoints.find(t=>t.minWidth<=e&&(!t.maxWidth||t.maxWidth>=e))}onWindowResize(e){clearTimeout(this.lastWindowResizeTimeoutId),this.lastWindowResizeTimeoutId=window.setTimeout(()=>this.onWindowResizeInternal(e),this.resizeDelay)}onWindowResizeInternal(e){let t=this.getLayoutBreakpointByWindowWidth(window.innerWidth);if(this.currentLayoutBreakpoint!==t){let r=this.currentLayoutBreakpoint;this.currentLayoutBreakpoint=t,this.emitBreakpointChanged({previousBreakpoint:r,currentBreakpoint:this.currentLayoutBreakpoint,originalEvent:e})}this.emitResizeEvent(e)}emitResizeEvent(e){var t;try{(t=this.onResize)==null||t.call(this,e)}catch(r){console.error(r)}}emitBreakpointChanged(e){var t;try{(t=this.onLayoutBreakpointChanged)==null||t.call(this,e)}catch(r){console.error(r)}}};function Se(i){let{Area:e,Controller:t,Action:r,IsClickable:n}=i;if(n&&t)return encodeURI(e?`/${e}/${t}/${r}`:`/${t}/${r}`)}var j={isLegacyRender:!1};var Vi=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.container=e.container,this.userName=e.userName,this.items=e.items,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.getDisplayedUserInfo=e.getDisplayedUserInfo||Vi.defaultGetDisplayedUserInfo,this.onItemClick=e.onItemClick,this.windowResizeListener=new ge(void 0,this.onLayoutBreakpointChangedListener)}get root(){return this._root}render(){if(this._root&&this.container.removeChild(this._root),this.renderMainElements(),this.renderUserInfo(),this.renderItems(),!this.root)return U("root");this.container.appendChild(this.root)}addItems(e){this.items=this.items.concat(e),this.render()}insertItems(e,t){this.items.splice(t,0,...e),this.render()}updateItems(e){this.items=e,this.render()}get menuItems(){return this.items}getBadge(e){let t=this.items.find(r=>{var n;return((n=r.Text)==null?void 0:n.toLowerCase())===e});return(t==null?void 0:t.Badge)||null}setBadge(e,t){let r=this.items.find(n=>{var o;return((o=n.Text)==null?void 0:o.toLowerCase())===e});r&&(r.Badge=t),this.render()}get isMobileView(){return this.windowResizeListener.currentLayoutBreakpoint.maxWidth<this.collapseBreakpoint.maxWidth}renderMainElements(){this._root=document.createElement("div"),this._root.classList.add("user-menu"),this.mobileContentContainer=document.createElement("div"),this.mobileContentContainer.classList.add(`d-${this.collapseBreakpoint.name}-none`),this.desktopRootDropdown=document.createElement("div"),this.desktopRootDropdown.classList.add("dropdown","d-none",`d-${this.collapseBreakpoint.name}-block`),this.desktopContentTrigger=document.createElement("button"),this.desktopContentTrigger.classList.add("header__icon-button","btn","btn-outline-light"),this.desktopContentTrigger.setAttribute("type","button"),this.desktopContentTrigger.setAttribute("data-toggle","dropdown");let e=document.createElement("i");if(j.isLegacyRender?e.classList.add("header__icon-button-icon","fas","fa-user"):e.classList.add("header__icon-button-icon","isoz-icon-user"),this.desktopContentContainer=document.createElement("div"),this.desktopContentContainer.classList.add("dropdown-menu","dropdown-menu-right"),this.desktopContentTrigger.appendChild(e),this.items.some(t=>!!t.Badge)){let t=document.createElement("span");t.classList.add("user-menu__badge"),this.desktopContentTrigger.appendChild(t)}this.desktopRootDropdown.appendChild(this.desktopContentTrigger),this.desktopRootDropdown.appendChild(this.desktopContentContainer),this.itemsContainer=document.createElement("ul"),this.itemsContainer.classList.add("user-menu__items"),j.isLegacyRender?(this.userInfoContainer=document.createElement("h6"),this.userInfoContainer.classList.add("user-info","h6")):(this.userInfoContainer=document.createElement("a"),this.userInfoContainer.classList.add("user-info","dropdown-item")),this.userInfoDivider=document.createElement("div"),this.userInfoDivider.classList.add("dropdown-divider","d-none",`d-${this.collapseBreakpoint.name}-block`),this.isMobileView?(this.mobileContentContainer.appendChild(this.userInfoContainer),this.mobileContentContainer.appendChild(this.userInfoDivider),this.mobileContentContainer.appendChild(this.itemsContainer)):(this.desktopContentContainer.appendChild(this.userInfoContainer),this.desktopContentContainer.appendChild(this.userInfoDivider),this.desktopContentContainer.appendChild(this.itemsContainer)),this._root.appendChild(this.mobileContentContainer),this._root.appendChild(this.desktopRootDropdown)}renderUserInfo(){if(!this.userInfoContainer)return U("userInfoContainer");if(j.isLegacyRender){let e=document.createElement("span");e.classList.add("user-info__content"),e.innerText=this.getDisplayedUserInfo(this.userName),this.userInfoContainer.appendChild(e)}else this.userInfoContainer.innerText=this.getDisplayedUserInfo(this.userName)}renderItems(){if(!this.itemsContainer)return U("itemsContainer");this.clearItemsContainer(),this.items.forEach(e=>{let t=this.createItemElement(e,this.isMobileView);this.itemsContainer.appendChild(t)})}createItemElement(e,t){let r=this.createItemElementBase(e),n=document.createElement("a");if(n.classList.add(t?"nav-link":"dropdown-item"),n.href=e.Url||"javascript:void(0)",n.text=e.Text,this.attachEventsToItem(n,e),r.appendChild(n),e.Badge){let o=document.createElement("span");o.classList.add("isoz-badge"),o.classList.add("isoz-badge--circle"),o.classList.add(`isoz-badge--${e.Badge.Type||"information"}`),o.innerHTML=e.Badge.Text,n.appendChild(o)}return r}createItemElementBase(e){let t=document.createElement("li");return t.classList.add("nav-item"),t}attachEventsToItem(e,t){e.addEventListener("click",r=>this.onMenuItemClick({item:t,originalEvent:r}))}switchView(e){e?(this.applyMobileViewForUserInfo(),this.applyMobileViewForItems()):(this.applyDesktopViewForUserInfo(),this.applyDesktopViewForItems())}applyMobileViewForUserInfo(){this.mobileContentContainer.insertBefore(this.userInfoContainer,null),this.mobileContentContainer.insertBefore(this.userInfoDivider,null)}applyDesktopViewForUserInfo(){this.desktopContentContainer.insertBefore(this.userInfoContainer,null),this.desktopContentContainer.insertBefore(this.userInfoDivider,null)}applyMobileViewForItems(){var e;this.mobileContentContainer.insertBefore(this.itemsContainer,null);for(let t of this.itemsContainer.children)(e=t.firstElementChild)==null||e.classList.replace("dropdown-item","nav-link")}applyDesktopViewForItems(){var e;this.desktopContentContainer.insertBefore(this.itemsContainer,null);for(let t of this.itemsContainer.children)(e=t.firstElementChild)==null||e.classList.replace("nav-link","dropdown-item")}clearItemsContainer(){for(;this.itemsContainer.firstChild;)this.itemsContainer.firstChild.remove()}emitItemClick(e){var t,r,n;try{(t=this.onItemClick)==null||t.call(this,e),(n=(r=e.item).OnClick)==null||n.call(r,e)}catch(o){console.error(o)}}onLayoutBreakpointChanged(e){this.switchView(this.isMobileView)}async onMenuItemClick(e){this.emitItemClick(e),e.cancel&&e.originalEvent.preventDefault()}},Ue=Vi;Ue.defaultGetDisplayedUserInfo=e=>`Welcome ${e}`;var Zt=class{constructor(e){this.container=e.container,this.items=e.items,this.onItemClick=e.onItemClick}updateItems(e){this.items=e}emitItemClick(e){var t;try{(t=this.onItemClick)==null||t.call(this,e)}catch(r){console.error(r)}}};var et=class extends Zt{constructor(e){super(e);this.onWindowResizeEventHandler=this.onWindowResize.bind(this);this.onToggleDropdownButtonClickHandler=this.onToggleDropdownButtonClick.bind(this);this.onToggleDropdownButtonMouseEnterHandler=this.onToggleDropdownButtonMouseEnter.bind(this);this.itemActionMode=e.itemAction||"hover",this.collapsingMode=e.collapsingMode??3,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.collapseIconName=e.collapseIcon||"fa-ellipsis-v",this.windowResizeListener=new ge(this.collapsingMode===3?this.onWindowResizeEventHandler:void 0,void 0,et.adaptivityCollapsingDelay)}render(){if(!this.root){if(this.renderRoot(),this.renderItems(),!this.root)return U("root");this.container.appendChild(this.root)}}updateItems(e){if(super.updateItems(e),!this.root)return new Error("The BootstrapCollapsingMenu isn't rendered");for(;this.root.firstChild;)this.root.firstChild.remove();this.renderItems()}applyAdaptivityCollapsing(){if(!(this.collapsingMode!==3||!this.root||!this.items.length||!this.collapseRoot||!this.collapseDropdown))if(this.isNeedCollapse()){this.collapseRoot.classList.remove("d-none");do{let e=this.root.children[this.root.children.length-2];if(!e)break;this.moveRootItemsToCollapseDropdown(e)}while(this.isNeedCollapse())}else{for(;this.collapseDropdown.children.length;)if(this.moveRootItemsToRoot(this.collapseDropdown.firstElementChild),this.isNeedCollapse()){let e=this.root.children[this.root.children.length-2];e&&this.moveRootItemsToCollapseDropdown(e);break}this.collapseDropdown.children.length||this.collapseRoot.classList.add("d-none")}}updateActiveItemsState(){this.forEachMenuItemRecursive(this.items,e=>{let t=e.active;e.active=ki(e.originalModel),e.active!==t&&this.applyStatesToItemElement(e.menuItemEl.firstElementChild,e)})}closeOpenedDropdown(e){this.itemActionMode==="hover"&&(this.root.classList.remove(et.HOVER_MODE_CSS_CLASS),$(e).one("mouseleave",()=>{this.root.classList.add(et.HOVER_MODE_CSS_CLASS)}))}forEachMenuItemRecursive(e,t){e.forEach(r=>{t(r),this.isNestedItemsOwnerItem(r)&&this.forEachMenuItemRecursive(r.items,t)})}renderRoot(){this.root=document.createElement("ul"),this.root.classList.add("navbar-nav","mr-auto"),this.itemActionMode==="hover"&&this.root.classList.add(et.HOVER_MODE_CSS_CLASS)}renderItems(){this.renderRootItems(),this.items.length&&this.collapsingMode!==0&&(this.root||U("root"),this.root.style.visibility="hidden",this.renderCollapseElements(),setTimeout(()=>{this.applyAdaptivityCollapsing(),this.root.style.visibility=""},10)),this.changeDefaultDropdownBehaviorForNestedDropdown()}changeDefaultDropdownBehaviorForNestedDropdown(){$(this.root.querySelectorAll(".dropdown")).on("hide.bs.dropdown",e=>!(e.target!==this.currentOpeningSubMenu&&e.target.contains(this.currentOpeningSubMenu))),$(this.root.querySelectorAll(".dropdown-submenu")).on("show.bs.dropdown",e=>{this.currentOpeningSubMenu=void 0})}renderCollapseElements(){if(!this.root)return U("root");this.collapseRoot=document.createElement("li"),this.collapseRoot.classList.add("nav-item","dropdown","collapsing-menu__collapse-root"),this.collapseButton=document.createElement("button"),this.collapseButton.classList.add("header__icon-button","btn","btn-outline-light"),this.collapseButton.setAttribute("type","button"),this.collapseButton.setAttribute("data-toggle","dropdown");let e=document.createElement("i");e.classList.add("header__icon-button-icon","fas",this.collapseIconName),this.collapseDropdown=document.createElement("ul"),this.collapseDropdown.classList.add("dropdown-menu","dropdown-menu-right"),this.collapseButton.appendChild(e),this.collapseRoot.appendChild(this.collapseButton),this.collapseRoot.appendChild(this.collapseDropdown),this.root.appendChild(this.collapseRoot)}renderRootItems(){if(!this.root)return U("root");this.items.forEach(e=>{let t;this.isNestedItemsOwnerItem(e)?t=this.createRootItemWithNestedItems(e):t=this.createRootItemElement(e),this.root.appendChild(t)})}createRootItemWithNestedItems(e){let t=this.createRootItemElement(e);t.classList.add("dropdown");let r=t.querySelector(".nav-link");r instanceof HTMLElement&&this.setItemContentAsDropdownToggler(r);let n=this.createDropdownMenu(e);return t.appendChild(n),t}createRootItemElement(e){let t=document.createElement("li");t.classList.add("nav-item"),e.title&&t.setAttribute("title",e.title);let r=document.createElement("a");r.classList.add("nav-link"),r.href=e.url||"javascript:void(0)",r.text=e.text;let n=this.createItemIconElement(e);return n&&r.insertBefore(n,r.firstChild),this.applyStatesToItemElement(r,e),this.attachEventsToItem(r,e),t.appendChild(r),e.menuItemEl=t,t}createNestedSubMenuItemElement(e){let t=this.createNestedItem(e);t.classList.add("dropdown","dropdown-submenu");let r=t.querySelector(".dropdown-item");r instanceof HTMLElement&&this.setItemContentAsDropdownToggler(r);let n=this.createDropdownMenu(e);return t.appendChild(n),t}createNestedItem(e){let t=document.createElement("li");e.title&&t.setAttribute("title",e.title);let r=document.createElement("a");r.classList.add("dropdown-item"),r.href=e.url||"javascript:void(0)",r.text=e.text;let n=this.createItemIconElement(e);return n&&r.insertBefore(n,r.firstChild),this.applyStatesToItemElement(r,e),this.attachEventsToItem(r,e),t.appendChild(r),e.menuItemEl=t,t}createDropdownMenu(e){let t=document.createElement("ul");return t.classList.add("dropdown-menu"),e.items.forEach(r=>{let n;this.isNestedItemsOwnerItem(r)?n=this.createNestedSubMenuItemElement(r):n=this.createNestedItem(r),t.appendChild(n)}),t}createItemIconElement(e){if(!e.icon)return null;let t=document.createElement("i");return t.style.backgroundImage=`url(${e.icon})`,t}setItemContentAsDropdownToggler(e){e.classList.add("dropdown-toggle"),e.setAttribute("data-toggle","dropdown"),e.addEventListener("click",this.onToggleDropdownButtonClickHandler),e.addEventListener("mouseenter",this.onToggleDropdownButtonMouseEnterHandler)}applyStatesToItemElement(e,t){t.active?e.classList.add("active"):e.classList.remove("active"),t.hidden?e.classList.add("d-none"):e.classList.remove("d-none"),t.disabled?e.classList.add("disabled"):e.classList.remove("disabled")}attachEventsToItem(e,t){e.addEventListener("click",r=>this.emitItemClick({item:t,originalEvent:r}))}isNestedItemsOwnerItem(e){return e.items&&e.items.length&&e.items.some(t=>!t.hidden)}moveRootItemsToCollapseDropdown(e){if(e instanceof Element)this.applyCollapsingViewForRootItem(e),this.collapseDropdown.insertBefore(e,this.collapseDropdown.firstElementChild);else{let t=document.createDocumentFragment();for(let r of e)t.insertBefore(r,t.firstElementChild),this.applyCollapsingViewForRootItem(r);this.collapseDropdown.appendChild(t)}}moveRootItemsToRoot(e){if(e instanceof Element)this.applyExpandedViewForRootItem(e),this.root.insertBefore(e,this.root.children[this.root.children.length-1]||null);else{let t=document.createDocumentFragment();for(let r of e)t.insertBefore(r,t.firstElementChild),this.applyExpandedViewForRootItem(r);this.root.appendChild(t)}}applyCollapsingViewForRootItem(e){e.classList.add("dropdown-submenu");for(let t of e.children)t.classList.replace("nav-link","dropdown-item")}applyExpandedViewForRootItem(e){e.classList.remove("dropdown-submenu");for(let t of e.children)t.classList.replace("dropdown-item","nav-link")}isNeedCollapse(){if(this.windowResizeListener.currentLayoutBreakpoint.minWidth<this.collapseBreakpoint.minWidth)return!1;this.root.style.maxWidth="none";let e=this.root.getBoundingClientRect();this.root.classList.add("collapsing-menu_normal-white-space");let t=this.root.getBoundingClientRect();return this.root.classList.remove("collapsing-menu_normal-white-space"),this.root.style.maxWidth="",e.width>t.width}isDropdownRectsIntersect(e,t,r=2){return e.left<t.right-r&&t.left+r<e.right&&e.top<t.bottom-r&&t.top+r<e.bottom}applyShadowsForOverlapingDropdownIfNeeded(e){e.style.left="",e.classList.remove("dropdown-menu-left-shadowed");let t=e.getBoundingClientRect();t.right>window.innerWidth&&(e.style.left=`-${t.width}px`),t=e.getBoundingClientRect();let r=document.querySelectorAll(".dropdown-menu");for(let n of r)if(n!==e&&this.isDropdownRectsIntersect(n.getBoundingClientRect(),t)){e.classList.add("dropdown-menu-left-shadowed");break}}onWindowResize(e){this.applyAdaptivityCollapsing()}onToggleDropdownButtonClick(e){e.target instanceof HTMLElement&&e.target.parentElement&&(this.currentOpeningSubMenu=e.target.parentElement)}onToggleDropdownButtonMouseEnter(e){this.windowResizeListener.currentLayoutBreakpoint.maxWidth>=this.collapseBreakpoint.maxWidth&&e.target instanceof HTMLElement&&e.target.nextElementSibling instanceof HTMLElement&&e.target.nextElementSibling.classList.contains("dropdown-menu")&&this.applyShadowsForOverlapingDropdownIfNeeded(e.target.nextElementSibling)}},tt=et;tt.HOVER_MODE_CSS_CLASS="navbar-nav_hover-action",tt.adaptivityCollapsingDelay=50;var Zr=(i,e)=>{var t;for(let r of i){if(r.Name===e)return r;if((t=r.Items)==null?void 0:t.length){let n=Zr(r.Items,e);if(n)return n}}},en=i=>{let e=i.Items;if(!e||!e.length){let r=Se(i);return r?[r]:[]}let t=[];for(let r of e)t=t.concat(en(r));return t},ki=i=>{let e=window.location.pathname+window.location.search,t=en(i);for(let r of t)if(new RegExp(`^.*${r.replace("?","\\?")}$`).test(e))return!0;return!1},it=class{constructor(e,t,r,n,o){this.onMenuItemClickHandler=this.onMenuItemClick.bind(this);this.container=e,this.isGlobalMenu=r,this.items=t,this.onNavigationMenuItemClick=o,this.menu=new tt({container:this.container,items:this.mapNavigationMenuItemModelToMenuItems(t),collapseBreakpoint:n,onItemClick:this.onMenuItemClickHandler})}updateData(e,t){this.items=e,this.isGlobalMenu=t,this.menu.updateItems(this.mapNavigationMenuItemModelToMenuItems(this.items))}render(){this.menu.render()}applyAdaptivityCollapsing(){this.menu.applyAdaptivityCollapsing()}updateActiveItemsState(){this.menu.updateActiveItemsState()}async onMenuItemClick(e){let t=this.mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e);if(t&&(this.emitNavigationMenuItemClick(t),t.cancel)){e.originalEvent.preventDefault();let r=e.originalEvent.target;this.menu.closeOpenedDropdown(r)}}emitNavigationMenuItemClick(e){var t,r,n;try{(t=this.onNavigationMenuItemClick)==null||t.call(this,e),(n=(r=e.item).OnClick)==null||n.call(r,e)}catch(o){console.error(o)}}mapNavigationMenuItemModelToMenuItems(e){return e.map(t=>({text:t.Name,icon:t.Icon,items:t.Items?this.mapNavigationMenuItemModelToMenuItems(t.Items):void 0,url:Se(t),hidden:t.Visible===!1,active:ki(t),disabled:t.Disabled,title:t.Description,originalModel:t}))}mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e){let t=Zr(this.items,e.item.text);return t?{originalEvent:e.originalEvent,cancel:!1,item:S(w({},t),{isGlobal:this.isGlobalMenu})}:null}};var Ve="iszolea-ui|logo-settings";var $i=class{constructor(e,t){this.$container=e,this.dataSource=t}initWidget(){return this._initWidget(this.dataSource)}updateData(){return window.sessionStorage.removeItem(Ve),this.$imageElement.remove(),this.$titleContainer.remove(),this._initWidget(this.dataSource)}_initWidget(e){let t=window.sessionStorage.getItem(Ve);return t?(this._createLogo(JSON.parse(t)),$.Deferred()):this._createLogo(e)}_createLogo(e){if(typeof e=="object"){let t=e;return this._createLogoMarkup(t),$.Deferred()}return x(this.dataSource,"post").done(t=>{let r={};r.applicationName=t.ApplicationName,r.businessName=t.BusinessName,r.logoImage=t.LogoImage,r.landingPageLogo=t.LandingPageLogo,r.description=t.Description,window.sessionStorage.setItem(Ve,JSON.stringify(r)),this._createLogoMarkup(r)})}_createLogoMarkup(e){this.$imageElement=$("<img />").attr("src",e.logoImage).appendTo(this.$container),this.$titleContainer=$("<span />").addClass("title-container").appendTo(this.$container),this.$titleContainer.append($("<div />").addClass("business-name").text(e.businessName)),this.$titleContainer.append($("<div />").addClass("app-name").text(e.applicationName.toUpperCase()))}};var rt=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.desktopContainer=e.desktopContainer,this.mobileContainer=e.mobileContainer,this.collapseBreakpoint=e.collapseBreakpoint||Z.md,this.onSwitch=e.onSwitch,this._value=e.startValue!==void 0?e.startValue:!0,this.windowResizeListener=new ge(void 0,this.onLayoutBreakpointChangedListener)}get value(){return this._value}get container(){return this.isMobileView?this.mobileContainer:this.desktopContainer}get isMobileView(){return this.windowResizeListener.currentLayoutBreakpoint.maxWidth<this.collapseBreakpoint.maxWidth}setVisible(e){var t;(t=this.menuSwitcher)==null||t.option("visible",e)}render(){this.renderSwitch()}destroy(){var t;let e=this.menuSwitcher.element();(t=this.menuSwitcher)==null||t.dispose(),e==null||e.remove()}setValue(e){this.menuSwitcher.option("value",e)}handleValueChanged(e){this.onValueChanged=e}renderSwitch(){this.menuSwitcher=$("<div>").dxSwitch({switchedOffText:"Personal",switchedOnText:"Global",value:this.value,width:"100px",onValueChanged:({value:e})=>{this._value=e,this.onSwitch&&this.onSwitch(this.value),this.onValueChanged&&this.onValueChanged(e)}}).dxSwitch("instance"),this.container.appendChild(this.menuSwitcher.element()[0])}switchView(){this.destroy(),this.render()}onLayoutBreakpointChanged(e){this.switchView()}};var ei=class{constructor(e){this.$container=e.$container,this.getMenuDataSource=e.getMenuDataSource,this.getIsGlobalMenuShown=e.getIsGlobalMenuShown,this.onDimensionsChanged=e.onDimensionsChanged,this.onMenuItemOpened=e.onMenuItemOpened,this.onMenuItemClick=e.onMenuItemClick}setVisible(e){var t;(t=this.searchDropDown)==null||t.option("visible",e),this.onDimensionsChanged&&this.onDimensionsChanged()}setSearchText(e){var t;(t=this.searchDropDown)==null||t.option("value",e)}reloadMenuItems(){var e;(e=this.searchResultsTreeList)==null||e.option("dataSource",this.getDataSourceForSearch(this.getMenuDataSource()))}render(){let e=document.createElement("form");e.classList.add("form-inline");let t=$("<div />").dxDropDownBox({placeholder:"Search",visible:!1,showDropDownButton:!1,applyValueMode:"instantly",acceptCustomValue:!0,openOnFieldClick:!1,mode:"search",elementAttr:{type:"search","aria-label":"Search"},contentTemplate:(r,n)=>{n.addClass("header-search-results-tree-list");let o=$("<div>").dxTreeList({dataSource:this.getDataSourceForSearch(this.getMenuDataSource()),hoverStateEnabled:!0,focusedRowEnabled:!0,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:!1},noDataText:"No search results",dataStructure:"tree",keyExpr:"Id",itemsExpr:"Items",filterMode:"fullBranch",showColumnHeaders:!1,columns:[{dataField:"Name",dataType:"string"}],onCellClick:({data:a})=>{this.navigateToMenuItem(a)},onKeyDown:a=>{let s=a.event,l=this.searchResultsTreeList.option("focusedRowKey");if(l!=null)switch(s.key){case"Enter":let d=this.searchResultsTreeList.getNodeByKey(l).data;this.navigateToMenuItem(d);break;case"ArrowRight":case" ":this.searchResultsTreeList.expandRow(l);break;case"ArrowLeft":this.searchResultsTreeList.collapseRow(l);break;case"Escape":setTimeout(()=>this.searchDropDown.focus());break}}});return this.searchResultsTreeList=o.dxTreeList("instance"),o},dropDownOptions:{position:{of:".search-dropdown",my:"top",at:"bottom",offset:{x:0,y:4}},animation:{show:{duration:0},hide:{duration:0}},closeOnOutsideClick:!1,onShown:r=>{this.searchDropDown.focus()}},onFocusIn:r=>{r.component.element().addClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged(),this.checkSearchResutPopupVisibility(r.component.element().find("input.dx-texteditor-input").val())},onFocusOut:r=>{r.component.element().find("input.dx-texteditor-input").val()||(r.component.element().removeClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged())},onKeyUp:r=>{setTimeout(()=>{let n=r.event,o=r.component.element().find("input.dx-texteditor-input").val();this.checkSearchResutPopupVisibility(o),this.searchResultsTreeList.searchByText(o),["Tab","Enter","ArrowDown","ArrowUp"].some(s=>s===n.key)&&this.searchResultsTreeList.focus(this.searchResultsTreeList.getCellElement(0,"Name"))})},onKeyDown:r=>{r.event.key==="Escape"&&this.closeSearchDropDown()},onValueChanged:r=>{this.checkSearchResutPopupVisibility(r.value)}}).addClass(["form-control","mr-sm-2","search-dropdown"]);this.searchDropDown=t.dxDropDownBox("instance"),e.appendChild(t[0]),this.$container.append(e)}navigateToMenuItem(e){var r;let t=Se(e);if(t){this.closeSearchDropDown();let n={item:e,originalEvent:null,cancel:!1};if((r=this.onMenuItemClick)==null||r.call(this,n),n.cancel)return;this.onMenuItemOpened&&this.onMenuItemOpened({menuItem:e}),window.location.href=t}}closeSearchDropDown(){var e,t,r;this.searchResultsTreeList.option("focusedRowKey",void 0),(e=this.searchDropDown)==null||e.option("value",""),(t=this.searchDropDown)==null||t.focus(),(r=this.searchDropDown)==null||r.blur()}checkSearchResutPopupVisibility(e){var t,r;e?(t=this.searchDropDown)==null||t.open():(r=this.searchDropDown)==null||r.close()}getDataSourceForSearch(e){if(!e)return;let t=r=>{let n=(o,a)=>{a.Items&&a.Items.length&&(a.Items=a.Items.reduce(n,[]));let s=a.Visible===void 0||a.Visible===null||a.Visible===!0,l=a.Disabled===!0;return s&&!l&&o.push(S(w({},a),{isGlobal:r})),o};return n};if(e.personalItems&&e.personalItems.length){let r={Name:"Global Menu",Id:-1,isGlobal:!0,Type:2,Items:e.gloabalItems.reduce(t(!0),[])},n={Name:"Personal Menu",Id:-2,isGlobal:!1,Type:2,Items:e.personalItems.reduce(t(!1),[])};return this.getIsGlobalMenuShown()?[r,n]:[n,r]}else return e.gloabalItems.reduce(t(!0),[])}};var Ni={};me(Ni,{EventEmitter:()=>ve,getGeneralUserFriendlyErrorMessage:()=>Yt});var ve=class{constructor(){this.eventListeners=[]}on(e,t){return this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(t),t}once(e,t){this.on(e,r=>{t(r),this.off(e,t)})}emit(e,t=null){let r=this.eventListeners[e];if(r)for(let n of r)n&&n.call(this,t)}off(e,t){let r=this.eventListeners[e];if(r){let n=[];for(let o of r)o!==t&&n.push(o);this.eventListeners[e]=n}}addHandler(e,t,r){let n=()=>{t(r(),()=>this.off(e,n))};this.on(e,n)}};var Oa="iszolea-ui|header-data-cache",tn="iszolea-ui|show-global-menu",Hi=i=>`${Oa}${i?`|${i}`:""}`,bt=class extends ve{constructor(e){super();this.onNaviagtionMenuItemClickHandler=this.onNaviagtionMenuItemClick.bind(this);this.onNavigationMenuItemOpenedHandler=this.onNavigationMenuItemOpened.bind(this);this.onUserMenuItemClickHandler=this.onUserMenuItemClick.bind(this);this.elements={};var t,r,n,o,a;this.$el=e.$el,this.menuSettings=e.menuSettings,this.logoSettings=e.logoSettings,this.theme=e.theme||"iszolea",this.displaySearch=e.displaySearch,this.collapseBreakpoint=((t=e.menuSettings)==null?void 0:t.collapseBreakpoint)||Z.md,this.$partialViewPlaceHolder=(r=e.menuSettings)==null?void 0:r.partialViewPlaceHolder,this.updateUrlAfterPartialLoading=(n=e.menuSettings)==null?void 0:n.updateUrlAfterPartialLoading,this.onPartialViewLoaded=(o=e.menuSettings)==null?void 0:o.onPartialViewLoaded,this.beforePartialViewLoading=(a=e.menuSettings)==null?void 0:a.beforePartialViewLoading,this.loadPanel=this.createLoadPanel(),e.immediateRender===!1&&console.warn("The 'immediateRender === false' option isn't supported at the moment."),DevExpress.ui.dxOverlay.baseZIndex(1700),this.render(),this.init().then(()=>{var s;return(s=e==null?void 0:e.onInit)==null?void 0:s.call(e)}),this.subscribeOnHistoryPopState()}async updateData(){!this.menuSettings||(this.clearAppMenuModelCache(),this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}render(){this.renderRoot(),this.renderBrand(),this.renderContentToggler(),this.renderContent(),this.renderLoadBar(),this.updateContentAndTogglerVisible()}subscribeOnHistoryPopState(){this.$partialViewPlaceHolder&&$(window).bind("popstate",e=>{let r=e.originalEvent.state;r&&r.isLoadedByAjax?(this.loadPageViaAjaxCore(r.url),this.updateMenuSwitcherState(r.isMenuSwitcherGlobal),this.navigationMenu.updateActiveItemsState()):location.reload()})}createLoadPanel(){return $("<div />").dxLoadPanel({shadingColor:"rgba(0,0,0,0.4)",visible:!1,showIndicator:!0,showPane:!0,shading:!0,closeOnOutsideClick:!1}).appendTo(this.$el).dxLoadPanel("instance")}renderRoot(){this.elements.root=this.$el[0],this.elements.root.classList.add("header",this.theme,"navbar","navbar-dark",`navbar-expand-${this.collapseBreakpoint.name}`)}renderBrand(){if(this.logo||!this.logoSettings)return;if(!this.elements.root)return U("root");let e=document.createElement("a");e.classList.add("header__brand","navbar-brand"),e.href="/",this.elements.root.appendChild(e),this.elements.logoContainer=e,this.logo=new $i($(this.elements.logoContainer),this.logoSettings),this.logo.initWidget()}renderSearch(){if(!!this.displaySearch){if(!this.elements.contentContainer)return U("contentContainer");this.search=new ei({$container:$(this.elements.contentContainer),getMenuDataSource:()=>this.getSearchDataSource(this.data),getIsGlobalMenuShown:()=>this.getIsGlobalMenuShown(),onDimensionsChanged:()=>{var e;return(e=this.navigationMenu)==null?void 0:e.applyAdaptivityCollapsing()},onMenuItemClick:this.onNaviagtionMenuItemClickHandler,onMenuItemOpened:this.onNavigationMenuItemOpenedHandler}),this.search.render()}}getIsGlobalMenuShown(){var e;return this.isShowGlobalMenu()||!((e=this.data)==null?void 0:e.AddGlobalPersonalSwitcher)}onNavigationMenuItemOpened(e){this.updateMenuSwitcherState(e.menuItem.isGlobal)}updateMenuSwitcherState(e){!this.menuSwitcher||this.menuSwitcher.value!==e&&this.menuSwitcher.setValue(e)}renderContentToggler(){if(!this.elements.root)return U("root");this.elements.toggleButton=document.createElement("button"),this.elements.toggleButton.classList.add("navbar-toggler"),this.elements.toggleButton.setAttribute("type","button"),this.elements.toggleButton.setAttribute("data-toggle","collapse"),this.elements.toggleButton.setAttribute("data-target",".header__content"),this.elements.toggleButton.onclick=()=>{var t;(t=this.search)==null||t.setSearchText("")};let e=document.createElement("span");e.classList.add("navbar-toggler-icon"),this.elements.toggleButtonContainer=document.createElement("div"),this.elements.toggleButtonContainer.classList.add("header__toggle-button-container"),this.elements.toggleButton.appendChild(e),this.elements.toggleButtonContainer.appendChild(this.elements.toggleButton),this.elements.root.appendChild(this.elements.toggleButtonContainer)}renderContent(){if(!this.elements.root)return U("root");this.elements.contentContainer=document.createElement("div"),this.elements.contentContainer.classList.add("collapse","navbar-collapse","header__content"),this.elements.root.appendChild(this.elements.contentContainer),this.renderSearch(),this.renderNavigationMenu([]),this.renderMenuSwitcher(),this.renderUserMenu([])}renderNavigationMenu(e){if(!this.elements.contentContainer)return U("contentContainer");let t=this.getIsGlobalMenuShown();this.navigationMenu?this.navigationMenu.updateData(e,t):(this.navigationMenu=new it(this.elements.contentContainer,e,t,this.collapseBreakpoint,this.onNaviagtionMenuItemClickHandler),this.navigationMenu.render())}onUserMenuItemClick(e){var r,n;if((n=(r=this.menuSettings).onUserMenuClick)==null||n.call(r,e),e.cancel||this.isKeyPressed(e.originalEvent))return;let t=e.item.Url;e.item.AlwaysReloadPage?window.location.href=t:e.cancel=this.tryDoPartialPageLoading(t)}onNaviagtionMenuItemClick(e){var r,n;if((n=(r=this.menuSettings).onNavigationMenuItemClick)==null||n.call(r,e),e.cancel||this.isKeyPressed(e.originalEvent))return;this.updateMenuSwitcherState(e.item.isGlobal);let t=Se(e.item);e.cancel=this.tryDoPartialPageLoading(t)}isKeyPressed(e){return e&&(e.altKey||e.ctrlKey||e.shiftKey)}tryDoPartialPageLoading(e){var t;if(this.$partialViewPlaceHolder&&e&&this.checkIsLocalUrl(e)){if(this.updateUrlAfterPartialLoading){let r={isLoadedByAjax:!0,isMenuSwitcherGlobal:!!((t=this.menuSwitcher)==null?void 0:t.value),url:e};window.history.pushState(r,null,e)}return this.loadPageViaAjaxCore(e),this.navigationMenu.updateActiveItemsState(),!0}return!1}checkIsLocalUrl(e){return!bt.GLOBAL_URL_REGEX.test(e)}checkIsPartialPageContent(e){return e&&!bt.DOCTYPE_MARKER_REGEX.test(e)}loadPageViaAjaxCore(e){var n;window.isIsozServerException=!1,this.loadPanel.show();let t=new URL(window.location.origin+e);t.searchParams.append("isozPartialLoading","true");let r=t.toString();(n=this.beforePartialViewLoading)==null||n.call(this),$.ajax(r,{dataType:"html"}).always((o,a)=>{var s;a!=="success"||!this.checkIsPartialPageContent(o)?window.location.href=e:(this.$partialViewPlaceHolder.html(o),(s=this.onPartialViewLoaded)==null||s.call(this),this.loadPanel.hide())})}renderUserMenu(e){var t;if(!!((t=this.menuSettings)==null?void 0:t.userName)){if(!this.elements.contentContainer)return U("contentContainer");if(this.userMenu)this.userMenu.updateItems(e);else{let r=document.createElement("div");r.classList.add("dropdown-divider"),this.elements.contentContainer.appendChild(r),this.userMenu=new Ue({container:this.elements.contentContainer,userName:this.menuSettings.userName,items:e,collapseBreakpoint:this.collapseBreakpoint,onItemClick:this.onUserMenuItemClickHandler}),this.userMenu.render()}}}renderMenuSwitcher(){var e,t,r,n;if((e=this.data)==null?void 0:e.AddGlobalPersonalSwitcher){if(this.menuSwitcher)return}else{this.menuSwitcher&&(this.menuSwitcher.destroy(),(t=this.elements.menuSwitcherDesktopContainer)==null||t.remove(),(r=this.elements.menuSwitcherMobileContainer)==null||r.remove(),this.menuSwitcher=void 0,this.elements.menuSwitcherDesktopContainer=void 0,this.elements.menuSwitcherMobileContainer=void 0);return}if(!this.elements.contentContainer)return U("contentContainer");if(!this.elements.toggleButtonContainer)return U("toggleButtonContainer");this.elements.menuSwitcherDesktopContainer=document.createElement("div"),this.elements.menuSwitcherDesktopContainer.classList.add("menu-switcher"),this.elements.menuSwitcherMobileContainer=document.createElement("div"),this.elements.menuSwitcherMobileContainer.classList.add("menu-switcher"),this.menuSwitcher=new rt({desktopContainer:this.elements.menuSwitcherDesktopContainer,mobileContainer:this.elements.menuSwitcherMobileContainer,collapseBreakpoint:this.collapseBreakpoint,startValue:this.isShowGlobalMenu(),onSwitch:o=>{var s,l;window.localStorage.setItem(tn,JSON.stringify(o));let a=this.getNavigationItems(this.data);(s=this.search)==null||s.setSearchText(""),(l=this.search)==null||l.reloadMenuItems(),this.renderNavigationMenu(a||[]),this.updateContentAndTogglerVisible()}}),this.menuSwitcher.render(),this.emit(bt.MENU_SWITCHER_INITIALIZED_EVENT),this.elements.contentContainer.insertBefore(this.elements.menuSwitcherDesktopContainer,(n=this.userMenu)==null?void 0:n.root),this.elements.toggleButtonContainer.insertBefore(this.elements.menuSwitcherMobileContainer,this.elements.toggleButton)}renderLoadBar(){this.$loadBar=$("<div />").addClass("load-bar").hide().appendTo(this.$el);let e=$("<div />").addClass("load").appendTo(this.$loadBar);$("<div />").addClass("bar").appendTo(e);function t(r){$(r).animate({left:$(".load").width()},2e3,()=>{$(r).css("left",`${-$(r).width()}px`),t(r)})}t(".bar")}rerenderMenus(){let e=this.getNavigationItems(this.data),t=this.getUserItems(this.data);e&&this.renderNavigationMenu(e),t&&this.renderUserMenu(t),this.renderMenuSwitcher(),this.updateContentAndTogglerVisible()}updateContentAndTogglerVisible(){var n,o;if(!this.elements.contentContainer&&!this.elements.toggleButton)return;let e=this.getNavigationItems(this.data),t=this.getUserItems(this.data),r=e&&e.length>0||((n=this.menuSettings)==null?void 0:n.userName)||t&&t.length>0;this.elements.toggleButton.classList.toggle("d-none",!r),this.elements.contentContainer.classList.toggle("d-none",!r),(o=this.search)==null||o.setVisible(!!r)}async init(){!this.menuSettings||(this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}async loadData(){var t,r,n,o,a;if(!this.menuSettings)throw new Error("The header doesn't have menu settings");if(typeof this.menuSettings.data!="string")return this.menuSettings.data;let e=this.getCachedAppMenuModel();if(e)return e;try{return(t=this.search)==null||t.setVisible(!1),(r=this.$loadBar)==null||r.show(),e=await x(this.menuSettings.data),this.cacheAppMenuModel(e),(n=this.search)==null||n.reloadMenuItems(),e}finally{(o=this.search)==null||o.setVisible(!0),(a=this.$loadBar)==null||a.hide()}}getNavigationItems(e){return e?this.isShowGlobalMenu()||!e.AddGlobalPersonalSwitcher?e.NavigationItems:e.PersonalNavigationItems:void 0}getSearchDataSource(e){if(!!e)return{gloabalItems:e.NavigationItems,personalItems:e.AddGlobalPersonalSwitcher?e.PersonalNavigationItems:void 0}}getUserItems(e){if(!!e)return e.UserItems}getCachedAppMenuModel(){if(!this.menuSettings)return null;let e=window.sessionStorage.getItem(Hi(this.menuSettings.userName));return e===null?e:JSON.parse(e)}cacheAppMenuModel(e){return this.menuSettings?(window.sessionStorage.setItem(Hi(this.menuSettings.userName),JSON.stringify(e)),!0):!1}clearAppMenuModelCache(){return this.menuSettings?(window.sessionStorage.removeItem(Hi(this.menuSettings.userName)),!0):!1}isShowGlobalMenu(){let e=window.localStorage.getItem(tn),t=e===null?e:JSON.parse(e);return t===null||t}},ke=bt;ke.MENU_SWITCHER_INITIALIZED_EVENT="menu-switcher-initialized-event",ke.GLOBAL_URL_REGEX=new RegExp("^(?:[a-z]+:)?//","i"),ke.DOCTYPE_MARKER_REGEX=new RegExp("!DOCTYPE html>","i");var Fa=["default","string","number","date","boolean","object","datetime"],nt=Fa;var ot=(r=>(r[r.None=0]="None",r[r.AddNewRows=1]="AddNewRows",r[r.ReplaceAllRows=2]="ReplaceAllRows",r))(ot||{});var at=(s=>(s.Default="default",s.String="string",s.Number="number",s.Date="date",s.Boolean="boolean",s.Object="object",s.Datetime="datetime",s))(at||{});var Wi=(r=>(r[r.Success=0]="Success",r[r.Warning=1]="Warning",r[r.Error=2]="Error",r))(Wi||{}),Ba={year:"local"},st=class{constructor(e){this.indicatorClassByStatus=new Map([[0,"footer__indicator_type_success"],[1,"footer__indicator_type_warning"],[2,"footer__indicator_type_error"]]);let t=w(w({},e),Ba);this.$root=t.$root,this.name=t.name!==!1?t.name:void 0,this.licence=t.licence!==!1?t.licence:void 0,this.year=st.getCurrentYear(t.year),this.version=e.version||void 0,this.showName=t.name!==!1,this.showLicence=t.licence!==!1,this.showYear=t.year!==!1,this.showConnectedTo=!!t.serverName&&!!t.database,this.indicatorsOptions=e.indicators||[],this.indicatorsByName=new Map,this.connectedTo=this.showConnectedTo?`${t.serverName} - ${t.database}`:void 0}static getCurrentYear(e){return e==="local"||e===!1?new Date().getFullYear():e}init(){this.$root.addClass("footer"),this.renderIndicators(),this.renderCopyright(),this.showYear&&this.renderYear(),this.showName&&this.renderName(),this.showConnectedTo&&this.renderConnectedTo(),this.showLicence&&this.renderLicence()}setIndicatorValue(e,t){let r=this.indicatorsByName.get(e);r&&this.setIndicatorValueCore(r,t)}renderIndicators(){var e;(e=this.indicatorsOptions)==null||e.forEach(t=>{t.text&&$("<span>").addClass("footer__indicator-text").html(`${t.text}:`).appendTo(this.$root);let r=$("<span>").addClass("footer__indicator").appendTo(this.$root);this.setIndicatorValueCore(r,t.value),this.indicatorsByName.set(t.name,r),t.getValue&&t.getValueIntervalMs&&setInterval(async()=>{let n=await t.getValue();this.setIndicatorValueCore(r,n)},t.getValueIntervalMs)})}setIndicatorValueCore(e,t){e.attr("title",t.title),e.removeClass([...this.indicatorClassByStatus.values()]),e.addClass(this.indicatorClassByStatus.get(t.status))}renderCopyright(){$("<span>").addClass("footer__copyright").html("&copy;").appendTo(this.$root)}renderName(){this.name&&$("<span>").addClass("footer__item").addClass("footer__app-name").text(this.name+(this.version?`: ${this.version}`:"")).appendTo(this.$root)}renderConnectedTo(){this.name&&$("<span>").addClass("footer__item").addClass("footer__connected-to").text(`Connected to: ${this.connectedTo}.`).appendTo(this.$root)}renderYear(){$("<span>").addClass("footer__item").addClass("footer__current-year").text(this.year).appendTo(this.$root)}renderLicence(){this.licence&&$("<span>").addClass("footer__item").addClass("footer__licence-info").append($("<span>").addClass("footer__licence-owner").text(`${this.getLicenceOwnerDisplayText(this.licence)}. `)).append($("<span>").addClass("footer__licence-date").text(this.getLicenceExpirationDateDisplayText(this.licence))).appendTo(this.$root)}getLicenceOwnerDisplayText(e){return`Licenced to: ${e.Owner}`}getLicenceExpirationDateDisplayText(e){return`Licence Expiry: ${(typeof e.ExpirationDate=="string"?new Date(e.ExpirationDate):e.ExpirationDate).toLocaleDateString()}`}};var ti=null,rn=[];window.addEventListener("resize",()=>{ti&&window.clearTimeout(ti),ti=window.setTimeout(()=>{rn.forEach(i=>i()),ti=null},100)});function ii(i){rn.push(i)}var Dt={main:".main",header:".main .header",content:".content-area",panel:".panel",footer:"footer"},zi=null,Ct=null,ri=null;function nn(i){$(Dt.content).height(Ct),i.option("height",ri)}function Pa(i,e=!1,t=!1){let r=$(Dt.main),n=$(Dt.header),o=$(Dt.content),a=$(Dt.footer),s=o.outerHeight()-o.height();Ct=r.height()-n.height()-a.outerHeight()-s,zi=$(window).height();let l=o.children(),d=0;l.each((u,c)=>{let p=$(c);p.is(i.element())||(d+=p.is(":visible")&&p.css("position")!=="absolute"?p.outerHeight(!0):0)}),ri=e?Ct:Ct-d,t&&(ri+=i.element().outerHeight()),nn(i)}function Ra(i){let e=$(window).height(),t=e-zi;Ct+=t,ri+=t,zi=e,nn(i)}function le(i,e=!1,t=!1){Pa(i,e,t),ii(()=>Ra(i))}var La="isoz-icon-disabled",ie={lg:"iszolea-lg",md:"iszolea-md",sm:"iszolea-sm"},q=class{static setElementMiddleSize(e){e.addClass(ie.md)}static setElementSmallSize(e){e.addClass(ie.sm)}static setWidgetMiddleSize(e){q.setWidgetSize(e,ie.md)}static setWidgetSmallSize(e){q.setWidgetSize(e,ie.sm)}static getIconClass(e,t,r=16){let n=`isoz isoz-icon-${e}-${r}`;return t?`${n} ${La}`:n}static setWidgetSize(e,t){e&&e.option("elementAttr",{class:t})}};var _a={title:"isoz-title"},Et=class{static getToolbarTitleTemplateItem(e,t){return{location:"before",template:()=>{let r=$(`<span class="${_a.title}">${e}</span>`);return t&&r.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Report details")),r}}}};var on={title:"isoz-title",header:"isoz-toolbar-header",dropDownButton:"dx-dropdownmenu-button"};function an(i,e={title:"",description:"",options:{}}){let{title:t="",description:r="",options:n={}}=e,{items:o=[],elementAttr:a={}}=n;o.forEach(l=>{let d={class:ie.md};if(l.options){let{editorOptions:u}=l.options;u||(u={}),u.elementAttr=d,l.options.elementAttr=d,l.options.editorOtions=u}});let s=l=>{l.element.find(`.${on.dropDownButton}`).addClass(ie.md),(n==null?void 0:n.onContentReady)&&n.onContentReady(l)};return $(`${i}`).dxToolbar(S(w({},n),{items:[Et.getToolbarTitleTemplateItem(t,r),...o],onContentReady:s,elementAttr:S(w({},a),{class:on.header})})).dxToolbar("instance")}var Aa={panel:".panel-body"};function sn(i){let e=i.element(),t=i.element().parents(Aa.panel).eq(0),r=t.position().top,n=t.height(),o=t.outerHeight()-t.height(),a=e.position().top,s=n-(a-r)+o/2;i.option("height",s)}function Ki(i){sn(i),ii(()=>sn(i))}function ln(i,e,t=!1){let r=Ji(i,e);return e.height||(t?Ki(r):le(r)),r}function Ji(i,e){let t=(typeof i=="string"?$(i):i).dxDataGrid(e).dxDataGrid("instance");return t.element().addClass(ee.dxDataGrid),t}function dn(i,e,t=!1){let r=(typeof i=="string"?$(i):i).dxTreeList(e).dxTreeList("instance");return r.element().addClass(ee.dxDataGrid),e.height||(t?Ki(r):le(r)),r}var un=i=>i.slice(2).toLowerCase(),Ga=i=>{let e=un(i);return{searchPanel:`.dx-${e}-search-panel`,toolbarEditButton:`.dx-${e}-toolbar-button.dx-edit-button`,toolbarExportButton:`.dx-${e}-export-button`,selectCheckBox:".dx-select-checkbox"}};function pn(i){let e=j.isLegacyRender?Ua(i):hn(i);return(i.summaryColumn||i.showSummaryInColumn)&&(e.summary={totalItems:[{column:i.summaryColumn||i.showSummaryInColumn,showInColumn:i.showSummaryInColumn||i.summaryColumn,summaryType:"count"}]}),e.export={enabled:!!i.exportFileName,fileName:i.exportFileName,allowExportSelectedData:!0},j.isLegacyRender||(e.groupPanel={visible:!0}),e}function cn(i){let e=hn(i);return e.selection={mode:"none"},e}function hn(i){return{allowColumnResizing:!0,cacheEnabled:!0,columnAutoWidth:!0,filterRow:{visible:!0,applyFilter:"onClick"},headerFilter:{visible:!0},hoverStateEnabled:!0,paging:{pageSize:80},pager:{visible:!1},remoteOperations:!0,scrolling:{mode:"virtual",rowRenderingMode:"virtual"},searchPanel:{visible:!0,width:240,placeholder:"Search..."},showRowLines:!0,showBorders:!0,selection:{mode:"multiple"},wordWrapEnabled:!0}}function Ua(i){return{allowColumnResizing:!0,remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,filterRow:{visible:!0,applyFilter:"onClick"},selection:{mode:"multiple"},paging:{pageSize:50},searchPanel:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"}}}function Va(i,e){let t=(r,n)=>r.find(o=>o.name===n);if(i==null?void 0:i.items){let{items:r}=i;if(e){let s=t(r,e);s&&(s.options.type="default")}let n=t(r,"saveButton");n&&(n.showText="always",n.options.text="Save");let o=t(r,"revertButton");o&&(o.showText="always",o.options.text="Discard");let a=t(r,"refresh");a&&(a.showText="always",a.options.text="Refresh",a.options.hint="Reload Data")}}function ka(i){var s,l,d;let e=i.option("selection"),r=e&&e.mode!=="none"?i.getVisibleColumns().findIndex(u=>!!u.dataField):0,n=(s=i.getVisibleColumns()[r])==null?void 0:s.dataField,o=i.option("summary.totalItems"),a=(l=o==null?void 0:o.filter(u=>u.summaryType==="count")[0])==null?void 0:l.column;n&&a!==n&&i.option("summary",{totalItems:[{column:(d=i.getVisibleColumns()[r])==null?void 0:d.dataField,summaryType:"count"}]})}function ni(i,e){let t=Ga(i),r=!1;return{onCellPrepared:n=>{var o,a;j.isLegacyRender||n.rowType==="header"&&n.cellElement.css("text-align","center"),((o=e.options)==null?void 0:o.onCellPrepared)&&((a=e.options)==null||a.onCellPrepared(n))},onContentReady:n=>{var a;let o=n.component;e.disableSummaryColumnDetection||ka(o),r||(r=!0,setTimeout(()=>{let s=o.getScrollable();s&&s.scrollTo({top:0})}));for(let s=0;s<o.columnCount();s++){let l=o.columnOption(s,"dataType");(e.setDefaultColumnWidth||e.setDefaultColumnWidth===void 0)&&(o.columnOption(s,"width")||(l==="boolean"&&o.columnOption(s,"width","45px"),l==="datetime"&&o.columnOption(s,"width","135px"),l==="date"&&o.columnOption(s,"width","140px"))),j.isLegacyRender||((l==="datetime"||l==="date")&&o.columnOption(s,"alignment","right"),l==="date"&&o.columnOption(s,"format","dd MMM yyyy"),l==="datetime"&&o.columnOption(s,"format","HH:mm, dd MMM yyyy"))}j.isLegacyRender||(e.buttonsSize==="sm"?q.setWidgetSmallSize($(t.searchPanel).dxTextBox("instance")):q.setWidgetMiddleSize($(t.searchPanel).dxTextBox("instance")),q.setElementSmallSize(n.component.element().find(t.selectCheckBox)),$(t.toolbarExportButton).length>0&&(e.buttonsSize==="sm"?q.setWidgetSmallSize($(t.toolbarExportButton).dxButton("instance")):q.setWidgetMiddleSize($(t.toolbarExportButton).dxButton("instance")))),((a=e.options)==null?void 0:a.onContentReady)&&e.options.onContentReady(n)},onToolbarPreparing:n=>{var c;let{toolbarOptions:o={}}=n,a=n.component,{items:s=[]}=o;j.isLegacyRender?(e.title&&n.toolbarOptions.items.unshift({location:"before",template(){let p=$("<h2 />").addClass("grid-header").text(e.title);return e.headerDescription&&p.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),p}}),s.forEach(p=>{p.widget==="dxButton"&&p.name==="applyFilterButton"&&(p.options.visible=!1)})):(e.title&&s.unshift(Et.getToolbarTitleTemplateItem(e.title,e.headerDescription)),s.filter(p=>{if(p.widget==="dxButton"){if(p.name==="applyFilterButton"){p.options.visible=!1;return}let g=e.buttonsSize==="sm"?16:24;switch(p.name){case"addRowButton":p.options.icon=q.getIconClass("plus",!1,g);break;case"saveButton":p.options.icon=q.getIconClass("save",!1,g);break;case"revertButton":p.options.icon=q.getIconClass("close",!1,g);break;default:p.options.icon=void 0;break}p.options.elementAttr||(p.options.elementAttr={}),p.options.elementAttr.class=e.buttonsSize==="sm"?ie.sm:ie.md,p.showText="always"}}),Va(o,e.toolbarAccentButtonName),e.toolbarItems&&s.push(...e.toolbarItems),o.elementAttr={class:"isoz-toolbar-header"});let l=n.toolbarOptions.items.findIndex(p=>p.name==="saveButton"),d=n.toolbarOptions.items.findIndex(p=>p.name==="searchPanel"),u=-1;l>-1?u=l:d>-1?u=d:u=n.toolbarOptions.items.length,n.toolbarOptions.items.splice(u,0,{location:"after",widget:"dxButton",name:"refresh",options:{icon:"refresh",height:30,elementAttr:{class:"dx-datagrid-toolbar-button"},stylingMode:"text",onClick:()=>a==null?void 0:a.refresh(),onContentReady:p=>{p.element.find(".dx-button-content").css({paddingTop:6,paddingBottom:6})}}}),((c=e.options)==null?void 0:c.onToolbarPreparing)&&e.options.onToolbarPreparing(n)},onEditorPreparing:n=>{var o;switch(j.isLegacyRender||(n.editorOptions=S(w({},n.editorOptions),{elementAttr:{class:ie.md}}),n.editorName==="dxSelectBox"&&(n.editorOptions.dropDownOptions=S(w({},n.editorOptions.dropDownOptions),{onShowing:a=>{let s=un(i);a.component._$popupContent.addClass(`isoz-${s}-selectbox-popup`)}})),n.editorName==="dxCheckBox"&&q.setElementSmallSize(n.editorElement)),n.parentType){case"filterRow":let a=l=>{n.element&&n.element.find(".dx-apply-button").trigger("dxclick")};n.editorOptions.onEnterKey=a,n.editorOptions.onFocusOut=a;break;case"searchPanel":let s=l=>{n.component.searchByText(l.component.option("value"))};n.editorOptions.onValueChanged=()=>{},n.editorOptions.onEnterKey=s,n.editorOptions.onFocusOut=s;break}((o=e.options)==null?void 0:o.onEditorPreparing)&&e.options.onEditorPreparing(n)},onContextMenuPreparing:n=>{var o,a,s;if(!j.isLegacyRender&&n.target==="content"&&!!e.exportFileName&&(n.items||(n.items=[]),n.items.push({text:"Export all data",onItemClick:()=>{n.component.exportToExcel(!1)},icon:"xlsxfile"}),((o=e.options.selection)==null?void 0:o.mode)!=="none")){let l=n.component.getSelectedRowKeys();n.items.push({text:"Export selected rows",onItemClick:()=>n.component.exportToExcel(!0),icon:"exportselected",disabled:!l||!l.length})}((a=e.options)==null?void 0:a.onContextMenuPreparing)&&((s=e.options)==null||s.onContextMenuPreparing(n))}}}function de(i,e){let t=pn(e),r=$.extend({},t,e.options),n=ni("dxDataGrid",$.extend(!0,{},e,{options:r}));return r=$.extend(!0,{},r,n),e.isFullScreen||e.isFullScreen===void 0?ln(i,r,e.inPanelGrid):Ji(i,r)}function fn(i,e,t={},r,n){return de(i,{options:e,exportFileName:t.exportFileName,inPanelGrid:t.inPanelGrid,showSummaryInColumn:t.showSummaryInColumn,summaryColumn:t.summaryColumn,headerDescription:n,title:r})}function mn(i,e={}){let t=cn(e),r=$.extend({},t,e.options),n=ni("dxTreeList",$.extend(!0,{},e,{options:r}));return r=$.extend(!0,{},r,n),dn(i,r,e.inPanelGrid)}var Qi={};me(Qi,{createConfirm:()=>$a});function $a(i){let e=$.Deferred(),r=$("<div/>").appendTo(window.document.body).dxPopup({showTitle:!1,height:140,width:370,contentTemplate:n=>{n.addClass("iszolea-dx-confirm"),$("<b/>").addClass("message").text(i).appendTo(n);let o=$("<div/>").addClass("buttons").appendTo(n);$("<div/>").dxButton({text:"Delete",type:"danger",onClick:()=>{r.hide(),e.resolve(!0)}}).appendTo(o),$("<div/>").dxButton({text:"Cancel",onClick:()=>{r.hide(),e.resolve(!1)}}).appendTo(o)},onHidden:()=>{r.dispose(),r.element().remove()}}).dxPopup("instance");return r.show(),e}var ji={};me(ji,{createLanding:()=>Na});function Na(i,e,t){Ha(e).then(r=>{Wa(i,r,t)})}function Ha(i){let e=$.Deferred();if(typeof i=="string"){let t=window.sessionStorage.getItem(Ve);t?e.resolve(JSON.parse(t)):x(i,"post").done(r=>{let n={applicationName:r.ApplicationName,businessName:r.BusinessName,landingPageLogo:r.LandingPageLogo,logoImage:r.LogoImage,description:r.Description};window.sessionStorage.setItem(Ve,JSON.stringify(n)),e.resolve(n)})}else e.resolve(i);return e}function Wa(i,e,t){let r=$("<div />").addClass("iszolea-landing-page").appendTo(i);$("<img />").attr("src",e.landingPageLogo).addClass("logo-large").appendTo(r),$("<span />").addClass("business-name").text(e.businessName).appendTo(r),$("<h2 />").text(`Welcome to ${e.description}`).appendTo(r),t&&$("<div />").addClass("sign-in-button").append($("<div />").dxButton({text:"Sign In",type:"default",onClick:()=>{window.sessionStorage.clear(),window.location.href=`/Home/Login?returnUrl=${encodeURIComponent(window.location.href.toString())}`}})).appendTo(r)}var qi={};me(qi,{createAccessDeniedToReport:()=>za});function za(i,e,t){let r=$("<div>").addClass("access-denied-to-report-page").appendTo(i);if($("<h2>").addClass("error-text").text("Access denied to the report").appendTo(r),e&&e.length){let n=e.map(o=>$("<span>").addClass("role").text(o));$("<p>").text("Required roles for report: ").append(n).appendTo(r)}if(t&&t.length){let n=t.map(o=>$("<span>").addClass("role").text(o));$("<p>").text("Required roles for db connection: ").append(n).appendTo(r)}}var _r={};me(_r,{ControlConfigurator:()=>St,ControlDisplay:()=>Ot,DisplayManager:()=>Nt,default:()=>bi});function ue(i,e){let t=$("<p/>").html(e).text(),r=$("<div>",{class:"report-details-popover"}).html(t).appendTo(document.body);return $(r).dxPopover({target:i,showEvent:"dxclick",position:"bottom",width:500}).dxPopover("instance")}function $e(i,e,t={},r,n,o=!1){let a=!1,s={export:{enabled:!!t.exportFileName,fileName:t.exportFileName,allowExportSelectedData:!0},remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,selection:{mode:"multiple"},paging:{pageSize:50},searchPanel:{visible:!0},filterRow:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"},onContentReady:c=>{if(Ja(c.component),!a){if(a=!0,!o)for(let p=0;p<c.component.columnCount();p++){let g=c.component.columnOption(p,"dataType");c.component.columnOption(p,"width")||(g==="boolean"&&c.component.columnOption(p,"width","100px"),g==="datetime"&&c.component.columnOption(p,"width","150px"))}setTimeout(()=>{let p=c.component.getScrollable();p&&p.scrollTo({top:0})})}},onToolbarPreparing:c=>{r&&c.toolbarOptions.items.unshift({location:"before",template(){let p=$("<h2 />").addClass("grid-header").text(r);return n&&p.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),p}})}},l=e.onContentReady?c=>{s.onContentReady(c),e.onContentReady(c)}:s.onContentReady;Ka(e,t);let d=$.extend({},s,e,{onContentReady:l}),u=$(i).dxDataGrid(d).dxDataGrid("instance");return u.element().addClass(ee.dxDataGrid),u}function Ka(i,e){var r,n,o;if((n=(r=i==null?void 0:i.summary)==null?void 0:r.totalItems)==null?void 0:n.some(a=>a.summaryType==="count"))return;let t=e==null?void 0:e.summaryColumn;!t&&((o=i==null?void 0:i.columns)==null?void 0:o.length)&&(t=typeof i.columns[0]=="string"?i.columns[0]:i.columns[0].dataField),t&&(i.summary||(i.summary={}),i.summary.totalItems||(i.summary.totalItems=[]),i.summary.totalItems.push({column:t,summaryType:"count"}))}function Ja(i){var s,l,d;let e=i.option("selection"),r=e&&e.mode!=="none"?i.getVisibleColumns().findIndex(u=>!!u.dataField):0,n=(s=i.getVisibleColumns()[r])==null?void 0:s.dataField,o=i.option("summary.totalItems"),a=(l=o==null?void 0:o.filter(u=>u.summaryType==="count")[0])==null?void 0:l.column;n&&a!==n&&i.option("summary",{totalItems:[{column:(d=i.getVisibleColumns()[r])==null?void 0:d.dataField,summaryType:"count"}]})}function oi(i,e,t={},r,n,o=!1,a=!1){let s=$e(i,e,t,r,n,o);return a||le(s),s}function ye(i,e){return $("<span>").attr("title",e).text(i)}var gn=new Map;var St=class{constructor(e){this.displayTypes=[{key:1,value:"Icons"},{key:2,value:"PredefinedValues"}];this.editors={[1]:vn,[2]:yn};this.roles=[];this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.availableRolesUrl=e.availableRolesUrl,this.groupFieldsUrl=e.groupFieldsUrl,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.pageTitle=e.pageTitle}render(){this.$container.addClass("aps-grid"),this.getAvailableRoles().then(e=>{this.roles=e,this.createMainGrid()})}async getAvailableRoles(){return x(this.availableRolesUrl).then(e=>e.map(t=>t.Name).sort((t,r)=>{let n=gn.get(t)||9999,o=gn.get(r)||9999;return n-o}))}getDisplayTypeEditor(e,t,r){let n=this.editors[t];return n?new n(e,r):null}createMainGrid(){let e,t={dataSource:this.createMainGridDataSource(),columnChooser:{enabled:!0,allowSearch:!0,mode:"select"},height:"100%",editing:{mode:"cell",allowUpdating:!0,refreshMode:"repaint"},repaintChangesOnly:!0,remoteOperations:{summary:!0,paging:!0,grouping:!1,sorting:!1,filtering:!1},grouping:{allowCollapsing:!1},groupPanel:{visible:!1},selection:{mode:"multiple"},allowColumnReordering:!1,columnHidingEnabled:!1,hoverStateEnabled:!0,columnAutoWidth:!1,rowAlternationEnabled:!0,columnMinWidth:80,onRowUpdating:n=>{if(!n.newData||!n.oldData)return;n.component.beginCustomLoading("Updating");let o=n.newData.Roles,a=n.oldData.Roles,s=(l,d=n.newData,u=n.oldData)=>{d.hasOwnProperty(l)||(d[l]=u[l])};o&&a&&Object.getOwnPropertyNames(o).forEach(l=>{let d=o[l],u=a[l];d.Id=u.Id,s("CanBeCreated",d,u),s("CanBeRead",d,u),s("CanBeUpdated",d,u),s("CanBeDeleted",d,u)}),s("Label"),s("Order"),s("ToolTip"),s("IsDefaultViewField"),s("IsKeyColumn"),s("GroupField"),s("DisplayType"),s("DataOwner"),s("XLSScheduleLabel")},onRowUpdated:n=>{n.component.endCustomLoading(),n.component.repaint()},columns:this.prepareMainGridColumns([{dataField:"Name",caption:"Field",allowEditing:!1,fixed:!0,fixedPosition:"left",sortOrder:"asc",width:180},{dataField:"GroupField",caption:"Group",allowEditing:!0,width:200,editCellTemplate:(n,o)=>$("<div />").dxSelectBox({value:o.value,dataSource:[...new Set(e.getDataSource().items().filter(a=>a.GroupField).map(a=>a.GroupField).sort())],acceptCustomValue:!0,showClearButton:!0,onValueChanged:a=>{o.setValue(a.value)}})},{dataField:"Label",allowEditing:!0,width:180},{dataField:"Type",allowEditing:!1,width:80},{dataField:"DataOwner",allowEditing:!0,width:80,headerCellTemplate:ye("DO","Data Owner")},{dataField:"XLSScheduleLabel",allowEditing:!0,width:80,headerCellTemplate:ye("XLS","XLS Schedule Label")},{dataField:"DisplayType",allowEditing:!0,width:160,customizeText:n=>{if(!n.value)return null;let o=JSON.parse(n.value);return this.displayTypes.find(s=>s.key===o.type).value},editCellTemplate:(n,o)=>{let a=JSON.parse(o.value),s=a?a.type:null,l=a?a.data:[];return $("<div />").dxDropDownBox({dropDownOptions:{width:400},dataSource:this.displayTypes,valueExpr:"key",displayExpr:"value",value:s,showClearButton:!0,onValueChanged:d=>{o.setValue(d.value)},contentTemplate:()=>{let d=$("<div />"),u=$("<div />").appendTo(d),c=$('<div style="margin: 8px 0;" />').appendTo(d),p=$('<div style="text-align: right;" />').appendTo(d),g=$('<div style="margin-right: 8px;" />').appendTo(p),b=$('<div style="margin-right: 8px;" />').appendTo(p),I=s?this.getDisplayTypeEditor(c,s,l):null;return I&&I.render(),u.dxSelectBox({items:this.displayTypes,value:s,valueExpr:"key",displayExpr:"value",onValueChanged:B=>{I=this.getDisplayTypeEditor(c,B.value,l),I.render(),g.dxButton("instance").option("disabled",!1)}}),g.dxButton({text:"Save",type:"success",disabled:!I,onClick:()=>{let B={type:u.dxSelectBox("instance").option("value"),data:I.getData().map(E=>({value:E.value,title:E.title,image:E.image}))};o.setValue(JSON.stringify(B)),o.component.closeEditCell()}}).appendTo(p),b.dxButton({text:"Cancel",onClick:()=>{o.component.closeEditCell()}}).appendTo(p),d.dxScrollView({width:"100%",height:"100%"}),d}})}},{dataField:"IsDefaultViewField",caption:"Display in default view",allowEditing:!0,width:100},{dataField:"IsKeyColumn",allowEditing:!0,width:150},{dataField:"Order",allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:0,message:"Order can't be negative"}],width:80},{dataField:"Width",dataType:"number",headerCellTemplate:ye("Width","Width (in pixels)"),allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:1,message:"Width can't be less then 1px"}],width:80},{dataField:"HidingOrder",dataType:"number",headerCellTemplate:ye("Hide","Hiding Order"),allowEditing:!0,editorOptions:{format:"#"},validationRules:[{type:"range",min:1,message:"Hiding order can't be less then 1"}],width:70},{dataField:"ToolTip",allowEditing:!0,minWidth:180},{name:"Roles",allowEditing:!0,allowHiding:!1,showInColumnChooser:!0,columns:this.createRolesColumns(this.roles)}])},r={summaryColumn:"Name"};return this.isStandalonePage?e=oi(this.$container,t,r,this.pageTitle,"",!0):e=$e(this.$container,t,r,this.pageTitle,"",!0),e}prepareMainGridColumns(e){return e.forEach(t=>{(t.allowHiding===void 0||t.allowHiding===null)&&(t.allowHiding=!1),(t.showInColumnChooser===void 0||t.showInColumnChooser===null)&&(t.showInColumnChooser=!1)}),e}createRolesColumns(e){return e.map(t=>({name:t,caption:t,allowHiding:!0,visible:!0,showInColumnChooser:!0,columns:[this.createRolesPermissionColumn(t,"CanBeRead",{headerCellTemplate:ye("Read","Read")}),this.createRolesPermissionColumn(t,"CanBeUpdated",{headerCellTemplate:ye("Edit","Edit")})]}))}createRolesPermissionColumn(e,t,r){return S(w({},r),{name:`${e}_${t}`,dataField:`Roles.${e}.${t}`,allowHiding:!1,showInColumnChooser:!1,allowHeaderFiltering:!1,allowFiltering:!1,minWidth:60})}createMainGridDataSource(){return{store:te({loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl,key:"Name"})}}},vn=class{constructor(e,t){this.$container=e,this.data=t}render(){this.grid=$e(this.$container,{dataSource:this.data,editing:{mode:"row",allowAdding:!0,allowDeleting:!0,allowUpdating:!0,useIcons:!0},headerFilter:{visible:!1},grouping:{contextMenuEnabled:!1},groupPanel:{visible:!1},searchPanel:{visible:!1},filterRow:{visible:!1},remoteOperations:!1,selection:{mode:"none"},columns:[{dataField:"value",allowEditing:!0},{dataField:"title",allowEditing:!0},{dataField:"image",allowEditing:!0,cellTemplate:(e,t)=>{$("<div>").css({"text-align":"center"}).append($("<img>",{src:t.data.image})).appendTo(e)},editCellTemplate:(e,t)=>{let r=t.value||"",n=$('<div style="position: relative; display: flex; align-items: center; justify-content: center;" />'),o=$(`<img src="${r}" />`),a=$('<a class="dx-link dx-icon-upload" style="position: absolute; right: 8px; text-decoration: none; font-size: 18px;" />'),s=$('<input type="file" style="display:none;" />');return a.on("click",()=>{s.click()}),s.on("change",l=>{if(l.target.files.length){let d=new FileReader;d.onloadend=()=>{o.attr("src",d.result),t.setValue(d.result)};let u=l.target.files[0];u?d.readAsDataURL(u):o.attr("src","")}}),o.appendTo(n),a.appendTo(n),s.appendTo(n),n}},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:e=>{let t=this.grid.option("dataSource");t.splice(e.row.rowIndex,1),this.grid.option("dataSource",t)}}]}]})}getData(){return this.grid.option("dataSource")}},yn=class{constructor(e,t){this.$container=e,this.data=t}render(){this.grid=$e(this.$container,{dataSource:this.data,editing:{mode:"row",allowAdding:!0,allowDeleting:!0,allowUpdating:!0,useIcons:!0},headerFilter:{visible:!1},grouping:{contextMenuEnabled:!1},groupPanel:{visible:!1},searchPanel:{visible:!1},filterRow:{visible:!1},remoteOperations:!1,selection:{mode:"none"},columns:[{dataField:"value",allowEditing:!0},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:e=>{let t=this.grid.option("dataSource");t.splice(e.row.rowIndex,1),this.grid.option("dataSource",t)}}]}]})}getData(){return this.grid.option("dataSource")}};DevExpress.ui.dxDataGrid.registerModule("columnChooserSorting",{extenders:{controllers:{columns:{getChooserColumns(i){return this.callBase(i).sort((t,r)=>{let n=(t==null?void 0:t.caption)||"",o=(r==null?void 0:r.caption)||"";return n.localeCompare(o)})}}}}});var Qa=(i,e)=>{if(i===null||e===null||i.length!==e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0},lt=i=>{let e=null,t=null;return function(...r){return Qa(e,r)||(t=i(...r)),e=r,t}};var xe=class{constructor(e){this._currentViewId=xe.defaultControlDisplayView.id;this.views=xe.defaultViews;this.getViewByIdInternal=e=>this.views&&this.views.find(t=>t.id===e);this.getViewById=lt(this.getViewByIdInternal);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl}get currentView(){return this.getViewById(this._currentViewId)}get currentViewId(){return this._currentViewId}set currentViewId(e){this._currentViewId=e}async getViews(){return this.views===xe.defaultViews&&await this.loadViews(),this.views}updateCurrentView(e){return this.updateView(this.currentView.id,e)}async createNewView(e,t,r){let n=this.mapViewModelToDto({id:-1,name:e,gridState:t,isGlobal:r});return n=await x(this.insertDataUrl,"POST",n),await this.loadViews(),this.mapViewDtoToModel(n)}async updateView(e,t){if(e===xe.defaultControlDisplayView.id)return!1;let r=this.getViewById(e);if(!r)return!1;let n=w(w({},r),t),o=this.mapViewModelToDto(n);return o=await x(this.updateDataUrl,"PUT",o),await this.loadViews(),!0}async deleteView(e){return e===xe.defaultControlDisplayView.id||!this.getViewById(e)?!1:(await x(this.deleteDataUrl,"DELETE",{viewId:e}),await this.loadViews(),!0)}async loadViews(){let e=await se(this.loadDataUrl);return this.views=e.map(t=>this.mapViewDtoToModel(t)),this.views.unshift(xe.defaultControlDisplayView),this.resetCachedResultOfGetViewByIdFunction(),this.views}mapViewModelToDto(e){return{Id:e.id,Name:e.name,GridState:JSON.stringify(e.gridState),IsGlobal:e.isGlobal}}mapViewDtoToModel(e){return{id:e.Id,name:e.Name,gridState:JSON.parse(e.GridState),isGlobal:e.IsGlobal}}resetCachedResultOfGetViewByIdFunction(){this.getViewById=lt(this.getViewByIdInternal)}},V=xe;V.defaultControlDisplayView={id:0,name:"Default",gridState:null,isGlobal:!1},V.defaultViews=[xe.defaultControlDisplayView];var Xi=class{constructor(e){this.options=e,this.currentSavedGridState=e.initialState,this.options.owner.option("stateStoring",{enabled:!0,type:"custom",customLoad:()=>Promise.resolve(this.currentSavedGridState)})}get hasChanges(){return this.currentSavedGridState!==null&&JSON.stringify(this.currentUnsavedGridState)!==JSON.stringify(this.currentSavedGridState)}get currentUnsavedGridState(){return this.prepareUnsavedGridState(this.options.owner.state())}async apply(e,t=!0){return new Promise((r,n)=>{let o=t?void 0:this.options.owner.filter();this.options.owner.beginUpdate(),this.options.owner.clearFilter("filterValue"),this.options.owner.state(e);let a=this.options.owner.getVisibleColumns().filter(l=>!l.type);a[0]&&a[0].dataField&&this.options.owner.option("summary",{totalItems:[{column:a[0].dataField,summaryType:"count"}]}),o&&this.options.owner.filter(o),this.options.owner.endUpdate();let s=()=>{this.save(),r(),this.options.owner.off("contentReady",s)};this.options.owner.on("contentReady",s)})}save(){this.currentSavedGridState=this.currentUnsavedGridState}reset(){this.options.owner.state(this.currentSavedGridState)}prepareUnsavedGridState(e){if(e.columns){let t=e.columns.filter(n=>n.visible),r=t[t.length-1];r.width=void 0}return e}};var Yi=class{constructor(e){this.onGridToolbarPreparing=e=>{let t=e.toolbarOptions&&e.toolbarOptions.items;!t||(this.removeDefaultColumnChooserButton(t),t.splice(1,0,this.viewsToolbarItem))};this.options=S(w({},e),{gridStateManager:e.gridStateManager?e.gridStateManager:new Xi({owner:e.owner,initialState:null}),gridViewsManager:e.gridViewsManager?e.gridViewsManager:new V(e.gridViewsManagerOptions),autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner)}async tryApplyView(e){let t=await this.confirmChangesLoss();return t&&await this.applyView(e),t}async applyView(e){this.beginViewApplyingLoading(),this.options.gridViewsManager.currentViewId=e,await this.options.gridStateManager.apply(this.options.gridViewsManager.currentView.gridState,!1),this.endViewApplyingLoading(),this.syncUIWithCurrentView(),this.options.onViewApplied&&this.options.onViewApplied(e)}integrateToGrid(e){let t=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{t&&t(r),this.onGridToolbarPreparing(r)})}removeDefaultColumnChooserButton(e){e.splice(e.findIndex(t=>t.name==="columnChooserButton"),1)}get viewsToolbarItem(){return this._viewsToolbarItem||(this._viewsToolbarItem=this.createViewsToolbarItem()),this._viewsToolbarItem}get isDefaultView(){return this.options.gridViewsManager.currentViewId===V.defaultControlDisplayView.id}get hasChanges(){let e=this.options.gridViewsManager.currentView;return this.currentViewTitle?this.currentViewTitle.option("value")!==e.name||this.options.gridStateManager.hasChanges:!1}createViewsToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Views",visible:this.options.visible,cssClass:"aps-views__toolbar-item",options:{items:[V.defaultControlDisplayView],value:V.defaultControlDisplayView.id,valueExpr:"id",displayExpr:"name",width:200,dropDownOptions:{width:500},onInitialized:t=>{this.viewsDropdownBox=t.component,this.loadViewDropdownBoxData()},onValueChanged:async t=>{if(t.value===this.options.gridViewsManager.currentViewId||!e){e=!0;return}await this.tryApplyView(t.value)||(e=!1,this.syncUIWithCurrentView(!0))},contentTemplate:t=>{if(!t.component)return;this.viewsDataGrid=this.createViewsDataGrid(t.component),this.currentViewTitle=this.createCurrentViewTitle(t.component),this.saveViewButton=this.createSaveViewButton(),this.saveViewAsButton=this.createSaveViewAsButton(),this.columnChooserButton=this.createColumnChooserButton();let r=$("<div />").addClass("aps-views__header").append(this.currentViewTitle.element()).append(this.saveViewButton.element()).append(this.saveViewAsButton.element()).append(this.columnChooserButton.element());return $("<div />").height("100%").append(r).append(this.viewsDataGrid.element())}}}}createViewsDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!0,allowDeleting:!0,mode:"cell",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this view?"}},wordWrapEnabled:!0,loadPanel:{shading:!0},columns:[{dataField:"name",allowEditing:!1},{dataField:"isGlobal",caption:"Is Global",dataType:"boolean",width:70},{type:"buttons",buttons:[{name:"delete",visible:t=>t.row&&t.row.key!==V.defaultControlDisplayView.id}]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,showColumnLines:!1,selection:{mode:"single"},height:"calc(100% - 51px)",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No views",onSelectionChanged:t=>{e.option("value",t.selectedRowKeys&&t.selectedRowKeys.length?t.selectedRowKeys[0]:0)},onEditorPreparing:t=>{if(t.dataField==="isGlobal"){t.editorOptions.disabled=!this.options.canCreateGlobalViews,t.editorOptions.visible=t.row.data.id!==V.defaultControlDisplayView.id;let r=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async n=>{t.component.beginCustomLoading("Updating"),await this.options.gridViewsManager.updateView(t.row.data.id,{isGlobal:n.value}),t.component.endCustomLoading(),r(n)}}},onCellPrepared:t=>{if(t.column.type!=="buttons"||!t.data)return;!t.data.isGlobal||t.data.isGlobal&&this.options.canCreateGlobalViews||Array.from(t.cellElement.children()).forEach(n=>{$(n).css({color:"#ddd !important",cursor:"default"}).off("click")})},onRowRemoving:t=>{!t.key||this.deleteView(t.key)}}).dxDataGrid("instance")}createCurrentViewTitle(e){return $("<div />").addClass("aps-views__current-view").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:this.isDefaultView}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-views__save-view").dxButton({text:"Save",type:"normal",disabled:this.isDefaultView,onClick:this.save.bind(this),icon:"save"}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-views__save-view-as").dxButton({text:"Save As",type:"normal",onClick:this.createSaveAsDialog.bind(this),icon:"save"}).dxButton("instance")}createColumnChooserButton(){return $("<button />").addClass("aps-views__column-chooser").dxButton({text:"Column Chooser",type:"back",onClick:this.openColumnChooser.bind(this),icon:"column-chooser"}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),t=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"View Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),r=t.dxTextBox("instance"),n=t.dxValidator("instance");r.element().appendTo(e);let o=$('<div style="margin-bottom:16px;" />').dxCheckBox({text:"Global view",disabled:!this.options.canCreateGlobalViews}).dxCheckBox("instance");return o.element().appendTo(e),_e({title:"Create New View",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async a=>{!n.validate().isValid||(await this.saveAs(r.option("value"),o.option("value")),a())}},{text:"Cancel",onClick:a=>a()})}openColumnChooser(){this.options.owner.showColumnChooser()}async loadViewDropdownBoxData(){if(!this.viewsDropdownBox)return;let e=await this.options.gridViewsManager.getViews(),t=new DevExpress.data.ArrayStore({key:"id",data:e});this.viewsDropdownBox.option("dataSource",t),this.viewsDropdownBox.option("value",this.options.gridViewsManager.currentViewId),this.viewsDataGrid&&this.viewsDataGrid.option("dataSource",t)}async save(){!this.hasChanges||(this.options.gridStateManager.save(),await this.options.gridViewsManager.updateCurrentView({name:this.currentViewTitle.option("value"),gridState:this.options.gridStateManager.currentSavedGridState}),O("Saved",!0),await this.loadViewDropdownBoxData())}async saveAs(e,t){if(!this.options.gridStateManager)return;this.options.gridStateManager.save();let r=await this.options.gridViewsManager.createNewView(e,this.options.gridStateManager.currentSavedGridState,t);await this.loadViewDropdownBoxData(),await this.applyView(r.id),O("View is created",!0)}async deleteView(e){await this.options.gridViewsManager.deleteView(e),this.options.onViewDeleted&&this.options.onViewDeleted(e),await this.loadViewDropdownBoxData(),this.options.gridViewsManager.currentViewId!==V.defaultControlDisplayView.id&&await this.applyView(V.defaultControlDisplayView.id)}beginViewApplyingLoading(){this.currentViewTitle&&this.currentViewTitle.option("readOnly",!0),this.saveViewButton&&this.saveViewButton.option("disabled",!0),this.saveViewAsButton&&this.saveViewAsButton.option("disabled",!0),this.viewsDataGrid&&this.viewsDataGrid.beginCustomLoading("Applying...")}endViewApplyingLoading(){this.currentViewTitle&&this.currentViewTitle.option("readOnly",!1),this.saveViewButton&&this.saveViewButton.option("disabled",!1),this.saveViewAsButton&&this.saveViewAsButton.option("disabled",!1),this.viewsDataGrid&&this.viewsDataGrid.endCustomLoading()}syncUIWithCurrentView(e=!1){!e&&this.currentViewTitle&&(this.currentViewTitle.option("value",this.options.gridViewsManager.currentView.name),this.currentViewTitle.option("readOnly",this.isDefaultView)),this.viewsDropdownBox.option("value",this.options.gridViewsManager.currentViewId),setTimeout(()=>{this.viewsDataGrid&&(this.options.gridViewsManager.currentViewId===V.defaultControlDisplayView.id?this.viewsDataGrid.selectRowsByIndexes([0]):this.viewsDataGrid.selectRows([this.options.gridViewsManager.currentViewId],!1))},0);let t=this.options.gridViewsManager.currentView.isGlobal&&!this.options.canCreateGlobalViews;this.saveViewButton&&this.saveViewButton.option("disabled",this.isDefaultView||t)}async confirmChangesLoss(){return this.hasChanges?DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes"):!0}};var Tt=class{constructor(e){this.getFilterByIdInternal=e=>this.filters&&this.filters.find(t=>t.id===e);this.getFilterById=lt(this.getFilterByIdInternal);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl}get currentFilter(){return this.getFilterById(this._currentFilterId)}get currentFilterId(){return this._currentFilterId}set currentFilterId(e){this._currentFilterId=e}async getFilters(){return this.filters||await this.loadFilters(),this.filters}updateCurrentFilter(e){return!!this.currentFilter&&this.updateFilter(this.currentFilter.id,e)}async createNewFilter(e,t,r,n){let o=this.mapFilterModelToDto({id:-1,name:e,isDefault:r,isGlobal:n,filterState:t});return o=await x(this.insertDataUrl,"POST",o),await this.loadFilters(),this.mapFilterDtoToModel(o)}async updateFilter(e,t){let r=this.getFilterById(e);if(!r)return!1;let n=w(w({},r),t),o=this.mapFilterModelToDto(n);return o=await x(this.updateDataUrl,"PUT",o),await this.loadFilters(),!0}async deleteFilter(e){return this.getFilterById(e)?(await x(this.deleteDataUrl,"DELETE",{filterId:e}),await this.loadFilters(),!0):!1}async loadFilters(){let e=await se(this.loadDataUrl);return this.filters=e.map(t=>this.mapFilterDtoToModel(t)),this.resetCachedResultOfGetFilterByIdFunction(),this.filters}mapFilterModelToDto(e){return{Id:e.id,Name:e.name,IsDefault:e.isDefault,IsGlobal:e.isGlobal,FilterState:JSON.stringify(e.filterState)}}mapFilterDtoToModel(e){return{id:e.Id,name:e.Name,isDefault:e.IsDefault||!1,isGlobal:e.IsGlobal||!1,filterState:JSON.parse(e.FilterState)}}resetCachedResultOfGetFilterByIdFunction(){this.getFilterById=lt(this.getFilterByIdInternal)}};var Zi=class{constructor(e){this.isInFilterApplying=!1;this.onGridToolbarPreparing=e=>{let t=e.toolbarOptions&&e.toolbarOptions.items;!t||t.splice(1,0,this.filtersToolbarItem)};this.options=S(w({},e),{gridFiltersManager:e.gridFiltersManager?e.gridFiltersManager:new Tt(e.gridFiltersManagerOptions),autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner),this.filterExpressionCalculator=$("<div />").dxFilterBuilder({fields:this.getFlatColumnsList(this.options.owner.option("columns"))}).dxFilterBuilder("instance")}async tryApplyFilter(e){let t=await this.confirmChangesLoss();return t&&await this.applyFilter(e),t}async applyFilter(e,t=!1){this.isInFilterApplying=!0,this.options.gridFiltersManager.currentFilterId=e,this.updateFilterPopupContent(this.options.gridFiltersManager.currentFilter),this.filtersDropdownBox.option("value",this.options.gridFiltersManager.currentFilterId);let r=this.options.owner.getDataSource();if(this.options.gridFiltersManager.currentFilter){this.filterExpressionCalculator.option("value",this.options.gridFiltersManager.currentFilter.filterState);let n=this.filterExpressionCalculator.getFilterExpression();if(r.isLoading()){let o=()=>{r.off("loadingChanged",o),setTimeout(()=>{r=this.options.owner.getDataSource(),r.filter(n)})};r.on("loadingChanged",o)}else r.filter(n)}else r.filter(null);t||await r.load(),this.options.onFilterApplied&&this.options.onFilterApplied(e),this.isInFilterApplying=!1}integrateToGrid(e){let t=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{t&&t(r),this.onGridToolbarPreparing(r)})}get filtersToolbarItem(){return this._filtersToolbarItem||(this._filtersToolbarItem=this.createFiltersToolbarItem()),this._filtersToolbarItem}get filterPopup(){return this._filterPopup||(this._filterPopup=this.createFilterPopup()),this._filterPopup}get hasChanges(){let e=this.options.gridFiltersManager.currentFilter,t=this.filterNameTextBox&&this.filterNameTextBox.option("value"),r=e&&e.name,n=this.filterBuilder&&this.filterBuilder.option("value"),o=e&&e.filterState,a=this.filterIsGlobalCheckbox&&this.filterIsGlobalCheckbox.option("value"),s=e&&e.isGlobal;return t!==r||n!==o||a!==s}createFiltersToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Data Sets",visible:this.options.visible,cssClass:"aps-filters__toolbar-item",options:{value:this.options.gridFiltersManager.currentFilterId,valueExpr:"id",displayExpr:"name",showClearButton:!0,placeholder:"None",width:200,dropDownOptions:{width:500},onInitialized:async t=>{this.filtersDropdownBox=t.component;let[,r]=await Promise.all([this.loadFilterDropdownBoxData(),this.options.apsControlDisplayUserSettingsManager.getUserSettings()]);r.defaultFilterId&&t.component.option("value",r.defaultFilterId)},onValueChanged:async t=>{if(this.isInFilterApplying)return;if(!e){e=!0;return}let r=t.value;await this.tryApplyFilter(r)||(e=!1,r=t.previousValue,t.component.option("value",r)),this.filtersDataGrid&&this.filtersDataGrid.selectRows(r,!1),this.currentFilterTitle&&this.currentFilterTitle.option("value",t.component.option("text")||t.component.option("placeholder"))},onOpened:t=>{!t.component||this.filtersDataGrid&&this.filtersDataGrid.selectRows(t.component.option("value"),!1)},contentTemplate:t=>{if(!t.component)return;this.filtersDataGrid=this.createFiltersDataGrid(t.component),this.currentFilterTitle=this.createCurrentFilterTitle(t.component),this.newFilterButton=this.createNewFilterButton();let r=$("<div />").addClass("aps-filters__header").append(this.currentFilterTitle.element()).append(this.newFilterButton.element());return $("<div />").css("height","100%").append(r).append(this.filtersDataGrid.element())}}}}createFiltersDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!0,allowDeleting:!0,mode:"cell",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this data set?"}},wordWrapEnabled:!0,columns:[{dataField:"name",allowEditing:!1},{dataField:"isDefault",caption:"Is Default",dataType:"boolean",width:80},{dataField:"isGlobal",caption:"Is Global",dataType:"boolean",width:70},{type:"buttons",buttons:[{icon:"edit",hint:"Edit",onClick:async t=>{if(!t.row||!t.row.key)return;await this.tryApplyFilter(t.row.key)&&!this.filterPopup.option("visible")&&this.openEditFilterPopup(this.options.gridFiltersManager.currentFilter)}},"delete"]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,showColumnLines:!1,selection:{mode:"single"},height:"calc(100% - 51px)",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No data sets",onSelectionChanged:t=>{e.option("value",t.selectedRowKeys?t.selectedRowKeys[0]:null)},onEditorPreparing:t=>{if(t.dataField==="isGlobal"){t.editorOptions.disabled=!this.options.canCreateGlobalFilters;let r=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async n=>{t.component.beginCustomLoading("Updating"),await this.options.gridFiltersManager.updateFilter(t.row.data.id,{isGlobal:n.value}),t.component.endCustomLoading(),r(n)}}},onCellPrepared:t=>{t.column.type!=="buttons"||!t.data||t.column.type==="buttons"&&(!t.data.isGlobal||t.data.isGlobal&&this.options.canCreateGlobalFilters||Array.from(t.cellElement.children()).forEach(n=>{$(n).css({color:"#ddd !important",cursor:"default"}).off("click")}))},onRowUpdating:t=>{if(!t.key||t.newData.isDefault===void 0)return;let r=t.component.getDataSource().items().find(n=>n.isDefault);r&&(r.isDefault=!1),this.options.apsControlDisplayUserSettingsManager.updateUserSettings({defaultFilterId:t.newData.isDefault?t.key:void 0})},onRowRemoving:t=>{!t.key||this.deleteFilter(t.key)}}).dxDataGrid("instance")}createCurrentFilterTitle(e){return $("<div />").addClass("aps-filters__current-filter").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:!0}).dxTextBox("instance")}createNewFilterButton(){return $("<button />").addClass("aps-filters__add-new-filter").dxButton({text:"New Data Set",type:"normal",onClick:()=>{this.openNewFilterPopup()},icon:"plus"}).dxButton("instance")}createFilterPopup(){let e=$("<div />").appendTo("body"),t=!1;return e.dxPopup({container:this.options.owner.element(),shading:!1,resizeEnabled:!0,width:650,height:500,onShowing:r=>{this.filtersDropdownBox&&this.filtersDropdownBox.close()},onHiding:async r=>{if(!this.hasChanges||t){t=!1;return}r.cancel=!0,t=await this.confirmChangesLoss(),t&&(r.component.hide(),this.filtersDropdownBox&&this.filtersDropdownBox.open())}}).dxPopup("instance")}createFilterNameTextBox(){return $("<div />").dxTextBox({placeholder:"Enter Data Set Name..."}).dxTextBox("instance")}createFilterIsGlobalCheckbox(){return $("<div />").dxCheckBox({text:"Global data set"}).dxCheckBox("instance")}getFlatColumnsList(e,...t){let r=[];for(let n of e)if(n.columns&&n.columns.length>0){let o=this.getFlatColumnsList(n.columns);r=r.concat(o)}else{let o=$.extend({},n);if(o.dataType==="date"||o.dataType==="datetime"){let a=o.dataType==="datetime",s="dd MMM yy",d=a?"hh:mm, dd MMM yy":s,u=c=>{let p=c.split(", "),g=DevExpress.localization.parseDate(p[1],s)||null;if(g){let b=p[0].split(":");return g.setHours(parseInt(b[0])),g.setMinutes(parseInt(b[1])),g}else return null};o.format=d,o.editorTemplate=c=>$("<div />").dxDateBox({displayFormat:d,type:a?"datetime":"date",width:150,onValueChanged:({value:p})=>{c.setValue(DevExpress.localization.formatDate(p,d))},value:(a?u(c.value):DevExpress.localization.parseDate(c.value,d))||null}),o.filterOperations=["=","<>","<",">","<=",">=","isblank","isnotblank"],o.calculateFilterExpression=function(c){let p=[e,...t];return p[0]&&(a?p[0]=u(p[0]):p[0]=DevExpress.localization.parseDate(c,d)||null),this.defaultCalculateFilterExpression(...p)}}r.push(o)}return r.sort((n,o)=>{let a=(n.caption||"").toLowerCase(),s=(o.caption||"").toLowerCase();return a<s?-1:a>s?1:0})}createFilterBuilder(){return $("<div />").dxFilterBuilder({fields:this.getFlatColumnsList(this.options.owner.option("columns"))}).dxFilterBuilder("instance")}createFilterPopupContent(e){let t=$("<div />").height("100%"),r=$('<div class="aps-filters__name-container" />').height("36px");this.filterNameTextBox=this.createFilterNameTextBox(),this.filterBuilder=this.createFilterBuilder(),this.filterIsGlobalCheckbox=this.createFilterIsGlobalCheckbox(),this.filterNameTextBox.option("value",e&&e.name),this.filterNameTextBox.element().appendTo(r),this.filterIsGlobalCheckbox.option("value",e&&e.isGlobal),this.filterIsGlobalCheckbox.element().appendTo(r),this.filterIsGlobalCheckbox.option("disabled",!this.options.canCreateGlobalFilters),r.appendTo(t),this.filterBuilder.option("value",e&&e.filterState);let n=$("<div />").height("calc(100% - 36px)").appendTo(t);return this.filterBuilder.element().appendTo(n),n.dxScrollView({scrollByContent:!0}),t}createFilterPopupToolbarItems(e){return e?[this.createUpdateFilterPopupToolbarItem(),this.createSaveFilterAsNewPopupToolbarItem(),this.createResetFilterPopupToolbarItem(),this.createDeleteFilterPopupToolbarItem()]:[this.createSaveFilterPopupToolbarItem()]}createSaveFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Apply and Save",onClick:this.createNewFilter.bind(this),icon:"save"}}}createUpdateFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Apply and Update",onClick:()=>{!this.options.gridFiltersManager.currentFilter||this.updateFilter(this.options.gridFiltersManager.currentFilter)},icon:"save"}}}createSaveFilterAsNewPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Save As New",onClick:this.createNewFilter.bind(this),icon:"save"}}}createResetFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Reset",onClick:async()=>{!this.hasChanges||!this.filterBuilder||!this.options.gridFiltersManager.currentFilter||!await DevExpress.ui.dialog.confirm("Are you sure you want to reset unsaved changes?","Reset the data set")||this.resetChanges()},icon:"undo"}}}createDeleteFilterPopupToolbarItem(){return{toolbar:"bottom",widget:"dxButton",location:"before",options:{text:"Delete Data Set",onClick:async()=>{!this.options.gridFiltersManager.currentFilter||!await DevExpress.ui.dialog.confirm(`Are you sure you want to delete the "${this.options.gridFiltersManager.currentFilter.name}" data set?`,"Delete the data set")||(await this.deleteFilter(this.options.gridFiltersManager.currentFilterId),this.filterPopup.hide())},icon:"trash"}}}async openNewFilterPopup(){!await this.tryApplyFilter(void 0)||(this.updateFilterPopupContent(),this.filterPopup.show())}openEditFilterPopup(e){this.updateFilterPopupContent(e),this.filterPopup.show()}updateFilterPopupContent(e){let t=this.filterPopup.option("animation");this.filterPopup.option("animation",void 0),this.filterPopup.option("title",e?`Edit the "${e.name}" data set`:"Create a new data set"),this.filterPopup.option("contentTemplate",()=>this.createFilterPopupContent(e)),this.filterPopup.option("toolbarItems",this.createFilterPopupToolbarItems(e)),this.filterPopup.repaint(),this.filterPopup.option("animation",t)}async createNewFilter(){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let e=this.filterNameTextBox.option("value"),t=this.filterBuilder.option("value"),r=!1,n=this.filterIsGlobalCheckbox.option("value");if(!e)return;let o=await this.options.gridFiltersManager.createNewFilter(e,t,r,n);await this.loadFilterDropdownBoxData(),await this.applyFilter(o.id),O("Created",!0)}async updateFilter(e){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let t=this.filterNameTextBox.option("value"),r=this.filterBuilder.option("value"),n=this.filterIsGlobalCheckbox.option("value");!t||!await this.options.gridFiltersManager.updateFilter(e.id,{name:t,filterState:r,isGlobal:n})||(O("Updated",!0),await this.applyFilter(this.options.gridFiltersManager.currentFilter.id),await this.loadFilterDropdownBoxData())}async deleteFilter(e){await this.options.gridFiltersManager.deleteFilter(e),this.options.onFilterDeleted&&this.options.onFilterDeleted(e),await this.applyFilter(void 0),await this.loadFilterDropdownBoxData()}resetChanges(){this.filterNameTextBox.option("value",this.options.gridFiltersManager.currentFilter.name),this.filterBuilder.option("value",this.options.gridFiltersManager.currentFilter.filterState),this.filterIsGlobalCheckbox.option("value",this.options.gridFiltersManager.currentFilter.isGlobal)}async loadFilterDropdownBoxData(){if(!this.filtersDropdownBox)return;let[e,t]=await Promise.all([this.options.apsControlDisplayUserSettingsManager.getUserSettings(),this.options.gridFiltersManager.getFilters()]);if(e.defaultFilterId){let n=t.find(o=>o.id===e.defaultFilterId);n&&(n.isDefault=!0)}let r=new DevExpress.data.ArrayStore({key:"id",data:t});this.filtersDropdownBox.option("dataSource",r),this.filtersDataGrid&&this.filtersDataGrid.option("dataSource",r)}async confirmChangesLoss(){return await new Promise(e=>setTimeout(()=>e(),0)),!this.hasChanges||!this.filterPopup.option("visible")?!0:DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes")}};var Mt=class{constructor(e){this.$container=e.$container,this.cssClass=e.cssClass,this.maxFileSize=e.maxFileSize,this.acceptedFileTypes=e.acceptedFileTypes,this.selectButtonText=e.selectButtonText,this.allowedFileExtensions=e.allowedFileExtensions,this.onValueChanged=e.onValueChanged,this.onUploadStarted=e.onUploadStarted,this.onUploaded=e.onUploaded}render(){let e=$("<div />");this.cssClass&&e.addClass(this.cssClass),this.fileUploader=e.dxFileUploader({selectButtonText:this.selectButtonText,labelText:"",allowedFileExtensions:this.allowedFileExtensions,accept:this.acceptedFileTypes,uploadMode:"useForm",maxFileSize:this.maxFileSize,showFileList:!1,onValueChanged:t=>{var r;t.component.option("labelText",t.value[0]?t.value[0].name:""),(r=this.onValueChanged)==null||r.call(this,t)},onUploadStarted:t=>{var r;t.element.find(".dx-fileuploader-upload-button").hide(),(r=this.onUploadStarted)==null||r.call(this,t)},onUploaded:t=>{var r;(r=this.onUploaded)==null||r.call(this,t)}}).dxFileUploader("instance"),this.$container.append(this.fileUploader.element())}upload(e,t){return new Promise((r,n)=>{let o=new FormData,a=this.fileUploader.element().find("input")[0].files[0];o.append("file",a);for(let s in t)o.append(s,t[s]);$.ajax({url:e,type:"post",data:o,contentType:!1,processData:!1,success:s=>{s.RequestState===1?r(s.Data):n(s.Message)},error:s=>n("Unknown error")})})}};var ai=class extends ve{constructor(e){super();this.fileUploadUrl=e.fileUploadUrl,this.$container=e.$container,this.title=e.title,this.getTablesListUrl=e.getTablesListUrl,this.createTableUrl=e.createTableUrl,this.addRowsUrl=e.addRowsUrl,this.predefinedTable=e.predefinedTable,this.canChangeMode=e.predefinedImportFileMode===void 0,this.mode=e.predefinedImportFileMode!==void 0?e.predefinedImportFileMode:0,this.createTableButtonText=e.createTableButtonText||"Create Table",this.updateTableButtonText=e.updateTableButtonText||"Add New Rows",this.createTableModeText=e.createTableModeText||"Create Table",this.updateTableModeText=e.updateTableModeText||"Add New Rows"}show(){this.popup=$("<div />").appendTo(this.$container).dxPopup({showTitle:!0,title:this.title,visible:!1,dragEnabled:!1,resizeEnabled:!1,showCloseButton:!0,closeOnOutsideClick:!1,fullScreen:!0,maxWidth:1300,maxHeight:800,contentTemplate:e=>{let t=$("<div />");this.form=this.createForm(),t.append(this.form.element()),t.dxScrollView({width:"100%",height:"100%"}).appendTo(e)},toolbarItems:[{toolbar:"bottom",widget:"dxButton",location:"after",options:{text:this.getActionButtonText(),type:"success",onInitialized:e=>{this.actionButton=e.component},onClick:async()=>{this.mode===0?this.createTable():this.addRowsToTable()}}},{toolbar:"bottom",widget:"dxButton",location:"after",options:{text:"Cancel",onClick:()=>this.popup.hide()}}]}).dxPopup("instance"),this.popup.show(),this.onModeSwitching()}dispose(){this.popup&&this.popup.dispose()}createForm(){return $("<div>").dxForm({showColonAfterLabel:!0,labelLocation:"top",colCountByScreen:{md:4,sm:1},screenByWidth:t=>t<1256?"sm":"md",items:[{dataField:"Mode",itemType:"simple",template:(t,r)=>{this.createModeSwitcher(r)}},{dataField:"Schema",editorOptions:{disabled:!this.canChangeMode},validationRules:[{type:"required"}]},{dataField:"Table",editorOptions:{disabled:!this.canChangeMode},validationRules:[{type:"required"}]},{dataField:"TableSelector",label:{text:"Table"},editorType:"dxSelectBox",visible:!1,colSpan:2,editorOptions:{dataSource:new DevExpress.data.DataSource({store:te({loadUrl:this.getTablesListUrl,loadParams:{contextName:"",tablesOnly:!0,isWarehouseContext:!0},loadMethod:"post",notifyError:!1}),paginate:!1,sort:"this"}),searchEnabled:!0},validationRules:[{type:"required"}]},{dataField:"Source File",itemType:"simple",template:(t,r)=>{this.createFilesUploader(r)}},{dataField:"Columns Selector",label:{visible:!1},colSpan:4,itemType:"simple",template:(t,r)=>{this.createDataGrid(r)}}]}).dxForm("instance")}createModeSwitcher(e){$("<div />").dxButtonGroup({items:[{text:this.createTableModeText,icon:"inserttable",value:0},{text:this.updateTableModeText,icon:"insertrowbelow",value:1}],keyExpr:"value",disabled:!this.canChangeMode,stylingMode:"outlined",selectionMode:"single",selectedItemKeys:[this.mode],onItemClick:t=>{this.mode=t.itemData.value,this.onModeSwitching()}}).appendTo(e)}createFilesUploader(e){this.fileUploader=new Mt({$container:e,cssClass:"table-creator__upload",maxFileSize:10*1e6,acceptedFileTypes:".xls, .xlsx",allowedFileExtensions:[".xls",".xlsx"],selectButtonText:"Select Excel file",onValueChanged:async()=>{this.dataGrid.beginCustomLoading("Parsing selected file..."),this.fileUploader.upload(this.fileUploadUrl).then(t=>{if(t){this.setRowsCount(t.RowsCount);let r=new DevExpress.data.DataSource({store:{type:"array",key:"Id",data:t.Columns},paginate:!1});this.dataGrid.option("dataSource",r)}}).catch(t=>{O(`Parsing Error : ${t}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}),this.fileUploader.render()}createDataGrid(e){let t={noDataText:"Select Excel File",hoverStateEnabled:!0,searchPanel:{visible:!1},headerFilter:{visible:!1},filterRow:{visible:!1},sorting:{mode:"none"},paging:{pageSize:1e4,enabled:!1},editing:{allowUpdating:!0,mode:"cell"},selection:{mode:"none"},columns:[{dataField:"Id",visible:!1},{dataField:"Selected",dataType:"boolean",visible:this.mode===0},{dataField:"IsKeyColumn",dataType:"boolean",visible:this.mode===0},{dataField:"Name",caption:"Column Name"},{dataField:"Type",allowEditing:!1},{dataField:"IsNullable",allowEditing:this.mode===0&&this.canChangeMode,setCellValue:(r,n)=>{r.IsNullable=n,n&&(r.IsKeyColumn=!1)}}],remoteOperations:!1,onToolbarPreparing:r=>{r.toolbarOptions.items.push({template:()=>$("<div>").append($("<span>").addClass("table-creator__table-header").text("Parsed File Metadata")),location:"before"},{template:()=>(this.rowsCounter=$("<span>").text("1000"),this.rowsCounterContainer=$("<div>").append($("<span>").text("Rows Count: "),this.rowsCounter).hide(),this.rowsCounterContainer),location:"after"})},onEditorPreparing:r=>{if(r.parentType==="dataRow"&&r.dataField==="IsKeyColumn"){let n=r.editorOptions;n.disabled=r.row.data.IsNullable}}};this.dataGrid=de("<div />",{options:t,summaryColumn:"Name",isFullScreen:!1,setDefaultColumnWidth:!1}),e.append(this.dataGrid.element())}createTable(){if(this.form.validate().isValid){let t=this.dataGrid.getDataSource();t||O("Select file with data",!1);let r=t.items();if(!this.areColumnsValid(r))O("At least 1 key column must be set",!1);else{let n={schema:this.form.option("formData").Schema,table:this.form.option("formData").Table,columns:JSON.stringify(r)};this.dataGrid.beginCustomLoading("Creating and filling DB table..."),this.fileUploader.upload(this.createTableUrl,n).then(o=>{o===!0?(this.popup.hide(),O(`The table [${n.schema}].[${n.table}] has been created`,!0),this.emit(ai.TABLE_UPDATED_EVENT)):O("The table has not been created",!1)}).catch(o=>{O(`Table creating error: ${o}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}}addRowsToTable(){if(this.form.validate().isValid){let t=this.dataGrid.getDataSource();t||O("Select file with data",!1);let r=t.items(),n={table:this.form.option("formData").TableSelector,columns:JSON.stringify(r)};this.dataGrid.beginCustomLoading("Adding rows to DB table..."),this.fileUploader.upload(this.addRowsUrl,n).then(o=>{o===!0?(this.popup.hide(),O(`The table ${n.table} has been updated`,!0),this.emit(ai.TABLE_UPDATED_EVENT)):O("The table has not been updated",!1)}).catch(o=>{O(`Table updating error: ${o}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}onModeSwitching(){let e=this.mode===0;this.actionButton.option("text",this.getActionButtonText()),this.dataGrid.columnOption("IsKeyColumn","visible",e),this.dataGrid.columnOption("IsNullable","visible",e),this.canChangeMode?(this.form.itemOption("Schema","visible",e),this.form.itemOption("Table","visible",e),this.form.itemOption("TableSelector","visible",!e)):(this.form.itemOption("Schema","visible",!0),this.form.updateData("Schema",this.predefinedTable.schema),this.form.itemOption("Table","visible",!0),this.form.updateData("Table",this.predefinedTable.table),this.form.itemOption("TableSelector","visible",!1))}getActionButtonText(){return this.mode===0?this.createTableButtonText:this.updateTableButtonText}areColumnsValid(e){return e.filter(t=>t.Selected).some(t=>t.IsKeyColumn)}setRowsCount(e){this.rowsCounterContainer.show(),this.rowsCounter.text(e)}},Ne=ai;Ne.TABLE_UPDATED_EVENT="file-importer-table-updated-event";var er=class{constructor(e){this.onGridToolbarPreparing=e=>{let t=e.toolbarOptions&&e.toolbarOptions.items;if(!t)return;let r=[this.displaysToolbarItem];this.importFileOptions&&this.importFileOptions.mode!==0&&r.push(this.importFileToolbarItem),t.splice(1,0,...r)};this.options=e,this.gridDisplaysManager=e.gridDisplaysManager,this.gridViewsManager=e.gridViewsManager,this.gridFiltersManager=e.gridFiltersManager,this.importFileOptions=e.importFileOptions,this.gridDisplaysManager.onDisplaisLoaded=t=>{let r=new DevExpress.data.ArrayStore({key:"Id",data:t});this.displaysDropdownBox&&this.displaysDropdownBox.option("dataSource",r),this.dataGrid&&this.dataGrid.option("dataSource",r),this.dataGrid&&this.dataGrid.endCustomLoading()},this.gridDisplaysManager.onDisplayChanged=t=>{this.displaysDropdownBox&&this.displaysDropdownBox.option("value",t?t.Id:null),this.currentDisplayTitle&&this.currentDisplayTitle.option("value",t?t.Name:null),this.currentDisplayTitle&&this.currentDisplayTitle.option("disabled",!t),this.saveAsButton&&this.saveAsButton.option("disabled",!t),this.saveButton&&this.saveButton.option("disabled",!t),this.dataGrid&&(t?this.dataGrid.selectRows([t.Id],!1):this.dataGrid.deselectAll())},this.integrateToGrid(this.options.owner)}integrateToGrid(e){let t=e.option("onToolbarPreparing");e.option("onToolbarPreparing",r=>{t&&t(r),this.onGridToolbarPreparing(r)})}createDataGrid(e){return $("<div />").dxDataGrid({dataSource:e.getDataSource(),remoteOperations:!1,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:this.options.editMode,mode:"row",useIcons:!0,texts:{confirmDeleteMessage:"Are you sure you want to delete this display?"}},loadPanel:{shading:!0},allowColumnResizing:!0,columnAutoWidth:!0,wordWrapEnabled:!0,columns:[{dataField:"Name",caption:"Display"},{dataField:"FilterId",caption:"Data Set",lookup:{valueExpr:"id",displayExpr:"name"}},{dataField:"ViewId",caption:"View",lookup:{valueExpr:"id",displayExpr:"name"}}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,focusStateEnabled:!1,focusedRowEnabled:!1,showBorders:!1,height:this.options.editMode?"calc(100% - 51px)":"100%",scrolling:{mode:"standard"},paging:{enabled:!1},noDataText:"No displays",onInitialized:async t=>{let r=await this.gridFiltersManager.getFilters(),n=await this.gridViewsManager.getViews();t.component.columnOption("FilterId","lookup.dataSource",r),t.component.columnOption("ViewId","lookup.dataSource",n)},onCellClick:async t=>{t.rowType==="data"&&e.option("value",t.data.Id)},onRowRemoving:async t=>{this.dataGrid.beginCustomLoading("Loading"),await this.gridDisplaysManager.deleteDisplay(t.key)}}).dxDataGrid("instance")}createDisplaysToolbarItem(){let e={valueExpr:"Id",displayExpr:"Name",showClearButton:!0,placeholder:"None",width:200,onInitialized:r=>{this.displaysDropdownBox=r.component,this.gridDisplaysManager.getDisplays()},onValueChanged:async r=>{let n=this.gridDisplaysManager.currentDisplay,o=n&&n.FilterId!==this.gridFiltersManager.currentFilterId,a=n&&n.ViewId!==this.gridViewsManager.currentViewId;await(o||a?this.confirmChangesLoss():Promise.resolve(!0))&&(this.gridDisplaysManager.currentDisplayId=r.value)}},t={dropDownOptions:{width:800},contentTemplate:this.options.editMode?r=>{this.dataGrid=this.createDataGrid(r.component),this.currentDisplayTitle=this.createCurrentDisplayTitle(r.component),this.saveButton=this.createSaveViewButton(),this.saveAsButton=this.createSaveViewAsButton();let n=$("<div />").addClass("aps-displays__header").append(this.currentDisplayTitle.element()).append(this.saveButton.element()).append(this.saveAsButton.element()),o=$("<div />").height("100%");return this.options.editMode&&o.append(n),o.append(this.dataGrid.element()),o}:void 0,onOpened:()=>{this.saveAsButton&&this.saveAsButton.option("disabled",!this.gridFiltersManager.currentFilterId),this.saveButton&&this.saveButton.option("disabled",!this.gridDisplaysManager.currentDisplay)}};return{widget:this.options.editMode?"dxDropDownBox":"dxSelectBox",location:"after",text:"Displays",cssClass:"aps-displays__toolbar-item",options:this.options.editMode?$.extend(e,t):e}}createImportFileToolbarItem(){return{location:"after",widget:"dxButton",options:{icon:"upload",hint:"Import file",height:30,stylingMode:"text",onClick:()=>{this.fileImporter&&this.fileImporter.dispose(),this.fileImporter=new Ne({$container:this.options.owner.element().parent(),title:"Import File to CDM",createTableUrl:this.importFileOptions.createTableUrl,addRowsUrl:this.importFileOptions.addRowsUrl,fileUploadUrl:this.importFileOptions.fileUploadUrl,predefinedImportFileMode:this.getPredefinedImportFileMode(this.importFileOptions.mode),predefinedTable:this.importFileOptions.predefinedTable,createTableButtonText:"Replace All Rows",createTableModeText:"Replace Rows"}),this.fileImporter.on(Ne.TABLE_UPDATED_EVENT,()=>this.options.owner.refresh()),this.fileImporter.show()},onContentReady:e=>{e.element.find(".dx-button-content").css({paddingTop:5,paddingBottom:5})}}}}getPredefinedImportFileMode(e){switch(e){case 1:return 1;case 2:return 0;default:throw new Error("Unsupported mode")}}createCurrentDisplayTitle(e){return $("<div />").addClass("aps-displays__current-display").dxTextBox({value:e.option("text")||e.option("placeholder"),disabled:!this.gridDisplaysManager.currentDisplay}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-displays__save-display").dxButton({text:"Save",type:"normal",disabled:!this.gridDisplaysManager.currentDisplay,onClick:()=>{this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.updateCurrentDisplay(this.currentDisplayTitle.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId)},icon:"save"}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-display__save-display-as").dxButton({text:"Save As",type:"normal",disabled:!this.gridFiltersManager.currentFilterId,onClick:()=>this.createSaveAsDialog(),icon:"save"}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),t=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"Display Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),r=t.dxTextBox("instance"),n=t.dxValidator("instance");return r.element().appendTo(e),_e({title:"Create New Display",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async o=>{!n.validate().isValid||(this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.createNewDisplay(r.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId),o())}},{text:"Cancel",onClick:o=>o()})}async confirmChangesLoss(){return DevExpress.ui.dialog.confirm("You have unsaved changes that will be lost if you close this popup. Do you want to close the popup and not save changes?","Unsaved changes")}get displaysToolbarItem(){return this._displaysToolbarItem||(this._displaysToolbarItem=this.createDisplaysToolbarItem()),this._displaysToolbarItem}get importFileToolbarItem(){return this._importFileToolbarItem||(this._importFileToolbarItem=this.createImportFileToolbarItem()),this._importFileToolbarItem}};var tr=class{constructor(e){this._currentDisplayId=0;this.getDisplayById=e=>!e||!this.displays?null:this.displays.find(t=>t.Id===e);this.loadDataUrl=e.loadDataUrl,this.insertDataUrl=e.insertDataUrl,this.updateDataUrl=e.updateDataUrl,this.deleteDataUrl=e.deleteDataUrl,this.eventHandlers={changed:[],loaded:[]}}async loadDisplays(){return this.displays=await se(this.loadDataUrl),this.onDisplaisLoadedPrivate(),this.displays}async getDisplays(){return this.displays||await this.loadDisplays()}async createNewDisplay(e,t,r){let n={Id:0,Name:e,FilterId:t,ViewId:r};await x(this.insertDataUrl,"POST",n),await this.loadDisplays()}async deleteDisplay(e){await x(this.deleteDataUrl,"DELETE",{id:e}),await this.loadDisplays()}updateCurrentDisplay(e,t,r){return this.updateDisplay(this.currentDisplay.Id,e,t,r)}async updateDisplay(e,t,r,n){await x(this.updateDataUrl,"PUT",{id:e,name:t,filterId:r,viewId:n}),await this.loadDisplays()}onDisplayChangedPrivate(){this.eventHandlers.changed.forEach(e=>e(this.currentDisplay))}onDisplaisLoadedPrivate(){this.eventHandlers.loaded.forEach(e=>e(this.displays))}get currentDisplayId(){return this._currentDisplayId}set currentDisplayId(e){this._currentDisplayId=e,this.onDisplayChangedPrivate()}get currentDisplay(){return this.getDisplayById(this._currentDisplayId)}set onDisplayChanged(e){this.eventHandlers.changed.push(e)}set onDisplaisLoaded(e){this.eventHandlers.loaded.push(e)}};var ir=class{constructor(e){this.onGridEditorPreparing=e=>{if(!e.component||!e.editorOptions||e.parentType!=="dataRow"||!e.dataField||!e.row||!e.row.key)return;let t=e.dataField,r=e.row.key,n=e.editorOptions.onValueChanged;e.editorOptions.onValueChanged=o=>{n(o),this.updateMultipleRows(t,r,o.value)}};this.options=S(w({},e),{autoIntegration:e.autoIntegration!==void 0&&e.autoIntegration!==null?e.autoIntegration:!0}),this.options.autoIntegration&&this.integrateToGrid(this.options.owner)}integrateToGrid(e){e.option("selection",{mode:"multiple"}),e.on("editorPreparing",this.onGridEditorPreparing)}async updateMultipleRows(e,t,r){let n=await this.options.owner.getSelectedRowKeys();if(!n.length)return;let o=n.findIndex(a=>a===t);o<0||n.length===1||(n.splice(o,1),n.forEach(a=>{this.options.owner.cellValue(this.options.owner.getRowIndexByKey(a),e,r)}))}};var rr=class{constructor(e){this.defaultUserSettings={defaultFilterId:void 0,defaultViewId:V.defaultControlDisplayView.id};this.isLatestLoadedUserSettingsExpired=!0;this.options=w({},e),this.options.loadedUserSettings&&(this.latestLoadedUserSettings=this.options.loadedUserSettings),this.startAutoCacheResettingTimer()}get latestLoadedUserSettings(){return this._latestLoadedUserSettings}set latestLoadedUserSettings(e){this._latestLoadedUserSettings=e,this.isLatestLoadedUserSettingsExpired=!1}async getUserSettings(){if(!this.isLatestLoadedUserSettingsExpired)return this.latestLoadedUserSettings;try{this.latestLoadedUserSettings=await this.loadUserSettings()}catch(e){console.error(e)}return this.latestLoadedUserSettings}async updateUserSettings(e){try{this.latestLoadedUserSettings=await this.updateUserSettingsInternal(e)}catch(t){console.error(t)}return this.latestLoadedUserSettings}startAutoCacheResettingTimer(){this.autoResettingCacheTimerId=window.setInterval(()=>{this.isLatestLoadedUserSettingsExpired=!0},5e3)}stopAutoCacheResettingTimer(){window.clearInterval(this.autoResettingCacheTimerId)}},si=class extends rr{async loadUserSettings(){let e=localStorage.getItem(si.userSettingsStorageKey);return e?JSON.parse(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),r=w(w({},t),e);return localStorage.setItem(si.userSettingsStorageKey,JSON.stringify(r)),r}},xn=si;xn.userSettingsStorageKey="aps:control-display:user-settings";var nr=class extends rr{constructor(e){super(e);this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl}async loadUserSettings(){let e=await se(this.loadDataUrl);return e?this.mapControlDisplayUserSettingsDtoToModel(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),r=w(w({},t),e),n=await x(this.updateDataUrl,"PUT",this.mapControlDisplayUserSettingsModelToDto(r));return this.mapControlDisplayUserSettingsDtoToModel(n)}mapControlDisplayUserSettingsModelToDto(e){return{DefaultFilterId:e.defaultFilterId,DefaultViewId:e.defaultViewId}}mapControlDisplayUserSettingsDtoToModel(e){return{defaultFilterId:e.DefaultFilterId,defaultViewId:e.DefaultViewId}}};function wn(i){let e="",t=i.filter(n=>n.visible),r=t.filter(n=>n.visibleIndex!==null&&n.visibleIndex!==void 0);return r.length?e=r.sort((n,o)=>n.visibleIndex-o.visibleIndex)[0].dataField:e=t[0]&&t[0].dataField||"",e}var Ot=class{constructor(e){this.onViewApplied=e=>{this.clearFilterRowAfterViewSwitching()};this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.pageTitle=e.pageTitle,this.exportFileName=e.exportFileName,this.userName=e.userName,this.userConfigUrl=e.userConfigUrl,this.controlLogsUrl=e.controlLogsUrl,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.gridFiltersManagerOptions=e.gridFiltersManagerOptions,this.gridViewsManagerOptions=e.gridViewsManagerOptions,this.gridDisplaysManagerOptions=e.gridDisplaysManagerOptions,this.remoteControlDisplayUserSettingsManagerLoadOptions=e.remoteControlDisplayUserSettingsManagerLoadOptions,this.importFileOptions=e.importFileOptions,this.$container.addClass(["aps-grid","control-display-grid"])}render(){x(this.userConfigUrl).then(e=>{let t=new Tt(this.gridFiltersManagerOptions),r=new V(this.gridViewsManagerOptions),n=new tr(this.gridDisplaysManagerOptions);this.mainGrid=this.createMainGrid(e.FieldsConfiguration);let o=e.CanCreateDisplays&&e.CanCreateViews&&e.CanCreateFilters;(o||e.CanApplayDisplays)&&(this.gridDisplaysToolbarComponent=new er({owner:this.mainGrid,editMode:o,gridFiltersManager:t,gridViewsManager:r,gridDisplaysManager:n,importFileOptions:this.importFileOptions})),this.gridViewsToolbarComponent=new Yi({owner:this.mainGrid,onViewApplied:this.onViewApplied,onViewDeleted:async()=>{await n.loadDisplays()},autoIntegration:!0,gridViewsManager:r,canCreateGlobalViews:e.CanCreateGlobalViews,visible:e.CanCreateViews}),this.gridFiltersToolbarComponent=new Zi({apsControlDisplayUserSettingsManager:new nr({userId:this.userName,loadDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.loadDataUrl,updateDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.updateDataUrl}),owner:this.mainGrid,onFilterDeleted:async a=>{await n.loadDisplays()},autoIntegration:!0,gridFiltersManager:t,canCreateGlobalFilters:e.CanCreateGlobalFilters,visible:e.CanCreateFilters}),this.multipleEditingDataGridPlugin=new ir({owner:this.mainGrid}),n.onDisplayChanged=async a=>{a?(await this.gridFiltersToolbarComponent.applyFilter(a.FilterId,!0),await this.gridViewsToolbarComponent.applyView(a.ViewId)):(this.gridFiltersToolbarComponent.applyFilter(void 0,!0),await this.gridViewsToolbarComponent.applyView(V.defaultControlDisplayView.id))}})}hasPermisson(e,t){return e&t}buildTree(e){let t="__GROUP__",r=e.reduce((o,a)=>(a.Columns=[],a.GroupField=a.GroupField?`${t}${a.GroupField}`:null,o[a.Name]=a,o),{});r=e.filter(o=>o.GroupField).map(o=>o.GroupField).filter((o,a,s)=>s.indexOf(o)===a).reduce((o,a)=>{let s=a.replace(t,""),l={Name:a,Label:s,Columns:[],GroupField:r[s]&&r[s].GroupField&&r[s].GroupField!==a?r[s].GroupField:null};return o[a]=l,o},r);let n=[];for(let o in r)if(r.hasOwnProperty(o)){let a=r[o];a.GroupField?r[a.GroupField].Columns.push(a):n.push(a)}return n}renderDisplayType(e,t){e.type===1&&(t.cellTemplate=(r,n)=>{let o=String(n.value),a=e.data.find(s=>String(s.value)===o);a?$("<div>").css({"text-align":"center"}).attr("title",a.title).append($("<img>",{src:a.image})).appendTo(r):$("<div />").css({"text-align":"center"}).text(n.value).appendTo(r)},t.editCellTemplate=(r,n)=>{$("<div />").dxSelectBox({dataSource:e.data,displayValue:"title",itemTemplate:o=>$("<div />").css({"text-align":"center"}).attr("title",o.title).append($("<img>",{src:o.image})).appendTo(r),fieldTemplate:(o,a)=>{let s=e.data.find(u=>parseInt(u.value)===n.value),l=$("<div />").addClass("item-name"),d=$("<div />").addClass("aps-icon-editor__custom-item").append($("<img>",{src:s?s.image:""}).attr("title",s?s.title:"")).append(l);l.dxTextBox({value:"",readOnly:!0}),a.append(d)},onValueChanged:({value:o,component:a})=>{n.setValue(parseInt(o.value)),a.blur()},value:n.value!==null&&n!==void 0&&n.value.toString(),selectedItem:e.data.find(o=>parseInt(o.value)===n.value)}).appendTo(r)},t.allowSearch=!1,t.allowFiltering=!1,t.allowHeaderFiltering=!0,t.allowGrouping=!1),e.type===2&&(t.editCellTemplate=(r,n)=>{$("<div />").dxSelectBox({dataSource:e.data.map(o=>o.value).sort(),acceptCustomValue:!0,showClearButton:!0,onValueChanged:({value:o,component:a})=>{n.setValue(o||""),a.blur()},value:n.value}).appendTo(r)})}configureColumn(e){let t=e.Label||e.Name,r=e.ToolTip||t,n=e.Columns.length?{caption:t,columns:e.Columns.map(o=>this.configureColumn(o))}:{dataField:e.Name,dataType:e.Type,caption:t,headerCellTemplate:ye(t,r),visible:e.IsDefaultViewField,visibleIndex:e.Order,allowFixing:!1,allowEditing:!!this.hasPermisson(e.Permissions,4),width:e.Width,hidingPriority:e.HidingOrder};if(e.DisplayType){let o=JSON.parse(e.DisplayType);if(o.type===1){let a=o.data.map(s=>({text:s.title,value:s.value}));a.splice(0,0,{text:"Blank",value:null}),n.headerFilter={dataSource:a}}this.renderDisplayType(o,n)}return n}configureColumns(e){return e=e.filter(r=>this.hasPermisson(r.Permissions,1)),e=this.buildTree(e),e.map(r=>this.configureColumn(r))}createMainGrid(e){let t=e.some(a=>a.IsKeyColumn),r=this.configureColumns(e),n=wn(r),o={dataSource:this.createMainGridDataSource(e),editing:{allowUpdating:t,allowAdding:!1,allowDeleting:!1,mode:"batch"},scrolling:{mode:"virtual",preloadEnabled:!0},remoteOperations:!0,pager:{visible:!1},height:this.isStandalonePage?void 0:"100%",columnChooser:{enabled:!0,mode:"dragAndDrop"},columnFixing:{enabled:!0},filterPanel:{visible:!0,texts:{createFilter:"None"}},summary:{totalItems:[{summaryType:"count",column:n}]},allowColumnResizing:!0,columnHidingEnabled:!1,hoverStateEnabled:!0,columns:r,allowColumnReordering:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},masterDetail:t?{enabled:!0,template:(a,s)=>{let l={};e.filter(d=>d.IsKeyColumn).forEach(d=>l[d.Name]=s.data[d.Name]),$("<div>").dxDataGrid({dataSource:{store:te({loadUrl:`${this.controlLogsUrl}?key=${JSON.stringify(l)}`})},showBorders:!0,columns:[{dataField:"User",width:200},{dataField:"CreatedAt",caption:"Date",dataType:"date",format:"shortDateShortTime",width:200},{dataField:"Changes",cellTemplate:(d,u)=>{let c=u.data.Changes.map(p=>`<div class='aps-control-log'>
3
3
  <span class='aps-control-log__field'>${p.Field}</span>
4
4
  <span class='aps-control-log__old-value'>${p.OldValue}</span>
5
5
  \u2192
6
6
  <span class='aps-control-log__new-value'>${p.NewValue}</span>
7
- </div>`).join("");$(`<div class='aps-control-logs'>${c}</div>`).appendTo(d)}}]}).appendTo(a)}}:void 0,onContentReady:a=>{!a.component||this.prepareFilterPanel(a.component)},onEditorPreparing:a=>{if(a.parentType!=="dataRow")return;let s=e.find(d=>d.Name===a.dataField);if(!s)return;let l=!this.hasPermisson(s.Permissions,4);if(a.editorOptions.readOnly=l,!l&&s.Type==="string"){let d=a.setValue;a.setValue=u=>{d(u.trim())}}},onCellPrepared:a=>{if(a.rowType==="data"){let s=e.find(l=>l.Name===a.column.dataField);s&&!this.hasPermisson(s.Permissions,4)&&$(a.cellElement).addClass("aps-grid__disabled-cell")}},onRowExpanded:a=>{let s=a.component.getRowIndexByKey(a.key)+1;a.component.getCellElement(s,0).parent().find(".dx-master-detail-cell").find(".dx-datagrid").first().parent().dxDataGrid("instance").refresh()}};return de(`#${this.$container.attr("id")}`,{options:o,isFullScreen:this.isStandalonePage,setDefaultColumnWidth:!0,exportFileName:this.exportFileName,title:this.pageTitle,disableSummaryColumnDetection:!0})}createMainGridDataSource(e){return{store:te({key:e.filter(i=>i.IsKeyColumn).map(i=>i.Name),loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl})}}prepareFilterPanel(e){let i=e.element().find(".dx-datagrid-filter-panel"),r=i.find(".dx-icon-filter"),n=i.find(".dx-datagrid-filter-panel-text");r.off("click"),n.off("click")}initRowsCountSummary(e){let i=e.getVisibleColumns().find(a=>!!a.dataField);if(!i)return;let r="RowsCount",n=e.option("summary.totalItems")||[],o=n.find(a=>a&&a.name===r);o&&o.column===i.dataField||(o?o.column=i.dataField:n.push({name:r,column:i.dataField,summaryType:"count",alignment:"left"}),this.mainGrid.option("summary.totalItems",n))}clearFilterRowAfterViewSwitching(){let e=()=>{let i={};(this.gridViewsToolbarComponent.options.gridStateManager.currentSavedGridState.columns||this.gridViewsToolbarComponent.options.owner.option("columns")).filter(n=>n.visibleIndex&&(n.filterValue||n.filterValues)).forEach(n=>i[n.visibleIndex]=n),$('td [aria-label*="Filter cell"]').filter(n=>!i[n]).val(""),this.mainGrid.off("contentReady",e)};this.mainGrid.on("contentReady",e)}};function Te(){return Te=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t},Te.apply(this,arguments)}var ja={"[object Array]":"array","[object Date]":"date","[object Object]":"object","[object String]":"string","[object Null]":"null"},li=function(t){var e=Object.prototype.toString.call(t);return typeof t=="object"?ja[e]||"object":typeof t};var X=function(t){return t!=null},C=function(t){return typeof t=="function"},we=function(t){return typeof t=="string"},Ie=function(t){return typeof t=="number"&&isFinite(t)||!isNaN(t-parseFloat(t))},re=function(t){return li(t)==="object"},In=function(t){var e;for(e in t)return!1;return!0},K=function(t){if(!t||Object.prototype.toString.call(t)!=="[object Object]")return!1;var e=Object.getPrototypeOf(t),i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof i=="function"&&Object.toString.call(i)===Object.toString.call(Object)};var Y=function(t){return t!=null&&t===t.window};var or=function(t){return t&&C(t.then)},di=function(t){return t&&C(t.done)&&C(t.fail)};var dt=(t,e)=>{if(Array.isArray(t))return t.map(e);var i=[];for(var r in t)i.push(e(t[r],r));return i},A=(t,e)=>{if(!!t){if("length"in t)for(var i=0;i<t.length&&e.call(t[i],i,t[i])!==!1;i++);else for(var r in t)if(e.call(t[r],r,t[r])===!1)break;return t}};var qa=function(){},ar=function(t){return typeof console>"u"||!C(console[t])?qa:console[t].bind(console)},ui={info:ar("info"),warn:ar("warn"),error:ar("error")},ah=function(){function t(e,i){if(!e)throw new Error(i)}return{assert:t,assertParam:function(e,i){t(e!=null,i)}}}();var bn=function(t,e,i){t=t||{};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=e[r];(!(r in t)||i)&&(t[r]=n)}return t},z=function t(e){e=e||{};var i=1,r=!1;for(typeof e=="boolean"&&(r=e,e=arguments[1]||{},i++);i<arguments.length;i++){var n=arguments[i];if(n!=null)for(var o in n){var a=e[o],s=n[o],l=!1,d=void 0;o==="__proto__"||o==="constructor"||e===s||(r&&s&&(K(s)||(l=Array.isArray(s)))?(l?d=a&&Array.isArray(a)?a:[]:d=a&&K(a)?a:{},e[o]=t(r,d,s)):s!==void 0&&(e[o]=s))}}return e};var ph=function(){var t=[new RegExp("&","g"),new RegExp('"',"g"),new RegExp("'","g"),new RegExp("<","g"),new RegExp(">","g")];return function(e){return String(e).replace(t[0],"&amp;").replace(t[1],"&quot;").replace(t[2],"&#39;").replace(t[3],"&lt;").replace(t[4],"&gt;")}}();function sr(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];return C(t)?t(...i):(i.forEach((n,o)=>{we(n)&&(n=n.replace(/\$/g,"$$$$"));var a=new RegExp("\\{"+o+"\\}","gm");t=t.replace(a,n)}),t)}var ch=function(){var t=/\s/g;return function(e){return!e||!e.replace(t,"")}}();var Dn="21.1.6";var Xa="http://js.devexpress.com/error/"+Dn.split(".").slice(0,2).join("_")+"/";function pi(t,e){var i={ERROR_MESSAGES:z(e,t),Error:function(){return a([].slice.call(arguments))},log:function(l){var d="log";/^E\d+$/.test(l)?d="error":/^W\d+$/.test(l)&&(d="warn"),ui[d](d==="log"?l:r([].slice.call(arguments)))}};function r(l){var d=l[0];return l=l.slice(1),o(d,n(d,l))}function n(l,d){return d=[i.ERROR_MESSAGES[l]].concat(d),sr.apply(this,d).replace(/\.*\s*?$/,"")}function o(l,d){return sr.apply(this,[`{0} - {1}. See:
8
- {2}`,l,d,s(l)])}function a(l){var d=l[0];l=l.slice(1);var u=n(d,l),c=s(d),p=o(d,u);return z(new Error(p),{__id:d,__details:u,url:c})}function s(l){return Xa+l}return i}var ne=pi({E0001:"Method is not implemented",E0002:"Member name collision: {0}",E0003:"A class must be instantiated using the 'new' keyword",E0004:"The NAME property of the component is not specified",E0005:"Unknown device",E0006:"Unknown endpoint key is requested",E0007:"'Invalidate' method is called outside the update transaction",E0008:"Type of the option name is not appropriate to create an action",E0009:"Component '{0}' has not been initialized for an element",E0010:"Animation configuration with the '{0}' type requires '{1}' configuration as {2}",E0011:"Unknown animation type '{0}'",E0012:"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later",E0013:"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later",E0014:"The 'release' method shouldn't be called for an unlocked Lock object",E0015:"Queued task returned an unexpected result",E0017:"Event namespace is not defined",E0018:"DevExpress.ui.DevExpressPopup widget is required",E0020:"Template engine '{0}' is not supported",E0021:"Unknown theme is set: {0}",E0022:"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts",E0023:"Template name is not specified",E0024:"DevExtreme bundle already included",E0025:"Unexpected argument type",E0100:"Unknown validation type is detected",E0101:"Misconfigured range validation rule is detected",E0102:"Misconfigured comparison validation rule is detected",E0103:"validationCallback of an asynchronous rule should return a jQuery or a native promise",E0110:"Unknown validation group is detected",E0120:"Adapter for a DevExpressValidator component cannot be configured",E0121:"The 'customItem' field of the 'onCustomItemCreating' function's parameter should contain a custom item or Promise that is resolved after the item is created.",W0000:"'{0}' is deprecated in {1}. {2}",W0001:"{0} - '{1}' option is deprecated in {2}. {3}",W0002:"{0} - '{1}' method is deprecated in {2}. {3}",W0003:"{0} - '{1}' property is deprecated in {2}. {3}",W0004:"Timeout for theme loading is over: {0}",W0005:"'{0}' event is deprecated in {1}. {2}",W0006:"Invalid recurrence rule: '{0}'",W0007:"'{0}' Globalize culture is not defined",W0008:"Invalid view name: '{0}'",W0009:"Invalid time zone name: '{0}'",W0010:"{0} is deprecated in {1}. {2}",W0011:"Number parsing is invoked while the parser is not defined",W0012:"Date parsing is invoked while the parser is not defined",W0013:"'{0}' file is deprecated in {1}. {2}",W0014:"{0} - '{1}' type is deprecated in {2}. {3}",W0015:"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.",W0016:'The "{0}" option does not accept the "{1}" value since v.{2}. {3}.'});var Ya=function(t,e,i){return function(){var r=this.callBase;this.callBase=t[e];try{return i.apply(this,arguments)}finally{this.callBase=r}}},Za=function(t){var e=function(){};return e.prototype=t.prototype,new e},es=function(t){var e,i,r;if(!t)return this;for(i in t)r=t[i],e=typeof this.prototype[i]=="function"&&typeof r=="function",this.prototype[i]=e?Ya(this.parent.prototype,i,r):r;return this},ts=function(){var t=this,e,i,r,n=Object.prototype.hasOwnProperty.bind(t),o=!n("_includedCtors")&&!n("_includedPostCtors");for(o&&(t._includedCtors=t._includedCtors.slice(0),t._includedPostCtors=t._includedPostCtors.slice(0)),r=0;r<arguments.length;r++){e=arguments[r],e.ctor&&t._includedCtors.push(e.ctor),e.postCtor&&t._includedPostCtors.push(e.postCtor);for(i in e)i==="ctor"||i==="postCtor"||i==="default"||(t.prototype[i]=e[i])}return t},is=function(t){var e=Object.prototype.hasOwnProperty.bind(this)("parent"),i=!e&&this.parent;if(i){var r=Object.getPrototypeOf(this);return r===t||r.subclassOf(t)}else return this.parent===t?!0:!this.parent||!this.parent.subclassOf?!1:this.parent.subclassOf(t)},Cn=function(){throw ne.Error("E0001")},rs=function(){var t=Object.prototype.hasOwnProperty;return function(e,i){for(var r in e){if(!t.call(e,r))return;i[r]=e[r]}}}(),lr=function(){};lr.inherit=function(t){var e=function(){if(!this||Y(this)||typeof this.constructor!="function")throw ne.Error("E0003");var i=this,r=i.ctor,n=i.constructor._includedCtors,o=i.constructor._includedPostCtors,a;for(a=0;a<n.length;a++)n[a].call(i);for(r&&r.apply(i,arguments),a=0;a<o.length;a++)o[a].call(i)};return e.prototype=Za(this),rs(this,e),e.inherit=this.inherit,e.abstract=Cn,e.redefine=es,e.include=ts,e.subclassOf=is,e.parent=this,e._includedCtors=this._includedCtors?this._includedCtors.slice(0):[],e._includedPostCtors=this._includedPostCtors?this._includedPostCtors.slice(0):[],e.prototype.constructor=e,e.redefine(t),e};lr.abstract=Cn;var oe=lr;function Me(t){var e=oe.inherit(t),i=e,r=new i(t),n={},o=function(a,s){A(a,function(l){C(r[l])?(s||!t[l])&&(t[l]=function(){return r[l].apply(t,arguments)}):(s&&(n[l]=t[l]),t[l]=r[l])})};return o(t,!0),t.inject=function(a){i=i.inherit(a),r=new i,o(a)},t.resetInjection=function(){z(t,n),i=e,r=new e},t}var He=Me({isWrapped:function(){return!1},isWritableWrapped:function(){return!1},wrap:function(t){return t},unwrap:function(t){return t},assign:function(){ui.error("Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.")}});var _h=function(){function t(){}return function(e){return t.prototype=e,new t}}();var ns=function(t,e,i,r){!r&&He.isWrapped(t[e])?He.assign(t[e],i):t[e]=i},Ft=function t(e,i,r,n){var o,a;for(var s in i)if(o=e[s],a=i[s],!(s==="__proto__"||s==="constructor"||e===a)){if(K(a)){var l=r?re(o):K(o);a=t(l?o:{},a,r,n)}a!==void 0&&o!==a&&ns(e,s,a,n)}return e};var En={rtlEnabled:!1,defaultCurrency:"USD",oDataFilterToLower:!0,serverDecimalSeparator:".",decimalSeparator:".",thousandsSeparator:",",forceIsoDateParsing:!0,wrapActionsBeforeExecute:!0,useLegacyStoreResult:!1,useJQuery:void 0,editorStylingMode:void 0,useLegacyVisibleIndex:!1,floatingActionButtonConfig:{icon:"add",closeIcon:"close",label:"",position:{at:"right bottom",my:"right bottom",offset:{x:-16,y:-16}},maxSpeedDialActionCount:5,shading:!1,direction:"auto"},optionsParser:t=>{t.trim().charAt(0)!=="{"&&(t="{"+t+"}");try{return new Function("return "+t)()}catch(e){throw ne.Error("E3018",e,t)}}},os=["decimalSeparator","thousandsSeparator"],Sn=function(){if(!arguments.length)return En;var t=arguments.length<=0?void 0:arguments[0];os.forEach(e=>{if(t[e]){var i="Now, the ".concat(e," is selected based on the specified locale.");ne.log("W0003","config",e,"19.2",i)}}),z(En,t)};typeof DevExpress<"u"&&DevExpress.config&&Sn(DevExpress.config);var Oe=Sn;var as=oe.inherit({ctor:function(t){t&&(t=String(t)),this._value=this._normalize(t||this._generate())},_normalize:function(t){for(t=t.replace(/[^a-f0-9]/gi,"").toLowerCase();t.length<32;)t+="0";return[t.substr(0,8),t.substr(8,4),t.substr(12,4),t.substr(16,4),t.substr(20,12)].join("-")},_generate:function(){for(var t="",e=0;e<32;e++)t+=Math.round(15*Math.random()).toString(16);return t},toString:function(){return this._value},valueOf:function(){return this._value},toJSON:function(){return this._value}}),dr=as;var be=function(t){this._options=t||{},this._list=[],this._queue=[],this._firing=!1,this._fired=!1,this._firingIndexes=[]};be.prototype._fireCore=function(t,e){var i=this._firingIndexes,r=this._list,n=this._options.stopOnFalse,o=i.length;for(i[o]=0;i[o]<r.length;i[o]++){var a=r[i[o]].apply(t,e);if(a===!1&&n)break}i.pop()};be.prototype.add=function(t){return typeof t=="function"&&(!this._options.unique||!this.has(t))&&this._list.push(t),this};be.prototype.remove=function(t){var e=this._list,i=this._firingIndexes,r=e.indexOf(t);if(r>-1&&(e.splice(r,1),this._firing&&i.length))for(var n=0;n<i.length;n++)r<=i[n]&&i[n]--;return this};be.prototype.has=function(t){var e=this._list;return t?e.indexOf(t)>-1:!!e.length};be.prototype.empty=function(t){return this._list=[],this};be.prototype.fireWith=function(t,e){var i=this._queue;if(e=e||[],e=e.slice?e.slice():e,this._options.syncStrategy)this._firing=!0,this._fireCore(t,e);else{if(i.push([t,e]),this._firing)return;for(this._firing=!0;i.length;){var r=i.shift();this._fireCore(r[0],r[1])}}return this._firing=!1,this._fired=!0,this};be.prototype.fire=function(){this.fireWith(this,arguments)};be.prototype.fired=function(){return this._fired};var ss=function(t){return new be(t)},De=ss;var Tn=[{method:"resolve",handler:"done",state:"resolved"},{method:"reject",handler:"fail",state:"rejected"},{method:"notify",handler:"progress"}],ut=function(){var t=this;this._state="pending",this._promise={},Tn.forEach(function(e){var i=e.method;this[i+"Callbacks"]=new De,this[i]=function(){return this[i+"With"](this._promise,arguments)}.bind(this),this._promise[e.handler]=function(r){if(!r)return this;var n=t[i+"Callbacks"];return n.fired()?r.apply(t[i+"Context"],t[i+"Args"]):n.add(function(o,a){r.apply(o,a)}.bind(this)),this}}.bind(this)),this._promise.always=function(e){return this.done(e).fail(e)},this._promise.catch=function(e){return this.then(null,e)},this._promise.then=function(e,i){var r=new ut;return["done","fail"].forEach(function(n){var o=n==="done"?e:i;this[n](function(){if(!o){r[n==="done"?"resolve":"reject"].apply(this,arguments);return}var a=o&&o.apply(this,arguments);di(a)?a.done(r.resolve).fail(r.reject):or(a)?a.then(r.resolve,r.reject):r.resolve.apply(this,X(a)?[a]:arguments)})}.bind(this)),r.promise()},this._promise.state=function(){return t._state},this._promise.promise=function(e){return e?z(e,t._promise):t._promise},this._promise.promise(this)};Tn.forEach(function(t){var e=t.method,i=t.state;ut.prototype[e+"With"]=function(r,n){var o=this[e+"Callbacks"];return this.state()==="pending"&&(this[e+"Args"]=n,this[e+"Context"]=r,i&&(this._state=i),o.fire(r,n)),this}});function Fe(t,e){if(di(t))return t;if(or(t)){var i=new ut;return t.then(function(){i.resolveWith.apply(i,[e].concat([[].slice.call(arguments)]))},function(){i.rejectWith.apply(i,[e].concat([[].slice.call(arguments)]))}),i}return new ut().resolveWith(e,[t])}var ls=function(){if(arguments.length===1)return Fe(arguments[0]);for(var t=[].slice.call(arguments),e=[],i=0,r=new ut,n=function(a){return function(s){e[a]=this,t[a]=arguments.length>1?[].slice.call(arguments):s,i++,i===t.length&&r.resolveWith(e,t)}},o=0;o<t.length;o++)di(t[o])?t[o].promise().done(n(o)).fail(r.reject):i++;return i===t.length&&r.resolveWith(e,t),r.promise()};function _(){return new ut}function Bt(){return ls.apply(this,arguments)}var ds=He.unwrap,Zh=He.isWrapped,ef=He.assign,us=function(t){return t.replace(/\[/g,".").replace(/\]/g,"")};var ps=function(t){return t=t||{},t.unwrapObservables=t.unwrapObservables!==void 0?t.unwrapObservables:!0,t};function Mn(t,e){return e.unwrapObservables?ds(t):t}var pe=function(t){if(arguments.length>1&&(t=[].slice.call(arguments)),!t||t==="this")return function(i){return i};if(typeof t=="string"){t=us(t);var e=t.split(".");return function(i,r){r=ps(r);for(var n=r.functionsAsIs,o=("defaultValue"in r),a=Mn(i,r),s=0;s<e.length;s++){if(!a){if(a==null&&o)return r.defaultValue;break}var l=e[s];if(o&&re(a)&&!(l in a))return r.defaultValue;var d=Mn(a[l],r);!n&&C(d)&&(d=d.call(a)),a=d}return a}}if(Array.isArray(t))return cs(t);if(C(t))return t};function cs(t){for(var e={},i=0,r=t.length;i<r;i++){var n=t[i];e[n]=pe(n)}return function(o,a){var s;return A(e,function(l){var d=this(o,a);if(d!==void 0){for(var u=s||(s={}),c=l.split("."),p=c.length-1,g=0;g<p;g++){var b=c[g];b in u||(u[b]={}),u=u[b]}u[c[p]]=d}}),s}}var J=function(t,e){return t instanceof Date?t.getTime():t&&t instanceof oe&&t.valueOf?t.valueOf():!e&&typeof t=="string"?t.toLowerCase():t};var ci=function(){};var On=function(t,e,i){for(var r=[],n,o=!i,a=0;a<t.length;a++)n=!!e(t[a],a),n===o&&r.push(t[a]);return r},hs=function(t,e,i){if(t.length!==e.length)return!1;for(var r=0;r<t.length;r++)if(!Pt(t[r],e[r],i+1))return!1;return!0},fs=function(t,e,i,r){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!Pt(t[n],e[n],i+1,r))return!1;for(var o in e)if(!(o in t))return!1;return!0},ms=3,Pt=function(t,e){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;t=J(t,!0),e=J(e,!0);var n=r?t===e:t==e;return n||i>=ms?!0:re(t)&&re(e)?fs(t,e,i,r):Array.isArray(t)&&Array.isArray(e)?hs(t,e,i):!1};var gs=1,vs=3,ys=9,xs={querySelectorAll:(t,e)=>t.querySelectorAll(e),elementMatches(t,e){var i=t.matches||t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector||(r=>{var n=t.document||t.ownerDocument;if(!n)return!1;for(var o=this.querySelectorAll(n,r),a=0;a<o.length;a++)if(o[a]===t)return!0});return i.call(t,e)},createElement(t,e){return e=e||this._document,e.createElement(t)},createElementNS(t,e,i){return i=i||this._document,i.createElementNS(t,e)},createTextNode(t,e){return e=e||this._document,e.createTextNode(t)},isNode:t=>t&&typeof t=="object"&&"nodeType"in t&&"nodeName"in t,isElementNode:t=>t&&t.nodeType===gs,isTextNode:t=>t&&t.nodeType===vs,isDocument:t=>t&&t.nodeType===ys,removeElement(t){var e=t&&t.parentNode;e&&e.removeChild(t)},insertElement(t,e,i){t&&e&&t!==e&&(i?t.insertBefore(e,i):t.appendChild(e))},getAttribute:(t,e)=>t.getAttribute(e),setAttribute(t,e,i){t.setAttribute(e,i)},removeAttribute(t,e){t.removeAttribute(e)},setProperty(t,e,i){t[e]=i},setText(t,e){t&&(t.textContent=e)},setClass(t,e,i){if(t.nodeType===1&&e)if(t.classList)i?t.classList.add(e):t.classList.remove(e);else{var r=typeof t.className=="string",n=r?t.className:this.getAttribute(t,"class")||"",o=n.split(" "),a=o.indexOf(e),s;i&&a<0&&(s=n?n+" "+e:e),!i&&a>=0&&(o.splice(a,1),s=o.join(" ")),s!==void 0&&(r?t.className=s:this.setAttribute(t,"class",s))}},setStyle(t,e,i){t.style[e]=i||""},_document:typeof document>"u"?void 0:document,getDocument(){return this._document},getActiveElement(){return this._document.activeElement},getBody(){return this._document.body},createDocumentFragment(){return this._document.createDocumentFragment()},getDocumentElement(){return this._document.documentElement},getLocation(){return this._document.location},getSelection(){return this._document.selection},getReadyState(){return this._document.readyState},getHead(){return this._document.head},hasDocumentProperty(t){return t in this._document},listen(t,e,i,r){return!t||!("addEventListener"in t)?ci:(t.addEventListener(e,i,r),()=>{t.removeEventListener(e,i)})}},f=Me(xs);var ws=typeof window<"u",Be=()=>ws,pt=Be()?window:void 0;pt||(pt={},pt.window=pt);var ce=()=>pt;var Fn=()=>Be()?pt.navigator:{userAgent:""};var Is=Fn(),bs=/(webkit)[ /]([\w.]+)/,Ds=/(msie) (\d{1,2}\.\d)/,Cs=/(trident).*rv:(\d{1,2}\.\d)/,Es=/(edge)\/((\d+)?[\w.]+)/,Ss=/(mozilla)(?:.*? rv:([\w.]+))/,Bn=function(t){t=t.toLowerCase();var e={},i=Ds.exec(t)||Cs.exec(t)||Es.exec(t)||t.indexOf("compatible")<0&&Ss.exec(t)||bs.exec(t)||[],r=i[1],n=i[2];return r==="webkit"&&(e.webkit=!0,t.indexOf("chrome")>=0||t.indexOf("crios")>=0?(r="chrome",n=/(?:chrome|crios)\/(\d+\.\d+)/.exec(t),n=n&&n[1]):t.indexOf("fxios")>=0?(r="mozilla",n=/fxios\/(\d+\.\d+)/.exec(t),n=n&&n[1]):t.indexOf("safari")>=0&&/version|phantomjs/.test(t)?(r="safari",n=/(?:version|phantomjs)\/([0-9.]+)/.exec(t),n=n&&n[1]):(r="unknown",n=/applewebkit\/([0-9.]+)/.exec(t),n=n&&n[1])),(r==="trident"||r==="edge")&&(r="msie"),r&&(e[r]=!0,e.version=n),e},ur=z({_fromUA:Bn},Bn(Is.userAgent));var Ef=ur.msie&&parseInt(ur.version)<=11;var Rt=function(t,e){if(!e)return-1;var i=Array.isArray(e)?e:e.toArray();return i.indexOf(t)};var Pn=function(t,e){for(var i=0;i<e.length;i++)t[t.length]=e[i];return t};var pr=Be()?ce().WeakMap:WeakMap;pr||(pr=function(){var t=[],e=[];this.set=function(i,r){var n=Rt(i,t);n===-1?(t.push(i),e.push(r)):e[n]=r},this.get=function(i){var r=Rt(i,t);if(r!==-1)return e[r]},this.has=function(i){var r=Rt(i,t);return r!==-1},this.delete=function(i){var r=Rt(i,t);r!==-1&&(t.splice(r,1),e.splice(r,1))}});var hi=pr;var ct=class{constructor(){this.memory=[],this.callbacks=De()}add(e){A(this.memory,(i,r)=>e.apply(e,r)),this.callbacks.add(e)}remove(e){this.callbacks.remove(e)}fire(){for(var e=arguments.length,i=new Array(e),r=0;r<e;r++)i[r]=arguments[r];this.memory.push(i),this.callbacks.fire.apply(this.callbacks,i)}};var Rn=new ct;var Ts=["pageX","pageY","screenX","screenY","clientX","clientY"],Ms=function(t,e){if(e[t]&&!e.touches||!e.touches)return e[t];var i=e.touches.length?e.touches:e.changedTouches;if(!!i.length)return i[0][t]};function Ln(t){Ts.forEach(function(e){t(e,function(i){return Ms(e,i)})},this)}var Os=function(t){var e,i=function(){return e=t.apply(this,arguments),i=function(){return e},e};return function(){return i.apply(this,arguments)}},ht=Os;var fr=ce(),fi="dxEmptyEventType",_n={mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},Fs={focusin:"focus",focusout:"blur"},Bs=["blur","focus","load"],Vn=["touchmove","wheel","mousewheel","touchstart"],Ps=["target","relatedTarget","delegateTarget","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","shiftKey","view","char","code","charCode","key","keyCode","button","buttons","offsetX","offsetY","pointerId","pointerType","targetTouches","toElement","touches"];function Rs(t,e){return!Y(t)&&t.nodeName!=="#document"&&f.elementMatches(t,e)}var cr=new hi,kn=0,mi,Pe=function(){var t={};return Rn.add(function(e,i){t[e]=i}),{getField:function(e,i){return t[e]&&t[e][i]},callMethod:function(e,i,r,n){return t[e]&&t[e][i]&&t[e][i].apply(r,n)}}}(),F=Me({on:Lt(hr(Un(function(t,e,i,r,n){var o=ft(t,e);o.addHandler(n,i,r)}))),one:Lt(hr(function(t,e,i,r,n){F.on(t,e,i,r,function o(){F.off(t,e,i,o),n.apply(this,arguments)})})),off:Lt(As(Un(function(t,e,i,r){var n=ft(t,e);n.removeHandler(r,i)}))),trigger:Lt(Gn(function(t,e,i){var r=e.type,n=ft(t,e.type);Pe.callMethod(r,"trigger",t,[e,i]),n.callHandlers(e,i);var o=Pe.getField(r,"noBubble")||e.isPropagationStopped()||Bs.indexOf(r)!==-1;if(!o){var a=[];(function d(u){var c=u.parentNode;c&&(a.push(c),d(c))})(t),a.push(fr);for(var s=0;a[s]&&!e.isPropagationStopped();){var l=ft(a[s],e.type);l.callHandlers(z(e,{currentTarget:a[s]}),i),s++}}(t.nodeType||Y(t))&&(Pe.callMethod(r,"_default",t,[e,i]),Us(r,t))})),triggerHandler:Lt(Gn(function(t,e,i){var r=ft(t,e.type);r.callHandlers(e,i)}))});function mr(t,e){var i=t[0];if(!!i)if(f.isNode(i)||Y(i))e.apply(F,t);else if(!we(i)&&"length"in i){var r=Array.prototype.slice.call(t,0);Array.prototype.forEach.call(i,function(n){r[0]=n,mr(r,e)})}else throw ne.Error("E0025")}function Lt(t){return function(){mr(arguments,t)}}function Ls(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){return t=!0,!0}});fr.addEventListener("test",null,e)}catch{}return t}var $n=ht(Ls),Nn=(t,e)=>Y(t)?Nn(t.document,e):t.contains?t.contains(e):!!(e.compareDocumentPosition(t)&e.DOCUMENT_POSITION_CONTAINS);function ft(t,e){var i=cr.get(t);e=e||"";var r=e.split("."),n=r.slice(1),o=!!r[0];e=r[0]||fi,i||(i={},cr.set(t,i)),i[e]||(i[e]={handleObjects:[],nativeHandler:null});var a=i[e];return{addHandler:function(s,l,d){var u=function(I,B){var E=[I],fe=I.currentTarget,yt=I.relatedTarget,xt,Jt;e in _n&&(xt=yt&&fe&&(yt===fe||Nn(fe,yt))),B!==void 0&&E.push(B),Pe.callMethod(e,"handle",t,[I,d]),xt||(Jt=s.apply(fe,E)),Jt===!1&&(I.preventDefault(),I.stopPropagation())},c={handler:s,wrappedHandler:function(I,B){if(!(mi&&I.type===mi))if(I.data=d,I.delegateTarget=t,l)for(var E=I.target;E&&E!==t;)Rs(E,l)&&(I.currentTarget=E,u(I,B)),E=E.parentNode;else I.currentTarget=I.delegateTarget||I.target,u(I,B)},selector:l,type:e,data:d,namespace:n.join("."),namespaces:n,guid:++kn};a.handleObjects.push(c);var p=a.handleObjects.length===1,g=p&&o,b;g&&(g=!Pe.callMethod(e,"setup",t,[d,n,s])),g&&(a.nativeHandler=_s(e),$n()&&Vn.indexOf(e)>-1&&(b={passive:!1}),a.removeListener=f.listen(t,_n[e]||e,a.nativeHandler,b)),Pe.callMethod(e,"add",t,[c])},removeHandler:function(s,l){var d=function(p){var g=i[p];if(!g.handleObjects.length){delete i[p];return}var b;g.handleObjects=g.handleObjects.filter(function(E){var fe=n.length&&!An(E.namespaces,n)||s&&E.handler!==s||l&&E.selector!==l;return fe||(b=E.handler,Pe.callMethod(p,"remove",t,[E])),fe});var I=!g.handleObjects.length,B=I&&p!==fi;B&&(Pe.callMethod(p,"teardown",t,[n,b]),g.nativeHandler&&g.removeListener(),delete i[p])};if(o)d(e);else for(var u in i)d(u);var c=Object.keys(i).length===0;c&&cr.delete(t)},callHandlers:function(s,l){var d=!1,u=function(c){d||(!n.length||An(c.namespaces,n))&&(c.wrappedHandler(s,l),d=s.isImmediatePropagationStopped())};a.handleObjects.forEach(u),n.length&&i[fi]&&i[fi].handleObjects.forEach(u)}}}function _s(t){return function(e,i){var r=ft(this,t);e=F.Event(e),r.callHandlers(e,i)}}function An(t,e){for(var i=0;i<e.length;i++)if(t.indexOf(e[i])<0)return!1;return!0}function hr(t){return function(e,i,r,n,o){o||(o=n,n=void 0),typeof r!="string"&&(n=r,r=void 0),!o&&typeof i=="string"&&(o=n||r,r=void 0,n=void 0),t(e,i,r,n,o)}}function As(t){return function(e,i,r,n){typeof r=="function"&&(n=r,r=void 0),t(e,i,r,n)}}function Gn(t){return function(e,i,r){typeof i=="string"&&(i={type:i}),i.target||(i.target=e),i.currentTarget=e,i.delegateTarget||(i.delegateTarget=e),!i.type&&i.originalEvent&&(i.type=i.originalEvent.type),t(e,i instanceof F.Event?i:F.Event(i),r)}}function Gs(t){return F.Event=function(e,i){if(!(this instanceof F.Event))return new F.Event(e,i);e||(e={}),typeof e=="string"&&(e={type:e}),i||(i={}),t.call(this,e,i)},Te(F.Event.prototype,{_propagationStopped:!1,_immediatePropagationStopped:!1,_defaultPrevented:!1,isPropagationStopped:function(){return!!(this._propagationStopped||this.originalEvent&&this.originalEvent.propagationStopped)},stopPropagation:function(){this._propagationStopped=!0,this.originalEvent&&this.originalEvent.stopPropagation()},isImmediatePropagationStopped:function(){return this._immediatePropagationStopped},stopImmediatePropagation:function(){this.stopPropagation(),this._immediatePropagationStopped=!0,this.originalEvent&&this.originalEvent.stopImmediatePropagation()},isDefaultPrevented:function(){return!!(this._defaultPrevented||this.originalEvent&&this.originalEvent.defaultPrevented)},preventDefault:function(){this._defaultPrevented=!0,this.originalEvent&&this.originalEvent.preventDefault()}}),F.Event}function Un(t){var e=function(i,r){if(r&&r.indexOf(" ")>-1){var n=Array.prototype.slice.call(arguments,0);r.split(" ").forEach(function(o){n[1]=o,t.apply(this,n)})}else t.apply(this,arguments)};return function(i,r){if(typeof r=="object"){var n=Array.prototype.slice.call(arguments,0);for(var o in r)n[1]=o,n[n.length-1]=r[o],e.apply(this,n)}else e.apply(this,arguments)}}function Us(t,e){var i=Fs[t]||t;(function(r,n){return r==="click"&&n.localName==="a"})(t,e)||C(e[i])&&(mi=t,e[i](),mi=void 0)}function Vs(t){return function(e){return e.which==null&&e.type.indexOf("key")===0}(t)?t.charCode!=null?t.charCode:t.keyCode:function(e){return!e.which&&e.button!==void 0&&/^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(e.type)}(t)?{1:1,2:3,3:1,4:2}[t.button]:t.which}function Hn(t){t&&(F.Event=t,F.Event.prototype=t.prototype)}Hn(Gs(function(t,e){var i,r=t instanceof F.Event||Be()&&t instanceof fr.Event||((i=t.view)===null||i===void 0?void 0:i.Event)&&t instanceof t.view.Event;r?(this.originalEvent=t,this.type=t.type,this.currentTarget=void 0,this.timeStamp=t.timeStamp||Date.now()):Te(this,t),gr("which",Vs,this),t.type.indexOf("touch")===0&&(delete e.pageX,delete e.pageY),Te(this,e),this.guid=++kn}));function gr(t,e,i){Object.defineProperty(i||F.Event.prototype,t,{enumerable:!0,configurable:!0,get:function(){return this.originalEvent&&e(this.originalEvent)},set:function(r){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:r})}})}Ps.forEach(t=>gr(t,e=>e[t]));Ln(gr);var Wn=De(),zn=De();F.set=function(t){Wn.fire(),F.inject(t),Hn(t.Event),zn.fire()};F.subscribeGlobal=function(){mr(arguments,hr(function(){var t=arguments;F.on.apply(this,t),Wn.add(function(){var e=Array.prototype.slice.call(t,0);e.splice(3,1),F.off.apply(this,e)}),zn.add(function(){F.on.apply(this,t)})}))};F.forcePassiveFalseEventNames=Vn;F.passiveEventHandlersSupported=$n;var Kn=F;var _t=new hi,We,ks=new ct,$s=function(){},Ns=function(){},Hs=function(t){ks.fire(t),We=t;var e=We.cleanData;We.cleanData=function(i){$s(i);var r=e.call(this,i);return Ns(i),r}};Hs({data:function(){var t=arguments[0],e=arguments[1],i=arguments[2];if(!!t){var r=_t.get(t);return r||(r={},_t.set(t,r)),e===void 0?r:arguments.length===2?r[e]:(r[e]=i,i)}},removeData:function(t,e){if(!!t)if(e===void 0)_t.delete(t);else{var i=_t.get(t);i&&delete i[e]}},cleanData:function(t){for(var e=0;e<t.length;e++)Kn.off(t[e]),_t.delete(t[e])}});function vr(){return We.data.apply(this,arguments)}function Jn(t,e){return We.removeData.call(this,t,e)}function gi(t,e){if(!!f.isElementNode(t)){var i=t.getElementsByTagName("*");We.cleanData(i),e&&We.cleanData([t])}}var Qn=["","Webkit","Moz","O","Ms"];var jn=ht(function(){return f.createElement("dx").style});var yr=function(t){if(t in jn())return t;var e=t;t=t.charAt(0).toUpperCase()+t.substr(1);for(var i=1;i<Qn.length;i++){var r=Qn[i].toLowerCase()+t;if(r in jn())return r}return e};var Ws=["fillOpacity","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","opacity","zIndex","zoom"],qn=function(t,e){return Ie(e)&&Ws.indexOf(t)===-1&&(e+="px"),e};var zs=ce();var xr=function(t,e){var i=0;return e.forEach(function(r){i+=parseFloat(t[r])||0}),i},wr=function(t,e){var i=t==="width"?"Left":"Top",r=t==="width"?"Right":"Bottom";return{padding:xr(e,["padding"+i,"padding"+r]),border:xr(e,["border"+i+"Width","border"+r+"Width"]),margin:xr(e,["margin"+i,"margin"+r])}},Ks=function(t,e,i){var r=e[t];return e.boxSizing==="border-box"&&r.length&&r[r.length-1]!=="%"?i.border+i.padding:0},Xn=function(t,e,i){var r=zs.getComputedStyle(t),n=wr(e,r),o=t.getClientRects().length,a=t.getBoundingClientRect()[e],s=o?a:0;return s<=0?(s=parseFloat(r[e]||t.style[e])||0,s-=Ks(e,r,n)):s-=n.padding+n.border,i.paddings&&(s+=n.padding),i.borders&&(s+=n.border),i.margins&&(s+=n.margin),s};var Yn=/<([a-z][^/\0>\x20\t\r\n\f]+)/i,he={default:{tagsCount:0,startTags:"",endTags:""},thead:{tagsCount:1,startTags:"<table>",endTags:"</table>"},td:{tagsCount:3,startTags:"<table><tbody><tr>",endTags:"</tr></tbody></table>"},col:{tagsCount:2,startTags:"<table><colgroup>",endTags:"</colgroup></table>"},tr:{tagsCount:2,startTags:"<table><tbody>",endTags:"</tbody></table>"}};he.tbody=he.colgroup=he.caption=he.tfoot=he.thead;he.th=he.td;var Ir=function(t){if(typeof t!="string")return null;var e=f.createDocumentFragment(),i=e.appendChild(f.createElement("div")),r=Yn.exec(t),n=r&&r[1].toLowerCase(),o=he[n]||he.default;i.innerHTML=o.startTags+t+o.endTags;for(var a=0;a<o.tagsCount;a++)i=i.lastChild;return Pn([],i.childNodes)},Zn=function(t){var e=Yn.exec(t);return e&&e[1]in he};var io=ce(),y,m=function(t,e){return t?typeof t=="string"?t==="body"?(this[0]=e?e.body:f.getBody(),this.length=1,this):(e=e||f.getDocument(),t[0]==="<"?(this[0]=f.createElement(t.slice(1,-1),e),this.length=1,this):([].push.apply(this,f.querySelectorAll(e,t)),this)):f.isNode(t)||Y(t)?(this[0]=t,this.length=1,this):Array.isArray(t)?([].push.apply(this,t),this):y(t.toArray?t.toArray():[t]):(this.length=0,this)};y=function(t,e){return new m(t,e)};y.fn={dxRenderer:!0};m.prototype=y.fn;var ze=function(t,e){for(var i=0;i<this.length;i++){var r=y(this[i]);r[t].apply(r,e)}return this},br=function(t,e,i){i!=null?f.setAttribute(t,e,i):f.removeAttribute(t,e)};m.prototype.show=function(){return this.toggle(!0)};m.prototype.hide=function(){return this.toggle(!1)};m.prototype.toggle=function(t){return this[0]&&this.toggleClass("dx-state-invisible",!t),this};m.prototype.attr=function(t,e){if(this.length>1&&arguments.length>1)return ze.call(this,"attr",arguments);if(!this[0])return re(t)||e!==void 0?this:void 0;if(!this[0].getAttribute)return this.prop(t,e);if(typeof t=="string"&&arguments.length===1){var i=this[0].getAttribute(t);return i??void 0}else if(K(t))for(var r in t)this.attr(r,t[r]);else br(this[0],t,e);return this};m.prototype.removeAttr=function(t){return this[0]&&f.removeAttribute(this[0],t),this};m.prototype.prop=function(t,e){if(!this[0])return this;if(typeof t=="string"&&arguments.length===1)return this[0][t];if(K(t))for(var i in t)this.prop(i,t[i]);else f.setProperty(this[0],t,e);return this};m.prototype.addClass=function(t){return this.toggleClass(t,!0)};m.prototype.removeClass=function(t){return this.toggleClass(t,!1)};m.prototype.hasClass=function(t){if(!this[0]||this[0].className===void 0)return!1;for(var e=t.split(" "),i=0;i<e.length;i++)if(this[0].classList){if(this[0].classList.contains(e[i]))return!0}else{var r=we(this[0].className)?this[0].className:f.getAttribute(this[0],"class");if((r||"").split(" ").indexOf(e[i])>=0)return!0}return!1};m.prototype.toggleClass=function(t,e){if(this.length>1)return ze.call(this,"toggleClass",arguments);if(!this[0]||!t)return this;e=e===void 0?!this.hasClass(t):e;for(var i=t.split(" "),r=0;r<i.length;r++)f.setClass(this[0],i[r],e);return this};["width","height","outerWidth","outerHeight","innerWidth","innerHeight"].forEach(function(t){var e=t.toLowerCase().indexOf("width")>=0?"Width":"Height",i=e.toLowerCase(),r=t.indexOf("outer")===0,n=t.indexOf("inner")===0;m.prototype[t]=function(o){if(this.length>1&&arguments.length>0)return ze.call(this,t,arguments);var a=this[0];if(!!a){if(Y(a))return r?a["inner"+e]:f.getDocumentElement()["client"+e];if(f.isDocument(a)){var s=f.getDocumentElement(),l=f.getBody();return Math.max(l["scroll"+e],l["offset"+e],s["scroll"+e],s["offset"+e],s["client"+e])}if(arguments.length===0||typeof o=="boolean"){var d={paddings:n||r,borders:r,margins:o};return Xn(a,i,d)}if(o==null)return this;if(Ie(o)){var u=io.getComputedStyle(a),c=wr(i,u),p=u.boxSizing==="border-box";o=Number(o),r?o-=p?0:c.border+c.padding:n?o+=p?c.border:-c.padding:p&&(o+=c.border+c.padding)}return o+=Ie(o)?"px":"",f.setStyle(a,i,o),this}}});m.prototype.html=function(t){return arguments.length?(this.empty(),typeof t=="string"&&!Zn(t)||typeof t=="number"?(this[0].innerHTML=t,this):this.append(Ir(t))):this[0].innerHTML};var ro=function(t,e){if(!(!this[0]||!t)){typeof t=="string"?t=Ir(t):t.nodeType?t=[t]:Ie(t)&&(t=[f.createTextNode(t)]);for(var i=0;i<t.length;i++){var r=t[i],n=this[0],o=n.tagName==="TABLE"&&r.tagName==="TR";o&&n.tBodies&&n.tBodies.length&&(n=n.tBodies[0]),f.insertElement(n,r.nodeType?r:r[0],e)}}},eo=function(t,e){if(!(!this[0]||!this[0].style)&&!(e===null||typeof e=="number"&&isNaN(e))){t=yr(t);for(var i=0;i<this.length;i++)this[i].style[t]=qn(t,e)}};m.prototype.css=function(t,e){if(we(t))if(arguments.length===2)eo.call(this,t,e);else{if(!this[0])return;t=yr(t);var i=io.getComputedStyle(this[0])[t]||this[0].style[t];return Ie(i)?i.toString():i}else if(K(t))for(var r in t)eo.call(this,r,t[r]);return this};m.prototype.prepend=function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.prepend(arguments[e]);return this}return ro.apply(this,[t,this[0].firstChild]),this};m.prototype.append=function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.append(arguments[e]);return this}return ro.apply(this,[t]),this};m.prototype.prependTo=function(t){if(this.length>1){for(var e=this.length-1;e>=0;e--)y(this[e]).prependTo(t);return this}return t=y(t),t[0]&&f.insertElement(t[0],this[0],t[0].firstChild),this};m.prototype.appendTo=function(t){return this.length>1?ze.call(this,"appendTo",arguments):(f.insertElement(y(t)[0],this[0]),this)};m.prototype.insertBefore=function(t){return t&&t[0]&&f.insertElement(t[0].parentNode,this[0],t[0]),this};m.prototype.insertAfter=function(t){return t&&t[0]&&f.insertElement(t[0].parentNode,this[0],t[0].nextSibling),this};m.prototype.before=function(t){return this[0]&&f.insertElement(this[0].parentNode,t[0],this[0]),this};m.prototype.after=function(t){return this[0]&&f.insertElement(this[0].parentNode,t[0],this[0].nextSibling),this};m.prototype.wrap=function(t){if(this[0]){var e=y(t);e.insertBefore(this),e.append(this)}return this};m.prototype.wrapInner=function(t){var e=this.contents();return e.length?e.wrap(t):this.append(t),this};m.prototype.replaceWith=function(t){if(!!(t&&t[0]))return t.is(this)?this:(t.insertBefore(this),this.remove(),t)};m.prototype.remove=function(){return this.length>1?ze.call(this,"remove",arguments):(gi(this[0],!0),f.removeElement(this[0]),this)};m.prototype.detach=function(){return this.length>1?ze.call(this,"detach",arguments):(f.removeElement(this[0]),this)};m.prototype.empty=function(){return this.length>1?ze.call(this,"empty",arguments):(gi(this[0]),f.setText(this[0],""),this)};m.prototype.clone=function(){for(var t=[],e=0;e<this.length;e++)t.push(this[e].cloneNode(!0));return y(t)};m.prototype.text=function(t){if(!arguments.length){for(var e="",i=0;i<this.length;i++)e+=this[i]&&this[i].textContent||"";return e}var r=C(t)?t():t;return gi(this[0],!1),f.setText(this[0],X(r)?r:""),this};m.prototype.val=function(t){return arguments.length===1?this.prop("value",X(t)?t:""):this.prop("value")};m.prototype.contents=function(){if(!this[0])return y();var t=[];return t.push.apply(t,this[0].childNodes),y(t)};m.prototype.find=function(t){var e=y();if(!t)return e;var i=[],r;if(typeof t=="string")for(t=t.trim(),r=0;r<this.length;r++){var n=this[r];if(f.isElementNode(n)){var o=n.getAttribute("id"),a=o||"dx-query-children";o||br(n,"id",a),a="[id='"+a+"'] ";var s=a+t.replace(/([^\\])(,)/g,"$1, "+a);i.push.apply(i,f.querySelectorAll(n,s)),br(n,"id",o)}else f.isDocument(n)&&i.push.apply(i,f.querySelectorAll(n,t))}else for(r=0;r<this.length;r++)t=f.isNode(t)?t:t[0],this[r]!==t&&this[r].contains(t)&&i.push(t);return e.add(i)};var to=function(t,e){return e.nodeType?!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length):!0};m.prototype.filter=function(t){if(!t)return y();if(t===":visible")return this.filter(to);if(t===":hidden")return this.filter(function(o,a){return!to(o,a)});for(var e=[],i=0;i<this.length;i++){var r=this[i];if(f.isElementNode(r)&&li(t)==="string")f.elementMatches(r,t)&&e.push(r);else if(f.isNode(t)||Y(t))t===r&&e.push(r);else if(C(t))t.call(r,i,r)&&e.push(r);else for(var n=0;n<t.length;n++)t[n]===r&&e.push(r)}return y(e)};m.prototype.not=function(t){for(var e=[],i=this.filter(t).toArray(),r=0;r<this.length;r++)i.indexOf(this[r])===-1&&e.push(this[r]);return y(e)};m.prototype.is=function(t){return!!this.filter(t).length};m.prototype.children=function(t){for(var e=[],i=0;i<this.length;i++)for(var r=this[i]?this[i].childNodes:[],n=0;n<r.length;n++)f.isElementNode(r[n])&&e.push(r[n]);return e=y(e),t?e.filter(t):e};m.prototype.siblings=function(){var t=this[0];if(!t||!t.parentNode)return y();for(var e=[],i=t.parentNode.childNodes||[],r=0;r<i.length;r++){var n=i[r];f.isElementNode(n)&&n!==t&&e.push(n)}return y(e)};m.prototype.each=function(t){for(var e=0;e<this.length&&t.call(this[e],e,this[e])!==!1;e++);};m.prototype.index=function(t){return t?(t=y(t),this.toArray().indexOf(t[0])):this.parent().children().index(this)};m.prototype.get=function(t){return this[t<0?this.length+t:t]};m.prototype.eq=function(t){return t=t<0?this.length+t:t,y(this[t])};m.prototype.first=function(){return this.eq(0)};m.prototype.last=function(){return this.eq(-1)};m.prototype.parent=function(t){if(!this[0])return y();var e=y(this[0].parentNode);return!t||e.is(t)?e:y()};m.prototype.parents=function(t){for(var e=[],i=this.parent();i&&i[0]&&!f.isDocument(i[0]);)f.isElementNode(i[0])&&(!t||i.is(t))&&e.push(i.get(0)),i=i.parent();return y(e)};m.prototype.closest=function(t){if(this.is(t))return this;for(var e=this.parent();e&&e.length;){if(e.is(t))return e;e=e.parent()}return y()};m.prototype.next=function(t){if(!this[0])return y();var e=y(this[0].nextSibling);if(!arguments.length)return e;for(;e&&e.length;){if(e.is(t))return e;e=e.next()}return y()};m.prototype.prev=function(){return this[0]?y(this[0].previousSibling):y()};m.prototype.add=function(t){for(var e=y(t),i=this.toArray(),r=0;r<e.length;r++){var n=e[r];i.indexOf(n)===-1&&i.push(n)}return y(i)};var Dr=[];m.prototype.splice=function(){return y(Dr.splice.apply(this,arguments))};m.prototype.slice=function(){return y(Dr.slice.apply(this,arguments))};m.prototype.toArray=function(){return Dr.slice.call(this)};var no=function(t){return Y(t)?t:t.defaultView};m.prototype.offset=function(){if(!!this[0]){if(!this[0].getClientRects().length)return{top:0,left:0};var t=this[0].getBoundingClientRect(),e=no(this[0].ownerDocument),i=this[0].ownerDocument.documentElement;return{top:t.top+e.pageYOffset-i.clientTop,left:t.left+e.pageXOffset-i.clientLeft}}};m.prototype.offsetParent=function(){if(!this[0])return y();for(var t=y(this[0].offsetParent);t[0]&&t.css("position")==="static";)t=y(t[0].offsetParent);return t=t[0]?t:y(f.getDocumentElement()),t};m.prototype.position=function(){if(!!this[0]){var t,e=parseFloat(this.css("marginTop")),i=parseFloat(this.css("marginLeft"));if(this.css("position")==="fixed")return t=this[0].getBoundingClientRect(),{top:t.top-e,left:t.left-i};t=this.offset();var r=this.offsetParent(),n={top:0,left:0};return r[0].nodeName!=="HTML"&&(n=r.offset()),n={top:n.top+parseFloat(r.css("borderTopWidth")),left:n.left+parseFloat(r.css("borderLeftWidth"))},{top:t.top-n.top-e,left:t.left-n.left-i}}};[{name:"scrollLeft",offsetProp:"pageXOffset",scrollWindow:function(t,e){t.scrollTo(e,t.pageYOffset)}},{name:"scrollTop",offsetProp:"pageYOffset",scrollWindow:function(t,e){t.scrollTo(t.pageXOffset,e)}}].forEach(function(t){var e=t.name;m.prototype[e]=function(i){if(!!this[0]){var r=no(this[0]);return i===void 0?r?r[t.offsetProp]:this[0][e]:(r?t.scrollWindow(r,i):this[0][e]=i,this)}}});m.prototype.data=function(t,e){if(!!this[0])return arguments.length<2?vr.call(y,this[0],t):(vr.call(y,this[0],t,e),this)};m.prototype.removeData=function(t){return this[0]&&Jn(this[0],t),this};var oo=function(){return y.apply(this,arguments)};Object.defineProperty(oo,"fn",{enumerable:!0,configurable:!0,get:function(){return y.fn},set:function(t){y.fn=t}});var ao={set:function(t){y=t},get:function(){return oo}};var so=ao.get();var Cr=[],Js=()=>f.getReadyState()==="complete"||f.getReadyState()!=="loading"&&!f.getDocumentElement().doScroll,Qs=ht(()=>{var t=f.listen(f.getDocument(),"DOMContentLoaded",()=>{lo.fire(),t()})}),lo={add:t=>{var e=Be();e&&Js()?t():(Cr.push(t),e&&Qs())},fire:()=>{Cr.forEach(t=>t()),Cr=[]}},uo=Me(lo);var js=uo.add,Er="DEVEXTREME_XHR_ERROR_UNLOAD",po=function(t){return[t[0],t.length<3?"=":String(t[1]).toLowerCase(),t.length<2?!0:t[t.length-1]]},Sr=function(t){return Array.isArray(t)||(t=[t]),dt(t,function(e){var i={selector:C(e)||typeof e=="string"?e:e.getter||e.field||e.selector,desc:!!(e.desc||String(e.dir).charAt(0).toLowerCase()==="d")};return e.compare&&(i.compare=e.compare),i})},co=function(){var t={timeout:"Network connection timeout",error:"Unspecified network error",parsererror:"Unexpected server response"},e;return js(function(){var i=ce();f.listen(i,"beforeunload",function(){e=!0})}),function(i,r){return e?Er:i.status<400?function(n){var o=t[n];return o||n}(r):i.statusText}}(),ho={count:{seed:0,step:function(t){return 1+t}},sum:{seed:0,step:function(t,e){return t+e}},min:{step:function(t,e){return e<t?e:t}},max:{step:function(t,e){return e>t?e:t}},avg:{seed:[0,0],step:function(t,e){return[t[0]+e,t[1]+1]},finalize:function(t){return t[1]?t[0]/t[1]:NaN}}},fo=function(){var t=0,e;return{obtain:function(){t===0&&(e=new _),t++},release:function(){t--,t<1&&e.resolve()},promise:function(){var i=t===0?new _().resolve():e;return i.promise()},reset:function(){t=0,e&&e.resolve()}}}();function mo(t){return/^(and|&&|&)$/i.test(t)}var At=function(t,e,i){if(Array.isArray(t)){for(var r=dt(e,function(a,s){return s}),n,o=0;o<r.length;o++)if(n=r[o],!Pt(e[n],i[n],0,!1))return!1;return!0}return Pt(e,i,0,!1)};var go=function(t){return t[0]==="!"&&Array.isArray(t[1])},qs=function(t){return t==="and"||t==="or"},vo=function(t){var e=t[0],i=t[1];return!!(Array.isArray(e)||C(e)&&(Array.isArray(i)||C(i)||qs(i)))},mt=function(){var t=new _;return t.resolve.apply(t,arguments).promise()},yo=function(){var t=new _;return t.reject.apply(t,arguments).promise()};var k=pi(ne.ERROR_MESSAGES,{E4000:"[DevExpress.data]: {0}",E4001:"Unknown aggregating function is detected: '{0}'",E4002:"Unsupported OData protocol version is used",E4003:"Unknown filter operation is used: {0}",E4004:"The thenby() method is called before the sortby() method",E4005:"Store requires a key expression for this operation",E4006:"ArrayStore 'data' option must be an array",E4007:"Compound keys cannot be auto-generated",E4008:"Attempt to insert an item with a duplicated key",E4009:"Data item cannot be found",E4010:"CustomStore does not support creating queries",E4011:"Custom Store method is not implemented or is not a function: {0}",E4012:"Custom Store method returns an invalid value: {0}",E4013:"Local Store requires the 'name' configuration option is specified",E4014:"Unknown data type is specified for ODataStore: {0}",E4015:"Unknown entity name or alias is used: {0}",E4016:"The compileSetter(expr) method is called with 'self' passed as a parameter",E4017:"Keys cannot be modified",E4018:"The server has returned a non-numeric value in a response to an item count request",E4019:"Mixing of group operators inside a single group of filter expression is not allowed",E4020:"Unknown store type is detected: {0}",E4021:"The server response does not provide the totalCount value",E4022:"The server response does not provide the groupCount value",E4023:"Could not parse the following XML: {0}",E4024:"String function {0} cannot be used with the data field {1} of type {2}.",W4000:"Data returned from the server has an incorrect structure",W4001:'The {0} field is listed in both "keyType" and "fieldTypes". The value of "fieldTypes" is used.',W4002:"Data loading has failed for some cells due to the following error: {0}"}),Xs=null,vi=function(t){var e;(e=Xs)===null||e===void 0||e(t)};function Ys(t,e){for(var i,r=typeof e=="string"?e.split():e.slice();r.length;)if(i=r.shift(),i in t)return!0;return!1}function xo(t,e,i,r){var n,o;if(r){for(var a=0;a<e.length;a++)if(n=e[a].items||e[a].collapsedItems||[],o=xo(t,n||[],i,r-1),o)return o}else if(xi(t,e,i)>=0)return e}function Zs(t,e,i,r){return r?xo(t,e,i,r)||[]:e}function el(t,e){if(t.key()&&(!e._dataByKeyMap||e._dataByKeyMapLength!==e.length)){for(var i={},r=e.length,n=0;n<r;n++)i[JSON.stringify(t.keyOf(e[n]))]=e[n];e._dataByKeyMap=i,e._dataByKeyMapLength=r}}function tl(t,e){if(t._dataByKeyMap)return t._dataByKeyMap[JSON.stringify(e)]}function il(t,e){return t._dataByKeyMap?t._dataByKeyMap[JSON.stringify(e)]:!0}function wo(t,e,i){t._dataByKeyMap&&(t._dataByKeyMap[JSON.stringify(e)]=i,t._dataByKeyMapLength+=i?1:-1)}function Io(t){var e=t?Object.create(Object.getPrototypeOf(t)):{},i=bn({},t);for(var r in i){var n=i[r];re(n)&&!K(n)&&(i[r]=Io(n))}return Ft(e,i,!0,!0),e}function rl(t,e){var i=Io(t);return Ft(i,e,!0,!0)}function bo(t){var{keyInfo:e,data:i,changes:r,groupCount:n,useInsertIndex:o,immutable:a,disableCache:s,logError:l}=t,d=a===!0?[...i]:i;return r.forEach(u=>{var c=u.type==="insert"?d:Zs(e,d,u.key,n);switch(!s&&el(e,c),u.type){case"update":nl(e,c,u.key,u.data,!0,a,l);break;case"insert":ol(e,c,u.data,o&&X(u.index)?u.index:-1,!0,l);break;case"remove":al(e,c,u.key,!0,l)}}),d}function yi(t,e,i){return t?e&&k.log(i):yo(k.Error(i))}function nl(t,e,i,r,n,o,a){var s,l=t.key();if(l){if(Ys(r,l)&&!At(l,i,t.keyOf(r)))return yi(n,a,"E4017");if(s=tl(e,i),!s){var d=xi(t,e,i);if(d<0)return yi(n,a,"E4009");if(s=e[d],o===!0&&X(s)){var u=rl(s,r);return e[d]=u,!n&&mt(u,i)}}}else s=i;if(Ft(s,r,!0),!n)return Oe().useLegacyStoreResult?mt(i,r):mt(s,i)}function ol(t,e,i,r,n,o){var a,s=t.key(),l=K(i)?z({},i):i;if(s){if(a=t.keyOf(l),a===void 0||typeof a=="object"&&In(a)){if(Array.isArray(s))throw k.Error("E4007");a=l[s]=String(new dr)}else if(e[xi(t,e,a)]!==void 0)return yi(n,o,"E4008")}else a=l;if(r>=0?e.splice(r,0,l):e.push(l),wo(e,a,l),!n)return mt(Oe().useLegacyStoreResult?i:l,a)}function al(t,e,i,r,n){var o=xi(t,e,i);if(o>-1&&(e.splice(o,1),wo(e,i,null)),r){if(o<0)return yi(r,n,"E4009")}else return mt(i)}function xi(t,e,i){var r=t.key();if(!il(e,i))return-1;for(var n=0,o=e.length;n<o;n++)if(At(r,t.keyOf(e[n]),i))return n;return-1}var Gt=class{constructor(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._events={},this._owner=e,this._options=i}static create(e,i){return i?C(i)?i(e):i:new Gt(e)}hasEvent(e){var i=this._events[e];return i?i.has():!1}fireEvent(e,i){var r=this._events[e];return r&&r.fireWith(this._owner,i),this._owner}on(e,i){if(K(e))A(e,(o,a)=>{this.on(o,a)});else{var r=this._events[e];r||(r=De({syncStrategy:this._options.syncStrategy}),this._events[e]=r);var n=r.originalAdd||r.add;n.call(r,i)}}off(e,i){var r=this._events[e];r&&(C(i)?r.remove(i):r.empty())}dispose(){A(this._events,(e,i)=>{i.empty()})}};var Ut=oe.inherit({toArray:function(){var t=[];for(this.reset();this.next();)t.push(this.current());return t},countable:function(){return!1}}),Fr=Ut.inherit({ctor:function(t){this.array=t,this.index=-1},next:function(){return this.index+1<this.array.length?(this.index++,!0):!1},current:function(){return this.array[this.index]},reset:function(){this.index=-1},toArray:function(){return this.array.slice(0)},countable:function(){return!0},count:function(){return this.array.length}}),wi=Ut.inherit({ctor:function(t){this.iter=t},next:function(){return this.iter.next()},current:function(){return this.iter.current()},reset:function(){return this.iter.reset()}}),Tr=wi.inherit({ctor:function(t,e){this.callBase(t),this.index=-1,this.mapper=e},current:function(){return this.mapper(this.callBase(),this.index)},next:function(){var t=this.callBase();return t&&this.index++,t}}),sl=function(t,e){return t=J(t),e=J(e),t===null&&e!==null?-1:t!==null&&e===null||t===void 0&&e!==void 0?1:t!==void 0&&e===void 0||t<e?-1:t>e?1:0},Mr=Ut.inherit({ctor:function(t,e,i,r){t instanceof Tr||(t=new Tr(t,this._wrap)),this.iter=t,this.rules=[{getter:e,desc:i,compare:r}]},thenBy:function(t,e,i){var r=new Mr(this.sortedIter||this.iter,t,e,i);return this.sortedIter||(r.rules=this.rules.concat(r.rules)),r},next:function(){return this._ensureSorted(),this.sortedIter.next()},current:function(){return this._ensureSorted(),this.sortedIter.current()},reset:function(){delete this.sortedIter},countable:function(){return this.sortedIter||this.iter.countable()},count:function(){return this.sortedIter?this.sortedIter.count():this.iter.count()},_ensureSorted:function(){var t=this;t.sortedIter||(A(t.rules,function(){this.getter=pe(this.getter)}),t.sortedIter=new Tr(new Fr(this.iter.toArray().sort(function(e,i){return t._compare(e,i)})),t._unwrap))},_wrap:function(t,e){return{index:e,value:t}},_unwrap:function(t){return t.value},_compare:function(t,e){var i=t.index,r=e.index;if(t=t.value,e=e.value,t===e)return i-r;for(var n=0,o=this.rules.length;n<o;n++){var a=this.rules[n],s=a.getter(t),l=a.getter(e),d=a.compare||sl,u=d(s,l);if(u)return a.desc?-u:u}return i-r}}),Or=function(){var t=function(i){return X(i)?i.toString():""};function e(i,r,n){return function(o){o=J(i(o));var a=function(s){return s===""||s===0||s===!1}(r)?o===r:o==r;return n&&(a=!a),a}}return function(i){return C(i)?i:vo(i)?function(r){var n=[],o=!1,a=!1;return A(r,function(){if(Array.isArray(this)||C(this)){if(n.length>1&&o!==a)throw new k.Error("E4019");n.push(Or(this)),o=a,a=!0}else a=mo(this)}),function(s){for(var l=o,d=0;d<n.length;d++)if(n[d](s)!==o){l=!o;break}return l}}(i):go(i)?function(r){var n=r[0],o=Or(r[1]);if(n==="!")return function(a){return!o(a)};throw k.Error("E4003",n)}(i):function(r){r=po(r);var n=pe(r[0]),o=r[1],a=r[2];switch(a=J(a),o.toLowerCase()){case"=":return e(n,a);case"<>":return e(n,a,!0);case">":return function(s){return J(n(s))>a};case"<":return function(s){return J(n(s))<a};case">=":return function(s){return J(n(s))>=a};case"<=":return function(s){return J(n(s))<=a};case"startswith":return function(s){return J(t(n(s))).indexOf(a)===0};case"endswith":return function(s){var l=J(t(n(s))),d=t(a);if(l.length<d.length)return!1;var u=l.lastIndexOf(a);return u!==-1&&u===l.length-a.length};case"contains":return function(s){return J(t(n(s))).indexOf(a)>-1};case"notcontains":return function(s){return J(t(n(s))).indexOf(a)===-1}}throw k.Error("E4003",o)}(i)}}(),ll=wi.inherit({ctor:function(t,e){this.callBase(t),this.criteria=Or(e)},next:function(){for(;this.iter.next();)if(this.criteria(this.current()))return!0;return!1}}),dl=Ut.inherit({ctor:function(t,e){this.iter=t,this.getter=e},next:function(){return this._ensureGrouped(),this.groupedIter.next()},current:function(){return this._ensureGrouped(),this.groupedIter.current()},reset:function(){delete this.groupedIter},countable:function(){return!!this.groupedIter},count:function(){return this.groupedIter.count()},_ensureGrouped:function(){if(!this.groupedIter){var t={},e=[],i=this.iter,r=pe(this.getter);for(i.reset();i.next();){var n=i.current(),o=r(n);o in t?t[o].push(n):(t[o]=[n],e.push(o))}this.groupedIter=new Fr(dt(e,function(a){return{key:a,items:t[a]}}))}}}),ul=wi.inherit({ctor:function(t,e){this.callBase(t),this.getter=pe(e)},current:function(){return this.getter(this.callBase())},countable:function(){return this.iter.countable()},count:function(){return this.iter.count()}}),pl=wi.inherit({ctor:function(t,e,i){this.callBase(t),this.skip=Math.max(0,e),this.take=Math.max(0,i),this.pos=0},next:function(){if(this.pos>=this.skip+this.take)return!1;for(;this.pos<this.skip&&this.iter.next();)this.pos++;return this.pos++,this.iter.next()},reset:function(){this.callBase(),this.pos=0},countable:function(){return this.iter.countable()},count:function(){return Math.min(this.iter.count()-this.skip,this.take)}}),cl=function t(e,i){i=i||{},e instanceof Ut||(e=new Fr(e));var r=function(d){var u=i.errorHandler;u&&u(d),vi(d)},n=function(d){var u=new _().fail(r),c,p=d.step,g=d.finalize;try{e.reset(),"seed"in d?c=d.seed:c=e.next()?e.current():NaN;for(var b=c;e.next();)b=p(b,e.current());u.resolve(g?g(b):b)}catch(I){u.reject(I)}return u.promise()},o=function(d){return n(ho[d])},a=function(d){return!C(d)&&!Array.isArray(d)&&(d=[].slice.call(arguments)),l(new ul(e,d))},s=function(d){return a(pe(d))};function l(d){return t(d,i)}return{toArray:function(){return e.toArray()},enumerate:function(){var d=new _().fail(r);try{d.resolve(e.toArray())}catch(u){d.reject(u)}return d.promise()},sortBy:function(d,u,c){return l(new Mr(e,d,u,c))},thenBy:function(d,u,c){if(e instanceof Mr)return l(e.thenBy(d,u,c));throw k.Error("E4004")},filter:function(d){return Array.isArray(d)||(d=[].slice.call(arguments)),l(new ll(e,d))},slice:function(d,u){return u===void 0&&(u=Number.MAX_VALUE),l(new pl(e,d,u))},select:a,groupBy:function(d){return l(new dl(e,d))},aggregate:function(d,u,c){return arguments.length<2?n({step:arguments[0]}):n({seed:d,step:u,finalize:c})},count:function(){if(e.countable()){var d=new _().fail(r);try{d.resolve(e.count())}catch(u){d.reject(u)}return d.promise()}return o("count")},sum:function(d){return d?s(d).sum():o("sum")},min:function(d){return d?s(d).min():o("min")},max:function(d){return d?s(d).max():o("max")},avg:function(d){return d?s(d).avg():o("avg")}}},Ii=cl;function Br(t,e){return t=t.groupBy(e[0].selector),e.length>1&&(t=t.select(function(i){return z({},i,{items:Br(Ii(i.items),e.slice(1)).toArray()})})),t}function Do(t,e){var i=[];return A(t,function(r,n){var o=On(e,function(a){return n.selector===a.selector});o.length<1&&i.push(n)}),i.concat(e)}function hl(t,e,i){e=e||{};var r=e.filter;if(r&&(t=t.filter(r)),i)return t;var n=e.sort,o=e.select,a=e.group,s=e.skip,l=e.take;return a&&(a=Sr(a),a.keepInitialKeyOrder=!!e.group.keepInitialKeyOrder),(n||a)&&(n=Sr(n||[]),a&&!a.keepInitialKeyOrder&&(n=Do(a,n)),A(n,function(d){t=t[d?"thenBy":"sortBy"](this.selector,this.desc,this.compare)})),o&&(t=t.select(o)),a&&(t=Br(t,a)),(l||s)&&(t=t.slice(s||0,l)),t}var Vt={multiLevelGroup:Br,arrangeSortingInfo:Do,queryByOptions:hl};var kt=oe.abstract,Co=Vt.queryByOptions,Pr={},gt=oe.inherit({ctor:function(t){var e=this;t=t||{},this._eventsStrategy=new Gt(this),A(["onLoaded","onLoading","onInserted","onInserting","onUpdated","onUpdating","onPush","onRemoved","onRemoving","onModified","onModifying"],function(i,r){r in t&&e.on(r.slice(2).toLowerCase(),t[r])}),this._key=t.key,this._errorHandler=t.errorHandler,this._useDefaultSearch=!0},_customLoadOptions:function(){return null},key:function(){return this._key},keyOf:function(t){return this._keyGetter||(this._keyGetter=pe(this.key())),this._keyGetter(t)},_requireKey:function(){if(!this.key())throw k.Error("E4005")},load:function(t){var e=this;return t=t||{},this._eventsStrategy.fireEvent("loading",[t]),this._withLock(this._loadImpl(t)).done(function(i){e._eventsStrategy.fireEvent("loaded",[i,t])})},_loadImpl:function(t){return Co(this.createQuery(t),t).enumerate()},_withLock:function(t){var e=new _;return t.done(function(){var i=this,r=arguments;fo.promise().done(function(){e.resolveWith(i,r)})}).fail(function(){e.rejectWith(this,arguments)}),e},createQuery:kt,totalCount:function(t){return this._totalCountImpl(t)},_totalCountImpl:function(t){return Co(this.createQuery(t),t,!0).count()},byKey:function(t,e){return this._addFailHandlers(this._withLock(this._byKeyImpl(t,e)))},_byKeyImpl:kt,insert:function(t){var e=this;return e._eventsStrategy.fireEvent("modifying"),e._eventsStrategy.fireEvent("inserting",[t]),e._addFailHandlers(e._insertImpl(t).done(function(i,r){e._eventsStrategy.fireEvent("inserted",[i,r]),e._eventsStrategy.fireEvent("modified")}))},_insertImpl:kt,update:function(t,e){var i=this;return i._eventsStrategy.fireEvent("modifying"),i._eventsStrategy.fireEvent("updating",[t,e]),i._addFailHandlers(i._updateImpl(t,e).done(function(){i._eventsStrategy.fireEvent("updated",[t,e]),i._eventsStrategy.fireEvent("modified")}))},_updateImpl:kt,push:function(t){var e={changes:t,waitFor:[]};this._eventsStrategy.fireEvent("beforePush",[e]),Bt(...e.waitFor).done(()=>{this._pushImpl(t),this._eventsStrategy.fireEvent("push",[t])})},_pushImpl:ci,remove:function(t){var e=this;return e._eventsStrategy.fireEvent("modifying"),e._eventsStrategy.fireEvent("removing",[t]),e._addFailHandlers(e._removeImpl(t).done(function(i){e._eventsStrategy.fireEvent("removed",[i]),e._eventsStrategy.fireEvent("modified")}))},_removeImpl:kt,_addFailHandlers:function(t){return t.fail(this._errorHandler).fail(vi)},on(t,e){return this._eventsStrategy.on(t,e),this},off(t,e){return this._eventsStrategy.off(t,e),this}});gt.create=function(t,e){if(!(t in Pr))throw k.Error("E4020",t);return new Pr[t](e)};gt.registerClass=function(t,e){return e&&(Pr[e]=t),t};gt.inherit=function(t){return function(e,i){var r=t.apply(this,[e]);return gt.registerClass(r,i),r}}(gt.inherit);var Eo=gt;var Fo="totalCount",Rr="load",Bo="byKey",So="insert",To="update",Mo="remove";function vt(t){return t&&C(t.then)}function Je(t){return new _().resolve(t).promise()}function $t(t,e){if(!C(e))throw k.Error("E4011",t)}function Po(t){throw k.Error("E4012",t)}function Ke(t){function e(i){var r=i[0],n=i[1];return!r||!r.getResponseHeader?null:co(r,n)}return function(i){var r;i instanceof Error?r=i:r=new Error(e(arguments)||i&&String(i)||"Unknown error"),r.message!==Er&&t.reject(r)}}function Ro(t,e){var i=t._loadFunc,r;return $t(Rr,i),r=i.apply(t,[e]),Array.isArray(r)?r=Je(r):r==null?r=Je([]):vt(r)||Po(Rr),Fe(r)}function fl(t,e){var i=t._totalCountFunc,r;if(!C(i))throw k.Error("E4021");return r=i.apply(t,[e]),vt(r)||(r=Number(r),isFinite(r)||Po(Fo),r=Je(r)),Fe(r)}function ml(t,e,i){var r=t._byKeyFunc,n;return $t(Bo,r),n=r.apply(t,[e,i]),vt(n)||(n=Je(n)),Fe(n)}function Lo(t,e,i,r){if(e.__rawData)r(e.__rawData);else{var n=e.__rawDataPromise||Ro(e,i);e._cacheRawData&&(e.__rawDataPromise=n),n.always(function(){delete e.__rawDataPromise}).done(function(o){e._cacheRawData&&(e.__rawData=o),r(o)}).fail(Ke(t))}}function Oo(t,e,i,r){i=i||{};var n={};"userData"in i&&(n.userData=i.userData),Lo(t,e,n,function(o){var a=Ii(o,{errorHandler:e._errorHandler}),s,l,d=[],u,c;r||(s=Vt.queryByOptions(a,i),s===a?u=o.slice(0):d.push(s.enumerate().done(function(p){u=p}))),(i.requireTotalCount||r)&&(l=Vt.queryByOptions(a,i,!0),l===a?c=o.length:d.push(l.count().done(function(p){c=p}))),Bt.apply(so,d).done(function(){r?t.resolve(c):i.requireTotalCount?t.resolve(u,{totalCount:c}):t.resolve(u)}).fail(function(p){t.reject(p)})})}function gl(t,e,i){Lo(t,e,{},function(r){for(var n=e.key(),o,a=0,s=r.length;a<s;a++)if(o=r[a],At(n,e.keyOf(r[a]),i)){t.resolve(o);return}t.reject(k.Error("E4009"))})}var vl=Eo.inherit({ctor:function(t){t=t||{},this.callBase(t),this._useDefaultSearch=!!t.useDefaultSearch||t.loadMode==="raw",this._loadMode=t.loadMode,this._cacheRawData=t.cacheRawData!==!1,this._loadFunc=t[Rr],this._totalCountFunc=t[Fo],this._byKeyFunc=t[Bo],this._insertFunc=t[So],this._updateFunc=t[To],this._removeFunc=t[Mo]},createQuery:function(){throw k.Error("E4010")},clearRawDataCache:function(){delete this.__rawData},_totalCountImpl:function(t){var e=new _;return this._loadMode==="raw"&&!this._totalCountFunc?Oo(e,this,t,!0):(fl(this,t).done(function(i){e.resolve(Number(i))}).fail(Ke(e)),e=this._addFailHandlers(e)),e.promise()},_pushImpl:function(t){this.__rawData&&bo({keyInfo:this,data:this.__rawData,changes:t})},_loadImpl:function(t){var e=new _;return this._loadMode==="raw"?Oo(e,this,t,!1):(Ro(this,t).done(function(i,r){e.resolve(i,r)}).fail(Ke(e)),e=this._addFailHandlers(e)),e.promise()},_byKeyImpl:function(t,e){var i=new _;return this._byKeyViaLoad()?(this._requireKey(),gl(i,this,t)):ml(this,t,e).done(function(r){i.resolve(r)}).fail(Ke(i)),i.promise()},_byKeyViaLoad:function(){return this._loadMode==="raw"&&!this._byKeyFunc},_insertImpl:function(t){var e=this,i=e._insertFunc,r,n=new _;return $t(So,i),r=i.apply(e,[t]),vt(r)||(r=Je(r)),Fe(r).done(function(o){Oe().useLegacyStoreResult?n.resolve(t,o):n.resolve(o||t,e.keyOf(o))}).fail(Ke(n)),n.promise()},_updateImpl:function(t,e){var i=this._updateFunc,r,n=new _;return $t(To,i),r=i.apply(this,[t,e]),vt(r)||(r=Je(r)),Fe(r).done(function(o){Oe().useLegacyStoreResult?n.resolve(t,e):n.resolve(o||e,t)}).fail(Ke(n)),n.promise()},_removeImpl:function(t){var e=this._removeFunc,i,r=new _;return $t(Mo,e),i=e.apply(this,[t]),vt(i)||(i=Je()),Fe(i).done(function(){r.resolve(t)}).fail(Ke(r)),r.promise()}}),_o=vl;var Nt=class{constructor(e){this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.pageTitle=e.pageTitle}render(){let e=[],i=x(this.loadDataUrl,"get").then(s=>{e=s.Displays.map(u=>({Id:u.Id.toString(),Caption:u.Name}));let l=[];for(let u of s.Users){let c={UserName:u.UserName,UserId:u.Id};s.Assignments.filter(g=>g.UserId===u.Id).forEach(g=>{c[g.DisplayId]=!0}),l.push(c)}let d=[{dataField:"UserName",width:300,fixed:!0,fixedPosition:"left"},{dataField:"UserId",visible:!1}];return a.option("columns",d.concat(e.map(u=>({dataField:u.Id,caption:u.Caption,dataType:"boolean",calculateCellValue:c=>!!c[u.Id]})))),l}),r=!1,n={dataSource:{store:new _o({key:"UserId",loadMode:"raw",load:()=>i,update:(s,l)=>{let d=[],u=[],c=r;return r=!0,Object.keys(l).forEach(g=>{l[g]?u.push(parseInt(g)):d.push(parseInt(g))}),window.setTimeout(()=>{r=!1},0),x(this.updateDataUrl,"put",{userId:s,displaysToRemove:d,displaysToAdd:u},!c).promise()}})},height:"100%",selection:{mode:"none"},allowColumnResizing:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},remoteOperations:!1,editing:{allowUpdating:!0,mode:"cell",refreshMode:"repaint"}},o={exportFileName:"DisplayManagement",summaryColumn:"UserName"},a;this.isStandalonePage?a=oi(this.$container,n,o,this.pageTitle,"",!0):a=$e(this.$container,n,o,this.pageTitle,"",!0)}};var Lr=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Settings";this.SWITCH_TO_VIEWER_TEXT="Switch to Display";this.STORAGE_MODE_KEY="CDM_STORAGE_MODE_KEY";let i=`/${e.cdmReportControllerUrl}/${e.reportParams.ReportId}`;this.$rootElement=e.$container,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer",this.controlConfiguratorOptions=this.getControlConfiguratorOptions(i,e.cdmReportControllerUrl),this.displayManagerOptions=this.getDisplayManagerOptions(i),this.controlDisplayOptions=this.getControlDisplayOptions(i,e.userName,e.reportParams)}render(){this.reportParams.Details&&(this.popover=ue(".report-details-link",this.reportParams.Details)),this.allowEditing&&this.initSwitchModeButton(),this.renderContent()}dispose(){var e,i,r;(e=this.multiView)==null||e.dispose(),(i=this.tabPanel)==null||i.dispose(),(r=this.popover)==null||r.dispose()}renderContent(){this.mode==="Viewer"?this.renderDisplay():this.renderTabPanel()}getControlConfiguratorOptions(e,i){return{$container:null,isStandalonePage:!1,pageTitle:"",availableRolesUrl:`/${i}/AvailableRoles`,groupFieldsUrl:`${e}/AllControlFields`,loadDataUrl:`${e}/ConfiguratorData`,updateDataUrl:`${e}/ConfiguratorData`}}getDisplayManagerOptions(e){return{$container:null,isStandalonePage:!1,pageTitle:"",loadDataUrl:`${e}/ControlDisplayUserAssignments`,updateDataUrl:`${e}/UpdateControlDisplayUserAssignments`}}getControlDisplayOptions(e,i,r){return{$container:null,isStandalonePage:!1,pageTitle:"",exportFileName:r.Name,userConfigUrl:`${e}/FieldsPermissions`,controlLogsUrl:`${e}/GetControlLogs`,loadDataUrl:`${e}/ControlDisplayData`,updateDataUrl:`${e}/UpdateControlDisplayData`,userName:i,importFileOptions:r.AllowImporting?{mode:r.ImportFileMode,createTableUrl:`${e}/create-table`,addRowsUrl:`${e}/add-rows`,fileUploadUrl:`${e}/get-columns`,predefinedTable:r.FileImporterTableInfo}:void 0,gridFiltersManagerOptions:{loadDataUrl:`${e}/GetControlFilters`,insertDataUrl:`${e}/AddControlFilter`,updateDataUrl:`${e}/UpdateControlFilter`,deleteDataUrl:`${e}/RemoveControlFilter`},gridViewsManagerOptions:{loadDataUrl:`${e}/GetControlViews`,insertDataUrl:`${e}/AddControlView`,updateDataUrl:`${e}/UpdateControlView`,deleteDataUrl:`${e}/RemoveControlView`},gridDisplaysManagerOptions:{loadDataUrl:`${e}/GetControlDisplays`,insertDataUrl:`${e}/AddControlDisplay`,updateDataUrl:`${e}/UpdateControlDisplay`,deleteDataUrl:`${e}/RemoveControlDisplay`},remoteControlDisplayUserSettingsManagerLoadOptions:{loadDataUrl:`${e}/GetControlDisplayUserSettings`,updateDataUrl:`${e}/UpdateControlDisplayUserSettings`}}}initSwitchModeButton(){let e=$(".switch-mode-btn").dxButton({text:this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT,onClick:()=>{this.mode=this.mode==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),this.mode),e.option("text",this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT),this.renderContent()}}).dxButton("instance")}renderDisplay(){this.$rootElement.html("");let e=$("<div />").attr({id:"cdm-report__display-grid-container"}).appendTo(this.$rootElement);this.multiView=e.dxMultiView({items:[{template:()=>{let i=new Ot(S(w({},this.controlDisplayOptions),{$container:$("<div />").attr({id:"cdm-report__display-grid"})}));return i.render(),i.$container}}]}).addClass("cdm-report__disply-grid").dxMultiView("instance"),le(this.multiView,!0)}renderTabPanel(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.tabPanel=this.createTabPanel(e),le(this.tabPanel,!0)}createTabPanel(e){return e.dxTabPanel({swipeEnabled:!1,showNavButtons:!0,onSelectionChanged:i=>{setTimeout(()=>{i.component.repaint()})},items:[{title:"Configurator",template:()=>{let i=new St(S(w({},this.controlConfiguratorOptions),{$container:$("<div />")}));return i.render(),i.$container}},{title:"Display Manager",template:()=>{let i=new Nt(S(w({},this.displayManagerOptions),{$container:$("<div />")}));return i.render(),i.$container}}]}).addClass("cdm-report__configuration-tab-panel").dxTabPanel("instance")}getSessionKey(){return this.STORAGE_MODE_KEY+this.reportParams.ReportId}};function bi(t,e,i,r,n){let o=new Lr({$container:t,reportParams:e,userName:i,allowEditing:r,cdmReportControllerUrl:n});return o.render(),o}var Ar=class{get popup(){return this._popup||(this._popup=this.createPopup()),this._popup}constructor(e){this.sessionExpireTimeMs=e.sessionExpireTimeMs,this.displayDurationMs=e.displayDurationMs,this.sessionPingUrl=e.sessionPingUrl,this.logoutUrl=e.logoutUrl,this.pingSessionIfTabIsActive=this.pingSessionIfTabIsActive.bind(this)}reset(){var e;this.clearTimeoutsAndIntervals(),(e=this.popup)==null||e.hide(),this.expirationTime=this.getExpirationTime(),this.watingTimeoutId=window.setTimeout(()=>{this.showNotification()},Math.max(this.sessionExpireTimeMs-this.displayDurationMs,0)),this.pingIntervalId=window.setInterval(()=>{this.pingSessionIfTabIsActive()},60*1e3),$(document).on("visibilitychange",this.pingSessionIfTabIsActive)}dispose(){this.clearTimeoutsAndIntervals()}showNotification(){var e;(e=this.popup)==null||e.show(),this.clearTimeoutsAndIntervals(),this.updatePopupContent(),this.counterIntervalId=window.setInterval(()=>{this.updatePopupContent()},1e3)}clearTimeoutsAndIntervals(){this.watingTimeoutId&&clearTimeout(this.watingTimeoutId),this.counterIntervalId&&clearInterval(this.counterIntervalId),this.pingIntervalId&&clearInterval(this.pingIntervalId),$(document).off("visibilitychange",this.pingSessionIfTabIsActive)}getExpirationTime(){let e=new Date;return e.setMilliseconds(e.getMilliseconds()+this.sessionExpireTimeMs),e}createPopup(){return $("<div />").dxPopup({title:"Session Expiring",closeOnOutsideClick:!1,resizeEnabled:!1,showCloseButton:!1,dragEnabled:!1,maxHeight:190,maxWidth:370,visible:!1,contentTemplate:()=>(this.$textContainer=$("<span />"),this.$textContainer.append(this.getCounterText()),$("<div />").append(this.$textContainer)),toolbarItems:[{widget:"dxButton",toolbar:"bottom",location:"before",options:{type:"default",text:"Continue session",onInitialized:e=>this.continuerButton=e.component,onClick:()=>{this.refreshSession()}}},{widget:"dxButton",toolbar:"bottom",location:"before",options:{type:"default",text:"Reload page",onInitialized:e=>this.okButton=e.component,onClick:()=>{window.location.reload()}}},{widget:"dxButton",toolbar:"bottom",location:"after",options:{text:"Log Out",onInitialized:e=>this.logoutButton=e.component,onClick:()=>{this.logOut()}}}]}).appendTo($(document.body)).dxPopup("instance")}getCounterText(){let e=Math.max(this.getSecondsToExpiration(),0);if(e===0)return $("<span />").text("Your session has been expired");{let i=$("<span />").text("Your session will expire in "),r=$("<span />").addClass("session-notifier__counter").text(e.toFixed(0)),n=$("<span />").text(" seconds");return $("<span />").append(i,r,n)}}getSecondsToExpiration(){return(this.expirationTime.getTime()-new Date().getTime())/1e3}refreshSession(){this.reset(),x(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||window.location.reload()}).catch(()=>window.location.reload())}pingSessionIfTabIsActive(){document.hidden||x(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||this.setExpired()})}setExpired(){this.expirationTime=new Date,this.showNotification(),this.pingIntervalId&&clearInterval(this.pingIntervalId)}logOut(){window.location.href=this.logoutUrl}updatePopupContent(){var i;let e=this.getSecondsToExpiration()<=0;(i=this.$textContainer)==null||i.html("").append(this.getCounterText()),this.okButton.option("visible",e),this.continuerButton.option("visible",!e),this.logoutButton.option("visible",!e)}};var yl={edit:"edit",saving:"saving",saved:"saved"},ae=yl;var Di=class extends ve{constructor(e,i){super();this.OUTDATE_COLUMNS_FOUND_EVENT="outdated-columns-found-event";this.stateLoaded=!1;this.loadedColumns={};this.additionalColumnsSettings={};this.id=e,this.gridDataLayer=i}load(e,i){return this.gridDataLayer.getGridViewSettings(this.id).then(r=>(this.onDataLoaded(r),e&&this.checkColumnsRelevance(r.columns,i),r))}save(e,i,r){let n={};if(!e.columns)return;e.columns.forEach(a=>{let s=this.additionalColumnsSettings[a.dataField];s&&(a.caption=s.caption,a.tooltip=s.tooltip),a.dataType||(a.dataType="default"),!!a.width&&a.visible&&(n[a.visibleIndex]=a.width)});let o=JSON.stringify(e.columns);return!this.stateLoaded||o===this.lastColumnSettingsStr?null:(this.lastColumnSettingsStr=o,i&&i(),this.gridDataLayer.updateGridViewSettings(this.id,e).then(()=>{r&&r()}),n)}checkNewColumns(e){let i=[];if(e.columns){let r=e.columns.filter(n=>!this.loadedColumns[n.dataField]&&n.visible);r.length&&r.forEach(n=>{i.push(n.dataField),this.loadedColumns[n.dataField]=!0})}return i}getColumnCaptions(){return Object.keys(this.additionalColumnsSettings).map(e=>({dataField:e,caption:this.additionalColumnsSettings[e].caption}))}setColumnCaption(e,i){this.additionalColumnsSettings[e]||(this.additionalColumnsSettings[e]={caption:"",tooltip:""}),this.additionalColumnsSettings[e].caption=i}getColumnAdditionalSettings(e){return this.additionalColumnsSettings[e]}checkColumnsRelevance(e,i){this.gridDataLayer.getColumnsByReportId(this.id).then(r=>{let n={};r.forEach(a=>n[a.Name]=!0);let o=e.filter(a=>!n[a.dataField]).map(a=>a.dataField);o.length&&DevExpress.ui.dialog.confirm(`Grid settings contain some colunms which don't exist in the database table anymore:
7
+ </div>`).join("");$(`<div class='aps-control-logs'>${c}</div>`).appendTo(d)}}]}).appendTo(a)}}:void 0,onContentReady:a=>{!a.component||this.prepareFilterPanel(a.component)},onEditorPreparing:a=>{if(a.parentType!=="dataRow")return;let s=e.find(d=>d.Name===a.dataField);if(!s)return;let l=!this.hasPermisson(s.Permissions,4);if(a.editorOptions.readOnly=l,!l&&s.Type==="string"){let d=a.setValue;a.setValue=u=>{d(u.trim())}}},onCellPrepared:a=>{if(a.rowType==="data"){let s=e.find(l=>l.Name===a.column.dataField);s&&!this.hasPermisson(s.Permissions,4)&&$(a.cellElement).addClass("aps-grid__disabled-cell")}},onRowExpanded:a=>{let s=a.component.getRowIndexByKey(a.key)+1;a.component.getCellElement(s,0).parent().find(".dx-master-detail-cell").find(".dx-datagrid").first().parent().dxDataGrid("instance").refresh()}};return de(`#${this.$container.attr("id")}`,{options:o,isFullScreen:this.isStandalonePage,setDefaultColumnWidth:!0,exportFileName:this.exportFileName,title:this.pageTitle,disableSummaryColumnDetection:!0})}createMainGridDataSource(e){return{store:te({key:e.filter(t=>t.IsKeyColumn).map(t=>t.Name),loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl})}}prepareFilterPanel(e){let t=e.element().find(".dx-datagrid-filter-panel"),r=t.find(".dx-icon-filter"),n=t.find(".dx-datagrid-filter-panel-text");r.off("click"),n.off("click")}initRowsCountSummary(e){let t=e.getVisibleColumns().find(a=>!!a.dataField);if(!t)return;let r="RowsCount",n=e.option("summary.totalItems")||[],o=n.find(a=>a&&a.name===r);o&&o.column===t.dataField||(o?o.column=t.dataField:n.push({name:r,column:t.dataField,summaryType:"count",alignment:"left"}),this.mainGrid.option("summary.totalItems",n))}clearFilterRowAfterViewSwitching(){let e=()=>{let t={};(this.gridViewsToolbarComponent.options.gridStateManager.currentSavedGridState.columns||this.gridViewsToolbarComponent.options.owner.option("columns")).filter(n=>n.visibleIndex&&(n.filterValue||n.filterValues)).forEach(n=>t[n.visibleIndex]=n),$('td [aria-label*="Filter cell"]').filter(n=>!t[n]).val(""),this.mainGrid.off("contentReady",e)};this.mainGrid.on("contentReady",e)}};function Te(){return Te=Object.assign||function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Te.apply(this,arguments)}var ja={"[object Array]":"array","[object Date]":"date","[object Object]":"object","[object String]":"string","[object Null]":"null"},li=function(i){var e=Object.prototype.toString.call(i);return typeof i=="object"?ja[e]||"object":typeof i};var X=function(i){return i!=null},C=function(i){return typeof i=="function"},we=function(i){return typeof i=="string"},Ie=function(i){return typeof i=="number"&&isFinite(i)||!isNaN(i-parseFloat(i))},re=function(i){return li(i)==="object"},In=function(i){var e;for(e in i)return!1;return!0},K=function(i){if(!i||Object.prototype.toString.call(i)!=="[object Object]")return!1;var e=Object.getPrototypeOf(i),t=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof t=="function"&&Object.toString.call(t)===Object.toString.call(Object)};var Y=function(i){return i!=null&&i===i.window};var or=function(i){return i&&C(i.then)},di=function(i){return i&&C(i.done)&&C(i.fail)};var dt=(i,e)=>{if(Array.isArray(i))return i.map(e);var t=[];for(var r in i)t.push(e(i[r],r));return t},A=(i,e)=>{if(!!i){if("length"in i)for(var t=0;t<i.length&&e.call(i[t],t,i[t])!==!1;t++);else for(var r in i)if(e.call(i[r],r,i[r])===!1)break;return i}};var qa=function(){},ar=function(i){return typeof console>"u"||!C(console[i])?qa:console[i].bind(console)},ui={info:ar("info"),warn:ar("warn"),error:ar("error")},ah=function(){function i(e,t){if(!e)throw new Error(t)}return{assert:i,assertParam:function(e,t){i(e!=null,t)}}}();var bn=function(i,e,t){i=i||{};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=e[r];(!(r in i)||t)&&(i[r]=n)}return i},z=function i(e){e=e||{};var t=1,r=!1;for(typeof e=="boolean"&&(r=e,e=arguments[1]||{},t++);t<arguments.length;t++){var n=arguments[t];if(n!=null)for(var o in n){var a=e[o],s=n[o],l=!1,d=void 0;o==="__proto__"||o==="constructor"||e===s||(r&&s&&(K(s)||(l=Array.isArray(s)))?(l?d=a&&Array.isArray(a)?a:[]:d=a&&K(a)?a:{},e[o]=i(r,d,s)):s!==void 0&&(e[o]=s))}}return e};var ph=function(){var i=[new RegExp("&","g"),new RegExp('"',"g"),new RegExp("'","g"),new RegExp("<","g"),new RegExp(">","g")];return function(e){return String(e).replace(i[0],"&amp;").replace(i[1],"&quot;").replace(i[2],"&#39;").replace(i[3],"&lt;").replace(i[4],"&gt;")}}();function sr(i){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];return C(i)?i(...t):(t.forEach((n,o)=>{we(n)&&(n=n.replace(/\$/g,"$$$$"));var a=new RegExp("\\{"+o+"\\}","gm");i=i.replace(a,n)}),i)}var ch=function(){var i=/\s/g;return function(e){return!e||!e.replace(i,"")}}();var Dn="21.1.6";var Xa="http://js.devexpress.com/error/"+Dn.split(".").slice(0,2).join("_")+"/";function pi(i,e){var t={ERROR_MESSAGES:z(e,i),Error:function(){return a([].slice.call(arguments))},log:function(l){var d="log";/^E\d+$/.test(l)?d="error":/^W\d+$/.test(l)&&(d="warn"),ui[d](d==="log"?l:r([].slice.call(arguments)))}};function r(l){var d=l[0];return l=l.slice(1),o(d,n(d,l))}function n(l,d){return d=[t.ERROR_MESSAGES[l]].concat(d),sr.apply(this,d).replace(/\.*\s*?$/,"")}function o(l,d){return sr.apply(this,[`{0} - {1}. See:
8
+ {2}`,l,d,s(l)])}function a(l){var d=l[0];l=l.slice(1);var u=n(d,l),c=s(d),p=o(d,u);return z(new Error(p),{__id:d,__details:u,url:c})}function s(l){return Xa+l}return t}var ne=pi({E0001:"Method is not implemented",E0002:"Member name collision: {0}",E0003:"A class must be instantiated using the 'new' keyword",E0004:"The NAME property of the component is not specified",E0005:"Unknown device",E0006:"Unknown endpoint key is requested",E0007:"'Invalidate' method is called outside the update transaction",E0008:"Type of the option name is not appropriate to create an action",E0009:"Component '{0}' has not been initialized for an element",E0010:"Animation configuration with the '{0}' type requires '{1}' configuration as {2}",E0011:"Unknown animation type '{0}'",E0012:"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later",E0013:"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later",E0014:"The 'release' method shouldn't be called for an unlocked Lock object",E0015:"Queued task returned an unexpected result",E0017:"Event namespace is not defined",E0018:"DevExpress.ui.DevExpressPopup widget is required",E0020:"Template engine '{0}' is not supported",E0021:"Unknown theme is set: {0}",E0022:"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts",E0023:"Template name is not specified",E0024:"DevExtreme bundle already included",E0025:"Unexpected argument type",E0100:"Unknown validation type is detected",E0101:"Misconfigured range validation rule is detected",E0102:"Misconfigured comparison validation rule is detected",E0103:"validationCallback of an asynchronous rule should return a jQuery or a native promise",E0110:"Unknown validation group is detected",E0120:"Adapter for a DevExpressValidator component cannot be configured",E0121:"The 'customItem' field of the 'onCustomItemCreating' function's parameter should contain a custom item or Promise that is resolved after the item is created.",W0000:"'{0}' is deprecated in {1}. {2}",W0001:"{0} - '{1}' option is deprecated in {2}. {3}",W0002:"{0} - '{1}' method is deprecated in {2}. {3}",W0003:"{0} - '{1}' property is deprecated in {2}. {3}",W0004:"Timeout for theme loading is over: {0}",W0005:"'{0}' event is deprecated in {1}. {2}",W0006:"Invalid recurrence rule: '{0}'",W0007:"'{0}' Globalize culture is not defined",W0008:"Invalid view name: '{0}'",W0009:"Invalid time zone name: '{0}'",W0010:"{0} is deprecated in {1}. {2}",W0011:"Number parsing is invoked while the parser is not defined",W0012:"Date parsing is invoked while the parser is not defined",W0013:"'{0}' file is deprecated in {1}. {2}",W0014:"{0} - '{1}' type is deprecated in {2}. {3}",W0015:"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.",W0016:'The "{0}" option does not accept the "{1}" value since v.{2}. {3}.'});var Ya=function(i,e,t){return function(){var r=this.callBase;this.callBase=i[e];try{return t.apply(this,arguments)}finally{this.callBase=r}}},Za=function(i){var e=function(){};return e.prototype=i.prototype,new e},es=function(i){var e,t,r;if(!i)return this;for(t in i)r=i[t],e=typeof this.prototype[t]=="function"&&typeof r=="function",this.prototype[t]=e?Ya(this.parent.prototype,t,r):r;return this},ts=function(){var i=this,e,t,r,n=Object.prototype.hasOwnProperty.bind(i),o=!n("_includedCtors")&&!n("_includedPostCtors");for(o&&(i._includedCtors=i._includedCtors.slice(0),i._includedPostCtors=i._includedPostCtors.slice(0)),r=0;r<arguments.length;r++){e=arguments[r],e.ctor&&i._includedCtors.push(e.ctor),e.postCtor&&i._includedPostCtors.push(e.postCtor);for(t in e)t==="ctor"||t==="postCtor"||t==="default"||(i.prototype[t]=e[t])}return i},is=function(i){var e=Object.prototype.hasOwnProperty.bind(this)("parent"),t=!e&&this.parent;if(t){var r=Object.getPrototypeOf(this);return r===i||r.subclassOf(i)}else return this.parent===i?!0:!this.parent||!this.parent.subclassOf?!1:this.parent.subclassOf(i)},Cn=function(){throw ne.Error("E0001")},rs=function(){var i=Object.prototype.hasOwnProperty;return function(e,t){for(var r in e){if(!i.call(e,r))return;t[r]=e[r]}}}(),lr=function(){};lr.inherit=function(i){var e=function(){if(!this||Y(this)||typeof this.constructor!="function")throw ne.Error("E0003");var t=this,r=t.ctor,n=t.constructor._includedCtors,o=t.constructor._includedPostCtors,a;for(a=0;a<n.length;a++)n[a].call(t);for(r&&r.apply(t,arguments),a=0;a<o.length;a++)o[a].call(t)};return e.prototype=Za(this),rs(this,e),e.inherit=this.inherit,e.abstract=Cn,e.redefine=es,e.include=ts,e.subclassOf=is,e.parent=this,e._includedCtors=this._includedCtors?this._includedCtors.slice(0):[],e._includedPostCtors=this._includedPostCtors?this._includedPostCtors.slice(0):[],e.prototype.constructor=e,e.redefine(i),e};lr.abstract=Cn;var oe=lr;function Me(i){var e=oe.inherit(i),t=e,r=new t(i),n={},o=function(a,s){A(a,function(l){C(r[l])?(s||!i[l])&&(i[l]=function(){return r[l].apply(i,arguments)}):(s&&(n[l]=i[l]),i[l]=r[l])})};return o(i,!0),i.inject=function(a){t=t.inherit(a),r=new t,o(a)},i.resetInjection=function(){z(i,n),t=e,r=new e},i}var He=Me({isWrapped:function(){return!1},isWritableWrapped:function(){return!1},wrap:function(i){return i},unwrap:function(i){return i},assign:function(){ui.error("Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.")}});var _h=function(){function i(){}return function(e){return i.prototype=e,new i}}();var ns=function(i,e,t,r){!r&&He.isWrapped(i[e])?He.assign(i[e],t):i[e]=t},Ft=function i(e,t,r,n){var o,a;for(var s in t)if(o=e[s],a=t[s],!(s==="__proto__"||s==="constructor"||e===a)){if(K(a)){var l=r?re(o):K(o);a=i(l?o:{},a,r,n)}a!==void 0&&o!==a&&ns(e,s,a,n)}return e};var En={rtlEnabled:!1,defaultCurrency:"USD",oDataFilterToLower:!0,serverDecimalSeparator:".",decimalSeparator:".",thousandsSeparator:",",forceIsoDateParsing:!0,wrapActionsBeforeExecute:!0,useLegacyStoreResult:!1,useJQuery:void 0,editorStylingMode:void 0,useLegacyVisibleIndex:!1,floatingActionButtonConfig:{icon:"add",closeIcon:"close",label:"",position:{at:"right bottom",my:"right bottom",offset:{x:-16,y:-16}},maxSpeedDialActionCount:5,shading:!1,direction:"auto"},optionsParser:i=>{i.trim().charAt(0)!=="{"&&(i="{"+i+"}");try{return new Function("return "+i)()}catch(e){throw ne.Error("E3018",e,i)}}},os=["decimalSeparator","thousandsSeparator"],Sn=function(){if(!arguments.length)return En;var i=arguments.length<=0?void 0:arguments[0];os.forEach(e=>{if(i[e]){var t="Now, the ".concat(e," is selected based on the specified locale.");ne.log("W0003","config",e,"19.2",t)}}),z(En,i)};typeof DevExpress<"u"&&DevExpress.config&&Sn(DevExpress.config);var Oe=Sn;var as=oe.inherit({ctor:function(i){i&&(i=String(i)),this._value=this._normalize(i||this._generate())},_normalize:function(i){for(i=i.replace(/[^a-f0-9]/gi,"").toLowerCase();i.length<32;)i+="0";return[i.substr(0,8),i.substr(8,4),i.substr(12,4),i.substr(16,4),i.substr(20,12)].join("-")},_generate:function(){for(var i="",e=0;e<32;e++)i+=Math.round(15*Math.random()).toString(16);return i},toString:function(){return this._value},valueOf:function(){return this._value},toJSON:function(){return this._value}}),dr=as;var be=function(i){this._options=i||{},this._list=[],this._queue=[],this._firing=!1,this._fired=!1,this._firingIndexes=[]};be.prototype._fireCore=function(i,e){var t=this._firingIndexes,r=this._list,n=this._options.stopOnFalse,o=t.length;for(t[o]=0;t[o]<r.length;t[o]++){var a=r[t[o]].apply(i,e);if(a===!1&&n)break}t.pop()};be.prototype.add=function(i){return typeof i=="function"&&(!this._options.unique||!this.has(i))&&this._list.push(i),this};be.prototype.remove=function(i){var e=this._list,t=this._firingIndexes,r=e.indexOf(i);if(r>-1&&(e.splice(r,1),this._firing&&t.length))for(var n=0;n<t.length;n++)r<=t[n]&&t[n]--;return this};be.prototype.has=function(i){var e=this._list;return i?e.indexOf(i)>-1:!!e.length};be.prototype.empty=function(i){return this._list=[],this};be.prototype.fireWith=function(i,e){var t=this._queue;if(e=e||[],e=e.slice?e.slice():e,this._options.syncStrategy)this._firing=!0,this._fireCore(i,e);else{if(t.push([i,e]),this._firing)return;for(this._firing=!0;t.length;){var r=t.shift();this._fireCore(r[0],r[1])}}return this._firing=!1,this._fired=!0,this};be.prototype.fire=function(){this.fireWith(this,arguments)};be.prototype.fired=function(){return this._fired};var ss=function(i){return new be(i)},De=ss;var Tn=[{method:"resolve",handler:"done",state:"resolved"},{method:"reject",handler:"fail",state:"rejected"},{method:"notify",handler:"progress"}],ut=function(){var i=this;this._state="pending",this._promise={},Tn.forEach(function(e){var t=e.method;this[t+"Callbacks"]=new De,this[t]=function(){return this[t+"With"](this._promise,arguments)}.bind(this),this._promise[e.handler]=function(r){if(!r)return this;var n=i[t+"Callbacks"];return n.fired()?r.apply(i[t+"Context"],i[t+"Args"]):n.add(function(o,a){r.apply(o,a)}.bind(this)),this}}.bind(this)),this._promise.always=function(e){return this.done(e).fail(e)},this._promise.catch=function(e){return this.then(null,e)},this._promise.then=function(e,t){var r=new ut;return["done","fail"].forEach(function(n){var o=n==="done"?e:t;this[n](function(){if(!o){r[n==="done"?"resolve":"reject"].apply(this,arguments);return}var a=o&&o.apply(this,arguments);di(a)?a.done(r.resolve).fail(r.reject):or(a)?a.then(r.resolve,r.reject):r.resolve.apply(this,X(a)?[a]:arguments)})}.bind(this)),r.promise()},this._promise.state=function(){return i._state},this._promise.promise=function(e){return e?z(e,i._promise):i._promise},this._promise.promise(this)};Tn.forEach(function(i){var e=i.method,t=i.state;ut.prototype[e+"With"]=function(r,n){var o=this[e+"Callbacks"];return this.state()==="pending"&&(this[e+"Args"]=n,this[e+"Context"]=r,t&&(this._state=t),o.fire(r,n)),this}});function Fe(i,e){if(di(i))return i;if(or(i)){var t=new ut;return i.then(function(){t.resolveWith.apply(t,[e].concat([[].slice.call(arguments)]))},function(){t.rejectWith.apply(t,[e].concat([[].slice.call(arguments)]))}),t}return new ut().resolveWith(e,[i])}var ls=function(){if(arguments.length===1)return Fe(arguments[0]);for(var i=[].slice.call(arguments),e=[],t=0,r=new ut,n=function(a){return function(s){e[a]=this,i[a]=arguments.length>1?[].slice.call(arguments):s,t++,t===i.length&&r.resolveWith(e,i)}},o=0;o<i.length;o++)di(i[o])?i[o].promise().done(n(o)).fail(r.reject):t++;return t===i.length&&r.resolveWith(e,i),r.promise()};function _(){return new ut}function Bt(){return ls.apply(this,arguments)}var ds=He.unwrap,Zh=He.isWrapped,ef=He.assign,us=function(i){return i.replace(/\[/g,".").replace(/\]/g,"")};var ps=function(i){return i=i||{},i.unwrapObservables=i.unwrapObservables!==void 0?i.unwrapObservables:!0,i};function Mn(i,e){return e.unwrapObservables?ds(i):i}var pe=function(i){if(arguments.length>1&&(i=[].slice.call(arguments)),!i||i==="this")return function(t){return t};if(typeof i=="string"){i=us(i);var e=i.split(".");return function(t,r){r=ps(r);for(var n=r.functionsAsIs,o=("defaultValue"in r),a=Mn(t,r),s=0;s<e.length;s++){if(!a){if(a==null&&o)return r.defaultValue;break}var l=e[s];if(o&&re(a)&&!(l in a))return r.defaultValue;var d=Mn(a[l],r);!n&&C(d)&&(d=d.call(a)),a=d}return a}}if(Array.isArray(i))return cs(i);if(C(i))return i};function cs(i){for(var e={},t=0,r=i.length;t<r;t++){var n=i[t];e[n]=pe(n)}return function(o,a){var s;return A(e,function(l){var d=this(o,a);if(d!==void 0){for(var u=s||(s={}),c=l.split("."),p=c.length-1,g=0;g<p;g++){var b=c[g];b in u||(u[b]={}),u=u[b]}u[c[p]]=d}}),s}}var J=function(i,e){return i instanceof Date?i.getTime():i&&i instanceof oe&&i.valueOf?i.valueOf():!e&&typeof i=="string"?i.toLowerCase():i};var ci=function(){};var On=function(i,e,t){for(var r=[],n,o=!t,a=0;a<i.length;a++)n=!!e(i[a],a),n===o&&r.push(i[a]);return r},hs=function(i,e,t){if(i.length!==e.length)return!1;for(var r=0;r<i.length;r++)if(!Pt(i[r],e[r],t+1))return!1;return!0},fs=function(i,e,t,r){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)&&!Pt(i[n],e[n],t+1,r))return!1;for(var o in e)if(!(o in i))return!1;return!0},ms=3,Pt=function(i,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;i=J(i,!0),e=J(e,!0);var n=r?i===e:i==e;return n||t>=ms?!0:re(i)&&re(e)?fs(i,e,t,r):Array.isArray(i)&&Array.isArray(e)?hs(i,e,t):!1};var gs=1,vs=3,ys=9,xs={querySelectorAll:(i,e)=>i.querySelectorAll(e),elementMatches(i,e){var t=i.matches||i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector||(r=>{var n=i.document||i.ownerDocument;if(!n)return!1;for(var o=this.querySelectorAll(n,r),a=0;a<o.length;a++)if(o[a]===i)return!0});return t.call(i,e)},createElement(i,e){return e=e||this._document,e.createElement(i)},createElementNS(i,e,t){return t=t||this._document,t.createElementNS(i,e)},createTextNode(i,e){return e=e||this._document,e.createTextNode(i)},isNode:i=>i&&typeof i=="object"&&"nodeType"in i&&"nodeName"in i,isElementNode:i=>i&&i.nodeType===gs,isTextNode:i=>i&&i.nodeType===vs,isDocument:i=>i&&i.nodeType===ys,removeElement(i){var e=i&&i.parentNode;e&&e.removeChild(i)},insertElement(i,e,t){i&&e&&i!==e&&(t?i.insertBefore(e,t):i.appendChild(e))},getAttribute:(i,e)=>i.getAttribute(e),setAttribute(i,e,t){i.setAttribute(e,t)},removeAttribute(i,e){i.removeAttribute(e)},setProperty(i,e,t){i[e]=t},setText(i,e){i&&(i.textContent=e)},setClass(i,e,t){if(i.nodeType===1&&e)if(i.classList)t?i.classList.add(e):i.classList.remove(e);else{var r=typeof i.className=="string",n=r?i.className:this.getAttribute(i,"class")||"",o=n.split(" "),a=o.indexOf(e),s;t&&a<0&&(s=n?n+" "+e:e),!t&&a>=0&&(o.splice(a,1),s=o.join(" ")),s!==void 0&&(r?i.className=s:this.setAttribute(i,"class",s))}},setStyle(i,e,t){i.style[e]=t||""},_document:typeof document>"u"?void 0:document,getDocument(){return this._document},getActiveElement(){return this._document.activeElement},getBody(){return this._document.body},createDocumentFragment(){return this._document.createDocumentFragment()},getDocumentElement(){return this._document.documentElement},getLocation(){return this._document.location},getSelection(){return this._document.selection},getReadyState(){return this._document.readyState},getHead(){return this._document.head},hasDocumentProperty(i){return i in this._document},listen(i,e,t,r){return!i||!("addEventListener"in i)?ci:(i.addEventListener(e,t,r),()=>{i.removeEventListener(e,t)})}},f=Me(xs);var ws=typeof window<"u",Be=()=>ws,pt=Be()?window:void 0;pt||(pt={},pt.window=pt);var ce=()=>pt;var Fn=()=>Be()?pt.navigator:{userAgent:""};var Is=Fn(),bs=/(webkit)[ /]([\w.]+)/,Ds=/(msie) (\d{1,2}\.\d)/,Cs=/(trident).*rv:(\d{1,2}\.\d)/,Es=/(edge)\/((\d+)?[\w.]+)/,Ss=/(mozilla)(?:.*? rv:([\w.]+))/,Bn=function(i){i=i.toLowerCase();var e={},t=Ds.exec(i)||Cs.exec(i)||Es.exec(i)||i.indexOf("compatible")<0&&Ss.exec(i)||bs.exec(i)||[],r=t[1],n=t[2];return r==="webkit"&&(e.webkit=!0,i.indexOf("chrome")>=0||i.indexOf("crios")>=0?(r="chrome",n=/(?:chrome|crios)\/(\d+\.\d+)/.exec(i),n=n&&n[1]):i.indexOf("fxios")>=0?(r="mozilla",n=/fxios\/(\d+\.\d+)/.exec(i),n=n&&n[1]):i.indexOf("safari")>=0&&/version|phantomjs/.test(i)?(r="safari",n=/(?:version|phantomjs)\/([0-9.]+)/.exec(i),n=n&&n[1]):(r="unknown",n=/applewebkit\/([0-9.]+)/.exec(i),n=n&&n[1])),(r==="trident"||r==="edge")&&(r="msie"),r&&(e[r]=!0,e.version=n),e},ur=z({_fromUA:Bn},Bn(Is.userAgent));var Ef=ur.msie&&parseInt(ur.version)<=11;var Rt=function(i,e){if(!e)return-1;var t=Array.isArray(e)?e:e.toArray();return t.indexOf(i)};var Pn=function(i,e){for(var t=0;t<e.length;t++)i[i.length]=e[t];return i};var pr=Be()?ce().WeakMap:WeakMap;pr||(pr=function(){var i=[],e=[];this.set=function(t,r){var n=Rt(t,i);n===-1?(i.push(t),e.push(r)):e[n]=r},this.get=function(t){var r=Rt(t,i);if(r!==-1)return e[r]},this.has=function(t){var r=Rt(t,i);return r!==-1},this.delete=function(t){var r=Rt(t,i);r!==-1&&(i.splice(r,1),e.splice(r,1))}});var hi=pr;var ct=class{constructor(){this.memory=[],this.callbacks=De()}add(e){A(this.memory,(t,r)=>e.apply(e,r)),this.callbacks.add(e)}remove(e){this.callbacks.remove(e)}fire(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.memory.push(t),this.callbacks.fire.apply(this.callbacks,t)}};var Rn=new ct;var Ts=["pageX","pageY","screenX","screenY","clientX","clientY"],Ms=function(i,e){if(e[i]&&!e.touches||!e.touches)return e[i];var t=e.touches.length?e.touches:e.changedTouches;if(!!t.length)return t[0][i]};function Ln(i){Ts.forEach(function(e){i(e,function(t){return Ms(e,t)})},this)}var Os=function(i){var e,t=function(){return e=i.apply(this,arguments),t=function(){return e},e};return function(){return t.apply(this,arguments)}},ht=Os;var fr=ce(),fi="dxEmptyEventType",_n={mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},Fs={focusin:"focus",focusout:"blur"},Bs=["blur","focus","load"],Vn=["touchmove","wheel","mousewheel","touchstart"],Ps=["target","relatedTarget","delegateTarget","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","shiftKey","view","char","code","charCode","key","keyCode","button","buttons","offsetX","offsetY","pointerId","pointerType","targetTouches","toElement","touches"];function Rs(i,e){return!Y(i)&&i.nodeName!=="#document"&&f.elementMatches(i,e)}var cr=new hi,kn=0,mi,Pe=function(){var i={};return Rn.add(function(e,t){i[e]=t}),{getField:function(e,t){return i[e]&&i[e][t]},callMethod:function(e,t,r,n){return i[e]&&i[e][t]&&i[e][t].apply(r,n)}}}(),F=Me({on:Lt(hr(Un(function(i,e,t,r,n){var o=ft(i,e);o.addHandler(n,t,r)}))),one:Lt(hr(function(i,e,t,r,n){F.on(i,e,t,r,function o(){F.off(i,e,t,o),n.apply(this,arguments)})})),off:Lt(As(Un(function(i,e,t,r){var n=ft(i,e);n.removeHandler(r,t)}))),trigger:Lt(Gn(function(i,e,t){var r=e.type,n=ft(i,e.type);Pe.callMethod(r,"trigger",i,[e,t]),n.callHandlers(e,t);var o=Pe.getField(r,"noBubble")||e.isPropagationStopped()||Bs.indexOf(r)!==-1;if(!o){var a=[];(function d(u){var c=u.parentNode;c&&(a.push(c),d(c))})(i),a.push(fr);for(var s=0;a[s]&&!e.isPropagationStopped();){var l=ft(a[s],e.type);l.callHandlers(z(e,{currentTarget:a[s]}),t),s++}}(i.nodeType||Y(i))&&(Pe.callMethod(r,"_default",i,[e,t]),Us(r,i))})),triggerHandler:Lt(Gn(function(i,e,t){var r=ft(i,e.type);r.callHandlers(e,t)}))});function mr(i,e){var t=i[0];if(!!t)if(f.isNode(t)||Y(t))e.apply(F,i);else if(!we(t)&&"length"in t){var r=Array.prototype.slice.call(i,0);Array.prototype.forEach.call(t,function(n){r[0]=n,mr(r,e)})}else throw ne.Error("E0025")}function Lt(i){return function(){mr(arguments,i)}}function Ls(){var i=!1;try{var e=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});fr.addEventListener("test",null,e)}catch{}return i}var $n=ht(Ls),Nn=(i,e)=>Y(i)?Nn(i.document,e):i.contains?i.contains(e):!!(e.compareDocumentPosition(i)&e.DOCUMENT_POSITION_CONTAINS);function ft(i,e){var t=cr.get(i);e=e||"";var r=e.split("."),n=r.slice(1),o=!!r[0];e=r[0]||fi,t||(t={},cr.set(i,t)),t[e]||(t[e]={handleObjects:[],nativeHandler:null});var a=t[e];return{addHandler:function(s,l,d){var u=function(I,B){var E=[I],fe=I.currentTarget,yt=I.relatedTarget,xt,Jt;e in _n&&(xt=yt&&fe&&(yt===fe||Nn(fe,yt))),B!==void 0&&E.push(B),Pe.callMethod(e,"handle",i,[I,d]),xt||(Jt=s.apply(fe,E)),Jt===!1&&(I.preventDefault(),I.stopPropagation())},c={handler:s,wrappedHandler:function(I,B){if(!(mi&&I.type===mi))if(I.data=d,I.delegateTarget=i,l)for(var E=I.target;E&&E!==i;)Rs(E,l)&&(I.currentTarget=E,u(I,B)),E=E.parentNode;else I.currentTarget=I.delegateTarget||I.target,u(I,B)},selector:l,type:e,data:d,namespace:n.join("."),namespaces:n,guid:++kn};a.handleObjects.push(c);var p=a.handleObjects.length===1,g=p&&o,b;g&&(g=!Pe.callMethod(e,"setup",i,[d,n,s])),g&&(a.nativeHandler=_s(e),$n()&&Vn.indexOf(e)>-1&&(b={passive:!1}),a.removeListener=f.listen(i,_n[e]||e,a.nativeHandler,b)),Pe.callMethod(e,"add",i,[c])},removeHandler:function(s,l){var d=function(p){var g=t[p];if(!g.handleObjects.length){delete t[p];return}var b;g.handleObjects=g.handleObjects.filter(function(E){var fe=n.length&&!An(E.namespaces,n)||s&&E.handler!==s||l&&E.selector!==l;return fe||(b=E.handler,Pe.callMethod(p,"remove",i,[E])),fe});var I=!g.handleObjects.length,B=I&&p!==fi;B&&(Pe.callMethod(p,"teardown",i,[n,b]),g.nativeHandler&&g.removeListener(),delete t[p])};if(o)d(e);else for(var u in t)d(u);var c=Object.keys(t).length===0;c&&cr.delete(i)},callHandlers:function(s,l){var d=!1,u=function(c){d||(!n.length||An(c.namespaces,n))&&(c.wrappedHandler(s,l),d=s.isImmediatePropagationStopped())};a.handleObjects.forEach(u),n.length&&t[fi]&&t[fi].handleObjects.forEach(u)}}}function _s(i){return function(e,t){var r=ft(this,i);e=F.Event(e),r.callHandlers(e,t)}}function An(i,e){for(var t=0;t<e.length;t++)if(i.indexOf(e[t])<0)return!1;return!0}function hr(i){return function(e,t,r,n,o){o||(o=n,n=void 0),typeof r!="string"&&(n=r,r=void 0),!o&&typeof t=="string"&&(o=n||r,r=void 0,n=void 0),i(e,t,r,n,o)}}function As(i){return function(e,t,r,n){typeof r=="function"&&(n=r,r=void 0),i(e,t,r,n)}}function Gn(i){return function(e,t,r){typeof t=="string"&&(t={type:t}),t.target||(t.target=e),t.currentTarget=e,t.delegateTarget||(t.delegateTarget=e),!t.type&&t.originalEvent&&(t.type=t.originalEvent.type),i(e,t instanceof F.Event?t:F.Event(t),r)}}function Gs(i){return F.Event=function(e,t){if(!(this instanceof F.Event))return new F.Event(e,t);e||(e={}),typeof e=="string"&&(e={type:e}),t||(t={}),i.call(this,e,t)},Te(F.Event.prototype,{_propagationStopped:!1,_immediatePropagationStopped:!1,_defaultPrevented:!1,isPropagationStopped:function(){return!!(this._propagationStopped||this.originalEvent&&this.originalEvent.propagationStopped)},stopPropagation:function(){this._propagationStopped=!0,this.originalEvent&&this.originalEvent.stopPropagation()},isImmediatePropagationStopped:function(){return this._immediatePropagationStopped},stopImmediatePropagation:function(){this.stopPropagation(),this._immediatePropagationStopped=!0,this.originalEvent&&this.originalEvent.stopImmediatePropagation()},isDefaultPrevented:function(){return!!(this._defaultPrevented||this.originalEvent&&this.originalEvent.defaultPrevented)},preventDefault:function(){this._defaultPrevented=!0,this.originalEvent&&this.originalEvent.preventDefault()}}),F.Event}function Un(i){var e=function(t,r){if(r&&r.indexOf(" ")>-1){var n=Array.prototype.slice.call(arguments,0);r.split(" ").forEach(function(o){n[1]=o,i.apply(this,n)})}else i.apply(this,arguments)};return function(t,r){if(typeof r=="object"){var n=Array.prototype.slice.call(arguments,0);for(var o in r)n[1]=o,n[n.length-1]=r[o],e.apply(this,n)}else e.apply(this,arguments)}}function Us(i,e){var t=Fs[i]||i;(function(r,n){return r==="click"&&n.localName==="a"})(i,e)||C(e[t])&&(mi=i,e[t](),mi=void 0)}function Vs(i){return function(e){return e.which==null&&e.type.indexOf("key")===0}(i)?i.charCode!=null?i.charCode:i.keyCode:function(e){return!e.which&&e.button!==void 0&&/^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(e.type)}(i)?{1:1,2:3,3:1,4:2}[i.button]:i.which}function Hn(i){i&&(F.Event=i,F.Event.prototype=i.prototype)}Hn(Gs(function(i,e){var t,r=i instanceof F.Event||Be()&&i instanceof fr.Event||((t=i.view)===null||t===void 0?void 0:t.Event)&&i instanceof i.view.Event;r?(this.originalEvent=i,this.type=i.type,this.currentTarget=void 0,this.timeStamp=i.timeStamp||Date.now()):Te(this,i),gr("which",Vs,this),i.type.indexOf("touch")===0&&(delete e.pageX,delete e.pageY),Te(this,e),this.guid=++kn}));function gr(i,e,t){Object.defineProperty(t||F.Event.prototype,i,{enumerable:!0,configurable:!0,get:function(){return this.originalEvent&&e(this.originalEvent)},set:function(r){Object.defineProperty(this,i,{enumerable:!0,configurable:!0,writable:!0,value:r})}})}Ps.forEach(i=>gr(i,e=>e[i]));Ln(gr);var Wn=De(),zn=De();F.set=function(i){Wn.fire(),F.inject(i),Hn(i.Event),zn.fire()};F.subscribeGlobal=function(){mr(arguments,hr(function(){var i=arguments;F.on.apply(this,i),Wn.add(function(){var e=Array.prototype.slice.call(i,0);e.splice(3,1),F.off.apply(this,e)}),zn.add(function(){F.on.apply(this,i)})}))};F.forcePassiveFalseEventNames=Vn;F.passiveEventHandlersSupported=$n;var Kn=F;var _t=new hi,We,ks=new ct,$s=function(){},Ns=function(){},Hs=function(i){ks.fire(i),We=i;var e=We.cleanData;We.cleanData=function(t){$s(t);var r=e.call(this,t);return Ns(t),r}};Hs({data:function(){var i=arguments[0],e=arguments[1],t=arguments[2];if(!!i){var r=_t.get(i);return r||(r={},_t.set(i,r)),e===void 0?r:arguments.length===2?r[e]:(r[e]=t,t)}},removeData:function(i,e){if(!!i)if(e===void 0)_t.delete(i);else{var t=_t.get(i);t&&delete t[e]}},cleanData:function(i){for(var e=0;e<i.length;e++)Kn.off(i[e]),_t.delete(i[e])}});function vr(){return We.data.apply(this,arguments)}function Jn(i,e){return We.removeData.call(this,i,e)}function gi(i,e){if(!!f.isElementNode(i)){var t=i.getElementsByTagName("*");We.cleanData(t),e&&We.cleanData([i])}}var Qn=["","Webkit","Moz","O","Ms"];var jn=ht(function(){return f.createElement("dx").style});var yr=function(i){if(i in jn())return i;var e=i;i=i.charAt(0).toUpperCase()+i.substr(1);for(var t=1;t<Qn.length;t++){var r=Qn[t].toLowerCase()+i;if(r in jn())return r}return e};var Ws=["fillOpacity","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","opacity","zIndex","zoom"],qn=function(i,e){return Ie(e)&&Ws.indexOf(i)===-1&&(e+="px"),e};var zs=ce();var xr=function(i,e){var t=0;return e.forEach(function(r){t+=parseFloat(i[r])||0}),t},wr=function(i,e){var t=i==="width"?"Left":"Top",r=i==="width"?"Right":"Bottom";return{padding:xr(e,["padding"+t,"padding"+r]),border:xr(e,["border"+t+"Width","border"+r+"Width"]),margin:xr(e,["margin"+t,"margin"+r])}},Ks=function(i,e,t){var r=e[i];return e.boxSizing==="border-box"&&r.length&&r[r.length-1]!=="%"?t.border+t.padding:0},Xn=function(i,e,t){var r=zs.getComputedStyle(i),n=wr(e,r),o=i.getClientRects().length,a=i.getBoundingClientRect()[e],s=o?a:0;return s<=0?(s=parseFloat(r[e]||i.style[e])||0,s-=Ks(e,r,n)):s-=n.padding+n.border,t.paddings&&(s+=n.padding),t.borders&&(s+=n.border),t.margins&&(s+=n.margin),s};var Yn=/<([a-z][^/\0>\x20\t\r\n\f]+)/i,he={default:{tagsCount:0,startTags:"",endTags:""},thead:{tagsCount:1,startTags:"<table>",endTags:"</table>"},td:{tagsCount:3,startTags:"<table><tbody><tr>",endTags:"</tr></tbody></table>"},col:{tagsCount:2,startTags:"<table><colgroup>",endTags:"</colgroup></table>"},tr:{tagsCount:2,startTags:"<table><tbody>",endTags:"</tbody></table>"}};he.tbody=he.colgroup=he.caption=he.tfoot=he.thead;he.th=he.td;var Ir=function(i){if(typeof i!="string")return null;var e=f.createDocumentFragment(),t=e.appendChild(f.createElement("div")),r=Yn.exec(i),n=r&&r[1].toLowerCase(),o=he[n]||he.default;t.innerHTML=o.startTags+i+o.endTags;for(var a=0;a<o.tagsCount;a++)t=t.lastChild;return Pn([],t.childNodes)},Zn=function(i){var e=Yn.exec(i);return e&&e[1]in he};var io=ce(),y,m=function(i,e){return i?typeof i=="string"?i==="body"?(this[0]=e?e.body:f.getBody(),this.length=1,this):(e=e||f.getDocument(),i[0]==="<"?(this[0]=f.createElement(i.slice(1,-1),e),this.length=1,this):([].push.apply(this,f.querySelectorAll(e,i)),this)):f.isNode(i)||Y(i)?(this[0]=i,this.length=1,this):Array.isArray(i)?([].push.apply(this,i),this):y(i.toArray?i.toArray():[i]):(this.length=0,this)};y=function(i,e){return new m(i,e)};y.fn={dxRenderer:!0};m.prototype=y.fn;var ze=function(i,e){for(var t=0;t<this.length;t++){var r=y(this[t]);r[i].apply(r,e)}return this},br=function(i,e,t){t!=null?f.setAttribute(i,e,t):f.removeAttribute(i,e)};m.prototype.show=function(){return this.toggle(!0)};m.prototype.hide=function(){return this.toggle(!1)};m.prototype.toggle=function(i){return this[0]&&this.toggleClass("dx-state-invisible",!i),this};m.prototype.attr=function(i,e){if(this.length>1&&arguments.length>1)return ze.call(this,"attr",arguments);if(!this[0])return re(i)||e!==void 0?this:void 0;if(!this[0].getAttribute)return this.prop(i,e);if(typeof i=="string"&&arguments.length===1){var t=this[0].getAttribute(i);return t??void 0}else if(K(i))for(var r in i)this.attr(r,i[r]);else br(this[0],i,e);return this};m.prototype.removeAttr=function(i){return this[0]&&f.removeAttribute(this[0],i),this};m.prototype.prop=function(i,e){if(!this[0])return this;if(typeof i=="string"&&arguments.length===1)return this[0][i];if(K(i))for(var t in i)this.prop(t,i[t]);else f.setProperty(this[0],i,e);return this};m.prototype.addClass=function(i){return this.toggleClass(i,!0)};m.prototype.removeClass=function(i){return this.toggleClass(i,!1)};m.prototype.hasClass=function(i){if(!this[0]||this[0].className===void 0)return!1;for(var e=i.split(" "),t=0;t<e.length;t++)if(this[0].classList){if(this[0].classList.contains(e[t]))return!0}else{var r=we(this[0].className)?this[0].className:f.getAttribute(this[0],"class");if((r||"").split(" ").indexOf(e[t])>=0)return!0}return!1};m.prototype.toggleClass=function(i,e){if(this.length>1)return ze.call(this,"toggleClass",arguments);if(!this[0]||!i)return this;e=e===void 0?!this.hasClass(i):e;for(var t=i.split(" "),r=0;r<t.length;r++)f.setClass(this[0],t[r],e);return this};["width","height","outerWidth","outerHeight","innerWidth","innerHeight"].forEach(function(i){var e=i.toLowerCase().indexOf("width")>=0?"Width":"Height",t=e.toLowerCase(),r=i.indexOf("outer")===0,n=i.indexOf("inner")===0;m.prototype[i]=function(o){if(this.length>1&&arguments.length>0)return ze.call(this,i,arguments);var a=this[0];if(!!a){if(Y(a))return r?a["inner"+e]:f.getDocumentElement()["client"+e];if(f.isDocument(a)){var s=f.getDocumentElement(),l=f.getBody();return Math.max(l["scroll"+e],l["offset"+e],s["scroll"+e],s["offset"+e],s["client"+e])}if(arguments.length===0||typeof o=="boolean"){var d={paddings:n||r,borders:r,margins:o};return Xn(a,t,d)}if(o==null)return this;if(Ie(o)){var u=io.getComputedStyle(a),c=wr(t,u),p=u.boxSizing==="border-box";o=Number(o),r?o-=p?0:c.border+c.padding:n?o+=p?c.border:-c.padding:p&&(o+=c.border+c.padding)}return o+=Ie(o)?"px":"",f.setStyle(a,t,o),this}}});m.prototype.html=function(i){return arguments.length?(this.empty(),typeof i=="string"&&!Zn(i)||typeof i=="number"?(this[0].innerHTML=i,this):this.append(Ir(i))):this[0].innerHTML};var ro=function(i,e){if(!(!this[0]||!i)){typeof i=="string"?i=Ir(i):i.nodeType?i=[i]:Ie(i)&&(i=[f.createTextNode(i)]);for(var t=0;t<i.length;t++){var r=i[t],n=this[0],o=n.tagName==="TABLE"&&r.tagName==="TR";o&&n.tBodies&&n.tBodies.length&&(n=n.tBodies[0]),f.insertElement(n,r.nodeType?r:r[0],e)}}},eo=function(i,e){if(!(!this[0]||!this[0].style)&&!(e===null||typeof e=="number"&&isNaN(e))){i=yr(i);for(var t=0;t<this.length;t++)this[t].style[i]=qn(i,e)}};m.prototype.css=function(i,e){if(we(i))if(arguments.length===2)eo.call(this,i,e);else{if(!this[0])return;i=yr(i);var t=io.getComputedStyle(this[0])[i]||this[0].style[i];return Ie(t)?t.toString():t}else if(K(i))for(var r in i)eo.call(this,r,i[r]);return this};m.prototype.prepend=function(i){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.prepend(arguments[e]);return this}return ro.apply(this,[i,this[0].firstChild]),this};m.prototype.append=function(i){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.append(arguments[e]);return this}return ro.apply(this,[i]),this};m.prototype.prependTo=function(i){if(this.length>1){for(var e=this.length-1;e>=0;e--)y(this[e]).prependTo(i);return this}return i=y(i),i[0]&&f.insertElement(i[0],this[0],i[0].firstChild),this};m.prototype.appendTo=function(i){return this.length>1?ze.call(this,"appendTo",arguments):(f.insertElement(y(i)[0],this[0]),this)};m.prototype.insertBefore=function(i){return i&&i[0]&&f.insertElement(i[0].parentNode,this[0],i[0]),this};m.prototype.insertAfter=function(i){return i&&i[0]&&f.insertElement(i[0].parentNode,this[0],i[0].nextSibling),this};m.prototype.before=function(i){return this[0]&&f.insertElement(this[0].parentNode,i[0],this[0]),this};m.prototype.after=function(i){return this[0]&&f.insertElement(this[0].parentNode,i[0],this[0].nextSibling),this};m.prototype.wrap=function(i){if(this[0]){var e=y(i);e.insertBefore(this),e.append(this)}return this};m.prototype.wrapInner=function(i){var e=this.contents();return e.length?e.wrap(i):this.append(i),this};m.prototype.replaceWith=function(i){if(!!(i&&i[0]))return i.is(this)?this:(i.insertBefore(this),this.remove(),i)};m.prototype.remove=function(){return this.length>1?ze.call(this,"remove",arguments):(gi(this[0],!0),f.removeElement(this[0]),this)};m.prototype.detach=function(){return this.length>1?ze.call(this,"detach",arguments):(f.removeElement(this[0]),this)};m.prototype.empty=function(){return this.length>1?ze.call(this,"empty",arguments):(gi(this[0]),f.setText(this[0],""),this)};m.prototype.clone=function(){for(var i=[],e=0;e<this.length;e++)i.push(this[e].cloneNode(!0));return y(i)};m.prototype.text=function(i){if(!arguments.length){for(var e="",t=0;t<this.length;t++)e+=this[t]&&this[t].textContent||"";return e}var r=C(i)?i():i;return gi(this[0],!1),f.setText(this[0],X(r)?r:""),this};m.prototype.val=function(i){return arguments.length===1?this.prop("value",X(i)?i:""):this.prop("value")};m.prototype.contents=function(){if(!this[0])return y();var i=[];return i.push.apply(i,this[0].childNodes),y(i)};m.prototype.find=function(i){var e=y();if(!i)return e;var t=[],r;if(typeof i=="string")for(i=i.trim(),r=0;r<this.length;r++){var n=this[r];if(f.isElementNode(n)){var o=n.getAttribute("id"),a=o||"dx-query-children";o||br(n,"id",a),a="[id='"+a+"'] ";var s=a+i.replace(/([^\\])(,)/g,"$1, "+a);t.push.apply(t,f.querySelectorAll(n,s)),br(n,"id",o)}else f.isDocument(n)&&t.push.apply(t,f.querySelectorAll(n,i))}else for(r=0;r<this.length;r++)i=f.isNode(i)?i:i[0],this[r]!==i&&this[r].contains(i)&&t.push(i);return e.add(t)};var to=function(i,e){return e.nodeType?!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length):!0};m.prototype.filter=function(i){if(!i)return y();if(i===":visible")return this.filter(to);if(i===":hidden")return this.filter(function(o,a){return!to(o,a)});for(var e=[],t=0;t<this.length;t++){var r=this[t];if(f.isElementNode(r)&&li(i)==="string")f.elementMatches(r,i)&&e.push(r);else if(f.isNode(i)||Y(i))i===r&&e.push(r);else if(C(i))i.call(r,t,r)&&e.push(r);else for(var n=0;n<i.length;n++)i[n]===r&&e.push(r)}return y(e)};m.prototype.not=function(i){for(var e=[],t=this.filter(i).toArray(),r=0;r<this.length;r++)t.indexOf(this[r])===-1&&e.push(this[r]);return y(e)};m.prototype.is=function(i){return!!this.filter(i).length};m.prototype.children=function(i){for(var e=[],t=0;t<this.length;t++)for(var r=this[t]?this[t].childNodes:[],n=0;n<r.length;n++)f.isElementNode(r[n])&&e.push(r[n]);return e=y(e),i?e.filter(i):e};m.prototype.siblings=function(){var i=this[0];if(!i||!i.parentNode)return y();for(var e=[],t=i.parentNode.childNodes||[],r=0;r<t.length;r++){var n=t[r];f.isElementNode(n)&&n!==i&&e.push(n)}return y(e)};m.prototype.each=function(i){for(var e=0;e<this.length&&i.call(this[e],e,this[e])!==!1;e++);};m.prototype.index=function(i){return i?(i=y(i),this.toArray().indexOf(i[0])):this.parent().children().index(this)};m.prototype.get=function(i){return this[i<0?this.length+i:i]};m.prototype.eq=function(i){return i=i<0?this.length+i:i,y(this[i])};m.prototype.first=function(){return this.eq(0)};m.prototype.last=function(){return this.eq(-1)};m.prototype.parent=function(i){if(!this[0])return y();var e=y(this[0].parentNode);return!i||e.is(i)?e:y()};m.prototype.parents=function(i){for(var e=[],t=this.parent();t&&t[0]&&!f.isDocument(t[0]);)f.isElementNode(t[0])&&(!i||t.is(i))&&e.push(t.get(0)),t=t.parent();return y(e)};m.prototype.closest=function(i){if(this.is(i))return this;for(var e=this.parent();e&&e.length;){if(e.is(i))return e;e=e.parent()}return y()};m.prototype.next=function(i){if(!this[0])return y();var e=y(this[0].nextSibling);if(!arguments.length)return e;for(;e&&e.length;){if(e.is(i))return e;e=e.next()}return y()};m.prototype.prev=function(){return this[0]?y(this[0].previousSibling):y()};m.prototype.add=function(i){for(var e=y(i),t=this.toArray(),r=0;r<e.length;r++){var n=e[r];t.indexOf(n)===-1&&t.push(n)}return y(t)};var Dr=[];m.prototype.splice=function(){return y(Dr.splice.apply(this,arguments))};m.prototype.slice=function(){return y(Dr.slice.apply(this,arguments))};m.prototype.toArray=function(){return Dr.slice.call(this)};var no=function(i){return Y(i)?i:i.defaultView};m.prototype.offset=function(){if(!!this[0]){if(!this[0].getClientRects().length)return{top:0,left:0};var i=this[0].getBoundingClientRect(),e=no(this[0].ownerDocument),t=this[0].ownerDocument.documentElement;return{top:i.top+e.pageYOffset-t.clientTop,left:i.left+e.pageXOffset-t.clientLeft}}};m.prototype.offsetParent=function(){if(!this[0])return y();for(var i=y(this[0].offsetParent);i[0]&&i.css("position")==="static";)i=y(i[0].offsetParent);return i=i[0]?i:y(f.getDocumentElement()),i};m.prototype.position=function(){if(!!this[0]){var i,e=parseFloat(this.css("marginTop")),t=parseFloat(this.css("marginLeft"));if(this.css("position")==="fixed")return i=this[0].getBoundingClientRect(),{top:i.top-e,left:i.left-t};i=this.offset();var r=this.offsetParent(),n={top:0,left:0};return r[0].nodeName!=="HTML"&&(n=r.offset()),n={top:n.top+parseFloat(r.css("borderTopWidth")),left:n.left+parseFloat(r.css("borderLeftWidth"))},{top:i.top-n.top-e,left:i.left-n.left-t}}};[{name:"scrollLeft",offsetProp:"pageXOffset",scrollWindow:function(i,e){i.scrollTo(e,i.pageYOffset)}},{name:"scrollTop",offsetProp:"pageYOffset",scrollWindow:function(i,e){i.scrollTo(i.pageXOffset,e)}}].forEach(function(i){var e=i.name;m.prototype[e]=function(t){if(!!this[0]){var r=no(this[0]);return t===void 0?r?r[i.offsetProp]:this[0][e]:(r?i.scrollWindow(r,t):this[0][e]=t,this)}}});m.prototype.data=function(i,e){if(!!this[0])return arguments.length<2?vr.call(y,this[0],i):(vr.call(y,this[0],i,e),this)};m.prototype.removeData=function(i){return this[0]&&Jn(this[0],i),this};var oo=function(){return y.apply(this,arguments)};Object.defineProperty(oo,"fn",{enumerable:!0,configurable:!0,get:function(){return y.fn},set:function(i){y.fn=i}});var ao={set:function(i){y=i},get:function(){return oo}};var so=ao.get();var Cr=[],Js=()=>f.getReadyState()==="complete"||f.getReadyState()!=="loading"&&!f.getDocumentElement().doScroll,Qs=ht(()=>{var i=f.listen(f.getDocument(),"DOMContentLoaded",()=>{lo.fire(),i()})}),lo={add:i=>{var e=Be();e&&Js()?i():(Cr.push(i),e&&Qs())},fire:()=>{Cr.forEach(i=>i()),Cr=[]}},uo=Me(lo);var js=uo.add,Er="DEVEXTREME_XHR_ERROR_UNLOAD",po=function(i){return[i[0],i.length<3?"=":String(i[1]).toLowerCase(),i.length<2?!0:i[i.length-1]]},Sr=function(i){return Array.isArray(i)||(i=[i]),dt(i,function(e){var t={selector:C(e)||typeof e=="string"?e:e.getter||e.field||e.selector,desc:!!(e.desc||String(e.dir).charAt(0).toLowerCase()==="d")};return e.compare&&(t.compare=e.compare),t})},co=function(){var i={timeout:"Network connection timeout",error:"Unspecified network error",parsererror:"Unexpected server response"},e;return js(function(){var t=ce();f.listen(t,"beforeunload",function(){e=!0})}),function(t,r){return e?Er:t.status<400?function(n){var o=i[n];return o||n}(r):t.statusText}}(),ho={count:{seed:0,step:function(i){return 1+i}},sum:{seed:0,step:function(i,e){return i+e}},min:{step:function(i,e){return e<i?e:i}},max:{step:function(i,e){return e>i?e:i}},avg:{seed:[0,0],step:function(i,e){return[i[0]+e,i[1]+1]},finalize:function(i){return i[1]?i[0]/i[1]:NaN}}},fo=function(){var i=0,e;return{obtain:function(){i===0&&(e=new _),i++},release:function(){i--,i<1&&e.resolve()},promise:function(){var t=i===0?new _().resolve():e;return t.promise()},reset:function(){i=0,e&&e.resolve()}}}();function mo(i){return/^(and|&&|&)$/i.test(i)}var At=function(i,e,t){if(Array.isArray(i)){for(var r=dt(e,function(a,s){return s}),n,o=0;o<r.length;o++)if(n=r[o],!Pt(e[n],t[n],0,!1))return!1;return!0}return Pt(e,t,0,!1)};var go=function(i){return i[0]==="!"&&Array.isArray(i[1])},qs=function(i){return i==="and"||i==="or"},vo=function(i){var e=i[0],t=i[1];return!!(Array.isArray(e)||C(e)&&(Array.isArray(t)||C(t)||qs(t)))},mt=function(){var i=new _;return i.resolve.apply(i,arguments).promise()},yo=function(){var i=new _;return i.reject.apply(i,arguments).promise()};var k=pi(ne.ERROR_MESSAGES,{E4000:"[DevExpress.data]: {0}",E4001:"Unknown aggregating function is detected: '{0}'",E4002:"Unsupported OData protocol version is used",E4003:"Unknown filter operation is used: {0}",E4004:"The thenby() method is called before the sortby() method",E4005:"Store requires a key expression for this operation",E4006:"ArrayStore 'data' option must be an array",E4007:"Compound keys cannot be auto-generated",E4008:"Attempt to insert an item with a duplicated key",E4009:"Data item cannot be found",E4010:"CustomStore does not support creating queries",E4011:"Custom Store method is not implemented or is not a function: {0}",E4012:"Custom Store method returns an invalid value: {0}",E4013:"Local Store requires the 'name' configuration option is specified",E4014:"Unknown data type is specified for ODataStore: {0}",E4015:"Unknown entity name or alias is used: {0}",E4016:"The compileSetter(expr) method is called with 'self' passed as a parameter",E4017:"Keys cannot be modified",E4018:"The server has returned a non-numeric value in a response to an item count request",E4019:"Mixing of group operators inside a single group of filter expression is not allowed",E4020:"Unknown store type is detected: {0}",E4021:"The server response does not provide the totalCount value",E4022:"The server response does not provide the groupCount value",E4023:"Could not parse the following XML: {0}",E4024:"String function {0} cannot be used with the data field {1} of type {2}.",W4000:"Data returned from the server has an incorrect structure",W4001:'The {0} field is listed in both "keyType" and "fieldTypes". The value of "fieldTypes" is used.',W4002:"Data loading has failed for some cells due to the following error: {0}"}),Xs=null,vi=function(i){var e;(e=Xs)===null||e===void 0||e(i)};function Ys(i,e){for(var t,r=typeof e=="string"?e.split():e.slice();r.length;)if(t=r.shift(),t in i)return!0;return!1}function xo(i,e,t,r){var n,o;if(r){for(var a=0;a<e.length;a++)if(n=e[a].items||e[a].collapsedItems||[],o=xo(i,n||[],t,r-1),o)return o}else if(xi(i,e,t)>=0)return e}function Zs(i,e,t,r){return r?xo(i,e,t,r)||[]:e}function el(i,e){if(i.key()&&(!e._dataByKeyMap||e._dataByKeyMapLength!==e.length)){for(var t={},r=e.length,n=0;n<r;n++)t[JSON.stringify(i.keyOf(e[n]))]=e[n];e._dataByKeyMap=t,e._dataByKeyMapLength=r}}function tl(i,e){if(i._dataByKeyMap)return i._dataByKeyMap[JSON.stringify(e)]}function il(i,e){return i._dataByKeyMap?i._dataByKeyMap[JSON.stringify(e)]:!0}function wo(i,e,t){i._dataByKeyMap&&(i._dataByKeyMap[JSON.stringify(e)]=t,i._dataByKeyMapLength+=t?1:-1)}function Io(i){var e=i?Object.create(Object.getPrototypeOf(i)):{},t=bn({},i);for(var r in t){var n=t[r];re(n)&&!K(n)&&(t[r]=Io(n))}return Ft(e,t,!0,!0),e}function rl(i,e){var t=Io(i);return Ft(t,e,!0,!0)}function bo(i){var{keyInfo:e,data:t,changes:r,groupCount:n,useInsertIndex:o,immutable:a,disableCache:s,logError:l}=i,d=a===!0?[...t]:t;return r.forEach(u=>{var c=u.type==="insert"?d:Zs(e,d,u.key,n);switch(!s&&el(e,c),u.type){case"update":nl(e,c,u.key,u.data,!0,a,l);break;case"insert":ol(e,c,u.data,o&&X(u.index)?u.index:-1,!0,l);break;case"remove":al(e,c,u.key,!0,l)}}),d}function yi(i,e,t){return i?e&&k.log(t):yo(k.Error(t))}function nl(i,e,t,r,n,o,a){var s,l=i.key();if(l){if(Ys(r,l)&&!At(l,t,i.keyOf(r)))return yi(n,a,"E4017");if(s=tl(e,t),!s){var d=xi(i,e,t);if(d<0)return yi(n,a,"E4009");if(s=e[d],o===!0&&X(s)){var u=rl(s,r);return e[d]=u,!n&&mt(u,t)}}}else s=t;if(Ft(s,r,!0),!n)return Oe().useLegacyStoreResult?mt(t,r):mt(s,t)}function ol(i,e,t,r,n,o){var a,s=i.key(),l=K(t)?z({},t):t;if(s){if(a=i.keyOf(l),a===void 0||typeof a=="object"&&In(a)){if(Array.isArray(s))throw k.Error("E4007");a=l[s]=String(new dr)}else if(e[xi(i,e,a)]!==void 0)return yi(n,o,"E4008")}else a=l;if(r>=0?e.splice(r,0,l):e.push(l),wo(e,a,l),!n)return mt(Oe().useLegacyStoreResult?t:l,a)}function al(i,e,t,r,n){var o=xi(i,e,t);if(o>-1&&(e.splice(o,1),wo(e,t,null)),r){if(o<0)return yi(r,n,"E4009")}else return mt(t)}function xi(i,e,t){var r=i.key();if(!il(e,t))return-1;for(var n=0,o=e.length;n<o;n++)if(At(r,i.keyOf(e[n]),t))return n;return-1}var Gt=class{constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._events={},this._owner=e,this._options=t}static create(e,t){return t?C(t)?t(e):t:new Gt(e)}hasEvent(e){var t=this._events[e];return t?t.has():!1}fireEvent(e,t){var r=this._events[e];return r&&r.fireWith(this._owner,t),this._owner}on(e,t){if(K(e))A(e,(o,a)=>{this.on(o,a)});else{var r=this._events[e];r||(r=De({syncStrategy:this._options.syncStrategy}),this._events[e]=r);var n=r.originalAdd||r.add;n.call(r,t)}}off(e,t){var r=this._events[e];r&&(C(t)?r.remove(t):r.empty())}dispose(){A(this._events,(e,t)=>{t.empty()})}};var Ut=oe.inherit({toArray:function(){var i=[];for(this.reset();this.next();)i.push(this.current());return i},countable:function(){return!1}}),Fr=Ut.inherit({ctor:function(i){this.array=i,this.index=-1},next:function(){return this.index+1<this.array.length?(this.index++,!0):!1},current:function(){return this.array[this.index]},reset:function(){this.index=-1},toArray:function(){return this.array.slice(0)},countable:function(){return!0},count:function(){return this.array.length}}),wi=Ut.inherit({ctor:function(i){this.iter=i},next:function(){return this.iter.next()},current:function(){return this.iter.current()},reset:function(){return this.iter.reset()}}),Tr=wi.inherit({ctor:function(i,e){this.callBase(i),this.index=-1,this.mapper=e},current:function(){return this.mapper(this.callBase(),this.index)},next:function(){var i=this.callBase();return i&&this.index++,i}}),sl=function(i,e){return i=J(i),e=J(e),i===null&&e!==null?-1:i!==null&&e===null||i===void 0&&e!==void 0?1:i!==void 0&&e===void 0||i<e?-1:i>e?1:0},Mr=Ut.inherit({ctor:function(i,e,t,r){i instanceof Tr||(i=new Tr(i,this._wrap)),this.iter=i,this.rules=[{getter:e,desc:t,compare:r}]},thenBy:function(i,e,t){var r=new Mr(this.sortedIter||this.iter,i,e,t);return this.sortedIter||(r.rules=this.rules.concat(r.rules)),r},next:function(){return this._ensureSorted(),this.sortedIter.next()},current:function(){return this._ensureSorted(),this.sortedIter.current()},reset:function(){delete this.sortedIter},countable:function(){return this.sortedIter||this.iter.countable()},count:function(){return this.sortedIter?this.sortedIter.count():this.iter.count()},_ensureSorted:function(){var i=this;i.sortedIter||(A(i.rules,function(){this.getter=pe(this.getter)}),i.sortedIter=new Tr(new Fr(this.iter.toArray().sort(function(e,t){return i._compare(e,t)})),i._unwrap))},_wrap:function(i,e){return{index:e,value:i}},_unwrap:function(i){return i.value},_compare:function(i,e){var t=i.index,r=e.index;if(i=i.value,e=e.value,i===e)return t-r;for(var n=0,o=this.rules.length;n<o;n++){var a=this.rules[n],s=a.getter(i),l=a.getter(e),d=a.compare||sl,u=d(s,l);if(u)return a.desc?-u:u}return t-r}}),Or=function(){var i=function(t){return X(t)?t.toString():""};function e(t,r,n){return function(o){o=J(t(o));var a=function(s){return s===""||s===0||s===!1}(r)?o===r:o==r;return n&&(a=!a),a}}return function(t){return C(t)?t:vo(t)?function(r){var n=[],o=!1,a=!1;return A(r,function(){if(Array.isArray(this)||C(this)){if(n.length>1&&o!==a)throw new k.Error("E4019");n.push(Or(this)),o=a,a=!0}else a=mo(this)}),function(s){for(var l=o,d=0;d<n.length;d++)if(n[d](s)!==o){l=!o;break}return l}}(t):go(t)?function(r){var n=r[0],o=Or(r[1]);if(n==="!")return function(a){return!o(a)};throw k.Error("E4003",n)}(t):function(r){r=po(r);var n=pe(r[0]),o=r[1],a=r[2];switch(a=J(a),o.toLowerCase()){case"=":return e(n,a);case"<>":return e(n,a,!0);case">":return function(s){return J(n(s))>a};case"<":return function(s){return J(n(s))<a};case">=":return function(s){return J(n(s))>=a};case"<=":return function(s){return J(n(s))<=a};case"startswith":return function(s){return J(i(n(s))).indexOf(a)===0};case"endswith":return function(s){var l=J(i(n(s))),d=i(a);if(l.length<d.length)return!1;var u=l.lastIndexOf(a);return u!==-1&&u===l.length-a.length};case"contains":return function(s){return J(i(n(s))).indexOf(a)>-1};case"notcontains":return function(s){return J(i(n(s))).indexOf(a)===-1}}throw k.Error("E4003",o)}(t)}}(),ll=wi.inherit({ctor:function(i,e){this.callBase(i),this.criteria=Or(e)},next:function(){for(;this.iter.next();)if(this.criteria(this.current()))return!0;return!1}}),dl=Ut.inherit({ctor:function(i,e){this.iter=i,this.getter=e},next:function(){return this._ensureGrouped(),this.groupedIter.next()},current:function(){return this._ensureGrouped(),this.groupedIter.current()},reset:function(){delete this.groupedIter},countable:function(){return!!this.groupedIter},count:function(){return this.groupedIter.count()},_ensureGrouped:function(){if(!this.groupedIter){var i={},e=[],t=this.iter,r=pe(this.getter);for(t.reset();t.next();){var n=t.current(),o=r(n);o in i?i[o].push(n):(i[o]=[n],e.push(o))}this.groupedIter=new Fr(dt(e,function(a){return{key:a,items:i[a]}}))}}}),ul=wi.inherit({ctor:function(i,e){this.callBase(i),this.getter=pe(e)},current:function(){return this.getter(this.callBase())},countable:function(){return this.iter.countable()},count:function(){return this.iter.count()}}),pl=wi.inherit({ctor:function(i,e,t){this.callBase(i),this.skip=Math.max(0,e),this.take=Math.max(0,t),this.pos=0},next:function(){if(this.pos>=this.skip+this.take)return!1;for(;this.pos<this.skip&&this.iter.next();)this.pos++;return this.pos++,this.iter.next()},reset:function(){this.callBase(),this.pos=0},countable:function(){return this.iter.countable()},count:function(){return Math.min(this.iter.count()-this.skip,this.take)}}),cl=function i(e,t){t=t||{},e instanceof Ut||(e=new Fr(e));var r=function(d){var u=t.errorHandler;u&&u(d),vi(d)},n=function(d){var u=new _().fail(r),c,p=d.step,g=d.finalize;try{e.reset(),"seed"in d?c=d.seed:c=e.next()?e.current():NaN;for(var b=c;e.next();)b=p(b,e.current());u.resolve(g?g(b):b)}catch(I){u.reject(I)}return u.promise()},o=function(d){return n(ho[d])},a=function(d){return!C(d)&&!Array.isArray(d)&&(d=[].slice.call(arguments)),l(new ul(e,d))},s=function(d){return a(pe(d))};function l(d){return i(d,t)}return{toArray:function(){return e.toArray()},enumerate:function(){var d=new _().fail(r);try{d.resolve(e.toArray())}catch(u){d.reject(u)}return d.promise()},sortBy:function(d,u,c){return l(new Mr(e,d,u,c))},thenBy:function(d,u,c){if(e instanceof Mr)return l(e.thenBy(d,u,c));throw k.Error("E4004")},filter:function(d){return Array.isArray(d)||(d=[].slice.call(arguments)),l(new ll(e,d))},slice:function(d,u){return u===void 0&&(u=Number.MAX_VALUE),l(new pl(e,d,u))},select:a,groupBy:function(d){return l(new dl(e,d))},aggregate:function(d,u,c){return arguments.length<2?n({step:arguments[0]}):n({seed:d,step:u,finalize:c})},count:function(){if(e.countable()){var d=new _().fail(r);try{d.resolve(e.count())}catch(u){d.reject(u)}return d.promise()}return o("count")},sum:function(d){return d?s(d).sum():o("sum")},min:function(d){return d?s(d).min():o("min")},max:function(d){return d?s(d).max():o("max")},avg:function(d){return d?s(d).avg():o("avg")}}},Ii=cl;function Br(i,e){return i=i.groupBy(e[0].selector),e.length>1&&(i=i.select(function(t){return z({},t,{items:Br(Ii(t.items),e.slice(1)).toArray()})})),i}function Do(i,e){var t=[];return A(i,function(r,n){var o=On(e,function(a){return n.selector===a.selector});o.length<1&&t.push(n)}),t.concat(e)}function hl(i,e,t){e=e||{};var r=e.filter;if(r&&(i=i.filter(r)),t)return i;var n=e.sort,o=e.select,a=e.group,s=e.skip,l=e.take;return a&&(a=Sr(a),a.keepInitialKeyOrder=!!e.group.keepInitialKeyOrder),(n||a)&&(n=Sr(n||[]),a&&!a.keepInitialKeyOrder&&(n=Do(a,n)),A(n,function(d){i=i[d?"thenBy":"sortBy"](this.selector,this.desc,this.compare)})),o&&(i=i.select(o)),a&&(i=Br(i,a)),(l||s)&&(i=i.slice(s||0,l)),i}var Vt={multiLevelGroup:Br,arrangeSortingInfo:Do,queryByOptions:hl};var kt=oe.abstract,Co=Vt.queryByOptions,Pr={},gt=oe.inherit({ctor:function(i){var e=this;i=i||{},this._eventsStrategy=new Gt(this),A(["onLoaded","onLoading","onInserted","onInserting","onUpdated","onUpdating","onPush","onRemoved","onRemoving","onModified","onModifying"],function(t,r){r in i&&e.on(r.slice(2).toLowerCase(),i[r])}),this._key=i.key,this._errorHandler=i.errorHandler,this._useDefaultSearch=!0},_customLoadOptions:function(){return null},key:function(){return this._key},keyOf:function(i){return this._keyGetter||(this._keyGetter=pe(this.key())),this._keyGetter(i)},_requireKey:function(){if(!this.key())throw k.Error("E4005")},load:function(i){var e=this;return i=i||{},this._eventsStrategy.fireEvent("loading",[i]),this._withLock(this._loadImpl(i)).done(function(t){e._eventsStrategy.fireEvent("loaded",[t,i])})},_loadImpl:function(i){return Co(this.createQuery(i),i).enumerate()},_withLock:function(i){var e=new _;return i.done(function(){var t=this,r=arguments;fo.promise().done(function(){e.resolveWith(t,r)})}).fail(function(){e.rejectWith(this,arguments)}),e},createQuery:kt,totalCount:function(i){return this._totalCountImpl(i)},_totalCountImpl:function(i){return Co(this.createQuery(i),i,!0).count()},byKey:function(i,e){return this._addFailHandlers(this._withLock(this._byKeyImpl(i,e)))},_byKeyImpl:kt,insert:function(i){var e=this;return e._eventsStrategy.fireEvent("modifying"),e._eventsStrategy.fireEvent("inserting",[i]),e._addFailHandlers(e._insertImpl(i).done(function(t,r){e._eventsStrategy.fireEvent("inserted",[t,r]),e._eventsStrategy.fireEvent("modified")}))},_insertImpl:kt,update:function(i,e){var t=this;return t._eventsStrategy.fireEvent("modifying"),t._eventsStrategy.fireEvent("updating",[i,e]),t._addFailHandlers(t._updateImpl(i,e).done(function(){t._eventsStrategy.fireEvent("updated",[i,e]),t._eventsStrategy.fireEvent("modified")}))},_updateImpl:kt,push:function(i){var e={changes:i,waitFor:[]};this._eventsStrategy.fireEvent("beforePush",[e]),Bt(...e.waitFor).done(()=>{this._pushImpl(i),this._eventsStrategy.fireEvent("push",[i])})},_pushImpl:ci,remove:function(i){var e=this;return e._eventsStrategy.fireEvent("modifying"),e._eventsStrategy.fireEvent("removing",[i]),e._addFailHandlers(e._removeImpl(i).done(function(t){e._eventsStrategy.fireEvent("removed",[t]),e._eventsStrategy.fireEvent("modified")}))},_removeImpl:kt,_addFailHandlers:function(i){return i.fail(this._errorHandler).fail(vi)},on(i,e){return this._eventsStrategy.on(i,e),this},off(i,e){return this._eventsStrategy.off(i,e),this}});gt.create=function(i,e){if(!(i in Pr))throw k.Error("E4020",i);return new Pr[i](e)};gt.registerClass=function(i,e){return e&&(Pr[e]=i),i};gt.inherit=function(i){return function(e,t){var r=i.apply(this,[e]);return gt.registerClass(r,t),r}}(gt.inherit);var Eo=gt;var Fo="totalCount",Rr="load",Bo="byKey",So="insert",To="update",Mo="remove";function vt(i){return i&&C(i.then)}function Je(i){return new _().resolve(i).promise()}function $t(i,e){if(!C(e))throw k.Error("E4011",i)}function Po(i){throw k.Error("E4012",i)}function Ke(i){function e(t){var r=t[0],n=t[1];return!r||!r.getResponseHeader?null:co(r,n)}return function(t){var r;t instanceof Error?r=t:r=new Error(e(arguments)||t&&String(t)||"Unknown error"),r.message!==Er&&i.reject(r)}}function Ro(i,e){var t=i._loadFunc,r;return $t(Rr,t),r=t.apply(i,[e]),Array.isArray(r)?r=Je(r):r==null?r=Je([]):vt(r)||Po(Rr),Fe(r)}function fl(i,e){var t=i._totalCountFunc,r;if(!C(t))throw k.Error("E4021");return r=t.apply(i,[e]),vt(r)||(r=Number(r),isFinite(r)||Po(Fo),r=Je(r)),Fe(r)}function ml(i,e,t){var r=i._byKeyFunc,n;return $t(Bo,r),n=r.apply(i,[e,t]),vt(n)||(n=Je(n)),Fe(n)}function Lo(i,e,t,r){if(e.__rawData)r(e.__rawData);else{var n=e.__rawDataPromise||Ro(e,t);e._cacheRawData&&(e.__rawDataPromise=n),n.always(function(){delete e.__rawDataPromise}).done(function(o){e._cacheRawData&&(e.__rawData=o),r(o)}).fail(Ke(i))}}function Oo(i,e,t,r){t=t||{};var n={};"userData"in t&&(n.userData=t.userData),Lo(i,e,n,function(o){var a=Ii(o,{errorHandler:e._errorHandler}),s,l,d=[],u,c;r||(s=Vt.queryByOptions(a,t),s===a?u=o.slice(0):d.push(s.enumerate().done(function(p){u=p}))),(t.requireTotalCount||r)&&(l=Vt.queryByOptions(a,t,!0),l===a?c=o.length:d.push(l.count().done(function(p){c=p}))),Bt.apply(so,d).done(function(){r?i.resolve(c):t.requireTotalCount?i.resolve(u,{totalCount:c}):i.resolve(u)}).fail(function(p){i.reject(p)})})}function gl(i,e,t){Lo(i,e,{},function(r){for(var n=e.key(),o,a=0,s=r.length;a<s;a++)if(o=r[a],At(n,e.keyOf(r[a]),t)){i.resolve(o);return}i.reject(k.Error("E4009"))})}var vl=Eo.inherit({ctor:function(i){i=i||{},this.callBase(i),this._useDefaultSearch=!!i.useDefaultSearch||i.loadMode==="raw",this._loadMode=i.loadMode,this._cacheRawData=i.cacheRawData!==!1,this._loadFunc=i[Rr],this._totalCountFunc=i[Fo],this._byKeyFunc=i[Bo],this._insertFunc=i[So],this._updateFunc=i[To],this._removeFunc=i[Mo]},createQuery:function(){throw k.Error("E4010")},clearRawDataCache:function(){delete this.__rawData},_totalCountImpl:function(i){var e=new _;return this._loadMode==="raw"&&!this._totalCountFunc?Oo(e,this,i,!0):(fl(this,i).done(function(t){e.resolve(Number(t))}).fail(Ke(e)),e=this._addFailHandlers(e)),e.promise()},_pushImpl:function(i){this.__rawData&&bo({keyInfo:this,data:this.__rawData,changes:i})},_loadImpl:function(i){var e=new _;return this._loadMode==="raw"?Oo(e,this,i,!1):(Ro(this,i).done(function(t,r){e.resolve(t,r)}).fail(Ke(e)),e=this._addFailHandlers(e)),e.promise()},_byKeyImpl:function(i,e){var t=new _;return this._byKeyViaLoad()?(this._requireKey(),gl(t,this,i)):ml(this,i,e).done(function(r){t.resolve(r)}).fail(Ke(t)),t.promise()},_byKeyViaLoad:function(){return this._loadMode==="raw"&&!this._byKeyFunc},_insertImpl:function(i){var e=this,t=e._insertFunc,r,n=new _;return $t(So,t),r=t.apply(e,[i]),vt(r)||(r=Je(r)),Fe(r).done(function(o){Oe().useLegacyStoreResult?n.resolve(i,o):n.resolve(o||i,e.keyOf(o))}).fail(Ke(n)),n.promise()},_updateImpl:function(i,e){var t=this._updateFunc,r,n=new _;return $t(To,t),r=t.apply(this,[i,e]),vt(r)||(r=Je(r)),Fe(r).done(function(o){Oe().useLegacyStoreResult?n.resolve(i,e):n.resolve(o||e,i)}).fail(Ke(n)),n.promise()},_removeImpl:function(i){var e=this._removeFunc,t,r=new _;return $t(Mo,e),t=e.apply(this,[i]),vt(t)||(t=Je()),Fe(t).done(function(){r.resolve(i)}).fail(Ke(r)),r.promise()}}),_o=vl;var Nt=class{constructor(e){this.$container=e.$container,this.isStandalonePage=e.isStandalonePage,this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl,this.pageTitle=e.pageTitle}render(){let e=[],t=x(this.loadDataUrl,"get").then(s=>{e=s.Displays.map(u=>({Id:u.Id.toString(),Caption:u.Name}));let l=[];for(let u of s.Users){let c={UserName:u.UserName,UserId:u.Id};s.Assignments.filter(g=>g.UserId===u.Id).forEach(g=>{c[g.DisplayId]=!0}),l.push(c)}let d=[{dataField:"UserName",width:300,fixed:!0,fixedPosition:"left"},{dataField:"UserId",visible:!1}];return a.option("columns",d.concat(e.map(u=>({dataField:u.Id,caption:u.Caption,dataType:"boolean",calculateCellValue:c=>!!c[u.Id]})))),l}),r=!1,n={dataSource:{store:new _o({key:"UserId",loadMode:"raw",load:()=>t,update:(s,l)=>{let d=[],u=[],c=r;return r=!0,Object.keys(l).forEach(g=>{l[g]?u.push(parseInt(g)):d.push(parseInt(g))}),window.setTimeout(()=>{r=!1},0),x(this.updateDataUrl,"put",{userId:s,displaysToRemove:d,displaysToAdd:u},!c).promise()}})},height:"100%",selection:{mode:"none"},allowColumnResizing:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},remoteOperations:!1,editing:{allowUpdating:!0,mode:"cell",refreshMode:"repaint"}},o={exportFileName:"DisplayManagement",summaryColumn:"UserName"},a;this.isStandalonePage?a=oi(this.$container,n,o,this.pageTitle,"",!0):a=$e(this.$container,n,o,this.pageTitle,"",!0)}};var Lr=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Settings";this.SWITCH_TO_VIEWER_TEXT="Switch to Display";this.STORAGE_MODE_KEY="CDM_STORAGE_MODE_KEY";let t=`/${e.cdmReportControllerUrl}/${e.reportParams.ReportId}`;this.$rootElement=e.$container,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer",this.controlConfiguratorOptions=this.getControlConfiguratorOptions(t,e.cdmReportControllerUrl),this.displayManagerOptions=this.getDisplayManagerOptions(t),this.controlDisplayOptions=this.getControlDisplayOptions(t,e.userName,e.reportParams)}render(){this.reportParams.Details&&(this.popover=ue(".report-details-link",this.reportParams.Details)),this.allowEditing&&this.initSwitchModeButton(),this.renderContent()}dispose(){var e,t,r;(e=this.multiView)==null||e.dispose(),(t=this.tabPanel)==null||t.dispose(),(r=this.popover)==null||r.dispose()}renderContent(){this.mode==="Viewer"?this.renderDisplay():this.renderTabPanel()}getControlConfiguratorOptions(e,t){return{$container:null,isStandalonePage:!1,pageTitle:"",availableRolesUrl:`/${t}/AvailableRoles`,groupFieldsUrl:`${e}/AllControlFields`,loadDataUrl:`${e}/ConfiguratorData`,updateDataUrl:`${e}/ConfiguratorData`}}getDisplayManagerOptions(e){return{$container:null,isStandalonePage:!1,pageTitle:"",loadDataUrl:`${e}/ControlDisplayUserAssignments`,updateDataUrl:`${e}/UpdateControlDisplayUserAssignments`}}getControlDisplayOptions(e,t,r){return{$container:null,isStandalonePage:!1,pageTitle:"",exportFileName:r.Name,userConfigUrl:`${e}/FieldsPermissions`,controlLogsUrl:`${e}/GetControlLogs`,loadDataUrl:`${e}/ControlDisplayData`,updateDataUrl:`${e}/UpdateControlDisplayData`,userName:t,importFileOptions:r.AllowImporting?{mode:r.ImportFileMode,createTableUrl:`${e}/create-table`,addRowsUrl:`${e}/add-rows`,fileUploadUrl:`${e}/get-columns`,predefinedTable:r.FileImporterTableInfo}:void 0,gridFiltersManagerOptions:{loadDataUrl:`${e}/GetControlFilters`,insertDataUrl:`${e}/AddControlFilter`,updateDataUrl:`${e}/UpdateControlFilter`,deleteDataUrl:`${e}/RemoveControlFilter`},gridViewsManagerOptions:{loadDataUrl:`${e}/GetControlViews`,insertDataUrl:`${e}/AddControlView`,updateDataUrl:`${e}/UpdateControlView`,deleteDataUrl:`${e}/RemoveControlView`},gridDisplaysManagerOptions:{loadDataUrl:`${e}/GetControlDisplays`,insertDataUrl:`${e}/AddControlDisplay`,updateDataUrl:`${e}/UpdateControlDisplay`,deleteDataUrl:`${e}/RemoveControlDisplay`},remoteControlDisplayUserSettingsManagerLoadOptions:{loadDataUrl:`${e}/GetControlDisplayUserSettings`,updateDataUrl:`${e}/UpdateControlDisplayUserSettings`}}}initSwitchModeButton(){let e=$(".switch-mode-btn").dxButton({text:this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT,onClick:()=>{this.mode=this.mode==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),this.mode),e.option("text",this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT),this.renderContent()}}).dxButton("instance")}renderDisplay(){this.$rootElement.html("");let e=$("<div />").attr({id:"cdm-report__display-grid-container"}).appendTo(this.$rootElement);this.multiView=e.dxMultiView({items:[{template:()=>{let t=new Ot(S(w({},this.controlDisplayOptions),{$container:$("<div />").attr({id:"cdm-report__display-grid"})}));return t.render(),t.$container}}]}).addClass("cdm-report__disply-grid").dxMultiView("instance"),le(this.multiView,!0)}renderTabPanel(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.tabPanel=this.createTabPanel(e),le(this.tabPanel,!0)}createTabPanel(e){return e.dxTabPanel({swipeEnabled:!1,showNavButtons:!0,onSelectionChanged:t=>{setTimeout(()=>{t.component.repaint()})},items:[{title:"Configurator",template:()=>{let t=new St(S(w({},this.controlConfiguratorOptions),{$container:$("<div />")}));return t.render(),t.$container}},{title:"Display Manager",template:()=>{let t=new Nt(S(w({},this.displayManagerOptions),{$container:$("<div />")}));return t.render(),t.$container}}]}).addClass("cdm-report__configuration-tab-panel").dxTabPanel("instance")}getSessionKey(){return this.STORAGE_MODE_KEY+this.reportParams.ReportId}};function bi(i,e,t,r,n){let o=new Lr({$container:i,reportParams:e,userName:t,allowEditing:r,cdmReportControllerUrl:n});return o.render(),o}var Ar=class{get popup(){return this._popup||(this._popup=this.createPopup()),this._popup}constructor(e){this.sessionExpireTimeMs=e.sessionExpireTimeMs,this.displayDurationMs=e.displayDurationMs,this.sessionPingUrl=e.sessionPingUrl,this.logoutUrl=e.logoutUrl,this.pingSessionIfTabIsActive=this.pingSessionIfTabIsActive.bind(this)}reset(){var e;this.clearTimeoutsAndIntervals(),(e=this.popup)==null||e.hide(),this.expirationTime=this.getExpirationTime(),this.watingTimeoutId=window.setTimeout(()=>{this.showNotification()},Math.max(this.sessionExpireTimeMs-this.displayDurationMs,0)),this.pingIntervalId=window.setInterval(()=>{this.pingSessionIfTabIsActive()},60*1e3),$(document).on("visibilitychange",this.pingSessionIfTabIsActive)}dispose(){this.clearTimeoutsAndIntervals()}showNotification(){var e;(e=this.popup)==null||e.show(),this.clearTimeoutsAndIntervals(),this.updatePopupContent(),this.counterIntervalId=window.setInterval(()=>{this.updatePopupContent()},1e3)}clearTimeoutsAndIntervals(){this.watingTimeoutId&&clearTimeout(this.watingTimeoutId),this.counterIntervalId&&clearInterval(this.counterIntervalId),this.pingIntervalId&&clearInterval(this.pingIntervalId),$(document).off("visibilitychange",this.pingSessionIfTabIsActive)}getExpirationTime(){let e=new Date;return e.setMilliseconds(e.getMilliseconds()+this.sessionExpireTimeMs),e}createPopup(){return $("<div />").dxPopup({title:"Session Expiring",closeOnOutsideClick:!1,resizeEnabled:!1,showCloseButton:!1,dragEnabled:!1,maxHeight:190,maxWidth:370,visible:!1,contentTemplate:()=>(this.$textContainer=$("<span />"),this.$textContainer.append(this.getCounterText()),$("<div />").append(this.$textContainer)),toolbarItems:[{widget:"dxButton",toolbar:"bottom",location:"before",options:{type:"default",text:"Continue session",onInitialized:e=>this.continuerButton=e.component,onClick:()=>{this.refreshSession()}}},{widget:"dxButton",toolbar:"bottom",location:"before",options:{type:"default",text:"Reload page",onInitialized:e=>this.okButton=e.component,onClick:()=>{window.location.reload()}}},{widget:"dxButton",toolbar:"bottom",location:"after",options:{text:"Log Out",onInitialized:e=>this.logoutButton=e.component,onClick:()=>{this.logOut()}}}]}).appendTo($(document.body)).dxPopup("instance")}getCounterText(){let e=Math.max(this.getSecondsToExpiration(),0);if(e===0)return $("<span />").text("Your session has been expired");{let t=$("<span />").text("Your session will expire in "),r=$("<span />").addClass("session-notifier__counter").text(e.toFixed(0)),n=$("<span />").text(" seconds");return $("<span />").append(t,r,n)}}getSecondsToExpiration(){return(this.expirationTime.getTime()-new Date().getTime())/1e3}refreshSession(){this.reset(),x(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||window.location.reload()}).catch(()=>window.location.reload())}pingSessionIfTabIsActive(){document.hidden||x(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||this.setExpired()})}setExpired(){this.expirationTime=new Date,this.showNotification(),this.pingIntervalId&&clearInterval(this.pingIntervalId)}logOut(){window.location.href=this.logoutUrl}updatePopupContent(){var t;let e=this.getSecondsToExpiration()<=0;(t=this.$textContainer)==null||t.html("").append(this.getCounterText()),this.okButton.option("visible",e),this.continuerButton.option("visible",!e),this.logoutButton.option("visible",!e)}};var yl={edit:"edit",saving:"saving",saved:"saved"},ae=yl;var Di=class extends ve{constructor(e,t){super();this.OUTDATE_COLUMNS_FOUND_EVENT="outdated-columns-found-event";this.stateLoaded=!1;this.loadedColumns={};this.additionalColumnsSettings={};this.id=e,this.gridDataLayer=t}load(e,t){return this.gridDataLayer.getGridViewSettings(this.id).then(r=>(this.onDataLoaded(r),e&&this.checkColumnsRelevance(r.columns,t),r))}save(e,t,r){let n={};if(!e.columns)return;e.columns.forEach(a=>{let s=this.additionalColumnsSettings[a.dataField];s&&(a.caption=s.caption,a.tooltip=s.tooltip),a.dataType||(a.dataType="default"),!!a.width&&a.visible&&(n[a.visibleIndex]=a.width)});let o=JSON.stringify(e.columns);return!this.stateLoaded||o===this.lastColumnSettingsStr?null:(this.lastColumnSettingsStr=o,t&&t(),this.gridDataLayer.updateGridViewSettings(this.id,e).then(()=>{r&&r()}),n)}checkNewColumns(e){let t=[];if(e.columns){let r=e.columns.filter(n=>!this.loadedColumns[n.dataField]&&n.visible);r.length&&r.forEach(n=>{t.push(n.dataField),this.loadedColumns[n.dataField]=!0})}return t}getColumnCaptions(){return Object.keys(this.additionalColumnsSettings).map(e=>({dataField:e,caption:this.additionalColumnsSettings[e].caption}))}setColumnCaption(e,t){this.additionalColumnsSettings[e]||(this.additionalColumnsSettings[e]={caption:"",tooltip:""}),this.additionalColumnsSettings[e].caption=t}getColumnAdditionalSettings(e){return this.additionalColumnsSettings[e]}checkColumnsRelevance(e,t){this.gridDataLayer.getColumnsByReportId(this.id).then(r=>{let n={};r.forEach(a=>n[a.Name]=!0);let o=e.filter(a=>!n[a.dataField]).map(a=>a.dataField);o.length&&DevExpress.ui.dialog.confirm(`Grid settings contain some colunms which don't exist in the database table anymore:
9
9
 
10
10
  '${o.join(", ")}'.
11
11
 
12
12
  Do you want to remove these columns from grid settings?
13
- `,"Remove redundant columns?").then(a=>{!a||i(o)})})}resetSettings(){return this.gridDataLayer.resetSettings(this.id).then(e=>(this.onDataLoaded(e),e))}onDataLoaded(e){let i=e&&e.columns,r=0;this.stateLoaded=!0,i&&(this.loadedColumns={},i.forEach(n=>{this.loadedColumns[n.dataField]=!0,n.visible&&n.visibleIndex===null&&(n.visibleIndex=r++),Object.keys(n).forEach(a=>{(n[a]===null||n[a]===void 0||n[a]==="")&&delete n[a]});let o=this.additionalColumnsSettings[n.dataField];o?(o.caption=n.caption,o.tooltip=n.tooltip):this.additionalColumnsSettings[n.dataField]={caption:n.caption,tooltip:n.tooltip},delete n.caption,delete n.tooltip})),this.lastColumnSettingsStr=JSON.stringify(e.columns)}};var Go=(i=>(i[i.View=1]="View",i[i.Edit=2]="Edit",i))(Go||{}),P=Go;var Uo=t=>{let e={gridResult:`${t}/GridViewResult`,getColumnsByReportId:`${t}/GetDbTableFields`,resetGridSettings:`${t}/ResetGridViewSettings`,updateGridViewSettings:`${t}/UpdateGridViewSettings`,getGridViewSettings:`${t}/GetGridViewSettings`};return{getGridDataSource(i,r,n){return te({loadParams:{id:i.ReportId,appName:i.AppName,gridMode:r,rowsLimit:r===P.Edit&&!n?10:null},loadUrl:e.gridResult,getUserFriendlyErrorMessage:xl})},getColumnsByReportId:i=>x(e.getColumnsByReportId,"post",{id:i},!1,{dataType:"json"}),resetSettings:i=>x(e.resetGridSettings,"post",{id:i},!1,{dataType:"json"}),updateGridViewSettings:(i,r)=>x(e.updateGridViewSettings,"post",{id:i,columnsSettings:JSON.stringify(r.columns)},!1,{dataType:"json"}),getGridViewSettings:i=>x(e.getGridViewSettings,"post",{id:i},!1,{dataType:"json"})}},xl=t=>{switch(t){case 1:return"We attempted to execute the data query however it appears there is an error in the data source. Please contact the report author to confirm the data requirements.";default:return""}};var wl=3e3,Gr="DisplayGridView",Ur="resetSettingBtn",R=null,Ht=!1,Ci=null,T=null,Wt=null;function Vo(t,e,i,r,n){let o=Uo(r);$("<div />").attr("id",Gr).insertAfter(t);let a=new Di(e.ReportId,o),s,l=null,d,u=!1,c=!1;l=$("<div />").text("Data loading failed.").addClass("dx-datagrid-nodata").css({zIndex:1}),l.appendTo(t),l.hide();function p(v,h,D){let G=o.getGridDataSource(v,h,D),M=new DevExpress.data.DataSource({store:G,onChanged:h===P.View?void 0:()=>{c=!1},onLoadError:N=>{M.isLoaded()||l.show(),T.endCustomLoading()},onLoadingChanged:N=>{N?(l.hide(),Ci=setTimeout(()=>{T.beginCustomLoading("Please wait, data loading in progress.")},1e4)):(Ci&&(clearTimeout(Ci),Ci=null),T.endCustomLoading())}});return M}function g(v){Object.keys(ae).forEach(D=>s.removeClass(ae[D])),s.addClass(v),d&&window.clearTimeout(d),v===ae.saved&&(d=window.setTimeout(()=>{g(ae.edit)},wl));let h="";switch(v){case ae.edit:h="Edit mode";break;case ae.saved:h="Saved";break;case ae.saving:h="Saving";break}s.attr("title",h)}function b(v){v.columns&&v.columns.forEach(h=>{/[^a-zA-Z0-9_]/.test(h.dataField)&&T.columnOption(h.dataField,"calculateCellValue",D=>D[h.dataField])}),c=!0}function I(){DevExpress.ui.dialog.confirm("Reset grid settings to default values?","Reset to default?").then(v=>{v&&(T.beginCustomLoading("Loading"),a.resetSettings().then(h=>{T.state(h),T.option("dataSource",p(e,R,Ht)),T.refresh()}))})}function B(v){if(R===v||v===P.Edit&&!i)return;R=v;let h=T.option("summary.totalItems[0].column"),D=S(w({},e),{TotalSummaryColumn:h||e.TotalSummaryColumn});T.dispose(),$(`#${Gr}`).remove(),T=Vo(t,D,i,r,n)}function E(v){if(R!==P.Edit)return;c=!1;let h=a.save(v,()=>g(ae.saving),()=>g(ae.saved));h&&Object.keys(h).forEach(D=>{let G=xt[D],M=h[D]==="inherit"?"":h[D];G&&G.option("value")!==M&&G.option("value",M)})}function fe(v,h,D){let G=v.dataField,M=h.find(".dx-datagrid-text-content"),N=$("<span />").addClass("column-editor-area").insertAfter(M);M.css("maxWidth","55%");let Qt=$("<div />").addClass("edit-type-panel").width("100%").appendTo(h),Oi=$("<div />").addClass("edit-width-panel").width("100%").appendTo(h);Qt[0].addEventListener("click",H=>{H.preventDefault(),H.stopImmediatePropagation();let L=Fi.dxSelectBox("instance");L.option("opened")?L.close():L.open()},!0);let jt=v.caption,Q=$("<span />").dxButton({hint:"Edit column caption",template:(H,L)=>L.append($("<span />").addClass("edit-caption-btn")),onClick:({event:H})=>{H.preventDefault(),H.stopImmediatePropagation(),M.hide(),Q.hide(),qe.hide();let L=$("<span />").dxTextBox({value:jt,elementAttr:{class:"caption-editor"},onEnterKey:W=>{Le.blur(),W.event.stopPropagation()},onKeyDown:W=>{W.event.stopPropagation()},onFocusOut:W=>{let Bi=Le.option("value");L.remove(),M.text(Bi).show(),Q.show(),qe.show(),jt=Bi,a.setColumnCaption(G,Bi),E(T.state())}}).appendTo(N).on("click",W=>{W.stopImmediatePropagation(),W.preventDefault()}),Le=L.dxTextBox("instance");Le.focus()}}).insertAfter(M),qe=$("<span />").dxButton({hint:"Edit column tooltip",template:(H,L)=>L.append($("<span />").addClass("edit-tooltip-btn")),onClick:({event:H})=>{H.preventDefault(),H.stopImmediatePropagation(),M.hide(),Q.hide(),qe.hide();let L=$("<span />").dxTextBox({value:D&&D.tooltip,text:D&&D.tooltip,placeholder:"Enter column tooltip...",onEnterKey:W=>{Le.blur(),W.event.stopPropagation()},onKeyDown:W=>{W.event.stopPropagation()},onFocusOut:()=>{let W=Le.option("value");L.remove(),M.show(),Q.show(),qe.show(),D.tooltip=W,h.attr("title",W),E(T.state())}}).appendTo(N).on("click",W=>{W.stopImmediatePropagation(),W.preventDefault()}),Le=L.dxTextBox("instance");Le.focus()}}).insertAfter(Q),Fi=$("<span />").dxSelectBox({dataSource:nt,value:v.dataType||"default",placeholder:"Select column type...",onValueChanged:({value:H})=>{T.columnOption(G,"dataType",H)}}).appendTo(Qt),Re=v.width?v.width.toString():"";function Nr(H){let L=H.component.option("value");(!L||L==="inherit")&&(L=""),(!Re||Re==="inherit")&&(Re=""),L!==Re&&(Re=L,T.columnOption(G,"width",L||"inherit"),u||(window.setTimeout(()=>{T.repaint(),u=!1},100),u=!0))}let Hr=$("<span />").dxTextBox({text:Re==="inherit"?"":Re,placeholder:"Set width...",onEnterKey:()=>Hr.blur(),onFocusOut:Nr,onValueChanged:Nr}).appendTo(Oi).on("click",H=>{H.stopImmediatePropagation(),H.preventDefault()}).dxTextBox("instance");xt[v.visibleIndex]=Hr}function yt(v,h){let D=v.find(".dx-datagrid-text-content"),G=h&&h.tooltip,M=h&&h.caption;v.attr("title",G||void 0),M&&D.text(M)}e.Details&&(Wt=ue(".report-details-link",e.Details));let xt=[],Jt={dataSource:p(e,R,Ht),elementAttr:{class:R===P.Edit?"edit-mode":"view-mode"},repaintChangesOnly:!0,onToolbarPreparing:v=>{let h=v.toolbarOptions.items;if(R===P.View&&i){let D=h.filter(N=>N.name==="searchPanel")[0],G=h.indexOf(D),M={widget:"dxButton",location:"after",options:{text:"Switch to Edit Mode",onClick:()=>B(P.Edit),icon:"switch-to-edit-mode"}};h.splice(G,1),h.push(M),h.push(D)}if(R===P.Edit){let D=h.filter(Q=>Q.name==="columnChooserButton")[0],G=h.indexOf(D),M={location:"after",template:()=>{let Q=$("<div />").css({margin:"0 10px"});$("<span />").css({margin:"0 5px"}).dxSwitch({value:Ht,onValueChanged:({value:Fi})=>{Ht=Fi,T.option("dataSource",p(e,R,Ht)),T.refresh()}}).appendTo(Q),$("<span />").text("Show all data ").appendTo(Q);let qe=$("<a />").css({textDecoration:"underline",color:"blue"}).text("(?)").appendTo(Q);return $("<div />").text(`If the table contains a lot of columns showing all data can lead to slow page performance when you're editing the grid.
14
- By default grid shows only first 10 rows in the Edit mode.`).dxPopover({target:qe,showEvent:"mouseenter",hideEvent:"mouseleave",position:"top",width:500}).appendTo(Q),Q}},N={widget:"dxButton",location:"after",options:{text:"Switch to View Mode",onClick:()=>B(P.View),icon:"switch-to-view-mode"}};h.splice(G,1);let Qt=h.filter(Q=>Q.name==="exportButton")[0],Oi=h.indexOf(Qt);h.splice(Oi,1),h.push(M),h.push(N),h.push(D);let jt={location:"before",template:()=>(s=$("<div />").addClass("edit-grid-state"),g(ae.edit),s)};h.unshift(jt)}},onCellPrepared:({rowType:v,column:h,cellElement:D})=>{if(v==="header"&&!h.command){let G=h.dataField,M=a.getColumnAdditionalSettings(G);yt(D,M),R===P.Edit&&fe(h,D,M)}},onContentReady:v=>{let h=v.component,D=h.state();if(!c)b(D);else return;if(window.setTimeout(()=>h.endCustomLoading()),R!==P.Edit)return;a.checkNewColumns(D).forEach(N=>v.component.columnOption(N,"visible",!1)),a.getColumnCaptions().forEach(N=>{N.caption&&h.columnOption(N.dataField,"caption")!==N.caption&&h.columnOption(N.dataField,"caption",N.caption)})},stateStoring:{enabled:!0,type:"custom",customLoad:()=>a.load(R===P.Edit,v=>{let h=T.state();h.columns=h.columns.filter(D=>v.indexOf(D.dataField)<0),T.state(h)}),customSave:v=>E(v)},filterRow:{visible:R===P.View,applyFilter:"onClick"},headerFilter:{visible:R===P.View},searchPanel:{visible:R===P.View},errorRowEnabled:!1,allowColumnResizing:!0,sorting:{mode:"multiple"},groupPanel:{visible:!0},grouping:{autoExpandAll:!1},allowColumnReordering:R===P.Edit,columnChooser:{enabled:R===P.Edit},showColumnHeaders:!0,showBorders:!0,paging:{pageSize:50,enabled:!0},remoteOperations:!0,summary:e.TotalSummaryColumn?{totalItems:[{column:e.TotalSummaryColumn,summaryType:"count"}]}:void 0,onEditorPreparing(v){if(v.parentType==="filterRow"){let h=()=>v.element.find(".dx-apply-button").trigger("dxclick");v.editorOptions.onEnterKey=h,v.editorOptions.onFocusOut=h}if(v.parentType==="searchPanel"){let h=D=>{v.component.searchByText(D.component.option("value"))};v.editorOptions.onValueChanged=void 0,v.editorOptions.onEnterKey=h,v.editorOptions.onFocusOut=h}}};return T=de(`#${Gr}`,{options:Jt,exportFileName:e.Name,title:n?e.Name:null,headerDescription:n?e.Details:null}),$(`#${Ur}`).remove(),R===P.Edit&&$("<span />").attr("id",Ur).css({float:"right",position:"relative",bottom:"8px"}).dxButton({text:"Reset settings",onClick:()=>I(),icon:"reset-grid-settings"}).appendTo("footer"),T}function ko(t,e,i,r,n=!1){R||(R=P.View),Vo(t,e,i,r,n)}function $o(){T==null||T.dispose(),T=null,R=null,$(`#${Ur}`).remove(),Wt==null||Wt.dispose(),Wt=null}var Il={subvalues:[],type:"triangleMarker",color:"#8798a5",secondColor:"#e18e92",width:10,isCustomPalette:!1,palette:null,customPalette:["#61a595","Grey","rgb(153, 102, 255)","Navy"]},Ce="isoz-subvalueEditorFormGroup",bl=`${Ce}__name`,No=`${Ce}__is-bound`,Ho=`${Ce}__value`,Wo=`${Ce}__measure-id`,Dl=`${Ce}__color`,Cl=["rectangleNeedle","triangleNeedle","rangeBar","triangleMarker","textCloud"],El=["rectangle","circle","rhombus","rangeBar","triangleMarker","textCloud"];var Sl=["LinearHorizontal","LinearVertical"],Ei=["#1db2f5","#f5564a","#97c95c","#ffc720","#eb3573","#a63db8","#6593bc","#faa335","#ff887c"];var Jo,Qo,Ti={ownerType:(Qo=(Jo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:Jo.Model)==null?void 0:Qo.GaugeItem,propertyName:"GaugeSubvaluesSettings",defaultValue:JSON.stringify(Il),valueType:"string"},jo,qo;(qo=(jo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:jo.Model)==null||qo.registerCustomProperty(Ti);function zo(t){var e,i,r;if(t.dashboardItem instanceof((i=(e=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:e.Model)==null?void 0:i.GaugeItem)){let n=Qe(t.dashboardItem),o=t.options;o.subvalues=o.subvalues||[],o.subvalueIndicator=o.subvalueIndicator||{},o.subvalueIndicator.type=n.type,o.subvalueIndicator.width=n.width;let a=!!((r=t.dashboardItem.gauges()[0])==null?void 0:r.targetValue());o.subvalueIndicator.palette=n.subvalues.filter(s=>a||s.key>-1).map(s=>s.color),n.subvalues.forEach(s=>{if(s.key===-1)return;let l=s.isBound?t.itemData.getMeasureValue(s.measureId).getValue():s.value;o.subvalues.push(l)})}}function Ko(t){var i,r;let e=t.dashboardItem;e instanceof((r=(i=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:i.Model)==null?void 0:r.GaugeItem)&&t.addSection({title:"Subvalues",items:[{dataField:Ti.propertyName,template(n,o){let a=document.createElement("div");return new DevExpress.ui.dxButton(a,{text:"Edit in Wizard",onClick(){Tl(e)}}),a},label:{visible:!1}}]})}function Tl(t){let e=document.createElement("div");document.body.appendChild(e);let i={width:"800px",height:"auto",maxHeight:"100%",closeOnOutsideClick:!1,contentTemplate(n){let o=document.createElement("div"),a=Ol(t);this._subvaluesForm=new DevExpress.ui.dxForm(o,a);let s=document.createElement("div"),l=Bl(t);this._indicatorForm=new DevExpress.ui.dxForm(s,l);let d=$("<div />").append(o,s),u=$("<div />");return u.append(d),u.dxScrollView({width:"100%",height:"100%"}),u},onHidden(){document.body.removeChild(e)},title:"Subvalues Wizard"};new DevExpress.ui.dxPopup(e,i).show()}function Qe(t){var r,n;let e=JSON.parse(t.customProperties.getValue(Ti.propertyName));return!!((r=t.gauges()[0])==null?void 0:r.targetValue())&&(!e.subvalues||!e.subvalues.some(o=>o.key===-1))&&e.subvalues.splice(0,0,{key:-1,name:"Target Value",isBound:!1,measureId:"",value:0,color:Ei[(((n=e.subvalues)==null?void 0:n.length)||0)%(Ei.length-1)]}),e}function Si(t,e){return t.customProperties.setValue(Ti.propertyName,JSON.stringify(e))}function Ml(t,e){let i=$("<div />"),r=$("<div />");i.append(r);let n=null,o=null,a={items:[{location:"before",widget:"dxButton",options:{icon:"add",stylingMode:"text",onClick(c){let p=Qe(e),g=p.subvalues.reduce((B,E)=>B<E.key?E.key:B,0)+1,b={key:g,name:`Subvalue ${g}`,isBound:!1,measureId:"",value:0,color:Ei[p.subvalues.length%(Ei.length-1)]};t.option("formData",b);let I=p.subvalues.filter(B=>B.key===b.key)[0];if(!I)p.subvalues.push(b);else{let B=p.subvalues.indexOf(I);p[B]=b}Si(e,p),o.reload(),o.option("selectedItem",p.subvalues[p.subvalues.length-1])}}}]},s=c=>{n&&n.option("disabled",!c)},l=new DevExpress.ui.dxToolbar(r,a);t.element().find(`.${Ce}`).css("display","none");let d={dataSource:new DevExpress.data.DataSource({load:()=>Qe(e).subvalues,remove:()=>{}}),displayExpr:"name",height:"200px",keyExpr:"key",noDataText:"Add a Subvalue",allowItemDeleting:!0,itemDeleteMode:"static",selectionMode:"single",onContentReady(c){s(!!c.component.option("selectedItem"))},onItemRendered(c){if(c.itemData.key===-1){let g=c.itemElement[0].getElementsByClassName("dx-list-static-delete-button-container")[0];g.style.display="none"}},onSelectionChanged(c){s(!!c.component.option("selectedItem"));let p=c.component.option("selectedItem");t.option("formData",p);let g=t.element().find(`.${Ce}`).css("display")==="block",b=!!p;(!g&&b||g&&!b)&&t.element().find(`.${Ce}`).css("display",b?"block":"none")},onItemDeleted:c=>{let p=Qe(e),g=c.itemData.key,b=p.subvalues.indexOf(p.subvalues.filter(I=>I.key===g)[0]);b>=0&&(p.subvalues.splice(b,1),Si(e,p)),o.reload(),o.option("selectedItem",p.subvalues[p.subvalues.length-1])}},u=$("<div />");return i.append(u),o=new DevExpress.ui.dxList(u,d),[i,o,l]}function Ol(t){let e=null,i=r=>{let n=r.getEditor("value"),o=r.getEditor("measureId"),a=r.getEditor("name"),s=r.option("formData").isBound,l=r.option("formData").key===-1;n&&n.option("disabled",s),o&&o.option("disabled",!s),r.element().find(`.${No}`).css("display",l?"none":"flex"),r.element().find(`.${Ho}`).css("display",l?"none":"flex"),r.element().find(`.${Wo}`).css("display",l?"none":"flex"),a&&a.option("disabled",l)};return{formData:null,colCount:2,items:[{itemType:"group",caption:"Subvalues items",template:r=>{let[n,o]=Ml(r.component,t);return e=o,n}},{name:"subvalueEditor",cssClass:Ce,itemType:"group",caption:"Item options",items:[{dataField:"name",cssClass:bl,editorType:"dxTextBox",editorOptions:{valueChangeEvent:"keyup"}},{dataField:"isBound",cssClass:No,editorType:"dxRadioGroup",editorOptions:{displayExpr:"text",valueExpr:"value",layout:"horizontal",items:[{text:"Unbound",value:!1},{text:"Bound",value:!0}]},label:{text:"Type"}},{dataField:"value",cssClass:Ho,editorType:"dxNumberBox",label:{text:"Value"},editorOptions:{showSpinButtons:!0}},{dataField:"measureId",cssClass:Wo,editorType:"dxSelectBox",label:{text:"Hidden measures"},editorOptions:{displayExpr:"text",valueExpr:"value",items:t.hiddenMeasures().map(r=>({text:Fl(r),value:r.uniqueName()}))}},{name:"color",cssClass:Dl,dataField:"color",editorType:"dxColorBox",label:{text:"Color"}}]}],onContentReady(r){i(r.component)},onFieldDataChanged(r){let n=r.component.option("formData"),o=Qe(t),a=o.subvalues.filter(s=>s.key===n.key)[0];o.subvalues[o.subvalues.indexOf(a)]=n,Si(t,o),a&&a.name!==n.name&&e&&e.repaint(),i(r.component)}}}function Fl(t){if(t.name())return t.name();let e=t.dataMember();return t.summaryType&&t.summaryType()&&(e+=` (${t.summaryType()})`),e}function Bl(t){let e=t.viewType(),i=Sl.some(r=>r===e)?El:Cl;return{formData:Qe(t)||null,items:[{caption:"Indicator options",itemType:"group",items:[{dataField:"type",editorType:"dxSelectBox",label:{text:"Type"},editorOptions:{displayExpr:"text",valueExpr:"value",items:i.map(r=>({text:r,value:r}))}},{dataField:"width",editorType:"dxNumberBox",editorOptions:{showSpinButtons:!0},label:{text:"Width"}}]}],onFieldDataChanged(r){let n=r.component.option("formData"),o=Qe(t);o.width=n.width,o.type=n.type,Si(t,o)}}}function Xo(t){this.name="GaugeSubvalues",this.start=()=>{let e=t.findExtension("viewer-api");e&&e.on("itemWidgetOptionsPrepared",zo);let i=t.findExtension("item-options-panel");i&&i.on("customizeSections",Ko)},this.stop=()=>{let e=t.findExtension("viewer-api");e&&e.off("itemWidgetOptionsPrepared",zo);let i=t.findExtension("item-options-panel");i&&i.off("customizeSections",Ko)}}var Pl="DASHBOARD_MODE_KEY",Ee=null,zt=null,Zo;function Vr(t,e,i,r){Zo=e.ReportId;let n=e.ReportId&&e.ReportId.toString();DevExpress.Dashboard.ResourceManager.embedBundledResources();let o=i.AllowEditing&&window.sessionStorage.getItem(Yo())||"Viewer";if(e.Details&&(zt=ue(".report-details-link",e.Details)),Ee=new DevExpress.Dashboard.DashboardControl(t[0],{workingMode:o,initialDashboardId:n,endpoint:r.EndPoint,ajaxRemoteService:{headers:e.Token?{token:e.Token}:void 0},onDashboardInitializing:a=>{a.component.registerExtension(new Xo(a.component)),n!==a.dashboardId&&(n=a.dashboardId,window.location.href=encodeURI(r.PreviewUrl+a.dashboardId))},extensions:{"data-source-wizard":{enableCustomSql:!0},"dashboard-export":{allowExportDashboardItems:!0},"data-inspector":{allowInspectAggregatedData:!0,allowInspectRawData:!0,onGridInitialized:a=>{a.component.option("export.enabled",!0)}}}}),Ee.render(),i.AllowEditing){let a=$(".switch-mode-btn").dxButton({text:o==="Viewer"?"Switch to Designer":"Switch to Viewer",onClick:()=>{o=o==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(Yo(),o),o==="Viewer"?(Ee.switchToViewer(),a.option("text","Switch to Designer")):(Ee.switchToDesigner(),a.option("text","Switch to Viewer"))}}).dxButton("instance");Rl(Ee)}}function ea(){Ee==null||Ee.dispose(),Ee=null,zt==null||zt.dispose(),zt=null}function Rl(t){let e=["create-dashboard","open-dashboard"],i=t.findExtension("toolbox");e.forEach(r=>{i.menuItems().filter(o=>o.id===r)[0]&&i.removeMenuItem(r)})}var Yo=()=>Pl+Zo;var ia="Switch to Designer",ra="Switch to Viewer",Ll="reportMode",je="customCurrentUrl",Mi=window.ko,Kt=null,na;function kr(t,e,i,r){na=e.ReportId;let n=window.sessionStorage.getItem(ta())||"Viewer",o=null;e.Details&&(Kt=ue(".report-details-link",e.Details)),i&&(o=$(".switch-mode-btn").dxButton({text:n==="Viewer"?ia:ra,onClick:()=>{n=n==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(ta(),n),_l(n,o)}}).dxButton("instance")),Al(t,r,"dxReportDesigner",e.ReportId.toString(),a=>{setTimeout(()=>{sa(n,o)})},n==="Viewer"),window.addEventListener("beforeunload",a=>{dxReportDesigner&&dxReportDesigner.GetDesignerModel()&&dxReportDesigner.GetDesignerModel().isDirty()&&(a.preventDefault(),a.returnValue="The report document is not saved. Are you sure you want to leave the page?")})}function oa(){Kt==null||Kt.dispose(),Kt=null}function aa(t){let e=t.designerModel.reportPreviewModel.reportPreview,i=DevExpress.Reporting.Designer.Internal.ReportPreviewService;e.initialize(i.initializePreview(t.designerModel.model()))}function _l(t,e){t==="Viewer"?(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible(!0),aa(dxReportDesigner)):(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible(!1),dxReportDesigner.designerModel.reportPreviewModel.reportPreview.deactivate()),sa(t,e)}function sa(t,e){e&&e.option("text",t==="Viewer"?ia:ra)}function Al(t,e,i,r,n,o){let a=t.attr("data-bind","dxReportDesigner: designerOptions").addClass("report-designer"),s={reportUrl:r,requestOptions:{getDesignerModelAction:e},callbacks:{BeforeRender:l=>{window[i]=l,o&&l.designerModel.reportPreviewModel.reportPreview.previewVisible(!0),n(l)},CustomizeMenuActions:Ul,PreviewCustomizeMenuActions:Gl,ReportOpened:(l,d)=>{o&&aa(l),Vl(l,d)},ReportTabClosed:kl}};return Mi.applyBindings({designerOptions:s},a[0]),a}function Gl(t,e){let i=e.GetById(DevExpress.Reporting.Viewer.ActionId.Design);i&&(i.visible=!1)}function Ul(t,e){let i=DevExpress.Reporting.Designer.Actions.ActionId,r=[i.Save],n=[i.NewReport,i.NewReportViaWizard,i.OpenReport,i.Preview,i.SaveAs,i.Exit];r.forEach(s=>{let l=e.GetById(s);l&&l.container==="menu"&&(l.container=void 0)}),n.forEach(s=>{let l=e.GetById(s);l&&(l.visible=!1)});let o=e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.Save),a=o.clickAction;o.clickAction=()=>{t.GetCurrentTab().url(Mi.unwrap(t[je])),a()}}function Vl(t,e){t[je]=t[je]||Mi.observable(),t[je](e.Url)}function kl(t,e){t[je]=t[je]||Mi.observable(),t[je](null)}var ta=()=>Ll+na;var la=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Designer";this.SWITCH_TO_VIEWER_TEXT="Switch to Viewer";this.DIAGRAM_STORAGE_MODE_KEY="DIAGRAM_STORAGE_MODE_KEY";this.$container=e.$container,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.diagramControllerUrl=e.diagramControllerUrl,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}render(){this.createDiagramControl(),this.initDiagram(),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=ue(".diagram-details-link",this.reportParams.Details))}dispose(){var e;this.diagram.dispose(),(e=this.popover)==null||e.dispose()}createDiagramControl(){this.diagram=this.$container.dxDiagram({historyToolbar:{visible:!0,commands:["separator","undo","redo","separator",{name:"save",text:"Save",icon:"save"}]},onCustomCommand:e=>{switch(e.name){case"save":this.saveReport(e.component.export());break}},fullScreen:!1,readOnly:this.mode==="Viewer"}).dxDiagram("instance")}initDiagram(){x(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e)),this.diagram.option("hasChanges",!1)}),window.addEventListener("beforeunload",e=>{this.diagram.option("hasChanges")&&(e.returnValue="The document is not saved. Are you sure you want to leave the page?")})}initSwitchModeButton(){let e=$(".switch-mode-btn").dxButton({text:this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT,onClick:()=>{this.mode=this.mode==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),this.mode),this.diagram.option("readOnly",this.mode==="Viewer"),e.option("text",this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT)}}).dxButton("instance")}async saveReport(e){let i=this.reportParams.ReportId;await x(this.diagramControllerUrl,"post",{id:i,source:e},!0),this.diagram.option("hasChanges",!1)}getSessionKey(){return this.DIAGRAM_STORAGE_MODE_KEY+this.reportParams.ReportId}},da=la;function $r(t,e,i,r){let n=new da({$container:t,reportParams:e,allowEditing:i,diagramControllerUrl:r});return n.render(),n}var ua={config:j,Header:ke,Footer:st,NavigationMenu:it,UserMenu:Ue,MenuSwitcher:rt,data:Yr,widgets:{notify:O,fullScreen:le,popup:Li,confirm:Qi,landing:ji,accessDenied:qi,defaultGridObsolete:fn,defaultTreeList:mn,defaultGrid:de,defaultToolbar:an},components:{CDM:_r,SessionNotifier:Ar,FileImporter:Ne,FileUploader:Mt},styling:Pi,helpers:Ui,utils:Ni,reports:{createDiagramReportPage:$r,createGridReportPage:ko,disposeGridReportPage:$o,createDashboardReportPage:Vr,disposeDashboardReportPage:ea,createDXReportPage:kr,disposeDXReportPage:oa,gridColumnTypes:nt,createCDMReportPage:bi},business:{LicenceStatus:wt,MenuItemType:Xe,CdmImportFileMode:ot,FooterIndicatorStatus:Wi,GridDataColumnDataType:at}},hy=ua;window.IszoleaUI=ua;})();
13
+ `,"Remove redundant columns?").then(a=>{!a||t(o)})})}resetSettings(){return this.gridDataLayer.resetSettings(this.id).then(e=>(this.onDataLoaded(e),e))}onDataLoaded(e){let t=e&&e.columns,r=0;this.stateLoaded=!0,t&&(this.loadedColumns={},t.forEach(n=>{this.loadedColumns[n.dataField]=!0,n.visible&&n.visibleIndex===null&&(n.visibleIndex=r++),Object.keys(n).forEach(a=>{(n[a]===null||n[a]===void 0||n[a]==="")&&delete n[a]});let o=this.additionalColumnsSettings[n.dataField];o?(o.caption=n.caption,o.tooltip=n.tooltip):this.additionalColumnsSettings[n.dataField]={caption:n.caption,tooltip:n.tooltip},delete n.caption,delete n.tooltip})),this.lastColumnSettingsStr=JSON.stringify(e.columns)}};var Go=(t=>(t[t.View=1]="View",t[t.Edit=2]="Edit",t))(Go||{}),P=Go;var Uo=i=>{let e={gridResult:`${i}/GridViewResult`,getColumnsByReportId:`${i}/GetDbTableFields`,resetGridSettings:`${i}/ResetGridViewSettings`,updateGridViewSettings:`${i}/UpdateGridViewSettings`,getGridViewSettings:`${i}/GetGridViewSettings`};return{getGridDataSource(t,r,n){return te({loadParams:{id:t.ReportId,appName:t.AppName,gridMode:r,rowsLimit:r===P.Edit&&!n?10:null},loadUrl:e.gridResult,getUserFriendlyErrorMessage:xl})},getColumnsByReportId:t=>x(e.getColumnsByReportId,"post",{id:t},!1,{dataType:"json"}),resetSettings:t=>x(e.resetGridSettings,"post",{id:t},!1,{dataType:"json"}),updateGridViewSettings:(t,r)=>x(e.updateGridViewSettings,"post",{id:t,columnsSettings:JSON.stringify(r.columns)},!1,{dataType:"json"}),getGridViewSettings:t=>x(e.getGridViewSettings,"post",{id:t},!1,{dataType:"json"})}},xl=i=>{switch(i){case 1:return"We attempted to execute the data query however it appears there is an error in the data source. Please contact the report author to confirm the data requirements.";default:return""}};var wl=3e3,Gr="DisplayGridView",Ur="resetSettingBtn",R=null,Ht=!1,Ci=null,T=null,Wt=null;function Vo(i,e,t,r,n){let o=Uo(r);$("<div />").attr("id",Gr).insertAfter(i);let a=new Di(e.ReportId,o),s,l=null,d,u=!1,c=!1;l=$("<div />").text("Data loading failed.").addClass("dx-datagrid-nodata").css({zIndex:1}),l.appendTo(i),l.hide();function p(v,h,D){let G=o.getGridDataSource(v,h,D),M=new DevExpress.data.DataSource({store:G,onChanged:h===P.View?void 0:()=>{c=!1},onLoadError:N=>{M.isLoaded()||l.show(),T.endCustomLoading()},onLoadingChanged:N=>{N?(l.hide(),Ci=setTimeout(()=>{T.beginCustomLoading("Please wait, data loading in progress.")},1e4)):(Ci&&(clearTimeout(Ci),Ci=null),T.endCustomLoading())}});return M}function g(v){Object.keys(ae).forEach(D=>s.removeClass(ae[D])),s.addClass(v),d&&window.clearTimeout(d),v===ae.saved&&(d=window.setTimeout(()=>{g(ae.edit)},wl));let h="";switch(v){case ae.edit:h="Edit mode";break;case ae.saved:h="Saved";break;case ae.saving:h="Saving";break}s.attr("title",h)}function b(v){v.columns&&v.columns.forEach(h=>{/[^a-zA-Z0-9_]/.test(h.dataField)&&T.columnOption(h.dataField,"calculateCellValue",D=>D[h.dataField])}),c=!0}function I(){DevExpress.ui.dialog.confirm("Reset grid settings to default values?","Reset to default?").then(v=>{v&&(T.beginCustomLoading("Loading"),a.resetSettings().then(h=>{T.state(h),T.option("dataSource",p(e,R,Ht)),T.refresh()}))})}function B(v){if(R===v||v===P.Edit&&!t)return;R=v;let h=T.option("summary.totalItems[0].column"),D=S(w({},e),{TotalSummaryColumn:h||e.TotalSummaryColumn});T.dispose(),$(`#${Gr}`).remove(),T=Vo(i,D,t,r,n)}function E(v){if(R!==P.Edit)return;c=!1;let h=a.save(v,()=>g(ae.saving),()=>g(ae.saved));h&&Object.keys(h).forEach(D=>{let G=xt[D],M=h[D]==="inherit"?"":h[D];G&&G.option("value")!==M&&G.option("value",M)})}function fe(v,h,D){let G=v.dataField,M=h.find(".dx-datagrid-text-content"),N=$("<span />").addClass("column-editor-area").insertAfter(M);M.css("maxWidth","55%");let Qt=$("<div />").addClass("edit-type-panel").width("100%").appendTo(h),Oi=$("<div />").addClass("edit-width-panel").width("100%").appendTo(h);Qt[0].addEventListener("click",H=>{H.preventDefault(),H.stopImmediatePropagation();let L=Fi.dxSelectBox("instance");L.option("opened")?L.close():L.open()},!0);let jt=v.caption,Q=$("<span />").dxButton({hint:"Edit column caption",template:(H,L)=>L.append($("<span />").addClass("edit-caption-btn")),onClick:({event:H})=>{H.preventDefault(),H.stopImmediatePropagation(),M.hide(),Q.hide(),qe.hide();let L=$("<span />").dxTextBox({value:jt,elementAttr:{class:"caption-editor"},onEnterKey:W=>{Le.blur(),W.event.stopPropagation()},onKeyDown:W=>{W.event.stopPropagation()},onFocusOut:W=>{let Bi=Le.option("value");L.remove(),M.text(Bi).show(),Q.show(),qe.show(),jt=Bi,a.setColumnCaption(G,Bi),E(T.state())}}).appendTo(N).on("click",W=>{W.stopImmediatePropagation(),W.preventDefault()}),Le=L.dxTextBox("instance");Le.focus()}}).insertAfter(M),qe=$("<span />").dxButton({hint:"Edit column tooltip",template:(H,L)=>L.append($("<span />").addClass("edit-tooltip-btn")),onClick:({event:H})=>{H.preventDefault(),H.stopImmediatePropagation(),M.hide(),Q.hide(),qe.hide();let L=$("<span />").dxTextBox({value:D&&D.tooltip,text:D&&D.tooltip,placeholder:"Enter column tooltip...",onEnterKey:W=>{Le.blur(),W.event.stopPropagation()},onKeyDown:W=>{W.event.stopPropagation()},onFocusOut:()=>{let W=Le.option("value");L.remove(),M.show(),Q.show(),qe.show(),D.tooltip=W,h.attr("title",W),E(T.state())}}).appendTo(N).on("click",W=>{W.stopImmediatePropagation(),W.preventDefault()}),Le=L.dxTextBox("instance");Le.focus()}}).insertAfter(Q),Fi=$("<span />").dxSelectBox({dataSource:nt,value:v.dataType||"default",placeholder:"Select column type...",onValueChanged:({value:H})=>{T.columnOption(G,"dataType",H)}}).appendTo(Qt),Re=v.width?v.width.toString():"";function Nr(H){let L=H.component.option("value");(!L||L==="inherit")&&(L=""),(!Re||Re==="inherit")&&(Re=""),L!==Re&&(Re=L,T.columnOption(G,"width",L||"inherit"),u||(window.setTimeout(()=>{T.repaint(),u=!1},100),u=!0))}let Hr=$("<span />").dxTextBox({text:Re==="inherit"?"":Re,placeholder:"Set width...",onEnterKey:()=>Hr.blur(),onFocusOut:Nr,onValueChanged:Nr}).appendTo(Oi).on("click",H=>{H.stopImmediatePropagation(),H.preventDefault()}).dxTextBox("instance");xt[v.visibleIndex]=Hr}function yt(v,h){let D=v.find(".dx-datagrid-text-content"),G=h&&h.tooltip,M=h&&h.caption;v.attr("title",G||void 0),M&&D.text(M)}e.Details&&(Wt=ue(".report-details-link",e.Details));let xt=[],Jt={dataSource:p(e,R,Ht),elementAttr:{class:R===P.Edit?"edit-mode":"view-mode"},repaintChangesOnly:!0,onToolbarPreparing:v=>{let h=v.toolbarOptions.items;if(R===P.View&&t){let D=h.filter(N=>N.name==="searchPanel")[0],G=h.indexOf(D),M={widget:"dxButton",location:"after",options:{text:"Switch to Edit Mode",onClick:()=>B(P.Edit),icon:"switch-to-edit-mode"}};h.splice(G,1),h.push(M),h.push(D)}if(R===P.Edit){let D=h.filter(Q=>Q.name==="columnChooserButton")[0],G=h.indexOf(D),M={location:"after",template:()=>{let Q=$("<div />").css({margin:"0 10px"});$("<span />").css({margin:"0 5px"}).dxSwitch({value:Ht,onValueChanged:({value:Fi})=>{Ht=Fi,T.option("dataSource",p(e,R,Ht)),T.refresh()}}).appendTo(Q),$("<span />").text("Show all data ").appendTo(Q);let qe=$("<a />").css({textDecoration:"underline",color:"blue"}).text("(?)").appendTo(Q);return $("<div />").text(`If the table contains a lot of columns showing all data can lead to slow page performance when you're editing the grid.
14
+ By default grid shows only first 10 rows in the Edit mode.`).dxPopover({target:qe,showEvent:"mouseenter",hideEvent:"mouseleave",position:"top",width:500}).appendTo(Q),Q}},N={widget:"dxButton",location:"after",options:{text:"Switch to View Mode",onClick:()=>B(P.View),icon:"switch-to-view-mode"}};h.splice(G,1);let Qt=h.filter(Q=>Q.name==="exportButton")[0],Oi=h.indexOf(Qt);h.splice(Oi,1),h.push(M),h.push(N),h.push(D);let jt={location:"before",template:()=>(s=$("<div />").addClass("edit-grid-state"),g(ae.edit),s)};h.unshift(jt)}},onCellPrepared:({rowType:v,column:h,cellElement:D})=>{if(v==="header"&&!h.command){let G=h.dataField,M=a.getColumnAdditionalSettings(G);yt(D,M),R===P.Edit&&fe(h,D,M)}},onContentReady:v=>{let h=v.component,D=h.state();if(!c)b(D);else return;if(window.setTimeout(()=>h.endCustomLoading()),R!==P.Edit)return;a.checkNewColumns(D).forEach(N=>v.component.columnOption(N,"visible",!1)),a.getColumnCaptions().forEach(N=>{N.caption&&h.columnOption(N.dataField,"caption")!==N.caption&&h.columnOption(N.dataField,"caption",N.caption)})},stateStoring:{enabled:!0,type:"custom",customLoad:()=>a.load(R===P.Edit,v=>{let h=T.state();h.columns=h.columns.filter(D=>v.indexOf(D.dataField)<0),T.state(h)}),customSave:v=>E(v)},filterRow:{visible:R===P.View,applyFilter:"onClick"},headerFilter:{visible:R===P.View},searchPanel:{visible:R===P.View},errorRowEnabled:!1,allowColumnResizing:!0,sorting:{mode:"multiple"},groupPanel:{visible:!0},grouping:{autoExpandAll:!1},allowColumnReordering:R===P.Edit,columnChooser:{enabled:R===P.Edit},showColumnHeaders:!0,showBorders:!0,paging:{pageSize:50,enabled:!0},remoteOperations:!0,summary:e.TotalSummaryColumn?{totalItems:[{column:e.TotalSummaryColumn,summaryType:"count"}]}:void 0,onEditorPreparing(v){if(v.parentType==="filterRow"){let h=()=>v.element.find(".dx-apply-button").trigger("dxclick");v.editorOptions.onEnterKey=h,v.editorOptions.onFocusOut=h}if(v.parentType==="searchPanel"){let h=D=>{v.component.searchByText(D.component.option("value"))};v.editorOptions.onValueChanged=void 0,v.editorOptions.onEnterKey=h,v.editorOptions.onFocusOut=h}}};return T=de(`#${Gr}`,{options:Jt,exportFileName:e.Name,title:n?e.Name:null,headerDescription:n?e.Details:null}),$(`#${Ur}`).remove(),R===P.Edit&&$("<span />").attr("id",Ur).css({float:"right",position:"relative",bottom:"8px"}).dxButton({text:"Reset settings",onClick:()=>I(),icon:"reset-grid-settings"}).appendTo("footer"),T}function ko(i,e,t,r,n=!1){R||(R=P.View),Vo(i,e,t,r,n)}function $o(){T==null||T.dispose(),T=null,R=null,$(`#${Ur}`).remove(),Wt==null||Wt.dispose(),Wt=null}var Il={subvalues:[],type:"triangleMarker",color:"#8798a5",secondColor:"#e18e92",width:10,isCustomPalette:!1,palette:null,customPalette:["#61a595","Grey","rgb(153, 102, 255)","Navy"]},Ce="isoz-subvalueEditorFormGroup",bl=`${Ce}__name`,No=`${Ce}__is-bound`,Ho=`${Ce}__value`,Wo=`${Ce}__measure-id`,Dl=`${Ce}__color`,Cl=["rectangleNeedle","triangleNeedle","rangeBar","triangleMarker","textCloud"],El=["rectangle","circle","rhombus","rangeBar","triangleMarker","textCloud"];var Sl=["LinearHorizontal","LinearVertical"],Ei=["#1db2f5","#f5564a","#97c95c","#ffc720","#eb3573","#a63db8","#6593bc","#faa335","#ff887c"];var Jo,Qo,Ti={ownerType:(Qo=(Jo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:Jo.Model)==null?void 0:Qo.GaugeItem,propertyName:"GaugeSubvaluesSettings",defaultValue:JSON.stringify(Il),valueType:"string"},jo,qo;(qo=(jo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:jo.Model)==null||qo.registerCustomProperty(Ti);function zo(i){var e,t,r;if(i.dashboardItem instanceof((t=(e=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:e.Model)==null?void 0:t.GaugeItem)){let n=Qe(i.dashboardItem),o=i.options;o.subvalues=o.subvalues||[],o.subvalueIndicator=o.subvalueIndicator||{},o.subvalueIndicator.type=n.type,o.subvalueIndicator.width=n.width;let a=!!((r=i.dashboardItem.gauges()[0])==null?void 0:r.targetValue());o.subvalueIndicator.palette=n.subvalues.filter(s=>a||s.key>-1).map(s=>s.color),n.subvalues.forEach(s=>{if(s.key===-1)return;let l=s.isBound?i.itemData.getMeasureValue(s.measureId).getValue():s.value;o.subvalues.push(l)})}}function Ko(i){var t,r;let e=i.dashboardItem;e instanceof((r=(t=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:t.Model)==null?void 0:r.GaugeItem)&&i.addSection({title:"Subvalues",items:[{dataField:Ti.propertyName,template(n,o){let a=document.createElement("div");return new DevExpress.ui.dxButton(a,{text:"Edit in Wizard",onClick(){Tl(e)}}),a},label:{visible:!1}}]})}function Tl(i){let e=document.createElement("div");document.body.appendChild(e);let t={width:"800px",height:"auto",maxHeight:"100%",closeOnOutsideClick:!1,contentTemplate(n){let o=document.createElement("div"),a=Ol(i);this._subvaluesForm=new DevExpress.ui.dxForm(o,a);let s=document.createElement("div"),l=Bl(i);this._indicatorForm=new DevExpress.ui.dxForm(s,l);let d=$("<div />").append(o,s),u=$("<div />");return u.append(d),u.dxScrollView({width:"100%",height:"100%"}),u},onHidden(){document.body.removeChild(e)},title:"Subvalues Wizard"};new DevExpress.ui.dxPopup(e,t).show()}function Qe(i){var r,n;let e=JSON.parse(i.customProperties.getValue(Ti.propertyName));return!!((r=i.gauges()[0])==null?void 0:r.targetValue())&&(!e.subvalues||!e.subvalues.some(o=>o.key===-1))&&e.subvalues.splice(0,0,{key:-1,name:"Target Value",isBound:!1,measureId:"",value:0,color:Ei[(((n=e.subvalues)==null?void 0:n.length)||0)%(Ei.length-1)]}),e}function Si(i,e){return i.customProperties.setValue(Ti.propertyName,JSON.stringify(e))}function Ml(i,e){let t=$("<div />"),r=$("<div />");t.append(r);let n=null,o=null,a={items:[{location:"before",widget:"dxButton",options:{icon:"add",stylingMode:"text",onClick(c){let p=Qe(e),g=p.subvalues.reduce((B,E)=>B<E.key?E.key:B,0)+1,b={key:g,name:`Subvalue ${g}`,isBound:!1,measureId:"",value:0,color:Ei[p.subvalues.length%(Ei.length-1)]};i.option("formData",b);let I=p.subvalues.filter(B=>B.key===b.key)[0];if(!I)p.subvalues.push(b);else{let B=p.subvalues.indexOf(I);p[B]=b}Si(e,p),o.reload(),o.option("selectedItem",p.subvalues[p.subvalues.length-1])}}}]},s=c=>{n&&n.option("disabled",!c)},l=new DevExpress.ui.dxToolbar(r,a);i.element().find(`.${Ce}`).css("display","none");let d={dataSource:new DevExpress.data.DataSource({load:()=>Qe(e).subvalues,remove:()=>{}}),displayExpr:"name",height:"200px",keyExpr:"key",noDataText:"Add a Subvalue",allowItemDeleting:!0,itemDeleteMode:"static",selectionMode:"single",onContentReady(c){s(!!c.component.option("selectedItem"))},onItemRendered(c){if(c.itemData.key===-1){let g=c.itemElement[0].getElementsByClassName("dx-list-static-delete-button-container")[0];g.style.display="none"}},onSelectionChanged(c){s(!!c.component.option("selectedItem"));let p=c.component.option("selectedItem");i.option("formData",p);let g=i.element().find(`.${Ce}`).css("display")==="block",b=!!p;(!g&&b||g&&!b)&&i.element().find(`.${Ce}`).css("display",b?"block":"none")},onItemDeleted:c=>{let p=Qe(e),g=c.itemData.key,b=p.subvalues.indexOf(p.subvalues.filter(I=>I.key===g)[0]);b>=0&&(p.subvalues.splice(b,1),Si(e,p)),o.reload(),o.option("selectedItem",p.subvalues[p.subvalues.length-1])}},u=$("<div />");return t.append(u),o=new DevExpress.ui.dxList(u,d),[t,o,l]}function Ol(i){let e=null,t=r=>{let n=r.getEditor("value"),o=r.getEditor("measureId"),a=r.getEditor("name"),s=r.option("formData").isBound,l=r.option("formData").key===-1;n&&n.option("disabled",s),o&&o.option("disabled",!s),r.element().find(`.${No}`).css("display",l?"none":"flex"),r.element().find(`.${Ho}`).css("display",l?"none":"flex"),r.element().find(`.${Wo}`).css("display",l?"none":"flex"),a&&a.option("disabled",l)};return{formData:null,colCount:2,items:[{itemType:"group",caption:"Subvalues items",template:r=>{let[n,o]=Ml(r.component,i);return e=o,n}},{name:"subvalueEditor",cssClass:Ce,itemType:"group",caption:"Item options",items:[{dataField:"name",cssClass:bl,editorType:"dxTextBox",editorOptions:{valueChangeEvent:"keyup"}},{dataField:"isBound",cssClass:No,editorType:"dxRadioGroup",editorOptions:{displayExpr:"text",valueExpr:"value",layout:"horizontal",items:[{text:"Unbound",value:!1},{text:"Bound",value:!0}]},label:{text:"Type"}},{dataField:"value",cssClass:Ho,editorType:"dxNumberBox",label:{text:"Value"},editorOptions:{showSpinButtons:!0}},{dataField:"measureId",cssClass:Wo,editorType:"dxSelectBox",label:{text:"Hidden measures"},editorOptions:{displayExpr:"text",valueExpr:"value",items:i.hiddenMeasures().map(r=>({text:Fl(r),value:r.uniqueName()}))}},{name:"color",cssClass:Dl,dataField:"color",editorType:"dxColorBox",label:{text:"Color"}}]}],onContentReady(r){t(r.component)},onFieldDataChanged(r){let n=r.component.option("formData"),o=Qe(i),a=o.subvalues.filter(s=>s.key===n.key)[0];o.subvalues[o.subvalues.indexOf(a)]=n,Si(i,o),a&&a.name!==n.name&&e&&e.repaint(),t(r.component)}}}function Fl(i){if(i.name())return i.name();let e=i.dataMember();return i.summaryType&&i.summaryType()&&(e+=` (${i.summaryType()})`),e}function Bl(i){let e=i.viewType(),t=Sl.some(r=>r===e)?El:Cl;return{formData:Qe(i)||null,items:[{caption:"Indicator options",itemType:"group",items:[{dataField:"type",editorType:"dxSelectBox",label:{text:"Type"},editorOptions:{displayExpr:"text",valueExpr:"value",items:t.map(r=>({text:r,value:r}))}},{dataField:"width",editorType:"dxNumberBox",editorOptions:{showSpinButtons:!0},label:{text:"Width"}}]}],onFieldDataChanged(r){let n=r.component.option("formData"),o=Qe(i);o.width=n.width,o.type=n.type,Si(i,o)}}}function Xo(i){this.name="GaugeSubvalues",this.start=()=>{let e=i.findExtension("viewer-api");e&&e.on("itemWidgetOptionsPrepared",zo);let t=i.findExtension("item-options-panel");t&&t.on("customizeSections",Ko)},this.stop=()=>{let e=i.findExtension("viewer-api");e&&e.off("itemWidgetOptionsPrepared",zo);let t=i.findExtension("item-options-panel");t&&t.off("customizeSections",Ko)}}var Pl="DASHBOARD_MODE_KEY",Ee=null,zt=null,Zo;function Vr(i,e,t,r){Zo=e.ReportId;let n=e.ReportId&&e.ReportId.toString();DevExpress.Dashboard.ResourceManager.embedBundledResources();let o=t.AllowEditing&&window.sessionStorage.getItem(Yo())||"Viewer";if(e.Details&&(zt=ue(".report-details-link",e.Details)),Ee=new DevExpress.Dashboard.DashboardControl(i[0],{workingMode:o,initialDashboardId:n,endpoint:r.EndPoint,ajaxRemoteService:{headers:e.Token?{token:e.Token}:void 0},onDashboardInitializing:a=>{a.component.registerExtension(new Xo(a.component)),n!==a.dashboardId&&(n=a.dashboardId,window.location.href=encodeURI(r.PreviewUrl+a.dashboardId))},extensions:{"data-source-wizard":{enableCustomSql:!0},"dashboard-export":{allowExportDashboardItems:!0},"data-inspector":{allowInspectAggregatedData:!0,allowInspectRawData:!0,onGridInitialized:a=>{a.component.option("export.enabled",!0)}}}}),Ee.render(),t.AllowEditing){let a=$(".switch-mode-btn").dxButton({text:o==="Viewer"?"Switch to Designer":"Switch to Viewer",onClick:()=>{o=o==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(Yo(),o),o==="Viewer"?(Ee.switchToViewer(),a.option("text","Switch to Designer")):(Ee.switchToDesigner(),a.option("text","Switch to Viewer"))}}).dxButton("instance");Rl(Ee)}}function ea(){Ee==null||Ee.dispose(),Ee=null,zt==null||zt.dispose(),zt=null}function Rl(i){let e=["create-dashboard","open-dashboard"],t=i.findExtension("toolbox");e.forEach(r=>{t.menuItems().filter(o=>o.id===r)[0]&&t.removeMenuItem(r)})}var Yo=()=>Pl+Zo;var ia="Switch to Designer",ra="Switch to Viewer",Ll="reportMode",je="customCurrentUrl",Mi=window.ko,Kt=null,na;function kr(i,e,t,r){na=e.ReportId;let n=window.sessionStorage.getItem(ta())||"Viewer",o=null;e.Details&&(Kt=ue(".report-details-link",e.Details)),t&&(o=$(".switch-mode-btn").dxButton({text:n==="Viewer"?ia:ra,onClick:()=>{n=n==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(ta(),n),_l(n,o)}}).dxButton("instance")),Al(i,r,"dxReportDesigner",e.ReportId.toString(),a=>{setTimeout(()=>{sa(n,o)})},n==="Viewer"),window.addEventListener("beforeunload",a=>{dxReportDesigner&&dxReportDesigner.GetDesignerModel()&&dxReportDesigner.GetDesignerModel().isDirty()&&(a.preventDefault(),a.returnValue="The report document is not saved. Are you sure you want to leave the page?")})}function oa(){Kt==null||Kt.dispose(),Kt=null}function aa(i){let e=i.designerModel.reportPreviewModel.reportPreview,t=DevExpress.Reporting.Designer.Internal.ReportPreviewService;e.initialize(t.initializePreview(i.designerModel.model()))}function _l(i,e){i==="Viewer"?(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible(!0),aa(dxReportDesigner)):(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible(!1),dxReportDesigner.designerModel.reportPreviewModel.reportPreview.deactivate()),sa(i,e)}function sa(i,e){e&&e.option("text",i==="Viewer"?ia:ra)}function Al(i,e,t,r,n,o){let a=i.attr("data-bind","dxReportDesigner: designerOptions").addClass("report-designer"),s={reportUrl:r,requestOptions:{getDesignerModelAction:e},callbacks:{BeforeRender:l=>{window[t]=l,o&&l.designerModel.reportPreviewModel.reportPreview.previewVisible(!0),n(l)},CustomizeMenuActions:Ul,PreviewCustomizeMenuActions:Gl,ReportOpened:(l,d)=>{o&&aa(l),Vl(l,d)},ReportTabClosed:kl}};return Mi.applyBindings({designerOptions:s},a[0]),a}function Gl(i,e){let t=e.GetById(DevExpress.Reporting.Viewer.ActionId.Design);t&&(t.visible=!1)}function Ul(i,e){let t=DevExpress.Reporting.Designer.Actions.ActionId,r=[t.Save],n=[t.NewReport,t.NewReportViaWizard,t.OpenReport,t.Preview,t.SaveAs,t.Exit];r.forEach(s=>{let l=e.GetById(s);l&&l.container==="menu"&&(l.container=void 0)}),n.forEach(s=>{let l=e.GetById(s);l&&(l.visible=!1)});let o=e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.Save),a=o.clickAction;o.clickAction=()=>{i.GetCurrentTab().url(Mi.unwrap(i[je])),a()}}function Vl(i,e){i[je]=i[je]||Mi.observable(),i[je](e.Url)}function kl(i,e){i[je]=i[je]||Mi.observable(),i[je](null)}var ta=()=>Ll+na;var la=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Designer";this.SWITCH_TO_VIEWER_TEXT="Switch to Viewer";this.DIAGRAM_STORAGE_MODE_KEY="DIAGRAM_STORAGE_MODE_KEY";this.$container=e.$container,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.diagramControllerUrl=e.diagramControllerUrl,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}render(){this.createDiagramControl(),this.initDiagram(),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=ue(".diagram-details-link",this.reportParams.Details))}dispose(){var e;this.diagram.dispose(),(e=this.popover)==null||e.dispose()}createDiagramControl(){this.diagram=this.$container.dxDiagram({historyToolbar:{visible:!0,commands:["separator","undo","redo","separator",{name:"save",text:"Save",icon:"save"}]},onCustomCommand:e=>{switch(e.name){case"save":this.saveReport(e.component.export());break}},fullScreen:!1,readOnly:this.mode==="Viewer"}).dxDiagram("instance")}initDiagram(){x(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e)),this.diagram.option("hasChanges",!1)}),window.addEventListener("beforeunload",e=>{this.diagram.option("hasChanges")&&(e.returnValue="The document is not saved. Are you sure you want to leave the page?")})}initSwitchModeButton(){let e=$(".switch-mode-btn").dxButton({text:this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT,onClick:()=>{this.mode=this.mode==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),this.mode),this.diagram.option("readOnly",this.mode==="Viewer"),e.option("text",this.mode==="Viewer"?this.SWITCH_TO_DESIGNER_TEXT:this.SWITCH_TO_VIEWER_TEXT)}}).dxButton("instance")}async saveReport(e){let t=this.reportParams.ReportId;await x(this.diagramControllerUrl,"post",{id:t,source:e},!0),this.diagram.option("hasChanges",!1)}getSessionKey(){return this.DIAGRAM_STORAGE_MODE_KEY+this.reportParams.ReportId}},da=la;function $r(i,e,t,r){let n=new da({$container:i,reportParams:e,allowEditing:t,diagramControllerUrl:r});return n.render(),n}var ua={config:j,Header:ke,Footer:st,NavigationMenu:it,UserMenu:Ue,MenuSwitcher:rt,data:Yr,widgets:{notify:O,fullScreen:le,popup:Li,confirm:Qi,landing:ji,accessDenied:qi,defaultGridObsolete:fn,defaultTreeList:mn,defaultGrid:de,defaultToolbar:an},components:{CDM:_r,SessionNotifier:Ar,FileImporter:Ne,FileUploader:Mt},styling:Pi,helpers:Ui,utils:Ni,reports:{createDiagramReportPage:$r,createGridReportPage:ko,disposeGridReportPage:$o,createDashboardReportPage:Vr,disposeDashboardReportPage:ea,createDXReportPage:kr,disposeDXReportPage:oa,gridColumnTypes:nt,createCDMReportPage:bi},business:{LicenceStatus:wt,MenuItemType:Xe,CdmImportFileMode:ot,FooterIndicatorStatus:Wi,GridDataColumnDataType:at}},hy=ua;window.IszoleaUI=ua;})();