x4js
Version:
1 lines • 153 kB
JavaScript
"use strict";var mt=Object.defineProperty;var _r=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var pn=Object.prototype.hasOwnProperty;var wr=l=>{throw TypeError(l)};var un=(l,e,t)=>e in l?mt(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var s=(l,e)=>mt(l,"name",{value:e,configurable:!0});var mn=(l,e)=>{for(var t in e)mt(l,t,{get:e[t],enumerable:!0})},fn=(l,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of hn(e))!pn.call(l,r)&&r!==t&&mt(l,r,{get:()=>e[r],enumerable:!(o=_r(e,r))||o.enumerable});return l};var gn=l=>fn(mt({},"__esModule",{value:!0}),l),u=(l,e,t,o)=>{for(var r=o>1?void 0:o?_r(e,t):e,n=l.length-1,i;n>=0;n--)(i=l[n])&&(r=(o?i(e,t,r):i(r))||r);return o&&r&&mt(e,t,r),r};var z=(l,e,t)=>un(l,typeof e!="symbol"?e+"":e,t),yr=(l,e,t)=>e.has(l)||wr("Cannot "+t);var T=(l,e,t)=>(yr(l,e,"read from private field"),t?t.call(l):e.get(l)),ne=(l,e,t)=>e.has(l)?wr("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(l):e.set(l,t),ie=(l,e,t,o)=>(yr(l,e,"write to private field"),o?o.call(l,t):e.set(l,t),t);var Ii={};mn(Ii,{Application:()=>Me,AssistBox:()=>Fe,Box:()=>C,Breadcrumbs:()=>Oe,BtnGroup:()=>le,Button:()=>I,CMover:()=>zt,CSizer:()=>L,Calendar:()=>He,Canvas:()=>Ne,Checkbox:()=>Ue,Color:()=>H,ColorInput:()=>xe,ColorPicker:()=>Ge,Combobox:()=>je,Component:()=>h,ComputedStyle:()=>ko,CoreElement:()=>te,DataModel:()=>Xt,DataProxy:()=>Jt,DataRecord:()=>Ft,DataStore:()=>Bo,DataView:()=>bt,Dialog:()=>J,DropdownList:()=>ve,EventSource:()=>ae,FileDialog:()=>It,FileDrop:()=>We,Flex:()=>De,Form:()=>U,Gauge:()=>$e,GridBox:()=>Be,Gridview:()=>Ye,HBox:()=>b,Header:()=>Qe,Icon:()=>E,Image:()=>he,Input:()=>A,InputBox:()=>we,Keyboard:()=>Ze,Label:()=>w,Link:()=>Xe,Listbox:()=>de,MasonryBox:()=>ze,Menu:()=>j,MessageBox:()=>_e,Notification:()=>Je,Panel:()=>et,Popup:()=>R,Progress:()=>tt,PromptBox:()=>ye,PropertyGrid:()=>ot,Radio:()=>rt,Rating:()=>nt,Rect:()=>Ee,Router:()=>$o,Saturation:()=>be,ScrollView:()=>X,Select:()=>pe,SimpleText:()=>V,Slider:()=>it,Space:()=>Rt,StackBox:()=>oe,StateManager:()=>Qo,Stylesheet:()=>yo,SvgBuilder:()=>Le,SvgComponent:()=>Re,SvgGradient:()=>no,SvgGroup:()=>wt,SvgIcon:()=>ro,SvgPath:()=>to,SvgShape:()=>_t,SvgText:()=>oo,Switch:()=>st,Tabs:()=>ct,TextArea:()=>dt,TextEdit:()=>ht,TickLine:()=>ur,Timer:()=>Ie,Treeview:()=>ut,UnsafeHtml:()=>Ce,VBox:()=>k,Viewport:()=>re,_date_set_locale:()=>Mn,_tr:()=>y,addEvent:()=>St,addTranslation:()=>uo,asap:()=>Y,beep:()=>Fn,calcAge:()=>Rn,camelCase:()=>In,centerRect:()=>xo,clamp:()=>G,class_ns:()=>p,componentFromDOM:()=>D,createLanguage:()=>ho,createPainter:()=>lr,data:()=>Fo,date_calc_weeknum:()=>fo,date_clone:()=>Ae,date_diff:()=>Dn,date_format:()=>Pn,date_hash:()=>ue,date_sql_utc:()=>Sn,date_to_sql:()=>Tn,dispatchEvent:()=>Mr,dragManager:()=>Bt,formatIntlDate:()=>W,getAvailableLanguages:()=>_n,getCurrentLanguage:()=>vn,getFocusableElements:()=>Pt,getScrollbarSize:()=>Bn,initTooltips:()=>yi,isArray:()=>$,isFeatureAvailable:()=>At,isFunction:()=>go,isLanguage:()=>po,isNumber:()=>O,isString:()=>P,isUnitLess:()=>Co,kbNav:()=>Dt,kbTreeNav:()=>sn,linearColorStops:()=>qr,makeUniqueComponentId:()=>N,oneshot:()=>Cn,pad:()=>se,parseIntlDate:()=>Ln,parseRoute:()=>Sr,pascalCase:()=>En,selectLanguage:()=>Ir,setWaitCursor:()=>Wt,simpleColorStop:()=>ai,sprintf:()=>Gt,svgLoader:()=>yt,unbubbleEvents:()=>Ar,unitless:()=>Tt,unsafe:()=>kn,unsafeHtml:()=>gt,wrapDOM:()=>Yt,x4_class_ns_sym:()=>Mt,x4_react:()=>jo});module.exports=gn(Ii);var kr=Symbol("i18n"),ft={};function ho(l,e){ft[l]={name:l,base:e,src_translations:{},translations:{}}}s(ho,"createLanguage");function po(l){return ft[l]!==void 0}s(po,"isLanguage");function uo(l,...e){if(!po(l))return;let t=ft[l];e.forEach(o=>{Cr(t.src_translations,o)}),t.translations=Er(t.src_translations,t.base,!0)}s(uo,"addTranslation");function Cr(l,e){for(let t in e){let o=e[t];typeof o=="string"?l[t]=o:Array.isArray(o)&&(!l[t]||!Array.isArray(l[t]))?l[t]=[...o]:!l[t]||typeof l[t]!="object"?l[t]={...o}:Cr(l[t],e[t])}}s(Cr,"_patch");function Er(l,e,t){let o={};for(let r in l)typeof l[r]!="string"&&!Array.isArray(l[r])?o[r]=Er(l[r],e,!1):o[r]=l[r];return xn(o,e,t)}s(Er,"_proxyfy");function xn(l,e,t){return new Proxy(l,{get:s((o,r)=>{t?Kt=[r]:Kt.push(r);let n=o[r];return n===void 0&&(e&&(n=bn(e)),n===void 0&&console.error("I18N error: unable to find","_tr."+Kt.join("."))),n},"get")})}s(xn,"_mk_proxy");var Kt;function bn(l){for(;l;){let e=ft[l],t=e.translations,o;for(let r of Kt){if(o=t[r],o===void 0)break;t=o}if(o!==void 0)return t;l=e.base}}s(bn,"_findBaseTrans");var y={};function Ir(l){if(po(l))return y=ft[l].translations,y[kr]=l,y}s(Ir,"selectLanguage");function vn(){return y[kr]}s(vn,"getCurrentLanguage");function _n(){return Object.keys(ft)}s(_n,"getAvailableLanguages");var wn={global:{ok:"OK",cancel:"Annuler",ignore:"Ignorer",yes:"Oui",no:"Non",abort:"Abandonner",retry:"Réessayer",error:"Erreur",today:"Aujourd'hui",open:"Ouvrir",new:"Nouveau",delete:"Supprimer",close:"Fermer",save:"Enregistrer",search:"Rechercher",search_tip:"Saisissez le texte à rechercher. <b>Enter</b> pour lancer la recherche. <b>Esc</b> pour annuler.",required_field:"information requise",invalid_format:"format invalide",invalid_email:"adresse mail invalide",invalid_number:"valeur numérique invalide",diff_date_seconds:"{0} secondes",diff_date_minutes:"{0} minutes",diff_date_hours:"{0} heures",invalid_date:"Date non reconnue ({0})",empty_list:"Liste vide",date_input_formats:"d/m/y|d.m.y|d m y|d-m-y|dmy",date_format:"D/M/Y",day_short:["dim","lun","mar","mer","jeu","ven","sam"],day_long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],month_short:["jan","fév","mar","avr","mai","jun","jui","aoû","sep","oct","nov","déc"],month_long:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],property:"Propriété",value:"Valeur",err_403:"Vous n'avez pas les droits suffisants pour effectuer cette action",copy:"Copier",cut:"Couper",paste:"Coller",filedrop:"Déposez un fichier",keyboard:{next:"Suivant",numeric:"123",alpha:"Abc"}}},yn={global:{ok:"OK",cancel:"Cancel",ignore:"Ignore",yes:"Yes",no:"No",abort:"Abort",retry:"Retry",error:"Error",today:"Today",open:"Open",new:"New",delete:"Delete",close:"Close",save:"Save",search:"Search",search_tip:"Type in the text to search. <b>Enter</b> to start the search. <b>Esc</b> to cancel.",required_field:"missing information",invalid_format:"invalid format",invalid_email:"invalid email address",invalid_number:"bad numeric value",diff_date_seconds:"{0} seconds",diff_date_minutes:"{0} minutes",diff_date_hours:"{0} hours",invalid_date:"Unrecognized date({0})",empty_list:"Empty list",date_input_formats:"m/d/y|m.d.y|m d y|m-d-y|mdy",date_format:"M/D/Y",day_short:["sun","mon","tue","wed","thu","fri","sat"],day_long:["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],month_short:["jan","feb","mar","apr","may","jun","jui","aug","sep","oct","nov","dec"],month_long:["january","february","march","april","mau","june","jully","august","september","october","november","december"],property:"Property",value:"Value",err_403:"You do not have sufficient rights to do that action",copy:"Copy",cut:"Cut",paste:"Paste",filedrop:"Drop a file",keyboard:{next:"Next",numeric:"123",alpha:"Abc"}}};ho("fr",null);uo("fr",wn);ho("en","fr");uo("en",yn);Ir("fr");function P(l){return typeof l=="string"}s(P,"isString");function O(l){return typeof l=="number"&&isFinite(l)}s(O,"isNumber");function $(l){return l instanceof Array}s($,"isArray");function go(l){return l instanceof Function}s(go,"isFunction");var bo=class bo extends String{constructor(e){super(e)}};s(bo,"UnsafeHtml");var Ce=bo;function gt(l){return new Ce(l)}s(gt,"unsafeHtml");function kn(l,...e){let t=l.reduce((o,r,n)=>o+r+(e[n]||""),"");return gt(t)}s(kn,"unsafe");function G(l,e,t){return l<e?e:l>t?t:l}s(G,"clamp");var jt=class jt{left;top;height;width;constructor(e,t,o,r){e!==void 0&&(O(e)?(this.left=e,this.top=t,this.width=o,this.height=r):Object.assign(this,e))}get right(){return this.left+this.width}get bottom(){return this.top+this.height}contains(e){return e instanceof jt?e.left>=this.left&&e.right<=this.right&&e.top>=this.top&&e.bottom<=this.bottom:e.x>=this.left&&e.x<this.right&&e.y>=this.top&&e.y<this.bottom}touches(e){return!(this.left>e.right||this.right<e.left||this.top>e.bottom||this.bottom<e.top)}normalize(){let e=this.width,t=this.height;return e<0&&(this.left+=e,this.width=-e),t<0&&(this.top+=t,this.height=-t),this}};s(jt,"Rect");var Ee=jt;function xo(l,e,t=0){let o=e.width-2*t,r=e.height-2*t,n=l.width/l.height,i=o,a=o/n;a>r&&(a=r,i=r*n);let c=e.left+(e.width-i)/2,d=e.top+(e.height-a)/2;return{left:c,top:d,width:i,height:a}}s(xo,"centerRect");function At(l){switch(l){case"eyedropper":return"EyeDropper"in window}return!1}s(At,"isFeatureAvailable");var vo=class vo{_timers;setTimeout(e,t,o){this._timers?this.clearTimeout(e):this._timers=new Map;let r=setTimeout(o,t);return this._timers.set(e,r),r}clearTimeout(e){this._timers&&this._timers.has(e)&&(clearTimeout(this._timers.get(e)),this._timers.delete(e))}setInterval(e,t,o){this._timers?this.clearInterval(e):this._timers=new Map;let r=setInterval(o,t);return this._timers.set(e,r),r}clearInterval(e){this._timers&&this._timers.has(e)&&(clearInterval(this._timers.get(e)),this._timers.delete(e))}clearAllTimeouts(){var e;(e=this._timers)==null||e.forEach(t=>{clearTimeout(t)}),this._timers=null}};s(vo,"Timer");var Ie=vo;function Y(l){return requestAnimationFrame(l)}s(Y,"asap");function Cn(l,e=0){return setTimeout(l,e)}s(Cn,"oneshot");function se(l,e,t="0"){let o;return P(l)?o=l:o=""+l,e>0?o.padEnd(e,t):o.padStart(-e,t)}s(se,"pad");function Gt(l,...e){return l.replace(/{(\d+)}/g,function(t,o){return typeof e[o]<"u"?e[o]:t})}s(Gt,"sprintf");function En(l){let e=l;return e=e.replace(/([a-z])([A-Z])/g,"$1 $2"),e=e.toLowerCase(),e=e.replace(/[^- a-z0-9]+/g," "),e.indexOf(" ")<0?e:(e=e.trim(),e.replace(/ /g,"-"))}s(En,"pascalCase");function In(l){let e=l.toLowerCase();return e=e.replace(/[^a-zA-Z0-9]+(.)/g,(t,o)=>o.toUpperCase()),e}s(In,"camelCase");var An="fr-FR";function Mn(l){An=l}s(Mn,"_date_set_locale");function Pn(l,e){return W(l)}s(Pn,"date_format");function Dn(l,e,t){let r=(l.getTime()-e.getTime())/1e3;if(r<60)return Gt(y.global.diff_date_seconds,Math.round(r));let n=Math.floor(r/60);if(n<60)return Gt(y.global.diff_date_minutes,Math.round(n));let i=Math.floor(n/60);return Gt(y.global.diff_date_hours,i,n%60)}s(Dn,"date_diff");function Tn(l,e){return e?W(l,"Y-M-D H:I:S"):W(l,"Y-M-D")}s(Tn,"date_to_sql");function Sn(l){return new Date(l+" GMT")}s(Sn,"date_sql_utc");function ue(l){return l.getFullYear()<<16|l.getMonth()<<8|l.getDate()}s(ue,"date_hash");function Ae(l){return new Date(l.getTime())}s(Ae,"date_clone");function fo(l){let e=new Date(l.getFullYear(),0,1),t=(l.valueOf()-e.valueOf())/864e5;return Math.floor((t+e.getDay()+1)/7)}s(fo,"date_calc_weeknum");function Ln(l,e=y.global.date_input_formats){var o,r,n,i,a,c;let t=e.split("|");for(let d of t){let m="";for(let x=0;x<d.length;x++){let v=d[x];v=="d"?m+="(?<day>\\d{1,2})":v=="D"?m+="(?<day>\\d{2})":v=="m"?m+="(?<month>\\d{1,2})":v=="M"?m+="(?<month>\\d{2})":v=="y"?m+="(?<year>\\d{1,4})":v=="Y"?d[x+1]=="Y"?(m+="(?<year>\\d{4})",x++):m+="(?<year>\\d{2})":v=="h"?m+="(?<hour>\\d{1,2})":v=="H"?m+="(?<hour>\\d{2})":v=="i"?m+="(?<min>\\d{1,2})":v=="I"?m+="(?<min>\\d{2})":v=="s"?m+="(?<sec>\\d{1,2})":v=="S"?m+="(?<sec>\\d{2})":v==" "?m+="\\s+":m+="\\s*\\"+v+"\\s*"}let g=new RegExp("^"+m+"$","m").exec(l);if(g){let x=new Date,v=parseInt((o=g.groups.day)!=null?o:"1"),q=parseInt((r=g.groups.month)!=null?r:"1"),_=parseInt((n=g.groups.year)!=null?n:x.getFullYear()+""),S=parseInt((i=g.groups.hour)!=null?i:"0"),F=parseInt((a=g.groups.min)!=null?a:"0"),B=parseInt((c=g.groups.sec)!=null?c:"0");_>0&&_<100&&(_+=2e3);let K=new Date(_,q-1,v,S,F,B,0),Ht=K.getFullYear(),Nt=K.getMonth()+1,Ut=K.getDate();return Ht!=_||Nt!=q||Ut!=v?null:K}}return null}s(Ln,"parseIntlDate");function W(l,e=y.global.date_format){if(!l)return"";let t={year:l.getFullYear(),month:l.getMonth()+1,day:l.getDate(),wday:l.getDay(),hours:l.getHours(),minutes:l.getMinutes(),seconds:l.getSeconds(),milli:l.getMilliseconds()},o="",r=0;for(let n of e){if(n=="{"){if(++r==1)continue}else if(n=="}"&&--r==0)continue;if(r){o+=n;continue}n=="d"?o+=t.day:n=="D"?o+=se(t.day,-2):n=="j"?o+=y.global.day_short[t.wday]:n=="J"?o+=y.global.day_long[t.wday]:n=="w"?o+=fo(l):n=="W"?o+=se(fo(l),-2):n=="m"?o+=t.month:n=="M"?o+=se(t.month,-2):n=="o"?o+=y.global.month_short[t.month-1]:n=="O"?o+=y.global.month_long[t.month-1]:n=="y"||n=="Y"?o+=se(t.year,-4):n=="a"||n=="A"?o+=t.hours<12?"am":"pm":n=="h"?o+=t.hours:n=="H"?o+=se(t.hours,-2):n=="i"?o+=t.minutes:n=="I"?o+=se(t.minutes,-2):n=="s"?o+=t.seconds:n=="S"?o+=se(t.seconds,-2):n=="l"?o+=t.milli:n=="L"?o+=se(t.milli,-3):o+=n}return o}s(W,"formatIntlDate");function Rn(l,e){if(e===void 0&&(e=new Date),!l)return 0;let t=e.getFullYear()-l.getFullYear();return(e.getMonth()<l.getMonth()||e.getMonth()==l.getMonth()&&e.getDate()<l.getDate())&&t--,t}s(Rn,"calcAge");function Fn(){new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=").play()}s(Fn,"beep");var mo=-1;function Bn(){if(mo<0){let l=document.createElement("div");l.style.cssText="overflow:auto;position:absolute;top:0;width:100px;height:100px";let e=document.createElement("div");e.style.width="200px",e.style.height="200px",l.appendChild(e),document.body.appendChild(l),mo=l.offsetWidth-l.clientWidth,document.body.removeChild(l)}return mo}s(Bn,"getScrollbarSize");var Mt=Symbol("class-ns");function p(l){return function(e){e[Mt]=l}}s(p,"class_ns");function Wt(l){document.body.style.cursor=l?"wait":"default"}s(Wt,"setWaitCursor");function Pt(l){let e=['button:not([tabindex="-1"]):not([disabled])',"[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'];return Array.from(l.querySelectorAll(e.join(","))).filter(o=>o.offsetParent!=null)}s(Pt,"getFocusableElements");var Dt=(c=>(c[c.first=0]="first",c[c.prev=1]="prev",c[c.pgdn=2]="pgdn",c[c.pgup=3]="pgup",c[c.next=4]="next",c[c.last=5]="last",c[c.left=6]="left",c[c.right=7]="right",c))(Dt||{});var zn=s(function(){this.propagationStopped=!0},"stopPropagation"),On=s(function(){this.defaultPrevented=!0},"preventDefault"),_o=class _o{_source;_registry;constructor(e=null){this._source=e!=null?e:this}addListener(e,t,o=!1){this._registry||(this._registry=new Map);let r=this._registry.get(e);r||(r=[],this._registry.set(e,r));let n=t;return r.indexOf(n)==-1&&(o?r.unshift(n):r.push(n)),()=>{this.removeListener(e,t)}}removeListener(e,t){if(!this._registry)return;let o=this._registry.get(e);if(!o)return;let r=t,n=o.indexOf(r);n!==-1&&o.splice(n,1)}fire(e,t){var r;let o=(r=this._registry)==null?void 0:r.get(e);if(o&&o.length){let n=t;if(n||(n={}),n.source||(n.source=this._source),n.type||(n.type=e),n.preventDefault||(n.preventDefault=On),n.stopPropagation||(n.stopPropagation=zn),o.length==1)o[0](n);else{let i=o.slice();for(let a=0,c=i.length;a<c&&(i[a](n),!n.propagationStopped);a++);}}}};s(_o,"EventSource");var ae=_o;var Q,ee,wo=class wo{constructor(){ne(this,Q);ne(this,ee)}__startTimer(e,t,o,r){T(this,ee)?this.__stopTimer(e):ie(this,ee,new Map);let n=(o?setInterval:setTimeout)(r,t);T(this,ee).set(e,()=>{(o?clearInterval:clearTimeout)(n),T(this,ee).delete(e)})}__stopTimer(e){var o;let t=(o=T(this,ee))==null?void 0:o.get(e);t&&t()}setTimeout(e,t,o){this.__startTimer(e,t,!1,o)}clearTimeout(e){this.__stopTimer(e)}setInterval(e,t,o){this.__startTimer(e,t,!0,o)}clearInterval(e){this.__stopTimer(e)}clearTimeouts(){for(let[e,t]of T(this,ee))t();T(this,ee).clear()}on(e,t){return console.assert(t!=null),T(this,Q)||ie(this,Q,new ae(this)),T(this,Q).addListener(e,t),{off:s(()=>{T(this,Q).removeListener(e,t)},"off")}}off(e,t){console.assert(t!=null),T(this,Q)&&T(this,Q).removeListener(e,t)}fire(e,t){T(this,Q)&&T(this,Q).fire(e,t)}};Q=new WeakMap,ee=new WeakMap,s(wo,"CoreElement");var te=wo;var Tt={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function Co(l){return!!Tt[l]}s(Co,"isUnitLess");var me=class me{m_sheet;m_rules=new Map;constructor(){function e(t){for(let o=0;o<document.styleSheets.length;o++){let r=document.styleSheets[o];if(r.title===t)return r}}if(s(e,"getStyleSheet"),this.m_sheet=e("x4-dynamic-css"),!this.m_sheet){let t=document.createElement("style");t.setAttribute("id","x4-dynamic-css"),document.head.appendChild(t),this.m_sheet=t.sheet}}setRule(e,t){if(P(t)){let o=this.m_rules.get(e);o!==void 0?this.m_sheet.deleteRule(o):o=this.m_sheet.cssRules.length,this.m_rules.set(e,this.m_sheet.insertRule(t,o))}else{let o=1;for(let r in t){let n=r+" { ",i=t[r];for(let a in i){let c=i[a];for(let d=0;d<c.length;d++)n+=a+": "+c[d]+"; "}n+="}",this.setRule(e+"--"+o,n),o++}}}static getVar(e){return me.doc_style||(me.doc_style=getComputedStyle(document.documentElement)),e.startsWith("--")||(e="--"+e),me.doc_style.getPropertyValue(e)}};s(me,"Stylesheet"),z(me,"guid",1),z(me,"doc_style");var yo=me,Eo=class Eo{m_style;constructor(e){this.m_style=e}value(e){return this.m_style[e]}parse(e){return parseInt(this.m_style[e])}get style(){return this.m_style}};s(Eo,"ComputedStyle");var ko=Eo;var Ar={mouseleave:1,mouseenter:1,load:1,unload:1,scroll:1,focus:1,blur:1,rowexit:1,beforeunload:1,stop:1,dragdrop:1,dragenter:1,dragexit:1,draggesture:1,dragover:1,contextmenu:1,created:2,removed:2,sizechange:2},$t=new WeakMap,Io=null,Vn=s((l,e)=>{let t=s((r,n)=>{let i=$t.get(r);i&&i[n]&&r.dispatchEvent(new Event(n,{}))},"sendEvent"),o=s((r,n)=>{n&&t(r,"created");for(let i=r.firstChild;i;i=i.nextSibling)o(i,n);n||t(r,"removed")},"notify");for(let r of l)r.type=="childList"&&(r.addedNodes&&r.addedNodes.forEach(n=>{o(n,!0)}),r.removedNodes&&r.removedNodes.forEach(n=>{o(n,!1)}))},"observeMutation"),Ao=null;function Hn(l){l.forEach(e=>{let t=e.target;t.offsetParent!==null&&t.dispatchEvent(new Event("resized"))})}s(Hn,"observeSize");function Mr(l){let e=l.target,t=Ar[l.type]===2;for(;e;){let o=$t.get(e);if(o){let r=o[l.type];if(r&&(Array.isArray(r)?r.some(n=>n(l)):r(l),l.stopPropagation||l.defaultPrevented||t))break}if(e=e.parentNode,e==document)break}}s(Mr,"dispatchEvent");function St(l,e,t,o=!1){e=="removed"||e=="created"?Io||(Io=new MutationObserver(Vn),Io.observe(document.body,{childList:!0,subtree:!0})):e=="resized"&&(Ao||(Ao=new ResizeObserver(Hn)),Ao.observe(l));let r=$t.get(l);if(r||(r={},$t.set(l,r)),!r[e])r[e]=t,l.addEventListener(e,Mr);else{let n=r[e];Array.isArray(n)?n.push(t):r[e]=[n,t]}}s(St,"addEvent");var Pr=Symbol("socket"),Mo=null,Do=class Do{getMaxTouchPoints(){return navigator.maxTouchPoints}};s(Do,"Process");var Po=Do,Lt=class Lt extends te{env=new Map;mainview;constructor(){super(),console.assert(Mo==null,"Application must be a singleton."),Mo=this}setMainView(e){this.mainview=e,document.body.appendChild(e.dom),this._setupKeyboard()}static instance(){return Mo}getMainView(){return this.mainview}setEnv(e,t){this.env.set(e,t)}getEnv(e,t){var o;return(o=this.env.get(e))!=null?o:t}static fireGlobal(e,t){Lt.instance().fire("global",{msg:e,params:t})}_setupKeyboard(){document.addEventListener("keydown",e=>{(e.key=="Tab"||e.key=="Enter")&&this.focusNext(!e.shiftKey)&&e.preventDefault()})}focusNext(e){let t=document.activeElement,o;for(;t!=document.body;){let n=D(t).queryInterface("tab-handler");if(n)return n.focusNext(e);t.classList.contains("x4box")&&(o=t),t=t.parentElement}if(o){let r=Pt(o);if(r.length){let n=r[0],i=r[r.length-1],a;if(!e&&document.activeElement===n?a=i:e&&document.activeElement===i&&(a=n),a)return a.focus(),!0}else return!0}return!1}setupSocketMessaging(e,t){let o=window.location.protocol==="https:"?"wss://":"ws://",r=e?o+e:`${o}${window.location.hostname}:${window.location.port}/ws`,n=0,i=null;this.on("global",a=>{Object.prototype.hasOwnProperty.call(a,Pr)||i&&i.send(JSON.stringify({msg:a.msg,params:a.params}))}),i=new WebSocket(r,"messaging"),i.onopen=()=>{console.log("websocket opened"),n=1},i.onmessage=a=>{if(a.data!="ping"){let c=JSON.parse(a.data);c[Pr]=!0,this.fire("global",c)}},i.onclose=a=>{console.log("websocket closed:",a),i=null,n&&(t(),n=0)}}getStorage(e){return localStorage.getItem(e)}getStorageJSON(e){try{return JSON.parse(localStorage.getItem(e))}catch{return}}setStorage(e,t){localStorage.setItem(e,t+"")}setStorageJSON(e,t){localStorage.setItem(e,JSON.stringify(t))}};s(Lt,"Application"),z(Lt,"process",new Po);var Me=Lt;var Dr=Symbol("fragment"),Tr=Symbol("component"),Nn=/^-?\d+(\.\d*)?$/;function Un(l){let e=[],t=Object.getPrototypeOf(l);if(t.constructor==h)return["x4-comp"];for(;t&&t.constructor!==h;){let o=t.constructor.name,r=Object.prototype.hasOwnProperty.call(t.constructor,Mt)?t.constructor[Mt]:"";e.push(r+o.toLowerCase()),t=Object.getPrototypeOf(t)}return e}s(Un,"genClassNames");var qn=1e3,N=s(()=>`x4-${qn++}`,"makeUniqueComponentId"),Pe,h=class extends te{constructor(t){var o,r;super();z(this,"dom");z(this,"props");z(this,"clsprefix");ne(this,Pe);if(this.props=t,t.existingDOM)this.dom=t.existingDOM;else{t.ns?this.dom=document.createElementNS(t.ns,(o=t.tag)!=null?o:"div"):this.dom=document.createElement((r=t.tag)!=null?r:"div"),t.attrs&&this.setAttributes(t.attrs),t.cls&&this.addClass(t.cls),t.hidden&&this.show(!1),t.flex===!0?this.addClass("x4flex"):t.flex!==void 0&&this.setStyle({flexGrow:t.flex+""}),t.id!==void 0&&this.setAttribute("id",t.id),t.width!==void 0&&this.setStyleValue("width",t.width),t.height!==void 0&&this.setStyleValue("height",t.height),t.tooltip&&this.setAttribute("tooltip",t.tooltip),t.style&&this.setStyle(t.style),t.content&&this.setContent(t.content),t.dom_events&&this.setDOMEvents(t.dom_events);let n=Un(this);this.dom.classList.add(...n),t.disabled&&this.addDOMEvent("created",()=>{this.enable(!1)})}this.dom[Tr]=this}onGlobalEvent(t){let o=Me.instance().on("global",r=>{t(r)});this.addDOMEvent("removed",()=>o.off())}hasClass(t){return this.dom.classList.contains(t)}addClass(t){if(t)if(t.indexOf(" ")>=0){t=t.trim();let o=t.split(" ");this.dom.classList.add(...o)}else this.dom.classList.add(t)}removeClass(t){if(t){if(t=="*"){this.dom.classList.value="";return}if(t.indexOf(" ")>=0){let o=t.split(" ");this.dom.classList.remove(...o)}else this.dom.classList.remove(t)}}removeClassEx(t){Array.from(this.dom.classList).forEach(r=>{r.match(t)&&this.dom.classList.remove(r)})}toggleClass(t){if(!t)return;let o=s(r=>{this.dom.classList.toggle(r)},"toggle");t.indexOf(" ")>=0?t.split(" ").forEach(o):o(t)}setClass(t,o=!0){return o?this.addClass(t):this.removeClass(t),this}setAttributes(t){for(let o in t)this.setAttribute(o,t[o]);return this}setAttribute(t,o){o==null||o===!1?this.dom.removeAttribute(t):this.dom.setAttribute(t,""+o)}getAttribute(t){return this.dom.getAttribute(t)}getData(t){return this.getAttribute("data-"+t)}getIntData(t){let o=parseInt(this.getAttribute("data-"+t));if(Number.isFinite(o))return o}setData(t,o){return this.setAttribute("data-"+t,o)}setInternalData(t,o){return T(this,Pe)||ie(this,Pe,new Map),T(this,Pe).set(t,o),this}getInternalData(t){var o;return(o=T(this,Pe))==null?void 0:o.get(t)}addDOMEvent(t,o,r=!1){St(this.dom,t,o,r)}setDOMEvents(t){for(let o in t)this.addDOMEvent(o,t[o])}mapPropEvents(t,...o){let r=t;o.forEach(n=>{Object.prototype.hasOwnProperty.call(r,n)&&r[n]&&this.on(n,r[n])})}clearContent(){let t=this.dom;for(;t.firstChild;)t.removeChild(t.firstChild)}setContent(t){this.clearContent(),this.appendContent(t)}appendContent(t){let o=s((r,n)=>{if(n instanceof h)r.appendChild(n.dom);else if(n instanceof Ce)r.insertAdjacentHTML("beforeend",n.toString());else if(typeof n=="string"||typeof n=="number"){let i=document.createTextNode(n.toString());r.appendChild(i)}else n&&console.warn("Unknown type to append: ",n)},"set");if(!$(t))o(this.dom,t);else if(t.length<=8)for(let r of t)o(this.dom,r);else{let r=document.createDocumentFragment();for(let n of t)o(r,n);this.dom.appendChild(r)}}prependContent(t){let o=this.dom,r=s(n=>{n instanceof h?o.insertAdjacentElement("afterbegin",n.dom):n instanceof Ce?o.insertAdjacentHTML("afterbegin",n.toString()):typeof n=="string"||typeof n=="number"?o.insertAdjacentText("afterbegin",n.toString()):console.warn("Unknown type to append: ",n)},"set");if(!$(t))r(t);else{let n=document.createDocumentFragment();for(let i of t)r(i);o.insertBefore(o.firstChild,n)}}removeChild(t){this.dom.removeChild(t.dom)}queryAll(t){let o=this.dom.querySelectorAll(t),r=new Array(o.length);return o.forEach((n,i)=>r[i]=Yt(n)),r}query(t){let o=this.dom.querySelector(t);return D(o)}setAria(t,o){return this.setAttribute(t,o),this}setStyle(t){let o=this.dom.style;for(let r in t){let n=t[r];!Tt[r]&&(O(n)||Nn.test(n))&&(n+="px"),o[r]=n}return this}setStyleValue(t,o){let r=this.dom.style;if(O(o)){let n=o+"";Tt[t]||(n+="px"),r[t]=n}else r[t]=o;return this}getStyleValue(t){return this.dom.style[t]}setWidth(t){this.setStyleValue("width",O(t)?t+"px":t)}setHeight(t){this.setStyleValue("height",O(t)?t+"px":t)}setStyleVariable(t,o){this.dom.style.setProperty(t,o)}getStyleVariable(t){return this.getComputedStyle().getPropertyValue(t)}getComputedStyle(){return getComputedStyle(this.dom)}setCapture(t){this.dom.setPointerCapture(t)}releaseCapture(t){this.dom.releasePointerCapture(t)}getBoundingRect(){let t=this.dom.getBoundingClientRect();return new Ee(t.x,t.y,t.width,t.height)}focus(){return this.dom.focus(),this}hasFocus(){return document.activeElement==this.dom}scrollIntoView(t){this.dom.scrollIntoView(t)}isVisible(){return this.dom.offsetParent!==null}show(t=!0){return this.setClass("x4hidden",!t),this}hide(){return this.show(!1),this}enable(t=!0){return this.setAttribute("disabled",t?null:"true"),(this.dom instanceof HTMLInputElement||this.dom instanceof HTMLButtonElement)&&(this.dom.disabled=!t),this.enumChildNodes(!0).forEach(r=>{(r instanceof HTMLInputElement||r instanceof HTMLButtonElement)&&(r.disabled=!t)}),this}disable(){return this.enable(!1),this}isDisabled(){return this.getAttribute("disabled")}nextElement(){let t=this.dom.nextElementSibling;return D(t)}prevElement(){let t=this.dom.previousElementSibling;return D(t)}parentElement(t){return h.parentElement(this.dom,t)}static parentElement(t,o){for(;t.parentElement;){let r=D(t.parentElement);if(!o||r&&r instanceof o)return r;t=t.parentElement}return null}firstChild(){let t=this.dom.firstElementChild;return D(t)}lastChild(){let t=this.dom.lastElementChild;return D(t)}enumChildComponents(t){let o=[];return this.enumChildNodes(t).forEach(n=>{let i=D(n);i&&o.push(i)}),o}enumChildNodes(t){return Array.from(t?this.dom.querySelectorAll("*"):this.dom.children)}visitChildren(t){let o=s(r=>{for(let n=r.firstElementChild;n;n=n.nextElementSibling){let i=D(n);if(i&&t(i)||n.firstElementChild&&n.tagName!="svg"&&n.tagName!="SVG"&&o(n))return!0}},"visit");o(this.dom)}animate(t,o){this.dom.animate(t,o)}static createElement(t,o,...r){let n;return t==this.createFragment||t===Dr?r:(t instanceof Function?(o=o!=null?o:{},!o.children&&r&&r.length&&(o.content=r),n=new t(o!=null?o:{})):n=new h({tag:t,content:r,...o}),r&&r.length,n)}static createFragment(){return this.createElement(Dr,null)}queryInterface(t){return null}};Pe=new WeakMap,s(h,"Component"),h=u([p("x4")],h);function D(l){return l?l[Tr]:null}s(D,"componentFromDOM");function Yt(l){let e=D(l);return e||new h({existingDOM:l})}s(Yt,"wrapDOM");var To=class To extends h{constructor(){super({})}};s(To,"Flex");var De=To,So=class So extends h{constructor(e,t){super({width:e,cls:t})}};s(So,"Space");var Rt=So;function Te(l){return l.toString(16).padStart(2,"0")}s(Te,"hx");function xt(l){return Math.round(l)}s(xt,"round");var Lo=class Lo{rgb=[0,0,0,1];invalid=!1;constructor(...e){P(e[0])?this.setValue(e[0]):this.setRgb(e[0],e[1],e[2],e[3])}setValue(e){if(this.invalid=!1,e.length==4&&/#[0-9a-fA-F]{3}/.test(e)){let t=parseInt(e[1],16),o=parseInt(e[2],16),r=parseInt(e[3],16);return this.setRgb(t<<4|t,o<<4|o,r<<4|r,1)}if(e.length==7&&/#[0-9a-fA-F]{6}/.test(e)){let t=parseInt(e[1],16),o=parseInt(e[2],16),r=parseInt(e[3],16),n=parseInt(e[4],16),i=parseInt(e[5],16),a=parseInt(e[6],16);return this.setRgb(t<<4|o,r<<4|n,i<<4|a,1)}if(e.length==9&&/#[0-9a-fA-F]{8}/.test(e)){let t=parseInt(e[1],16),o=parseInt(e[2],16),r=parseInt(e[3],16),n=parseInt(e[4],16),i=parseInt(e[5],16),a=parseInt(e[6],16),c=parseInt(e[7],16),d=parseInt(e[8],16);return this.setRgb(t<<4|o,r<<4|n,i<<4|a,(c<<4|d)/255)}if(e.startsWith("rgba")){let o=/rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*((\d+)|(\d*\.\d+)|(\.\d+))\s*\)/.exec(e);if(o)return this.setRgb(parseInt(o[1]),parseInt(o[2]),parseInt(o[3]),parseFloat(o[4]))}else if(e.startsWith("rgb")){let o=/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(e);if(o)return this.setRgb(parseInt(o[1]),parseInt(o[2]),parseInt(o[3]),1)}else if(e.startsWith("var")){let o=/var\s*\(([^)]*)\)/.exec(e);if(o){let r=o[1].trim(),i=getComputedStyle(document.documentElement).getPropertyValue(r);return this.setValue(i)}}return this.invalid=!0,this.setRgb(255,0,0,1)}setHsv(e,t,o,r=1){let n=Math.min(5,Math.floor(e*6)),i=e*6-n,a=o*(1-t),c=o*(1-i*t),d=o*(1-(1-i)*t),m,f,g;switch(n){case 0:m=o,f=d,g=a;break;case 1:m=c,f=o,g=a;break;case 2:m=a,f=o,g=d;break;case 3:m=a,f=c,g=o;break;case 4:m=d,f=a,g=o;break;case 5:m=o,f=a,g=c;break}return this.setRgb(m*255,f*255,g*255,r)}setRgb(e,t,o,r){return this.rgb=[G(e|0,0,255),G(t|0,0,255),G(o|0,0,255),G(r,0,1)],this}toRgbString(e){let t=this.rgb;return e===!1||t[3]==1?`rgb(${xt(t[0])},${xt(t[1])},${xt(t[2])})`:`rgba(${xt(t[0])},${xt(t[1])},${xt(t[2])},${t[3].toFixed(3)})`}toHexString(){let e=this.rgb;return e[3]==1?`#${Te(e[0])}${Te(e[1])}${Te(e[2])}`:`#${Te(e[0])}${Te(e[1])}${Te(e[2])}${Te(e[3]*255|0)}`}toRgb(){let e=this.rgb;return{red:e[0],green:e[1],blue:e[2],alpha:e[3]}}toHsv(){let e=this.toRgb();e.red/=255,e.green/=255,e.blue/=255;let t=Math.max(e.red,e.green,e.blue),o=Math.min(e.red,e.green,e.blue),r=t-o,n=t===0?0:r/t,i=t,a;if(r===0)a=0;else switch(t){case e.red:a=(e.green-e.blue)/r/6+(e.green<e.blue?1:0);break;case e.green:a=(e.blue-e.red)/r/6+1/3;break;case e.blue:a=(e.red-e.green)/r/6+2/3;break}return{hue:a,saturation:n,value:i,alpha:e.alpha}}getAlpha(){return this.rgb[3]}setAlpha(e){return this.rgb[3]=G(e,0,1),this}isInvalid(){return this.invalid}};s(Lo,"Color");var H=Lo;var zo=class zo{name;id;fields;constructor(e){this.name=e,this.id=void 0,this.fields=[]}};s(zo,"MetaInfos");var Ro=zo,Qt=Symbol("metaField");function Zt(l,e=!0){let t=l.constructor,o=Object.prototype.hasOwnProperty.call(t,Qt)?t[Qt]:void 0;if(o===void 0){e||console.assert(o!==void 0),o=new Ro(t.name);let r=Object.getPrototypeOf(t);if(r!=Xt){let n=r[Qt];o.fields=[...n.fields,...o.fields],console.assert(o.id===void 0,"cannot define mutiple record id"),o.id||(o.id=n.id)}l.constructor[Qt]=o}return o}s(Zt,"_getMetas");var Fo;(m=>{function l(){return(f,g)=>{let x=Zt(f);x.fields.push({name:g,type:"any",required:!0}),x.id=g}}m.id=l,s(l,"id");function e(f){return(g,x)=>{Zt(g).fields.push({name:x,...f})}}m.field=e,s(e,"field");function t(f){return e({...f,type:"string"})}m.string=t,s(t,"string");function o(f){return e({...f,type:"int"})}m.int=o,s(o,"int");function r(f){return e({...f,type:"float"})}m.float=r,s(r,"float");function n(f){return e({...f,type:"bool"})}m.bool=n,s(n,"bool");function i(f){return e({...f,type:"date"})}m.date=i,s(i,"date");function a(f){return e({...f,type:"calc"})}m.calc=a,s(a,"calc");function c(f,g){return m.field({...g,type:"array",model:f?new f:null})}m.array=c,s(c,"array");function d(f){return e({...f,type:"any"})}m.any=d,s(d,"any")})(Fo||(Fo={}));var Oo=class Oo{getFields(){return Zt(this,!1).fields}validate(e){let t=null;return this.getFields().forEach(r=>{r.required&&!this.getField(r.name,e)&&(t&&(t=[]),t.push(new Error(`field ${r.name} is required.`)))}),t}getFieldIndex(e){return this.getFields().findIndex(o=>o.name==e)}serialize(e){let t={};return this.getFields().forEach(o=>{o.calc===void 0&&(t[o.name]=e[o.name])}),t}unSerialize(e,t){let o=this.getFields(),r=new Ft;return o.forEach(n=>{let i=e[n.name];i!==void 0&&(r[n.name]=this._convertField(n,i))}),t!==void 0?r[o[0].name]=t:console.assert(this.getID(r)!==void 0),r}_convertField(e,t){switch(e.type){case"float":{let o=typeof t=="number"?t:parseFloat(t);if(e.prec!==void 0){let r=Math.pow(10,e.prec);o=Math.round(o*r)/r}return o}case"int":return typeof t=="number"?t:parseInt(t);case"date":return P(t)?new Date(t):t;case"array":{debugger;break}}return t}getID(e){if(!e)return null;let t=Zt(this,!1);return e[t.id]}getRaw(e,t){let o,r=this.getFields();if(typeof e=="string"){if(o=r.findIndex(i=>i.name==e),o<0){console.assert(!1,"unknown field: "+e);return}}else if(e<r.length){if(e<0)return;o=e}else{console.assert(!1,"bad field name: "+e);return}let n=r[o];return n.calc!==void 0?n.calc(t):t[n.name]}getField(e,t){let o=this.getRaw(e,t);return o==null?"":""+o}};s(Oo,"DataModel");var Xt=Oo,Vo=class Vo{};s(Vo,"DataRecord");var Ft=Vo,Ho=class Ho extends te{m_props;constructor(e){super(),this.m_props=e}async load(e){e?this.m_props.url=e:e=this.m_props.url,this.m_props.params&&(e+="?"+this.m_props.params.join("&"));let t=await fetch(e);if(t.ok){let o=await t.json(),r=o;this.m_props.solver&&(r=this.m_props.solver(r)),this.fire("change",{value:r,context:o})}}};s(Ho,"DataProxy");var Jt=Ho,No=class No extends ae{m_model;m_fields;m_records;m_proxy;m_rec_index;constructor(e){super(),this.m_fields=void 0,this.m_records=[],this.m_rec_index=null,this.m_model=e.model,this.m_fields=e.model.getFields(),e.data?this.setRawData(e.data):e.url&&(this.m_proxy=new Jt({url:e.url,solver:e.solver}),this.m_proxy.on("change",t=>{this.setData(t.value)}),e.autoload!=!1&&this.m_proxy.load())}async load(e){return this.m_proxy.load(e)}async reload(){return this.m_proxy.load()}setData(e){let t=new Array(e.length);e.forEach((o,r)=>{t[r]=this.m_model.unSerialize(o)}),this.setRawData(t)}setRawData(e){this.m_records=e,this._rebuildIndex(),this.fire("data_change",{change_type:"change"})}_rebuildIndex(){this.m_rec_index=null,this.m_rec_index=this.createIndex(null),this.m_rec_index=this.sortIndex(this.m_rec_index,null)}update(e){let t=this.m_model.getID(e),o=this.indexOfId(t);return o<0?!1:(this.m_records[this.m_rec_index[o]]=e,this.fire("data_change",{change_type:"update",id:t}),!0)}append(e){e instanceof Ft||(e=this.m_model.unSerialize(e));let t=this.m_model.getID(e);console.assert(t!==void 0),this.m_records.push(e),this._rebuildIndex(),this.fire("data_change",{change_type:"create",id:t})}getMaxId(){let e,t=this.m_model;return this.m_records.forEach(o=>{let r=t.getID(o);(e===void 0||e<r)&&(e=r)}),e}delete(e){let t=this.indexOfId(e);return t<0?!1:(t=this.m_rec_index[t],this.m_records.splice(t,1),this._rebuildIndex(),this.fire("data_change",{change_type:"delete",id:e}),!0)}get count(){return this.m_rec_index?this.m_rec_index.length:this.m_records.length}get fields(){return this.m_fields}indexOfId(e){let t=this.m_model;for(let o=this.count,r=0;o!=0;o>>=1){let n=r+(o>>1),i=this.m_rec_index[n],a=t.getID(this.m_records[i]);if(a==e)return n;a<e&&(r=n+1,o--)}return-1}getById(e){let t=this.indexOfId(e);return t<0?null:(t=this.m_rec_index[t],this.m_records[t])}getByIndex(e){let t=this.m_rec_index[e];return this._getRecord(t)}_getRecord(e){var t;return(t=this.m_records[e])!=null?t:null}moveTo(e){e.setRawData(this.m_records)}createView(e){let t={...e,store:this};return new bt(t)}createIndex(e){if(e&&e.op==="empty-result")return new Uint32Array(0);let t=new Uint32Array(this.m_records.length),o=0;if(!e)this.forEach((r,n)=>{t[o++]=n});else if(typeof e.op=="function"){let r=e.op;this.forEach((n,i)=>{n&&r(n)&&(t[o++]=i)})}else{let r=this.m_model.getFieldIndex(e.field);if(r<0)return console.assert(!1,"unknown field name in filter"),new Uint32Array(0);let n=e.value;P(n)&&!e.caseSensitive&&(n=n.toUpperCase());let i=s(_=>_<n,"_lt"),a=s(_=>_<=n,"_le"),c=s(_=>_==n,"_eq"),d=s(_=>_!=n,"_neq"),m=s(_=>_>=n,"_ge"),f=s(_=>_>n,"_gt"),g=s(_=>(v.lastIndex=-1,v.test(_)),"_re"),x,v;if(n instanceof RegExp)v=n,x=g;else switch(e.op){case"<":{x=i;break}case"<=":{x=a;break}case"=":{x=c;break}case">=":{x=m;break}case">":{x=f;break}case"<>":{x=d;break}}let q=this.m_model;this.forEach((_,S)=>{if(!_)return;let F=q.getRaw(r,_);F==null?F="":(F=""+F,e.caseSensitive||(F=F.toUpperCase())),x(F)&&(t[o++]=S)})}return t.slice(0,o)}sortIndex(e,t){let o=0,r=[];if(t===null?r.push({fidx:0,asc:!0}):r=t.map(i=>{let a=this.m_model.getFieldIndex(i.field);return a==-1&&(console.assert(!1,"unknown field name in sort"),o++),{fidx:a,asc:i.ascending}}),o||r.length==0)return e;let n=this.m_model;if(r.length==1){let i=r[0].fidx;e.sort((a,c)=>{var f,g;let d=(f=n.getRaw(i,this.getByIndex(a)))!=null?f:"",m=(g=n.getRaw(i,this.getByIndex(c)))!=null?g:"";return d>m?1:d<m?-1:0}),r[0].asc||e.reverse()}else e.sort((i,a)=>{var c,d;for(let m=0;m<r.length;m++){let f=r[m].fidx,g=r[m].asc?1:-1,x=(c=n.getRaw(f,this.getByIndex(i)))!=null?c:"",v=(d=n.getRaw(f,this.getByIndex(a)))!=null?d:"";if(x>v)return g;if(x<v)return-g}return 0});return e}forEach(e){this.m_rec_index?this.m_rec_index.some((t,o)=>{if(e(this.m_records[t],o))return o}):this.m_records.some((t,o)=>{if(t&&e(t,o))return o})}export(){return this.m_records}changed(){this.fire("data_change",{change_type:"change"})}getModel(){return this.m_model}};s(No,"DataStore");var Bo=No,Uo=class Uo extends te{m_index;m_store;m_model;m_sort;m_filter;m_props;constructor(e){super(),this.m_props=e,this.m_store=e.store,this.m_index=null,this.m_filter=null,this.m_sort=null,this.m_model=this.m_store.getModel(),this.filter(e.filter),e.order?P(e.order)?this.sort([{field:e.order,ascending:!0}]):$(e.order)?this.sort(e.order):this.sort([e.order]):this.sort(null),this.m_store.addListener("data_change",t=>this._storeChange(t))}_storeChange(e){this._filter(this.m_filter,e.type!="change"),this._sort(this.m_sort,e.type!="change"),this.fire("view_change",{change_type:"change"})}filter(e){return this.m_index=null,this._filter(e,!0)}_filter(e,t){return this.m_index=this.m_store.createIndex(e),this.m_filter=e,this.m_sort&&this.sort(this.m_sort),t&&this.fire("view_change",{change_type:"filter"}),this.m_index.length}sort(e){this._sort(e,!0)}_sort(e,t){this.m_index=this.m_store.sortIndex(this.m_index,e),this.m_sort=e,t&&this.fire("view_change",{change_type:"sort"})}getStore(){return this.m_store}getCount(){return this.m_index.length}indexOfId(e){let t=this.m_store.indexOfId(e);return this.m_index.findIndex(o=>o===t)}getByIndex(e){if(e>=0&&e<this.m_index.length){let t=this.m_index[e];return this.m_store.getByIndex(t)}return null}getIdByIndex(e){let t=this.getByIndex(e);return this.m_model.getID(t)}getRecId(e){return this.m_model.getID(e)}getById(e){return this.m_store.getById(e)}getModel(){return this.m_model}changed(){this.fire("view_change",{change_type:"change"})}forEach(e){this.m_index.some(t=>{let o=this.m_store.getByIndex(t);if(o&&e(o,t))return t})}};s(Uo,"DataView");var bt=Uo;var qo=Symbol("x-drag-cb"),Go=class Go{dragSource;dragGhost;dropTarget;notified;timer;registerDraggableElement(e){e.addDOMEvent("dragstart",t=>{this.dragSource=e,this.dragGhost=e.dom.cloneNode(!0),this.dragGhost.classList.add("dragged"),document.body.appendChild(this.dragGhost),e.addClass("dragging"),t.dataTransfer.setData("text/string","1"),t.dataTransfer.setDragImage(new Image,0,0),t.stopPropagation()}),e.addDOMEvent("drag",t=>{this.dragGhost.style.left=t.pageX+"px",this.dragGhost.style.top=t.pageY+"px"}),e.addDOMEvent("dragend",t=>{e.removeClass("dragging"),this.dragGhost.remove()}),e.setAttribute("draggable","true")}registerDropTarget(e,t,o){let r=s(c=>{if(o&&!o(this.dragSource,c.dataTransfer)){console.log("reject ",e),c.dataTransfer.dropEffect="none";return}console.log("accepted ",e),c.preventDefault(),c.dataTransfer.dropEffect="copy"},"dragEnter"),n=s(c=>{if(o&&!o(this.dragSource,c.dataTransfer)){console.log("reject ",e),c.dataTransfer.dropEffect="none";return}if(c.preventDefault(),this.dropTarget!=e&&(this.dropTarget=e,this._startCheck()),this.dropTarget){let d={pt:{x:c.pageX,y:c.pageY},data:c.dataTransfer};t("drag",this.dragSource,d)}c.dataTransfer.dropEffect="copy"},"dragOver"),i=s(c=>{this.dropTarget=null,c.preventDefault()},"dragLeave"),a=s(c=>{let d={pt:{x:c.pageX,y:c.pageY},data:c.dataTransfer};t("drop",this.dragSource,d),this.dropTarget=null,e.removeClass("drop-over"),c.preventDefault()},"drop");e.addDOMEvent("dragenter",r),e.addDOMEvent("dragover",n),e.addDOMEvent("dragleave",i),e.addDOMEvent("drop",a),e.setInternalData(qo,t)}_startCheck(){this.timer&&(clearInterval(this.timer),this._check()),this.timer=setInterval(()=>this._check(),300)}_check(){let e=s(o=>{o.removeClass("drop-over"),o.getInternalData(qo)("leave",this.dragSource)},"leaving"),t=s(o=>{o.addClass("drop-over"),o.getInternalData(qo)("enter",this.dragSource)},"entering");this.dropTarget?(!this.notified||this.notified!=this.dropTarget)&&(this.notified&&e(this.notified),this.notified=this.dropTarget,t(this.notified)):this.notified&&(e(this.notified),this.notified=null,clearInterval(this.timer))}};s(Go,"DragManager");var Ko=Go,Bt=new Ko;var Wo=class Wo{static create_element(e,t,...o){t=t||{};let r;return P(e)?(r=new h({tag:e}),Object.entries(t).forEach(([n,i])=>{n.startsWith("on")&&n.toLowerCase()in window?r.dom.addEventListener(n.toLowerCase().substring(2),i):r.setAttribute(n,i)})):r=new e(t),o&&o.length&&r.appendContent(o),r}};s(Wo,"x4_react");var jo=Wo;function Sr(l,e=!1){if(l instanceof RegExp)return{keys:null,pattern:l};let t=l.split("/"),o=[],r="";t[0]==""&&t.shift();for(let n of t){let i=n[0];if(i==="*")o.push("wild"),r+="/(.*)";else if(i===":"){let a=n.indexOf("?",1),c=n.indexOf(".",1);o.push(n.substring(1,a>=0?a:c>=0?c:n.length)),r+=a>=0&&c<0?"(?:/([^/]+?))?":"/([^/]+?)",c>=0&&(r+=(a>=0?"?":"")+"\\"+n.substring(c))}else r+="/"+n}return{keys:o,pattern:new RegExp(`^${r}${e?"(?=$|/)":"/?$"}`,"i")}}s(Sr,"parseRoute");var Yo=class Yo extends ae{m_routes;m_useHash;constructor(e=!0){super(),this.m_routes=[],this.m_useHash=e,window.addEventListener("popstate",t=>{let o=this._getLocation(),r=this._find(o);r.handlers.forEach(n=>{n(r.params,o)}),this.fire("change",{value:this._getLocation()})})}get(e,t){let{keys:o,pattern:r}=Sr(e);this.m_routes.push({keys:o,pattern:r,handler:t})}init(){this.navigate(this._getLocation())}_getLocation(){return this.m_useHash?"/"+document.location.hash.substring(1):document.location.pathname}navigate(e,t=!0,o=!1){e.startsWith("/")||(e="/"+e);let r=this._find(e);if(!r||r.handlers.length==0)return console.log("route not found: "+e),this.fire("error",{code:404,message:"route not found"}),!1;if(this.m_useHash){for(;e.at(0)=="/";)e=e.substring(1);e="#"+e}return o?window.history.replaceState({},"",e):window.history.pushState({},"",e),t&&r.handlers[0](r.params,e),this.fire("change",{value:this._getLocation()}),!0}_find(e){let t=[],o={},r=[];for(let n of this.m_routes)if(n.keys)if(n.keys.length>0){if(t=n.pattern.exec(e),t===null)continue;for(let i=0;i<n.keys.length;)o[n.keys[i]]=t[++i];r=[...r,n.handler]}else n.pattern.test(e)&&(r=[...r,n.handler]);else{if(t=n.pattern.exec(e),!t)continue;if(t.groups)for(let i in t.groups)o[i]=t.groups[i];r=[...r,n.handler]}return{params:o,handlers:r}}};s(Yo,"Router");var $o=Yo;var Zo=class Zo{_state;_subscribers;_currentTracking;constructor(e){this._state=e?{...e}:{},this._subscribers=new Map,this._currentTracking=new Set}getState(e,t=null){this._currentTracking&&this._currentTracking.add(e);let o=e.split("."),r=this._state;for(let n of o){if((r==null?void 0:r[n])===void 0)return t;r=r[n]}return r}setState(e,t,o={}){let r=e.split("."),n=this._state;for(let i=0;i<r.length-1;i++){let a=r[i];(!n[a]||typeof n[a]!="object")&&(n[a]={}),n=n[a]}n[r[r.length-1]]=t}};s(Zo,"StateManager");var Qo=Zo;var Lr="http://www.w3.org/2000/svg";function Kn(l){return l*Math.PI/180}s(Kn,"d2r");function Rr(l,e,t,o){let r=Kn(o);return{x:l+t*Math.cos(r),y:e+t*Math.sin(r)}}s(Rr,"p2c");function M(l){return Math.round(l*1e3)/1e3}s(M,"num");function eo(l,...e){return e=e.map(t=>typeof t=="number"&&isFinite(t)?M(t):t),String.raw(l,...e)}s(eo,"clean");var Xo=class Xo{_dom;constructor(e){this._dom=document.createElementNS("http://www.w3.org/2000/svg",e)}getDom(){return this._dom}reset(){let e=this._dom.attributes;for(let t=e.length-1;t>=0;t--)this._dom.removeAttribute(e[t].name);return this}stroke(e,t){return this.setAttr("stroke",e),t!==void 0&&this.setAttr("stroke-width",t+"px"),this}strokeWidth(e){return this.setAttr("stroke-width",e+"px"),this}strokeCap(e){return this.setAttr("stroke-linecap",e)}strokeOpacity(e){return this.setAttr("stroke-opacity",e+"")}antiAlias(e){return this.setAttr("shape-rendering",e?"auto":"crispEdges")}fill(e){return this.setAttr("fill",e),this}no_fill(){return this.setAttr("fill","transparent"),this}getAttr(e){return this._dom.getAttribute(e)||""}getNumAttr(e){let t=this._dom.getAttribute(e);return t==""?0:parseInt(t)}setAttr(e,t){return t==null?this._dom.removeAttribute(e):this._dom.setAttribute(e,t),this}setStyle(e,t){let o=this._dom.style;if(O(t)){let r=t+"";Co(e)||(r+="px"),o[e]=r}else o[e]=t;return this}addClass(e){if(e){if(e=e.trim(),e.indexOf(" ")>=0){let t=e.split(" ");this._dom.classList.add(...t)}else this._dom.classList.add(e);return this}}removeClass(e){if(e){if(e.indexOf(" ")>=0){let t=e.split(" ");this._dom.classList.remove(...t)}else this._dom.classList.remove(e);return this}}clip(e)