iszolea-ui 1.2.2 → 1.2.3

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,13 +1,13 @@
1
1
  // Iszolea Corp ©
2
- (()=>{var ho=Object.create;var Ae=Object.defineProperty,go=Object.defineProperties,fo=Object.getOwnPropertyDescriptor,vo=Object.getOwnPropertyDescriptors,yo=Object.getOwnPropertyNames,li=Object.getOwnPropertySymbols,xo=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty,wo=Object.prototype.propertyIsEnumerable;var di=(r,e,t)=>e in r?Ae(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,b=(r,e)=>{for(var t in e||(e={}))pi.call(e,t)&&di(r,t,e[t]);if(li)for(var t of li(e))wo.call(e,t)&&di(r,t,e[t]);return r},S=(r,e)=>go(r,vo(e)),Io=r=>Ae(r,"__esModule",{value:!0});var ui=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),X=(r,e)=>{for(var t in e)Ae(r,t,{get:e[t],enumerable:!0})},bo=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yo(e))!pi.call(r,o)&&(t||o!=="default")&&Ae(r,o,{get:()=>e[o],enumerable:!(i=fo(e,o))||i.enumerable});return r},ci=(r,e)=>bo(Io(Ae(r!=null?ho(xo(r)):{},"default",!e&&r&&r.__esModule?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var Fi=ui((Gt,Lt)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof Gt<"u"?e():(e(),r.FileSaver={})})(Gt,function(){"use strict";function r(s,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(s.type)?new Blob(["\uFEFF",s],{type:s.type}):s}function e(s,d,m){var c=new XMLHttpRequest;c.open("GET",s),c.responseType="blob",c.onload=function(){a(c.response,d,m)},c.onerror=function(){console.error("could not download file")},c.send()}function t(s){var d=new XMLHttpRequest;d.open("HEAD",s,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(s){try{s.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),s.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,n=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),a=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!n?function(s,d,m){var c=o.URL||o.webkitURL,v=document.createElement("a");d=d||s.name||"download",v.download=d,v.rel="noopener",typeof s=="string"?(v.href=s,v.origin===location.origin?i(v):t(v.href)?e(s,d,m):i(v,v.target="_blank")):(v.href=c.createObjectURL(s),setTimeout(function(){c.revokeObjectURL(v.href)},4e4),setTimeout(function(){i(v)},0))}:"msSaveOrOpenBlob"in navigator?function(s,d,m){if(d=d||s.name||"download",typeof s!="string")navigator.msSaveOrOpenBlob(r(s,m),d);else if(t(s))e(s,d,m);else{var c=document.createElement("a");c.href=s,c.target="_blank",setTimeout(function(){i(c)})}}:function(s,d,m,c){if(c=c||open("","_blank"),c&&(c.document.title=c.document.body.innerText="downloading..."),typeof s=="string")return e(s,d,m);var v=s.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,I=/CriOS\/[\d]+/.test(navigator.userAgent);if((I||v&&g||n)&&typeof FileReader<"u"){var y=new FileReader;y.onloadend=function(){var p=y.result;p=I?p:p.replace(/^data:[^;]*;/,"data:attachment/file;"),c?c.location.href=p:location=p,c=null},y.readAsDataURL(s)}else{var u=o.URL||o.webkitURL,l=u.createObjectURL(s);c?c.location=l:location.href=l,c=null,setTimeout(function(){u.revokeObjectURL(l)},4e4)}});o.saveAs=a.saveAs=a,typeof Lt<"u"&&(Lt.exports=a)})});var Ui=ui((kt,Ut)=>{(function(r,e){typeof kt=="object"&&typeof Ut<"u"?Ut.exports=e():typeof define=="function"&&define.amd?define(e):r.Croppr=e()})(kt,function(){"use strict";(function(){for(var y=0,u=["ms","moz","webkit","o"],l=0;l<u.length&&!window.requestAnimationFrame;++l)window.requestAnimationFrame=window[u[l]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[u[l]+"CancelAnimationFrame"]||window[u[l]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(p,h){var f=new Date().getTime(),x=Math.max(0,16-(f-y)),w=window.setTimeout(function(){p(f+x)},x);return y=f+x,w}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(p){clearTimeout(p)})})(),function(){if(typeof window.CustomEvent=="function")return!1;function y(u,l){l=l||{bubbles:!1,cancelable:!1,detail:void 0};var p=document.createEvent("CustomEvent");return p.initCustomEvent(u,l.bubbles,l.cancelable,l.detail),p}y.prototype=window.Event.prototype,window.CustomEvent=y}(),function(y){try{return new CustomEvent("test"),!1}catch{}function u(l,p){p=p||{bubbles:!1,cancelable:!1};var h=document.createEvent("MouseEvent");return h.initMouseEvent(l,p.bubbles,p.cancelable,y,0,0,0,0,0,!1,!1,!1,!1,0,null),h}u.prototype=Event.prototype,y.MouseEvent=u}(window);var r=function(y,u){if(!(y instanceof u))throw new TypeError("Cannot call a class as a function")},e=function(){function y(u,l){for(var p=0;p<l.length;p++){var h=l[p];h.enumerable=h.enumerable||!1,h.configurable=!0,"value"in h&&(h.writable=!0),Object.defineProperty(u,h.key,h)}}return function(u,l,p){return l&&y(u.prototype,l),p&&y(u,p),u}}(),t=function y(u,l,p){u===null&&(u=Function.prototype);var h=Object.getOwnPropertyDescriptor(u,l);if(h===void 0){var f=Object.getPrototypeOf(u);return f===null?void 0:y(f,l,p)}else{if("value"in h)return h.value;var x=h.get;return x===void 0?void 0:x.call(p)}},i=function(y,u){if(typeof u!="function"&&u!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof u);y.prototype=Object.create(u&&u.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(y,u):y.__proto__=u)},o=function(y,u){if(!y)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u&&(typeof u=="object"||typeof u=="function")?u:y},n=function(){function y(u,l){var p=[],h=!0,f=!1,x=void 0;try{for(var w=u[Symbol.iterator](),D;!(h=(D=w.next()).done)&&(p.push(D.value),!(l&&p.length===l));h=!0);}catch(E){f=!0,x=E}finally{try{!h&&w.return&&w.return()}finally{if(f)throw x}}return p}return function(u,l){if(Array.isArray(u))return u;if(Symbol.iterator in Object(u))return y(u,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function y(u,l,p,h){r(this,y);var f=this;this.position=u,this.constraints=l,this.cursor=p,this.eventBus=h,this.el=document.createElement("div"),this.el.className="croppr-handle",this.el.style.cursor=p,this.el.addEventListener("mousedown",x);function x(E){E.stopPropagation(),document.addEventListener("mouseup",w),document.addEventListener("mousemove",D),f.eventBus.dispatchEvent(new CustomEvent("handlestart",{detail:{handle:f}}))}function w(E){E.stopPropagation(),document.removeEventListener("mouseup",w),document.removeEventListener("mousemove",D),f.eventBus.dispatchEvent(new CustomEvent("handleend",{detail:{handle:f}}))}function D(E){E.stopPropagation(),f.eventBus.dispatchEvent(new CustomEvent("handlemove",{detail:{mouseX:E.clientX,mouseY:E.clientY}}))}},s=function(){function y(u,l,p,h){r(this,y),this.x1=u,this.y1=l,this.x2=p,this.y2=h}return e(y,[{key:"set",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return this.x1=l??this.x1,this.y1=p??this.y1,this.x2=h??this.x2,this.y2=f??this.y2,this}},{key:"width",value:function(){return Math.abs(this.x2-this.x1)}},{key:"height",value:function(){return Math.abs(this.y2-this.y1)}},{key:"resize",value:function(l,p){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],f=this.x1+this.width()*h[0],x=this.y1+this.height()*h[1];return this.x1=f-l*h[0],this.y1=x-p*h[1],this.x2=this.x1+l,this.y2=this.y1+p,this}},{key:"scale",value:function(l){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0],h=this.width()*l,f=this.height()*l;return this.resize(h,f,p),this}},{key:"move",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,h=this.width(),f=this.height();return l=l===null?this.x1:l,p=p===null?this.y1:p,this.x1=l,this.y1=p,this.x2=l+h,this.y2=p+f,this}},{key:"getRelativePoint",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[0,0],p=this.width()*l[0],h=this.height()*l[1];return[p,h]}},{key:"getAbsolutePoint",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[0,0],p=this.x1+this.width()*l[0],h=this.y1+this.height()*l[1];return[p,h]}},{key:"constrainToRatio",value:function(l){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0],h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"height";if(l!==null){var f=this.width(),x=this.height();switch(h){case"height":this.resize(this.width(),this.width()*l,p);break;case"width":this.resize(this.height()*1/l,this.height(),p);break;default:this.resize(this.width(),this.width()*l,p)}return this}}},{key:"constrainToBoundary",value:function(l,p){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],f=this.getAbsolutePoint(h),x=n(f,2),w=x[0],D=x[1],E=w,F=D,T=l-w,O=p-D,V=-2*h[0]+1,k=-2*h[1]+1,M=null,A=null;switch(V){case-1:M=E;break;case 0:M=Math.min(E,T)*2;break;case 1:M=T;break}switch(k){case-1:A=F;break;case 0:A=Math.min(F,O)*2;break;case 1:A=O;break}if(this.width()>M){var N=M/this.width();this.scale(N,h)}if(this.height()>A){var z=A/this.height();this.scale(z,h)}return this}},{key:"constrainToSize",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,x=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0,0],w=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;if(w&&(w>1?(l=p*1/w,f=f*w):w<1&&(p=l*w,h=f*1/w)),l&&this.width()>l){var D=l,E=w===null?this.height():p;this.resize(D,E,x)}if(p&&this.height()>p){var F=w===null?this.width():l,T=p;this.resize(F,T,x)}if(h&&this.width()<h){var O=h,V=w===null?this.height():f;this.resize(O,V,x)}if(f&&this.height()<f){var k=w===null?this.width():h,M=f;this.resize(k,M,x)}return this}}]),y}();function d(y){y.addEventListener("touchstart",m),y.addEventListener("touchend",m),y.addEventListener("touchmove",m)}function m(y){y.preventDefault();var u=y.changedTouches[0],l={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"};u.target.dispatchEvent(new MouseEvent(l[y.type],{bubbles:!0,cancelable:!0,view:window,clientX:u.clientX,clientY:u.clientY,screenX:u.screenX,screenY:u.screenY}))}var c=[{position:[0,0],constraints:[1,0,0,1],cursor:"nw-resize"},{position:[.5,0],constraints:[1,0,0,0],cursor:"n-resize"},{position:[1,0],constraints:[1,1,0,0],cursor:"ne-resize"},{position:[1,.5],constraints:[0,1,0,0],cursor:"e-resize"},{position:[1,1],constraints:[0,1,1,0],cursor:"se-resize"},{position:[.5,1],constraints:[0,0,1,0],cursor:"s-resize"},{position:[0,1],constraints:[0,0,1,1],cursor:"sw-resize"},{position:[0,.5],constraints:[0,0,0,1],cursor:"w-resize"}],v=function(){function y(u,l){var p=this,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(r(this,y),this.options=y.parseOptions(l||{}),!u.nodeName&&(u=document.querySelector(u),u==null))throw"Unable to find element.";if(!u.getAttribute("src"))throw"Image src not provided.";this._initialized=!1,this._restore={parent:u.parentNode,element:u},h||(u.width===0||u.height===0?u.onload=function(){p.initialize(u)}:this.initialize(u))}return e(y,[{key:"initialize",value:function(l){this.createDOM(l),this.options.convertToPixels(this.cropperEl),this.attachHandlerEvents(),this.attachRegionEvents(),this.attachOverlayEvents(),this.box=this.initializeBox(this.options),this.redraw(),this._initialized=!0,this.options.onInitialize!==null&&this.options.onInitialize(this)}},{key:"createDOM",value:function(l){this.containerEl=document.createElement("div"),this.containerEl.className="croppr-container",this.eventBus=this.containerEl,d(this.containerEl),this.cropperEl=document.createElement("div"),this.cropperEl.className="croppr",this.imageEl=document.createElement("img"),this.imageEl.setAttribute("src",l.getAttribute("src")),this.imageEl.setAttribute("alt",l.getAttribute("alt")),this.imageEl.className="croppr-image",this.imageClippedEl=this.imageEl.cloneNode(),this.imageClippedEl.className="croppr-imageClipped",this.regionEl=document.createElement("div"),this.regionEl.className="croppr-region",this.overlayEl=document.createElement("div"),this.overlayEl.className="croppr-overlay";var p=document.createElement("div");p.className="croppr-handleContainer",this.handles=[];for(var h=0;h<c.length;h++){var f=new a(c[h].position,c[h].constraints,c[h].cursor,this.eventBus);this.handles.push(f),p.appendChild(f.el)}this.cropperEl.appendChild(this.imageEl),this.cropperEl.appendChild(this.imageClippedEl),this.cropperEl.appendChild(this.regionEl),this.cropperEl.appendChild(this.overlayEl),this.cropperEl.appendChild(p),this.containerEl.appendChild(this.cropperEl),l.parentElement.replaceChild(this.containerEl,l)}},{key:"setImage",value:function(l){var p=this;return this.imageEl.onload=function(){p.box=p.initializeBox(p.options),p.redraw()},this.imageEl.src=l,this.imageClippedEl.src=l,this}},{key:"destroy",value:function(){this._restore.parent.replaceChild(this._restore.element,this.containerEl)}},{key:"initializeBox",value:function(l){var p=l.startSize.width,h=l.startSize.height,f=new s(0,0,p,h);f.constrainToRatio(l.aspectRatio,[.5,.5]);var x=l.minSize,w=l.maxSize;f.constrainToSize(w.width,w.height,x.width,x.height,[.5,.5],l.aspectRatio);var D=this.cropperEl.offsetWidth,E=this.cropperEl.offsetHeight;f.constrainToBoundary(D,E,[.5,.5]);var F=this.cropperEl.offsetWidth/2-f.width()/2,T=this.cropperEl.offsetHeight/2-f.height()/2;return f.move(F,T),f}},{key:"redraw",value:function(){var l=this,p=Math.round(this.box.width()),h=Math.round(this.box.height()),f=Math.round(this.box.x1),x=Math.round(this.box.y1),w=Math.round(this.box.x2),D=Math.round(this.box.y2);window.requestAnimationFrame(function(){l.regionEl.style.transform="translate("+f+"px, "+x+"px)",l.regionEl.style.width=p+"px",l.regionEl.style.height=h+"px",l.imageClippedEl.style.clip="rect("+x+"px, "+w+"px, "+D+"px, "+f+"px)";for(var E=l.box.getAbsolutePoint([.5,.5]),F=E[0]-l.cropperEl.offsetWidth/2>>31,T=E[1]-l.cropperEl.offsetHeight/2>>31,O=(F^T)+T+T+4,V=-2*O+8,k=0;k<l.handles.length;k++){var M=l.handles[k],A=M.el.offsetWidth,N=M.el.offsetHeight,z=f+p*M.position[0]-A/2,ee=x+h*M.position[1]-N/2;M.el.style.transform="translate("+Math.round(z)+"px, "+Math.round(ee)+"px)",M.el.style.zIndex=V==k?5:4}})}},{key:"attachHandlerEvents",value:function(){var l=this.eventBus;l.addEventListener("handlestart",this.onHandleMoveStart.bind(this)),l.addEventListener("handlemove",this.onHandleMoveMoving.bind(this)),l.addEventListener("handleend",this.onHandleMoveEnd.bind(this))}},{key:"attachRegionEvents",value:function(){var l=this.eventBus,p=this;this.regionEl.addEventListener("mousedown",h),l.addEventListener("regionstart",this.onRegionMoveStart.bind(this)),l.addEventListener("regionmove",this.onRegionMoveMoving.bind(this)),l.addEventListener("regionend",this.onRegionMoveEnd.bind(this));function h(w){w.stopPropagation(),document.addEventListener("mouseup",x),document.addEventListener("mousemove",f),l.dispatchEvent(new CustomEvent("regionstart",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}function f(w){w.stopPropagation(),l.dispatchEvent(new CustomEvent("regionmove",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}function x(w){w.stopPropagation(),document.removeEventListener("mouseup",x),document.removeEventListener("mousemove",f),l.dispatchEvent(new CustomEvent("regionend",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}}},{key:"attachOverlayEvents",value:function(){var l=4,p=this,h=null;this.overlayEl.addEventListener("mousedown",f);function f(D){D.stopPropagation(),document.addEventListener("mouseup",w),document.addEventListener("mousemove",x);var E=p.cropperEl.getBoundingClientRect(),F=D.clientX-E.left,T=D.clientY-E.top;h=p.box,p.box=new s(F,T,F+1,T+1),p.eventBus.dispatchEvent(new CustomEvent("handlestart",{detail:{handle:p.handles[l]}}))}function x(D){D.stopPropagation(),p.eventBus.dispatchEvent(new CustomEvent("handlemove",{detail:{mouseX:D.clientX,mouseY:D.clientY}}))}function w(D){if(D.stopPropagation(),document.removeEventListener("mouseup",w),document.removeEventListener("mousemove",x),p.box.width()===1&&p.box.height()===1){p.box=h;return}p.eventBus.dispatchEvent(new CustomEvent("handleend",{detail:{mouseX:D.clientX,mouseY:D.clientY}}))}}},{key:"onHandleMoveStart",value:function(l){var p=l.detail.handle,h=[1-p.position[0],1-p.position[1]],f=this.box.getAbsolutePoint(h),x=n(f,2),w=x[0],D=x[1];this.activeHandle={handle:p,originPoint:h,originX:w,originY:D},this.options.onCropStart!==null&&this.options.onCropStart(this.getValue())}},{key:"onHandleMoveMoving",value:function(l){var p=l.detail,h=p.mouseX,f=p.mouseY,x=this.cropperEl.getBoundingClientRect();h=h-x.left,f=f-x.top,h<0?h=0:h>x.width&&(h=x.width),f<0?f=0:f>x.height&&(f=x.height);var w=this.activeHandle.originPoint.slice(),D=this.activeHandle.originX,E=this.activeHandle.originY,F=this.activeHandle.handle,T=F.constraints[0]===1,O=F.constraints[1]===1,V=F.constraints[2]===1,k=F.constraints[3]===1,M=(k||O)&&(T||V),A=k||O?D:this.box.x1,N=k||O?D:this.box.x2,z=T||V?E:this.box.y1,ee=T||V?E:this.box.y2;A=k?h:A,N=O?h:N,z=T?f:z,ee=V?f:ee;var Ve=!1,Ie=!1;if((k||O)&&(Ve=k?h>D:h<D),(T||V)&&(Ie=T?f>E:f<E),Ve){var K=A;A=N,N=K,w[0]=1-w[0]}if(Ie){var po=z;z=ee,ee=po,w[1]=1-w[1]}var se=new s(A,z,N,ee);if(this.options.aspectRatio){var ft=this.options.aspectRatio,vt=!1;M?vt=f>se.y1+ft*se.width()||f<se.y2-ft*se.width():(T||V)&&(vt=!0);var uo=vt?"width":"height";se.constrainToRatio(ft,w,uo)}var ai=this.options.minSize,si=this.options.maxSize;se.constrainToSize(si.width,si.height,ai.width,ai.height,w,this.options.aspectRatio);var co=this.cropperEl.offsetWidth,mo=this.cropperEl.offsetHeight;se.constrainToBoundary(co,mo,w),this.box=se,this.redraw(),this.options.onCropMove!==null&&this.options.onCropMove(this.getValue())}},{key:"onHandleMoveEnd",value:function(l){this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue())}},{key:"onRegionMoveStart",value:function(l){var p=l.detail,h=p.mouseX,f=p.mouseY,x=this.cropperEl.getBoundingClientRect();h=h-x.left,f=f-x.top,this.currentMove={offsetX:h-this.box.x1,offsetY:f-this.box.y1},this.options.onCropStart!==null&&this.options.onCropStart(this.getValue())}},{key:"onRegionMoveMoving",value:function(l){var p=l.detail,h=p.mouseX,f=p.mouseY,x=this.currentMove,w=x.offsetX,D=x.offsetY,E=this.cropperEl.getBoundingClientRect();h=h-E.left,f=f-E.top,this.box.move(h-w,f-D),this.box.x1<0&&this.box.move(0,null),this.box.x2>E.width&&this.box.move(E.width-this.box.width(),null),this.box.y1<0&&this.box.move(null,0),this.box.y2>E.height&&this.box.move(null,E.height-this.box.height()),this.redraw(),this.options.onCropMove!==null&&this.options.onCropMove(this.getValue())}},{key:"onRegionMoveEnd",value:function(l){this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue())}},{key:"getValue",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(l===null&&(l=this.options.returnMode),l=="real"){var p=this.imageEl.naturalWidth,h=this.imageEl.naturalHeight,f=this.imageEl.getBoundingClientRect(),x=f.width,w=f.height,D=p/x,E=h/w;return{x:Math.round(this.box.x1*D),y:Math.round(this.box.y1*E),width:Math.round(this.box.width()*D),height:Math.round(this.box.height()*E)}}else if(l=="ratio"){var F=this.imageEl.getBoundingClientRect(),T=F.width,O=F.height;return{x:g(this.box.x1/T,3),y:g(this.box.y1/O,3),width:g(this.box.width()/T,3),height:g(this.box.height()/O,3)}}else if(l=="raw")return{x:Math.round(this.box.x1),y:Math.round(this.box.y1),width:Math.round(this.box.width()),height:Math.round(this.box.height())}}}],[{key:"parseOptions",value:function(l){var p={aspectRatio:null,maxSize:{width:null,height:null},minSize:{width:null,height:null},startSize:{width:100,height:100,unit:"%"},returnMode:"real",onInitialize:null,onCropStart:null,onCropMove:null,onCropEnd:null},h=null;l.aspectRatio!==void 0&&(typeof l.aspectRatio=="number"?h=l.aspectRatio:l.aspectRatio instanceof Array&&(h=l.aspectRatio[1]/l.aspectRatio[0]));var f=null;l.maxSize!==void 0&&l.maxSize!==null&&(f={width:l.maxSize[0]||null,height:l.maxSize[1]||null,unit:l.maxSize[2]||"px"});var x=null;l.minSize!==void 0&&l.minSize!==null&&(x={width:l.minSize[0]||null,height:l.minSize[1]||null,unit:l.minSize[2]||"px"});var w=null;l.startSize!==void 0&&l.startSize!==null&&(w={width:l.startSize[0]||null,height:l.startSize[1]||null,unit:l.startSize[2]||"%"});var D=null;typeof l.onInitialize=="function"&&(D=l.onInitialize);var E=null;typeof l.onCropStart=="function"&&(E=l.onCropStart);var F=null;typeof l.onCropEnd=="function"&&(F=l.onCropEnd);var T=null;typeof l.onUpdate=="function"&&(console.warn("Croppr.js: `onUpdate` is deprecated and will be removed in the next major release. Please use `onCropMove` or `onCropEnd` instead."),T=l.onUpdate),typeof l.onCropMove=="function"&&(T=l.onCropMove);var O=null;if(l.returnMode!==void 0){var V=l.returnMode.toLowerCase();if(["real","ratio","raw"].indexOf(V)===-1)throw"Invalid return mode.";O=V}var k=function(N){for(var z=N.offsetWidth,ee=N.offsetHeight,Ve=["maxSize","minSize","startSize"],Ie=0;Ie<Ve.length;Ie++){var K=Ve[Ie];this[K]!==null&&(this[K].unit=="%"&&(this[K].width!==null&&(this[K].width=this[K].width/100*z),this[K].height!==null&&(this[K].height=this[K].height/100*ee)),delete this[K].unit)}},M=function(N,z){return N!==null?N:z};return{aspectRatio:M(h,p.aspectRatio),maxSize:M(f,p.maxSize),minSize:M(x,p.minSize),startSize:M(w,p.startSize),returnMode:M(O,p.returnMode),onInitialize:M(D,p.onInitialize),onCropStart:M(E,p.onCropStart),onCropMove:M(T,p.onCropMove),onCropEnd:M(F,p.onCropEnd),convertToPixels:k}}}]),y}();function g(y,u){return Number(Math.round(y+"e"+u)+"e-"+u)}var I=function(y){i(u,y);function u(l,p){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return r(this,u),o(this,(u.__proto__||Object.getPrototypeOf(u)).call(this,l,p,h))}return e(u,[{key:"getValue",value:function(p){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"getValue",this).call(this,p)}},{key:"setImage",value:function(p){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"setImage",this).call(this,p)}},{key:"destroy",value:function(){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"destroy",this).call(this)}},{key:"moveTo",value:function(p,h){return this.box.move(p,h),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"resizeTo",value:function(p,h){var f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[.5,.5];return this.box.resize(p,h,f),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"scaleBy",value:function(p){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[.5,.5];return this.box.scale(p,h),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"reset",value:function(){return this.box=this.initializeBox(this.options),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}}]),u}(v);return I})});var Ne=(o=>(o[o.Invalid=0]="Invalid",o[o.Valid=1]="Valid",o[o.ExpireSoon=2]="ExpireSoon",o[o.Expired=3]="Expired",o))(Ne||{});var ue=(d=>(d[d.GridView=0]="GridView",d[d.Dashboard=1]="Dashboard",d[d.MenuNode=2]="MenuNode",d[d.Report=3]="Report",d[d.Diagram=4]="Diagram",d[d.CDM=5]="CDM",d[d.Slideshow=6]="Slideshow",d[d.GanttChart=7]="GanttChart",d))(ue||{});function R(r,e=!0){let t=e?"success":"error",i=e?2e3:4e3;DevExpress.ui.notify({message:r,type:t,onShowing:o=>{let n=o.element.find(".dx-toast-message");n.html((n.html()||"").replace("\\n","<br />"))}},t,i)}var Qe=r=>r?Array.isArray(r)?r[0].StackTrace!==void 0||r[0].Error!==void 0:r.Error!==void 0:!1;var be=(t=>(t[t.Completed=1]="Completed",t[t.Errored=2]="Errored",t))(be||{});var wt={};X(wt,{createButtons:()=>hi,createDialog:()=>te,createItem:()=>Mo});var yt={};X(yt,{CSS_CLASSES:()=>Q});var Q={dxDataGrid:"iszolea-dx-datagrid",dxButton:"iszolea-dx-button",dxPopup:"iszolea-dx-popup"};var Co="popup-content",Do="popup-footer",Eo="buttons",xt="ok-btn",mi="cancel-btn";function So(r,e){return{$content:$("<div />").addClass(Co).addClass(e).appendTo(r),$footer:$("<div />").addClass(Do).appendTo(r)}}var qe=[];function To(r,e,t=!1){let i=e.onShowing;e.onShown=a=>{i&&i(a);let s=n.content().find("input[type=text]"),d=s.eq(0);d.focus();let m={keydown:c=>{qe[qe.length-1]===n&&(c.keyCode===13&&$(c.currentTarget).trigger("change"),o(c))}};t?s.on(m):d.on(m)};function o(a){a.keyCode===13&&n.content().find(`.${Q.dxButton}.${xt}`).click(),a.keyCode===27&&n.content().find(`.${Q.dxButton}.${mi}`).click()}let n=r.dxPopup(e).dxPopup("instance");return{show:()=>{n.show(),$(document).on({keydown:o}),qe.push(n)},hide:()=>{$(document).off({keydown:o}),n.hide(),qe.pop()},remove:()=>r.remove()}}function hi(r,e){let t=$("<table />").addClass(Eo),i=$("<tr>").appendTo(t);return r&&$("<td />").attr("width","50%").append($("<div />").addClass(Q.dxButton).addClass(xt).dxButton(r)).appendTo(i),e&&$("<td />").attr("width","50%").append($("<div />").addClass(Q.dxButton).addClass(mi).dxButton(e)).appendTo(i),t}function Mo(r,e){return $("<div />").addClass("item").append($("<div />").addClass("form-label").text(r),$("<div />").addClass("value").append(e))}function te(r,e,t,i,o){let n=$("<div>").appendTo("body"),a=null,s=null,d=o?o.useKeyPressBehavior:!1;function m(){s.hide(),s.remove()}let c={contentTemplate:g=>{let{$content:I,$footer:y}=So(g);I.append(e),t&&i?(a=hi({text:t.text,icon:t.icon,disabled:t.disabled,type:"success",onClick:u=>t.onClick(m)},{text:i.text,icon:i.icon,disabled:i.disabled,onClick:u=>i.onClick(m)}),y.append(a)):y.remove()},elementAttr:{class:"iszolea-dx-popup"}},v={};return $.extend(!0,v,r,c),s=To(n,v,d),s.show(),{okBtn:a?a.find(`.${xt}`).dxButton("instance"):null,close:()=>m()}}var Ro="iszolea-error-dx-popup",Fo="iszolea-error-dx-popup__content",Po="iszolea-error-dx-popup__error-message",Bo="iszolea-error-dx-popup__error-details",gi="Show details",Oo="Hide details";function fi(r,e){let t,i=Array.isArray(e)?e:[e],o=$("<div />").addClass(Fo);i.forEach((s,d)=>{let m=$("<p />").addClass(Po).text(s.Error),c=$("<p />").addClass(Bo).text(s.StackTrace);o.append(m,c).hide(),d<i.length-1&&o.append($("<hr />"))});let n=te({title:r,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(Ro)}},o,{text:gi,onClick:()=>{let s=!t.option("fullScreen");a(s),n.okBtn.option("text",s?Oo:gi)}},{text:"Close",onClick:s=>s()}),a=s=>{o.toggle(s),t.option("fullScreen",s),t.repaint()}}var _e=(i=>(i[i.UnexpectedException=0]="UnexpectedException",i[i.SqlException=1]="SqlException",i[i.IszoleaConfigurationException=2]="IszoleaConfigurationException",i))(_e||{});var je=r=>{switch(r){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 It="Unexpected error occurred. Please contact to developers.",Go=[504],bt=()=>It;function Ce(r,e=!1){return e&&R(r.Message),JSON.stringify(r.Data)}function ce(r,e,t){let i=r.Message,o={message:i},n,a=Lo(i);if(a!==null?n=(t?t(a):"")||It:n=i||It,e){let s=r.Data;if(Qe(s)){let d=Array.isArray(s)&&s.length,m=!Array.isArray(s)&&(s.StackTrace||s.Error);if(d||m)return fi(n,s),o}R(n,!1)}return o}function Lo(r){return!isNaN(r)&&_e[+r]?+r:null}function vi(r){let e=r.request.response?JSON.parse(r.request.response):{};return e.RequestState===1?(Ce(e),!0):(ce(e,!0),!1)}function C(r,e="GET",t=null,i,o){let n=$.Deferred(),a=(o==null?void 0:o.notifyError)===void 0||o.notifyError,s={headers:{Accept:"application/json"}},d=$.extend({type:e,url:r,data:t},o,s);return $.ajax(d).done(m=>{let c=m;if(c.RequestState===1){Ce(c,i),n.resolve(c.Data);return}let{message:v}=ce(c,a,(o==null?void 0:o.getUserFriendlyErrorMessage)||je);n.reject(v)}).fail((m,c)=>{!Go.includes(m.status)&&a&&R(bt(),!1),n.reject(c)}),n}function q(r){let e=DevExpress.data.AspNet.createStore(S(b({},r),{onBeforeSend:(t,i)=>{r.onBeforeSend&&r.onBeforeSend(t,i);let o=(r==null?void 0:r.notifyError)===void 0||r.notifyError;i.dataFilter=n=>{let a=JSON.parse(n);return a.RequestState===1?Ce(a,r.notifySuccess):JSON.stringify(ce(a,o,r==null?void 0:r.getUserFriendlyErrorMessage))},i.error=n=>{let a=JSON.parse(n.responseText||"{}");a.RequestState||ce(a,o,r==null?void 0:r.getUserFriendlyErrorMessage)}}}));return e._errorHandler=t=>{t&&!t.message&&(t.message=bt())},e}var Ct={};X(Ct,{default:()=>Y});var me={};async function Y(r){if(me[r])return await me[r];me[r]=C(r),me[r].catch(t=>{throw me[r]=null,t});let e=await me[r];return me[r]=null,e}var yi={sendRequest:C,handleError:ce,handleSuccess:Ce,handleUpload:vi,createDxDataSource:q,isErrorInfo:Qe,loadWithMultipleProtection:Ct};var G=r=>{throw new Error(`The required ${r?`${r} `:""} isn't created`)};var Dt={};X(Dt,{WindowResizeListener:()=>ie,bootstrapLayoutBreakpoints:()=>W,getUrlByMenuItemData:()=>le});var W={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}},$o=Object.getOwnPropertyNames(W).map(r=>W[r]),ie=class{constructor(e,t,i=100,o=$o){this.onWindowResizeListener=this.onWindowResize.bind(this);this.onResize=e,this.onLayoutBreakpointChanged=t,this.resizeDelay=i,this.layoutBreakpoints=o,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 i=this.currentLayoutBreakpoint;this.currentLayoutBreakpoint=t,this.emitBreakpointChanged({previousBreakpoint:i,currentBreakpoint:this.currentLayoutBreakpoint,originalEvent:e})}this.emitResizeEvent(e)}emitResizeEvent(e){var t;try{(t=this.onResize)==null||t.call(this,e)}catch(i){console.error(i)}}emitBreakpointChanged(e){var t;try{(t=this.onLayoutBreakpointChanged)==null||t.call(this,e)}catch(i){console.error(i)}}};function le(r){let{Area:e,Controller:t,Action:i,IsClickable:o}=r;if(o&&t)return encodeURI(e?`/${e}/${t}/${i}`:`/${t}/${i}`)}var B={isLegacyRender:!1};var Et=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.container=e.container,this.userAvatar=e.userAvatar,this.userName=e.userName,this.items=e.items,this.collapseBreakpoint=e.collapseBreakpoint||W.md,this.getDisplayedUserInfo=e.getDisplayedUserInfo||Et.defaultGetDisplayedUserInfo,this.onItemClick=e.onItemClick,this.windowResizeListener=new ie(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 G("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(i=>{var o;return((o=i.Text)==null?void 0:o.toLowerCase())===e});return(t==null?void 0:t.Badge)||null}setBadge(e,t){let i=this.items.find(o=>{var n;return((n=o.Text)==null?void 0:n.toLowerCase())===e});i&&(i.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;if(B.isLegacyRender?this.userAvatar?(e=document.createElement("img"),e.classList.add("header__icon-button-icon","header__icon-button-avatar"),e.src=this.userAvatar):(e=document.createElement("i"),e.classList.add("header__icon-button-icon","fas","fa-user")):(e=document.createElement("i"),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"),B.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 G("userInfoContainer");if(B.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 G("itemsContainer");this.clearItemsContainer(),this.items.forEach(e=>{let t=this.createItemElement(e,this.isMobileView);this.itemsContainer.appendChild(t)})}createItemElement(e,t){let i=this.createItemElementBase(e),o=document.createElement("a");if(o.classList.add(t?"nav-link":"dropdown-item"),o.href=e.Url||"javascript:void(0)",o.text=e.Text,e.OpenInNewPage&&(o.target="_blank"),this.attachEventsToItem(o,e),i.appendChild(o),e.Badge){let n=document.createElement("span");n.classList.add("isoz-badge"),n.classList.add("isoz-badge--circle"),n.classList.add(`isoz-badge--${e.Badge.Type||"information"}`),n.innerHTML=e.Badge.Text,o.appendChild(n)}return i}createItemElementBase(e){let t=document.createElement("li");return t.classList.add("nav-item"),t}attachEventsToItem(e,t){e.addEventListener("click",i=>this.onMenuItemClick({item:t,originalEvent:i}))}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,i,o;try{(t=this.onItemClick)==null||t.call(this,e),(o=(i=e.item).OnClick)==null||o.call(i,e)}catch(n){console.error(n)}}onLayoutBreakpointChanged(e){this.switchView(this.isMobileView)}async onMenuItemClick(e){this.emitItemClick(e),e.cancel&&e.originalEvent.preventDefault()}},he=Et;he.defaultGetDisplayedUserInfo=e=>`Welcome ${e}`;var Xe=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(i){console.error(i)}}};var De=class extends Xe{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||W.md,this.collapseIconName=e.collapseIcon||"fa-ellipsis-v",this.windowResizeListener=new ie(this.collapsingMode===3?this.onWindowResizeEventHandler:void 0,void 0,De.adaptivityCollapsingDelay)}render(){if(!this.root){if(this.renderRoot(),this.renderItems(),!this.root)return G("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=St(e.originalModel),e.active!==t&&this.applyStatesToItemElement(e.menuItemEl.firstElementChild,e)})}closeOpenedDropdown(e){this.itemActionMode==="hover"&&(this.root.classList.remove(De.HOVER_MODE_CSS_CLASS),$(e).one("mouseleave",()=>{this.root.classList.add(De.HOVER_MODE_CSS_CLASS)}))}forEachMenuItemRecursive(e,t){e.forEach(i=>{t(i),this.isNestedItemsOwnerItem(i)&&this.forEachMenuItemRecursive(i.items,t)})}renderRoot(){this.root=document.createElement("ul"),this.root.classList.add("navbar-nav","mr-auto"),this.itemActionMode==="hover"&&this.root.classList.add(De.HOVER_MODE_CSS_CLASS)}renderItems(){this.renderRootItems(),this.items.length&&this.collapsingMode!==0&&(this.root||G("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 G("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 G("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 i=t.querySelector(".nav-link");i instanceof HTMLElement&&this.setItemContentAsDropdownToggler(i);let o=this.createDropdownMenu(e);return t.appendChild(o),t}createRootItemElement(e){let t=document.createElement("li");t.classList.add("nav-item"),e.title&&t.setAttribute("title",e.title);let i=document.createElement("a");i.classList.add("nav-link"),i.href=e.url||"javascript:void(0)",i.text=e.text;let o=this.createItemIconElement(e);return o&&i.insertBefore(o,i.firstChild),this.applyStatesToItemElement(i,e),this.attachEventsToItem(i,e),t.appendChild(i),e.menuItemEl=t,t}createNestedSubMenuItemElement(e){let t=this.createNestedItem(e);t.classList.add("dropdown","dropdown-submenu");let i=t.querySelector(".dropdown-item");i instanceof HTMLElement&&this.setItemContentAsDropdownToggler(i);let o=this.createDropdownMenu(e);return t.appendChild(o),t}createNestedItem(e){let t=document.createElement("li");e.title&&t.setAttribute("title",e.title);let i=document.createElement("a");i.classList.add("dropdown-item"),i.href=e.url||"javascript:void(0)",i.text=e.text;let o=this.createItemIconElement(e);return o&&i.insertBefore(o,i.firstChild),this.applyStatesToItemElement(i,e),this.attachEventsToItem(i,e),t.appendChild(i),e.menuItemEl=t,t}createDropdownMenu(e){let t=document.createElement("ul");return t.classList.add("dropdown-menu"),e.items.forEach(i=>{let o;this.isNestedItemsOwnerItem(i)?o=this.createNestedSubMenuItemElement(i):o=this.createNestedItem(i),t.appendChild(o)}),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",i=>this.emitItemClick({item:t,originalEvent:i}))}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 i of e)t.insertBefore(i,t.firstElementChild),this.applyCollapsingViewForRootItem(i);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 i of e)t.insertBefore(i,t.firstElementChild),this.applyExpandedViewForRootItem(i);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,i=2){return e.left<t.right-i&&t.left+i<e.right&&e.top<t.bottom-i&&t.top+i<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 i=document.querySelectorAll(".dropdown-menu");for(let o of i)if(o!==e&&this.isDropdownRectsIntersect(o.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)}},Ee=De;Ee.HOVER_MODE_CSS_CLASS="navbar-nav_hover-action",Ee.adaptivityCollapsingDelay=50;var xi=(r,e)=>{var t;for(let i of r){if(i.Name===e)return i;if((t=i.Items)==null?void 0:t.length){let o=xi(i.Items,e);if(o)return o}}},wi=r=>{let e=r.Items;if(!e||!e.length){let i=le(r);return i?[i]:[]}let t=[];for(let i of e)t=t.concat(wi(i));return t},St=r=>{let e=window.location.pathname+window.location.search,t=wi(r);for(let i of t)if(new RegExp(`^.*${i.replace("?","\\?")}$`).test(e))return!0;return!1},Se=class{constructor(e,t,i,o,n){this.onMenuItemClickHandler=this.onMenuItemClick.bind(this);this.container=e,this.isGlobalMenu=i,this.items=t,this.onNavigationMenuItemClick=n,this.menu=new Ee({container:this.container,items:this.mapNavigationMenuItemModelToMenuItems(t),collapseBreakpoint:o,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 i=e.originalEvent.target;this.menu.closeOpenedDropdown(i)}}emitNavigationMenuItemClick(e){var t,i,o;try{(t=this.onNavigationMenuItemClick)==null||t.call(this,e),(o=(i=e.item).OnClick)==null||o.call(i,e)}catch(n){console.error(n)}}mapNavigationMenuItemModelToMenuItems(e){return e.map(t=>({text:t.Name,icon:t.Icon,items:t.Items?this.mapNavigationMenuItemModelToMenuItems(t.Items):void 0,url:le(t),hidden:t.Visible===!1,active:St(t),disabled:t.Disabled,title:t.Description,originalModel:t}))}mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e){let t=xi(this.items,e.item.text);return t?{originalEvent:e.originalEvent,cancel:!1,item:S(b({},t),{isGlobal:this.isGlobalMenu})}:null}};var ge="iszolea-ui|logo-settings";var Tt=class{constructor(e,t){this.$container=e,this.dataSource=t}initWidget(){return this._initWidget(this.dataSource)}updateData(){return window.sessionStorage.removeItem(ge),this.$imageElement.remove(),this.$titleContainer.remove(),this._initWidget(this.dataSource)}_initWidget(e){let t=window.sessionStorage.getItem(ge);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 C(this.dataSource,"post").done(t=>{let i={};i.applicationName=t.ApplicationName,i.businessName=t.BusinessName,i.logoImage=t.LogoImage,i.landingPageLogo=t.LandingPageLogo,i.description=t.Description,window.sessionStorage.setItem(ge,JSON.stringify(i)),this._createLogoMarkup(i)})}_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 Te=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.desktopContainer=e.desktopContainer,this.mobileContainer=e.mobileContainer,this.collapseBreakpoint=e.collapseBreakpoint||W.md,this.onSwitch=e.onSwitch,this._value=e.startValue!==void 0?e.startValue:!0,this.windowResizeListener=new ie(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 Ye=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:(i,o)=>{o.addClass("header-search-results-tree-list");let n=$("<div>").dxTreeList({dataSource:this.getDataSourceForSearch(this.getMenuDataSource()),hoverStateEnabled:!0,focusedRowEnabled:!0,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:!1},noDataText:"No results found",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,d=this.searchResultsTreeList.option("focusedRowKey");if(d!=null)switch(s.key){case"Enter":let m=this.searchResultsTreeList.getNodeByKey(d).data;this.navigateToMenuItem(m);break;case"ArrowRight":case" ":this.searchResultsTreeList.expandRow(d);break;case"ArrowLeft":this.searchResultsTreeList.collapseRow(d);break;case"Escape":setTimeout(()=>this.searchDropDown.focus());break}}});return this.searchResultsTreeList=n.dxTreeList("instance"),n},dropDownOptions:{position:{of:".search-dropdown",my:"top",at:"bottom",offset:{x:149,y:4}},width:518,animation:{show:{duration:0},hide:{duration:0}},closeOnOutsideClick:!1,onShown:i=>{this.searchDropDown.focus()}},onFocusIn:i=>{i.component.element().addClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged(),this.checkSearchResutPopupVisibility(i.component.element().find("input.dx-texteditor-input").val())},onFocusOut:i=>{i.component.element().find("input.dx-texteditor-input").val()||(i.component.element().removeClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged())},onKeyUp:i=>{setTimeout(()=>{let o=i.event,n=i.component.element().find("input.dx-texteditor-input").val();this.checkSearchResutPopupVisibility(n),this.searchResultsTreeList.searchByText(n),["Tab","Enter","ArrowDown","ArrowUp"].some(s=>s===o.key)&&this.searchResultsTreeList.focus(this.searchResultsTreeList.getCellElement(0,"Name"))})},onKeyDown:i=>{i.event.key==="Escape"&&this.closeSearchDropDown()},onValueChanged:i=>{this.checkSearchResutPopupVisibility(i.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 i;let t=le(e);if(t){this.closeSearchDropDown();let o={item:e,originalEvent:null,cancel:!1};if((i=this.onMenuItemClick)==null||i.call(this,o),o.cancel)return;this.onMenuItemOpened&&this.onMenuItemOpened({menuItem:e}),window.location.href=t}}closeSearchDropDown(){var e,t,i;this.searchResultsTreeList.option("focusedRowKey",void 0),(e=this.searchDropDown)==null||e.option("value",""),(t=this.searchDropDown)==null||t.focus(),(i=this.searchDropDown)==null||i.blur()}checkSearchResutPopupVisibility(e){var t,i;e?(t=this.searchDropDown)==null||t.open():(i=this.searchDropDown)==null||i.close()}getDataSourceForSearch(e){if(!e)return;let t=i=>{let o=(n,a)=>{a.Items&&a.Items.length&&(a.Items=a.Items.reduce(o,[]));let s=a.Visible===void 0||a.Visible===null||a.Visible===!0,d=a.Disabled===!0;return s&&!d&&n.push(S(b({},a),{isGlobal:i})),n};return o};if(e.personalItems&&e.personalItems.length){let i={Name:"Global Menu",Id:-1,isGlobal:!0,Type:2,Items:e.gloabalItems.reduce(t(!0),[])},o={Name:"Personal Menu",Id:-2,isGlobal:!1,Type:2,Items:e.personalItems.reduce(t(!1),[])};return this.getIsGlobalMenuShown()?[i,o]:[o,i]}else return e.gloabalItems.reduce(t(!0),[])}};var Mt={};X(Mt,{EventEmitter:()=>oe,getGeneralUserFriendlyErrorMessage:()=>je});var oe=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,i=>{t(i),this.off(e,t)})}emit(e,t=null){let i=this.eventListeners[e];if(i)for(let o of i)o&&o.call(this,t)}off(e,t){let i=this.eventListeners[e];if(i){let o=[];for(let n of i)n!==t&&o.push(n);this.eventListeners[e]=o}}addHandler(e,t,i){let o=()=>{t(i(),()=>this.off(e,o))};this.on(e,o)}};var ko="iszolea-ui|header-data-cache",Ii="iszolea-ui|show-global-menu",Rt=r=>`${ko}${r?`|${r}`:""}`,ze=class extends oe{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,i,o,n,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)||W.md,this.$partialViewPlaceHolder=(i=e.menuSettings)==null?void 0:i.partialViewPlaceHolder,this.updateUrlAfterPartialLoading=(o=e.menuSettings)==null?void 0:o.updateUrlAfterPartialLoading,this.onPartialViewLoaded=(n=e.menuSettings)==null?void 0:n.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 i=e.originalEvent.state;i&&i.isLoadedByAjax?(this.loadPageViaAjaxCore(i.url),this.updateMenuSwitcherState(i.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 G("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 Tt($(this.elements.logoContainer),this.logoSettings),this.logo.initWidget()}renderSearch(){if(!!this.displaySearch){if(!this.elements.contentContainer)return G("contentContainer");this.search=new Ye({$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 G("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 G("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 G("contentContainer");let t=this.getIsGlobalMenuShown();this.navigationMenu?this.navigationMenu.updateData(e,t):(this.navigationMenu=new Se(this.elements.contentContainer,e,t,this.collapseBreakpoint,this.onNaviagtionMenuItemClickHandler),this.navigationMenu.render())}onUserMenuItemClick(e){var i,o;if((o=(i=this.menuSettings).onUserMenuClick)==null||o.call(i,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 i,o;if((o=(i=this.menuSettings).onNavigationMenuItemClick)==null||o.call(i,e),e.cancel||this.isKeyPressed(e.originalEvent))return;this.updateMenuSwitcherState(e.item.isGlobal);let t=le(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 i={isLoadedByAjax:!0,isMenuSwitcherGlobal:!!((t=this.menuSwitcher)==null?void 0:t.value),url:e};window.history.pushState(i,null,e)}return this.loadPageViaAjaxCore(e),this.navigationMenu.updateActiveItemsState(),!0}return!1}checkIsLocalUrl(e){return!ze.GLOBAL_URL_REGEX.test(e)}checkIsPartialPageContent(e){return e&&!ze.DOCTYPE_MARKER_REGEX.test(e)}loadPageViaAjaxCore(e){var o;window.isIsozServerException=!1,this.loadPanel.show();let t=new URL(window.location.origin+e);t.searchParams.append("isozPartialLoading","true");let i=t.toString();(o=this.beforePartialViewLoading)==null||o.call(this),$.ajax(i,{dataType:"html"}).always((n,a)=>{var s;a!=="success"||!this.checkIsPartialPageContent(n)?window.location.href=e:(this.$partialViewPlaceHolder.html(n),(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 G("contentContainer");if(this.userMenu)this.userMenu.updateItems(e);else{let i=document.createElement("div");i.classList.add("dropdown-divider"),this.elements.contentContainer.appendChild(i),this.userMenu=new he({container:this.elements.contentContainer,userName:this.menuSettings.userName,userAvatar:this.menuSettings.userAvatar,items:e,collapseBreakpoint:this.collapseBreakpoint,onItemClick:this.onUserMenuItemClickHandler,getDisplayedUserInfo:this.menuSettings.getDisplayedUserInfo}),this.userMenu.render()}}}renderMenuSwitcher(){var e,t,i,o;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(),(i=this.elements.menuSwitcherMobileContainer)==null||i.remove(),this.menuSwitcher=void 0,this.elements.menuSwitcherDesktopContainer=void 0,this.elements.menuSwitcherMobileContainer=void 0);return}if(!this.elements.contentContainer)return G("contentContainer");if(!this.elements.toggleButtonContainer)return G("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 Te({desktopContainer:this.elements.menuSwitcherDesktopContainer,mobileContainer:this.elements.menuSwitcherMobileContainer,collapseBreakpoint:this.collapseBreakpoint,startValue:this.isShowGlobalMenu(),onSwitch:n=>{var s,d;window.localStorage.setItem(Ii,JSON.stringify(n));let a=this.getNavigationItems(this.data);(s=this.search)==null||s.setSearchText(""),(d=this.search)==null||d.reloadMenuItems(),this.renderNavigationMenu(a||[]),this.updateContentAndTogglerVisible()}}),this.menuSwitcher.render(),this.emit(ze.MENU_SWITCHER_INITIALIZED_EVENT),this.elements.contentContainer.insertBefore(this.elements.menuSwitcherDesktopContainer,(o=this.userMenu)==null?void 0:o.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(i){$(i).animate({left:$(".load").width()},2e3,()=>{$(i).css("left",`${-$(i).width()}px`),t(i)})}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 o,n;if(!this.elements.contentContainer&&!this.elements.toggleButton)return;let e=this.getNavigationItems(this.data),t=this.getUserItems(this.data),i=e&&e.length>0||((o=this.menuSettings)==null?void 0:o.userName)||t&&t.length>0;this.elements.toggleButton.classList.toggle("d-none",!i),this.elements.contentContainer.classList.toggle("d-none",!i),(n=this.search)==null||n.setVisible(!!i)}async init(){!this.menuSettings||(this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}async loadData(){var t,i,o,n,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),(i=this.$loadBar)==null||i.show(),e=await C(this.menuSettings.data),this.cacheAppMenuModel(e),(o=this.search)==null||o.reloadMenuItems(),e}finally{(n=this.search)==null||n.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(Rt(this.menuSettings.userName));return e===null?e:JSON.parse(e)}cacheAppMenuModel(e){return this.menuSettings?(window.sessionStorage.setItem(Rt(this.menuSettings.userName),JSON.stringify(e)),!0):!1}clearAppMenuModelCache(){return this.menuSettings?(window.sessionStorage.removeItem(Rt(this.menuSettings.userName)),!0):!1}isShowGlobalMenu(){let e=window.localStorage.getItem(Ii),t=e===null?e:JSON.parse(e);return t===null||t}},fe=ze;fe.MENU_SWITCHER_INITIALIZED_EVENT="menu-switcher-initialized-event",fe.GLOBAL_URL_REGEX=new RegExp("^(?:[a-z]+:)?//","i"),fe.DOCTYPE_MARKER_REGEX=new RegExp("!DOCTYPE html>","i");var Uo=["default","string","number","date","boolean","object","datetime"],Me=Uo;var Re=(i=>(i[i.None=0]="None",i[i.AddNewRows=1]="AddNewRows",i[i.ReplaceAllRows=2]="ReplaceAllRows",i))(Re||{});var Fe=(s=>(s.Default="default",s.String="string",s.Number="number",s.Date="date",s.Boolean="boolean",s.Object="object",s.Datetime="datetime",s))(Fe||{});var de=[];function Vo(r,e){return Math.floor(Math.random()*(e-r+1))+r}function Ze(r,e,t=5,i=2){let o=e.sort((n,a)=>.5-Math.random());r.addClass("iszolea-background-image-viewer").css({transition:`background-image ${i}s ease-in-out 0s`}),o.forEach((n,a)=>{let s=new Image;s.addEventListener("load",()=>{de.push(n),de.length===1&&No(r,t)}),window.setTimeout(()=>{s.src=n},a*100)})}function Ao(r){if(de.length===1)return 0;if(de.length===2)return r===0?1:0;let e=Vo(0,de.length-1);return e===r?e===de.length-1?0:e+1:e}function No(r,e){let t=0;bi(r,t),window.setInterval(()=>{de.length!==1&&(t=Ao(t),bi(r,t))},e*1e3)}function bi(r,e){r.css("background-image",`url("${de[e]}")`)}var Ft=(i=>(i[i.Success=0]="Success",i[i.Warning=1]="Warning",i[i.Error=2]="Error",i))(Ft||{}),_o={year:"local"},Pe=class{constructor(e){this.indicatorClassByStatus=new Map([[0,"footer__indicator_type_success"],[1,"footer__indicator_type_warning"],[2,"footer__indicator_type_error"]]);let t=b(b({},e),_o);this.$root=t.$root,this.name=t.name!==!1?t.name:void 0,this.licence=t.licence!==!1?t.licence:void 0,this.year=Pe.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 i=this.indicatorsByName.get(e);i&&this.setIndicatorValueCore(i,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 i=$("<span>").addClass("footer__indicator").appendTo(this.$root);this.setIndicatorValueCore(i,t.value),this.indicatorsByName.set(t.name,i),t.getValue&&t.getValueIntervalMs&&setInterval(async()=>{let o=await t.getValue();this.setIndicatorValueCore(i,o)},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 et=null,Ci=[];window.addEventListener("resize",()=>{et&&window.clearTimeout(et),et=window.setTimeout(()=>{Ci.forEach(r=>r()),et=null},100)});function tt(r){Ci.push(r)}var He={main:".main",header:".main .header",content:".content-area",panel:".panel",footer:"footer"},Pt=null,it=null,ot=null;function Di(r){$(He.content).height(it),r.option("height",ot)}function zo(r,e=!1,t=!1){let i=$(He.main),o=$(He.header),n=$(He.content),a=$(He.footer),s=n.outerHeight()-n.height();it=i.height()-o.height()-a.outerHeight()-s,Pt=$(window).height();let d=n.children(),m=0;if(!e){let c=r.element();d.each((v,g)=>{let I=$(g);I.is(c)||I.has(c[0]).length||(m+=I.is(":visible")&&I.css("position")!=="absolute"?I.outerHeight(!0):0)})}ot=it-m,t&&(ot+=r.element().outerHeight()),Di(r)}function Ho(r){let e=$(window).height(),t=e-Pt;it+=t,ot+=t,Pt=e,Di(r)}function Z(r,e=!1,t=!1){zo(r,e,t),tt(()=>Ho(r))}var Wo="isoz-icon-disabled",H={lg:"iszolea-lg",md:"iszolea-md",sm:"iszolea-sm"},_=class{static setElementMiddleSize(e){e.addClass(H.md)}static setElementSmallSize(e){e.addClass(H.sm)}static setWidgetMiddleSize(e){_.setWidgetSize(e,H.md)}static setWidgetSmallSize(e){_.setWidgetSize(e,H.sm)}static getIconClass(e,t,i=16){let o=`isoz isoz-icon-${e}-${i}`;return t?`${o} ${Wo}`:o}static setWidgetSize(e,t){e&&e.option("elementAttr",{class:t})}};var Jo={title:"isoz-title"},We=class{static getToolbarTitleTemplateItem(e,t){return{location:"before",template:()=>{let i=$(`<span class="${Jo.title}">${e}</span>`);return t&&i.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Report details")),i}}}};var Ei={title:"isoz-title",header:"isoz-toolbar-header",dropDownButton:"dx-dropdownmenu-button"};function Si(r,e={title:"",description:"",options:{}}){let{title:t="",description:i="",options:o={}}=e,{items:n=[],elementAttr:a={}}=o;n.forEach(d=>{let m={class:H.md};if(d.options){let{editorOptions:c}=d.options;c||(c={}),c.elementAttr=m,d.options.elementAttr=m,d.options.editorOtions=c}});let s=d=>{d.element.find(`.${Ei.dropDownButton}`).addClass(H.md),(o==null?void 0:o.onContentReady)&&o.onContentReady(d)};return $(`${r}`).dxToolbar(S(b({},o),{items:[We.getToolbarTitleTemplateItem(t,i),...n],onContentReady:s,elementAttr:S(b({},a),{class:Ei.header})})).dxToolbar("instance")}var Ko={panel:".panel-body"};function Ti(r){let e=r.element(),t=r.element().parents(Ko.panel).eq(0),i=t.position().top,o=t.height(),n=t.outerHeight()-t.height(),a=e.position().top,s=o-(a-i)+n/2;r.option("height",s)}function Bt(r){Ti(r),tt(()=>Ti(r))}function Mi(r,e,t=!1){let i=Ot(r,e);return e.height||(t?Bt(i):Z(i)),i}function Ot(r,e){let t=r.dxDataGrid(e).dxDataGrid("instance");return t.element().addClass(Q.dxDataGrid),t}function Ri(r,e,t=!1){let i=(typeof r=="string"?$(r):r).dxTreeList(e).dxTreeList("instance");return i.element().addClass(Q.dxDataGrid),e.height||(t?Bt(i):Z(i)),i}var Pi=ci(Fi());function $t(r){return e=>{let t=new window.ExcelJS.Workbook,i=t.addWorksheet(r);DevExpress.excelExporter.exportDataGrid({worksheet:i,component:e.component,customizeCell:o=>{let n=o.excelCell;n.font={name:"Arial",size:12},n.alignment={horizontal:"left"}}}).then(function(){t.xlsx.writeBuffer().then(function(o){(0,Pi.default)(new Blob([o],{type:"application/octet-stream"}),`${r}.xlsx`)})}),e.cancel=!0}}var Bi=r=>r.slice(2).toLowerCase(),Qo=r=>{let e=Bi(r);return{searchPanel:`.dx-${e}-search-panel`,toolbarEditButton:`.dx-${e}-toolbar-button.dx-edit-button`,toolbarExportButton:`.dx-${e}-export-button .dx-button`,selectCheckBox:".dx-select-checkbox"}};function Oi(r){let e=B.isLegacyRender?qo(r):Li(r);return(r.summaryColumn||r.showSummaryInColumn)&&(e.summary={totalItems:[{column:r.summaryColumn||r.showSummaryInColumn,showInColumn:r.showSummaryInColumn||r.summaryColumn,summaryType:"count"}]}),e.export={enabled:!!r.exportFileName,allowExportSelectedData:!0},B.isLegacyRender||(e.groupPanel={visible:!0}),e}function Gi(r){let e=Li(r);return e.selection={mode:"none"},e}function Li(r){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 qo(r){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 jo(r,e){let t=(i,o)=>i.find(n=>n.name===o);if(r==null?void 0:r.items){let{items:i}=r;if(e){let s=t(i,e);s&&(s.options.type="default")}let o=t(i,"saveButton");o&&(o.showText="always",o.options.text="Save");let n=t(i,"revertButton");n&&(n.showText="always",n.options.text="Discard");let a=t(i,"refresh");a&&(a.showText="always",a.options.text="Refresh",a.options.hint="Reload Data")}}function Xo(r){var n,a,s;let e=r.option("summary.totalItems"),t=(n=e==null?void 0:e.filter(d=>d.summaryType==="count")[0])==null?void 0:n.column,i=t&&r.getVisibleColumns().findIndex(d=>d.dataField===t);if(!i){let d=r.option("selection");i=d&&d.mode!=="none"?r.getVisibleColumns().findIndex(c=>!!c.dataField):0}let o=(a=r.getVisibleColumns()[i])==null?void 0:a.dataField;o&&t!==o&&r.option("summary",{totalItems:[{column:(s=r.getVisibleColumns()[i])==null?void 0:s.dataField,summaryType:"count"}]})}function nt(r,e){let t=Qo(r),i=!1;return{onCellPrepared:o=>{var n,a;B.isLegacyRender||o.rowType==="header"&&o.cellElement.css("text-align","center"),((n=e.options)==null?void 0:n.onCellPrepared)&&((a=e.options)==null||a.onCellPrepared(o))},onContentReady:o=>{var a;let n=o.component;e.disableSummaryColumnDetection||Xo(n),i||(i=!0,setTimeout(()=>{let s=n.getScrollable();s&&s.scrollTo({top:0})}));for(let s=0;s<n.columnCount();s++){let d=n.columnOption(s,"dataType");(e.setDefaultColumnWidth||e.setDefaultColumnWidth===void 0)&&(n.columnOption(s,"width")||(d==="boolean"&&n.columnOption(s,"width","45px"),d==="datetime"&&n.columnOption(s,"width","135px"),d==="date"&&n.columnOption(s,"width","140px"))),B.isLegacyRender||((d==="datetime"||d==="date")&&n.columnOption(s,"alignment","right"),d==="date"&&n.columnOption(s,"format","dd MMM yyyy"),d==="datetime"&&n.columnOption(s,"format","HH:mm, dd MMM yyyy"))}B.isLegacyRender||(e.buttonsSize==="sm"?_.setWidgetSmallSize($(t.searchPanel).dxTextBox("instance")):_.setWidgetMiddleSize($(t.searchPanel).dxTextBox("instance")),_.setElementSmallSize(o.component.element().find(t.selectCheckBox)),$(t.toolbarExportButton).length>0&&(e.buttonsSize==="sm"?_.setWidgetSmallSize($(t.toolbarExportButton).dxButton("instance")):_.setWidgetMiddleSize($(t.toolbarExportButton).dxButton("instance")))),((a=e.options)==null?void 0:a.onContentReady)&&e.options.onContentReady(o)},onToolbarPreparing:o=>{var v;let{toolbarOptions:n={}}=o,a=o.component,{items:s=[]}=n;B.isLegacyRender?(e.title&&o.toolbarOptions.items.unshift({location:"before",template(){let g=$("<h2 />").addClass("grid-header").text(e.title);return e.headerDescription&&g.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),g}}),s.forEach(g=>{g.widget==="dxButton"&&g.name==="applyFilterButton"&&(g.options.visible=!1)})):(e.title&&s.unshift(We.getToolbarTitleTemplateItem(e.title,e.headerDescription)),s.filter(g=>{if(g.widget==="dxButton"){if(g.name==="applyFilterButton"){g.options.visible=!1;return}let I=e.buttonsSize==="sm"?16:24;switch(g.name){case"addRowButton":g.options.icon=_.getIconClass("plus",!1,I);break;case"saveButton":g.options.icon=_.getIconClass("save",!1,I);break;case"revertButton":g.options.icon=_.getIconClass("close",!1,I);break;default:g.options.icon=void 0;break}g.options.elementAttr||(g.options.elementAttr={}),g.options.elementAttr.class=e.buttonsSize==="sm"?H.sm:H.md,g.showText="always"}}),jo(n,e.toolbarAccentButtonName),e.toolbarItems&&s.push(...e.toolbarItems),n.elementAttr={class:"isoz-toolbar-header"});let d=o.toolbarOptions.items.findIndex(g=>g.name==="saveButton"),m=o.toolbarOptions.items.findIndex(g=>g.name==="searchPanel"),c=-1;d>-1?c=d:m>-1?c=m:c=o.toolbarOptions.items.length,o.toolbarOptions.items.splice(c,0,{location:"after",widget:"dxButton",name:"refresh",options:{icon:"refresh",height:B.isLegacyRender?30:void 0,elementAttr:{class:`dx-datagrid-toolbar-button ${e.buttonsSize==="sm"?H.sm:H.md}`},stylingMode:B.isLegacyRender?"text":"contained",onClick:()=>a==null?void 0:a.refresh(),onContentReady:B.isLegacyRender?g=>{g.element.find(".dx-button-content").css({paddingTop:6,paddingBottom:6})}:void 0}}),((v=e.options)==null?void 0:v.onToolbarPreparing)&&e.options.onToolbarPreparing(o)},onEditorPreparing:o=>{var n;switch(B.isLegacyRender||(o.editorOptions=S(b({},o.editorOptions),{elementAttr:{class:H.md}}),o.editorName==="dxSelectBox"&&(o.editorOptions.dropDownOptions=S(b({},o.editorOptions.dropDownOptions),{onShowing:a=>{let s=Bi(r);a.component._$popupContent.addClass(`isoz-${s}-selectbox-popup`)}})),o.editorName==="dxCheckBox"&&_.setElementSmallSize(o.editorElement)),o.parentType){case"filterRow":let a=d=>{o.element&&o.element.find(".dx-apply-button").trigger("dxclick")};o.editorOptions.onEnterKey=a,o.editorOptions.onFocusOut=a;break;case"searchPanel":let s=d=>{o.component.searchByText(d.component.option("value"))};o.editorOptions.onValueChanged=()=>{},o.editorOptions.onEnterKey=s,o.editorOptions.onFocusOut=s;break}((n=e.options)==null?void 0:n.onEditorPreparing)&&e.options.onEditorPreparing(o)},onContextMenuPreparing:o=>{var n,a,s;if(!B.isLegacyRender&&o.target==="content"&&!!e.exportFileName&&(o.items||(o.items=[]),o.items.push({text:"Export all data",onItemClick:()=>{o.component.exportToExcel(!1)},icon:"xlsxfile"}),((n=e.options.selection)==null?void 0:n.mode)!=="none")){let d=o.component.getSelectedRowKeys();o.items.push({text:"Export selected rows",onItemClick:()=>o.component.exportToExcel(!0),icon:"exportselected",disabled:!d||!d.length})}((a=e.options)==null?void 0:a.onContextMenuPreparing)&&((s=e.options)==null||s.onContextMenuPreparing(o))},onExporting:e.exportFileName?$t(e.exportFileName):void 0}}function U(r,e){let t=Oi(e),i=$.extend({},t,e.options),o=nt("dxDataGrid",$.extend(!0,{},e,{options:i}));return i=$.extend(!0,{},i,o),e.isFullScreen||e.isFullScreen===void 0?Mi(r,i,e.inPanelGrid):Ot(r,i)}function $i(r,e,t={},i,o){return U($(`#${r}`),{options:e,exportFileName:t.exportFileName,inPanelGrid:t.inPanelGrid,showSummaryInColumn:t.showSummaryInColumn,summaryColumn:t.summaryColumn,headerDescription:o,title:i})}function ki(r,e={}){let t=Gi(e),i=$.extend({},t,e.options),o=nt("dxTreeList",$.extend(!0,{},e,{options:i}));return i=$.extend(!0,{},i,o),Ri(r,i,e.inPanelGrid)}var At={};X(At,{show:()=>Vt});var Vi=ci(Ui());var rt={height:300,width:300};function Yo(r,e){r.attr("src",e)}function Zo(r){let e=$("<div>").addClass("avatar-popup__dropzone"),t=$("<div>").addClass("avatar-popup__crop-container").appendTo(e),i=$("<img />").prependTo(t);Yo(i,r);let o=new Vi.default(i[0],{aspectRatio:1,startSize:[90,90]});return{$content:e,cropper:o}}function en(r,e,t){te({title:"Update profile picture",showTitle:!0,dragEnabled:!1,resizeEnabled:!1,showCloseButton:!0,closeOnOutsideClick:!1,maxWidth:1024,onInitialized:i=>{i.component&&i.component.option("fullScreen",window.innerWidth<=1024)}},r,{text:"Update",onClick:i=>{let o=e.getValue(),n=$("<canvas>").attr("height",rt.height).attr("width",rt.width),a=n[0].getContext("2d"),s=r.find("img.croppr-image")[0];a.drawImage(s,o.x,o.y,o.width,o.height,0,0,rt.width,rt.height);let d=n[0].toDataURL("image/jpeg",.9);t(d),i()}},{text:"Cancel",onClick:i=>i()})}function Vt(r,e){let t=Zo(r);en(t.$content,t.cropper,e)}var Ai=r=>new Promise((e,t)=>{try{let i=new FileReader;i.onload=()=>{let o=i.result;e(typeof o=="string"?o:null)},i.readAsDataURL(r)}catch(i){t(i)}});var Nt=10,_t=class{constructor(e,t,i,o){this.accountSettingsData=i,this.currentUserInfo=o,this._$rootElement=e,this.formAction=t}render(){this.renderUploader(this.$rootElement),this.renderAccountSettingsForm(this.$rootElement)}get $rootElement(){if(!this._$rootElement)throw new Error("The root element is undefined");return this._$rootElement}renderUploader(e){this.avatarUploader=$("<div>").addClass("avatar-popup__uploader").dxFileUploader({multiple:!1,uploadMode:"useForm",accept:"image/*",visible:!1,maxFileSize:Nt*1e6,onValueChanged:t=>{if(!t.component||!t.value)return;let i=t.value[0],o=t.component.option("maxFileSize")||Nt;if(!i||i.size>o){DevExpress.ui.notify(`File size should be less than ${Nt} MB. Please select another file`,"error",5e3);return}Ai(i).then(n=>{Vt(n,a=>{var s,d;(s=this.accountSettingsForm)==null||s.updateData("Avatar",a),(d=this.accountSettingsForm)==null||d.repaint()})}).catch(n=>DevExpress.ui.notify(n,"error",3e3))}}).appendTo(e).dxFileUploader("instance")}renderAccountSettingsForm(e){var t;this.accountSettingsForm||(this.accountSettingsForm=$("<form />").attr("action",this.formAction).attr("method","post").addClass("account-settings__form").addClass("form-content").appendTo(e).dxForm(this.getFormOptions()).dxForm("instance"),((t=this.accountSettingsData)==null?void 0:t.HasChanges)&&!this.accountSettingsData.ErrorMessage&&setTimeout(()=>Ni.widgets.notify("Changes have been saved",!0),500))}getFormOptions(){return{formData:this.accountSettingsData,minColWidth:200,labelLocation:"top",alignItemLabels:!0,showValidationSummary:!0,items:[{itemType:"group",colCount:16,items:[{colSpan:6,caption:"Profile Picture",itemType:"group",items:[{itemType:"simple",label:{visible:!1},dataField:"Avatar",template:e=>{var n;let t=$("<div>").addClass("account-settings__avatar-view-container"),i=$("<div>").addClass("account-settings__avatar");$("<div>").add(t).add($("<div>").addClass("account-settings__avatar-button").dxButton({width:200,type:"default",icon:"photo",text:"Upload new image",onInitialized:a=>this.avatarUploader&&this.avatarUploader.option("dialogTrigger",a.element)})).appendTo(i);let o=e.editorOptions.value||((n=this.currentUserInfo)==null?void 0:n.UserAvatar);return o?($("<img>").addClass("account-settings__avatar-view").attr("src",o).appendTo(t),e.editorOptions.value&&$("<input>").addClass("account-settings__avatar-input").attr("type","text").attr("name","Avatar").appendTo(i).val(e.editorOptions.value)):$("<i>").addClass(["account-settings__avatar-view-default","fas","fa-user"]).appendTo(t),i}}]},{itemType:"empty",colSpan:1},{colSpan:9,caption:"Account Details",itemType:"group",items:[{itemType:"simple",dataField:"ErrorMessage",label:{visible:!1},template:e=>{let t=e&&e.editorOptions&&e.editorOptions.value;return t&&$("<div />").text(t).addClass("error-message")}},{itemType:"simple",dataField:"UserName",label:{text:"Username"},validationRules:[{type:"required",message:"Username is required"}]},{itemType:"group",colCount:2,items:[{itemType:"simple",dataField:"FirstName",label:{text:"First Name"},validationRules:[{type:"required",message:"First Name is required"}]},{itemType:"simple",dataField:"LastName",label:{text:"Last Name"},validationRules:[{type:"required",message:"Last Name is required"}]}]},{itemType:"simple",dataField:"PhoneNumber",label:{text:"Phone Number"}},{itemType:"simple",dataField:"Email",label:{text:"Email"},validationRules:[{type:"required",message:"Email is required"},{type:"email",message:"Please use a valid email address"}]},{itemType:"simple",cssClass:"account-settings__password-area",template:()=>$("<div />").css("font-weight","bold").text("Change Password")},{itemType:"simple",dataField:"OldPassword",label:{text:"Current password"},editorOptions:{mode:"password"},validationRules:[{type:"custom",reevaluate:!0,validationCallback:e=>{var t,i;return((i=(t=this.accountSettingsForm)==null?void 0:t.getEditor("NewPassword"))==null?void 0:i.option("value"))?!!e:!0},message:"Old password is required"}]},{itemType:"simple",dataField:"NewPassword",label:{text:"New password"},editorOptions:{mode:"password",inputAttr:{autocomplete:"new-password"}}},{itemType:"simple",dataField:"NewPasswordRepeat",label:{text:"Confirm new password"},editorOptions:{mode:"password"},validationRules:[{type:"custom",reevaluate:!0,validationCallback:e=>{var t,i;return(((i=(t=this.accountSettingsForm)==null?void 0:t.getEditor("NewPassword"))==null?void 0:i.option("value"))||"")===e.value},message:"Password mismatch"}]},{itemType:"button",horizontalAlignment:"right",cssClass:"account-settings__submit-btn",buttonOptions:{text:"Save Changes",type:"success",useSubmitBehavior:!0,width:200}}]}]}]}}};var zt={};X(zt,{createConfirm:()=>tn});function tn(r){let e=$.Deferred(),i=$("<div/>").appendTo(window.document.body).dxPopup({showTitle:!1,height:140,width:370,contentTemplate:o=>{o.addClass("iszolea-dx-confirm"),$("<b/>").addClass("message").text(r).appendTo(o);let n=$("<div/>").addClass("buttons").appendTo(o);$("<div/>").dxButton({text:"Delete",type:"danger",onClick:()=>{i.hide(),e.resolve(!0)}}).appendTo(n),$("<div/>").dxButton({text:"Cancel",onClick:()=>{i.hide(),e.resolve(!1)}}).appendTo(n)},onHidden:()=>{i.dispose(),i.element().remove()}}).dxPopup("instance");return i.show(),e}var Ht={};X(Ht,{createLanding:()=>on});function on(r,e,t,i={enabled:!1}){nn(e).then(o=>{rn(r,o,t,i)})}function nn(r){let e=$.Deferred();if(typeof r=="string"){let t=window.sessionStorage.getItem(ge);t?e.resolve(JSON.parse(t)):C(r,"post").done(i=>{let o={applicationName:i.ApplicationName,businessName:i.BusinessName,landingPageLogo:i.LandingPageLogo,logoImage:i.LogoImage,description:i.Description};window.sessionStorage.setItem(ge,JSON.stringify(o)),e.resolve(o)})}else e.resolve(r);return e}function rn(r,e,t,i){let o=$("<div />").addClass("iszolea-landing-page").appendTo(r),n=$("<div />").addClass("landing-container").appendTo(o);i.enabled?o.addClass("photo-gallery-mode"):(o.addClass("default-mode"),n=o),$("<div />").addClass("logo-container").appendTo(n).append($("<img />").attr("src",e.landingPageLogo).addClass("logo-large").appendTo(n),$("<span />").addClass("business-name").text(e.businessName).appendTo(n)),$("<h2 />").text(`Welcome to ${e.description}`).appendTo(n),t&&$("<div />").addClass("sign-in-button").append($("<div />").dxButton({text:"Sign In",width:B.isLegacyRender?void 0:"140px",type:"default",onClick:()=>{window.sessionStorage.clear(),window.location.href=`/Home/Login?returnUrl=${encodeURIComponent(window.location.href.toString())}`}})).appendTo(n),i.enabled&&Ze(i.$container||o,i.imageUrls||[],i.imgChangeIntervalSec||8,i.transitionTimeSec||2)}var Wt={};X(Wt,{createAccessDeniedToReport:()=>an});function an(r,e,t){let i=$("<div>").addClass("access-denied-to-report-page").appendTo(r);if($("<h2>").addClass("error-text").text("Access denied to the report").appendTo(i),e&&e.length){let o=e.map(n=>$("<span>").addClass("role").text(n));$("<p>").text("Required roles for report: ").append(o).appendTo(i)}if(t&&t.length){let o=t.map(n=>$("<span>").addClass("role").text(n));$("<p>").text("Required roles for db connection: ").append(o).appendTo(i)}}var ni={};X(ni,{default:()=>ye});function J(r,e){let t=$("<p/>").html(e).text(),i=$("<div>",{class:"report-details-popover"}).html(t).appendTo(document.body);return $(i).dxPopover({target:r,showEvent:"dxclick",position:"bottom",width:500}).dxPopover("instance")}function sn(r,e,t={},i,o,n=!1){let a=!1,s={export:{enabled:!!t.exportFileName,allowExportSelectedData:!0},remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,selection:{mode:"multiple"},keyboardNavigation:{enabled:!1},paging:{pageSize:50},searchPanel:{visible:!0},filterRow:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"},onContentReady:v=>{if(dn(v.component),!a){if(a=!0,!n)for(let g=0;g<v.component.columnCount();g++){let I=v.component.columnOption(g,"dataType");v.component.columnOption(g,"width")||(I==="boolean"&&v.component.columnOption(g,"width","100px"),I==="datetime"&&v.component.columnOption(g,"width","150px"))}setTimeout(()=>{let g=v.component.getScrollable();g&&g.scrollTo({top:0})})}},onToolbarPreparing:v=>{i&&v.toolbarOptions.items.unshift({location:"before",template(){let g=$("<h2 />").addClass("grid-header").text(i);return o&&g.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),g}})}},d=e.onContentReady?v=>{s.onContentReady(v),e.onContentReady(v)}:s.onContentReady;ln(e,t);let m=$.extend({},s,e,{onContentReady:d}),c=r.dxDataGrid(m).dxDataGrid("instance");return c.element().addClass(Q.dxDataGrid),c}function ln(r,e){var i,o,n;if((o=(i=r==null?void 0:r.summary)==null?void 0:i.totalItems)==null?void 0:o.some(a=>a.summaryType==="count"))return;let t=e==null?void 0:e.summaryColumn;!t&&((n=r==null?void 0:r.columns)==null?void 0:n.length)&&(t=typeof r.columns[0]=="string"?r.columns[0]:r.columns[0].dataField),t&&(r.summary||(r.summary={}),r.summary.totalItems||(r.summary.totalItems=[]),r.summary.totalItems.push({column:t,summaryType:"count"}))}function dn(r){var n,a,s;let e=r.option("summary.totalItems"),t=(n=e==null?void 0:e.filter(d=>d.summaryType==="count")[0])==null?void 0:n.column,i=t&&r.getVisibleColumns().findIndex(d=>d.dataField===t);if(!i){let d=r.option("selection");i=d&&d.mode!=="none"?r.getVisibleColumns().findIndex(c=>!!c.dataField):0}let o=(a=r.getVisibleColumns()[i])==null?void 0:a.dataField;o&&t!==o&&r.option("summary",{totalItems:[{column:(s=r.getVisibleColumns()[i])==null?void 0:s.dataField,summaryType:"count"}]})}function at(r,e,t={},i,o,n=!1,a=!1){let s=sn(r,e,t,i,o,n);return a||Z(s),s}function ne(r,e){return $("<span>").attr("title",e).text(r)}var _i=new Map;var Jt=class{constructor(e){this.displayTypes=[{key:1,value:"Icons"},{key:2,value:"PredefinedValues"},{key:3,value:"RabbitAction"}];this.editors={[1]:zi,[2]:Hi,[3]:Wi};this.editorsInitData={};this.roles=[];this.fields=[];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"),Promise.all([this.getAvailableRoles(),this.getAvailableFields()]).then(e=>{this.roles=e[0],this.fields=e[1],this.editorsInitData[3]={fields:this.fields},this.createMainGrid()})}async getAvailableRoles(){return C(this.availableRolesUrl).then(e=>e.map(t=>t.Name).sort((t,i)=>{let o=_i.get(t)||9999,n=_i.get(i)||9999;return o-n}))}async getAvailableFields(){return C(this.groupFieldsUrl)}getDisplayTypeEditor(e,t,i){let o=this.editors[t],n=this.editorsInitData[t];return o?new o(e,i,n):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:o=>{if(!o.newData||!o.oldData)return;o.component.beginCustomLoading("Updating");let n=o.newData.Roles,a=o.oldData.Roles,s=(d,m=o.newData,c=o.oldData)=>{m.hasOwnProperty(d)||(m[d]=c[d])};n&&a&&Object.getOwnPropertyNames(n).forEach(d=>{let m=n[d],c=a[d];m.Id=c.Id,s("CanBeCreated",m,c),s("CanBeRead",m,c),s("CanBeUpdated",m,c),s("CanBeDeleted",m,c)}),s("Label"),s("Order"),s("ToolTip"),s("IsDefaultViewField"),s("IsKeyColumn"),s("GroupField"),s("DisplayType"),s("DataOwner"),s("XLSScheduleLabel")},onRowUpdated:o=>{o.component.endCustomLoading(),o.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:(o,n)=>$("<div />").dxSelectBox({value:n.value,dataSource:[...new Set(e.getDataSource().items().filter(a=>a.GroupField).map(a=>a.GroupField).sort())],acceptCustomValue:!0,showClearButton:!0,onValueChanged:a=>{n.setValue(a.value)}})},{dataField:"Label",allowEditing:!0,width:180},{dataField:"Type",allowEditing:!1,width:80},{dataField:"DataOwner",allowEditing:!0,width:80,headerCellTemplate:ne("DO","Data Owner")},{dataField:"XLSScheduleLabel",allowEditing:!0,width:80,headerCellTemplate:ne("XLS","XLS Schedule Label")},{dataField:"DisplayType",allowEditing:!0,width:160,customizeText:o=>{if(!o.value)return null;let n=JSON.parse(o.value);return this.displayTypes.find(s=>s.key===n.type).value},editCellTemplate:(o,n)=>{let a=JSON.parse(n.value),s=a?a.type:null,d=a?a.data:[];return $("<div />").dxDropDownBox({dropDownOptions:{width:400},dataSource:this.displayTypes,valueExpr:"key",displayExpr:"value",value:s,showClearButton:!0,onValueChanged:m=>{n.setValue(m.value)},contentTemplate:()=>{let m=$("<div />"),c=$("<div />").appendTo(m),v=$('<div style="margin: 8px 0;" />').appendTo(m),g=$('<div style="text-align: right;" />').appendTo(m),I=$('<div style="margin-right: 8px;" />').appendTo(g),y=$('<div style="margin-right: 8px;" />').appendTo(g),u=s?this.getDisplayTypeEditor(v,s,d):null;return u&&(v.html(""),u.render()),c.dxSelectBox({items:this.displayTypes,value:s,valueExpr:"key",displayExpr:"value",onValueChanged:l=>{u=this.getDisplayTypeEditor(v,l.value,d),v.html(""),u.render(),I.dxButton("instance").option("disabled",!1)}}),I.dxButton({text:"Save",type:"success",disabled:!u,onClick:()=>{let l=u.getData();if(typeof l>"u")return;let p={type:c.dxSelectBox("instance").option("value"),data:l};n.setValue(JSON.stringify(p)),n.component.closeEditCell()}}).appendTo(g),y.dxButton({text:"Cancel",onClick:()=>{n.component.closeEditCell()}}).appendTo(g),m.dxScrollView({width:"100%",height:"100%"}),m}})}},{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:ne("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:ne("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)}])},i={summaryColumn:"Name"};return this.isStandalonePage?e=at(this.$container,t,i,this.pageTitle,"",!0):e=U(this.$container,{options:t,summaryColumn:i.summaryColumn,title:this.pageTitle,isFullScreen:!1}),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:ne("Read","Read")}),this.createRolesPermissionColumn(t,"CanBeUpdated",{headerCellTemplate:ne("Edit","Edit")})]}))}createRolesPermissionColumn(e,t,i){return S(b({},i),{name:`${e}_${t}`,dataField:`Roles.${e}.${t}`,allowHiding:!1,showInColumnChooser:!1,allowHeaderFiltering:!1,allowFiltering:!1,minWidth:60})}createMainGridDataSource(){return{store:q({loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl,key:"Name"})}}},zi=class{constructor(e,t){this.$container=e,this.data=t}render(){let e={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:(i,o)=>{$("<div>").css({"text-align":"center"}).append($("<img>",{src:o.data.image})).appendTo(i)},editCellTemplate:(i,o)=>{let n=o.value||"",a=$('<div style="position: relative; display: flex; align-items: center; justify-content: center;" />'),s=$(`<img src="${n}" />`),d=$('<a class="dx-link dx-icon-upload" style="position: absolute; right: 8px; text-decoration: none; font-size: 18px;" />'),m=$('<input type="file" style="display:none;" />');return d.on("click",()=>{m.click()}),m.on("change",c=>{if(c.target.files.length){let v=new FileReader;v.onloadend=()=>{s.attr("src",v.result),o.setValue(v.result)};let g=c.target.files[0];g?v.readAsDataURL(g):s.attr("src","")}}),s.appendTo(a),d.appendTo(a),m.appendTo(a),a}},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:i=>{let o=this.grid.option("dataSource");o.splice(i.row.rowIndex,1),this.grid.option("dataSource",o)}}]}]},t=$("<div />").appendTo(this.$container);this.grid=U(t,{options:e,isFullScreen:!1})}getData(){return this.grid.option("dataSource")}},Hi=class{constructor(e,t){this.$container=e,this.data=t}render(){let e={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:i=>{let o=this.grid.option("dataSource");o.splice(i.row.rowIndex,1),this.grid.option("dataSource",o)}}]}]},t=$("<div />").appendTo(this.$container);this.grid=U(t,{options:e,isFullScreen:!1})}getData(){return this.grid.option("dataSource")}},Wi=class{constructor(e,t,i){this.$container=e,this.data=t,this.initData=i}render(){this.form=$("<div />").dxForm({formData:this.data,labelLocation:"top",items:[{dataField:"actionType",validationRules:[{type:"required"}]},{dataField:"fields",validationRules:[{type:"required"},{type:"custom",validationCallback:e=>e.value.length>0,message:"Required"}],editorType:"dxTagBox",editorOptions:{dataSource:this.initData.fields,displayExpr:"Text",valueExpr:"Value",searchEnabled:!0}}]}).appendTo(this.$container).dxForm("instance")}getData(){if(!this.form.validate().isValid)return;let t=this.form.getEditor("actionType").option("value"),i=this.form.getEditor("fields").option("value");return{actionType:t,fields:i}}};DevExpress.ui.dxDataGrid.registerModule("columnChooserSorting",{extenders:{controllers:{columns:{getChooserColumns(r){return this.callBase(r).sort((t,i)=>{let o=(t==null?void 0:t.caption)||"",n=(i==null?void 0:i.caption)||"";return o.localeCompare(n)})}}}}});var pn=(r,e)=>{if(r===null||e===null||r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},Be=r=>{let e=null,t=null;return function(...i){return pn(e,i)||(t=r(...i)),e=i,t}};var re=class{constructor(e){this._currentViewId=re.defaultControlDisplayView.id;this.views=re.defaultViews;this.getViewByIdInternal=e=>this.views&&this.views.find(t=>t.id===e);this.getViewById=Be(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===re.defaultViews&&await this.loadViews(),this.views}updateCurrentView(e){return this.updateView(this.currentView.id,e)}async createNewView(e,t,i){let o=this.mapViewModelToDto({id:-1,name:e,gridState:t,isGlobal:i});return o=await C(this.insertDataUrl,"POST",o),await this.loadViews(),this.mapViewDtoToModel(o)}async updateView(e,t){if(e===re.defaultControlDisplayView.id)return!1;let i=this.getViewById(e);if(!i)return!1;let o=b(b({},i),t),n=this.mapViewModelToDto(o);return n=await C(this.updateDataUrl,"PUT",n),await this.loadViews(),!0}async deleteView(e){return e===re.defaultControlDisplayView.id||!this.getViewById(e)?!1:(await C(this.deleteDataUrl,"DELETE",{viewId:e}),await this.loadViews(),!0)}async loadViews(){let e=await Y(this.loadDataUrl);return this.views=e.map(t=>this.mapViewDtoToModel(t)),this.views.unshift(re.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=Be(this.getViewByIdInternal)}},L=re;L.defaultControlDisplayView={id:0,name:"Default",gridState:null,isGlobal:!1},L.defaultViews=[re.defaultControlDisplayView];var Kt=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((i,o)=>{let n=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(d=>!d.type);a[0]&&a[0].dataField&&this.options.owner.option("summary",{totalItems:[{column:a[0].dataField,summaryType:"count"}]}),n&&this.options.owner.filter(n),this.options.owner.endUpdate();let s=()=>{this.save(),i(),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(o=>o.visible),i=t[t.length-1];i.width=void 0}return e}};var Qt=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(b({},e),{gridStateManager:e.gridStateManager?e.gridStateManager:new Kt({owner:e.owner,initialState:null}),gridViewsManager:e.gridViewsManager?e.gridViewsManager:new L(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",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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===L.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:{elementAttr:{class:"iszolea-md"},items:[L.defaultControlDisplayView],value:L.defaultControlDisplayView.id,valueExpr:"id",displayExpr:"name",width:200,dropDownOptions:{width:550},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 i=$("<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(i).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!==L.defaultControlDisplayView.id}]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,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!==L.defaultControlDisplayView.id;let i=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async o=>{t.component.beginCustomLoading("Updating"),await this.options.gridViewsManager.updateView(t.row.data.id,{isGlobal:o.value}),t.component.endCustomLoading(),i(o)}}},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(o=>{$(o).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 iszolea-md").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:this.isDefaultView}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-views__save-view iszolea-md").dxButton({text:"Save",type:"normal",disabled:this.isDefaultView,onClick:this.save.bind(this),icon:"save",width:87}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-views__save-view-as iszolea-md").dxButton({text:"Save As",type:"normal",onClick:this.createSaveAsDialog.bind(this),icon:"save",width:118}).dxButton("instance")}createColumnChooserButton(){return $("<button />").addClass("aps-views__column-chooser iszolea-md").dxButton({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"}]}),i=t.dxTextBox("instance"),o=t.dxValidator("instance");i.element().appendTo(e);let n=$('<div style="margin-bottom:16px;" />').dxCheckBox({text:"Global view",disabled:!this.options.canCreateGlobalViews}).dxCheckBox("instance");return n.element().appendTo(e),te({title:"Create New View",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async a=>{!o.validate().isValid||(await this.saveAs(i.option("value"),n.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}),R("Saved",!0),await this.loadViewDropdownBoxData())}async saveAs(e,t){if(!this.options.gridStateManager)return;this.options.gridStateManager.save();let i=await this.options.gridViewsManager.createNewView(e,this.options.gridStateManager.currentSavedGridState,t);await this.loadViewDropdownBoxData(),await this.applyView(i.id),R("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!==L.defaultControlDisplayView.id&&await this.applyView(L.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===L.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 Je=class{constructor(e){this.getFilterByIdInternal=e=>this.filters&&this.filters.find(t=>t.id===e);this.getFilterById=Be(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,i,o){let n=this.mapFilterModelToDto({id:-1,name:e,isDefault:i,isGlobal:o,filterState:t});return n=await C(this.insertDataUrl,"POST",n),await this.loadFilters(),this.mapFilterDtoToModel(n)}async updateFilter(e,t){let i=this.getFilterById(e);if(!i)return!1;let o=b(b({},i),t),n=this.mapFilterModelToDto(o);return n=await C(this.updateDataUrl,"PUT",n),await this.loadFilters(),!0}async deleteFilter(e){return this.getFilterById(e)?(await C(this.deleteDataUrl,"DELETE",{filterId:e}),await this.loadFilters(),!0):!1}async loadFilters(){let e=await Y(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=Be(this.getFilterByIdInternal)}};var qt=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(b({},e),{gridFiltersManager:e.gridFiltersManager?e.gridFiltersManager:new Je(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 i=this.options.owner.getDataSource();if(this.options.gridFiltersManager.currentFilter){this.filterExpressionCalculator.option("value",this.options.gridFiltersManager.currentFilter.filterState);let o=this.filterExpressionCalculator.getFilterExpression();if(i.isLoading()){let n=()=>{i.off("loadingChanged",n),setTimeout(()=>{i=this.options.owner.getDataSource(),i.filter(o)})};i.on("loadingChanged",n)}else i.filter(o)}else i.filter(null);t||await i.load(),this.options.onFilterApplied&&this.options.onFilterApplied(e),this.isInFilterApplying=!1}integrateToGrid(e){let t=e.option("onToolbarPreparing");e.option("onToolbarPreparing",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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"),i=e&&e.name,o=this.filterBuilder&&this.filterBuilder.option("value"),n=e&&e.filterState,a=this.filterIsGlobalCheckbox&&this.filterIsGlobalCheckbox.option("value"),s=e&&e.isGlobal;return t!==i||o!==n||a!==s}createFiltersToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Data Sets",visible:this.options.visible,cssClass:"aps-filters__toolbar-item",options:{elementAttr:{class:"iszolea-md"},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[,i]=await Promise.all([this.loadFilterDropdownBoxData(),this.options.apsControlDisplayUserSettingsManager.getUserSettings()]);i.defaultFilterId&&t.component.option("value",i.defaultFilterId)},onValueChanged:async t=>{if(this.isInFilterApplying)return;if(!e){e=!0;return}let i=t.value;await this.tryApplyFilter(i)||(e=!1,i=t.previousValue,t.component.option("value",i)),this.filtersDataGrid&&this.filtersDataGrid.selectRows(i,!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 i=$("<div />").addClass("aps-filters__header").append(this.currentFilterTitle.element()).append(this.newFilterButton.element());return $("<div />").css("height","100%").append(i).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,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 i=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async o=>{t.component.beginCustomLoading("Updating"),await this.options.gridFiltersManager.updateFilter(t.row.data.id,{isGlobal:o.value}),t.component.endCustomLoading(),i(o)}}},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(o=>{$(o).css({color:"#ddd !important",cursor:"default"}).off("click")}))},onRowUpdating:t=>{if(!t.key||t.newData.isDefault===void 0)return;let i=t.component.getDataSource().items().find(o=>o.isDefault);i&&(i.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 iszolea-md").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:i=>{this.filtersDropdownBox&&this.filtersDropdownBox.close()},onHiding:async i=>{if(!this.hasChanges||t){t=!1;return}i.cancel=!0,t=await this.confirmChangesLoss(),t&&(i.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 i=[];for(let o of e)if(o.columns&&o.columns.length>0){let n=this.getFlatColumnsList(o.columns);i=i.concat(n)}else{let n=$.extend({},o);if(n.dataType==="date"||n.dataType==="datetime"){let a=n.dataType==="datetime",s="dd MMM yy",m=a?"hh:mm, dd MMM yy":s,c=v=>{let g=v.split(", "),I=DevExpress.localization.parseDate(g[1],s)||null;if(I){let y=g[0].split(":");return I.setHours(parseInt(y[0])),I.setMinutes(parseInt(y[1])),I}else return null};n.format=m,n.editorTemplate=v=>$("<div />").dxDateBox({displayFormat:m,type:a?"datetime":"date",width:150,onValueChanged:({value:g})=>{v.setValue(DevExpress.localization.formatDate(g,m))},value:(a?c(v.value):DevExpress.localization.parseDate(v.value,m))||null}),n.filterOperations=["=","<>","<",">","<=",">=","isblank","isnotblank"],n.calculateFilterExpression=function(v){let g=[e,...t];return g[0]&&(a?g[0]=c(g[0]):g[0]=DevExpress.localization.parseDate(v,m)||null),this.defaultCalculateFilterExpression(...g)}}i.push(n)}return i.sort((o,n)=>{let a=(o.caption||"").toLowerCase(),s=(n.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%"),i=$('<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(i),this.filterIsGlobalCheckbox.option("value",e&&e.isGlobal),this.filterIsGlobalCheckbox.element().appendTo(i),this.filterIsGlobalCheckbox.option("disabled",!this.options.canCreateGlobalFilters),i.appendTo(t),this.filterBuilder.option("value",e&&e.filterState);let o=$("<div />").height("calc(100% - 36px)").appendTo(t);return this.filterBuilder.element().appendTo(o),o.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"),i=!1,o=this.filterIsGlobalCheckbox.option("value");if(!e)return;let n=await this.options.gridFiltersManager.createNewFilter(e,t,i,o);await this.loadFilterDropdownBoxData(),await this.applyFilter(n.id),R("Created",!0)}async updateFilter(e){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let t=this.filterNameTextBox.option("value"),i=this.filterBuilder.option("value"),o=this.filterIsGlobalCheckbox.option("value");!t||!await this.options.gridFiltersManager.updateFilter(e.id,{name:t,filterState:i,isGlobal:o})||(R("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 o=t.find(n=>n.id===e.defaultFilterId);o&&(o.isDefault=!0)}let i=new DevExpress.data.ArrayStore({key:"id",data:t});this.filtersDropdownBox.option("dataSource",i),this.filtersDataGrid&&this.filtersDataGrid.option("dataSource",i)}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 Ke=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 i;t.component.option("labelText",t.value[0]?t.value[0].name:""),(i=this.onValueChanged)==null||i.call(this,t)},onUploadStarted:t=>{var i;t.element.find(".dx-fileuploader-upload-button").hide(),(i=this.onUploadStarted)==null||i.call(this,t)},onUploaded:t=>{var i;(i=this.onUploaded)==null||i.call(this,t)}}).dxFileUploader("instance"),this.$container.append(this.fileUploader.element())}upload(e,t){return new Promise((i,o)=>{let n=new FormData,a=this.fileUploader.element().find("input")[0].files[0];n.append("file",a);for(let s in t)n.append(s,t[s]);$.ajax({url:e,type:"post",data:n,contentType:!1,processData:!1,success:s=>{s.RequestState===1?i(s.Data):o(s.Message)},error:s=>o("Unknown error")})})}};var st=class extends oe{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,i)=>{this.createModeSwitcher(i)}},{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:q({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,i)=>{this.createFilesUploader(i)}},{dataField:"Columns Selector",label:{visible:!1},colSpan:4,itemType:"simple",template:(t,i)=>{this.createDataGrid(i)}}]}).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 Ke({$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 i=new DevExpress.data.DataSource({store:{type:"array",key:"Id",data:t.Columns},paginate:!1});this.dataGrid.option("dataSource",i)}}).catch(t=>{R(`Parsing Error : ${t}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}),this.fileUploader.render()}createDataGrid(e){let t={noDataText:"Select Excel File",hoverStateEnabled:!0,searchPanel:{visible:!1},groupPanel:{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:(i,o)=>{i.IsNullable=o,o&&(i.IsKeyColumn=!1)}}],remoteOperations:!1,onToolbarPreparing:i=>{i.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:i=>{if(i.parentType==="dataRow"&&i.dataField==="IsKeyColumn"){let o=i.editorOptions;o.disabled=i.row.data.IsNullable}}};this.dataGrid=U($("<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||R("Select file with data",!1);let i=t.items();if(!this.areColumnsValid(i))R("At least 1 key column must be set",!1);else{let o={schema:this.form.option("formData").Schema,table:this.form.option("formData").Table,columns:JSON.stringify(i)};this.dataGrid.beginCustomLoading("Creating and filling DB table..."),this.fileUploader.upload(this.createTableUrl,o).then(n=>{n===!0?(this.popup.hide(),R(`The table [${o.schema}].[${o.table}] has been created`,!0),this.emit(st.TABLE_UPDATED_EVENT)):R("The table has not been created",!1)}).catch(n=>{R(`Table creating error: ${n}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}}addRowsToTable(){if(this.form.validate().isValid){let t=this.dataGrid.getDataSource();t||R("Select file with data",!1);let i=t.items(),o={table:this.form.option("formData").TableSelector,columns:JSON.stringify(i)};this.dataGrid.beginCustomLoading("Adding rows to DB table..."),this.fileUploader.upload(this.addRowsUrl,o).then(n=>{n===!0?(this.popup.hide(),R(`The table ${o.table} has been updated`,!0),this.emit(st.TABLE_UPDATED_EVENT)):R("The table has not been updated",!1)}).catch(n=>{R(`Table updating error: ${n}`,!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)}},ve=st;ve.TABLE_UPDATED_EVENT="file-importer-table-updated-event";var jt=class{constructor(e){this.onGridToolbarPreparing=e=>{let t=e.toolbarOptions&&e.toolbarOptions.items;if(!t)return;let i=[this.displaysToolbarItem];this.importFileOptions&&this.importFileOptions.mode!==0&&i.push(this.importFileToolbarItem),t.splice(1,0,...i)};this.options=e,this.gridDisplaysManager=e.gridDisplaysManager,this.gridViewsManager=e.gridViewsManager,this.gridFiltersManager=e.gridFiltersManager,this.importFileOptions=e.importFileOptions,this.gridDisplaysManager.onDisplaisLoaded=t=>{let i=new DevExpress.data.ArrayStore({key:"Id",data:t});this.displaysDropdownBox&&this.displaysDropdownBox.option("dataSource",i),this.dataGrid&&this.dataGrid.option("dataSource",i),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",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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,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 i=await this.gridFiltersManager.getFilters(),o=await this.gridViewsManager.getViews();t.component.columnOption("FilterId","lookup.dataSource",i),t.component.columnOption("ViewId","lookup.dataSource",o)},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:i=>{this.displaysDropdownBox=i.component,this.gridDisplaysManager.getDisplays()},onValueChanged:async i=>{let o=this.gridDisplaysManager.currentDisplay,n=o&&o.FilterId!==this.gridFiltersManager.currentFilterId,a=o&&o.ViewId!==this.gridViewsManager.currentViewId;await(n||a?this.confirmChangesLoss():Promise.resolve(!0))&&(this.gridDisplaysManager.currentDisplayId=i.value)}},t={elementAttr:{class:"iszolea-md"},dropDownOptions:{width:800},contentTemplate:this.options.editMode?i=>{this.dataGrid=this.createDataGrid(i.component),this.currentDisplayTitle=this.createCurrentDisplayTitle(i.component),this.saveButton=this.createSaveViewButton(),this.saveAsButton=this.createSaveViewAsButton();let o=$("<div />").addClass("aps-displays__header").append(this.currentDisplayTitle.element()).append(this.saveButton.element()).append(this.saveAsButton.element()),n=$("<div />").height("100%");return this.options.editMode&&n.append(o),n.append(this.dataGrid.element()),n}: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 ve({$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(ve.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 iszolea-md").dxTextBox({value:e.option("text")||e.option("placeholder"),disabled:!this.gridDisplaysManager.currentDisplay}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-displays__save-display iszolea-md").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",width:125}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-display__save-display-as iszolea-md").dxButton({text:"Save As",type:"normal",disabled:!this.gridFiltersManager.currentFilterId,onClick:()=>this.createSaveAsDialog(),icon:"save",width:160}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),t=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"Display Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),i=t.dxTextBox("instance"),o=t.dxValidator("instance");return i.element().appendTo(e),te({title:"Create New Display",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async n=>{!o.validate().isValid||(this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.createNewDisplay(i.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId),n())}},{text:"Cancel",onClick:n=>n()})}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 Xt=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 Y(this.loadDataUrl),this.onDisplaisLoadedPrivate(),this.displays}async getDisplays(){return this.displays||await this.loadDisplays()}async createNewDisplay(e,t,i){let o={Id:0,Name:e,FilterId:t,ViewId:i};await C(this.insertDataUrl,"POST",o),await this.loadDisplays()}async deleteDisplay(e){await C(this.deleteDataUrl,"DELETE",{id:e}),await this.loadDisplays()}updateCurrentDisplay(e,t,i){return this.updateDisplay(this.currentDisplay.Id,e,t,i)}async updateDisplay(e,t,i,o){await C(this.updateDataUrl,"PUT",{id:e,name:t,filterId:i,viewId:o}),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 Yt=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,i=e.row.key,o=e.editorOptions.onValueChanged;e.editorOptions.onValueChanged=n=>{o(n),this.updateMultipleRows(t,i,n.value)}};this.options=S(b({},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,i){let o=await this.options.owner.getSelectedRowKeys();if(!o.length)return;let n=o.findIndex(a=>a===t);n<0||o.length===1||(o.splice(n,1),o.forEach(a=>{this.options.owner.cellValue(this.options.owner.getRowIndexByKey(a),e,i)}))}};var Zt=class{constructor(e){this.defaultUserSettings={defaultFilterId:void 0,defaultViewId:L.defaultControlDisplayView.id};this.isLatestLoadedUserSettingsExpired=!0;this.options=b({},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)}},lt=class extends Zt{async loadUserSettings(){let e=localStorage.getItem(lt.userSettingsStorageKey);return e?JSON.parse(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),i=b(b({},t),e);return localStorage.setItem(lt.userSettingsStorageKey,JSON.stringify(i)),i}},Ji=lt;Ji.userSettingsStorageKey="aps:control-display:user-settings";var ei=class extends Zt{constructor(e){super(e);this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl}async loadUserSettings(){let e=await Y(this.loadDataUrl);return e?this.mapControlDisplayUserSettingsDtoToModel(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),i=b(b({},t),e),o=await C(this.updateDataUrl,"PUT",this.mapControlDisplayUserSettingsModelToDto(i));return this.mapControlDisplayUserSettingsDtoToModel(o)}mapControlDisplayUserSettingsModelToDto(e){return{DefaultFilterId:e.defaultFilterId,DefaultViewId:e.defaultViewId}}mapControlDisplayUserSettingsDtoToModel(e){return{defaultFilterId:e.DefaultFilterId,defaultViewId:e.DefaultViewId}}};function Ki(r){let e="",t=r.filter(o=>o.visible),i=t.filter(o=>o.visibleIndex!==null&&o.visibleIndex!==void 0);return i.length?e=i.sort((o,n)=>o.visibleIndex-n.visibleIndex)[0].dataField:e=t[0]&&t[0].dataField||"",e}var ti=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(){C(this.userConfigUrl).then(e=>{let t=new Je(this.gridFiltersManagerOptions),i=new L(this.gridViewsManagerOptions),o=new Xt(this.gridDisplaysManagerOptions);this.mainGrid=this.createMainGrid(e.FieldsConfiguration);let n=e.CanCreateDisplays&&e.CanCreateViews&&e.CanCreateFilters;(n||e.CanApplayDisplays)&&(this.gridDisplaysToolbarComponent=new jt({owner:this.mainGrid,editMode:n,gridFiltersManager:t,gridViewsManager:i,gridDisplaysManager:o,importFileOptions:this.importFileOptions})),this.gridViewsToolbarComponent=new Qt({owner:this.mainGrid,onViewApplied:this.onViewApplied,onViewDeleted:async()=>{await o.loadDisplays()},autoIntegration:!0,gridViewsManager:i,canCreateGlobalViews:e.CanCreateGlobalViews,visible:e.CanCreateViews}),this.gridFiltersToolbarComponent=new qt({apsControlDisplayUserSettingsManager:new ei({userId:this.userName,loadDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.loadDataUrl,updateDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.updateDataUrl}),owner:this.mainGrid,onFilterDeleted:async a=>{await o.loadDisplays()},autoIntegration:!0,gridFiltersManager:t,canCreateGlobalFilters:e.CanCreateGlobalFilters,visible:e.CanCreateFilters}),this.multipleEditingDataGridPlugin=new Yt({owner:this.mainGrid}),o.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(L.defaultControlDisplayView.id))}})}hasPermisson(e,t){return e&t}buildTree(e){let t="__GROUP__",i=e.reduce((n,a)=>(a.Columns=[],a.GroupField=a.GroupField?`${t}${a.GroupField}`:null,n[a.Name]=a,n),{});i=e.filter(n=>n.GroupField).map(n=>n.GroupField).filter((n,a,s)=>s.indexOf(n)===a).reduce((n,a)=>{let s=a.replace(t,""),d={Name:a,Label:s,Columns:[],GroupField:i[s]&&i[s].GroupField&&i[s].GroupField!==a?i[s].GroupField:null};return n[a]=d,n},i);let o=[];for(let n in i)if(i.hasOwnProperty(n)){let a=i[n];a.GroupField?i[a.GroupField].Columns.push(a):o.push(a)}return o}renderDisplayType(e,t,i){e.type===1&&(t.cellTemplate=(o,n)=>{let a=String(n.value),s=e.data.find(d=>String(d.value)===a);s?$("<div>").css({"text-align":"center"}).attr("title",s.title).append($("<img>",{src:s.image})).appendTo(o):$("<div />").css({"text-align":"center"}).text(n.value).appendTo(o)},t.editCellTemplate=(o,n)=>{$("<div />").dxSelectBox({dataSource:e.data,displayValue:"title",itemTemplate:a=>$("<div />").css({"text-align":"center"}).attr("title",a.title).append($("<img>",{src:a.image})).appendTo(o),fieldTemplate:(a,s)=>{let d=e.data.find(v=>parseInt(v.value)===n.value),m=$("<div />").addClass("item-name"),c=$("<div />").addClass("aps-icon-editor__custom-item").append($("<img>",{src:d?d.image:""}).attr("title",d?d.title:"")).append(m);m.dxTextBox({value:"",readOnly:!0}),s.append(c)},onValueChanged:({value:a,component:s})=>{n.setValue(parseInt(a.value)),s.blur()},value:n.value!==null&&n!==void 0&&n.value.toString(),selectedItem:e.data.find(a=>parseInt(a.value)===n.value)}).appendTo(o)},t.allowSearch=!1,t.allowFiltering=!1,t.allowHeaderFiltering=!0,t.allowGrouping=!1),e.type===2&&(t.editCellTemplate=(o,n)=>{$("<div />").dxSelectBox({dataSource:e.data.map(a=>a.value).sort(),acceptCustomValue:!0,showClearButton:!0,onValueChanged:({value:a,component:s})=>{n.setValue(a||""),s.blur()},value:n.value}).appendTo(o)}),e.type===3&&(t.editCellTemplate=(o,n)=>{$("<div />").dxCheckBox({value:n.value||!1,readOnly:!this.hasPermisson(i,4),onValueChanged:a=>{n.component.cellValue(n.rowIndex,n.column.dataField,a.value)}}).appendTo(o)})}configureColumn(e){let t=e.Label||e.Name,i=e.ToolTip||t,o=e.Columns.length?{caption:t,columns:e.Columns.map(n=>this.configureColumn(n))}:{dataField:e.Name,dataType:e.Type,caption:t,headerCellTemplate:ne(t,i),visible:e.IsDefaultViewField,visibleIndex:e.Order,allowFixing:!1,allowEditing:!!this.hasPermisson(e.Permissions,4),width:e.Width,hidingPriority:e.HidingOrder};if(e.DisplayType){let n=JSON.parse(e.DisplayType);if(n.type===1){let a=n.data.map(s=>({text:s.title,value:s.value}));a.splice(0,0,{text:"Blank",value:null}),o.headerFilter={dataSource:a}}this.renderDisplayType(n,o,e.Permissions)}return o}configureColumns(e){return e=e.filter(i=>this.hasPermisson(i.Permissions,1)),e=this.buildTree(e),e.map(i=>this.configureColumn(i))}createMainGrid(e){let t=e.some(a=>a.IsKeyColumn),i=this.configureColumns(e),o=Ki(i),n={dataSource:this.createMainGridDataSource(e),columnResizingMode:"widget",width:"100%",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:o}]},allowColumnResizing:!0,columnHidingEnabled:!1,hoverStateEnabled:!0,columns:i,allowColumnReordering:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},masterDetail:t?{enabled:!0,template:(a,s)=>{let d={};e.filter(m=>m.IsKeyColumn).forEach(m=>d[m.Name]=s.data[m.Name]),$("<div>").dxDataGrid({dataSource:{store:q({loadUrl:`${this.controlLogsUrl}?key=${JSON.stringify(d)}`})},showBorders:!0,columns:[{dataField:"User",width:200},{dataField:"CreatedAt",caption:"Date",dataType:"date",format:"shortDateShortTime",width:200},{dataField:"Changes",cellTemplate:(m,c)=>{let v=c.data.Changes.map(g=>`<div class='aps-control-log'>
2
+ (()=>{var mo=Object.create;var Ae=Object.defineProperty,go=Object.defineProperties,fo=Object.getOwnPropertyDescriptor,vo=Object.getOwnPropertyDescriptors,yo=Object.getOwnPropertyNames,li=Object.getOwnPropertySymbols,xo=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty,wo=Object.prototype.propertyIsEnumerable;var di=(r,e,t)=>e in r?Ae(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,b=(r,e)=>{for(var t in e||(e={}))pi.call(e,t)&&di(r,t,e[t]);if(li)for(var t of li(e))wo.call(e,t)&&di(r,t,e[t]);return r},T=(r,e)=>go(r,vo(e)),Io=r=>Ae(r,"__esModule",{value:!0});var ui=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),X=(r,e)=>{for(var t in e)Ae(r,t,{get:e[t],enumerable:!0})},bo=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yo(e))!pi.call(r,o)&&(t||o!=="default")&&Ae(r,o,{get:()=>e[o],enumerable:!(i=fo(e,o))||i.enumerable});return r},ci=(r,e)=>bo(Io(Ae(r!=null?mo(xo(r)):{},"default",!e&&r&&r.__esModule?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var Ri=ui((Gt,Lt)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof Gt<"u"?e():(e(),r.FileSaver={})})(Gt,function(){"use strict";function r(s,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(s.type)?new Blob(["\uFEFF",s],{type:s.type}):s}function e(s,d,h){var c=new XMLHttpRequest;c.open("GET",s),c.responseType="blob",c.onload=function(){a(c.response,d,h)},c.onerror=function(){console.error("could not download file")},c.send()}function t(s){var d=new XMLHttpRequest;d.open("HEAD",s,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function i(s){try{s.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),s.dispatchEvent(d)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,n=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),a=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!n?function(s,d,h){var c=o.URL||o.webkitURL,v=document.createElement("a");d=d||s.name||"download",v.download=d,v.rel="noopener",typeof s=="string"?(v.href=s,v.origin===location.origin?i(v):t(v.href)?e(s,d,h):i(v,v.target="_blank")):(v.href=c.createObjectURL(s),setTimeout(function(){c.revokeObjectURL(v.href)},4e4),setTimeout(function(){i(v)},0))}:"msSaveOrOpenBlob"in navigator?function(s,d,h){if(d=d||s.name||"download",typeof s!="string")navigator.msSaveOrOpenBlob(r(s,h),d);else if(t(s))e(s,d,h);else{var c=document.createElement("a");c.href=s,c.target="_blank",setTimeout(function(){i(c)})}}:function(s,d,h,c){if(c=c||open("","_blank"),c&&(c.document.title=c.document.body.innerText="downloading..."),typeof s=="string")return e(s,d,h);var v=s.type==="application/octet-stream",g=/constructor/i.test(o.HTMLElement)||o.safari,I=/CriOS\/[\d]+/.test(navigator.userAgent);if((I||v&&g||n)&&typeof FileReader<"u"){var y=new FileReader;y.onloadend=function(){var p=y.result;p=I?p:p.replace(/^data:[^;]*;/,"data:attachment/file;"),c?c.location.href=p:location=p,c=null},y.readAsDataURL(s)}else{var u=o.URL||o.webkitURL,l=u.createObjectURL(s);c?c.location=l:location.href=l,c=null,setTimeout(function(){u.revokeObjectURL(l)},4e4)}});o.saveAs=a.saveAs=a,typeof Lt<"u"&&(Lt.exports=a)})});var Ui=ui(($t,Ut)=>{(function(r,e){typeof $t=="object"&&typeof Ut<"u"?Ut.exports=e():typeof define=="function"&&define.amd?define(e):r.Croppr=e()})($t,function(){"use strict";(function(){for(var y=0,u=["ms","moz","webkit","o"],l=0;l<u.length&&!window.requestAnimationFrame;++l)window.requestAnimationFrame=window[u[l]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[u[l]+"CancelAnimationFrame"]||window[u[l]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(p,m){var f=new Date().getTime(),x=Math.max(0,16-(f-y)),w=window.setTimeout(function(){p(f+x)},x);return y=f+x,w}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(p){clearTimeout(p)})})(),function(){if(typeof window.CustomEvent=="function")return!1;function y(u,l){l=l||{bubbles:!1,cancelable:!1,detail:void 0};var p=document.createEvent("CustomEvent");return p.initCustomEvent(u,l.bubbles,l.cancelable,l.detail),p}y.prototype=window.Event.prototype,window.CustomEvent=y}(),function(y){try{return new CustomEvent("test"),!1}catch{}function u(l,p){p=p||{bubbles:!1,cancelable:!1};var m=document.createEvent("MouseEvent");return m.initMouseEvent(l,p.bubbles,p.cancelable,y,0,0,0,0,0,!1,!1,!1,!1,0,null),m}u.prototype=Event.prototype,y.MouseEvent=u}(window);var r=function(y,u){if(!(y instanceof u))throw new TypeError("Cannot call a class as a function")},e=function(){function y(u,l){for(var p=0;p<l.length;p++){var m=l[p];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(u,m.key,m)}}return function(u,l,p){return l&&y(u.prototype,l),p&&y(u,p),u}}(),t=function y(u,l,p){u===null&&(u=Function.prototype);var m=Object.getOwnPropertyDescriptor(u,l);if(m===void 0){var f=Object.getPrototypeOf(u);return f===null?void 0:y(f,l,p)}else{if("value"in m)return m.value;var x=m.get;return x===void 0?void 0:x.call(p)}},i=function(y,u){if(typeof u!="function"&&u!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof u);y.prototype=Object.create(u&&u.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(y,u):y.__proto__=u)},o=function(y,u){if(!y)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u&&(typeof u=="object"||typeof u=="function")?u:y},n=function(){function y(u,l){var p=[],m=!0,f=!1,x=void 0;try{for(var w=u[Symbol.iterator](),D;!(m=(D=w.next()).done)&&(p.push(D.value),!(l&&p.length===l));m=!0);}catch(E){f=!0,x=E}finally{try{!m&&w.return&&w.return()}finally{if(f)throw x}}return p}return function(u,l){if(Array.isArray(u))return u;if(Symbol.iterator in Object(u))return y(u,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function y(u,l,p,m){r(this,y);var f=this;this.position=u,this.constraints=l,this.cursor=p,this.eventBus=m,this.el=document.createElement("div"),this.el.className="croppr-handle",this.el.style.cursor=p,this.el.addEventListener("mousedown",x);function x(E){E.stopPropagation(),document.addEventListener("mouseup",w),document.addEventListener("mousemove",D),f.eventBus.dispatchEvent(new CustomEvent("handlestart",{detail:{handle:f}}))}function w(E){E.stopPropagation(),document.removeEventListener("mouseup",w),document.removeEventListener("mousemove",D),f.eventBus.dispatchEvent(new CustomEvent("handleend",{detail:{handle:f}}))}function D(E){E.stopPropagation(),f.eventBus.dispatchEvent(new CustomEvent("handlemove",{detail:{mouseX:E.clientX,mouseY:E.clientY}}))}},s=function(){function y(u,l,p,m){r(this,y),this.x1=u,this.y1=l,this.x2=p,this.y2=m}return e(y,[{key:"set",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return this.x1=l??this.x1,this.y1=p??this.y1,this.x2=m??this.x2,this.y2=f??this.y2,this}},{key:"width",value:function(){return Math.abs(this.x2-this.x1)}},{key:"height",value:function(){return Math.abs(this.y2-this.y1)}},{key:"resize",value:function(l,p){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],f=this.x1+this.width()*m[0],x=this.y1+this.height()*m[1];return this.x1=f-l*m[0],this.y1=x-p*m[1],this.x2=this.x1+l,this.y2=this.y1+p,this}},{key:"scale",value:function(l){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0],m=this.width()*l,f=this.height()*l;return this.resize(m,f,p),this}},{key:"move",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,m=this.width(),f=this.height();return l=l===null?this.x1:l,p=p===null?this.y1:p,this.x1=l,this.y1=p,this.x2=l+m,this.y2=p+f,this}},{key:"getRelativePoint",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[0,0],p=this.width()*l[0],m=this.height()*l[1];return[p,m]}},{key:"getAbsolutePoint",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[0,0],p=this.x1+this.width()*l[0],m=this.y1+this.height()*l[1];return[p,m]}},{key:"constrainToRatio",value:function(l){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0],m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"height";if(l!==null){var f=this.width(),x=this.height();switch(m){case"height":this.resize(this.width(),this.width()*l,p);break;case"width":this.resize(this.height()*1/l,this.height(),p);break;default:this.resize(this.width(),this.width()*l,p)}return this}}},{key:"constrainToBoundary",value:function(l,p){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0],f=this.getAbsolutePoint(m),x=n(f,2),w=x[0],D=x[1],E=w,R=D,S=l-w,O=p-D,V=-2*m[0]+1,k=-2*m[1]+1,M=null,A=null;switch(V){case-1:M=E;break;case 0:M=Math.min(E,S)*2;break;case 1:M=S;break}switch(k){case-1:A=R;break;case 0:A=Math.min(R,O)*2;break;case 1:A=O;break}if(this.width()>M){var N=M/this.width();this.scale(N,m)}if(this.height()>A){var z=A/this.height();this.scale(z,m)}return this}},{key:"constrainToSize",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,x=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0,0],w=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;if(w&&(w>1?(l=p*1/w,f=f*w):w<1&&(p=l*w,m=f*1/w)),l&&this.width()>l){var D=l,E=w===null?this.height():p;this.resize(D,E,x)}if(p&&this.height()>p){var R=w===null?this.width():l,S=p;this.resize(R,S,x)}if(m&&this.width()<m){var O=m,V=w===null?this.height():f;this.resize(O,V,x)}if(f&&this.height()<f){var k=w===null?this.width():m,M=f;this.resize(k,M,x)}return this}}]),y}();function d(y){y.addEventListener("touchstart",h),y.addEventListener("touchend",h),y.addEventListener("touchmove",h)}function h(y){y.preventDefault();var u=y.changedTouches[0],l={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"};u.target.dispatchEvent(new MouseEvent(l[y.type],{bubbles:!0,cancelable:!0,view:window,clientX:u.clientX,clientY:u.clientY,screenX:u.screenX,screenY:u.screenY}))}var c=[{position:[0,0],constraints:[1,0,0,1],cursor:"nw-resize"},{position:[.5,0],constraints:[1,0,0,0],cursor:"n-resize"},{position:[1,0],constraints:[1,1,0,0],cursor:"ne-resize"},{position:[1,.5],constraints:[0,1,0,0],cursor:"e-resize"},{position:[1,1],constraints:[0,1,1,0],cursor:"se-resize"},{position:[.5,1],constraints:[0,0,1,0],cursor:"s-resize"},{position:[0,1],constraints:[0,0,1,1],cursor:"sw-resize"},{position:[0,.5],constraints:[0,0,0,1],cursor:"w-resize"}],v=function(){function y(u,l){var p=this,m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(r(this,y),this.options=y.parseOptions(l||{}),!u.nodeName&&(u=document.querySelector(u),u==null))throw"Unable to find element.";if(!u.getAttribute("src"))throw"Image src not provided.";this._initialized=!1,this._restore={parent:u.parentNode,element:u},m||(u.width===0||u.height===0?u.onload=function(){p.initialize(u)}:this.initialize(u))}return e(y,[{key:"initialize",value:function(l){this.createDOM(l),this.options.convertToPixels(this.cropperEl),this.attachHandlerEvents(),this.attachRegionEvents(),this.attachOverlayEvents(),this.box=this.initializeBox(this.options),this.redraw(),this._initialized=!0,this.options.onInitialize!==null&&this.options.onInitialize(this)}},{key:"createDOM",value:function(l){this.containerEl=document.createElement("div"),this.containerEl.className="croppr-container",this.eventBus=this.containerEl,d(this.containerEl),this.cropperEl=document.createElement("div"),this.cropperEl.className="croppr",this.imageEl=document.createElement("img"),this.imageEl.setAttribute("src",l.getAttribute("src")),this.imageEl.setAttribute("alt",l.getAttribute("alt")),this.imageEl.className="croppr-image",this.imageClippedEl=this.imageEl.cloneNode(),this.imageClippedEl.className="croppr-imageClipped",this.regionEl=document.createElement("div"),this.regionEl.className="croppr-region",this.overlayEl=document.createElement("div"),this.overlayEl.className="croppr-overlay";var p=document.createElement("div");p.className="croppr-handleContainer",this.handles=[];for(var m=0;m<c.length;m++){var f=new a(c[m].position,c[m].constraints,c[m].cursor,this.eventBus);this.handles.push(f),p.appendChild(f.el)}this.cropperEl.appendChild(this.imageEl),this.cropperEl.appendChild(this.imageClippedEl),this.cropperEl.appendChild(this.regionEl),this.cropperEl.appendChild(this.overlayEl),this.cropperEl.appendChild(p),this.containerEl.appendChild(this.cropperEl),l.parentElement.replaceChild(this.containerEl,l)}},{key:"setImage",value:function(l){var p=this;return this.imageEl.onload=function(){p.box=p.initializeBox(p.options),p.redraw()},this.imageEl.src=l,this.imageClippedEl.src=l,this}},{key:"destroy",value:function(){this._restore.parent.replaceChild(this._restore.element,this.containerEl)}},{key:"initializeBox",value:function(l){var p=l.startSize.width,m=l.startSize.height,f=new s(0,0,p,m);f.constrainToRatio(l.aspectRatio,[.5,.5]);var x=l.minSize,w=l.maxSize;f.constrainToSize(w.width,w.height,x.width,x.height,[.5,.5],l.aspectRatio);var D=this.cropperEl.offsetWidth,E=this.cropperEl.offsetHeight;f.constrainToBoundary(D,E,[.5,.5]);var R=this.cropperEl.offsetWidth/2-f.width()/2,S=this.cropperEl.offsetHeight/2-f.height()/2;return f.move(R,S),f}},{key:"redraw",value:function(){var l=this,p=Math.round(this.box.width()),m=Math.round(this.box.height()),f=Math.round(this.box.x1),x=Math.round(this.box.y1),w=Math.round(this.box.x2),D=Math.round(this.box.y2);window.requestAnimationFrame(function(){l.regionEl.style.transform="translate("+f+"px, "+x+"px)",l.regionEl.style.width=p+"px",l.regionEl.style.height=m+"px",l.imageClippedEl.style.clip="rect("+x+"px, "+w+"px, "+D+"px, "+f+"px)";for(var E=l.box.getAbsolutePoint([.5,.5]),R=E[0]-l.cropperEl.offsetWidth/2>>31,S=E[1]-l.cropperEl.offsetHeight/2>>31,O=(R^S)+S+S+4,V=-2*O+8,k=0;k<l.handles.length;k++){var M=l.handles[k],A=M.el.offsetWidth,N=M.el.offsetHeight,z=f+p*M.position[0]-A/2,te=x+m*M.position[1]-N/2;M.el.style.transform="translate("+Math.round(z)+"px, "+Math.round(te)+"px)",M.el.style.zIndex=V==k?5:4}})}},{key:"attachHandlerEvents",value:function(){var l=this.eventBus;l.addEventListener("handlestart",this.onHandleMoveStart.bind(this)),l.addEventListener("handlemove",this.onHandleMoveMoving.bind(this)),l.addEventListener("handleend",this.onHandleMoveEnd.bind(this))}},{key:"attachRegionEvents",value:function(){var l=this.eventBus,p=this;this.regionEl.addEventListener("mousedown",m),l.addEventListener("regionstart",this.onRegionMoveStart.bind(this)),l.addEventListener("regionmove",this.onRegionMoveMoving.bind(this)),l.addEventListener("regionend",this.onRegionMoveEnd.bind(this));function m(w){w.stopPropagation(),document.addEventListener("mouseup",x),document.addEventListener("mousemove",f),l.dispatchEvent(new CustomEvent("regionstart",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}function f(w){w.stopPropagation(),l.dispatchEvent(new CustomEvent("regionmove",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}function x(w){w.stopPropagation(),document.removeEventListener("mouseup",x),document.removeEventListener("mousemove",f),l.dispatchEvent(new CustomEvent("regionend",{detail:{mouseX:w.clientX,mouseY:w.clientY}}))}}},{key:"attachOverlayEvents",value:function(){var l=4,p=this,m=null;this.overlayEl.addEventListener("mousedown",f);function f(D){D.stopPropagation(),document.addEventListener("mouseup",w),document.addEventListener("mousemove",x);var E=p.cropperEl.getBoundingClientRect(),R=D.clientX-E.left,S=D.clientY-E.top;m=p.box,p.box=new s(R,S,R+1,S+1),p.eventBus.dispatchEvent(new CustomEvent("handlestart",{detail:{handle:p.handles[l]}}))}function x(D){D.stopPropagation(),p.eventBus.dispatchEvent(new CustomEvent("handlemove",{detail:{mouseX:D.clientX,mouseY:D.clientY}}))}function w(D){if(D.stopPropagation(),document.removeEventListener("mouseup",w),document.removeEventListener("mousemove",x),p.box.width()===1&&p.box.height()===1){p.box=m;return}p.eventBus.dispatchEvent(new CustomEvent("handleend",{detail:{mouseX:D.clientX,mouseY:D.clientY}}))}}},{key:"onHandleMoveStart",value:function(l){var p=l.detail.handle,m=[1-p.position[0],1-p.position[1]],f=this.box.getAbsolutePoint(m),x=n(f,2),w=x[0],D=x[1];this.activeHandle={handle:p,originPoint:m,originX:w,originY:D},this.options.onCropStart!==null&&this.options.onCropStart(this.getValue())}},{key:"onHandleMoveMoving",value:function(l){var p=l.detail,m=p.mouseX,f=p.mouseY,x=this.cropperEl.getBoundingClientRect();m=m-x.left,f=f-x.top,m<0?m=0:m>x.width&&(m=x.width),f<0?f=0:f>x.height&&(f=x.height);var w=this.activeHandle.originPoint.slice(),D=this.activeHandle.originX,E=this.activeHandle.originY,R=this.activeHandle.handle,S=R.constraints[0]===1,O=R.constraints[1]===1,V=R.constraints[2]===1,k=R.constraints[3]===1,M=(k||O)&&(S||V),A=k||O?D:this.box.x1,N=k||O?D:this.box.x2,z=S||V?E:this.box.y1,te=S||V?E:this.box.y2;A=k?m:A,N=O?m:N,z=S?f:z,te=V?f:te;var Ve=!1,Ie=!1;if((k||O)&&(Ve=k?m>D:m<D),(S||V)&&(Ie=S?f>E:f<E),Ve){var K=A;A=N,N=K,w[0]=1-w[0]}if(Ie){var po=z;z=te,te=po,w[1]=1-w[1]}var le=new s(A,z,N,te);if(this.options.aspectRatio){var ft=this.options.aspectRatio,vt=!1;M?vt=f>le.y1+ft*le.width()||f<le.y2-ft*le.width():(S||V)&&(vt=!0);var uo=vt?"width":"height";le.constrainToRatio(ft,w,uo)}var ai=this.options.minSize,si=this.options.maxSize;le.constrainToSize(si.width,si.height,ai.width,ai.height,w,this.options.aspectRatio);var co=this.cropperEl.offsetWidth,ho=this.cropperEl.offsetHeight;le.constrainToBoundary(co,ho,w),this.box=le,this.redraw(),this.options.onCropMove!==null&&this.options.onCropMove(this.getValue())}},{key:"onHandleMoveEnd",value:function(l){this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue())}},{key:"onRegionMoveStart",value:function(l){var p=l.detail,m=p.mouseX,f=p.mouseY,x=this.cropperEl.getBoundingClientRect();m=m-x.left,f=f-x.top,this.currentMove={offsetX:m-this.box.x1,offsetY:f-this.box.y1},this.options.onCropStart!==null&&this.options.onCropStart(this.getValue())}},{key:"onRegionMoveMoving",value:function(l){var p=l.detail,m=p.mouseX,f=p.mouseY,x=this.currentMove,w=x.offsetX,D=x.offsetY,E=this.cropperEl.getBoundingClientRect();m=m-E.left,f=f-E.top,this.box.move(m-w,f-D),this.box.x1<0&&this.box.move(0,null),this.box.x2>E.width&&this.box.move(E.width-this.box.width(),null),this.box.y1<0&&this.box.move(null,0),this.box.y2>E.height&&this.box.move(null,E.height-this.box.height()),this.redraw(),this.options.onCropMove!==null&&this.options.onCropMove(this.getValue())}},{key:"onRegionMoveEnd",value:function(l){this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue())}},{key:"getValue",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(l===null&&(l=this.options.returnMode),l=="real"){var p=this.imageEl.naturalWidth,m=this.imageEl.naturalHeight,f=this.imageEl.getBoundingClientRect(),x=f.width,w=f.height,D=p/x,E=m/w;return{x:Math.round(this.box.x1*D),y:Math.round(this.box.y1*E),width:Math.round(this.box.width()*D),height:Math.round(this.box.height()*E)}}else if(l=="ratio"){var R=this.imageEl.getBoundingClientRect(),S=R.width,O=R.height;return{x:g(this.box.x1/S,3),y:g(this.box.y1/O,3),width:g(this.box.width()/S,3),height:g(this.box.height()/O,3)}}else if(l=="raw")return{x:Math.round(this.box.x1),y:Math.round(this.box.y1),width:Math.round(this.box.width()),height:Math.round(this.box.height())}}}],[{key:"parseOptions",value:function(l){var p={aspectRatio:null,maxSize:{width:null,height:null},minSize:{width:null,height:null},startSize:{width:100,height:100,unit:"%"},returnMode:"real",onInitialize:null,onCropStart:null,onCropMove:null,onCropEnd:null},m=null;l.aspectRatio!==void 0&&(typeof l.aspectRatio=="number"?m=l.aspectRatio:l.aspectRatio instanceof Array&&(m=l.aspectRatio[1]/l.aspectRatio[0]));var f=null;l.maxSize!==void 0&&l.maxSize!==null&&(f={width:l.maxSize[0]||null,height:l.maxSize[1]||null,unit:l.maxSize[2]||"px"});var x=null;l.minSize!==void 0&&l.minSize!==null&&(x={width:l.minSize[0]||null,height:l.minSize[1]||null,unit:l.minSize[2]||"px"});var w=null;l.startSize!==void 0&&l.startSize!==null&&(w={width:l.startSize[0]||null,height:l.startSize[1]||null,unit:l.startSize[2]||"%"});var D=null;typeof l.onInitialize=="function"&&(D=l.onInitialize);var E=null;typeof l.onCropStart=="function"&&(E=l.onCropStart);var R=null;typeof l.onCropEnd=="function"&&(R=l.onCropEnd);var S=null;typeof l.onUpdate=="function"&&(console.warn("Croppr.js: `onUpdate` is deprecated and will be removed in the next major release. Please use `onCropMove` or `onCropEnd` instead."),S=l.onUpdate),typeof l.onCropMove=="function"&&(S=l.onCropMove);var O=null;if(l.returnMode!==void 0){var V=l.returnMode.toLowerCase();if(["real","ratio","raw"].indexOf(V)===-1)throw"Invalid return mode.";O=V}var k=function(N){for(var z=N.offsetWidth,te=N.offsetHeight,Ve=["maxSize","minSize","startSize"],Ie=0;Ie<Ve.length;Ie++){var K=Ve[Ie];this[K]!==null&&(this[K].unit=="%"&&(this[K].width!==null&&(this[K].width=this[K].width/100*z),this[K].height!==null&&(this[K].height=this[K].height/100*te)),delete this[K].unit)}},M=function(N,z){return N!==null?N:z};return{aspectRatio:M(m,p.aspectRatio),maxSize:M(f,p.maxSize),minSize:M(x,p.minSize),startSize:M(w,p.startSize),returnMode:M(O,p.returnMode),onInitialize:M(D,p.onInitialize),onCropStart:M(E,p.onCropStart),onCropMove:M(S,p.onCropMove),onCropEnd:M(R,p.onCropEnd),convertToPixels:k}}}]),y}();function g(y,u){return Number(Math.round(y+"e"+u)+"e-"+u)}var I=function(y){i(u,y);function u(l,p){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return r(this,u),o(this,(u.__proto__||Object.getPrototypeOf(u)).call(this,l,p,m))}return e(u,[{key:"getValue",value:function(p){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"getValue",this).call(this,p)}},{key:"setImage",value:function(p){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"setImage",this).call(this,p)}},{key:"destroy",value:function(){return t(u.prototype.__proto__||Object.getPrototypeOf(u.prototype),"destroy",this).call(this)}},{key:"moveTo",value:function(p,m){return this.box.move(p,m),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"resizeTo",value:function(p,m){var f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[.5,.5];return this.box.resize(p,m,f),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"scaleBy",value:function(p){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[.5,.5];return this.box.scale(p,m),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}},{key:"reset",value:function(){return this.box=this.initializeBox(this.options),this.redraw(),this.options.onCropEnd!==null&&this.options.onCropEnd(this.getValue()),this}}]),u}(v);return I})});var Ne=(o=>(o[o.Invalid=0]="Invalid",o[o.Valid=1]="Valid",o[o.ExpireSoon=2]="ExpireSoon",o[o.Expired=3]="Expired",o))(Ne||{});var ue=(d=>(d[d.GridView=0]="GridView",d[d.Dashboard=1]="Dashboard",d[d.MenuNode=2]="MenuNode",d[d.Report=3]="Report",d[d.Diagram=4]="Diagram",d[d.CDM=5]="CDM",d[d.Slideshow=6]="Slideshow",d[d.GanttChart=7]="GanttChart",d))(ue||{});function F(r,e=!0){let t=e?"success":"error",i=e?2e3:4e3;DevExpress.ui.notify({message:r,type:t,onShowing:o=>{let n=o.element.find(".dx-toast-message");n.html((n.html()||"").replace("\\n","<br />"))}},t,i)}var Qe=r=>r?Array.isArray(r)?r[0].StackTrace!==void 0||r[0].Error!==void 0:r.Error!==void 0:!1;var be=(t=>(t[t.Completed=1]="Completed",t[t.Errored=2]="Errored",t))(be||{});var wt={};X(wt,{createButtons:()=>mi,createDialog:()=>ie,createItem:()=>Mo});var yt={};X(yt,{CSS_CLASSES:()=>Q});var Q={dxDataGrid:"iszolea-dx-datagrid",dxButton:"iszolea-dx-button",dxPopup:"iszolea-dx-popup"};var Co="popup-content",Do="popup-footer",Eo="buttons",xt="ok-btn",hi="cancel-btn";function To(r,e){return{$content:$("<div />").addClass(Co).addClass(e).appendTo(r),$footer:$("<div />").addClass(Do).appendTo(r)}}var qe=[];function So(r,e,t=!1){let i=e.onShowing;e.onShown=a=>{i&&i(a);let s=n.content().find("input[type=text]"),d=s.eq(0);d.focus();let h={keydown:c=>{qe[qe.length-1]===n&&(c.keyCode===13&&$(c.currentTarget).trigger("change"),o(c))}};t?s.on(h):d.on(h)};function o(a){a.keyCode===13&&n.content().find(`.${Q.dxButton}.${xt}`).click(),a.keyCode===27&&n.content().find(`.${Q.dxButton}.${hi}`).click()}let n=r.dxPopup(e).dxPopup("instance");return{show:()=>{n.show(),$(document).on({keydown:o}),qe.push(n)},hide:()=>{$(document).off({keydown:o}),n.hide(),qe.pop()},remove:()=>r.remove()}}function mi(r,e){let t=$("<table />").addClass(Eo),i=$("<tr>").appendTo(t);return r&&$("<td />").attr("width","50%").append($("<div />").addClass(Q.dxButton).addClass(xt).dxButton(r)).appendTo(i),e&&$("<td />").attr("width","50%").append($("<div />").addClass(Q.dxButton).addClass(hi).dxButton(e)).appendTo(i),t}function Mo(r,e){return $("<div />").addClass("item").append($("<div />").addClass("form-label").text(r),$("<div />").addClass("value").append(e))}function ie(r,e,t,i,o){let n=$("<div>").appendTo("body"),a=null,s=null,d=o?o.useKeyPressBehavior:!1;function h(){s.hide(),s.remove()}let c={contentTemplate:g=>{let{$content:I,$footer:y}=To(g);I.append(e),t&&i?(a=mi({text:t.text,icon:t.icon,disabled:t.disabled,type:"success",onClick:u=>t.onClick(h)},{text:i.text,icon:i.icon,disabled:i.disabled,onClick:u=>i.onClick(h)}),y.append(a)):y.remove()},elementAttr:{class:"iszolea-dx-popup"}},v={};return $.extend(!0,v,r,c),s=So(n,v,d),s.show(),{okBtn:a?a.find(`.${xt}`).dxButton("instance"):null,close:()=>h()}}var Fo="iszolea-error-dx-popup",Ro="iszolea-error-dx-popup__content",Po="iszolea-error-dx-popup__error-message",Bo="iszolea-error-dx-popup__error-details",gi="Show details",Oo="Hide details";function fi(r,e){let t,i=Array.isArray(e)?e:[e],o=$("<div />").addClass(Ro);i.forEach((s,d)=>{let h=$("<p />").addClass(Po).text(s.Error),c=$("<p />").addClass(Bo).text(s.StackTrace);o.append(h,c).hide(),d<i.length-1&&o.append($("<hr />"))});let n=ie({title:r,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(Fo)}},o,{text:gi,onClick:()=>{let s=!t.option("fullScreen");a(s),n.okBtn.option("text",s?Oo:gi)}},{text:"Close",onClick:s=>s()}),a=s=>{o.toggle(s),t.option("fullScreen",s),t.repaint()}}var _e=(i=>(i[i.UnexpectedException=0]="UnexpectedException",i[i.SqlException=1]="SqlException",i[i.IszoleaConfigurationException=2]="IszoleaConfigurationException",i))(_e||{});var je=r=>{switch(r){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 It="Unexpected error occurred. Please contact to developers.",Go=[504],bt=()=>It;function Ce(r,e=!1){return e&&F(r.Message),JSON.stringify(r.Data)}function ce(r,e,t){let i=r.Message,o={message:i},n,a=Lo(i);if(a!==null?n=(t?t(a):"")||It:n=i||It,e){let s=r.Data;if(Qe(s)){let d=Array.isArray(s)&&s.length,h=!Array.isArray(s)&&(s.StackTrace||s.Error);if(d||h)return fi(n,s),o}F(n,!1)}return o}function Lo(r){return!isNaN(r)&&_e[+r]?+r:null}function vi(r){let e=r.request.response?JSON.parse(r.request.response):{};return e.RequestState===1?(Ce(e),!0):(ce(e,!0),!1)}function C(r,e="GET",t=null,i,o){let n=$.Deferred(),a=(o==null?void 0:o.notifyError)===void 0||o.notifyError,s={headers:{Accept:"application/json"}},d=$.extend({type:e,url:r,data:t},o,s);return $.ajax(d).done(h=>{let c=h;if(c.RequestState===1){Ce(c,i),n.resolve(c.Data);return}let{message:v}=ce(c,a,(o==null?void 0:o.getUserFriendlyErrorMessage)||je);n.reject(v)}).fail((h,c)=>{!Go.includes(h.status)&&a&&F(bt(),!1),n.reject(c)}),n}function q(r){let e=DevExpress.data.AspNet.createStore(T(b({},r),{onBeforeSend:(t,i)=>{r.onBeforeSend&&r.onBeforeSend(t,i);let o=(r==null?void 0:r.notifyError)===void 0||r.notifyError;i.dataFilter=n=>{let a=JSON.parse(n);return a.RequestState===1?Ce(a,r.notifySuccess):JSON.stringify(ce(a,o,r==null?void 0:r.getUserFriendlyErrorMessage))},i.error=n=>{let a=JSON.parse(n.responseText||"{}");a.RequestState||ce(a,o,r==null?void 0:r.getUserFriendlyErrorMessage)}}}));return e._errorHandler=t=>{t&&!t.message&&(t.message=bt())},e}var Ct={};X(Ct,{default:()=>Y});var he={};async function Y(r){if(he[r])return await he[r];he[r]=C(r),he[r].catch(t=>{throw he[r]=null,t});let e=await he[r];return he[r]=null,e}var yi={sendRequest:C,handleError:ce,handleSuccess:Ce,handleUpload:vi,createDxDataSource:q,isErrorInfo:Qe,loadWithMultipleProtection:Ct};var G=r=>{throw new Error(`The required ${r?`${r} `:""} isn't created`)};var Dt={};X(Dt,{WindowResizeListener:()=>oe,bootstrapLayoutBreakpoints:()=>W,getUrlByMenuItemData:()=>de});var W={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}},ko=Object.getOwnPropertyNames(W).map(r=>W[r]),oe=class{constructor(e,t,i=100,o=ko){this.onWindowResizeListener=this.onWindowResize.bind(this);this.onResize=e,this.onLayoutBreakpointChanged=t,this.resizeDelay=i,this.layoutBreakpoints=o,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 i=this.currentLayoutBreakpoint;this.currentLayoutBreakpoint=t,this.emitBreakpointChanged({previousBreakpoint:i,currentBreakpoint:this.currentLayoutBreakpoint,originalEvent:e})}this.emitResizeEvent(e)}emitResizeEvent(e){var t;try{(t=this.onResize)==null||t.call(this,e)}catch(i){console.error(i)}}emitBreakpointChanged(e){var t;try{(t=this.onLayoutBreakpointChanged)==null||t.call(this,e)}catch(i){console.error(i)}}};function de(r){let{Area:e,Controller:t,Action:i,IsClickable:o}=r;if(o&&t)return encodeURI(e?`/${e}/${t}/${i}`:`/${t}/${i}`)}var B={isLegacyRender:!1};var Et=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.container=e.container,this.userAvatar=e.userAvatar,this.userName=e.userName,this.items=e.items,this.collapseBreakpoint=e.collapseBreakpoint||W.md,this.getDisplayedUserInfo=e.getDisplayedUserInfo||Et.defaultGetDisplayedUserInfo,this.onItemClick=e.onItemClick,this.windowResizeListener=new oe(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 G("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(i=>{var o;return((o=i.Text)==null?void 0:o.toLowerCase())===e});return(t==null?void 0:t.Badge)||null}setBadge(e,t){let i=this.items.find(o=>{var n;return((n=o.Text)==null?void 0:n.toLowerCase())===e});i&&(i.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;if(B.isLegacyRender?this.userAvatar?(e=document.createElement("img"),e.classList.add("header__icon-button-icon","header__icon-button-avatar"),e.src=this.userAvatar):(e=document.createElement("i"),e.classList.add("header__icon-button-icon","fas","fa-user")):(e=document.createElement("i"),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"),B.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 G("userInfoContainer");if(B.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 G("itemsContainer");this.clearItemsContainer(),this.items.forEach(e=>{let t=this.createItemElement(e,this.isMobileView);this.itemsContainer.appendChild(t)})}createItemElement(e,t){let i=this.createItemElementBase(e),o=document.createElement("a");if(o.classList.add(t?"nav-link":"dropdown-item"),o.href=e.Url||"javascript:void(0)",o.text=e.Text,e.OpenInNewPage&&(o.target="_blank"),this.attachEventsToItem(o,e),i.appendChild(o),e.Badge){let n=document.createElement("span");n.classList.add("isoz-badge"),n.classList.add("isoz-badge--circle"),n.classList.add(`isoz-badge--${e.Badge.Type||"information"}`),n.innerHTML=e.Badge.Text,o.appendChild(n)}return i}createItemElementBase(e){let t=document.createElement("li");return t.classList.add("nav-item"),t}attachEventsToItem(e,t){e.addEventListener("click",i=>this.onMenuItemClick({item:t,originalEvent:i}))}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,i,o;try{(t=this.onItemClick)==null||t.call(this,e),(o=(i=e.item).OnClick)==null||o.call(i,e)}catch(n){console.error(n)}}onLayoutBreakpointChanged(e){this.switchView(this.isMobileView)}async onMenuItemClick(e){this.emitItemClick(e),e.cancel&&e.originalEvent.preventDefault()}},me=Et;me.defaultGetDisplayedUserInfo=e=>`Welcome ${e}`;var Xe=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(i){console.error(i)}}};var De=class extends Xe{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||W.md,this.collapseIconName=e.collapseIcon||"fa-ellipsis-v",this.windowResizeListener=new oe(this.collapsingMode===3?this.onWindowResizeEventHandler:void 0,void 0,De.adaptivityCollapsingDelay)}render(){if(!this.root){if(this.renderRoot(),this.renderItems(),!this.root)return G("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=Tt(e.originalModel),e.active!==t&&this.applyStatesToItemElement(e.menuItemEl.firstElementChild,e)})}closeOpenedDropdown(e){this.itemActionMode==="hover"&&(this.root.classList.remove(De.HOVER_MODE_CSS_CLASS),$(e).one("mouseleave",()=>{this.root.classList.add(De.HOVER_MODE_CSS_CLASS)}))}forEachMenuItemRecursive(e,t){e.forEach(i=>{t(i),this.isNestedItemsOwnerItem(i)&&this.forEachMenuItemRecursive(i.items,t)})}renderRoot(){this.root=document.createElement("ul"),this.root.classList.add("navbar-nav","mr-auto"),this.itemActionMode==="hover"&&this.root.classList.add(De.HOVER_MODE_CSS_CLASS)}renderItems(){this.renderRootItems(),this.items.length&&this.collapsingMode!==0&&(this.root||G("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 G("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 G("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 i=t.querySelector(".nav-link");i instanceof HTMLElement&&this.setItemContentAsDropdownToggler(i);let o=this.createDropdownMenu(e);return t.appendChild(o),t}createRootItemElement(e){let t=document.createElement("li");t.classList.add("nav-item"),e.title&&t.setAttribute("title",e.title);let i=document.createElement("a");i.classList.add("nav-link"),i.href=e.url||"javascript:void(0)",i.text=e.text;let o=this.createItemIconElement(e);return o&&i.insertBefore(o,i.firstChild),this.applyStatesToItemElement(i,e),this.attachEventsToItem(i,e),t.appendChild(i),e.menuItemEl=t,t}createNestedSubMenuItemElement(e){let t=this.createNestedItem(e);t.classList.add("dropdown","dropdown-submenu");let i=t.querySelector(".dropdown-item");i instanceof HTMLElement&&this.setItemContentAsDropdownToggler(i);let o=this.createDropdownMenu(e);return t.appendChild(o),t}createNestedItem(e){let t=document.createElement("li");e.title&&t.setAttribute("title",e.title);let i=document.createElement("a");i.classList.add("dropdown-item"),i.href=e.url||"javascript:void(0)",i.text=e.text;let o=this.createItemIconElement(e);return o&&i.insertBefore(o,i.firstChild),this.applyStatesToItemElement(i,e),this.attachEventsToItem(i,e),t.appendChild(i),e.menuItemEl=t,t}createDropdownMenu(e){let t=document.createElement("ul");return t.classList.add("dropdown-menu"),e.items.forEach(i=>{let o;this.isNestedItemsOwnerItem(i)?o=this.createNestedSubMenuItemElement(i):o=this.createNestedItem(i),t.appendChild(o)}),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",i=>this.emitItemClick({item:t,originalEvent:i}))}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 i of e)t.insertBefore(i,t.firstElementChild),this.applyCollapsingViewForRootItem(i);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 i of e)t.insertBefore(i,t.firstElementChild),this.applyExpandedViewForRootItem(i);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,i=2){return e.left<t.right-i&&t.left+i<e.right&&e.top<t.bottom-i&&t.top+i<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 i=document.querySelectorAll(".dropdown-menu");for(let o of i)if(o!==e&&this.isDropdownRectsIntersect(o.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)}},Ee=De;Ee.HOVER_MODE_CSS_CLASS="navbar-nav_hover-action",Ee.adaptivityCollapsingDelay=50;var xi=(r,e)=>{var t;for(let i of r){if(i.Name===e)return i;if((t=i.Items)==null?void 0:t.length){let o=xi(i.Items,e);if(o)return o}}},wi=r=>{let e=r.Items;if(!e||!e.length){let i=de(r);return i?[i]:[]}let t=[];for(let i of e)t=t.concat(wi(i));return t},Tt=r=>{let e=window.location.pathname+window.location.search,t=wi(r);for(let i of t)if(new RegExp(`^.*${i.replace("?","\\?")}$`).test(e))return!0;return!1},Te=class{constructor(e,t,i,o,n){this.onMenuItemClickHandler=this.onMenuItemClick.bind(this);this.container=e,this.isGlobalMenu=i,this.items=t,this.onNavigationMenuItemClick=n,this.menu=new Ee({container:this.container,items:this.mapNavigationMenuItemModelToMenuItems(t),collapseBreakpoint:o,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 i=e.originalEvent.target;this.menu.closeOpenedDropdown(i)}}emitNavigationMenuItemClick(e){var t,i,o;try{(t=this.onNavigationMenuItemClick)==null||t.call(this,e),(o=(i=e.item).OnClick)==null||o.call(i,e)}catch(n){console.error(n)}}mapNavigationMenuItemModelToMenuItems(e){return e.map(t=>({text:t.Name,icon:t.Icon,items:t.Items?this.mapNavigationMenuItemModelToMenuItems(t.Items):void 0,url:de(t),hidden:t.Visible===!1,active:Tt(t),disabled:t.Disabled,title:t.Description,originalModel:t}))}mapMenuItemClickEventArgsToNavigationMenuItemClickEventArgs(e){let t=xi(this.items,e.item.text);return t?{originalEvent:e.originalEvent,cancel:!1,item:T(b({},t),{isGlobal:this.isGlobalMenu})}:null}};var ge="iszolea-ui|logo-settings";var St=class{constructor(e,t){this.$container=e,this.dataSource=t}initWidget(){return this._initWidget(this.dataSource)}updateData(){return window.sessionStorage.removeItem(ge),this.$imageElement.remove(),this.$titleContainer.remove(),this._initWidget(this.dataSource)}_initWidget(e){let t=window.sessionStorage.getItem(ge);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 C(this.dataSource,"post").done(t=>{let i={};i.applicationName=t.ApplicationName,i.businessName=t.BusinessName,i.logoImage=t.LogoImage,i.landingPageLogo=t.LandingPageLogo,i.description=t.Description,window.sessionStorage.setItem(ge,JSON.stringify(i)),this._createLogoMarkup(i)})}_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 Se=class{constructor(e){this.onLayoutBreakpointChangedListener=this.onLayoutBreakpointChanged.bind(this);this.desktopContainer=e.desktopContainer,this.mobileContainer=e.mobileContainer,this.collapseBreakpoint=e.collapseBreakpoint||W.md,this.onSwitch=e.onSwitch,this._value=e.startValue!==void 0?e.startValue:!0,this.windowResizeListener=new oe(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 Ye=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:(i,o)=>{o.addClass("header-search-results-tree-list");let n=$("<div>").dxTreeList({dataSource:this.getDataSourceForSearch(this.getMenuDataSource()),hoverStateEnabled:!0,focusedRowEnabled:!0,editing:{allowAdding:!1,allowUpdating:!1,allowDeleting:!1},noDataText:"No results found",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,d=this.searchResultsTreeList.option("focusedRowKey");if(d!=null)switch(s.key){case"Enter":let h=this.searchResultsTreeList.getNodeByKey(d).data;this.navigateToMenuItem(h);break;case"ArrowRight":case" ":this.searchResultsTreeList.expandRow(d);break;case"ArrowLeft":this.searchResultsTreeList.collapseRow(d);break;case"Escape":setTimeout(()=>this.searchDropDown.focus());break}}});return this.searchResultsTreeList=n.dxTreeList("instance"),n},dropDownOptions:{position:{of:".search-dropdown",my:"top",at:"bottom",offset:{x:149,y:4}},width:518,animation:{show:{duration:0},hide:{duration:0}},closeOnOutsideClick:!1,onShown:i=>{this.searchDropDown.focus()}},onFocusIn:i=>{i.component.element().addClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged(),this.checkSearchResutPopupVisibility(i.component.element().find("input.dx-texteditor-input").val())},onFocusOut:i=>{i.component.element().find("input.dx-texteditor-input").val()||(i.component.element().removeClass("focused"),this.onDimensionsChanged&&this.onDimensionsChanged())},onKeyUp:i=>{setTimeout(()=>{let o=i.event,n=i.component.element().find("input.dx-texteditor-input").val();this.checkSearchResutPopupVisibility(n),this.searchResultsTreeList.searchByText(n),["Tab","Enter","ArrowDown","ArrowUp"].some(s=>s===o.key)&&this.searchResultsTreeList.focus(this.searchResultsTreeList.getCellElement(0,"Name"))})},onKeyDown:i=>{i.event.key==="Escape"&&this.closeSearchDropDown()},onValueChanged:i=>{this.checkSearchResutPopupVisibility(i.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 i;let t=de(e);if(t){this.closeSearchDropDown();let o={item:e,originalEvent:null,cancel:!1};if((i=this.onMenuItemClick)==null||i.call(this,o),o.cancel)return;this.onMenuItemOpened&&this.onMenuItemOpened({menuItem:e}),window.location.href=t}}closeSearchDropDown(){var e,t,i;this.searchResultsTreeList.option("focusedRowKey",void 0),(e=this.searchDropDown)==null||e.option("value",""),(t=this.searchDropDown)==null||t.focus(),(i=this.searchDropDown)==null||i.blur()}checkSearchResutPopupVisibility(e){var t,i;e?(t=this.searchDropDown)==null||t.open():(i=this.searchDropDown)==null||i.close()}getDataSourceForSearch(e){if(!e)return;let t=i=>{let o=(n,a)=>{a.Items&&a.Items.length&&(a.Items=a.Items.reduce(o,[]));let s=a.Visible===void 0||a.Visible===null||a.Visible===!0,d=a.Disabled===!0;return s&&!d&&n.push(T(b({},a),{isGlobal:i})),n};return o};if(e.personalItems&&e.personalItems.length){let i={Name:"Global Menu",Id:-1,isGlobal:!0,Type:2,Items:e.gloabalItems.reduce(t(!0),[])},o={Name:"Personal Menu",Id:-2,isGlobal:!1,Type:2,Items:e.personalItems.reduce(t(!1),[])};return this.getIsGlobalMenuShown()?[i,o]:[o,i]}else return e.gloabalItems.reduce(t(!0),[])}};var Mt={};X(Mt,{EventEmitter:()=>ne,getGeneralUserFriendlyErrorMessage:()=>je});var ne=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,i=>{t(i),this.off(e,t)})}emit(e,t=null){let i=this.eventListeners[e];if(i)for(let o of i)o&&o.call(this,t)}off(e,t){let i=this.eventListeners[e];if(i){let o=[];for(let n of i)n!==t&&o.push(n);this.eventListeners[e]=o}}addHandler(e,t,i){let o=()=>{t(i(),()=>this.off(e,o))};this.on(e,o)}};var $o="iszolea-ui|header-data-cache",Ii="iszolea-ui|show-global-menu",Ft=r=>`${$o}${r?`|${r}`:""}`,ze=class extends ne{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,i,o,n,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)||W.md,this.$partialViewPlaceHolder=(i=e.menuSettings)==null?void 0:i.partialViewPlaceHolder,this.updateUrlAfterPartialLoading=(o=e.menuSettings)==null?void 0:o.updateUrlAfterPartialLoading,this.onPartialViewLoaded=(n=e.menuSettings)==null?void 0:n.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 i=e.originalEvent.state;i&&i.isLoadedByAjax?(this.loadPageViaAjaxCore(i.url),this.updateMenuSwitcherState(i.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 G("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 St($(this.elements.logoContainer),this.logoSettings),this.logo.initWidget()}renderSearch(){if(!!this.displaySearch){if(!this.elements.contentContainer)return G("contentContainer");this.search=new Ye({$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 G("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 G("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 G("contentContainer");let t=this.getIsGlobalMenuShown();this.navigationMenu?this.navigationMenu.updateData(e,t):(this.navigationMenu=new Te(this.elements.contentContainer,e,t,this.collapseBreakpoint,this.onNaviagtionMenuItemClickHandler),this.navigationMenu.render())}onUserMenuItemClick(e){var i,o;if((o=(i=this.menuSettings).onUserMenuClick)==null||o.call(i,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 i,o;if((o=(i=this.menuSettings).onNavigationMenuItemClick)==null||o.call(i,e),e.cancel||this.isKeyPressed(e.originalEvent))return;this.updateMenuSwitcherState(e.item.isGlobal);let t=de(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 i={isLoadedByAjax:!0,isMenuSwitcherGlobal:!!((t=this.menuSwitcher)==null?void 0:t.value),url:e};window.history.pushState(i,null,e)}return this.loadPageViaAjaxCore(e),this.navigationMenu.updateActiveItemsState(),!0}return!1}checkIsLocalUrl(e){return!ze.GLOBAL_URL_REGEX.test(e)}checkIsPartialPageContent(e){return e&&!ze.DOCTYPE_MARKER_REGEX.test(e)}loadPageViaAjaxCore(e){var o;window.isIsozServerException=!1,this.loadPanel.show();let t=new URL(window.location.origin+e);t.searchParams.append("isozPartialLoading","true");let i=t.toString();(o=this.beforePartialViewLoading)==null||o.call(this),$.ajax(i,{dataType:"html"}).always((n,a)=>{var s;a!=="success"||!this.checkIsPartialPageContent(n)?window.location.href=e:(this.$partialViewPlaceHolder.html(n),(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 G("contentContainer");if(this.userMenu)this.userMenu.updateItems(e);else{let i=document.createElement("div");i.classList.add("dropdown-divider"),this.elements.contentContainer.appendChild(i),this.userMenu=new me({container:this.elements.contentContainer,userName:this.menuSettings.userName,userAvatar:this.menuSettings.userAvatar,items:e,collapseBreakpoint:this.collapseBreakpoint,onItemClick:this.onUserMenuItemClickHandler,getDisplayedUserInfo:this.menuSettings.getDisplayedUserInfo}),this.userMenu.render()}}}renderMenuSwitcher(){var e,t,i,o;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(),(i=this.elements.menuSwitcherMobileContainer)==null||i.remove(),this.menuSwitcher=void 0,this.elements.menuSwitcherDesktopContainer=void 0,this.elements.menuSwitcherMobileContainer=void 0);return}if(!this.elements.contentContainer)return G("contentContainer");if(!this.elements.toggleButtonContainer)return G("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 Se({desktopContainer:this.elements.menuSwitcherDesktopContainer,mobileContainer:this.elements.menuSwitcherMobileContainer,collapseBreakpoint:this.collapseBreakpoint,startValue:this.isShowGlobalMenu(),onSwitch:n=>{var s,d;window.localStorage.setItem(Ii,JSON.stringify(n));let a=this.getNavigationItems(this.data);(s=this.search)==null||s.setSearchText(""),(d=this.search)==null||d.reloadMenuItems(),this.renderNavigationMenu(a||[]),this.updateContentAndTogglerVisible()}}),this.menuSwitcher.render(),this.emit(ze.MENU_SWITCHER_INITIALIZED_EVENT),this.elements.contentContainer.insertBefore(this.elements.menuSwitcherDesktopContainer,(o=this.userMenu)==null?void 0:o.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(i){$(i).animate({left:$(".load").width()},2e3,()=>{$(i).css("left",`${-$(i).width()}px`),t(i)})}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 o,n;if(!this.elements.contentContainer&&!this.elements.toggleButton)return;let e=this.getNavigationItems(this.data),t=this.getUserItems(this.data),i=e&&e.length>0||((o=this.menuSettings)==null?void 0:o.userName)||t&&t.length>0;this.elements.toggleButton.classList.toggle("d-none",!i),this.elements.contentContainer.classList.toggle("d-none",!i),(n=this.search)==null||n.setVisible(!!i)}async init(){!this.menuSettings||(this.data=await this.loadData(),!!this.elements.root&&this.rerenderMenus())}async loadData(){var t,i,o,n,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),(i=this.$loadBar)==null||i.show(),e=await C(this.menuSettings.data),this.cacheAppMenuModel(e),(o=this.search)==null||o.reloadMenuItems(),e}finally{(n=this.search)==null||n.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(Ft(this.menuSettings.userName));return e===null?e:JSON.parse(e)}cacheAppMenuModel(e){return this.menuSettings?(window.sessionStorage.setItem(Ft(this.menuSettings.userName),JSON.stringify(e)),!0):!1}clearAppMenuModelCache(){return this.menuSettings?(window.sessionStorage.removeItem(Ft(this.menuSettings.userName)),!0):!1}isShowGlobalMenu(){let e=window.localStorage.getItem(Ii),t=e===null?e:JSON.parse(e);return t===null||t}},fe=ze;fe.MENU_SWITCHER_INITIALIZED_EVENT="menu-switcher-initialized-event",fe.GLOBAL_URL_REGEX=new RegExp("^(?:[a-z]+:)?//","i"),fe.DOCTYPE_MARKER_REGEX=new RegExp("!DOCTYPE html>","i");var Uo=["default","string","number","date","boolean","object","datetime"],Me=Uo;var Fe=(i=>(i[i.None=0]="None",i[i.AddNewRows=1]="AddNewRows",i[i.ReplaceAllRows=2]="ReplaceAllRows",i))(Fe||{});var Re=(s=>(s.Default="default",s.String="string",s.Number="number",s.Date="date",s.Boolean="boolean",s.Object="object",s.Datetime="datetime",s))(Re||{});var pe=[];function Vo(r,e){return Math.floor(Math.random()*(e-r+1))+r}function Ze(r,e,t=5,i=2){let o=e.sort((n,a)=>.5-Math.random());r.addClass("iszolea-background-image-viewer").css({transition:`background-image ${i}s ease-in-out 0s`}),o.forEach((n,a)=>{let s=new Image;s.addEventListener("load",()=>{pe.push(n),pe.length===1&&No(r,t)}),window.setTimeout(()=>{s.src=n},a*100)})}function Ao(r){if(pe.length===1)return 0;if(pe.length===2)return r===0?1:0;let e=Vo(0,pe.length-1);return e===r?e===pe.length-1?0:e+1:e}function No(r,e){let t=0;bi(r,t),window.setInterval(()=>{pe.length!==1&&(t=Ao(t),bi(r,t))},e*1e3)}function bi(r,e){r.css("background-image",`url("${pe[e]}")`)}var Rt=(i=>(i[i.Success=0]="Success",i[i.Warning=1]="Warning",i[i.Error=2]="Error",i))(Rt||{}),_o={year:"local"},Pe=class{constructor(e){this.indicatorClassByStatus=new Map([[0,"footer__indicator_type_success"],[1,"footer__indicator_type_warning"],[2,"footer__indicator_type_error"]]);let t=b(b({},e),_o);this.$root=t.$root,this.name=t.name!==!1?t.name:void 0,this.licence=t.licence!==!1?t.licence:void 0,this.year=Pe.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 i=this.indicatorsByName.get(e);i&&this.setIndicatorValueCore(i,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 i=$("<span>").addClass("footer__indicator").appendTo(this.$root);this.setIndicatorValueCore(i,t.value),this.indicatorsByName.set(t.name,i),t.getValue&&t.getValueIntervalMs&&setInterval(async()=>{let o=await t.getValue();this.setIndicatorValueCore(i,o)},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 et=null,Ci=[];window.addEventListener("resize",()=>{et&&window.clearTimeout(et),et=window.setTimeout(()=>{Ci.forEach(r=>r()),et=null},100)});function tt(r){Ci.push(r)}var He={main:".main",header:".main .header",content:".content-area",panel:".panel",footer:"footer"},Pt=null,it=null,ot=null;function Di(r){$(He.content).height(it),r.option("height",ot)}function zo(r,e=!1,t=!1){let i=$(He.main),o=$(He.header),n=$(He.content),a=$(He.footer),s=n.outerHeight()-n.height();it=i.height()-o.height()-a.outerHeight()-s,Pt=$(window).height();let d=n.children(),h=0;if(!e){let c=r.element();d.each((v,g)=>{let I=$(g);I.is(c)||I.has(c[0]).length||(h+=I.is(":visible")&&I.css("position")!=="absolute"?I.outerHeight(!0):0)})}ot=it-h,t&&(ot+=r.element().outerHeight()),Di(r)}function Ho(r){let e=$(window).height(),t=e-Pt;it+=t,ot+=t,Pt=e,Di(r)}function Z(r,e=!1,t=!1){zo(r,e,t),tt(()=>Ho(r))}var Wo="isoz-icon-disabled",H={lg:"iszolea-lg",md:"iszolea-md",sm:"iszolea-sm"},_=class{static setElementMiddleSize(e){e.addClass(H.md)}static setElementSmallSize(e){e.addClass(H.sm)}static setWidgetMiddleSize(e){_.setWidgetSize(e,H.md)}static setWidgetSmallSize(e){_.setWidgetSize(e,H.sm)}static getIconClass(e,t,i=16){let o=`isoz isoz-icon-${e}-${i}`;return t?`${o} ${Wo}`:o}static setWidgetSize(e,t){e&&e.option("elementAttr",{class:t})}};var Jo={title:"isoz-title"},We=class{static getToolbarTitleTemplateItem(e,t){return{location:"before",template:()=>{let i=$(`<span class="${Jo.title}">${e}</span>`);return t&&i.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Report details")),i}}}};var Ei={title:"isoz-title",header:"isoz-toolbar-header",dropDownButton:"dx-dropdownmenu-button"};function Ti(r,e={title:"",description:"",options:{}}){let{title:t="",description:i="",options:o={}}=e,{items:n=[],elementAttr:a={}}=o;n.forEach(d=>{let h={class:H.md};if(d.options){let{editorOptions:c}=d.options;c||(c={}),c.elementAttr=h,d.options.elementAttr=h,d.options.editorOtions=c}});let s=d=>{d.element.find(`.${Ei.dropDownButton}`).addClass(H.md),(o==null?void 0:o.onContentReady)&&o.onContentReady(d)};return $(`${r}`).dxToolbar(T(b({},o),{items:[We.getToolbarTitleTemplateItem(t,i),...n],onContentReady:s,elementAttr:T(b({},a),{class:Ei.header})})).dxToolbar("instance")}var Ko={panel:".panel-body"};function Si(r){let e=r.element(),t=r.element().parents(Ko.panel).eq(0),i=t.position().top,o=t.height(),n=t.outerHeight()-t.height(),a=e.position().top,s=o-(a-i)+n/2;r.option("height",s)}function Bt(r){Si(r),tt(()=>Si(r))}function Mi(r,e,t=!1){let i=Ot(r,e);return e.height||(t?Bt(i):Z(i)),i}function Ot(r,e){let t=r.dxDataGrid(e).dxDataGrid("instance");return t.element().addClass(Q.dxDataGrid),t}function Fi(r,e,t=!1){let i=(typeof r=="string"?$(r):r).dxTreeList(e).dxTreeList("instance");return i.element().addClass(Q.dxDataGrid),e.height||(t?Bt(i):Z(i)),i}var Pi=ci(Ri());function kt(r){return e=>{let t=new window.ExcelJS.Workbook,i=t.addWorksheet(r);DevExpress.excelExporter.exportDataGrid({worksheet:i,component:e.component,customizeCell:o=>{let n=o.excelCell;n.font={name:"Arial",size:12},n.alignment={horizontal:"left"}}}).then(function(){t.xlsx.writeBuffer().then(function(o){(0,Pi.default)(new Blob([o],{type:"application/octet-stream"}),`${r}.xlsx`)})}),e.cancel=!0}}var Bi=r=>r.slice(2).toLowerCase(),Qo=r=>{let e=Bi(r);return{searchPanel:`.dx-${e}-search-panel`,toolbarEditButton:`.dx-${e}-toolbar-button.dx-edit-button`,toolbarExportButton:`.dx-${e}-export-button .dx-button`,selectCheckBox:".dx-select-checkbox"}};function Oi(r){let e=B.isLegacyRender?qo(r):Li(r);return(r.summaryColumn||r.showSummaryInColumn)&&(e.summary={totalItems:[{column:r.summaryColumn||r.showSummaryInColumn,showInColumn:r.showSummaryInColumn||r.summaryColumn,summaryType:"count"}]}),e.export={enabled:!!r.exportFileName,allowExportSelectedData:!0},B.isLegacyRender||(e.groupPanel={visible:!0}),e}function Gi(r){let e=Li(r);return e.selection={mode:"none"},e}function Li(r){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 qo(r){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 jo(r,e){let t=(i,o)=>i.find(n=>n.name===o);if(r==null?void 0:r.items){let{items:i}=r;if(e){let s=t(i,e);s&&(s.options.type="default")}let o=t(i,"saveButton");o&&(o.showText="always",o.options.text="Save");let n=t(i,"revertButton");n&&(n.showText="always",n.options.text="Discard");let a=t(i,"refresh");a&&(a.showText="always",a.options.text="Refresh",a.options.hint="Reload Data")}}function Xo(r){var n,a,s;let e=r.option("summary.totalItems"),t=(n=e==null?void 0:e.filter(d=>d.summaryType==="count")[0])==null?void 0:n.column,i=t&&r.getVisibleColumns().findIndex(d=>d.dataField===t);if(!i){let d=r.option("selection");i=d&&d.mode!=="none"?r.getVisibleColumns().findIndex(c=>!!c.dataField):0}let o=(a=r.getVisibleColumns()[i])==null?void 0:a.dataField;o&&t!==o&&r.option("summary",{totalItems:[{column:(s=r.getVisibleColumns()[i])==null?void 0:s.dataField,summaryType:"count"}]})}function nt(r,e){let t=Qo(r),i=!1;return{onCellPrepared:o=>{var n,a;B.isLegacyRender||o.rowType==="header"&&o.cellElement.css("text-align","center"),((n=e.options)==null?void 0:n.onCellPrepared)&&((a=e.options)==null||a.onCellPrepared(o))},onContentReady:o=>{var a;let n=o.component;e.disableSummaryColumnDetection||Xo(n),i||(i=!0,setTimeout(()=>{let s=n.getScrollable();s&&s.scrollTo({top:0})}));for(let s=0;s<n.columnCount();s++){let d=n.columnOption(s,"dataType");(e.setDefaultColumnWidth||e.setDefaultColumnWidth===void 0)&&(n.columnOption(s,"width")||(d==="boolean"&&n.columnOption(s,"width","45px"),d==="datetime"&&n.columnOption(s,"width","135px"),d==="date"&&n.columnOption(s,"width","140px"))),B.isLegacyRender||((d==="datetime"||d==="date")&&n.columnOption(s,"alignment","right"),d==="date"&&n.columnOption(s,"format","dd MMM yyyy"),d==="datetime"&&n.columnOption(s,"format","HH:mm, dd MMM yyyy"))}B.isLegacyRender||(e.buttonsSize==="sm"?_.setWidgetSmallSize($(t.searchPanel).dxTextBox("instance")):_.setWidgetMiddleSize($(t.searchPanel).dxTextBox("instance")),_.setElementSmallSize(o.component.element().find(t.selectCheckBox)),$(t.toolbarExportButton).length>0&&(e.buttonsSize==="sm"?_.setWidgetSmallSize($(t.toolbarExportButton).dxButton("instance")):_.setWidgetMiddleSize($(t.toolbarExportButton).dxButton("instance")))),((a=e.options)==null?void 0:a.onContentReady)&&e.options.onContentReady(o)},onToolbarPreparing:o=>{var v;let{toolbarOptions:n={}}=o,a=o.component,{items:s=[]}=n;B.isLegacyRender?(e.title&&o.toolbarOptions.items.unshift({location:"before",template(){let g=$("<h2 />").addClass("grid-header").text(e.title);return e.headerDescription&&g.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),g}}),s.forEach(g=>{g.widget==="dxButton"&&g.name==="applyFilterButton"&&(g.options.visible=!1)})):(e.title&&s.unshift(We.getToolbarTitleTemplateItem(e.title,e.headerDescription)),s.filter(g=>{if(g.widget==="dxButton"){if(g.name==="applyFilterButton"){g.options.visible=!1;return}let I=e.buttonsSize==="sm"?16:24;switch(g.name){case"addRowButton":g.options.icon=_.getIconClass("plus",!1,I);break;case"saveButton":g.options.icon=_.getIconClass("save",!1,I);break;case"revertButton":g.options.icon=_.getIconClass("close",!1,I);break;default:g.options.icon=void 0;break}g.options.elementAttr||(g.options.elementAttr={}),g.options.elementAttr.class=e.buttonsSize==="sm"?H.sm:H.md,g.showText="always"}}),jo(n,e.toolbarAccentButtonName),e.toolbarItems&&s.push(...e.toolbarItems),n.elementAttr={class:"isoz-toolbar-header"});let d=o.toolbarOptions.items.findIndex(g=>g.name==="saveButton"),h=o.toolbarOptions.items.findIndex(g=>g.name==="searchPanel"),c=-1;d>-1?c=d:h>-1?c=h:c=o.toolbarOptions.items.length,o.toolbarOptions.items.splice(c,0,{location:"after",widget:"dxButton",name:"refresh",options:{icon:"refresh",height:B.isLegacyRender?30:void 0,elementAttr:{class:`dx-datagrid-toolbar-button ${e.buttonsSize==="sm"?H.sm:H.md}`},stylingMode:B.isLegacyRender?"text":"contained",onClick:()=>a==null?void 0:a.refresh(),onContentReady:B.isLegacyRender?g=>{g.element.find(".dx-button-content").css({paddingTop:6,paddingBottom:6})}:void 0}}),((v=e.options)==null?void 0:v.onToolbarPreparing)&&e.options.onToolbarPreparing(o)},onEditorPreparing:o=>{var n;switch(B.isLegacyRender||(o.editorOptions=T(b({},o.editorOptions),{elementAttr:{class:H.md}}),o.editorName==="dxSelectBox"&&(o.editorOptions.dropDownOptions=T(b({},o.editorOptions.dropDownOptions),{onShowing:a=>{let s=Bi(r);a.component._$popupContent.addClass(`isoz-${s}-selectbox-popup`)}})),o.editorName==="dxCheckBox"&&_.setElementSmallSize(o.editorElement)),o.parentType){case"filterRow":let a=d=>{o.element&&o.element.find(".dx-apply-button").trigger("dxclick")};o.editorOptions.onEnterKey=a,o.editorOptions.onFocusOut=a;break;case"searchPanel":let s=d=>{o.component.searchByText(d.component.option("value"))};o.editorOptions.onValueChanged=()=>{},o.editorOptions.onEnterKey=s,o.editorOptions.onFocusOut=s;break}((n=e.options)==null?void 0:n.onEditorPreparing)&&e.options.onEditorPreparing(o)},onContextMenuPreparing:o=>{var n,a,s;if(!B.isLegacyRender&&o.target==="content"&&!!e.exportFileName&&(o.items||(o.items=[]),o.items.push({text:"Export all data",onItemClick:()=>{o.component.exportToExcel(!1)},icon:"xlsxfile"}),((n=e.options.selection)==null?void 0:n.mode)!=="none")){let d=o.component.getSelectedRowKeys();o.items.push({text:"Export selected rows",onItemClick:()=>o.component.exportToExcel(!0),icon:"exportselected",disabled:!d||!d.length})}((a=e.options)==null?void 0:a.onContextMenuPreparing)&&((s=e.options)==null||s.onContextMenuPreparing(o))},onExporting:e.exportFileName?kt(e.exportFileName):void 0}}function U(r,e){let t=Oi(e),i=$.extend({},t,e.options),o=nt("dxDataGrid",$.extend(!0,{},e,{options:i}));return i=$.extend(!0,{},i,o),e.isFullScreen||e.isFullScreen===void 0?Mi(r,i,e.inPanelGrid):Ot(r,i)}function ki(r,e,t={},i,o){return U($(`#${r}`),{options:e,exportFileName:t.exportFileName,inPanelGrid:t.inPanelGrid,showSummaryInColumn:t.showSummaryInColumn,summaryColumn:t.summaryColumn,headerDescription:o,title:i})}function $i(r,e={}){let t=Gi(e),i=$.extend({},t,e.options),o=nt("dxTreeList",$.extend(!0,{},e,{options:i}));return i=$.extend(!0,{},i,o),Fi(r,i,e.inPanelGrid)}var At={};X(At,{show:()=>Vt});var Vi=ci(Ui());var rt={height:300,width:300};function Yo(r,e){r.attr("src",e)}function Zo(r){let e=$("<div>").addClass("avatar-popup__dropzone"),t=$("<div>").addClass("avatar-popup__crop-container").appendTo(e),i=$("<img />").prependTo(t);Yo(i,r);let o=new Vi.default(i[0],{aspectRatio:1,startSize:[90,90]});return{$content:e,cropper:o}}function en(r,e,t){ie({title:"Update profile picture",showTitle:!0,dragEnabled:!1,resizeEnabled:!1,showCloseButton:!0,closeOnOutsideClick:!1,maxWidth:1024,onInitialized:i=>{i.component&&i.component.option("fullScreen",window.innerWidth<=1024)}},r,{text:"Update",onClick:i=>{let o=e.getValue(),n=$("<canvas>").attr("height",rt.height).attr("width",rt.width),a=n[0].getContext("2d"),s=r.find("img.croppr-image")[0];a.drawImage(s,o.x,o.y,o.width,o.height,0,0,rt.width,rt.height);let d=n[0].toDataURL("image/jpeg",.9);t(d),i()}},{text:"Cancel",onClick:i=>i()})}function Vt(r,e){let t=Zo(r);en(t.$content,t.cropper,e)}var Ai=r=>new Promise((e,t)=>{try{let i=new FileReader;i.onload=()=>{let o=i.result;e(typeof o=="string"?o:null)},i.readAsDataURL(r)}catch(i){t(i)}});var Nt=10,_t=class{constructor(e,t,i,o){this.accountSettingsData=i,this.currentUserInfo=o,this._$rootElement=e,this.formAction=t}render(){this.renderUploader(this.$rootElement),this.renderAccountSettingsForm(this.$rootElement)}get $rootElement(){if(!this._$rootElement)throw new Error("The root element is undefined");return this._$rootElement}renderUploader(e){this.avatarUploader=$("<div>").addClass("avatar-popup__uploader").dxFileUploader({multiple:!1,uploadMode:"useForm",accept:"image/*",visible:!1,maxFileSize:Nt*1e6,onValueChanged:t=>{if(!t.component||!t.value)return;let i=t.value[0],o=t.component.option("maxFileSize")||Nt;if(!i||i.size>o){DevExpress.ui.notify(`File size should be less than ${Nt} MB. Please select another file`,"error",5e3);return}Ai(i).then(n=>{Vt(n,a=>{var s,d;(s=this.accountSettingsForm)==null||s.updateData("Avatar",a),(d=this.accountSettingsForm)==null||d.repaint()})}).catch(n=>DevExpress.ui.notify(n,"error",3e3))}}).appendTo(e).dxFileUploader("instance")}renderAccountSettingsForm(e){var t;this.accountSettingsForm||(this.accountSettingsForm=$("<form />").attr("action",this.formAction).attr("method","post").addClass("account-settings__form").addClass("form-content").appendTo(e).dxForm(this.getFormOptions()).dxForm("instance"),((t=this.accountSettingsData)==null?void 0:t.HasChanges)&&!this.accountSettingsData.ErrorMessage&&setTimeout(()=>Ni.widgets.notify("Changes have been saved",!0),500))}getFormOptions(){return{formData:this.accountSettingsData,minColWidth:200,labelLocation:"top",alignItemLabels:!0,showValidationSummary:!0,items:[{itemType:"group",colCount:16,items:[{colSpan:6,caption:"Profile Picture",itemType:"group",items:[{itemType:"simple",label:{visible:!1},dataField:"Avatar",template:e=>{var n;let t=$("<div>").addClass("account-settings__avatar-view-container"),i=$("<div>").addClass("account-settings__avatar");$("<div>").add(t).add($("<div>").addClass("account-settings__avatar-button").dxButton({width:200,type:"default",icon:"photo",text:"Upload new image",onInitialized:a=>this.avatarUploader&&this.avatarUploader.option("dialogTrigger",a.element)})).appendTo(i);let o=e.editorOptions.value||((n=this.currentUserInfo)==null?void 0:n.UserAvatar);return o?($("<img>").addClass("account-settings__avatar-view").attr("src",o).appendTo(t),e.editorOptions.value&&$("<input>").addClass("account-settings__avatar-input").attr("type","text").attr("name","Avatar").appendTo(i).val(e.editorOptions.value)):$("<i>").addClass(["account-settings__avatar-view-default","fas","fa-user"]).appendTo(t),i}}]},{itemType:"empty",colSpan:1},{colSpan:9,caption:"Account Details",itemType:"group",items:[{itemType:"simple",dataField:"ErrorMessage",label:{visible:!1},template:e=>{let t=e&&e.editorOptions&&e.editorOptions.value;return t&&$("<div />").text(t).addClass("error-message")}},{itemType:"simple",dataField:"UserName",label:{text:"Username"},validationRules:[{type:"required",message:"Username is required"}]},{itemType:"group",colCount:2,items:[{itemType:"simple",dataField:"FirstName",label:{text:"First Name"},validationRules:[{type:"required",message:"First Name is required"}]},{itemType:"simple",dataField:"LastName",label:{text:"Last Name"},validationRules:[{type:"required",message:"Last Name is required"}]}]},{itemType:"simple",dataField:"PhoneNumber",label:{text:"Phone Number"}},{itemType:"simple",dataField:"Email",label:{text:"Email"},validationRules:[{type:"required",message:"Email is required"},{type:"email",message:"Please use a valid email address"}]},{itemType:"simple",cssClass:"account-settings__password-area",template:()=>$("<div />").css("font-weight","bold").text("Change Password")},{itemType:"simple",dataField:"OldPassword",label:{text:"Current password"},editorOptions:{mode:"password"},validationRules:[{type:"custom",reevaluate:!0,validationCallback:e=>{var t,i;return((i=(t=this.accountSettingsForm)==null?void 0:t.getEditor("NewPassword"))==null?void 0:i.option("value"))?!!e:!0},message:"Old password is required"}]},{itemType:"simple",dataField:"NewPassword",label:{text:"New password"},editorOptions:{mode:"password",inputAttr:{autocomplete:"new-password"}}},{itemType:"simple",dataField:"NewPasswordRepeat",label:{text:"Confirm new password"},editorOptions:{mode:"password"},validationRules:[{type:"custom",reevaluate:!0,validationCallback:e=>{var t,i;return(((i=(t=this.accountSettingsForm)==null?void 0:t.getEditor("NewPassword"))==null?void 0:i.option("value"))||"")===e.value},message:"Password mismatch"}]},{itemType:"button",horizontalAlignment:"right",cssClass:"account-settings__submit-btn",buttonOptions:{text:"Save Changes",type:"success",useSubmitBehavior:!0,width:200}}]}]}]}}};var zt={};X(zt,{createConfirm:()=>tn});function tn(r){let e=$.Deferred(),i=$("<div/>").appendTo(window.document.body).dxPopup({showTitle:!1,height:140,width:370,contentTemplate:o=>{o.addClass("iszolea-dx-confirm"),$("<b/>").addClass("message").text(r).appendTo(o);let n=$("<div/>").addClass("buttons").appendTo(o);$("<div/>").dxButton({text:"Delete",type:"danger",onClick:()=>{i.hide(),e.resolve(!0)}}).appendTo(n),$("<div/>").dxButton({text:"Cancel",onClick:()=>{i.hide(),e.resolve(!1)}}).appendTo(n)},onHidden:()=>{i.dispose(),i.element().remove()}}).dxPopup("instance");return i.show(),e}var Ht={};X(Ht,{createLanding:()=>on});function on(r,e,t,i={enabled:!1}){nn(e).then(o=>{rn(r,o,t,i)})}function nn(r){let e=$.Deferred();if(typeof r=="string"){let t=window.sessionStorage.getItem(ge);t?e.resolve(JSON.parse(t)):C(r,"post").done(i=>{let o={applicationName:i.ApplicationName,businessName:i.BusinessName,landingPageLogo:i.LandingPageLogo,logoImage:i.LogoImage,description:i.Description};window.sessionStorage.setItem(ge,JSON.stringify(o)),e.resolve(o)})}else e.resolve(r);return e}function rn(r,e,t,i){let o=$("<div />").addClass("iszolea-landing-page").appendTo(r),n=$("<div />").addClass("landing-container").appendTo(o);i.enabled?o.addClass("photo-gallery-mode"):(o.addClass("default-mode"),n=o),$("<div />").addClass("logo-container").appendTo(n).append($("<img />").attr("src",e.landingPageLogo).addClass("logo-large").appendTo(n),$("<span />").addClass("business-name").text(e.businessName).appendTo(n)),$("<h2 />").text(`Welcome to ${e.description}`).appendTo(n),t&&$("<div />").addClass("sign-in-button").append($("<div />").dxButton({text:"Sign In",width:B.isLegacyRender?void 0:"140px",type:"default",onClick:()=>{window.sessionStorage.clear(),window.location.href=`/Home/Login?returnUrl=${encodeURIComponent(window.location.href.toString())}`}})).appendTo(n),i.enabled&&Ze(i.$container||o,i.imageUrls||[],i.imgChangeIntervalSec||8,i.transitionTimeSec||2)}var Wt={};X(Wt,{createAccessDeniedToReport:()=>an});function an(r,e,t){let i=$("<div>").addClass("access-denied-to-report-page").appendTo(r);if($("<h2>").addClass("error-text").text("Access denied to the report").appendTo(i),e&&e.length){let o=e.map(n=>$("<span>").addClass("role").text(n));$("<p>").text("Required roles for report: ").append(o).appendTo(i)}if(t&&t.length){let o=t.map(n=>$("<span>").addClass("role").text(n));$("<p>").text("Required roles for db connection: ").append(o).appendTo(i)}}var ni={};X(ni,{default:()=>ye});function J(r,e){let t=$("<p/>").html(e).text(),i=$("<div>",{class:"report-details-popover"}).html(t).appendTo(document.body);return $(i).dxPopover({target:r,showEvent:"dxclick",position:"bottom",width:500}).dxPopover("instance")}function sn(r,e,t={},i,o,n=!1){let a=!1,s={export:{enabled:!!t.exportFileName,allowExportSelectedData:!0},remoteOperations:!0,columnAutoWidth:!0,showBorders:!0,selection:{mode:"multiple"},keyboardNavigation:{enabled:!1},paging:{pageSize:50},searchPanel:{visible:!0},filterRow:{visible:!0},headerFilter:{visible:!0},scrolling:{mode:"virtual"},onContentReady:v=>{if(dn(v.component),!a){if(a=!0,!n)for(let g=0;g<v.component.columnCount();g++){let I=v.component.columnOption(g,"dataType");v.component.columnOption(g,"width")||(I==="boolean"&&v.component.columnOption(g,"width","100px"),I==="datetime"&&v.component.columnOption(g,"width","150px"))}setTimeout(()=>{let g=v.component.getScrollable();g&&g.scrollTo({top:0})})}},onToolbarPreparing:v=>{i&&v.toolbarOptions.items.unshift({location:"before",template(){let g=$("<h2 />").addClass("grid-header").text(i);return o&&g.append($("<i />").addClass("fas").addClass("fa-info-circle").addClass("report-details-link").attr("title","Click to see further details")),g}})}},d=e.onContentReady?v=>{s.onContentReady(v),e.onContentReady(v)}:s.onContentReady;ln(e,t);let h=$.extend({},s,e,{onContentReady:d}),c=r.dxDataGrid(h).dxDataGrid("instance");return c.element().addClass(Q.dxDataGrid),c}function ln(r,e){var i,o,n;if((o=(i=r==null?void 0:r.summary)==null?void 0:i.totalItems)==null?void 0:o.some(a=>a.summaryType==="count"))return;let t=e==null?void 0:e.summaryColumn;!t&&((n=r==null?void 0:r.columns)==null?void 0:n.length)&&(t=typeof r.columns[0]=="string"?r.columns[0]:r.columns[0].dataField),t&&(r.summary||(r.summary={}),r.summary.totalItems||(r.summary.totalItems=[]),r.summary.totalItems.push({column:t,summaryType:"count"}))}function dn(r){var n,a,s;let e=r.option("summary.totalItems"),t=(n=e==null?void 0:e.filter(d=>d.summaryType==="count")[0])==null?void 0:n.column,i=t&&r.getVisibleColumns().findIndex(d=>d.dataField===t);if(!i){let d=r.option("selection");i=d&&d.mode!=="none"?r.getVisibleColumns().findIndex(c=>!!c.dataField):0}let o=(a=r.getVisibleColumns()[i])==null?void 0:a.dataField;o&&t!==o&&r.option("summary",{totalItems:[{column:(s=r.getVisibleColumns()[i])==null?void 0:s.dataField,summaryType:"count"}]})}function at(r,e,t={},i,o,n=!1,a=!1){let s=sn(r,e,t,i,o,n);return a||Z(s),s}function re(r,e){return $("<span>").attr("title",e).text(r)}var _i=new Map;var Jt=class{constructor(e){this.displayTypes=[{key:1,value:"Icons"},{key:2,value:"PredefinedValues"},{key:3,value:"RabbitAction"}];this.editors={[1]:zi,[2]:Hi,[3]:Wi};this.editorsInitData={};this.roles=[];this.fields=[];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"),Promise.all([this.getAvailableRoles(),this.getAvailableFields()]).then(e=>{this.roles=e[0],this.fields=e[1],this.editorsInitData[3]={fields:this.fields},this.createMainGrid()})}async getAvailableRoles(){return C(this.availableRolesUrl).then(e=>e.map(t=>t.Name).sort((t,i)=>{let o=_i.get(t)||9999,n=_i.get(i)||9999;return o-n}))}async getAvailableFields(){return C(this.groupFieldsUrl)}getDisplayTypeEditor(e,t,i){let o=this.editors[t],n=this.editorsInitData[t];return o?new o(e,i,n):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:o=>{if(!o.newData||!o.oldData)return;o.component.beginCustomLoading("Updating");let n=o.newData.Roles,a=o.oldData.Roles,s=(d,h=o.newData,c=o.oldData)=>{h.hasOwnProperty(d)||(h[d]=c[d])};n&&a&&Object.getOwnPropertyNames(n).forEach(d=>{let h=n[d],c=a[d];h.Id=c.Id,s("CanBeCreated",h,c),s("CanBeRead",h,c),s("CanBeUpdated",h,c),s("CanBeDeleted",h,c)}),s("Label"),s("Order"),s("ToolTip"),s("IsDefaultViewField"),s("IsKeyColumn"),s("GroupField"),s("DisplayType"),s("DataOwner"),s("XLSScheduleLabel")},onRowUpdated:o=>{o.component.endCustomLoading(),o.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:(o,n)=>$("<div />").dxSelectBox({value:n.value,dataSource:[...new Set(e.getDataSource().items().filter(a=>a.GroupField).map(a=>a.GroupField).sort())],acceptCustomValue:!0,showClearButton:!0,onValueChanged:a=>{n.setValue(a.value)}})},{dataField:"Label",allowEditing:!0,width:180},{dataField:"Type",allowEditing:!1,width:80},{dataField:"DataOwner",allowEditing:!0,width:80,headerCellTemplate:re("DO","Data Owner")},{dataField:"XLSScheduleLabel",allowEditing:!0,width:80,headerCellTemplate:re("XLS","XLS Schedule Label")},{dataField:"DisplayType",allowEditing:!0,width:160,customizeText:o=>{if(!o.value)return null;let n=JSON.parse(o.value);return this.displayTypes.find(s=>s.key===n.type).value},editCellTemplate:(o,n)=>{let a=JSON.parse(n.value),s=a?a.type:null,d=a?a.data:[];return $("<div />").dxDropDownBox({dropDownOptions:{width:400},dataSource:this.displayTypes,valueExpr:"key",displayExpr:"value",value:s,showClearButton:!0,onValueChanged:h=>{n.setValue(h.value)},contentTemplate:()=>{let h=$("<div />"),c=$("<div />").appendTo(h),v=$('<div style="margin: 8px 0;" />').appendTo(h),g=$('<div style="text-align: right;" />').appendTo(h),I=$('<div style="margin-right: 8px;" />').appendTo(g),y=$('<div style="margin-right: 8px;" />').appendTo(g),u=s?this.getDisplayTypeEditor(v,s,d):null;return u&&(v.html(""),u.render()),c.dxSelectBox({items:this.displayTypes,value:s,valueExpr:"key",displayExpr:"value",onValueChanged:l=>{u=this.getDisplayTypeEditor(v,l.value,d),v.html(""),u.render(),I.dxButton("instance").option("disabled",!1)}}),I.dxButton({text:"Save",type:"success",disabled:!u,onClick:()=>{let l=u.getData();if(typeof l>"u")return;let p={type:c.dxSelectBox("instance").option("value"),data:l};n.setValue(JSON.stringify(p)),n.component.closeEditCell()}}).appendTo(g),y.dxButton({text:"Cancel",onClick:()=>{n.component.closeEditCell()}}).appendTo(g),h.dxScrollView({width:"100%",height:"100%"}),h}})}},{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:re("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:re("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)}])},i={summaryColumn:"Name"};return this.isStandalonePage?e=at(this.$container,t,i,this.pageTitle,"",!0):e=U(this.$container,{options:t,summaryColumn:i.summaryColumn,title:this.pageTitle,isFullScreen:!1}),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:re("Read","Read")}),this.createRolesPermissionColumn(t,"CanBeUpdated",{headerCellTemplate:re("Edit","Edit")})]}))}createRolesPermissionColumn(e,t,i){return T(b({},i),{name:`${e}_${t}`,dataField:`Roles.${e}.${t}`,allowHiding:!1,showInColumnChooser:!1,allowHeaderFiltering:!1,allowFiltering:!1,minWidth:60})}createMainGridDataSource(){return{store:q({loadUrl:this.loadDataUrl,updateUrl:this.updateDataUrl,key:"Name"})}}},zi=class{constructor(e,t){this.$container=e,this.data=t}render(){let e={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:(i,o)=>{$("<div>").css({"text-align":"center"}).append($("<img>",{src:o.data.image})).appendTo(i)},editCellTemplate:(i,o)=>{let n=o.value||"",a=$('<div style="position: relative; display: flex; align-items: center; justify-content: center;" />'),s=$(`<img src="${n}" />`),d=$('<a class="dx-link dx-icon-upload" style="position: absolute; right: 8px; text-decoration: none; font-size: 18px;" />'),h=$('<input type="file" style="display:none;" />');return d.on("click",()=>{h.click()}),h.on("change",c=>{if(c.target.files.length){let v=new FileReader;v.onloadend=()=>{s.attr("src",v.result),o.setValue(v.result)};let g=c.target.files[0];g?v.readAsDataURL(g):s.attr("src","")}}),s.appendTo(a),d.appendTo(a),h.appendTo(a),a}},{type:"buttons",width:100,buttons:["edit",{hint:"Delete",icon:"trash",onClick:i=>{let o=this.grid.option("dataSource");o.splice(i.row.rowIndex,1),this.grid.option("dataSource",o)}}]}]},t=$("<div />").appendTo(this.$container);this.grid=U(t,{options:e,isFullScreen:!1})}getData(){return this.grid.option("dataSource")}},Hi=class{constructor(e,t){this.$container=e,this.data=t}render(){let e={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:i=>{let o=this.grid.option("dataSource");o.splice(i.row.rowIndex,1),this.grid.option("dataSource",o)}}]}]},t=$("<div />").appendTo(this.$container);this.grid=U(t,{options:e,isFullScreen:!1})}getData(){return this.grid.option("dataSource")}},Wi=class{constructor(e,t,i){this.$container=e,this.data=t,this.initData=i}render(){this.form=$("<div />").dxForm({formData:this.data,labelLocation:"top",items:[{dataField:"actionType",validationRules:[{type:"required"}]},{dataField:"fields",validationRules:[{type:"required"},{type:"custom",validationCallback:e=>e.value.length>0,message:"Required"}],editorType:"dxTagBox",editorOptions:{dataSource:this.initData.fields,displayExpr:"Text",valueExpr:"Value",searchEnabled:!0}}]}).appendTo(this.$container).dxForm("instance")}getData(){if(!this.form.validate().isValid)return;let t=this.form.getEditor("actionType").option("value"),i=this.form.getEditor("fields").option("value");return{actionType:t,fields:i}}};DevExpress.ui.dxDataGrid.registerModule("columnChooserSorting",{extenders:{controllers:{columns:{getChooserColumns(r){return this.callBase(r).sort((t,i)=>{let o=(t==null?void 0:t.caption)||"",n=(i==null?void 0:i.caption)||"";return o.localeCompare(n)})}}}}});var pn=(r,e)=>{if(r===null||e===null||r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},Be=r=>{let e=null,t=null;return function(...i){return pn(e,i)||(t=r(...i)),e=i,t}};var ae=class{constructor(e){this._currentViewId=ae.defaultControlDisplayView.id;this.views=ae.defaultViews;this.getViewByIdInternal=e=>this.views&&this.views.find(t=>t.id===e);this.getViewById=Be(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===ae.defaultViews&&await this.loadViews(),this.views}updateCurrentView(e){return this.updateView(this.currentView.id,e)}async createNewView(e,t,i){let o=this.mapViewModelToDto({id:-1,name:e,gridState:t,isGlobal:i});return o=await C(this.insertDataUrl,"POST",o),await this.loadViews(),this.mapViewDtoToModel(o)}async updateView(e,t){if(e===ae.defaultControlDisplayView.id)return!1;let i=this.getViewById(e);if(!i)return!1;let o=b(b({},i),t),n=this.mapViewModelToDto(o);return n=await C(this.updateDataUrl,"PUT",n),await this.loadViews(),!0}async deleteView(e){return e===ae.defaultControlDisplayView.id||!this.getViewById(e)?!1:(await C(this.deleteDataUrl,"DELETE",{viewId:e}),await this.loadViews(),!0)}async loadViews(){let e=await Y(this.loadDataUrl);return this.views=e.map(t=>this.mapViewDtoToModel(t)),this.views.unshift(ae.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=Be(this.getViewByIdInternal)}},L=ae;L.defaultControlDisplayView={id:0,name:"Default",gridState:null,isGlobal:!1},L.defaultViews=[ae.defaultControlDisplayView];var Kt=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((i,o)=>{let n=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(d=>!d.type);a[0]&&a[0].dataField&&this.options.owner.option("summary",{totalItems:[{column:a[0].dataField,summaryType:"count"}]}),n&&this.options.owner.filter(n),this.options.owner.endUpdate();let s=()=>{this.save(),i(),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(o=>o.visible),i=t[t.length-1];i.width=void 0}return e}};var Qt=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=T(b({},e),{gridStateManager:e.gridStateManager?e.gridStateManager:new Kt({owner:e.owner,initialState:null}),gridViewsManager:e.gridViewsManager?e.gridViewsManager:new L(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",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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===L.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:{elementAttr:{class:"iszolea-md"},items:[L.defaultControlDisplayView],value:L.defaultControlDisplayView.id,valueExpr:"id",displayExpr:"name",width:200,dropDownOptions:{width:550},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 i=$("<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(i).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!==L.defaultControlDisplayView.id}]}],keyboardNavigation:{editOnKeyPress:!1,enabled:!1},showColumnHeaders:!0,hoverStateEnabled:!0,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!==L.defaultControlDisplayView.id;let i=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async o=>{t.component.beginCustomLoading("Updating"),await this.options.gridViewsManager.updateView(t.row.data.id,{isGlobal:o.value}),t.component.endCustomLoading(),i(o)}}},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(o=>{$(o).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 iszolea-md").dxTextBox({value:e.option("text")||e.option("placeholder"),readOnly:this.isDefaultView}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-views__save-view iszolea-md").dxButton({text:"Save",type:"normal",disabled:this.isDefaultView,onClick:this.save.bind(this),icon:"save",width:87}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-views__save-view-as iszolea-md").dxButton({text:"Save As",type:"normal",onClick:this.createSaveAsDialog.bind(this),icon:"save",width:118}).dxButton("instance")}createColumnChooserButton(){return $("<button />").addClass("aps-views__column-chooser iszolea-md").dxButton({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"}]}),i=t.dxTextBox("instance"),o=t.dxValidator("instance");i.element().appendTo(e);let n=$('<div style="margin-bottom:16px;" />').dxCheckBox({text:"Global view",disabled:!this.options.canCreateGlobalViews}).dxCheckBox("instance");return n.element().appendTo(e),ie({title:"Create New View",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async a=>{!o.validate().isValid||(await this.saveAs(i.option("value"),n.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}),F("Saved",!0),await this.loadViewDropdownBoxData())}async saveAs(e,t){if(!this.options.gridStateManager)return;this.options.gridStateManager.save();let i=await this.options.gridViewsManager.createNewView(e,this.options.gridStateManager.currentSavedGridState,t);await this.loadViewDropdownBoxData(),await this.applyView(i.id),F("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!==L.defaultControlDisplayView.id&&await this.applyView(L.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===L.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 Je=class{constructor(e){this.getFilterByIdInternal=e=>this.filters&&this.filters.find(t=>t.id===e);this.getFilterById=Be(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,i,o){let n=this.mapFilterModelToDto({id:-1,name:e,isDefault:i,isGlobal:o,filterState:t});return n=await C(this.insertDataUrl,"POST",n),await this.loadFilters(),this.mapFilterDtoToModel(n)}async updateFilter(e,t){let i=this.getFilterById(e);if(!i)return!1;let o=b(b({},i),t),n=this.mapFilterModelToDto(o);return n=await C(this.updateDataUrl,"PUT",n),await this.loadFilters(),!0}async deleteFilter(e){return this.getFilterById(e)?(await C(this.deleteDataUrl,"DELETE",{filterId:e}),await this.loadFilters(),!0):!1}async loadFilters(){let e=await Y(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=Be(this.getFilterByIdInternal)}};var qt=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=T(b({},e),{gridFiltersManager:e.gridFiltersManager?e.gridFiltersManager:new Je(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 i=this.options.owner.getDataSource();if(this.options.gridFiltersManager.currentFilter){this.filterExpressionCalculator.option("value",this.options.gridFiltersManager.currentFilter.filterState);let o=this.filterExpressionCalculator.getFilterExpression();if(i.isLoading()){let n=()=>{i.off("loadingChanged",n),setTimeout(()=>{i=this.options.owner.getDataSource(),i.filter(o)})};i.on("loadingChanged",n)}else i.filter(o)}else i.filter(null);t||await i.load(),this.options.onFilterApplied&&this.options.onFilterApplied(e),this.isInFilterApplying=!1}integrateToGrid(e){let t=e.option("onToolbarPreparing");e.option("onToolbarPreparing",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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"),i=e&&e.name,o=this.filterBuilder&&this.filterBuilder.option("value"),n=e&&e.filterState,a=this.filterIsGlobalCheckbox&&this.filterIsGlobalCheckbox.option("value"),s=e&&e.isGlobal;return t!==i||o!==n||a!==s}createFiltersToolbarItem(){let e=!0;return{widget:"dxDropDownBox",location:"after",text:"Data Sets",visible:this.options.visible,cssClass:"aps-filters__toolbar-item",options:{elementAttr:{class:"iszolea-md"},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[,i]=await Promise.all([this.loadFilterDropdownBoxData(),this.options.apsControlDisplayUserSettingsManager.getUserSettings()]);i.defaultFilterId&&t.component.option("value",i.defaultFilterId)},onValueChanged:async t=>{if(this.isInFilterApplying)return;if(!e){e=!0;return}let i=t.value;await this.tryApplyFilter(i)||(e=!1,i=t.previousValue,t.component.option("value",i)),this.filtersDataGrid&&this.filtersDataGrid.selectRows(i,!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 i=$("<div />").addClass("aps-filters__header").append(this.currentFilterTitle.element()).append(this.newFilterButton.element());return $("<div />").css("height","100%").append(i).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,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 i=t.editorOptions.onValueChanged;t.editorOptions.onValueChanged=async o=>{t.component.beginCustomLoading("Updating"),await this.options.gridFiltersManager.updateFilter(t.row.data.id,{isGlobal:o.value}),t.component.endCustomLoading(),i(o)}}},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(o=>{$(o).css({color:"#ddd !important",cursor:"default"}).off("click")}))},onRowUpdating:t=>{if(!t.key||t.newData.isDefault===void 0)return;let i=t.component.getDataSource().items().find(o=>o.isDefault);i&&(i.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 iszolea-md").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:i=>{this.filtersDropdownBox&&this.filtersDropdownBox.close()},onHiding:async i=>{if(!this.hasChanges||t){t=!1;return}i.cancel=!0,t=await this.confirmChangesLoss(),t&&(i.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 i=[];for(let o of e)if(o.columns&&o.columns.length>0){let n=this.getFlatColumnsList(o.columns);i=i.concat(n)}else{let n=$.extend({},o);if(n.dataType==="date"||n.dataType==="datetime"){let a=n.dataType==="datetime",s="dd MMM yy",h=a?"hh:mm, dd MMM yy":s,c=v=>{let g=v.split(", "),I=DevExpress.localization.parseDate(g[1],s)||null;if(I){let y=g[0].split(":");return I.setHours(parseInt(y[0])),I.setMinutes(parseInt(y[1])),I}else return null};n.format=h,n.editorTemplate=v=>$("<div />").dxDateBox({displayFormat:h,type:a?"datetime":"date",width:150,onValueChanged:({value:g})=>{v.setValue(DevExpress.localization.formatDate(g,h))},value:(a?c(v.value):DevExpress.localization.parseDate(v.value,h))||null}),n.filterOperations=["=","<>","<",">","<=",">=","isblank","isnotblank"],n.calculateFilterExpression=function(v){let g=[e,...t];return g[0]&&(a?g[0]=c(g[0]):g[0]=DevExpress.localization.parseDate(v,h)||null),this.defaultCalculateFilterExpression(...g)}}i.push(n)}return i.sort((o,n)=>{let a=(o.caption||"").toLowerCase(),s=(n.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%"),i=$('<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(i),this.filterIsGlobalCheckbox.option("value",e&&e.isGlobal),this.filterIsGlobalCheckbox.element().appendTo(i),this.filterIsGlobalCheckbox.option("disabled",!this.options.canCreateGlobalFilters),i.appendTo(t),this.filterBuilder.option("value",e&&e.filterState);let o=$("<div />").height("calc(100% - 36px)").appendTo(t);return this.filterBuilder.element().appendTo(o),o.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"),i=!1,o=this.filterIsGlobalCheckbox.option("value");if(!e)return;let n=await this.options.gridFiltersManager.createNewFilter(e,t,i,o);await this.loadFilterDropdownBoxData(),await this.applyFilter(n.id),F("Created",!0)}async updateFilter(e){if(!this.filterNameTextBox||!this.filterBuilder||!this.filterIsGlobalCheckbox)return;let t=this.filterNameTextBox.option("value"),i=this.filterBuilder.option("value"),o=this.filterIsGlobalCheckbox.option("value");!t||!await this.options.gridFiltersManager.updateFilter(e.id,{name:t,filterState:i,isGlobal:o})||(F("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 o=t.find(n=>n.id===e.defaultFilterId);o&&(o.isDefault=!0)}let i=new DevExpress.data.ArrayStore({key:"id",data:t});this.filtersDropdownBox.option("dataSource",i),this.filtersDataGrid&&this.filtersDataGrid.option("dataSource",i)}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 Ke=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 i;t.component.option("labelText",t.value[0]?t.value[0].name:""),(i=this.onValueChanged)==null||i.call(this,t)},onUploadStarted:t=>{var i;t.element.find(".dx-fileuploader-upload-button").hide(),(i=this.onUploadStarted)==null||i.call(this,t)},onUploaded:t=>{var i;(i=this.onUploaded)==null||i.call(this,t)}}).dxFileUploader("instance"),this.$container.append(this.fileUploader.element())}upload(e,t){return new Promise((i,o)=>{let n=new FormData,a=this.fileUploader.element().find("input")[0].files[0];n.append("file",a);for(let s in t)n.append(s,t[s]);$.ajax({url:e,type:"post",data:n,contentType:!1,processData:!1,success:s=>{s.RequestState===1?i(s.Data):o(s.Message)},error:s=>o("Unknown error")})})}};var st=class extends ne{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,i)=>{this.createModeSwitcher(i)}},{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:q({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,i)=>{this.createFilesUploader(i)}},{dataField:"Columns Selector",label:{visible:!1},colSpan:4,itemType:"simple",template:(t,i)=>{this.createDataGrid(i)}}]}).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 Ke({$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 i=new DevExpress.data.DataSource({store:{type:"array",key:"Id",data:t.Columns},paginate:!1});this.dataGrid.option("dataSource",i)}}).catch(t=>{F(`Parsing Error : ${t}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}),this.fileUploader.render()}createDataGrid(e){let t={noDataText:"Select Excel File",hoverStateEnabled:!0,searchPanel:{visible:!1},groupPanel:{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:(i,o)=>{i.IsNullable=o,o&&(i.IsKeyColumn=!1)}}],remoteOperations:!1,onToolbarPreparing:i=>{i.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:i=>{if(i.parentType==="dataRow"&&i.dataField==="IsKeyColumn"){let o=i.editorOptions;o.disabled=i.row.data.IsNullable}}};this.dataGrid=U($("<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||F("Select file with data",!1);let i=t.items();if(!this.areColumnsValid(i))F("At least 1 key column must be set",!1);else{let o={schema:this.form.option("formData").Schema,table:this.form.option("formData").Table,columns:JSON.stringify(i)};this.dataGrid.beginCustomLoading("Creating and filling DB table..."),this.fileUploader.upload(this.createTableUrl,o).then(n=>{n===!0?(this.popup.hide(),F(`The table [${o.schema}].[${o.table}] has been created`,!0),this.emit(st.TABLE_UPDATED_EVENT)):F("The table has not been created",!1)}).catch(n=>{F(`Table creating error: ${n}`,!1)}).finally(()=>{this.dataGrid.endCustomLoading()})}}}addRowsToTable(){if(this.form.validate().isValid){let t=this.dataGrid.getDataSource();t||F("Select file with data",!1);let i=t.items(),o={table:this.form.option("formData").TableSelector,columns:JSON.stringify(i)};this.dataGrid.beginCustomLoading("Adding rows to DB table..."),this.fileUploader.upload(this.addRowsUrl,o).then(n=>{n===!0?(this.popup.hide(),F(`The table ${o.table} has been updated`,!0),this.emit(st.TABLE_UPDATED_EVENT)):F("The table has not been updated",!1)}).catch(n=>{F(`Table updating error: ${n}`,!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)}},ve=st;ve.TABLE_UPDATED_EVENT="file-importer-table-updated-event";var jt=class{constructor(e){this.onGridToolbarPreparing=e=>{let t=e.toolbarOptions&&e.toolbarOptions.items;if(!t)return;let i=[this.displaysToolbarItem];this.importFileOptions&&this.importFileOptions.mode!==0&&i.push(this.importFileToolbarItem),t.splice(1,0,...i)};this.options=e,this.gridDisplaysManager=e.gridDisplaysManager,this.gridViewsManager=e.gridViewsManager,this.gridFiltersManager=e.gridFiltersManager,this.importFileOptions=e.importFileOptions,this.gridDisplaysManager.onDisplaisLoaded=t=>{let i=new DevExpress.data.ArrayStore({key:"Id",data:t});this.displaysDropdownBox&&this.displaysDropdownBox.option("dataSource",i),this.dataGrid&&this.dataGrid.option("dataSource",i),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",i=>{t&&t(i),this.onGridToolbarPreparing(i)})}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,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 i=await this.gridFiltersManager.getFilters(),o=await this.gridViewsManager.getViews();t.component.columnOption("FilterId","lookup.dataSource",i),t.component.columnOption("ViewId","lookup.dataSource",o)},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:i=>{this.displaysDropdownBox=i.component,this.gridDisplaysManager.getDisplays()},onValueChanged:async i=>{let o=this.gridDisplaysManager.currentDisplay,n=o&&o.FilterId!==this.gridFiltersManager.currentFilterId,a=o&&o.ViewId!==this.gridViewsManager.currentViewId;await(n||a?this.confirmChangesLoss():Promise.resolve(!0))&&(this.gridDisplaysManager.currentDisplayId=i.value)}},t={elementAttr:{class:"iszolea-md"},dropDownOptions:{width:800},contentTemplate:this.options.editMode?i=>{this.dataGrid=this.createDataGrid(i.component),this.currentDisplayTitle=this.createCurrentDisplayTitle(i.component),this.saveButton=this.createSaveViewButton(),this.saveAsButton=this.createSaveViewAsButton();let o=$("<div />").addClass("aps-displays__header").append(this.currentDisplayTitle.element()).append(this.saveButton.element()).append(this.saveAsButton.element()),n=$("<div />").height("100%");return this.options.editMode&&n.append(o),n.append(this.dataGrid.element()),n}: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 ve({$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(ve.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 iszolea-md").dxTextBox({value:e.option("text")||e.option("placeholder"),disabled:!this.gridDisplaysManager.currentDisplay}).dxTextBox("instance")}createSaveViewButton(){return $("<button />").addClass("aps-displays__save-display iszolea-md").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",width:125}).dxButton("instance")}createSaveViewAsButton(){return $("<button />").addClass("aps-display__save-display-as iszolea-md").dxButton({text:"Save As",type:"normal",disabled:!this.gridFiltersManager.currentFilterId,onClick:()=>this.createSaveAsDialog(),icon:"save",width:160}).dxButton("instance")}createSaveAsDialog(){let e=$("<div />"),t=$('<div style="margin-bottom:8px;" />').dxTextBox({placeholder:"Display Name",showClearButton:!0}).dxValidator({validationRules:[{type:"required"}]}),i=t.dxTextBox("instance"),o=t.dxValidator("instance");return i.element().appendTo(e),ie({title:"Create New Display",height:"auto",width:"100%",maxWidth:"300px"},e,{text:"Ok",onClick:async n=>{!o.validate().isValid||(this.dataGrid.beginCustomLoading("Loading"),this.gridDisplaysManager.createNewDisplay(i.option("value"),this.gridFiltersManager.currentFilterId,this.gridViewsManager.currentViewId),n())}},{text:"Cancel",onClick:n=>n()})}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 Xt=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 Y(this.loadDataUrl),this.onDisplaisLoadedPrivate(),this.displays}async getDisplays(){return this.displays||await this.loadDisplays()}async createNewDisplay(e,t,i){let o={Id:0,Name:e,FilterId:t,ViewId:i};await C(this.insertDataUrl,"POST",o),await this.loadDisplays()}async deleteDisplay(e){await C(this.deleteDataUrl,"DELETE",{id:e}),await this.loadDisplays()}updateCurrentDisplay(e,t,i){return this.updateDisplay(this.currentDisplay.Id,e,t,i)}async updateDisplay(e,t,i,o){await C(this.updateDataUrl,"PUT",{id:e,name:t,filterId:i,viewId:o}),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 Yt=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,i=e.row.key,o=e.editorOptions.onValueChanged;e.editorOptions.onValueChanged=n=>{o(n),this.updateMultipleRows(t,i,n.value)}};this.options=T(b({},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,i){let o=await this.options.owner.getSelectedRowKeys();if(!o.length)return;let n=o.findIndex(a=>a===t);n<0||o.length===1||(o.splice(n,1),o.forEach(a=>{this.options.owner.cellValue(this.options.owner.getRowIndexByKey(a),e,i)}))}};var Zt=class{constructor(e){this.defaultUserSettings={defaultFilterId:void 0,defaultViewId:L.defaultControlDisplayView.id};this.isLatestLoadedUserSettingsExpired=!0;this.options=b({},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)}},lt=class extends Zt{async loadUserSettings(){let e=localStorage.getItem(lt.userSettingsStorageKey);return e?JSON.parse(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),i=b(b({},t),e);return localStorage.setItem(lt.userSettingsStorageKey,JSON.stringify(i)),i}},Ji=lt;Ji.userSettingsStorageKey="aps:control-display:user-settings";var ei=class extends Zt{constructor(e){super(e);this.loadDataUrl=e.loadDataUrl,this.updateDataUrl=e.updateDataUrl}async loadUserSettings(){let e=await Y(this.loadDataUrl);return e?this.mapControlDisplayUserSettingsDtoToModel(e):this.defaultUserSettings}async updateUserSettingsInternal(e){let t=await this.getUserSettings(),i=b(b({},t),e),o=await C(this.updateDataUrl,"PUT",this.mapControlDisplayUserSettingsModelToDto(i));return this.mapControlDisplayUserSettingsDtoToModel(o)}mapControlDisplayUserSettingsModelToDto(e){return{DefaultFilterId:e.defaultFilterId,DefaultViewId:e.defaultViewId}}mapControlDisplayUserSettingsDtoToModel(e){return{defaultFilterId:e.DefaultFilterId,defaultViewId:e.DefaultViewId}}};function Ki(r){let e="",t=r.filter(o=>o.visible),i=t.filter(o=>o.visibleIndex!==null&&o.visibleIndex!==void 0);return i.length?e=i.sort((o,n)=>o.visibleIndex-n.visibleIndex)[0].dataField:e=t[0]&&t[0].dataField||"",e}var ti=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(){C(this.userConfigUrl).then(e=>{let t=new Je(this.gridFiltersManagerOptions),i=new L(this.gridViewsManagerOptions),o=new Xt(this.gridDisplaysManagerOptions);this.mainGrid=this.createMainGrid(e.FieldsConfiguration);let n=e.CanCreateDisplays&&e.CanCreateViews&&e.CanCreateFilters;(n||e.CanApplayDisplays)&&(this.gridDisplaysToolbarComponent=new jt({owner:this.mainGrid,editMode:n,gridFiltersManager:t,gridViewsManager:i,gridDisplaysManager:o,importFileOptions:this.importFileOptions})),this.gridViewsToolbarComponent=new Qt({owner:this.mainGrid,onViewApplied:this.onViewApplied,onViewDeleted:async()=>{await o.loadDisplays()},autoIntegration:!0,gridViewsManager:i,canCreateGlobalViews:e.CanCreateGlobalViews,visible:e.CanCreateViews}),this.gridFiltersToolbarComponent=new qt({apsControlDisplayUserSettingsManager:new ei({userId:this.userName,loadDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.loadDataUrl,updateDataUrl:this.remoteControlDisplayUserSettingsManagerLoadOptions.updateDataUrl}),owner:this.mainGrid,onFilterDeleted:async a=>{await o.loadDisplays()},autoIntegration:!0,gridFiltersManager:t,canCreateGlobalFilters:e.CanCreateGlobalFilters,visible:e.CanCreateFilters}),this.multipleEditingDataGridPlugin=new Yt({owner:this.mainGrid}),o.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(L.defaultControlDisplayView.id))}})}hasPermisson(e,t){return e&t}buildTree(e){let t="__GROUP__",i=e.reduce((n,a)=>(a.Columns=[],a.GroupField=a.GroupField?`${t}${a.GroupField}`:null,n[a.Name]=a,n),{});i=e.filter(n=>n.GroupField).map(n=>n.GroupField).filter((n,a,s)=>s.indexOf(n)===a).reduce((n,a)=>{let s=a.replace(t,""),d={Name:a,Label:s,Columns:[],GroupField:i[s]&&i[s].GroupField&&i[s].GroupField!==a?i[s].GroupField:null};return n[a]=d,n},i);let o=[];for(let n in i)if(i.hasOwnProperty(n)){let a=i[n];a.GroupField?i[a.GroupField].Columns.push(a):o.push(a)}return o}renderDisplayType(e,t,i){e.type===1&&(t.cellTemplate=(o,n)=>{let a=String(n.value),s=e.data.find(d=>String(d.value)===a);s?$("<div>").css({"text-align":"center"}).attr("title",s.title).append($("<img>",{src:s.image})).appendTo(o):$("<div />").css({"text-align":"center"}).text(n.value).appendTo(o)},t.editCellTemplate=(o,n)=>{$("<div />").dxSelectBox({dataSource:e.data,displayValue:"title",itemTemplate:a=>$("<div />").css({"text-align":"center"}).attr("title",a.title).append($("<img>",{src:a.image})).appendTo(o),fieldTemplate:(a,s)=>{let d=e.data.find(v=>parseInt(v.value)===n.value),h=$("<div />").addClass("item-name"),c=$("<div />").addClass("aps-icon-editor__custom-item").append($("<img>",{src:d?d.image:""}).attr("title",d?d.title:"")).append(h);h.dxTextBox({value:"",readOnly:!0}),s.append(c)},onValueChanged:({value:a,component:s})=>{n.setValue(parseInt(a.value)),s.blur()},value:n.value!==null&&n!==void 0&&n.value.toString(),selectedItem:e.data.find(a=>parseInt(a.value)===n.value)}).appendTo(o)},t.allowSearch=!1,t.allowFiltering=!1,t.allowHeaderFiltering=!0,t.allowGrouping=!1),e.type===2&&(t.editCellTemplate=(o,n)=>{$("<div />").dxSelectBox({dataSource:e.data.map(a=>a.value).sort(),acceptCustomValue:!0,showClearButton:!0,onValueChanged:({value:a,component:s})=>{n.setValue(a||""),s.blur()},value:n.value}).appendTo(o)}),e.type===3&&(t.editCellTemplate=(o,n)=>{$("<div />").dxCheckBox({value:n.value||!1,readOnly:!this.hasPermisson(i,4),onValueChanged:a=>{n.component.cellValue(n.rowIndex,n.column.dataField,a.value)}}).appendTo(o)})}configureColumn(e){let t=e.Label||e.Name,i=e.ToolTip||t,o=e.Columns.length?{caption:t,columns:e.Columns.map(n=>this.configureColumn(n))}:{dataField:e.Name,dataType:e.Type,caption:t,headerCellTemplate:re(t,i),visible:e.IsDefaultViewField,visibleIndex:e.Order,allowFixing:!1,allowEditing:!!this.hasPermisson(e.Permissions,4),width:e.Width,hidingPriority:e.HidingOrder};if(e.DisplayType){let n=JSON.parse(e.DisplayType);if(n.type===1){let a=n.data.map(s=>({text:s.title,value:s.value}));a.splice(0,0,{text:"Blank",value:null}),o.headerFilter={dataSource:a}}this.renderDisplayType(n,o,e.Permissions)}return o}configureColumns(e){return e=e.filter(i=>this.hasPermisson(i.Permissions,1)),e=this.buildTree(e),e.map(i=>this.configureColumn(i))}createMainGrid(e){let t=e.some(a=>a.IsKeyColumn),i=this.configureColumns(e),o=Ki(i),n={dataSource:this.createMainGridDataSource(e),columnResizingMode:"widget",width:"100%",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:o}]},allowColumnResizing:!0,columnHidingEnabled:!1,hoverStateEnabled:!0,columns:i,allowColumnReordering:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},masterDetail:t?{enabled:!0,template:(a,s)=>{let d={};e.filter(h=>h.IsKeyColumn).forEach(h=>d[h.Name]=s.data[h.Name]),$("<div>").dxDataGrid({dataSource:{store:q({loadUrl:`${this.controlLogsUrl}?key=${JSON.stringify(d)}`})},showBorders:!0,columns:[{dataField:"User",width:200},{dataField:"CreatedAt",caption:"Date",dataType:"date",format:"shortDateShortTime",width:200},{dataField:"Changes",cellTemplate:(h,c)=>{let v=c.data.Changes.map(g=>`<div class='aps-control-log'>
3
3
  <span class='aps-control-log__field'>${g.Field}</span>
4
4
  <span class='aps-control-log__old-value'>${g.OldValue}</span>
5
5
  \u2192
6
6
  <span class='aps-control-log__new-value'>${g.NewValue}</span>
7
- </div>`).join("");$(`<div class='aps-control-logs'>${v}</div>`).appendTo(m)}}]}).appendTo(a)}}:void 0,onContentReady:a=>{!a.component||this.prepareFilterPanel(a.component)},onEditorPreparing:a=>{if(a.parentType!=="dataRow")return;let s=e.find(m=>m.Name===a.dataField);if(!s)return;let d=!this.hasPermisson(s.Permissions,4);if(a.editorOptions.readOnly=d,!d&&s.Type==="string"){let m=a.setValue;a.setValue=c=>{m(c.trim())}}},onCellPrepared:a=>{if(a.rowType==="data"){let s=e.find(d=>d.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 U(this.$container,{options:n,isFullScreen:this.isStandalonePage,setDefaultColumnWidth:!0,exportFileName:this.exportFileName,title:this.pageTitle,disableSummaryColumnDetection:!0})}createMainGridDataSource(e){return{store:q({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"),i=t.find(".dx-icon-filter"),o=t.find(".dx-datagrid-filter-panel-text");i.off("click"),o.off("click")}initRowsCountSummary(e){let t=e.getVisibleColumns().find(a=>!!a.dataField);if(!t)return;let i="RowsCount",o=e.option("summary.totalItems")||[],n=o.find(a=>a&&a.name===i);n&&n.column===t.dataField||(n?n.column=t.dataField:o.push({name:i,column:t.dataField,summaryType:"count",alignment:"left"}),this.mainGrid.option("summary.totalItems",o))}clearFilterRowAfterViewSwitching(){let e=()=>{let t={};(this.gridViewsToolbarComponent.options.gridStateManager.currentSavedGridState.columns||this.gridViewsToolbarComponent.options.owner.option("columns")).filter(o=>o.visibleIndex&&(o.filterValue||o.filterValues)).forEach(o=>t[o.visibleIndex]=o),$('td [aria-label*="Filter cell"]').filter(o=>!t[o]).val(""),this.mainGrid.off("contentReady",e)};this.mainGrid.on("contentReady",e)}};var ii=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=C(this.loadDataUrl,"get").then(s=>{e=s.Displays.map(c=>({Id:c.Id.toString(),Caption:c.Name}));let d=[];for(let c of s.Users){let v={UserName:c.UserName,UserId:c.Id};s.Assignments.filter(I=>I.UserId===c.Id).forEach(I=>{v[I.DisplayId]=!0}),d.push(v)}let m=[{dataField:"UserName",width:300,fixed:!0,fixedPosition:"left",allowEditing:!1},{dataField:"UserId",visible:!1}];return a.option("columns",m.concat(e.map(c=>({dataField:c.Id,caption:c.Caption,dataType:"boolean",calculateCellValue:v=>!!v[c.Id]})))),d}),i=!1,o={elementAttr:{class:"aps-display-manager"},dataSource:{store:new DevExpress.data.CustomStore({key:"UserId",loadMode:"raw",load:()=>t,update:(s,d)=>{let m=[],c=[],v=i;return i=!0,Object.keys(d).forEach(I=>{d[I]?c.push(parseInt(I)):m.push(parseInt(I))}),window.setTimeout(()=>{i=!1},0),C(this.updateDataUrl,"put",{userId:s,displaysToRemove:m,displaysToAdd:c},!v).promise()}})},height:"100%",selection:{mode:"none"},allowColumnResizing:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},remoteOperations:!1,editing:{allowUpdating:!0,mode:"cell",refreshMode:"repaint"}},n={exportFileName:"DisplayManagement",summaryColumn:"UserName"},a;this.isStandalonePage?a=at(this.$container,o,n,this.pageTitle,"",!0):a=U(this.$container,{options:o,summaryColumn:n.summaryColumn,title:this.pageTitle,isFullScreen:!1})}};var ye=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)}init(){this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.allowEditing&&this.initSwitchModeButton(),this.renderContent()}dispose(){var e,t,i;(e=this.multiView)==null||e.dispose(),(t=this.tabPanel)==null||t.dispose(),(i=this.popover)==null||i.dispose()}refresh(){}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,i){return{$container:null,isStandalonePage:!1,pageTitle:"",exportFileName:i.Name,userConfigUrl:`${e}/FieldsPermissions`,controlLogsUrl:`${e}/GetControlLogs`,loadDataUrl:`${e}/ControlDisplayData`,updateDataUrl:`${e}/UpdateControlDisplayData`,userName:t,importFileOptions:i.AllowImporting?{mode:i.ImportFileMode,createTableUrl:`${e}/create-table`,addRowsUrl:`${e}/add-rows`,fileUploadUrl:`${e}/get-columns`,predefinedTable:i.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()}}).addClass("iszolea-md").dxButton("instance")}renderDisplay(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.multiView=e.dxMultiView({items:[{template:()=>{let t=new ti(S(b({},this.controlDisplayOptions),{$container:$("<div />")}));return t.render(),t.$container}}]}).addClass("cdm-report__disply-grid").dxMultiView("instance"),Z(this.multiView,!1)}renderTabPanel(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.tabPanel=this.createTabPanel(e),Z(this.tabPanel,!1)}createTabPanel(e){return e.dxTabPanel({swipeEnabled:!1,showNavButtons:!0,focusStateEnabled:!1,activeStateEnabled:!1,hoverStateEnabled:!1,onSelectionChanged:t=>{setTimeout(()=>{t.component.repaint()})},items:[{title:"Configurator",template:()=>{let t=new Jt(S(b({},this.controlConfiguratorOptions),{$container:$("<div />")}));return t.render(),t.$container}},{title:"Display Manager",template:()=>{let t=new ii(S(b({},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}};var ri=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 "),i=$("<span />").addClass("session-notifier__counter").text(e.toFixed(0)),o=$("<span />").text(" seconds");return $("<span />").append(t,i,o)}}getSecondsToExpiration(){return(this.expirationTime.getTime()-new Date().getTime())/1e3}refreshSession(){this.reset(),C(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||window.location.reload()}).catch(()=>window.location.reload())}pingSessionIfTabIsActive(){document.hidden||C(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 un={edit:"edit",saving:"saving",saved:"saved"},j=un;var dt=class extends oe{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(i=>(this.onDataLoaded(i),e&&this.checkColumnsRelevance(i.columns,t),i))}save(e,t,i){let o={};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&&(o[a.visibleIndex]=a.width)});let n=JSON.stringify(e.columns);return!this.stateLoaded||n===this.lastColumnSettingsStr?null:(this.lastColumnSettingsStr=n,t&&t(),this.gridDataLayer.updateGridViewSettings(this.id,e).then(()=>{i&&i()}),o)}checkNewColumns(e){let t=[];if(e.columns){let i=e.columns.filter(o=>!this.loadedColumns[o.dataField]&&o.visible);i.length&&i.forEach(o=>{t.push(o.dataField),this.loadedColumns[o.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(i=>{let o={};i.forEach(a=>o[a.Name]=!0);let n=e.filter(a=>!o[a.dataField]).map(a=>a.dataField);n.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'>${v}</div>`).appendTo(h)}}]}).appendTo(a)}}:void 0,onContentReady:a=>{!a.component||this.prepareFilterPanel(a.component)},onEditorPreparing:a=>{if(a.parentType!=="dataRow")return;let s=e.find(h=>h.Name===a.dataField);if(!s)return;let d=!this.hasPermisson(s.Permissions,4);if(a.editorOptions.readOnly=d,!d&&s.Type==="string"){let h=a.setValue;a.setValue=c=>{h(c.trim())}}},onCellPrepared:a=>{if(a.rowType==="data"){let s=e.find(d=>d.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 U(this.$container,{options:n,isFullScreen:this.isStandalonePage,setDefaultColumnWidth:!0,exportFileName:this.exportFileName,title:this.pageTitle,disableSummaryColumnDetection:!0})}createMainGridDataSource(e){return{store:q({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"),i=t.find(".dx-icon-filter"),o=t.find(".dx-datagrid-filter-panel-text");i.off("click"),o.off("click")}initRowsCountSummary(e){let t=e.getVisibleColumns().find(a=>!!a.dataField);if(!t)return;let i="RowsCount",o=e.option("summary.totalItems")||[],n=o.find(a=>a&&a.name===i);n&&n.column===t.dataField||(n?n.column=t.dataField:o.push({name:i,column:t.dataField,summaryType:"count",alignment:"left"}),this.mainGrid.option("summary.totalItems",o))}clearFilterRowAfterViewSwitching(){let e=()=>{let t={};(this.gridViewsToolbarComponent.options.gridStateManager.currentSavedGridState.columns||this.gridViewsToolbarComponent.options.owner.option("columns")).filter(o=>o.visibleIndex&&(o.filterValue||o.filterValues)).forEach(o=>t[o.visibleIndex]=o),$('td [aria-label*="Filter cell"]').filter(o=>!t[o]).val(""),this.mainGrid.off("contentReady",e)};this.mainGrid.on("contentReady",e)}};var ii=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=C(this.loadDataUrl,"get").then(s=>{e=s.Displays.map(c=>({Id:c.Id.toString(),Caption:c.Name}));let d=[];for(let c of s.Users){let v={UserName:c.UserName,UserId:c.Id};s.Assignments.filter(I=>I.UserId===c.Id).forEach(I=>{v[I.DisplayId]=!0}),d.push(v)}let h=[{dataField:"UserName",width:300,fixed:!0,fixedPosition:"left",allowEditing:!1},{dataField:"UserId",visible:!1}];return a.option("columns",h.concat(e.map(c=>({dataField:c.Id,caption:c.Caption,dataType:"boolean",calculateCellValue:v=>!!v[c.Id]})))),d}),i=!1,o={elementAttr:{class:"aps-display-manager"},dataSource:{store:new DevExpress.data.CustomStore({key:"UserId",loadMode:"raw",load:()=>t,update:(s,d)=>{let h=[],c=[],v=i;return i=!0,Object.keys(d).forEach(I=>{d[I]?c.push(parseInt(I)):h.push(parseInt(I))}),window.setTimeout(()=>{i=!1},0),C(this.updateDataUrl,"put",{userId:s,displaysToRemove:h,displaysToAdd:c},!v).promise()}})},height:"100%",selection:{mode:"none"},allowColumnResizing:!0,grouping:{contextMenuEnabled:!0},groupPanel:{visible:!0},remoteOperations:!1,editing:{allowUpdating:!0,mode:"cell",refreshMode:"repaint"}},n={exportFileName:"DisplayManagement",summaryColumn:"UserName"},a;this.isStandalonePage?a=at(this.$container,o,n,this.pageTitle,"",!0):a=U(this.$container,{options:o,summaryColumn:n.summaryColumn,title:this.pageTitle,isFullScreen:!1})}};var ye=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)}init(){this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.allowEditing&&this.initSwitchModeButton(),this.renderContent()}dispose(){var e,t,i;(e=this.multiView)==null||e.dispose(),(t=this.tabPanel)==null||t.dispose(),(i=this.popover)==null||i.dispose()}refresh(){}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,i){return{$container:null,isStandalonePage:!1,pageTitle:"",exportFileName:i.Name,userConfigUrl:`${e}/FieldsPermissions`,controlLogsUrl:`${e}/GetControlLogs`,loadDataUrl:`${e}/ControlDisplayData`,updateDataUrl:`${e}/UpdateControlDisplayData`,userName:t,importFileOptions:i.AllowImporting?{mode:i.ImportFileMode,createTableUrl:`${e}/create-table`,addRowsUrl:`${e}/add-rows`,fileUploadUrl:`${e}/get-columns`,predefinedTable:i.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()}}).addClass("iszolea-md").dxButton("instance")}renderDisplay(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.multiView=e.dxMultiView({items:[{template:()=>{let t=new ti(T(b({},this.controlDisplayOptions),{$container:$("<div />")}));return t.render(),t.$container}}]}).addClass("cdm-report__disply-grid").dxMultiView("instance"),Z(this.multiView,!1)}renderTabPanel(){this.$rootElement.html("");let e=$("<div />").appendTo(this.$rootElement);this.tabPanel=this.createTabPanel(e),Z(this.tabPanel,!1)}createTabPanel(e){return e.dxTabPanel({swipeEnabled:!1,showNavButtons:!0,focusStateEnabled:!1,activeStateEnabled:!1,hoverStateEnabled:!1,onSelectionChanged:t=>{setTimeout(()=>{t.component.repaint()})},items:[{title:"Configurator",template:()=>{let t=new Jt(T(b({},this.controlConfiguratorOptions),{$container:$("<div />")}));return t.render(),t.$container}},{title:"Display Manager",template:()=>{let t=new ii(T(b({},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}};var ri=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 "),i=$("<span />").addClass("session-notifier__counter").text(e.toFixed(0)),o=$("<span />").text(" seconds");return $("<span />").append(t,i,o)}}getSecondsToExpiration(){return(this.expirationTime.getTime()-new Date().getTime())/1e3}refreshSession(){this.reset(),C(this.sessionPingUrl,"GET",null,!1,{notifyError:!1}).then(e=>{e.isAuthenticated||window.location.reload()}).catch(()=>window.location.reload())}pingSessionIfTabIsActive(){document.hidden||C(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 un={edit:"edit",saving:"saving",saved:"saved"},j=un;var dt=class extends ne{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(i=>(this.onDataLoaded(i),e&&this.checkColumnsRelevance(i.columns,t),i))}save(e,t,i){let o={};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&&(o[a.visibleIndex]=a.width)});let n=JSON.stringify(e.columns);return!this.stateLoaded||n===this.lastColumnSettingsStr?null:(this.lastColumnSettingsStr=n,t&&t(),this.gridDataLayer.updateGridViewSettings(this.id,e).then(()=>{i&&i()}),o)}checkNewColumns(e){let t=[];if(e.columns){let i=e.columns.filter(o=>!this.loadedColumns[o.dataField]&&o.visible);i.length&&i.forEach(o=>{t.push(o.dataField),this.loadedColumns[o.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(i=>{let o={};i.forEach(a=>o[a.Name]=!0);let n=e.filter(a=>!o[a.dataField]).map(a=>a.dataField);n.length&&DevExpress.ui.dialog.confirm(`Grid settings contain some colunms which don't exist in the database table anymore:
8
8
 
9
9
  '${n.join(", ")}'.
10
10
 
11
11
  Do you want to remove these columns from grid settings?
12
- `,"Remove redundant columns?").then(a=>{!a||t(n)})})}resetSettings(){return this.gridDataLayer.resetSettings(this.id).then(e=>(this.onDataLoaded(e),e))}onDataLoaded(e){let t=e&&e.columns,i=0;this.stateLoaded=!0,t&&(this.loadedColumns={},t.forEach(o=>{this.loadedColumns[o.dataField]=!0,o.visible&&o.visibleIndex===null&&(o.visibleIndex=i++),Object.keys(o).forEach(a=>{(o[a]===null||o[a]===void 0||o[a]==="")&&delete o[a]});let n=this.additionalColumnsSettings[o.dataField];n?(n.caption=o.caption,n.tooltip=o.tooltip):this.additionalColumnsSettings[o.dataField]={caption:o.caption,tooltip:o.tooltip},delete o.caption,delete o.tooltip})),this.lastColumnSettingsStr=JSON.stringify(e.columns)}};var Qi=(t=>(t[t.View=1]="View",t[t.Edit=2]="Edit",t))(Qi||{}),P=Qi;var qi=r=>{let e={gridResult:`${r}/GridViewResult`,getColumnsByReportId:`${r}/GetDbTableFields`,resetGridSettings:`${r}/ResetGridViewSettings`,updateGridViewSettings:`${r}/UpdateGridViewSettings`,getGridViewSettings:`${r}/GetGridViewSettings`};return{getGridDataSource(t,i,o){return q({loadParams:{id:t.ReportId,appName:t.AppName,gridMode:i,rowsLimit:i===P.Edit&&!o?15:null},loadUrl:e.gridResult,getUserFriendlyErrorMessage:cn})},getColumnsByReportId:t=>C(e.getColumnsByReportId,"post",{id:t},!1,{dataType:"json"}),resetSettings:t=>C(e.resetGridSettings,"post",{id:t},!1,{dataType:"json"}),updateGridViewSettings:(t,i)=>C(e.updateGridViewSettings,"post",{id:t,columnsSettings:JSON.stringify(i.columns)},!1,{dataType:"json"}),getGridViewSettings:t=>C(e.getGridViewSettings,"post",{id:t},!1,{dataType:"json"})}},cn=r=>{switch(r){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 Oe=class{constructor(e){this.activeTimerId=0;this.currentInterval=0;this.elapsedCallback=e.elapsedCallback,this.callback=e.callback}start(e){if(e<=0){this.callback();return}this.lastStateChecked=new Date,this.currentInterval=e;let t=this.activeTimerId=Math.random();if(this.currentInterval<0){this.elapsedCallback(this.currentInterval);return}this.tickTimerFunction(t)}triggerChange(){this.lastStateChecked=new Date,this.callback()}dispose(){this.activeTimerId--}tickTimerFunction(e){if(e!==this.activeTimerId)return;let t=this.currentInterval-(new Date-this.lastStateChecked);t<=0&&(t=this.currentInterval+999,this.callback(),this.lastStateChecked=new Date),this.elapsedCallback(t),setTimeout(()=>this.tickTimerFunction(e),100)}};var mn=[{timeout:0,text:"refresh now",refreshTemplate:""},{timeout:15*1e3,text:"15 sec",refreshTemplate:"Auto Update (%)"},{timeout:30*1e3,text:"30 sec",refreshTemplate:"Auto Update (%)"},{timeout:60*1e3,text:"1 min",refreshTemplate:"Auto Update (%)"},{timeout:180*1e3,text:"3 min",refreshTemplate:"Auto Update (%)"},{timeout:300*1e3,text:"5 min",refreshTemplate:"Auto Update (%)"},{timeout:600*1e3,text:"10 min",refreshTemplate:"Auto Update (%)"},{timeout:-1,text:"off",refreshTemplate:"Auto Update: off",isDefault:!0}],pe=class{constructor(e,t,i=mn){this.menuIsOpened=!1;this.refreshComponent=new Oe({callback:t,elapsedCallback:o=>this.elapsedCallback(o)}),this.selectedEntry=i.find(o=>o.isDefault)||i.filter(o=>!!o.timeout)[0],this.contextMenu=$("<div />").dxContextMenu({dataSource:i,target:e,position:{my:"right top",at:"right bottom"},onItemClick:o=>{o.itemData.timeout?(this.selectedEntry=o.itemData,o.component.selectItem(this.selectedEntry),this.refreshComponent.start(o.itemData.timeout),o.component.hide()):(o.component.hide(),this.refresh())},onHidden:()=>{this.menuIsOpened=!1},onShown:o=>{this.menuIsOpened=!0,o.component.itemsContainer()[0].parentElement.classList.add("iszolea-theme")},itemTemplate:o=>o.text,cssClass:"iszolea-theme"}).appendTo("body").dxContextMenu("instance"),this.contextMenu.selectItem(this.selectedEntry),this.dropDownButton=e.dxButton({text:this.selectedEntry.text,template:(o,n)=>($("<i />").addClass("dx-icon dx-icon-refresh").appendTo(n),$("<span>").addClass("button-with-expand-text").text(o.text).appendTo(n),$("<span>").addClass("button-with-expand-icon isoz-icon-16 isoz-icon-arrow-down-16").appendTo(n),n),elementAttr:{class:"iszolea-md button-with-expand"},onClick:o=>{this.contextMenu.element().width(e.outerWidth()),this.menuIsOpened?this.contextMenu.hide():this.contextMenu.show()}}).dxButton("instance"),this.selectedEntry.timeout>0&&this.refreshComponent.start(this.selectedEntry.timeout)}refresh(){this.refreshComponent.triggerChange()}elapsedCallback(e){this.dropDownButton.option("text",this.selectedEntry.refreshTemplate.replace("%",Math.floor(e/1e3).toString()))}};var hn=3e3,Ge=class{constructor(e){this.currentGridMode=null;this.showAllDataInEdit=!1;this.loadingTimeout=null;this.grid=null;this.popover=null;this.gridStateManager=null;this.$gridStateIndicator=null;this.$gridErrorPlaceholder=null;this.$gridTargetElement=null;this.$resetSettingTargetElement=null;this.gridStateIndicatorTimeout=null;this.editWidthEditBoxes=null;this.gridRepaintQueued=!1;this.columnNamesUpdated=!1;this.refreshButton=null;this.gridPositionMarker=e.gridPositionMarker,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.addRefreshButton=e.addRefreshButton,this.gridReportControllerUrl=e.gridReportControllerUrl,this.showHeader=e.showHeader}init(){this.currentGridMode||(this.currentGridMode=P.View),this.initInternal()}refresh(){var e;(e=this.grid)==null||e.refresh()}dispose(){var e,t,i,o;(e=this.grid)==null||e.dispose(),this.grid=null,this.currentGridMode=null,(t=this.$resetSettingTargetElement)==null||t.remove(),(i=this.$gridTargetElement)==null||i.remove(),(o=this.popover)==null||o.dispose(),this.popover=null}initInternal(){var t;this.dataLayer=qi(this.gridReportControllerUrl),this.$gridTargetElement&&this.$gridTargetElement.remove(),this.$gridTargetElement=$("<div />").insertAfter(this.gridPositionMarker),this.gridStateManager=new dt(this.reportParams.ReportId,this.dataLayer),this.$gridErrorPlaceholder=$("<div />").text("Data loading failed.").addClass("dx-datagrid-nodata").css({zIndex:1}),this.$gridErrorPlaceholder.appendTo(this.gridPositionMarker),this.$gridErrorPlaceholder.hide(),this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.editWidthEditBoxes=[];let e={dataSource:this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit),elementAttr:{class:this.currentGridMode===P.Edit?"edit-mode":"view-mode"},repaintChangesOnly:!0,onToolbarPreparing:i=>{let o=i.toolbarOptions.items;if(this.currentGridMode===P.View&&this.allowEditing){let n=o.filter(d=>d.name==="searchPanel")[0],a=o.indexOf(n),s={widget:"dxButton",location:"after",options:{text:"Switch to Edit Mode",onClick:()=>this.switchToMode(P.Edit),icon:"switch-to-edit-mode",elementAttr:{class:"iszolea-md"}}};o.splice(a,1),o.push(s),o.push(n)}if(this.currentGridMode===P.Edit){let n=o.filter(g=>g.name==="columnChooserButton")[0],a=o.indexOf(n),s={location:"after",template:()=>{let g=$("<div />").css({border:"1px #e0e0e0 solid",padding:"3px 6px",borderRadius:"4px",background:"white"});$("<span />").css({margin:"0 5px 0 0",width:"54px"}).dxSwitch({value:this.showAllDataInEdit,onValueChanged:({value:y})=>{this.showAllDataInEdit=y,this.grid.option("dataSource",this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit)),this.grid.refresh()}}).appendTo(g),$("<span />").text("Show all data ").appendTo(g);let I=$("<a />").css({textDecoration:"underline",color:"blue"}).text("(?)").appendTo(g);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.
13
- By default grid shows only first 10 rows in the Edit mode.`).dxPopover({target:I,showEvent:"mouseenter",hideEvent:"mouseleave",position:"top",width:500}).appendTo(g),g}},d={widget:"dxButton",location:"after",options:{text:"Switch to View Mode",onClick:()=>this.switchToMode(P.View),icon:"switch-to-view-mode",elementAttr:{class:"iszolea-md"}}};o.splice(a,1);let m=o.filter(g=>g.name==="exportButton")[0],c=o.indexOf(m);o.splice(c,1),o.push(s),o.push(d),o.push(n);let v={location:"before",template:()=>(this.$gridStateIndicator=$("<div />").addClass("edit-grid-state"),this.updateGridStateIndicator(j.edit),this.$gridStateIndicator)};o.unshift(v)}if(this.addRefreshButton){let n=o.filter(s=>s.name==="refresh")[0],a=o.indexOf(n);o[a]={location:"after",template:()=>{let s=$("<div />");return this.refreshButton=new pe(s,()=>this.refresh()),s}}}},onCellPrepared:({rowType:i,column:o,cellElement:n})=>{if(i==="header"&&!o.command){let a=o.dataField,s=this.gridStateManager.getColumnAdditionalSettings(a);this.initGridHeaderCell(n,s),this.currentGridMode===P.Edit&&this.initGridHeaderCellEditPanel(o,n,s)}},onContentReady:i=>{let o=i.component,n=o.state();if(!this.columnNamesUpdated)this.updateColumnNaming(n);else return;if(window.setTimeout(()=>o.endCustomLoading()),this.currentGridMode!==P.Edit)return;this.gridStateManager.checkNewColumns(n).forEach(d=>i.component.columnOption(d,"visible",!1)),this.gridStateManager.getColumnCaptions().forEach(d=>{d.caption&&o.columnOption(d.dataField,"caption")!==d.caption&&o.columnOption(d.dataField,"caption",d.caption)})},stateStoring:{enabled:!0,type:"custom",customLoad:()=>this.gridStateManager.load(this.currentGridMode===P.Edit,i=>{let o=this.grid.state();o.columns=o.columns.filter(n=>i.indexOf(n.dataField)<0),this.grid.state(o)}),customSave:i=>this.saveGridState(i)},filterRow:{visible:this.currentGridMode===P.View,applyFilter:"onClick"},headerFilter:{visible:this.currentGridMode===P.View},searchPanel:{visible:this.currentGridMode===P.View},errorRowEnabled:!1,allowColumnResizing:!0,sorting:{mode:"multiple"},groupPanel:{visible:!0},grouping:{autoExpandAll:!1},allowColumnReordering:this.currentGridMode===P.Edit,columnChooser:{enabled:this.currentGridMode===P.Edit},showColumnHeaders:!0,keyboardNavigation:{enabled:!1},showBorders:!0,paging:{pageSize:50,enabled:!0},remoteOperations:!0,summary:this.reportParams.TotalSummaryColumn?{totalItems:[{column:this.reportParams.TotalSummaryColumn,summaryType:"count"}]}:void 0,onEditorPreparing(i){if(i.parentType==="filterRow"){let o=()=>i.element.find(".dx-apply-button").trigger("dxclick");i.editorOptions.onEnterKey=o,i.editorOptions.onFocusOut=o}if(i.parentType==="searchPanel"){let o=n=>{i.component.searchByText(n.component.option("value"))};i.editorOptions.onValueChanged=void 0,i.editorOptions.onEnterKey=o,i.editorOptions.onFocusOut=o}}};return this.grid=U(this.$gridTargetElement,{options:e,exportFileName:this.reportParams.Name,title:this.showHeader?this.reportParams.Name:null,headerDescription:this.showHeader?this.reportParams.Details:null}),(t=this.$resetSettingTargetElement)==null||t.remove(),this.currentGridMode===P.Edit&&(this.$resetSettingTargetElement=$("<span />").css({float:"right",position:"relative",bottom:"8px"}).addClass("iszolea-md").dxButton({text:"Reset settings",onClick:()=>this.resetSettings(),icon:"reset-grid-settings"}).appendTo("footer")),this.grid}updateGridStateIndicator(e){Object.keys(j).forEach(i=>this.$gridStateIndicator.removeClass(j[i])),this.$gridStateIndicator.addClass(e),this.gridStateIndicatorTimeout&&window.clearTimeout(this.gridStateIndicatorTimeout),e===j.saved&&(this.gridStateIndicatorTimeout=window.setTimeout(()=>{this.updateGridStateIndicator(j.edit)},hn));let t="";switch(e){case j.edit:t="Edit mode";break;case j.saved:t="Saved";break;case j.saving:t="Saving";break}this.$gridStateIndicator.attr("title",t)}updateColumnNaming(e){e.columns&&e.columns.forEach(t=>{/[^a-zA-Z0-9_]/.test(t.dataField)&&this.grid.columnOption(t.dataField,"calculateCellValue",i=>i[t.dataField])}),this.columnNamesUpdated=!0}createDataSource(e,t,i){let o=this.dataLayer.getGridDataSource(e,t,i),n=new DevExpress.data.DataSource({store:o,onChanged:t===P.View?void 0:()=>{this.columnNamesUpdated=!1},onLoadError:a=>{n.isLoaded()||this.$gridErrorPlaceholder.show(),this.grid.endCustomLoading()},onLoadingChanged:a=>{a?(this.$gridErrorPlaceholder.hide(),this.loadingTimeout=setTimeout(()=>{this.grid.beginCustomLoading("Please wait, data loading in progress.")},1e4)):(this.loadingTimeout&&(clearTimeout(this.loadingTimeout),this.loadingTimeout=null),this.grid.endCustomLoading())}});return n}resetSettings(){DevExpress.ui.dialog.confirm("Reset grid settings to default values?","Reset to default?").then(e=>{e&&(this.grid.beginCustomLoading("Loading"),this.gridStateManager.resetSettings().then(t=>{this.grid.state(t),this.grid.option("dataSource",this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit)),this.grid.refresh()}))})}switchToMode(e){if(this.currentGridMode===e||e===P.Edit&&!this.allowEditing)return;this.currentGridMode=e;let t=this.grid.option("summary.totalItems[0].column"),i=S(b({},this.reportParams),{TotalSummaryColumn:t||this.reportParams.TotalSummaryColumn});this.reportParams=i,this.grid.dispose(),this.$gridTargetElement.remove(),this.grid=this.initInternal()}saveGridState(e){if(this.currentGridMode!==P.Edit)return;this.columnNamesUpdated=!1;let t=this.gridStateManager.save(e,()=>this.updateGridStateIndicator(j.saving),()=>this.updateGridStateIndicator(j.saved));t&&Object.keys(t).forEach(i=>{let o=this.editWidthEditBoxes[i],n=t[i]==="inherit"?"":t[i];o&&o.option("value")!==n&&o.option("value",n)})}initGridHeaderCellEditPanel(e,t,i){let o=e.dataField,n=t.find(".dx-datagrid-text-content"),a=$("<span />").addClass("column-editor-area").insertAfter(n);n.css("maxWidth","55%");let s=$("<div />").addClass("edit-type-panel").width("100%").appendTo(t),d=$("<div />").addClass("edit-width-panel").width("100%").appendTo(t);s[0].addEventListener("click",l=>{l.preventDefault(),l.stopImmediatePropagation();let p=g.dxSelectBox("instance");p.option("opened")?p.close():p.open()},!0);let m=e.caption,c=$("<span />").dxButton({hint:"Edit column caption",template:(l,p)=>p.append($("<span />").addClass("edit-caption-btn")),onClick:({event:l})=>{l.preventDefault(),l.stopImmediatePropagation(),n.hide(),c.hide(),v.hide();let p=$("<span />").dxTextBox({value:m,elementAttr:{class:"caption-editor"},onEnterKey:f=>{h.blur(),f.event.stopPropagation()},onKeyDown:f=>{f.event.stopPropagation()},onFocusOut:f=>{let x=h.option("value");p.remove(),n.text(x).show(),c.show(),v.show(),m=x,this.gridStateManager.setColumnCaption(o,x),this.saveGridState(this.grid.state())}}).addClass("iszolea-sm").appendTo(a).on("click",f=>{f.stopImmediatePropagation(),f.preventDefault()}),h=p.dxTextBox("instance");h.focus()}}).insertAfter(n),v=$("<span />").dxButton({hint:"Edit column tooltip",template:(l,p)=>p.append($("<span />").addClass("edit-tooltip-btn")),onClick:({event:l})=>{l.preventDefault(),l.stopImmediatePropagation(),n.hide(),c.hide(),v.hide();let p=$("<span />").dxTextBox({value:i&&i.tooltip,text:i&&i.tooltip,placeholder:"Enter column tooltip...",onEnterKey:f=>{h.blur(),f.event.stopPropagation()},onKeyDown:f=>{f.event.stopPropagation()},onFocusOut:()=>{let f=h.option("value");p.remove(),n.show(),c.show(),v.show(),i.tooltip=f,t.attr("title",f),this.saveGridState(this.grid.state())}}).addClass("iszolea-sm").appendTo(a).on("click",f=>{f.stopImmediatePropagation(),f.preventDefault()}),h=p.dxTextBox("instance");h.focus()}}).insertAfter(c),g=$("<span />").dxSelectBox({dataSource:Me,value:e.dataType||"default",placeholder:"Select column type...",onValueChanged:({value:l})=>{this.grid.columnOption(o,"dataType",l)}}).addClass("iszolea-sm").appendTo(s),I=e.width?e.width.toString():"",y=l=>{let p=l.component.option("value");(!p||p==="inherit")&&(p=""),(!I||I==="inherit")&&(I=""),p!==I&&(I=p,this.grid.columnOption(o,"width",p||"inherit"),this.gridRepaintQueued||(window.setTimeout(()=>{this.grid.repaint(),this.gridRepaintQueued=!1},100),this.gridRepaintQueued=!0))},u=$("<span />").dxTextBox({text:I==="inherit"?"":I,placeholder:"Set width...",onEnterKey:()=>u.dxTextBox("instance").blur(),onFocusOut:y,onValueChanged:y}).addClass("iszolea-sm").appendTo(d).on("click",l=>{l.stopImmediatePropagation(),l.preventDefault()});this.editWidthEditBoxes[e.visibleIndex]=u.dxTextBox("instance")}initGridHeaderCell(e,t){let i=e.find(".dx-datagrid-text-content"),o=t&&t.tooltip,n=t&&t.caption;e.attr("title",o||void 0),n&&i.text(n)}};var gn={subvalues:[],type:"triangleMarker",color:"#8798a5",secondColor:"#e18e92",width:10,isCustomPalette:!1,palette:null,customPalette:["#61a595","Grey","rgb(153, 102, 255)","Navy"]},ae="isoz-subvalueEditorFormGroup",fn=`${ae}__name`,ji=`${ae}__is-bound`,Xi=`${ae}__value`,Yi=`${ae}__measure-id`,vn=`${ae}__color`,yn=["rectangleNeedle","triangleNeedle","rangeBar","triangleMarker","textCloud"],xn=["rectangle","circle","rhombus","rangeBar","triangleMarker","textCloud"];var wn=["LinearHorizontal","LinearVertical"],pt=["#1db2f5","#f5564a","#97c95c","#ffc720","#eb3573","#a63db8","#6593bc","#faa335","#ff887c"];var to,io,ct={ownerType:(io=(to=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:to.Model)==null?void 0:io.GaugeItem,propertyName:"GaugeSubvaluesSettings",defaultValue:JSON.stringify(gn),valueType:"string"},oo,no;(no=(oo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:oo.Model)==null||no.registerCustomProperty(ct);function Zi(r){var e,t,i;if(r.dashboardItem instanceof((t=(e=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:e.Model)==null?void 0:t.GaugeItem)){let o=xe(r.dashboardItem),n=r.options;n.subvalues=n.subvalues||[],n.subvalueIndicator=n.subvalueIndicator||{},n.subvalueIndicator.type=o.type,n.subvalueIndicator.width=o.width;let a=!!((i=r.dashboardItem.gauges()[0])==null?void 0:i.targetValue());n.subvalueIndicator.palette=o.subvalues.filter(s=>a||s.key>-1).map(s=>s.color),o.subvalues.forEach(s=>{if(s.key===-1)return;let d=s.isBound?r.itemData.getMeasureValue(s.measureId).getValue():s.value;n.subvalues.push(d)})}}function eo(r){var t,i;let e=r.dashboardItem;e instanceof((i=(t=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:t.Model)==null?void 0:i.GaugeItem)&&r.addSection({title:"Subvalues",items:[{dataField:ct.propertyName,template(o,n){let a=document.createElement("div");return new DevExpress.ui.dxButton(a,{text:"Edit in Wizard",onClick(){In(e)}}),a},label:{visible:!1}}]})}function In(r){let e=document.createElement("div");document.body.appendChild(e);let t={width:"800px",height:"auto",maxHeight:"100%",closeOnOutsideClick:!1,contentTemplate(o){let n=document.createElement("div"),a=Cn(r);this._subvaluesForm=new DevExpress.ui.dxForm(n,a);let s=document.createElement("div"),d=En(r);this._indicatorForm=new DevExpress.ui.dxForm(s,d);let m=$("<div />").append(n,s),c=$("<div />");return c.append(m),c.dxScrollView({width:"100%",height:"100%"}),c},onHidden(){document.body.removeChild(e)},title:"Subvalues Wizard"};new DevExpress.ui.dxPopup(e,t).show()}function xe(r){var i,o;let e=JSON.parse(r.customProperties.getValue(ct.propertyName));return!!((i=r.gauges()[0])==null?void 0:i.targetValue())&&(!e.subvalues||!e.subvalues.some(n=>n.key===-1))&&e.subvalues.splice(0,0,{key:-1,name:"Target Value",isBound:!1,measureId:"",value:0,color:pt[(((o=e.subvalues)==null?void 0:o.length)||0)%(pt.length-1)]}),e}function ut(r,e){return r.customProperties.setValue(ct.propertyName,JSON.stringify(e))}function bn(r,e){let t=$("<div />"),i=$("<div />");t.append(i);let o=null,n=null,a={items:[{location:"before",widget:"dxButton",options:{icon:"add",stylingMode:"text",onClick(v){let g=xe(e),I=g.subvalues.reduce((l,p)=>l<p.key?p.key:l,0)+1,y={key:I,name:`Subvalue ${I}`,isBound:!1,measureId:"",value:0,color:pt[g.subvalues.length%(pt.length-1)]};r.option("formData",y);let u=g.subvalues.filter(l=>l.key===y.key)[0];if(!u)g.subvalues.push(y);else{let l=g.subvalues.indexOf(u);g[l]=y}ut(e,g),n.reload(),n.option("selectedItem",g.subvalues[g.subvalues.length-1])}}}]},s=v=>{o&&o.option("disabled",!v)},d=new DevExpress.ui.dxToolbar(i,a);r.element().find(`.${ae}`).css("display","none");let m={dataSource:new DevExpress.data.DataSource({load:()=>xe(e).subvalues,remove:()=>{}}),displayExpr:"name",height:"200px",keyExpr:"key",noDataText:"Add a Subvalue",allowItemDeleting:!0,itemDeleteMode:"static",selectionMode:"single",onContentReady(v){s(!!v.component.option("selectedItem"))},onItemRendered(v){if(v.itemData.key===-1){let I=v.itemElement[0].getElementsByClassName("dx-list-static-delete-button-container")[0];I.style.display="none"}},onSelectionChanged(v){s(!!v.component.option("selectedItem"));let g=v.component.option("selectedItem");r.option("formData",g);let I=r.element().find(`.${ae}`).css("display")==="block",y=!!g;(!I&&y||I&&!y)&&r.element().find(`.${ae}`).css("display",y?"block":"none")},onItemDeleted:v=>{let g=xe(e),I=v.itemData.key,y=g.subvalues.indexOf(g.subvalues.filter(u=>u.key===I)[0]);y>=0&&(g.subvalues.splice(y,1),ut(e,g)),n.reload(),n.option("selectedItem",g.subvalues[g.subvalues.length-1])}},c=$("<div />");return t.append(c),n=new DevExpress.ui.dxList(c,m),[t,n,d]}function Cn(r){let e=null,t=i=>{let o=i.getEditor("value"),n=i.getEditor("measureId"),a=i.getEditor("name"),s=i.option("formData").isBound,d=i.option("formData").key===-1;o&&o.option("disabled",s),n&&n.option("disabled",!s),i.element().find(`.${ji}`).css("display",d?"none":"flex"),i.element().find(`.${Xi}`).css("display",d?"none":"flex"),i.element().find(`.${Yi}`).css("display",d?"none":"flex"),a&&a.option("disabled",d)};return{formData:null,colCount:2,items:[{itemType:"group",caption:"Subvalues items",template:i=>{let[o,n]=bn(i.component,r);return e=n,o}},{name:"subvalueEditor",cssClass:ae,itemType:"group",caption:"Item options",items:[{dataField:"name",cssClass:fn,editorType:"dxTextBox",editorOptions:{valueChangeEvent:"keyup"}},{dataField:"isBound",cssClass:ji,editorType:"dxRadioGroup",editorOptions:{displayExpr:"text",valueExpr:"value",layout:"horizontal",items:[{text:"Unbound",value:!1},{text:"Bound",value:!0}]},label:{text:"Type"}},{dataField:"value",cssClass:Xi,editorType:"dxNumberBox",label:{text:"Value"},editorOptions:{showSpinButtons:!0}},{dataField:"measureId",cssClass:Yi,editorType:"dxSelectBox",label:{text:"Hidden measures"},editorOptions:{displayExpr:"text",valueExpr:"value",items:r.hiddenMeasures().map(i=>({text:Dn(i),value:i.uniqueName()}))}},{name:"color",cssClass:vn,dataField:"color",editorType:"dxColorBox",label:{text:"Color"}}]}],onContentReady(i){t(i.component)},onFieldDataChanged(i){let o=i.component.option("formData"),n=xe(r),a=n.subvalues.filter(s=>s.key===o.key)[0];n.subvalues[n.subvalues.indexOf(a)]=o,ut(r,n),a&&a.name!==o.name&&e&&e.repaint(),t(i.component)}}}function Dn(r){if(r.name())return r.name();let e=r.dataMember();return r.summaryType&&r.summaryType()&&(e+=` (${r.summaryType()})`),e}function En(r){let e=r.viewType(),t=wn.some(i=>i===e)?xn:yn;return{formData:xe(r)||null,items:[{caption:"Indicator options",itemType:"group",items:[{dataField:"type",editorType:"dxSelectBox",label:{text:"Type"},editorOptions:{displayExpr:"text",valueExpr:"value",items:t.map(i=>({text:i,value:i}))}},{dataField:"width",editorType:"dxNumberBox",editorOptions:{showSpinButtons:!0},label:{text:"Width"}}]}],onFieldDataChanged(i){let o=i.component.option("formData"),n=xe(r);n.width=o.width,n.type=o.type,ut(r,n)}}}function ro(r){this.name="GaugeSubvalues",this.start=()=>{let e=r.findExtension("viewer-api");e&&e.on("itemWidgetOptionsPrepared",Zi);let t=r.findExtension("item-options-panel");t&&t.on("customizeSections",eo)},this.stop=()=>{let e=r.findExtension("viewer-api");e&&e.off("itemWidgetOptionsPrepared",Zi);let t=r.findExtension("item-options-panel");t&&t.off("customizeSections",eo)}}var Sn="DASHBOARD_MODE_KEY",Le=class{constructor(e){this.refreshButton=null;this.dashboard=null;this.popover=null;this.$dashboardContainer=e.$dashboardContainer,this.addRefreshButton=e.addRefreshButton,this.reportParams=e.reportParams,this.reportId=e.reportParams.ReportId,this.permissions=e.permissions,this.urls=e.urls}init(){let e=this.reportParams.ReportId&&this.reportParams.ReportId.toString();DevExpress.Dashboard.ResourceManager.embedBundledResources();let t=this.permissions.AllowEditing&&window.sessionStorage.getItem(this.getSessionKey())||"Viewer";if(this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.dashboard=new DevExpress.Dashboard.DashboardControl(this.$dashboardContainer[0],{workingMode:t,initialDashboardId:e,endpoint:this.urls.EndPoint,ajaxRemoteService:{headers:this.reportParams.Token?{token:this.reportParams.Token}:void 0},onDashboardInitializing:i=>{i.component.registerExtension(new ro(i.component)),e!==i.dashboardId&&(e=i.dashboardId,window.location.href=encodeURI(this.urls.PreviewUrl+i.dashboardId))},onBeforeRender:i=>{i.component.registerExtension(new DevExpress.Dashboard.Designer.TextBoxItemEditorExtension(i.component))},extensions:{"data-source-wizard":{enableCustomSql:!0},"dashboard-export":{allowExportDashboardItems:!0},"data-inspector":{allowInspectAggregatedData:!0,allowInspectRawData:!0,onGridInitialized:i=>{i.component.option("export.enabled",!0)}}}}),this.dashboard.render(),this.permissions.AllowEditing){let i=$(".switch-mode-btn").dxButton({text:t==="Viewer"?"Switch to Designer":"Switch to Viewer",onClick:()=>{t=t==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),t),t==="Viewer"?(this.dashboard.switchToViewer(),i.option("text","Switch to Designer")):(this.dashboard.switchToDesigner(),i.option("text","Switch to Viewer"))}}).addClass("iszolea-md").dxButton("instance");Tn(this.dashboard)}this.addRefreshButton&&(this.refreshButton=new pe($(".report-refresh-button"),()=>this.refresh()))}dispose(){var e,t;(e=this.dashboard)==null||e.dispose(),this.dashboard=null,(t=this.popover)==null||t.dispose(),this.popover=null}getSessionKey(){return Sn+this.reportId}refresh(){var e;(e=this.dashboard)==null||e.refresh()}};function Tn(r){let e=["create-dashboard","open-dashboard"],t=r.findExtension("toolbox");e.forEach(i=>{t.menuItems().filter(n=>n.id===i)[0]&&t.removeMenuItem(i)})}var mt=(a=>(a[a.Key=1]="Key",a[a.Title=2]="Title",a[a.Start=3]="Start",a[a.End=4]="End",a[a.ParentId=5]="ParentId",a[a.Progress=6]="Progress",a))(mt||{}),$e=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Designer";this.SWITCH_TO_VIEWER_TEXT="Switch to Viewer";this.CHART_STORAGE_MODE_KEY="CHART_STORAGE_MODE_KEY";this.hasForm=!1;this.chart=null;this.chartPositionMarker=e.chartPositionMarker,this.reportParams=e.reportParams,this.addRefreshButton=e.addRefreshButton,this.allowEditing=e.allowEditing,this.ganttReportControllerUrl=e.ganttReportControllerUrl,this.showHeader=e.showHeader,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}init(){let e={DbConnectionName:"",TableName:"",TaskColumns:[],ResourcesTableName:"",ResourcesTextField:"",ResourcesKeyField:"",ResourceAssignmentTaskIdField:"",ResourceAssignmentResourceIdField:"",ResourceAssignmentKeyField:"",ResourceAssignmentTableName:""},t=[],i=!1;C(`${this.ganttReportControllerUrl}/GetGanttChartSettings`,"post",{id:this.reportParams.ReportId},!1,{dataType:"json"}).then(o=>{if(e=o,!e.DbConnectionName||!e.TableName||!e.TaskColumns||!e.TaskColumns.length){e.TaskColumns=[];for(let n=0;n<6;n++)e.TaskColumns.push({taskColumnType:mt[mt[n+1]]});this.setupForm(e,!0);return}return o.TaskColumns.forEach(n=>{t[n.taskColumnType-1]=n}),e.TaskColumns=t,i=!0,C(`${this.ganttReportControllerUrl}/GetGanttChartData`,"post",{id:this.reportParams.ReportId},!1,{dataType:"json"})}).then(o=>{if(!i)return!1;this.mode==="Designer"&&this.setupForm(e,!i),this.setupChart(o.Data,t,e)}).catch(()=>{this.setupForm(e,!0)}),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=J(".diagram-details-link",this.reportParams.Details))}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),window.location.reload()}}).addClass("iszolea-md").dxButton("instance")}setupForm(e,t){this.hasForm=!0;let i=[{dataField:"DbConnectionName",caption:"Connection Name"},{dataField:"TableName",caption:"Table"}];for(let n=1;n<7;n++)i.push({itemType:"group",colCount:8,items:[{dataField:`TaskColumns[${n-1}].taskColumnType`,visible:!1},{dataField:`TaskColumns[${n-1}].dataField`,label:{location:"top",text:`${mt[n]} Data Field`}},{dataField:`TaskColumns[${n-1}].caption`,label:{location:"top",text:"Caption"}},{dataField:`TaskColumns[${n-1}].dataType`,label:{location:"top",text:"DataType"}},{dataField:`TaskColumns[${n-1}].width`,label:{location:"top",text:"Width"},editorType:"dxNumberBox"},{dataField:`TaskColumns[${n-1}].sortIndex`,label:{location:"top",text:"SortIndex"},editorType:"dxNumberBox"},{dataField:`TaskColumns[${n-1}].sortOrder`,label:{location:"top",text:"SortOrder"},editorType:"dxSelectBox",editorOptions:{items:["asc","desc"],showClearButton:!0}},{dataField:`TaskColumns[${n-1}].visible`,label:{location:"top",text:"Visible"},editorType:"dxCheckBox"},{dataField:`TaskColumns[${n-1}].visibleIndex`,label:{location:"top",text:"VisibleIndex"}}]});i.push({itemType:"group",caption:"Resources",colCount:4,items:[{dataField:"ResourcesTableName",label:{location:"top",text:"Table"},colSpan:2},{dataField:"ResourcesKeyField",label:{location:"top",text:"Key Field"}},{dataField:"ResourcesTextField",label:{location:"top",text:"Text Field"}}]}),i.push({itemType:"group",caption:"Resource Assignments",colCount:5,items:[{dataField:"ResourceAssignmentTableName",label:{location:"top",text:"Table"},colSpan:2},{dataField:"ResourceAssignmentKeyField",label:{location:"top",text:"Key Field"}},{dataField:"ResourceAssignmentTaskIdField",label:{location:"top",text:"Task Id Field"}},{dataField:"ResourceAssignmentResourceIdField",label:{location:"top",text:"Resource Id Field"}}]}),i.push({itemType:"button",buttonOptions:{text:"Save",onClick:()=>{let n=o.option("formData");n.TaskColumns&&(n.TaskColumns=n.TaskColumns.filter(a=>!!a.dataField)),C(`${this.ganttReportControllerUrl}/UpdateGanttChartSettings`,"post",{id:this.reportParams.ReportId,settings:JSON.stringify(o.option("formData"))},!0,{dataType:"json"}).then(()=>window.location.reload())}}});let o=$("<div />").css("padding",20).insertAfter(this.chartPositionMarker).dxForm({width:"100%",height:t?"calc(100% - 50px)":"calc(50% - 50px)",formData:e,scrollingEnabled:!0,items:i}).dxForm("instance")}setupChart(e,t,i){let o=0,n=!1,a={};t.forEach(s=>{s.taskColumnType&&(a[s.taskColumnType]=s.dataField)}),t.filter(s=>s.visible).forEach(s=>{let d=parseInt(s.width);isNaN(d)?n=!0:o+=d}),this.chart=this.chartPositionMarker.dxGantt({width:"100%",height:this.hasForm?"50%":"calc(100% - 60px)",firstDayOfWeek:6,taskListWidth:!n&&o>0?o:void 0,toolbar:{items:["zoomIn","zoomOut","separator","taskDetails"]},editing:{enabled:!0},columns:t.filter(s=>s.visible).map(s=>({dataField:s.dataField,dataType:s.dataType,width:s.width,visibleIndex:s.visibleIndex,sortIndex:s.sortIndex,sortOrder:s.sortOrder&&(s.sortOrder==="asc"?"asc":"desc"),caption:s.caption||void 0})),tasks:{dataSource:e.Tasks,keyExpr:a[1],startExpr:a[3],endExpr:a[4],parentIdExpr:a[5],progressExpr:a[6],titleExpr:a[2]},dependencies:{dataSource:e.Dependencies,keyExpr:"Id",predecessorIdExpr:"PredecessorId",successorIdExpr:"SuccessorId",typeExpr:"Type"},resources:{dataSource:e.Resources,keyExpr:i.ResourcesKeyField,textExpr:i.ResourcesTextField},resourceAssignments:{dataSource:e.ResourceAssignments,keyExpr:i.ResourceAssignmentKeyField,resourceIdExpr:i.ResourceAssignmentResourceIdField,taskIdExpr:i.ResourceAssignmentTaskIdField}}).dxGantt("instance")}refresh(){}dispose(){var e;(e=this.chart)==null||e.dispose(),this.chart=null}getSessionKey(){return this.CHART_STORAGE_MODE_KEY+this.reportParams.ReportId}};var ao="Switch to Designer",so="Switch to Viewer",Mn="reportMode",we="customCurrentUrl",ht=window.ko,ke=class{constructor(e){this.popover=null;this.$reportContainer=e.$reportContainer,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.designerModelUrl=e.designerModelUrl,this.reportId=e.reportParams.ReportId}init(){let e=window.sessionStorage.getItem(this.getSessionKey())||"Viewer",t=null;this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.allowEditing&&(t=$(".switch-mode-btn").dxButton({text:e==="Viewer"?ao:so,onClick:()=>{e=e==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),e),this.switchMode(e,t)}}).addClass("iszolea-md").dxButton("instance")),this.createReportDesigner(this.$reportContainer,this.designerModelUrl,"dxReportDesigner",this.reportParams.ReportId.toString(),i=>{setTimeout(()=>{this.updateSwitchModeButton(e,t)})},e==="Viewer"),window.addEventListener("beforeunload",i=>{dxReportDesigner&&dxReportDesigner.GetDesignerModel()&&dxReportDesigner.GetDesignerModel().isDirty&&(i.preventDefault(),i.returnValue="The report document is not saved. Are you sure you want to leave the page?")})}dispose(){var e;(e=this.popover)==null||e.dispose(),this.popover=null}refresh(){}initializePreview(e){let t=e.designerModel.reportPreviewModel.reportPreview,i=DevExpress.Reporting.Designer.Internal.ReportPreviewService;t.initialize(i.initializePreview(e.designerModel.model()))}switchMode(e,t){e==="Viewer"?(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible=!0,this.initializePreview(dxReportDesigner)):(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible=!1,dxReportDesigner.designerModel.reportPreviewModel.reportPreview.deactivate()),this.updateSwitchModeButton(e,t)}updateSwitchModeButton(e,t){t&&t.option("text",e==="Viewer"?ao:so)}createReportDesigner(e,t,i,o,n,a){let s=e.attr("data-bind","dxReportDesigner: designerOptions").addClass("report-designer"),d={reportUrl:o,requestOptions:{getDesignerModelAction:t},callbacks:{BeforeRender:m=>{window[i]=m,a&&(m.designerModel.reportPreviewModel.reportPreview.previewVisible=!0),n(m)},CustomizeMenuActions:this.CustomizeMenuActions,PreviewCustomizeMenuActions:this.PreviewCustomizeMenuActions,ReportOpened:(m,c)=>{a&&this.initializePreview(m),this.ReportOpened(m,c)},ReportTabClosed:this.ReportTabClosed}};return ht.applyBindings({designerOptions:d},s[0]),s}PreviewCustomizeMenuActions(e,t){let i=t.GetById(DevExpress.Reporting.Viewer.ActionId.Design);i&&(i.visible=!1)}CustomizeMenuActions(e,t){let i=DevExpress.Reporting.Designer.Actions.ActionId,o=[i.Save],n=[i.NewReport,i.NewReportViaWizard,i.OpenReport,i.Preview,i.SaveAs,i.Exit];o.forEach(d=>{let m=t.GetById(d);m&&m.container==="menu"&&(m.container=void 0)}),n.forEach(d=>{let m=t.GetById(d);m&&(m.visible=!1)});let a=t.GetById(DevExpress.Reporting.Designer.Actions.ActionId.Save),s=a.clickAction;a.clickAction=()=>{e.GetCurrentTab().url(ht.unwrap(e[we])),s()}}ReportOpened(e,t){e[we]=e[we]||ht.observable(),e[we](t.Url)}ReportTabClosed(e,t){e[we]=e[we]||ht.observable(),e[we](null)}getSessionKey(){return Mn+this.reportId}};var Ue=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.addRefreshButton=e.addRefreshButton,this.diagramControllerUrl=e.diagramControllerUrl,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}init(){this.createDiagramControl(),this.initDiagram(),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=J(".diagram-details-link",this.reportParams.Details))}dispose(){var e;this.diagram.dispose(),(e=this.popover)==null||e.dispose(),this.diagram=null}refresh(){this.diagram&&C(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e),!1),this.diagram.option("hasChanges",!1)})}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(){C(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e)),this.diagram.option("hasChanges",!1)}),this.addRefreshButton&&(this.refreshButton=new pe($(".report-refresh-button"),()=>this.refresh())),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)}}).addClass("iszolea-md").dxButton("instance")}async saveReport(e){let t=this.reportParams.ReportId;await C(this.diagramControllerUrl,"post",{id:t,source:e},!0),this.diagram.option("hasChanges",!1)}getSessionKey(){return this.DIAGRAM_STORAGE_MODE_KEY+this.reportParams.ReportId}};var gt=class{constructor(e){this.reports=[];this.options=e.reportParams,this.$rootElement=e.$container,this.defaultReportSettings=e.defaultReportSettings}init(){this.renderContent()}dispose(){if(this.reports){for(this.reports.forEach(e=>{e.dispose()});this.reports.length;)this.reports.pop();this.reports=null}this.refreshTimer&&(this.refreshTimer.dispose(),this.refreshTimer=null)}refresh(){this.reports&&this.reports.forEach(e=>{e.refresh()})}renderContent(){let e=0,t=null,i=this.options.Reports.length,o=()=>{t=window.setTimeout(()=>{let s=e+1;s>=i&&(s=0),this.dxGallery.goToItem(s,!0)},this.options.DelaySec*1e3)},n=$("<div />").attr({class:"slideshow-report"}).appendTo(this.$rootElement),a=$("<div />",{class:"slideshow-report__gallery"}).dxGallery({loop:!1,dataSource:this.options.Reports,slideshowDelay:0,showNavButtons:!1,showIndicator:!0,stretchImages:!0,height:"100%",onInitialized:()=>o(),onSelectionChanged:s=>{e=s.component.option("selectedIndex"),window.clearTimeout(t),o()},itemTemplate:(s,d,m)=>{m.attr({class:"slideshow-report__gallery-item"}).height("100%");let c=$("<div />",{class:"slideshow-report__slide-content"}).height("100%"),v;window.setTimeout(()=>{switch(s.Type){case 1:let g=$("<div />",{class:"report-position"});g.appendTo(c),v=new Le(S(b({},this.defaultReportSettings[1]||{}),{$dashboardContainer:g,reportParams:s})),c.find("dashboard-title").hide(),c.find(".dx-dashboard-layout-container").css({top:0});break;case 0:let I=$("<div />",{class:"slideshow-report__grid-position"});c.addClass("iszolea-theme").addClass("panel-body"),I.appendTo(c),v=new Ge(S(b({},this.defaultReportSettings[0]||{}),{gridPositionMarker:I,reportParams:s}));break;case 5:v=new ye(S(b({},this.defaultReportSettings[5]||{}),{$container:c,reportParams:s}));break;case 3:let y=$("<div />",{class:"report-position"});y.appendTo(c),v=new ke(S(b({},this.defaultReportSettings[3]||{}),{$reportContainer:y,reportParams:s}));break;case 4:let u=$("<div />",{class:"report-position"});u.appendTo(c),v=new Ue(S(b({},this.defaultReportSettings[4]||{}),{$container:u,reportParams:s}));break;case 7:let l=$("<div />",{class:"slideshow-report__grid-position"});c.addClass("iszolea-theme").addClass("panel-body"),l.appendTo(c),v=new $e(S(b({},this.defaultReportSettings[7]||{}),{chartPositionMarker:l,reportParams:s}));break;case 2:case 6:break}v&&(v.init(),this.reports.push(v))},500),c.appendTo(m)}});this.dxGallery=a.dxGallery("instance"),a.appendTo(n),this.refreshTimer=new Oe({callback:()=>this.refresh(),elapsedCallback:s=>{}}),this.refreshTimer.start(this.options.RefreshSec*1e3)}};var lo={config:B,Header:fe,Footer:Pe,NavigationMenu:Se,UserMenu:he,MenuSwitcher:Te,data:yi,widgets:{notify:R,fullScreen:Z,popup:wt,confirm:zt,landing:Ht,accessDenied:Wt,defaultGridObsolete:$i,defaultTreeList:ki,defaultGrid:U,defaultToolbar:Si,backgroundImageViewer:Ze,imageCropDialog:At},pages:{AccountSettingsPage:_t},components:{CDM:ni,SessionNotifier:ri,FileImporter:ve,FileUploader:Ke},styling:yt,helpers:Dt,utils:Mt,reports:{CDMReportPage:ye,DiagramReportPage:Ue,GridReportPage:Ge,DashboardReportPage:Le,DXReportPage:ke,SlideshowReportPage:gt,GanttChartReportPage:$e,gridColumnTypes:Me},business:{LicenceStatus:Ne,MenuItemType:ue,CdmImportFileMode:Re,FooterIndicatorStatus:Ft,GridDataColumnDataType:Fe}},Ni=lo;window.IszoleaUI=lo;})();
12
+ `,"Remove redundant columns?").then(a=>{!a||t(n)})})}resetSettings(){return this.gridDataLayer.resetSettings(this.id).then(e=>(this.onDataLoaded(e),e))}onDataLoaded(e){let t=e&&e.columns,i=0;this.stateLoaded=!0,t&&(this.loadedColumns={},t.forEach(o=>{this.loadedColumns[o.dataField]=!0,o.visible&&o.visibleIndex===null&&(o.visibleIndex=i++),Object.keys(o).forEach(a=>{(o[a]===null||o[a]===void 0||o[a]==="")&&delete o[a]});let n=this.additionalColumnsSettings[o.dataField];n?(n.caption=o.caption,n.tooltip=o.tooltip):this.additionalColumnsSettings[o.dataField]={caption:o.caption,tooltip:o.tooltip},delete o.caption,delete o.tooltip})),this.lastColumnSettingsStr=JSON.stringify(e.columns)}};var Qi=(t=>(t[t.View=1]="View",t[t.Edit=2]="Edit",t))(Qi||{}),P=Qi;var qi=r=>{let e={gridResult:`${r}/GridViewResult`,getColumnsByReportId:`${r}/GetDbTableFields`,resetGridSettings:`${r}/ResetGridViewSettings`,updateGridViewSettings:`${r}/UpdateGridViewSettings`,getGridViewSettings:`${r}/GetGridViewSettings`};return{getGridDataSource(t,i,o){return q({loadParams:{id:t.ReportId,appName:t.AppName,gridMode:i,rowsLimit:i===P.Edit&&!o?15:null},loadUrl:e.gridResult,getUserFriendlyErrorMessage:cn})},getColumnsByReportId:t=>C(e.getColumnsByReportId,"post",{id:t},!1,{dataType:"json"}),resetSettings:t=>C(e.resetGridSettings,"post",{id:t},!1,{dataType:"json"}),updateGridViewSettings:(t,i)=>C(e.updateGridViewSettings,"post",{id:t,columnsSettings:JSON.stringify(i.columns)},!1,{dataType:"json"}),getGridViewSettings:t=>C(e.getGridViewSettings,"post",{id:t},!1,{dataType:"json"})}},cn=r=>{switch(r){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 Oe=class{constructor(e){this.activeTimerId=0;this.currentInterval=0;this.elapsedCallback=e.elapsedCallback,this.callback=e.callback}start(e){if(e<=0){this.callback();return}this.lastStateChecked=new Date,this.currentInterval=e;let t=this.activeTimerId=Math.random();if(this.currentInterval<0){this.elapsedCallback(this.currentInterval);return}this.tickTimerFunction(t)}triggerChange(){this.lastStateChecked=new Date,this.callback()}dispose(){this.activeTimerId--}tickTimerFunction(e){if(e!==this.activeTimerId)return;let t=this.currentInterval-(new Date-this.lastStateChecked);t<=0&&(t=this.currentInterval+999,this.callback(),this.lastStateChecked=new Date),this.elapsedCallback(t),setTimeout(()=>this.tickTimerFunction(e),100)}};var hn=[{timeout:0,text:"refresh now",refreshTemplate:""},{timeout:15*1e3,text:"15 sec",refreshTemplate:"Auto Update (%)"},{timeout:30*1e3,text:"30 sec",refreshTemplate:"Auto Update (%)"},{timeout:60*1e3,text:"1 min",refreshTemplate:"Auto Update (%)"},{timeout:180*1e3,text:"3 min",refreshTemplate:"Auto Update (%)"},{timeout:300*1e3,text:"5 min",refreshTemplate:"Auto Update (%)"},{timeout:600*1e3,text:"10 min",refreshTemplate:"Auto Update (%)"},{timeout:-1,text:"off",refreshTemplate:"Auto Update: off",isDefault:!0}],ee=class{constructor(e,t,i=hn){this.menuIsOpened=!1;this.refreshComponent=new Oe({callback:t,elapsedCallback:o=>this.elapsedCallback(o)}),this.selectedEntry=i.find(o=>o.isDefault)||i.filter(o=>!!o.timeout)[0],this.contextMenu=$("<div />").dxContextMenu({dataSource:i,target:e,position:{my:"right top",at:"right bottom"},onItemClick:o=>{o.itemData.timeout?(this.selectedEntry=o.itemData,o.component.selectItem(this.selectedEntry),this.refreshComponent.start(o.itemData.timeout),o.component.hide()):(o.component.hide(),this.refresh())},onHidden:()=>{this.menuIsOpened=!1},onShown:o=>{this.menuIsOpened=!0,o.component.itemsContainer()[0].parentElement.classList.add("iszolea-theme")},itemTemplate:o=>o.text,cssClass:"iszolea-theme"}).appendTo("body").dxContextMenu("instance"),this.contextMenu.selectItem(this.selectedEntry),this.dropDownButton=e.dxButton({text:this.selectedEntry.text,template:(o,n)=>($("<i />").addClass("dx-icon dx-icon-refresh").appendTo(n),$("<span>").addClass("button-with-expand-text").text(o.text).appendTo(n),$("<span>").addClass("button-with-expand-icon isoz-icon-16 isoz-icon-arrow-down-16").appendTo(n),n),elementAttr:{class:"iszolea-md button-with-expand"},onClick:o=>{this.contextMenu.element().width(e.outerWidth()),this.menuIsOpened?this.contextMenu.hide():this.contextMenu.show()}}).dxButton("instance"),this.selectedEntry.timeout>0&&this.refreshComponent.start(this.selectedEntry.timeout)}refresh(){this.refreshComponent.triggerChange()}elapsedCallback(e){this.dropDownButton.option("text",this.selectedEntry.refreshTemplate.replace("%",Math.floor(e/1e3).toString()))}};var mn=3e3,Ge=class{constructor(e){this.currentGridMode=null;this.showAllDataInEdit=!1;this.loadingTimeout=null;this.grid=null;this.popover=null;this.gridStateManager=null;this.$gridStateIndicator=null;this.$gridErrorPlaceholder=null;this.$gridTargetElement=null;this.$resetSettingTargetElement=null;this.gridStateIndicatorTimeout=null;this.editWidthEditBoxes=null;this.gridRepaintQueued=!1;this.columnNamesUpdated=!1;this.refreshButton=null;this.gridPositionMarker=e.gridPositionMarker,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.addRefreshButton=e.addRefreshButton,this.gridReportControllerUrl=e.gridReportControllerUrl,this.showHeader=e.showHeader}init(){this.currentGridMode||(this.currentGridMode=P.View),this.initInternal()}refresh(){var e;(e=this.grid)==null||e.refresh()}dispose(){var e,t,i,o;(e=this.grid)==null||e.dispose(),this.grid=null,this.currentGridMode=null,(t=this.$resetSettingTargetElement)==null||t.remove(),(i=this.$gridTargetElement)==null||i.remove(),(o=this.popover)==null||o.dispose(),this.popover=null}initInternal(){var t;this.dataLayer=qi(this.gridReportControllerUrl),this.$gridTargetElement&&this.$gridTargetElement.remove(),this.$gridTargetElement=$("<div />").insertAfter(this.gridPositionMarker),this.gridStateManager=new dt(this.reportParams.ReportId,this.dataLayer),this.$gridErrorPlaceholder=$("<div />").text("Data loading failed.").addClass("dx-datagrid-nodata").css({zIndex:1}),this.$gridErrorPlaceholder.appendTo(this.gridPositionMarker),this.$gridErrorPlaceholder.hide(),this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.editWidthEditBoxes=[];let e={dataSource:this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit),elementAttr:{class:this.currentGridMode===P.Edit?"edit-mode":"view-mode"},repaintChangesOnly:!0,onToolbarPreparing:i=>{let o=i.toolbarOptions.items;if(this.currentGridMode===P.View&&this.allowEditing){let n=o.filter(d=>d.name==="searchPanel")[0],a=o.indexOf(n),s={widget:"dxButton",location:"after",options:{text:"Switch to Edit Mode",onClick:()=>this.switchToMode(P.Edit),icon:"switch-to-edit-mode",elementAttr:{class:"iszolea-md"}}};o.splice(a,1),o.push(s),o.push(n)}if(this.currentGridMode===P.Edit){let n=o.filter(g=>g.name==="columnChooserButton")[0],a=o.indexOf(n),s={location:"after",template:()=>{let g=$("<div />").css({border:"1px #e0e0e0 solid",padding:"3px 6px",borderRadius:"4px",background:"white"});$("<span />").css({margin:"0 5px 0 0",width:"54px"}).dxSwitch({value:this.showAllDataInEdit,onValueChanged:({value:y})=>{this.showAllDataInEdit=y,this.grid.option("dataSource",this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit)),this.grid.refresh()}}).appendTo(g),$("<span />").text("Show all data ").appendTo(g);let I=$("<a />").css({textDecoration:"underline",color:"blue"}).text("(?)").appendTo(g);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.
13
+ By default grid shows only first 10 rows in the Edit mode.`).dxPopover({target:I,showEvent:"mouseenter",hideEvent:"mouseleave",position:"top",width:500}).appendTo(g),g}},d={widget:"dxButton",location:"after",options:{text:"Switch to View Mode",onClick:()=>this.switchToMode(P.View),icon:"switch-to-view-mode",elementAttr:{class:"iszolea-md"}}};o.splice(a,1);let h=o.filter(g=>g.name==="exportButton")[0],c=o.indexOf(h);o.splice(c,1),o.push(s),o.push(d),o.push(n);let v={location:"before",template:()=>(this.$gridStateIndicator=$("<div />").addClass("edit-grid-state"),this.updateGridStateIndicator(j.edit),this.$gridStateIndicator)};o.unshift(v)}if(this.addRefreshButton){let n=o.filter(s=>s.name==="refresh")[0],a=o.indexOf(n);o[a]={location:"after",template:()=>{let s=$("<div />");return this.refreshButton=new ee(s,()=>this.refresh()),s}}}},onCellPrepared:({rowType:i,column:o,cellElement:n})=>{if(i==="header"&&!o.command){let a=o.dataField,s=this.gridStateManager.getColumnAdditionalSettings(a);this.initGridHeaderCell(n,s),this.currentGridMode===P.Edit&&this.initGridHeaderCellEditPanel(o,n,s)}},onContentReady:i=>{let o=i.component,n=o.state();if(!this.columnNamesUpdated)this.updateColumnNaming(n);else return;if(window.setTimeout(()=>o.endCustomLoading()),this.currentGridMode!==P.Edit)return;this.gridStateManager.checkNewColumns(n).forEach(d=>i.component.columnOption(d,"visible",!1)),this.gridStateManager.getColumnCaptions().forEach(d=>{d.caption&&o.columnOption(d.dataField,"caption")!==d.caption&&o.columnOption(d.dataField,"caption",d.caption)})},stateStoring:{enabled:!0,type:"custom",customLoad:()=>this.gridStateManager.load(this.currentGridMode===P.Edit,i=>{let o=this.grid.state();o.columns=o.columns.filter(n=>i.indexOf(n.dataField)<0),this.grid.state(o)}),customSave:i=>this.saveGridState(i)},filterRow:{visible:this.currentGridMode===P.View,applyFilter:"onClick"},headerFilter:{visible:this.currentGridMode===P.View},searchPanel:{visible:this.currentGridMode===P.View},errorRowEnabled:!1,allowColumnResizing:!0,sorting:{mode:"multiple"},groupPanel:{visible:!0},grouping:{autoExpandAll:!1},allowColumnReordering:this.currentGridMode===P.Edit,columnChooser:{enabled:this.currentGridMode===P.Edit},showColumnHeaders:!0,keyboardNavigation:{enabled:!1},showBorders:!0,paging:{pageSize:50,enabled:!0},remoteOperations:!0,summary:this.reportParams.TotalSummaryColumn?{totalItems:[{column:this.reportParams.TotalSummaryColumn,summaryType:"count"}]}:void 0,onEditorPreparing(i){if(i.parentType==="filterRow"){let o=()=>i.element.find(".dx-apply-button").trigger("dxclick");i.editorOptions.onEnterKey=o,i.editorOptions.onFocusOut=o}if(i.parentType==="searchPanel"){let o=n=>{i.component.searchByText(n.component.option("value"))};i.editorOptions.onValueChanged=void 0,i.editorOptions.onEnterKey=o,i.editorOptions.onFocusOut=o}}};return this.grid=U(this.$gridTargetElement,{options:e,exportFileName:this.reportParams.Name,title:this.showHeader?this.reportParams.Name:null,headerDescription:this.showHeader?this.reportParams.Details:null}),(t=this.$resetSettingTargetElement)==null||t.remove(),this.currentGridMode===P.Edit&&(this.$resetSettingTargetElement=$("<span />").css({float:"right",position:"relative",bottom:"8px"}).addClass("iszolea-md").dxButton({text:"Reset settings",onClick:()=>this.resetSettings(),icon:"reset-grid-settings"}).appendTo("footer")),this.grid}updateGridStateIndicator(e){Object.keys(j).forEach(i=>this.$gridStateIndicator.removeClass(j[i])),this.$gridStateIndicator.addClass(e),this.gridStateIndicatorTimeout&&window.clearTimeout(this.gridStateIndicatorTimeout),e===j.saved&&(this.gridStateIndicatorTimeout=window.setTimeout(()=>{this.updateGridStateIndicator(j.edit)},mn));let t="";switch(e){case j.edit:t="Edit mode";break;case j.saved:t="Saved";break;case j.saving:t="Saving";break}this.$gridStateIndicator.attr("title",t)}updateColumnNaming(e){e.columns&&e.columns.forEach(t=>{/[^a-zA-Z0-9_]/.test(t.dataField)&&this.grid.columnOption(t.dataField,"calculateCellValue",i=>i[t.dataField])}),this.columnNamesUpdated=!0}createDataSource(e,t,i){let o=this.dataLayer.getGridDataSource(e,t,i),n=new DevExpress.data.DataSource({store:o,onChanged:t===P.View?void 0:()=>{this.columnNamesUpdated=!1},onLoadError:a=>{n.isLoaded()||this.$gridErrorPlaceholder.show(),this.grid.endCustomLoading()},onLoadingChanged:a=>{a?(this.$gridErrorPlaceholder.hide(),this.loadingTimeout=setTimeout(()=>{this.grid.beginCustomLoading("Please wait, data loading in progress.")},1e4)):(this.loadingTimeout&&(clearTimeout(this.loadingTimeout),this.loadingTimeout=null),this.grid.endCustomLoading())}});return n}resetSettings(){DevExpress.ui.dialog.confirm("Reset grid settings to default values?","Reset to default?").then(e=>{e&&(this.grid.beginCustomLoading("Loading"),this.gridStateManager.resetSettings().then(t=>{this.grid.state(t),this.grid.option("dataSource",this.createDataSource(this.reportParams,this.currentGridMode,this.showAllDataInEdit)),this.grid.refresh()}))})}switchToMode(e){if(this.currentGridMode===e||e===P.Edit&&!this.allowEditing)return;this.currentGridMode=e;let t=this.grid.option("summary.totalItems[0].column"),i=T(b({},this.reportParams),{TotalSummaryColumn:t||this.reportParams.TotalSummaryColumn});this.reportParams=i,this.grid.dispose(),this.$gridTargetElement.remove(),this.grid=this.initInternal()}saveGridState(e){if(this.currentGridMode!==P.Edit)return;this.columnNamesUpdated=!1;let t=this.gridStateManager.save(e,()=>this.updateGridStateIndicator(j.saving),()=>this.updateGridStateIndicator(j.saved));t&&Object.keys(t).forEach(i=>{let o=this.editWidthEditBoxes[i],n=t[i]==="inherit"?"":t[i];o&&o.option("value")!==n&&o.option("value",n)})}initGridHeaderCellEditPanel(e,t,i){let o=e.dataField,n=t.find(".dx-datagrid-text-content"),a=$("<span />").addClass("column-editor-area").insertAfter(n);n.css("maxWidth","55%");let s=$("<div />").addClass("edit-type-panel").width("100%").appendTo(t),d=$("<div />").addClass("edit-width-panel").width("100%").appendTo(t);s[0].addEventListener("click",l=>{l.preventDefault(),l.stopImmediatePropagation();let p=g.dxSelectBox("instance");p.option("opened")?p.close():p.open()},!0);let h=e.caption,c=$("<span />").dxButton({hint:"Edit column caption",template:(l,p)=>p.append($("<span />").addClass("edit-caption-btn")),onClick:({event:l})=>{l.preventDefault(),l.stopImmediatePropagation(),n.hide(),c.hide(),v.hide();let p=$("<span />").dxTextBox({value:h,elementAttr:{class:"caption-editor"},onEnterKey:f=>{m.blur(),f.event.stopPropagation()},onKeyDown:f=>{f.event.stopPropagation()},onFocusOut:f=>{let x=m.option("value");p.remove(),n.text(x).show(),c.show(),v.show(),h=x,this.gridStateManager.setColumnCaption(o,x),this.saveGridState(this.grid.state())}}).addClass("iszolea-sm").appendTo(a).on("click",f=>{f.stopImmediatePropagation(),f.preventDefault()}),m=p.dxTextBox("instance");m.focus()}}).insertAfter(n),v=$("<span />").dxButton({hint:"Edit column tooltip",template:(l,p)=>p.append($("<span />").addClass("edit-tooltip-btn")),onClick:({event:l})=>{l.preventDefault(),l.stopImmediatePropagation(),n.hide(),c.hide(),v.hide();let p=$("<span />").dxTextBox({value:i&&i.tooltip,text:i&&i.tooltip,placeholder:"Enter column tooltip...",onEnterKey:f=>{m.blur(),f.event.stopPropagation()},onKeyDown:f=>{f.event.stopPropagation()},onFocusOut:()=>{let f=m.option("value");p.remove(),n.show(),c.show(),v.show(),i.tooltip=f,t.attr("title",f),this.saveGridState(this.grid.state())}}).addClass("iszolea-sm").appendTo(a).on("click",f=>{f.stopImmediatePropagation(),f.preventDefault()}),m=p.dxTextBox("instance");m.focus()}}).insertAfter(c),g=$("<span />").dxSelectBox({dataSource:Me,value:e.dataType||"default",placeholder:"Select column type...",onValueChanged:({value:l})=>{this.grid.columnOption(o,"dataType",l)}}).addClass("iszolea-sm").appendTo(s),I=e.width?e.width.toString():"",y=l=>{let p=l.component.option("value");(!p||p==="inherit")&&(p=""),(!I||I==="inherit")&&(I=""),p!==I&&(I=p,this.grid.columnOption(o,"width",p||"inherit"),this.gridRepaintQueued||(window.setTimeout(()=>{this.grid.repaint(),this.gridRepaintQueued=!1},100),this.gridRepaintQueued=!0))},u=$("<span />").dxTextBox({text:I==="inherit"?"":I,placeholder:"Set width...",onEnterKey:()=>u.dxTextBox("instance").blur(),onFocusOut:y,onValueChanged:y}).addClass("iszolea-sm").appendTo(d).on("click",l=>{l.stopImmediatePropagation(),l.preventDefault()});this.editWidthEditBoxes[e.visibleIndex]=u.dxTextBox("instance")}initGridHeaderCell(e,t){let i=e.find(".dx-datagrid-text-content"),o=t&&t.tooltip,n=t&&t.caption;e.attr("title",o||void 0),n&&i.text(n)}};var gn={subvalues:[],type:"triangleMarker",color:"#8798a5",secondColor:"#e18e92",width:10,isCustomPalette:!1,palette:null,customPalette:["#61a595","Grey","rgb(153, 102, 255)","Navy"]},se="isoz-subvalueEditorFormGroup",fn=`${se}__name`,ji=`${se}__is-bound`,Xi=`${se}__value`,Yi=`${se}__measure-id`,vn=`${se}__color`,yn=["rectangleNeedle","triangleNeedle","rangeBar","triangleMarker","textCloud"],xn=["rectangle","circle","rhombus","rangeBar","triangleMarker","textCloud"];var wn=["LinearHorizontal","LinearVertical"],pt=["#1db2f5","#f5564a","#97c95c","#ffc720","#eb3573","#a63db8","#6593bc","#faa335","#ff887c"];var to,io,ct={ownerType:(io=(to=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:to.Model)==null?void 0:io.GaugeItem,propertyName:"GaugeSubvaluesSettings",defaultValue:JSON.stringify(gn),valueType:"string"},oo,no;(no=(oo=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:oo.Model)==null||no.registerCustomProperty(ct);function Zi(r){var e,t,i;if(r.dashboardItem instanceof((t=(e=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:e.Model)==null?void 0:t.GaugeItem)){let o=xe(r.dashboardItem),n=r.options;n.subvalues=n.subvalues||[],n.subvalueIndicator=n.subvalueIndicator||{},n.subvalueIndicator.type=o.type,n.subvalueIndicator.width=o.width;let a=!!((i=r.dashboardItem.gauges()[0])==null?void 0:i.targetValue());n.subvalueIndicator.palette=o.subvalues.filter(s=>a||s.key>-1).map(s=>s.color),o.subvalues.forEach(s=>{if(s.key===-1)return;let d=s.isBound?r.itemData.getMeasureValue(s.measureId).getValue():s.value;n.subvalues.push(d)})}}function eo(r){var t,i;let e=r.dashboardItem;e instanceof((i=(t=DevExpress==null?void 0:DevExpress.Dashboard)==null?void 0:t.Model)==null?void 0:i.GaugeItem)&&r.addSection({title:"Subvalues",items:[{dataField:ct.propertyName,template(o,n){let a=document.createElement("div");return new DevExpress.ui.dxButton(a,{text:"Edit in Wizard",onClick(){In(e)}}),a},label:{visible:!1}}]})}function In(r){let e=document.createElement("div");document.body.appendChild(e);let t={width:"800px",height:"auto",maxHeight:"100%",closeOnOutsideClick:!1,contentTemplate(o){let n=document.createElement("div"),a=Cn(r);this._subvaluesForm=new DevExpress.ui.dxForm(n,a);let s=document.createElement("div"),d=En(r);this._indicatorForm=new DevExpress.ui.dxForm(s,d);let h=$("<div />").append(n,s),c=$("<div />");return c.append(h),c.dxScrollView({width:"100%",height:"100%"}),c},onHidden(){document.body.removeChild(e)},title:"Subvalues Wizard"};new DevExpress.ui.dxPopup(e,t).show()}function xe(r){var i,o;let e=JSON.parse(r.customProperties.getValue(ct.propertyName));return!!((i=r.gauges()[0])==null?void 0:i.targetValue())&&(!e.subvalues||!e.subvalues.some(n=>n.key===-1))&&e.subvalues.splice(0,0,{key:-1,name:"Target Value",isBound:!1,measureId:"",value:0,color:pt[(((o=e.subvalues)==null?void 0:o.length)||0)%(pt.length-1)]}),e}function ut(r,e){return r.customProperties.setValue(ct.propertyName,JSON.stringify(e))}function bn(r,e){let t=$("<div />"),i=$("<div />");t.append(i);let o=null,n=null,a={items:[{location:"before",widget:"dxButton",options:{icon:"add",stylingMode:"text",onClick(v){let g=xe(e),I=g.subvalues.reduce((l,p)=>l<p.key?p.key:l,0)+1,y={key:I,name:`Subvalue ${I}`,isBound:!1,measureId:"",value:0,color:pt[g.subvalues.length%(pt.length-1)]};r.option("formData",y);let u=g.subvalues.filter(l=>l.key===y.key)[0];if(!u)g.subvalues.push(y);else{let l=g.subvalues.indexOf(u);g[l]=y}ut(e,g),n.reload(),n.option("selectedItem",g.subvalues[g.subvalues.length-1])}}}]},s=v=>{o&&o.option("disabled",!v)},d=new DevExpress.ui.dxToolbar(i,a);r.element().find(`.${se}`).css("display","none");let h={dataSource:new DevExpress.data.DataSource({load:()=>xe(e).subvalues,remove:()=>{}}),displayExpr:"name",height:"200px",keyExpr:"key",noDataText:"Add a Subvalue",allowItemDeleting:!0,itemDeleteMode:"static",selectionMode:"single",onContentReady(v){s(!!v.component.option("selectedItem"))},onItemRendered(v){if(v.itemData.key===-1){let I=v.itemElement[0].getElementsByClassName("dx-list-static-delete-button-container")[0];I.style.display="none"}},onSelectionChanged(v){s(!!v.component.option("selectedItem"));let g=v.component.option("selectedItem");r.option("formData",g);let I=r.element().find(`.${se}`).css("display")==="block",y=!!g;(!I&&y||I&&!y)&&r.element().find(`.${se}`).css("display",y?"block":"none")},onItemDeleted:v=>{let g=xe(e),I=v.itemData.key,y=g.subvalues.indexOf(g.subvalues.filter(u=>u.key===I)[0]);y>=0&&(g.subvalues.splice(y,1),ut(e,g)),n.reload(),n.option("selectedItem",g.subvalues[g.subvalues.length-1])}},c=$("<div />");return t.append(c),n=new DevExpress.ui.dxList(c,h),[t,n,d]}function Cn(r){let e=null,t=i=>{let o=i.getEditor("value"),n=i.getEditor("measureId"),a=i.getEditor("name"),s=i.option("formData").isBound,d=i.option("formData").key===-1;o&&o.option("disabled",s),n&&n.option("disabled",!s),i.element().find(`.${ji}`).css("display",d?"none":"flex"),i.element().find(`.${Xi}`).css("display",d?"none":"flex"),i.element().find(`.${Yi}`).css("display",d?"none":"flex"),a&&a.option("disabled",d)};return{formData:null,colCount:2,items:[{itemType:"group",caption:"Subvalues items",template:i=>{let[o,n]=bn(i.component,r);return e=n,o}},{name:"subvalueEditor",cssClass:se,itemType:"group",caption:"Item options",items:[{dataField:"name",cssClass:fn,editorType:"dxTextBox",editorOptions:{valueChangeEvent:"keyup"}},{dataField:"isBound",cssClass:ji,editorType:"dxRadioGroup",editorOptions:{displayExpr:"text",valueExpr:"value",layout:"horizontal",items:[{text:"Unbound",value:!1},{text:"Bound",value:!0}]},label:{text:"Type"}},{dataField:"value",cssClass:Xi,editorType:"dxNumberBox",label:{text:"Value"},editorOptions:{showSpinButtons:!0}},{dataField:"measureId",cssClass:Yi,editorType:"dxSelectBox",label:{text:"Hidden measures"},editorOptions:{displayExpr:"text",valueExpr:"value",items:r.hiddenMeasures().map(i=>({text:Dn(i),value:i.uniqueName()}))}},{name:"color",cssClass:vn,dataField:"color",editorType:"dxColorBox",label:{text:"Color"}}]}],onContentReady(i){t(i.component)},onFieldDataChanged(i){let o=i.component.option("formData"),n=xe(r),a=n.subvalues.filter(s=>s.key===o.key)[0];n.subvalues[n.subvalues.indexOf(a)]=o,ut(r,n),a&&a.name!==o.name&&e&&e.repaint(),t(i.component)}}}function Dn(r){if(r.name())return r.name();let e=r.dataMember();return r.summaryType&&r.summaryType()&&(e+=` (${r.summaryType()})`),e}function En(r){let e=r.viewType(),t=wn.some(i=>i===e)?xn:yn;return{formData:xe(r)||null,items:[{caption:"Indicator options",itemType:"group",items:[{dataField:"type",editorType:"dxSelectBox",label:{text:"Type"},editorOptions:{displayExpr:"text",valueExpr:"value",items:t.map(i=>({text:i,value:i}))}},{dataField:"width",editorType:"dxNumberBox",editorOptions:{showSpinButtons:!0},label:{text:"Width"}}]}],onFieldDataChanged(i){let o=i.component.option("formData"),n=xe(r);n.width=o.width,n.type=o.type,ut(r,n)}}}function ro(r){this.name="GaugeSubvalues",this.start=()=>{let e=r.findExtension("viewer-api");e&&e.on("itemWidgetOptionsPrepared",Zi);let t=r.findExtension("item-options-panel");t&&t.on("customizeSections",eo)},this.stop=()=>{let e=r.findExtension("viewer-api");e&&e.off("itemWidgetOptionsPrepared",Zi);let t=r.findExtension("item-options-panel");t&&t.off("customizeSections",eo)}}var Tn="DASHBOARD_MODE_KEY",Le=class{constructor(e){this.refreshButton=null;this.dashboard=null;this.popover=null;this.$dashboardContainer=e.$dashboardContainer,this.addRefreshButton=e.addRefreshButton,this.reportParams=e.reportParams,this.reportId=e.reportParams.ReportId,this.permissions=e.permissions,this.urls=e.urls}init(){let e=this.reportParams.ReportId&&this.reportParams.ReportId.toString();DevExpress.Dashboard.ResourceManager.embedBundledResources();let t=this.permissions.AllowEditing&&window.sessionStorage.getItem(this.getSessionKey())||"Viewer";if(this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.dashboard=new DevExpress.Dashboard.DashboardControl(this.$dashboardContainer[0],{workingMode:t,initialDashboardId:e,endpoint:this.urls.EndPoint,ajaxRemoteService:{headers:this.reportParams.Token?{token:this.reportParams.Token}:void 0},onDashboardInitializing:i=>{i.component.registerExtension(new ro(i.component)),e!==i.dashboardId&&(e=i.dashboardId,window.location.href=encodeURI(this.urls.PreviewUrl+i.dashboardId))},onBeforeRender:i=>{i.component.registerExtension(new DevExpress.Dashboard.Designer.TextBoxItemEditorExtension(i.component))},extensions:{"data-source-wizard":{enableCustomSql:!0},"dashboard-export":{allowExportDashboardItems:!0},"data-inspector":{allowInspectAggregatedData:!0,allowInspectRawData:!0,onGridInitialized:i=>{i.component.option("export.enabled",!0)}}}}),this.dashboard.render(),this.permissions.AllowEditing){let i=$(".switch-mode-btn").dxButton({text:t==="Viewer"?"Switch to Designer":"Switch to Viewer",onClick:()=>{t=t==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),t),t==="Viewer"?(this.dashboard.switchToViewer(),i.option("text","Switch to Designer")):(this.dashboard.switchToDesigner(),i.option("text","Switch to Viewer"))}}).addClass("iszolea-md").dxButton("instance");Sn(this.dashboard)}this.addRefreshButton&&(this.refreshButton=new ee($(".report-refresh-button"),()=>this.refresh()))}dispose(){var e,t;(e=this.dashboard)==null||e.dispose(),this.dashboard=null,(t=this.popover)==null||t.dispose(),this.popover=null}getSessionKey(){return Tn+this.reportId}refresh(){var e;(e=this.dashboard)==null||e.refresh()}};function Sn(r){let e=["create-dashboard","open-dashboard"],t=r.findExtension("toolbox");e.forEach(i=>{t.menuItems().filter(n=>n.id===i)[0]&&t.removeMenuItem(i)})}var ht=(a=>(a[a.Key=1]="Key",a[a.Title=2]="Title",a[a.Start=3]="Start",a[a.End=4]="End",a[a.ParentId=5]="ParentId",a[a.Progress=6]="Progress",a))(ht||{}),ke=class{constructor(e){this.SWITCH_TO_DESIGNER_TEXT="Switch to Designer";this.SWITCH_TO_VIEWER_TEXT="Switch to Viewer";this.CHART_STORAGE_MODE_KEY="CHART_STORAGE_MODE_KEY";this.hasForm=!1;this.chart=null;this.chartPositionMarker=e.chartPositionMarker,this.reportParams=e.reportParams,this.addRefreshButton=e.addRefreshButton,this.allowEditing=e.allowEditing,this.ganttReportControllerUrl=e.ganttReportControllerUrl,this.showHeader=e.showHeader,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}init(){let e={DbConnectionName:"",TableName:"",TaskColumns:[],ResourcesTableName:"",ResourcesTextField:"",ResourcesKeyField:"",ResourceAssignmentTaskIdField:"",ResourceAssignmentResourceIdField:"",ResourceAssignmentKeyField:"",ResourceAssignmentTableName:"",DependenciesKeyField:"",DependenciesPredecessorIdField:"",DependenciesSuccessorIdField:"",DependenciesTableName:"",DependenciesTypeField:"",EndDateRange:void 0,StartDateRange:void 0,TaskTitlePosition:"outside",ScaleType:"auto"},t=[],i=!1;C(`${this.ganttReportControllerUrl}/GetGanttChartSettings`,"post",{id:this.reportParams.ReportId},!1,{dataType:"json"}).then(o=>{if(e=o,!e.DbConnectionName||!e.TableName||!e.TaskColumns||!e.TaskColumns.length){e.TaskColumns=[];for(let n=0;n<6;n++)e.TaskColumns.push({taskColumnType:ht[ht[n+1]]});this.setupForm(e,!0);return}return o.TaskColumns.forEach(n=>{t[n.taskColumnType-1]=n}),e.TaskColumns=t,i=!0,this.fetchData()}).then(o=>{if(!i)return!1;this.mode==="Designer"&&this.setupForm(e,!i),this.setupChart(t,e),this.updateData(o.Data)}).catch(()=>{this.setupForm(e,!0)}),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=J(".diagram-details-link",this.reportParams.Details))}fetchData(){return C(`${this.ganttReportControllerUrl}/GetGanttChartData`,"post",{id:this.reportParams.ReportId},!1,{dataType:"json"})}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),window.location.reload()}}).addClass("iszolea-md").dxButton("instance")}setupForm(e,t){this.hasForm=!0;let i=[{dataField:"DbConnectionName",caption:"Connection Name"},{dataField:"TableName",caption:"Table"}];for(let n=1;n<7;n++)i.push({itemType:"group",colCount:8,items:[{dataField:`TaskColumns[${n-1}].taskColumnType`,visible:!1},{dataField:`TaskColumns[${n-1}].dataField`,label:{location:"top",text:`${ht[n]} Data Field`}},{dataField:`TaskColumns[${n-1}].caption`,label:{location:"top",text:"Caption"}},{dataField:`TaskColumns[${n-1}].dataType`,label:{location:"top",text:"DataType"}},{dataField:`TaskColumns[${n-1}].width`,label:{location:"top",text:"Width"},editorType:"dxNumberBox"},{dataField:`TaskColumns[${n-1}].sortIndex`,label:{location:"top",text:"SortIndex"},editorType:"dxNumberBox"},{dataField:`TaskColumns[${n-1}].sortOrder`,label:{location:"top",text:"SortOrder"},editorType:"dxSelectBox",editorOptions:{items:["asc","desc"],showClearButton:!0}},{dataField:`TaskColumns[${n-1}].visible`,label:{location:"top",text:"Visible"},editorType:"dxCheckBox"},{dataField:`TaskColumns[${n-1}].visibleIndex`,label:{location:"top",text:"VisibleIndex"}}]});i.push({itemType:"group",caption:"Resources",colCount:4,items:[{dataField:"ResourcesTableName",label:{location:"top",text:"Table"},colSpan:2},{dataField:"ResourcesKeyField",label:{location:"top",text:"Key Field"}},{dataField:"ResourcesTextField",label:{location:"top",text:"Text Field"}}]}),i.push({itemType:"group",caption:"Resource Assignments",colCount:5,items:[{dataField:"ResourceAssignmentTableName",label:{location:"top",text:"Table"},colSpan:2},{dataField:"ResourceAssignmentKeyField",label:{location:"top",text:"Key Field"}},{dataField:"ResourceAssignmentTaskIdField",label:{location:"top",text:"Task Id Field"}},{dataField:"ResourceAssignmentResourceIdField",label:{location:"top",text:"Resource Id Field"}}]}),i.push({itemType:"group",caption:"Dependencies",colCount:6,items:[{dataField:"DependenciesTableName",label:{location:"top",text:"Table"},colSpan:2},{dataField:"DependenciesKeyField",label:{location:"top",text:"Key Field"}},{dataField:"DependenciesPredecessorIdField",label:{location:"top",text:"Predecessor Id Field"}},{dataField:"DependenciesSuccessorIdField",label:{location:"top",text:"Successor Id Field"}},{dataField:"DependenciesTypeField",label:{location:"top",text:"Dependency Type Field"}}]}),i.push({itemType:"button",buttonOptions:{text:"Save",onClick:()=>this.saveFormData(o).then(()=>window.location.reload())}}),i.push({itemType:"group",caption:"Appearance",colCount:5,items:[{dataField:"TaskTitlePosition",label:{location:"top"},editorType:"dxSelectBox",editorOptions:{items:["inside","outside","none"]}},{dataField:"ScaleType",label:{location:"top"},editorType:"dxSelectBox",editorOptions:{items:["auto","minutes","hours","days","weeks","months","quarters","years"]}},{dataField:"StartDateRange",label:{location:"top"},editorType:"dxDateBox",editorOptions:{showClearButton:!0}},{dataField:"EndDateRange",label:{location:"top"},editorType:"dxDateBox",editorOptions:{showClearButton:!0}},{itemType:"button",buttonOptions:{text:"Update",onClick:()=>{if(!this.chart)return;let n=o.option("formData");this.chart.beginUpdate(),this.chart.option({scaleType:n.ScaleType,taskTitlePosition:n.TaskTitlePosition,startDateRange:n.StartDateRange?new Date(n.StartDateRange):null,endDateRange:n.EndDateRange?new Date(n.EndDateRange):null}),this.chart.endUpdate(),this.chart.repaint(),this.saveFormData(o)}}}]});let o=$("<div />").css("padding",20).insertAfter(this.chartPositionMarker).dxForm({width:"100%",height:t?"calc(100% - 50px)":"calc(50% - 50px)",formData:e,scrollingEnabled:!0,items:i}).dxForm("instance")}saveFormData(e){let t=e.option("formData");return t.TaskColumns&&(t.TaskColumns=t.TaskColumns.filter(i=>!!i.dataField)),C(`${this.ganttReportControllerUrl}/UpdateGanttChartSettings`,"post",{id:this.reportParams.ReportId,settings:JSON.stringify(e.option("formData"))},!0,{dataType:"json"})}setupChart(e,t){let i=0,o=!1,n={};e.forEach(a=>{a.taskColumnType&&(n[a.taskColumnType]=a.dataField)}),e.filter(a=>a.visible).forEach(a=>{let s=parseInt(a.width);isNaN(s)?o=!0:i+=s}),this.chart=this.chartPositionMarker.dxGantt({width:"100%",height:this.hasForm?"50%":"calc(100% - 60px)",firstDayOfWeek:6,taskListWidth:!o&&i>0?i:void 0,toolbar:{items:["zoomIn","zoomOut","separator","taskDetails"]},editing:{enabled:!0},startDateRange:t.StartDateRange?new Date(t.StartDateRange):void 0,endDateRange:t.EndDateRange?new Date(t.EndDateRange):void 0,scaleType:t.ScaleType,taskTitlePosition:t.TaskTitlePosition,columns:e.filter(a=>a.visible).map(a=>({dataField:a.dataField,dataType:a.dataType,width:a.width,visibleIndex:a.visibleIndex,sortIndex:a.sortIndex,sortOrder:a.sortOrder&&(a.sortOrder==="asc"?"asc":"desc"),caption:a.caption||void 0})),tasks:{keyExpr:n[1],startExpr:n[3],endExpr:n[4],parentIdExpr:n[5],progressExpr:n[6],titleExpr:n[2]},dependencies:{keyExpr:t.DependenciesKeyField,predecessorIdExpr:t.DependenciesPredecessorIdField,successorIdExpr:t.DependenciesSuccessorIdField,typeExpr:t.DependenciesTypeField},resources:{keyExpr:t.ResourcesKeyField,textExpr:t.ResourcesTextField},resourceAssignments:{keyExpr:t.ResourceAssignmentKeyField,resourceIdExpr:t.ResourceAssignmentResourceIdField,taskIdExpr:t.ResourceAssignmentTaskIdField}}).dxGantt("instance"),this.addRefreshButton&&new ee($(".report-refresh-button"),()=>this.refresh())}updateData(e){!this.chart||(this.chart.option("tasks.dataSource",e.Tasks),this.chart.option("dependencies.dataSource",e.Dependencies),this.chart.option("resources.dataSource",e.Resources),this.chart.option("resourceAssignments.dataSource",e.ResourceAssignments))}refresh(){this.fetchData().then(e=>{this.updateData(e.Data)})}dispose(){var e;(e=this.chart)==null||e.dispose(),this.chart=null}getSessionKey(){return this.CHART_STORAGE_MODE_KEY+this.reportParams.ReportId}};var ao="Switch to Designer",so="Switch to Viewer",Mn="reportMode",we="customCurrentUrl",mt=window.ko,$e=class{constructor(e){this.popover=null;this.$reportContainer=e.$reportContainer,this.reportParams=e.reportParams,this.allowEditing=e.allowEditing,this.designerModelUrl=e.designerModelUrl,this.reportId=e.reportParams.ReportId}init(){let e=window.sessionStorage.getItem(this.getSessionKey())||"Viewer",t=null;this.reportParams.Details&&(this.popover=J(".report-details-link",this.reportParams.Details)),this.allowEditing&&(t=$(".switch-mode-btn").dxButton({text:e==="Viewer"?ao:so,onClick:()=>{e=e==="Viewer"?"Designer":"Viewer",window.sessionStorage.setItem(this.getSessionKey(),e),this.switchMode(e,t)}}).addClass("iszolea-md").dxButton("instance")),this.createReportDesigner(this.$reportContainer,this.designerModelUrl,"dxReportDesigner",this.reportParams.ReportId.toString(),i=>{setTimeout(()=>{this.updateSwitchModeButton(e,t)})},e==="Viewer"),window.addEventListener("beforeunload",i=>{dxReportDesigner&&dxReportDesigner.GetDesignerModel()&&dxReportDesigner.GetDesignerModel().isDirty&&(i.preventDefault(),i.returnValue="The report document is not saved. Are you sure you want to leave the page?")})}dispose(){var e;(e=this.popover)==null||e.dispose(),this.popover=null}refresh(){}initializePreview(e){let t=e.designerModel.reportPreviewModel.reportPreview,i=DevExpress.Reporting.Designer.Internal.ReportPreviewService;t.initialize(i.initializePreview(e.designerModel.model()))}switchMode(e,t){e==="Viewer"?(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible=!0,this.initializePreview(dxReportDesigner)):(dxReportDesigner.designerModel.reportPreviewModel.reportPreview.previewVisible=!1,dxReportDesigner.designerModel.reportPreviewModel.reportPreview.deactivate()),this.updateSwitchModeButton(e,t)}updateSwitchModeButton(e,t){t&&t.option("text",e==="Viewer"?ao:so)}createReportDesigner(e,t,i,o,n,a){let s=e.attr("data-bind","dxReportDesigner: designerOptions").addClass("report-designer"),d={reportUrl:o,requestOptions:{getDesignerModelAction:t},callbacks:{BeforeRender:h=>{window[i]=h,a&&(h.designerModel.reportPreviewModel.reportPreview.previewVisible=!0),n(h)},CustomizeMenuActions:this.CustomizeMenuActions,PreviewCustomizeMenuActions:this.PreviewCustomizeMenuActions,ReportOpened:(h,c)=>{a&&this.initializePreview(h),this.ReportOpened(h,c)},ReportTabClosed:this.ReportTabClosed}};return mt.applyBindings({designerOptions:d},s[0]),s}PreviewCustomizeMenuActions(e,t){let i=t.GetById(DevExpress.Reporting.Viewer.ActionId.Design);i&&(i.visible=!1)}CustomizeMenuActions(e,t){let i=DevExpress.Reporting.Designer.Actions.ActionId,o=[i.Save],n=[i.NewReport,i.NewReportViaWizard,i.OpenReport,i.Preview,i.SaveAs,i.Exit];o.forEach(d=>{let h=t.GetById(d);h&&h.container==="menu"&&(h.container=void 0)}),n.forEach(d=>{let h=t.GetById(d);h&&(h.visible=!1)});let a=t.GetById(DevExpress.Reporting.Designer.Actions.ActionId.Save),s=a.clickAction;a.clickAction=()=>{e.GetCurrentTab().url(mt.unwrap(e[we])),s()}}ReportOpened(e,t){e[we]=e[we]||mt.observable(),e[we](t.Url)}ReportTabClosed(e,t){e[we]=e[we]||mt.observable(),e[we](null)}getSessionKey(){return Mn+this.reportId}};var Ue=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.addRefreshButton=e.addRefreshButton,this.diagramControllerUrl=e.diagramControllerUrl,this.mode=window.sessionStorage.getItem(this.getSessionKey())||"Viewer"}init(){this.createDiagramControl(),this.initDiagram(),this.allowEditing&&this.initSwitchModeButton(),this.reportParams.Details&&(this.popover=J(".diagram-details-link",this.reportParams.Details))}dispose(){var e;this.diagram.dispose(),(e=this.popover)==null||e.dispose(),this.diagram=null}refresh(){this.diagram&&C(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e),!1),this.diagram.option("hasChanges",!1)})}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(){C(`${this.diagramControllerUrl}?id=${this.reportParams.ReportId}`,"get").then(e=>{this.diagram.import(JSON.stringify(e)),this.diagram.option("hasChanges",!1)}),this.addRefreshButton&&(this.refreshButton=new ee($(".report-refresh-button"),()=>this.refresh())),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)}}).addClass("iszolea-md").dxButton("instance")}async saveReport(e){let t=this.reportParams.ReportId;await C(this.diagramControllerUrl,"post",{id:t,source:e},!0),this.diagram.option("hasChanges",!1)}getSessionKey(){return this.DIAGRAM_STORAGE_MODE_KEY+this.reportParams.ReportId}};var gt=class{constructor(e){this.reports=[];this.options=e.reportParams,this.$rootElement=e.$container,this.defaultReportSettings=e.defaultReportSettings}init(){this.renderContent()}dispose(){if(this.reports){for(this.reports.forEach(e=>{e.dispose()});this.reports.length;)this.reports.pop();this.reports=null}this.refreshTimer&&(this.refreshTimer.dispose(),this.refreshTimer=null)}refresh(){this.reports&&this.reports.forEach(e=>{e.refresh()})}renderContent(){let e=0,t=null,i=this.options.Reports.length,o=()=>{t=window.setTimeout(()=>{let s=e+1;s>=i&&(s=0),this.dxGallery.goToItem(s,!0)},this.options.DelaySec*1e3)},n=$("<div />").attr({class:"slideshow-report"}).appendTo(this.$rootElement),a=$("<div />",{class:"slideshow-report__gallery"}).dxGallery({loop:!1,dataSource:this.options.Reports,slideshowDelay:0,showNavButtons:!1,showIndicator:!0,stretchImages:!0,height:"100%",onInitialized:()=>o(),onSelectionChanged:s=>{e=s.component.option("selectedIndex"),window.clearTimeout(t),o()},itemTemplate:(s,d,h)=>{h.attr({class:"slideshow-report__gallery-item"}).height("100%");let c=$("<div />",{class:"slideshow-report__slide-content"}).height("100%"),v;window.setTimeout(()=>{switch(s.Type){case 1:let g=$("<div />",{class:"report-position"});g.appendTo(c),v=new Le(T(b({},this.defaultReportSettings[1]||{}),{$dashboardContainer:g,reportParams:s})),c.find("dashboard-title").hide(),c.find(".dx-dashboard-layout-container").css({top:0});break;case 0:let I=$("<div />",{class:"slideshow-report__grid-position"});c.addClass("iszolea-theme").addClass("panel-body"),I.appendTo(c),v=new Ge(T(b({},this.defaultReportSettings[0]||{}),{gridPositionMarker:I,reportParams:s}));break;case 5:v=new ye(T(b({},this.defaultReportSettings[5]||{}),{$container:c,reportParams:s}));break;case 3:let y=$("<div />",{class:"report-position"});y.appendTo(c),v=new $e(T(b({},this.defaultReportSettings[3]||{}),{$reportContainer:y,reportParams:s}));break;case 4:let u=$("<div />",{class:"report-position"});u.appendTo(c),v=new Ue(T(b({},this.defaultReportSettings[4]||{}),{$container:u,reportParams:s}));break;case 7:let l=$("<div />",{class:"slideshow-report__grid-position"});c.addClass("iszolea-theme").addClass("panel-body"),l.appendTo(c),v=new ke(T(b({},this.defaultReportSettings[7]||{}),{chartPositionMarker:l,reportParams:s}));break;case 2:case 6:break}v&&(v.init(),this.reports.push(v))},500),c.appendTo(h)}});this.dxGallery=a.dxGallery("instance"),a.appendTo(n),this.refreshTimer=new Oe({callback:()=>this.refresh(),elapsedCallback:s=>{}}),this.refreshTimer.start(this.options.RefreshSec*1e3)}};var lo={config:B,Header:fe,Footer:Pe,NavigationMenu:Te,UserMenu:me,MenuSwitcher:Se,data:yi,widgets:{notify:F,fullScreen:Z,popup:wt,confirm:zt,landing:Ht,accessDenied:Wt,defaultGridObsolete:ki,defaultTreeList:$i,defaultGrid:U,defaultToolbar:Ti,backgroundImageViewer:Ze,imageCropDialog:At},pages:{AccountSettingsPage:_t},components:{CDM:ni,SessionNotifier:ri,FileImporter:ve,FileUploader:Ke},styling:yt,helpers:Dt,utils:Mt,reports:{CDMReportPage:ye,DiagramReportPage:Ue,GridReportPage:Ge,DashboardReportPage:Le,DXReportPage:$e,SlideshowReportPage:gt,GanttChartReportPage:ke,gridColumnTypes:Me},business:{LicenceStatus:Ne,MenuItemType:ue,CdmImportFileMode:Fe,FooterIndicatorStatus:Rt,GridDataColumnDataType:Re}},Ni=lo;window.IszoleaUI=lo;})();