x4js 1.5.40 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/changelog.txt +23 -0
- package/lib/README.txt +1 -1
- package/lib/changelog.txt +3 -0
- package/lib/cjs/{index.js → x4js.js} +3 -3
- package/lib/cjs/x4js.js.map +7 -0
- package/lib/esm/{index.mjs → x4js.mjs} +3 -3
- package/lib/esm/{index.mjs.map → x4js.mjs.map} +1 -1
- package/lib/src/MIT-license.md +1 -1
- package/lib/src/action.ts +1 -1
- package/lib/src/app_sockets.ts +1 -1
- package/lib/src/application.ts +1 -1
- package/lib/src/autocomplete.ts +1 -1
- package/lib/src/base64.ts +1 -1
- package/lib/src/base_component.ts +1 -1
- package/lib/src/button.ts +1 -1
- package/lib/src/calendar.ts +1 -1
- package/lib/src/canvas.ts +1 -1
- package/lib/src/cardview.ts +1 -1
- package/lib/src/checkbox.ts +1 -1
- package/lib/src/color.ts +1 -1
- package/lib/src/colorpicker.ts +1 -1
- package/lib/src/combobox.ts +1 -1
- package/lib/src/component.ts +1 -1
- package/lib/src/copyright.txt +1 -1
- package/lib/src/datastore.ts +1 -1
- package/lib/src/dialog.ts +1 -1
- package/lib/src/dom_events.ts +1 -1
- package/lib/src/drag_manager.ts +1 -1
- package/lib/src/drawtext.ts +1 -1
- package/lib/src/fileupload.ts +1 -1
- package/lib/src/form.ts +1 -1
- package/lib/src/formatters.ts +1 -1
- package/lib/src/gridview.ts +1 -1
- package/lib/src/i18n.ts +1 -1
- package/lib/src/icon.ts +1 -1
- package/lib/src/image.ts +1 -1
- package/lib/src/index.ts +1 -1
- package/lib/src/input.ts +1 -1
- package/lib/src/label.ts +1 -1
- package/lib/src/layout.ts +1 -1
- package/lib/src/link.ts +1 -1
- package/lib/src/listview.ts +1 -1
- package/lib/src/md5.ts +1 -1
- package/lib/src/menu.ts +1 -1
- package/lib/src/messagebox.ts +1 -1
- package/lib/src/panel.ts +1 -1
- package/lib/src/popup.ts +1 -1
- package/lib/src/property_editor.ts +1 -1
- package/lib/src/radiobtn.ts +1 -1
- package/lib/src/rating.ts +1 -1
- package/lib/src/request.ts +1 -1
- package/lib/src/router.ts +1 -1
- package/lib/src/settings.ts +1 -1
- package/lib/src/sidebarview.ts +1 -1
- package/lib/src/spreadsheet.ts +1 -1
- package/lib/src/styles.ts +1 -1
- package/lib/src/svgcomponent.ts +1 -1
- package/lib/src/tabbar.ts +1 -1
- package/lib/src/tabview.ts +1 -1
- package/lib/src/textarea.ts +1 -1
- package/lib/src/textedit.ts +1 -1
- package/lib/src/toaster.ts +1 -1
- package/lib/src/tools.ts +1 -1
- package/lib/src/tooltips.ts +1 -1
- package/lib/src/treeview.ts +1 -1
- package/lib/src/version.ts +2 -2
- package/lib/src/x4.less +1 -1
- package/lib/src/x4dom.ts +1 -1
- package/lib/src/x4events.ts +1 -1
- package/lib/src/x4js.ts +89 -0
- package/lib/src/x4react.ts +1 -1
- package/lib/styles/x4.css +1 -1
- package/lib/styles/x4.less +1 -1
- package/lib/types/x4js.d.ts +6762 -0
- package/package.json +10 -8
- package/lib/cjs/index.js.map +0 -7
- package/lib/esm/index.js.map +0 -7
- package/lib/types/action.d.ts +0 -57
- package/lib/types/app_sockets.d.ts +0 -29
- package/lib/types/application.d.ts +0 -108
- package/lib/types/autocomplete.d.ts +0 -63
- package/lib/types/base_component.d.ts +0 -88
- package/lib/types/button.d.ts +0 -151
- package/lib/types/calendar.d.ts +0 -82
- package/lib/types/canvas.d.ts +0 -92
- package/lib/types/cardview.d.ts +0 -87
- package/lib/types/checkbox.d.ts +0 -77
- package/lib/types/color.d.ts +0 -148
- package/lib/types/colorpicker.d.ts +0 -107
- package/lib/types/combobox.d.ts +0 -111
- package/lib/types/component.d.ts +0 -603
- package/lib/types/datastore.d.ts +0 -396
- package/lib/types/dialog.d.ts +0 -175
- package/lib/types/dom_events.d.ts +0 -302
- package/lib/types/drag_manager.d.ts +0 -58
- package/lib/types/drawtext.d.ts +0 -48
- package/lib/types/fileupload.d.ts +0 -64
- package/lib/types/form.d.ts +0 -142
- package/lib/types/formatters.d.ts +0 -35
- package/lib/types/gridview.d.ts +0 -175
- package/lib/types/i18n.d.ts +0 -73
- package/lib/types/icon.d.ts +0 -71
- package/lib/types/image.d.ts +0 -56
- package/lib/types/index.d.ts +0 -84
- package/lib/types/input.d.ts +0 -97
- package/lib/types/label.d.ts +0 -67
- package/lib/types/layout.d.ts +0 -89
- package/lib/types/link.d.ts +0 -50
- package/lib/types/listview.d.ts +0 -178
- package/lib/types/md5.d.ts +0 -61
- package/lib/types/menu.d.ts +0 -130
- package/lib/types/messagebox.d.ts +0 -69
- package/lib/types/panel.d.ts +0 -47
- package/lib/types/popup.d.ts +0 -75
- package/lib/types/property_editor.d.ts +0 -71
- package/lib/types/radiobtn.d.ts +0 -73
- package/lib/types/rating.d.ts +0 -53
- package/lib/types/request.d.ts +0 -52
- package/lib/types/router.d.ts +0 -67
- package/lib/types/settings.d.ts +0 -37
- package/lib/types/sidebarview.d.ts +0 -51
- package/lib/types/spreadsheet.d.ts +0 -222
- package/lib/types/styles.d.ts +0 -85
- package/lib/types/svgcomponent.d.ts +0 -216
- package/lib/types/tabbar.d.ts +0 -58
- package/lib/types/tabview.d.ts +0 -49
- package/lib/types/textarea.d.ts +0 -77
- package/lib/types/textedit.d.ts +0 -126
- package/lib/types/toaster.d.ts +0 -42
- package/lib/types/tools.d.ts +0 -394
- package/lib/types/tooltips.d.ts +0 -46
- package/lib/types/treeview.d.ts +0 -144
- package/lib/types/version.d.ts +0 -29
- package/lib/types/x4dom.d.ts +0 -49
- package/lib/types/x4events.d.ts +0 -269
- package/lib/types/x4react.d.ts +0 -41
package/README.md
CHANGED
package/changelog.txt
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
2023/10/20 : 1.6.0 ---------------------------------------------------------
|
|
2
|
+
restructuration
|
|
3
|
+
|
|
4
|
+
2023/05/xx : 1.5.38 --------------------------------------------------------
|
|
5
|
+
changelog working again
|
|
6
|
+
|
|
7
|
+
2022/12/xx : 1.5.7 --------------------------------------------------------
|
|
8
|
+
package.json - removed erroneous dependency to typescript
|
|
9
|
+
calendar.ts - show now has a parameter named 'at'
|
|
10
|
+
|
|
11
|
+
2022/12/08 : 1.5.6 --------------------------------------------------------
|
|
12
|
+
combobox.ts - allow editable
|
|
13
|
+
items can be a function
|
|
14
|
+
populate removed
|
|
15
|
+
|
|
16
|
+
listview.ts - focus bug on popuplistview
|
|
17
|
+
label.ts - bug: display dangerous html elements when multiline = true
|
|
18
|
+
|
|
19
|
+
2022/12/05 : 1.5.1 --------------------------------------------------------
|
|
20
|
+
icon.ts - now accepts direct <svg>..</svg> in argument (var or other)
|
|
21
|
+
|
|
22
|
+
2022/11/24 : 1.5.0 --------------------------------------------------------
|
|
23
|
+
tools.js - crc32 optimization
|
package/lib/README.txt
CHANGED
package/lib/changelog.txt
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
`,n="";this.m_columns.map(a=>{n.length&&(n+=i),n+=a.title}),t+=n+s;let r=this.m_dataview.count;for(let a=0;a<r;a++){let h=this.m_dataview.getByIndex(a);n="";let m=this.m_columns.map(c=>{let d=h.getField(c.id),p=c.formatter;p&&p instanceof Function&&(d=p(d,h)),n.length>0&&(n+=i),n+=d});t+=n+s}t=t.replace(/[àâä]/gm,"a"),t=t.replace(/[éèê]/gm,"e"),t=t.replace(/[îï]/gm,"i"),t=t.replace(/[ûüù]/gm,"u"),t=t.replace(/ /gm," "),Oi(t,"text/csv",e)}set empty_text(e){this.m_empty_msg.text=e}_renderCheck(e){let t="--x4-icon-square";return this.m_marks.has(e.getID())&&(t="--x4-icon-square-check"),new L({icon:`var(${t})`})}_toggleMark(e){let t=e.getID(),i=!1;this.m_marks.has(t)?this.m_marks.delete(t):(this.m_marks.add(t),i=!0),this.emit("gridCheck",ks(e,i)),this._buildItems(!1)}getMarks(){let e=[];for(let t of this.m_marks.values())e.push(t);return e}clearMarks(){this.m_marks.size&&(this.m_marks=new Set,this._buildItems(!1))}setFooterData(e){this.m_footer&&this.m_footer.enumChilds(t=>{let i=t.getData("col");if(i){let s=this.m_columns[i],n=e[s.id];if(n!==void 0)if(Z(n))n(t);else{let r,a=s.formatter;a&&a instanceof Function?r=a(n,e):r=n,t.setContent(r,!1)}}})}};l(xi,"GridView");var bi=class extends u{constructor(e){super(e),this.setDomEvent("click",()=>this._handleClick()),this.mapPropEvents(e,"click")}_handleClick(){this.emit("click",ne())}render(e){let t=e.text??"",i=e.href??"#";this.setTag("a"),this.setAttribute("tabindex",0),this.setAttribute("href",i),this.setAttribute("target",e.target),t&&this.setContent(le(t)?t:st`<span>${t}</span>`)}set text(e){this.m_props.text=e,this.update()}};l(bi,"Link");var oe=class{static hashStr(e,t=!1){return this.onePassHasher.start().appendStr(e).end(t)}static hashAsciiStr(e,t=!1){return this.onePassHasher.start().appendAsciiStr(e).end(t)}static _hex(e){let t=oe.hexChars,i=oe.hexOut,s,n,r,a;for(a=0;a<4;a+=1)for(n=a*8,s=e[a],r=0;r<8;r+=2)i[n+1+r]=t.charAt(s&15),s>>>=4,i[n+0+r]=t.charAt(s&15),s>>>=4;return i.join("")}static _md5cycle(e,t){let i=e[0],s=e[1],n=e[2],r=e[3];i+=(s&n|~s&r)+t[0]-680876936|0,i=(i<<7|i>>>25)+s|0,r+=(i&s|~i&n)+t[1]-389564586|0,r=(r<<12|r>>>20)+i|0,n+=(r&i|~r&s)+t[2]+606105819|0,n=(n<<17|n>>>15)+r|0,s+=(n&r|~n&i)+t[3]-1044525330|0,s=(s<<22|s>>>10)+n|0,i+=(s&n|~s&r)+t[4]-176418897|0,i=(i<<7|i>>>25)+s|0,r+=(i&s|~i&n)+t[5]+1200080426|0,r=(r<<12|r>>>20)+i|0,n+=(r&i|~r&s)+t[6]-1473231341|0,n=(n<<17|n>>>15)+r|0,s+=(n&r|~n&i)+t[7]-45705983|0,s=(s<<22|s>>>10)+n|0,i+=(s&n|~s&r)+t[8]+1770035416|0,i=(i<<7|i>>>25)+s|0,r+=(i&s|~i&n)+t[9]-1958414417|0,r=(r<<12|r>>>20)+i|0,n+=(r&i|~r&s)+t[10]-42063|0,n=(n<<17|n>>>15)+r|0,s+=(n&r|~n&i)+t[11]-1990404162|0,s=(s<<22|s>>>10)+n|0,i+=(s&n|~s&r)+t[12]+1804603682|0,i=(i<<7|i>>>25)+s|0,r+=(i&s|~i&n)+t[13]-40341101|0,r=(r<<12|r>>>20)+i|0,n+=(r&i|~r&s)+t[14]-1502002290|0,n=(n<<17|n>>>15)+r|0,s+=(n&r|~n&i)+t[15]+1236535329|0,s=(s<<22|s>>>10)+n|0,i+=(s&r|n&~r)+t[1]-165796510|0,i=(i<<5|i>>>27)+s|0,r+=(i&n|s&~n)+t[6]-1069501632|0,r=(r<<9|r>>>23)+i|0,n+=(r&s|i&~s)+t[11]+643717713|0,n=(n<<14|n>>>18)+r|0,s+=(n&i|r&~i)+t[0]-373897302|0,s=(s<<20|s>>>12)+n|0,i+=(s&r|n&~r)+t[5]-701558691|0,i=(i<<5|i>>>27)+s|0,r+=(i&n|s&~n)+t[10]+38016083|0,r=(r<<9|r>>>23)+i|0,n+=(r&s|i&~s)+t[15]-660478335|0,n=(n<<14|n>>>18)+r|0,s+=(n&i|r&~i)+t[4]-405537848|0,s=(s<<20|s>>>12)+n|0,i+=(s&r|n&~r)+t[9]+568446438|0,i=(i<<5|i>>>27)+s|0,r+=(i&n|s&~n)+t[14]-1019803690|0,r=(r<<9|r>>>23)+i|0,n+=(r&s|i&~s)+t[3]-187363961|0,n=(n<<14|n>>>18)+r|0,s+=(n&i|r&~i)+t[8]+1163531501|0,s=(s<<20|s>>>12)+n|0,i+=(s&r|n&~r)+t[13]-1444681467|0,i=(i<<5|i>>>27)+s|0,r+=(i&n|s&~n)+t[2]-51403784|0,r=(r<<9|r>>>23)+i|0,n+=(r&s|i&~s)+t[7]+1735328473|0,n=(n<<14|n>>>18)+r|0,s+=(n&i|r&~i)+t[12]-1926607734|0,s=(s<<20|s>>>12)+n|0,i+=(s^n^r)+t[5]-378558|0,i=(i<<4|i>>>28)+s|0,r+=(i^s^n)+t[8]-2022574463|0,r=(r<<11|r>>>21)+i|0,n+=(r^i^s)+t[11]+1839030562|0,n=(n<<16|n>>>16)+r|0,s+=(n^r^i)+t[14]-35309556|0,s=(s<<23|s>>>9)+n|0,i+=(s^n^r)+t[1]-1530992060|0,i=(i<<4|i>>>28)+s|0,r+=(i^s^n)+t[4]+1272893353|0,r=(r<<11|r>>>21)+i|0,n+=(r^i^s)+t[7]-155497632|0,n=(n<<16|n>>>16)+r|0,s+=(n^r^i)+t[10]-1094730640|0,s=(s<<23|s>>>9)+n|0,i+=(s^n^r)+t[13]+681279174|0,i=(i<<4|i>>>28)+s|0,r+=(i^s^n)+t[0]-358537222|0,r=(r<<11|r>>>21)+i|0,n+=(r^i^s)+t[3]-722521979|0,n=(n<<16|n>>>16)+r|0,s+=(n^r^i)+t[6]+76029189|0,s=(s<<23|s>>>9)+n|0,i+=(s^n^r)+t[9]-640364487|0,i=(i<<4|i>>>28)+s|0,r+=(i^s^n)+t[12]-421815835|0,r=(r<<11|r>>>21)+i|0,n+=(r^i^s)+t[15]+530742520|0,n=(n<<16|n>>>16)+r|0,s+=(n^r^i)+t[2]-995338651|0,s=(s<<23|s>>>9)+n|0,i+=(n^(s|~r))+t[0]-198630844|0,i=(i<<6|i>>>26)+s|0,r+=(s^(i|~n))+t[7]+1126891415|0,r=(r<<10|r>>>22)+i|0,n+=(i^(r|~s))+t[14]-1416354905|0,n=(n<<15|n>>>17)+r|0,s+=(r^(n|~i))+t[5]-57434055|0,s=(s<<21|s>>>11)+n|0,i+=(n^(s|~r))+t[12]+1700485571|0,i=(i<<6|i>>>26)+s|0,r+=(s^(i|~n))+t[3]-1894986606|0,r=(r<<10|r>>>22)+i|0,n+=(i^(r|~s))+t[10]-1051523|0,n=(n<<15|n>>>17)+r|0,s+=(r^(n|~i))+t[1]-2054922799|0,s=(s<<21|s>>>11)+n|0,i+=(n^(s|~r))+t[8]+1873313359|0,i=(i<<6|i>>>26)+s|0,r+=(s^(i|~n))+t[15]-30611744|0,r=(r<<10|r>>>22)+i|0,n+=(i^(r|~s))+t[6]-1560198380|0,n=(n<<15|n>>>17)+r|0,s+=(r^(n|~i))+t[13]+1309151649|0,s=(s<<21|s>>>11)+n|0,i+=(n^(s|~r))+t[4]-145523070|0,i=(i<<6|i>>>26)+s|0,r+=(s^(i|~n))+t[11]-1120210379|0,r=(r<<10|r>>>22)+i|0,n+=(i^(r|~s))+t[2]+718787259|0,n=(n<<15|n>>>17)+r|0,s+=(r^(n|~i))+t[9]-343485551|0,s=(s<<21|s>>>11)+n|0,e[0]=i+e[0]|0,e[1]=s+e[1]|0,e[2]=n+e[2]|0,e[3]=r+e[3]|0}_dataLength;_bufferLength;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(oe.stateIdentity),this}appendStr(e){let t=this._buffer8,i=this._buffer32,s=this._bufferLength,n,r;for(r=0;r<e.length;r+=1){if(n=e.charCodeAt(r),n<128)t[s++]=n;else if(n<2048)t[s++]=(n>>>6)+192,t[s++]=n&63|128;else if(n<55296||n>56319)t[s++]=(n>>>12)+224,t[s++]=n>>>6&63|128,t[s++]=n&63|128;else{if(n=(n-55296)*1024+(e.charCodeAt(++r)-56320)+65536,n>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");t[s++]=(n>>>18)+240,t[s++]=n>>>12&63|128,t[s++]=n>>>6&63|128,t[s++]=n&63|128}s>=64&&(this._dataLength+=64,oe._md5cycle(this._state,i),s-=64,i[0]=i[16])}return this._bufferLength=s,this}appendAsciiStr(e){let t=this._buffer8,i=this._buffer32,s=this._bufferLength,n,r=0;for(;;){for(n=Math.min(e.length-r,64-s);n--;)t[s++]=e.charCodeAt(r++);if(s<64)break;this._dataLength+=64,oe._md5cycle(this._state,i),s=0}return this._bufferLength=s,this}appendByteArray(e){let t=this._buffer8,i=this._buffer32,s=this._bufferLength,n,r=0;for(;;){for(n=Math.min(e.length-r,64-s);n--;)t[s++]=e[r++];if(s<64)break;this._dataLength+=64,oe._md5cycle(this._state,i),s=0}return this._bufferLength=s,this}getState(){let e=this,t=e._state;return{buffer:String.fromCharCode.apply(null,e._buffer8),buflen:e._bufferLength,length:e._dataLength,state:[t[0],t[1],t[2],t[3]]}}setState(e){let t=e.buffer,i=e.state,s=this._state,n;for(this._dataLength=e.length,this._bufferLength=e.buflen,s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=i[3],n=0;n<t.length;n+=1)this._buffer8[n]=t.charCodeAt(n)}end(e=!1){let t=this._bufferLength,i=this._buffer8,s=this._buffer32,n=(t>>2)+1,r;if(this._dataLength+=t,i[t]=128,i[t+1]=i[t+2]=i[t+3]=0,s.set(oe.buffer32Identity.subarray(n),n),t>55&&(oe._md5cycle(this._state,s),s.set(oe.buffer32Identity)),r=this._dataLength*8,r<=4294967295)s[14]=r;else{let a=r.toString(16).match(/(.*?)(.{0,8})$/);if(a===null)return;let h=parseInt(a[2],16),m=parseInt(a[1],16)||0;s[14]=h,s[15]=m}return oe._md5cycle(this._state,s),e?this._state:oe._hex(this._state)}},Pe=oe;l(Pe,"Md5"),F(Pe,"stateIdentity",new Int32Array([1732584193,-271733879,-1732584194,271733878])),F(Pe,"buffer32Identity",new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),F(Pe,"hexChars","0123456789abcdef"),F(Pe,"hexOut",[]),F(Pe,"onePassHasher",new oe);var Me=class extends De{m_label;constructor(e){let t=e.icon??"var( --x4-icon-exclamation )";e.icon=void 0;let i=e.buttons===void 0?["ok"]:e.buttons;e.buttons=void 0,super(e);let s=e.message;this.form.updateContent(new w({style:{padding:8},content:[t?new L({cls:"icon",icon:t}):null,this.m_label=new I({cls:"text",text:s,multiline:!0})]}),i),this.on("btnClick",n=>{this.m_props.click&&ce(()=>{this.m_props.click(n.button)})})}set text(e){this.m_label.text=e}static show(e){let t;return B(e)||le(e)?t=new Me({message:e,click:()=>{}}):t=new Me(e),t.show(),t}static async showAsync(e){return new Promise((t,i)=>{let s,n=l(a=>{t(a)},"cb");B(e)||le(e)?s={message:e,click:n}:s={...e,click:n},new Me(s).show()})}static alert(e,t=null){new Me({cls:"warning",title:t,message:e,buttons:["ok"],click:()=>{}}).show()}};l(Me,"MessageBox");var $e=class extends De{m_edit;constructor(e){e.buttons=void 0,e.width=e.width??500,super(e),this.form.updateContent(new w({cls:"panel",content:[this.m_edit=new U({flex:1,autoFocus:!0,label:e.message,value:e.value})]}),["ok","cancel"]),e.click&&this.on("btnClick",t=>{t.button==="ok"&&ce(()=>{this.m_props.click(this.m_edit.value)})})}set text(e){this.m_edit.label=e}static show(e,t){let i;return B(e)||le(e)?i=new $e({message:e,click:t}):i=new $e(e),i.show(),i}};l($e,"PromptDialogBox");var vi=class extends H{m_ui_title;m_ui_body;constructor(e){super(e);let t=e?.sens=="horizontal"?"@hlayout":"@vlayout";this.m_ui_title=new I({cls:"title",text:this.m_props.title}),this.m_ui_body=new u({cls:"body "+t,content:this.m_props.content,style:e.bodyStyle})}render(){let e=this.m_props.gadgets??[],t=this.m_props.icon?new L({icon:this.m_props.icon}):null;super.setContent([new w({cls:"title",content:[t,this.m_ui_title,...e]}),this.m_ui_body])}setContent(e){this.m_ui_body.setContent(e)}set title(e){this.m_ui_title.text=e}};l(vi,"Panel");var Ht=class{text;cls};l(Ht,"CellData"),F(Ht,"empty_cell",{text:""});var pt=class extends H{m_columns;m_row_limit;m_cells_data;m_rows_data;m_view;m_container;m_header;m_itemHeight;m_topIndex;m_visible_cells;m_row_count;m_selection;m_editor;m_autoedit;m_lockupdate;m_auto_row_count;m_recycler;m_used_cells;constructor(e){super(e),this.m_columns=e.columns,this.m_autoedit=e.autoedit,this.m_lockupdate=0,this.m_cells_data=new Map,this.m_rows_data=new Map,this.m_itemHeight=0,this.m_selection={row:0,col:0},this.m_row_count=0,this.m_auto_row_count=!1,this.m_recycler=[],this.m_used_cells=[],e.maxrows===void 0?(this.m_row_limit=0,this.m_auto_row_count=!0):e.maxrows<0?(this.m_row_limit=0,this.m_auto_row_count=!0):this.m_row_limit=e.maxrows,this.setAttribute("tabindex",0),this.setDomEvent("click",t=>this._itemClick(t)),this.setDomEvent("dblclick",t=>this._itemDblClick(t)),this.setDomEvent("keydown",t=>this._handleKey(t)),this.setDomEvent("keypress",t=>this._keyPress(t)),this.setDomEvent("focus",()=>this._focus(!0)),this.setDomEvent("focusout",()=>this._focus(!1)),this.setDomEvent("contextmenu",t=>this._ctxMenu(t)),this.mapPropEvents(e,"dblClick","selectionChange","contextMenu","change")}componentCreated(){super.componentCreated(),this._updateScroll(!0)}setColWidth(e,t){this._on_col_resize(e,t),this.update(10)}getColWidth(e){if(this.m_columns[e])return this.m_columns[e].width}setColTitle(e,t){console.assert(this.m_columns[e]!==void 0),this.m_columns[e].title=t,this.update(10)}reset(e){e&&(this.m_columns=e),this.m_cells_data=new Map,this.m_rows_data=new Map,this.update(10)}insertRow(e){let t=new Map;this.m_cells_data.forEach((s,n)=>{let{row:r,col:a}=Ci(n);r>=e?t.set(ve(r+1,a),s):t.set(n,s)});let i=new Map;this.m_rows_data.forEach((s,n)=>{n>=e?i.set(n+1,s):i.set(n,s)}),this.m_cells_data=t,this.m_rows_data=i,this._buildItems()}deleteRow(e){let t=new Map,i=new Map;this.m_cells_data.forEach((s,n)=>{let{row:r,col:a}=Ci(n);r>e?t.set(ve(r-1,a),s):r<e&&t.set(n,s)}),this.m_rows_data.forEach((s,n)=>{n>e?i.set(n-1,s):n<e&&i.set(n,s)}),this.m_cells_data=t,this.m_rows_data=i,this._buildItems()}insertCol(e,t){let i=e;if(i<0&&(i=this.m_columns.length+1),this.m_columns.splice(i,0,t),e>=0){let s=new Map;this.m_cells_data.forEach((n,r)=>{let{row:a,col:h}=Ci(r);h>=e?s.set(ve(a,h+1),n):s.set(r,n)}),this.m_cells_data=s}this.update()}deleteCol(e){this.m_columns.splice(e,1);let t=new Map;this.m_cells_data.forEach((i,s)=>{let{row:n,col:r}=Ci(s);r>e?t.set(ve(n,r-1),i):r<e&&t.set(s,i)}),this.m_cells_data=t,this.update()}_getCellData(e,t,i=!1){let s=this.m_cells_data.get(ve(e,t));return s===void 0?i?null:Ht.empty_cell:s}_focus(e){this.setClass("@focus",e)}_ctxMenu(e){let t=e.target,i=this.dom;for(;t&&t!=i;){let s=u.getElement(t),n=s.getData("row-id"),r=s.getData("col-id");if(n!==void 0){this._selectItem(n,r),this.emit("contextMenu",pe(e,{row:n,col:r,item:s})),e.preventDefault();return}t=t.parentElement}}render(){this.m_recycler=[],this.m_container=new u({cls:"content"}),this.m_view=new u({cls:"@scroll-view",flex:1,dom_events:{sizechange:()=>this._updateScroll(!0),scroll:()=>this._updateScroll(!1)},content:this.m_container});let e=this.m_columns.map((t,i)=>{let s=new u({cls:"@cell c"+i,content:t.title?t.title:" ",flex:t.width<0?-t.width:void 0,attrs:{title:t.title},style:{width:t.width>=0?t.width:void 0,minWidth:t.min_width}});return new _e({target:s,sens:"right",resize:n=>{this._on_col_resize(i,n.size.width)}}),t.$col=s,s});this.m_header=new w({cls:"@header",content:e}),this.setContent([this.m_header,this.m_view])}_on_col_resize(e,t){this.m_columns[e]&&(t<=0?this.m_columns[e].width=-1:this.m_columns[e].width=t,this._updateScroll(!0))}_computeItemHeight(){let e=f.createElement("div");e.classList.add("x-spreadsheet");let t=f.createElement("div");t.classList.add("content");let i=f.createElement("div");i.classList.add("x-cell"),i.append(" "),t.appendChild(i),e.appendChild(t),this.dom.appendChild(e);let s=i.getBoundingClientRect();this.dom.removeChild(e),this.m_itemHeight=s.height}_calcColWidths(e){let t=0,i=0,s=new Int32Array(this.m_columns.length),n=new Int32Array(this.m_columns.length),r=new Int32Array(this.m_columns.length);if(this.m_columns.forEach((a,h)=>{let m=Math.max(10,a.min_width??0);if(a.width>0){let c=Math.max(a.width,m);t+=c,s[h]=c}else{let c=-a.width;n[h]=c,i+=c}r[h]=m}),i){let a=e-t;for(let h=0;h<this.m_columns.length&&i;h++)if(!s[h]){let m=Math.round(a/i)*n[h];m<r[h]&&(m=r[h]),s[h]=m,a-=m,i-=n[h]}}return s}_createCell(){let e;return this.m_recycler.length?(e=this.m_recycler.pop(),e.clearClasses(),e.addClass("@comp")):e=new u({cls:"@cell"}),e.dom||this.m_container.appendChild(e),e}_buildItems(){let e=this.getBoundingRect(),t=this.m_header.getBoundingRect(),i=e.height-t.height;this.m_itemHeight==0&&this._computeItemHeight();let s=this.m_topIndex*this.m_itemHeight,n=0,r=0,a=this.m_topIndex,h=this.m_row_limit;this.m_auto_row_count&&(this.m_row_limit=h=this.getMaxRowCount());let m=0;if(h*this.m_itemHeight>i){let x=u.getScrollbarSize();e.width-=x,m=x}let c=!!(this.m_topIndex&1);this.m_visible_cells=new Map,this.m_used_cells.forEach(x=>{this.m_recycler.push(x)}),this.m_used_cells=[];let d=this._calcColWidths(e.width),p=0;for(let x=0;x<d.length;x++)p+=d[x];p<=e.width?(this.m_view.setStyleValue("overflow-x","hidden"),this.m_header.setStyleValue("width",e.width),this.m_container.setStyleValue("width",e.width),this.m_container.setStyle({height:h*this.m_itemHeight})):(this.m_header.setStyleValue("width",p),this.m_container.setStyleValue("width",p),this.m_view.setStyleValue("overflow-x","visible"),this.m_container.setStyle({height:h*this.m_itemHeight,width:p})),this.m_view.addClass("@hidden");let g=100;for(;n<i&&a<h&&--g>0;){let x=this.m_rows_data.get(a),_=0,y=this.m_columns.map((A,P)=>{let W="@cell c"+P;A.align&&(W+=" "+A.align),A.cls&&(W+=" "+A.cls);let D,b=this._getCellData(a,P),E=b.text;return A.renderer&&E.length&&(E=A.renderer(E,{row:a,col:P})),W+=c?" even":" odd",x&&(W+=" "+x),D=this._createCell(),this.m_used_cells.push(D),D.setContent(E),D.addClass(W),D.setStyle({left:_,top:s+n,width:d[P],height:this.m_itemHeight}),this.m_selection.row==a&&this.m_selection.col==P&&D.addClass("@selected"),D.setData("row-id",a),D.setData("col-id",P),b.cls&&D.addClass(b.cls),this.m_visible_cells.set(ve(a,P),D),_+=d[P],D});c=!c,n+=this.m_itemHeight,a++,r++}this.m_recycler.forEach(x=>{x.addClass("@hidden")}),this.m_row_count=r,this.m_view.removeClass("@hidden"),this.setClass("empty",h==0)}_itemClick(e){let t=e.target;if(this.m_editor&&this.m_editor.dom.contains(t))return;let i=u.getElement(t,u);if(!i)return;let s=i.getData("row-id"),n=i.getData("col-id");s===void 0||n===void 0||this._selectItem(s,n)}_itemDblClick(e){let t=e.target;if(this.m_editor&&this.m_editor.dom.contains(t))return;let i=u.getElement(t),s=i.getData("row-id"),n=i.getData("col-id");s===void 0||n===void 0||(this.emit("dblClick",ye({row:s,col:n})),this.editCell(s,n))}_selectItem(e,t,i){e<0&&(e=0),e>this.m_row_limit-1&&(e=this.m_row_limit-1),t<0&&(t=0);let s=this.m_columns.length-1;t>s&&(t=s),!(this.m_selection.row==e&&this.m_selection.col==t)&&this.select(e,t,i)}_scrollIntoView(e,t){let i=l((n,r="nearest")=>{n.scrollIntoView({block:r})},"doscroll"),s=this.m_topIndex+this.m_row_count-1;e<this.m_topIndex?(this.m_topIndex=e,this.m_view.dom.scrollTop=this.m_topIndex*this.m_itemHeight,this._buildItems(),i(this._findItem(e,t),"start")):e>s?(this.m_topIndex=e-this.m_row_count+1,this.m_view.dom.scrollTop=this.m_topIndex*this.m_itemHeight,this._buildItems(),i(this._findItem(e,t),"end")):i(this._findItem(e,t))}_findItem(e,t){return this.m_visible_cells?this.m_visible_cells.get(ve(e,t)):null}_updateScroll(e){if(!this?.m_view?.dom)return;let t=Math.floor(this.m_view.dom.scrollTop/(this.m_itemHeight||1));(t!=this.m_topIndex||e)&&(this.m_topIndex=t,this._buildItems());let i=this.m_view.dom.scrollLeft;this.m_header.setStyleValue("left",-i)}_moveSel(e,t){let i=this.m_selection,s=i.row??0,n=i.col??0;if(e==1?s++:e==-1?s--:e==2?s+=this.m_row_count-1:e==-2?s-=this.m_row_count-1:e==3?s=this.m_row_limit-1:e==-3&&(s=0),t==1)n++;else if(t==-1)n--;else if(t==2)n=this.m_columns.length-1;else if(t==-2)n=0;else if(t==3){n++;let r=this.m_columns.length-1;e:for(let a=0;a<2;a++){for(;n<r;){if(this.m_columns[n].createEditor!==null)break e;n++}n>r&&(s++,n=0)}}else if(t==-3){n--;let r=this.m_columns.length-1;e:for(let a=0;a<2;a++){for(;n>=0;){if(this.m_columns[n].createEditor!==null)break e;n--}n<0&&(s--,n=r)}}this._selectItem(s,n,!0)}_handleKey(e){let t=e.target;if(!(this.m_editor&&this.m_editor.dom.contains(t)))switch(e.key){case"ArrowDown":case"Down":{this._moveSel(1,0);break}case"ArrowUp":case"Up":{this._moveSel(-1,0);break}case"PageUp":{this._moveSel(-2,0);break}case"PageDown":{this._moveSel(2,0);break}case"ArrowLeft":case"Left":{this._moveSel(0,-1);break}case"ArrowRight":case"Right":{this._moveSel(0,1);break}case"Home":{e.ctrlKey?this._moveSel(-3,0):this._moveSel(0,-2);break}case"End":{e.ctrlKey?this._moveSel(3,0):this._moveSel(0,2);break}case"Enter":{this.editCurCell(),e.stopPropagation(),e.preventDefault();break}case"Delete":{this.clearCell(this.m_selection.row,this.m_selection.col);break}default:break}}_keyPress(e){let t=e.target;this.m_editor&&this.m_editor.dom.contains(t)||e.ctrlKey||e.altKey||this.editCurCell(e.key)}getSelection(){return this.m_selection}select(e,t,i=!0){if(this.m_selection.row==e&&this.m_selection.col==t)return;let s=this._findItem(this.m_selection.row,this.m_selection.col);s&&s.removeClass("@selected"),this.m_selection={row:e,col:t},i&&this._scrollIntoView(e,t);let n=this._findItem(e,t);n&&n.addClass("@selected"),this.emit("selectionChange",ie({row:e,col:t}))}rowCount(){return this.m_row_limit}getMaxRowCount(){let e=0;return this.m_cells_data.forEach((t,i)=>{let s=Math.round(i/1e3)+1;e<s&&(e=s)}),e}getColCount(){return this.m_columns.length}setRowStyle(e,t){this.m_rows_data.set(e,t),this.m_lockupdate==0&&this._buildItems()}getRowStyle(e){return this.m_rows_data.get(e)}setCellStyle(e,t,i){let s=this._getCellData(e,t,!0);if(s||(s={text:""},this.m_cells_data.set(ve(e,t),s)),s.cls=i,this.m_lockupdate==0&&this.m_visible_cells){let n=this._findItem(e,t);n?n.setClass(i,!0):this._buildItems()}}getCellText(e,t){return this._getCellData(e,t).text}getCellNumber(e,t){let i=this._getCellData(e,t).text;return Vi(i)}clearRow(e){for(let t=0;t<this.m_columns.length;t++)this.clearCell(e,t);this.update(10)}clearCell(e,t){this.setCellText(e,t,null)}editCurCell(e){this.editCell(this.m_selection.row,this.m_selection.col,e)}editCell(e,t,i){if(!this.m_autoedit||this.m_columns[t].createEditor===null)return;this._scrollIntoView(e,t);let n=this._findItem(e,t).dom,r=n.parentElement,a=n.getBoundingClientRect(),h=r.getBoundingClientRect(),m=this._getCellData(e,t,!0),c=l((p,g,x)=>new U(p),"edtBuilder");this.m_columns[t].createEditor&&(c=this.m_columns[t].createEditor);let d=i||(m?m.text:"");this.m_editor=c({cls:"@editor",style:{left:a.left-h.left,top:a.top-h.top,width:a.width-1,height:a.height-1},tabIndex:!1,value:d,data:{row:e,col:t}},e,t),this.m_editor&&(r.appendChild(this.m_editor._build()),this._setupEditor(),this.m_editor.setData("old-value",d),this.m_editor.focus(),this.m_editor instanceof U&&this.m_editor.selectAll())}_setupEditor(){let e=l((t,i)=>{Ni(()=>{this.killEditor(!0),this._moveSel(t,i),this.editCurCell()})},"movesel");if(this.m_editor instanceof U){let i=this.m_editor.input;i.setDomEvent("blur",()=>{this.killEditor(!0)}),i.setDomEvent("keydown",s=>{if(!s.defaultPrevented)switch(s.key){case"Escape":{this.killEditor(!1),s.stopPropagation(),s.preventDefault();break}case"Enter":case"Tab":{let n=3;s.shiftKey&&(n=-3),e(0,n),s.stopPropagation(),s.preventDefault();break}case"ArrowUp":case"Up":{e(-1,0),s.stopPropagation(),s.preventDefault();break}case"ArrowDown":case"Down":{e(1,0),s.stopPropagation(),s.preventDefault();break}}})}else if(this.m_editor instanceof Ie){let t=this.m_editor.input;t.setDomEvent("blur",()=>{this.killEditor(!0)}),t.setDomEvent("keydown",i=>{switch(i.key){case"Escape":{this.killEditor(!1),i.stopPropagation(),i.preventDefault();break}case"Enter":case"Tab":{let s=3;i.shiftKey&&(s=-3),e(0,s),i.stopPropagation(),i.preventDefault();break}}}),this.m_editor.showPopup(),this.m_editor.on("change",i=>{this.killEditor(!0)}),this.m_editor.on("cancel",i=>{this.killEditor(!1)})}}killEditor(e){if(this.m_editor){if(e){let i,s;this.m_editor instanceof U?i=this.m_editor.value:this.m_editor instanceof Ie&&(s=this.m_editor.value,i=this.m_editor.valueText);let n=this.m_editor.getData("row"),r=this.m_editor.getData("col"),a=this.m_editor.getData("old-value");this.setCellText(n,r,i);let h=M(i,{row:n,col:r,oldValue:a,id:s});this.emit("change",h),h.defaultPrevented&&this.setCellText(n,r,a)}let t=this.m_editor;ce(()=>{t.dispose()}),this.m_editor=null,this.focus()}}clearData(){this.m_cells_data=new Map,this.m_rows_data=new Map}setCellText(e,t,i){if(i==null||i.length==0)this.m_cells_data.delete(ve(e,t)),i="";else{let s=this._getCellData(e,t,!0);s||(s={}),s.text=i,this.m_cells_data.set(ve(e,t),s)}if(this.m_lockupdate==0&&this.m_visible_cells){let s=this._findItem(e,t);s?(this.m_columns[t].renderer&&(i=this.m_columns[t].renderer(i,{row:e,col:t})),s.setContent(i)):this._buildItems()}}lockUpdate(e){e?this.m_lockupdate++:--this.m_lockupdate==0&&this._updateScroll(!0)}};l(pt,"Spreadsheet");function ve(o,e){return o*1e3+e}l(ve,"_mkid");function Ci(o){return{row:Math.floor(o/1e3)|0,col:o%1e3|0}}l(Ci,"_getid");var wi=class extends u{m_fields;m_record;m_sheet;m_label_w;constructor(e){super(e),this.mapPropEvents(e,"change")}render(e){this.m_record=e.record,this.m_fields=e.fields??[],this.m_label_w=e.labelWidth,this.m_sheet=new pt({cls:"@fit",columns:[{title:k.global.property,width:this.m_label_w>0?this.m_label_w:-1,cls:"property"},{title:k.global.value,width:-1,createEditor:(...t)=>this._editCell(...t),renderer:(...t)=>this._renderCell(...t)}],autoedit:!0,change:t=>this._cellChange(t)}),this._updateProperties(),this.setContent(this.m_sheet)}setFields(e){e?(this.m_fields=e,this._updateProperties()):this.m_sheet.clearData()}setRecord(e){this.m_record=e,this._updateProperties()}_updateProperties(){this.m_sheet.lockUpdate(!0),this.m_sheet.clearData(),this.m_fields.forEach((e,t)=>{this.m_sheet.setCellText(t,0,e.title),this.m_record?this.m_sheet.setCellText(t,1,this.m_record.getField(e.id)):this.m_sheet.setCellText(t,1,e.value)}),this.m_sheet.lockUpdate(!1)}_cellChange(e){let t=e.context,i=e.value;if(t.col!=1)return;let s=this.m_fields[t.row];switch(s.type){default:case"string":break;case"number":break;case"password":break;case"boolean":break;case"choice":break}this.m_record?this.m_record.setField(s.id,i):s.value=i,this.emit("change",M(i,s))}_renderCell(e,t){switch(this.m_fields[t.row].type){default:case"string":break;case"number":break;case"password":{e="\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF";break}case"boolean":break;case"choice":break}return e}_editCell(e,t,i){let s=this.m_fields[t],n;switch(s.type){default:case"string":{n=new U(e);break}case"number":{n=new U(e);break}case"password":{e.type="password",e.value=this.m_record.getField(s.id),n=new j(e);break}case"boolean":{n=new ke(e);break}case"choice":break}return n}_choicesFromArray(e){return e.map(i=>typeof i=="object"?{id:i.id,text:i.value}:{id:i,text:""+i})}_choicesFromStore(e,t){let i=[];for(let s=0,n=e.count;s<n;s++){let r=e.getByIndex(s);i.push({id:r.getID(),text:r.getField(t)})}return i}};l(wi,"PropertyEditor");var ft=class extends u{m_ui_input;constructor(e){super(e),this.mapPropEvents(e,"change")}render(e){let t=e.text??"",i=e.name??e.group,s=e.labelWidth??-1,n=e.checked??!1,r=e.align??"left",a=e.value,h=e.icon;this.setTag("label"),this.addClass("@hlayout"),this.addClass(r),this._setTabIndex(e.tabIndex),n&&this.addClass("checked"),this.setContent([this.m_ui_input=new j({type:"radio",name:i,tabIndex:e.tabIndex,value:a,attrs:{checked:n?"":void 0},dom_events:{change:()=>this._change(),focus:()=>this.m_ui_input.focus()}}),new I({ref:"label",icon:h,text:t,width:s==="flex"?void 0:s,flex:s==="flex"?1:void 0,style:{order:r=="right"?-1:void 0}})])}_change(){let t=".x-input[name="+this.m_props.name+"]";f.querySelectorAll(t).forEach(n=>{u.getElement(n,ft).removeClass("checked")});let s=this.m_ui_input.dom;this.setClass("checked",s.checked),this.emit("change",M(!0))}get check(){return this.m_ui_input?this.m_ui_input.dom.checked:this.m_props.checked}set check(e){let t=this.m_ui_input.dom;e?(t&&(t.checked=!0),this.m_props.checked=!0):(t&&(t.checked=!1),this.m_props.checked=!1)}get text(){return this.itemWithRef("label").text}set text(e){this.itemWithRef("label").text=e}};l(ft,"RadioBtn");var Ei=class extends w{m_els;m_input;constructor(e){super(e),e.steps=e.steps??5}render(e){let t=e.shape??"star",i=e.value??0;this.m_input=new j({cls:"@hidden",name:e.name,value:""+i}),this.addClass(t),this.setDomEvent("click",s=>this._onclick(s)),this.m_els=[];for(let s=0;s<e.steps;s++){let n="item";s+1<=i&&(n+=" checked");let r=new u({tag:"option",cls:n,data:{value:s+1}});this.m_els.push(r)}this.m_els.push(this.m_input),this.setContent(this.m_els)}getValue(){return this.m_props.value??0}set value(e){this.m_props.value=e;for(let t=0;t<this.m_props.steps;t++)this.m_els[t].setClass("checked",this.m_els[t].getData("value")<=e);this.m_input.value=""+this.m_props.value}set steps(e){this.m_props.steps=e,this.update()}set shape(e){this.removeClass(this.m_props.shape),this.m_props.shape=e,this.addClass(this.m_props.shape)}_onclick(e){let t=!0;for(let i=this.dom.firstChild;i;i=i.nextSibling){let s=u.getElement(i);s.setClass("checked",t),i==e.target&&(this.m_input.value=s.getData("value"),t=!1)}this.emit("change",M(this.m_props.value))}};l(Ei,"Rating");var yi=class extends Be{m_sidebar;m_content;constructor(e){super(e),this.addClass("@hlayout"),this.m_sidebar=new H({cls:"@side-bar",width:e.bar_width??void 0}),this.m_content=new w({flex:1,cls:"@tab-container"})}render(){let e=[];this.m_cards.forEach(t=>{e.push(t.selector)}),this.m_sidebar.setContent(new H({flex:1,cls:"content",content:[this.m_props.logo,...e]})),this.setContent([this.m_sidebar,this.m_props.bar_sizable?new rt({orientation:"horizontal",sizing:"before"}):void 0,this.m_content])}_prepareSelector(e){return new z({text:e.title,icon:e.icon,tooltip:e.title,click:()=>{this.switchTo(e.name)}})}_preparePage(e){super._preparePage(e),e.dom||this.m_content.appendChild(e)}};l(yi,"SideBarView");var jn=/^-?\d+(\.\d+)?$/;function Un(o){return o*Math.PI/180}l(Un,"d2r");function Is(o,e,t,i){let s=Un(i);return{x:o+t*Math.cos(s),y:e+t*Math.sin(s)}}l(Is,"p2c");function se(o){return Math.round(o*1e3)/1e3}l(se,"num");function Qi(o,...e){return e=e.map(t=>typeof t=="number"&&isFinite(t)?se(t):t),String.raw(o,...e)}l(Qi,"clean");var Se=class{m_tag;m_attrs;m_style;constructor(e){this.m_tag=e,this.m_attrs=new Map,this.m_style=new Map}render(){return`<${this.m_tag} ${this.renderAttrs()} ${this.renderStyle()}>${this.renderContent()}</${this.m_tag}>`}stroke(e,t){return this.attr("stroke",e),t!==void 0&&this.attr("stroke-width",t+"px"),this}strokeWidth(e){return this.attr("stroke-width",e+"px"),this}fill(e){return this.attr("fill",e),this}attr(e,t){return this.m_attrs.set(e,t),this}style(e,t){return t===void 0||t===""||t===void 0?(this.m_style.delete(e),this):(!$t[e]&&(tt(t)||jn.test(t))&&(t=t+"px"),this.m_style.set(e,""+t),this)}class(e){let t=this.m_attrs.get("class");return this.m_attrs.set("class",(t??" "+e).trim()),this}renderAttrs(){if(!this.m_attrs.size)return"";let e="";return this.m_attrs.forEach((t,i)=>{e+=` ${i} = "${t}"`}),e}renderStyle(){if(!this.m_style.size)return"";let e='style="';return this.m_style.forEach((t,i)=>{e+=`${i}:${t};`}),e+'"'}renderContent(){return""}clip(e){return this.attr("clip-path",`url(#${e})`),this}transform(e){return this.attr("transform",e),this}rotate(e,t,i){return this.transform(`rotate( ${e} ${t} ${i} )`),this}translate(e,t){return this.transform(`translate( ${e} ${t} )`),this}scale(e){return this.transform(`scale( ${e} )`),this}};l(Se,"SVGItem");var zt=class extends Se{m_path;constructor(){super("path"),this.m_path=""}renderAttrs(){return this.attr("d",this.m_path),super.renderAttrs()}moveTo(e,t){return this.m_path+=Qi`M${e},${t}`,this}lineTo(e,t){return this.m_path+=Qi`L${e},${t}`,this}closePath(){return this.m_path+="Z",this}arc(e,t,i,s,n){let r=Is(e,t,i,s-90),a=Is(e,t,i,n-90),h=n-s<=180?"0":"1";return this.m_path+=Qi`M${r.x},${r.y}A${i},${i} 0 ${h} 1 ${a.x},${a.y}`,this}};l(zt,"SVGPath");var Vt=class extends Se{m_text;constructor(e,t,i){super("text"),this.m_text=i,this.attr("x",se(e)+""),this.attr("y",se(t)+"")}font(e){return this.attr("font-family",e),this}fontSize(e){return this.attr("font-size",e+""),this}fontWeight(e){return this.attr("font-weight",e),this}textAlign(e){let t;switch(e){case"left":t="start";break;case"center":t="middle";break;case"right":t="end";break;default:return this}return this.attr("text-anchor",t),this}verticalAlign(e){let t;switch(e){case"top":t="hanging";break;case"center":t="middle";break;case"bottom":t="baseline";break;default:return}return this.attr("alignment-baseline",t),this}renderContent(){return this.m_text}};l(Vt,"SVGText");var _t=class extends Se{constructor(e){super(e)}};l(_t,"SVGShape");var ki=class extends Se{m_id;m_stops;constructor(e,t,i,s){super("linearGradient"),this.m_id="gx-"+ki.g_id,this.attr("id",this.m_id),this.attr("x1",B(e)?e:se(e)+""),this.attr("x2",B(i)?i:se(i)+""),this.attr("y1",B(t)?t:se(t)+""),this.attr("y2",B(s)?s:se(s)+""),this.m_stops=[],ki.g_id++}get id(){return"url(#"+this.m_id+")"}addStop(e,t){return this.m_stops.push({offset:e,color:t}),this}renderContent(){let e=[];return this.m_stops.forEach(t=>{e.push(`<stop offset="${t.offset}%" stop-color="${t.color}"></stop>`)}),e.join(`
|
|
7
7
|
`)}},gt=ki;l(gt,"SVGGradient"),F(gt,"g_id",1);var ze=class extends Se{m_items;constructor(e="g"){super(e),this.m_items=[]}path(){let e=new zt;return this.m_items.push(e),e}text(e,t,i){let s=new Vt(e,t,i);return this.m_items.push(s),s}ellipse(e,t,i,s=i){let n=new _t("ellipse");return n.attr("cx",se(e)+""),n.attr("cy",se(t)+""),n.attr("rx",se(i)+""),n.attr("ry",se(s)+""),this.m_items.push(n),n}rect(e,t,i,s){let n=new _t("rect");return n.attr("x",se(e)+""),n.attr("y",se(t)+""),n.attr("width",se(i)+""),n.attr("height",se(s)+""),this.m_items.push(n),n}group(){let e=new ze;return this.m_items.push(e),e}linear_gradient(e,t,i,s){let n=new gt(e,t,i,s);return this.m_items.push(n),n}clear(){this.m_items=[]}renderContent(){let e=[];return this.m_items.forEach(t=>{e.push(t.render())}),e.join(`
|
|
8
8
|
`)}};l(ze,"SVGGroup");var es=class extends ze{constructor(){super("")}addClip(e,t,i,s){let n="c-"+es.g_clip_id++,r=new ze("clipPath");return r.attr("id",n),r.rect(e,t,i,s),this.m_items.push(r),n}render(){let e=[];return this.m_items.forEach(t=>{e.push(t.render())}),e.join(`
|
|
9
|
-
`)}},Rt=es;l(Rt,"SVGPathBuilder"),F(Rt,"g_clip_id",1);var Fi=class extends u{constructor(e){super(e),this.setTag("svg","http://www.w3.org/2000/svg"),this.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.setAttributes({viewBox:e.viewBox}),this.setContent(e.path)}};l(Fi,"SVGComponent");var Ii=class extends O{m_pages;m_curPage;constructor(e){super(e),this.m_pages=[],this.m_curPage=null,this.mapPropEvents(e,"change"),e.vertical?this.addClass("@vlayout"):this.addClass("@hlayout"),this.m_props.pages?.forEach(t=>this.addPage(t))}componentCreated(){this.m_props.default&&this.select(this.m_props.default,!0)}addPage(e){this.m_pages.push({...e}),this._updateContent()}render(){let e=[];this.m_pages.forEach(t=>{t.btn=new z({cls:t===this.m_curPage?"selected":"",text:t.title,icon:t.icon,click:()=>this._select(t,!0)}),e.push(t.btn)}),this.setContent(e)}select(e,t=!1){if(e){let i=this.m_pages.find(s=>s.id===e);return i?(this._select(i,t),!0):!1}else return this._select(null,t),!0}_select(e,t){if(this.m_curPage!=e){if(!this.dom){this.m_props.default=e.id;return}this.m_curPage&&(this.m_curPage.btn.removeClass("selected"),this.m_curPage.page&&this.m_curPage.page.hide()),this.m_curPage=e,t&&this.signal("change",M(e?e.id:null)),this.m_curPage&&(this.m_curPage.btn.addClass("selected"),this.m_curPage.page&&this.m_curPage.page.show())}}get selection(){return this.m_curPage?.page}};l(Ii,"TabBar");var Di=class extends Be{m_tab_selector;m_menu;constructor(e){super(e),this.m_tab_selector=!!e.tab_selector,this.m_menu=e.menu,this.addClass("@vlayout")}render(){let e=[],t=[];this.m_menu&&(this.m_menu.addClass("@button @tab-btn"),this.m_menu.removeClass("@menu-item"),e.push(this.m_menu)),this.m_cards.forEach(i=>{e.push(i.selector),i.page instanceof Function||t.push(i.page)}),this.m_tab_selector&&t.unshift(new w({cls:"@tab-switch",content:e})),this.setContent(t)}_updateSelector(){}_prepareSelector(e){return new z({cls:"@tab-btn",text:e.title,icon:e.icon,click:()=>{this.switchTo(e.name)}})}_preparePage(e){super._preparePage(e),e.dom||this.appendChild(e)}};l(Di,"TabView");var Pi=class extends u{constructor(e){super(e),this.mapPropEvents(e,"change")}render(e){e.text=e.text??"",this.setAttribute("tabindex",e.tabIndex??0),e.spellcheck===!1&&this.setAttribute("spellcheck","false"),e.readOnly!==void 0&&this.setAttribute("readonly",e.readOnly),e.rows&&this.setAttribute("rows",e.rows),e.placeHolder&&this.setAttribute("placeholder",e.placeHolder),e.autoFocus&&this.setAttribute("autofocus",e.autoFocus),e.name&&this.setAttribute("name",e.name),e.autoGrow&&(this.m_props.autoGrow=!0,this.setAttribute("rows",this._calcHeight(e.text)),this.setDomEvent("keydown",()=>{ce(()=>this._updateHeight())})),this.setDomEvent("keydown",t=>{t.stopPropagation()}),this.setTag("textarea"),this.setDomEvent("input",()=>this._change())}_change(){this.emit("change",M(this.value))}componentCreated(){this.value=this.m_props.text}get value(){return this.dom?this.dom.value:this.m_props.text}set value(e){this.m_props.text=e??"",this.dom&&(this.dom.value=this.m_props.text,this.m_props.autoGrow&&this.setAttribute("rows",this._calcHeight(this.m_props.text)))}get text(){return this.value}set text(e){this.value=e}_calcHeight(e){return 1+(e.match(/\n/g)||[]).length}_updateHeight(){let e=this.value,t=this._calcHeight(e);this.getData("lines")!=t&&(this.setAttribute("rows",t),this.setData("lines",t))}insertText(e){this.appendText(e)}appendText(e){if(this.dom){let t=this.dom,i=t.selectionEnd;t.setRangeText(e,i,i,"end")}}replaceText(e){this.dom&&this.dom.setRangeText(e)}getSelection(){if(this.dom){let e=this.dom;return{start:e.selectionStart,end:e.selectionEnd}}else return{start:0,end:0}}setSelection(e){if(this.dom){let t=this.dom;e.start!==void 0&&(t.selectionStart=e.start),e.end!==void 0&&(t.selectionEnd=e.end)}}getStoreValue(){return this.value}setStoreValue(e){this.value=e}};l(Pi,"TextArea");var Mi=class extends q{m_message;m_icon;constructor(e){super(e),this.m_message=e.message,this.m_icon=e.icon,this.enableMask(!1),this.addClass("@non-maskable")}render(){this.addClass("@hlayout"),this.setContent([new I({icon:this.m_icon,text:this.m_message})])}show(){this.show=super.show,this.displayAt(9999,9999,"br",{x:0,y:-24});let e=1;this.startTimer("fadeout",2e3,!1,()=>{this.startTimer("opacity",100,!0,()=>{this.setStyleValue("opacity",e),e-=.1,e<0&&this.dispose()})})}};l(Mi,"Toaster");function Kn(o){return S({node:o})}l(Kn,"EvExpand");var Si=class extends H{m_view;m_container;m_selection;constructor(e){super(e),e.root=e.root,e.indent=e.indent??8,e.gadgets=e.gadgets,e.sort=e.sort??!1,this.m_selection=null,this.m_container=new O({cls:"@scroll-container"}),this.m_view=new O({cls:"@scroll-view",flex:1,content:this.m_container}),this.setContent([this.m_view,e.gadgets?new w({cls:"gadgets",content:e.gadgets}):null]),this.setDomEvent("click",t=>this._click(t)),this.setDomEvent("dblclick",t=>this._click(t)),this.setDomEvent("contextmenu",t=>this._handleCtxMenu(t)),e.canDragItems&&(this.setDomEvent("dragstart",t=>{let s=u.getElement(t.target,u)?.getData("node");s?(t.dataTransfer.effectAllowed="move",t.dataTransfer.items.add(JSON.stringify({type:"treeview",id:s.id}),"string")):(t.preventDefault(),t.stopPropagation())}),this.setDomEvent("dragover",t=>this._dragEnter(t)),this.setDomEvent("dragenter",t=>this._dragEnter(t)),this.setDomEvent("dragend",t=>this._dragLeave(t)),this.setDomEvent("dragleave",t=>this._dragLeave(t)),this.setDomEvent("drop",t=>this._dragLeave(t)),this.setDomEvent("drop",t=>this._drop(t))),this.mapPropEvents(e,"dblclick","drag","selectionchange","contextMenu")}_dragEnter(e){e.preventDefault();let t=u.getElement(e.target,u);t?.getData("node")&&(t.addClass("@drag-over"),e.dataTransfer.dropEffect="move")}_dragLeave(e){let t=u.getElement(e.target,u);t?.getData("node")&&t.removeClass("@drag-over")}_drop(e){let t=u.getElement(e.target,u),i=t?.getData("node");if(i||(i=this.m_props.root),i){let s;i.children?s=i:s=t.getData("parent");for(let n=0;n<e.dataTransfer.items.length;n++)e.dataTransfer.items[0].getAsString(r=>{let a=JSON.parse(r);this.emit("drag",Bi(i,a,s))})}}render(){this.__update()}__update(){if(this.m_props.root){let e=[];this._buildBranch(this.m_props.root,-1,e,this.m_props.root),this.m_container.setContent(e)}}updateElement(e){let{node:t,item:i}=this._getNode(e);if(t){let s=t.dom.parentNode,n=this._makeNode(i,t.dom.classList.value,t.getData("icon"),t.getData("level")),r=n._build();s.replaceChild(r,t.dom),this.m_selection?.el===t&&(this.m_selection.el=n)}}set root(e){this.m_props.root=e,this.update()}openAll(e=!0){this.forEach(t=>{t.children&&(t.open=e)}),this.__update()}refreshRoot(e){let t=[];this.forEach(s=>(s.open&&t.push(s.id),!1));let i=this.selection;e&&(this.m_props.root=e),this.forEach(s=>(t.indexOf(s.id)>=0&&(s.open=!0),!1)),this.__update()}_buildBranch(e,t,i,s){let n="@tree-item";e.cls&&(n+=" "+e.cls),!e.open&&e.children&&(n+=" collapsed"),e.children&&(n+=" folder",e.children.length==0&&(n+=" empty"));let r=e.icon;if(r===void 0&&e.children&&(e.open===!0?r="var(--x4-icon-chevron-down)":r="var(--x4-icon-chevron-right)"),t>=0){let a=this._makeNode(e,n,r,t);this.m_selection?.id==e.id&&(this.m_selection.el=a,a.addClass("selected")),i.push(a)}(t==-1||e.open)&&e.children&&(this.m_props.sort&&(e.children=e.children.sort((a,h)=>{let m=(a.children?"0"+a.text:a.text)?.toLocaleLowerCase(),c=(h.children?"0"+h.text:h.text)?.toLocaleLowerCase();return m<c?-1:m>c?1:0})),e.children.forEach(a=>{this._buildBranch(a,t+1,i,e)}))}_renderDef(e){return new I({cls:"tree-label",flex:1,text:e.text})}_makeNode(e,t,i,s){return new w({cls:t,content:[new L({cls:"tree-icon",icon:i}),this.m_props.renderItem?this.m_props.renderItem(e):this._renderDef(e)],data:{node:e,level:s,icon:i},style:{paddingLeft:4+s*this.m_props.indent},attrs:{draggable:this.m_props.canDragItems?!0:void 0}})}forEach(e){let t=null;function i(s){if(e(s)==!0)return!0;if(s.children){for(let n=0;n<s.children.length;n++)if(i(s.children[n]))return!0}}return l(i,"scan"),this.m_props.root&&i(this.m_props.root),t}ensureVisible(e){let{node:t}=this._getNode(e);t&&t.scrollIntoView()}set selection(e){this.select(e,!1)}select(e,t=!0){if(this.m_selection?.el&&this.m_selection.el.removeClass("selected"),this.m_selection=null,e!==void 0){let{node:i}=this._getNode(e);if(i&&(this.m_selection={id:e,el:i},i.addClass("selected"),i.scrollIntoView(),t)){let s=i.getData("node");this.emit("selectionchange",ie(s))}}else t&&this.emit("selectionchange",ie(null))}_getNode(e){let t={node:null,item:null};return this.m_container.enumChilds(i=>{let s=i.getData("node");if(s?.id==e)return t={node:i,item:s},!0}),t}get selection(){return this.m_selection?.id}getNodeWithId(e){return this.forEach(t=>t.id==e)}_click(e){let t=e.target,i=t,s=!1;for(t.tabIndex!==-1&&(s=!0);t!=this.dom;){let n=u.getElement(t),r=n?.getData("node");if(r){if(r.children&&!s){(n.hasClass("selected")||i.classList.contains("tree-icon"))&&(r.open=!r.open),this.m_selection={id:r.id,el:null};let a=this.m_view?.dom?.scrollTop;this.update(),a&&this.m_view.dom.scrollTo(0,a),this.emit("expand",Kn(r))}else this.selection=r.id,s||(e.type=="click"?this.emit("click",ne(r)):this.emit("dblclick",ye(r)));this.emit("selectionchange",ie(r));return}t=t.parentElement}e.type=="click"&&(this.m_selection=null,this.update(),this.emit("selectionchange",ie(null)))}_handleCtxMenu(e){e.preventDefault();let t=e.target,i=t;for(;t!=this.dom;){let n=u.getElement(t)?.getData("node");if(n){if(n.children&&i.classList.contains("tree-icon"))return;this.selection=n.id,this.emit("click",ne(n)),this.emit("contextMenu",pe(e,n));return}t=t.parentElement}this.selection=null,this.emit("contextMenu",pe(e,null))}static buildFromStrings(e,t="/"){let i={id:0,text:"<root>",children:[]};function s(n,r){let a=r.indexOf(t),h=r.substr(0,a<0?void 0:a),m;a>=0&&(m=n.find(c=>c.text==h)),m||(m={id:r,text:h},n.push(m)),a>=0&&(m.children||(m.children=[]),s(m.children,r.substr(a+t.length)))}return l(s,"insert"),e.forEach(n=>{s(i.children,n)}),i}static buildFromHierarchy(e,t){let i={id:0,text:"<root>",children:[]},s=[];function n(r){let a,h;r.parent>0?(h=s.find(m=>m.id==r.parent),h||(h={id:r.parent,text:"",children:[]},s.push(h)),h.children||(h.children=[])):h=i,a=s.find(m=>m.id==r.id),a?(a.text=r.name,a.parent=r.parent):(a={id:r.id,text:r.name,parent:r.parent,cls:r.cls,icon:r.icon,data:r.data},r.leaf?a.icon=null:a.children=[]),s.push(a),h.children.push(a)}return l(n,"insert"),e.forEach(n),t&&s.forEach(t),i}};l(Si,"TreeView");var Gn=l((o,e,...t)=>{let i;return o==Ps||o==Ds?t:(o instanceof Function?i=new o(e):i=new u({tag:o,...e}),t&&t.length&&i.setContent(t),i)},"createElement"),Ds=Symbol("fragment"),Ps=l(()=>null,"createFragment"),$n={createElement:Gn,createFragment:Ps,Fragment:Ds},Ai=class extends u{render(e){let t=this.renderTSX(e);t&&this.setContent(t)}};l(Ai,"TSXComponent");var Ms=Symbol("msg_sent");function qn(o){let e=window.location.protocol==="https:"?"wss://":"ws://",t=new WebSocket(`${e}${window.location.hostname}:${window.location.port}`,"messaging"),i=xe.instance();i.on("global",s=>{s[Ms]||t.send(JSON.stringify({msg:s.msg,params:s.params}))}),t.onmessage=s=>{if(s.data!="ping"){let n=JSON.parse(s.data);n[Ms]=!0,i.signal("global",n)}},t.onclose=s=>{console.log("websocket closed:",s),o()},t.onerror=s=>{console.log("websocket error:",s)}}l(qn,"setupWSMessaging");var Yn="1.5.40";
|
|
9
|
+
`)}},Rt=es;l(Rt,"SVGPathBuilder"),F(Rt,"g_clip_id",1);var Fi=class extends u{constructor(e){super(e),this.setTag("svg","http://www.w3.org/2000/svg"),this.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.setAttributes({viewBox:e.viewBox}),this.setContent(e.path)}};l(Fi,"SVGComponent");var Ii=class extends O{m_pages;m_curPage;constructor(e){super(e),this.m_pages=[],this.m_curPage=null,this.mapPropEvents(e,"change"),e.vertical?this.addClass("@vlayout"):this.addClass("@hlayout"),this.m_props.pages?.forEach(t=>this.addPage(t))}componentCreated(){this.m_props.default&&this.select(this.m_props.default,!0)}addPage(e){this.m_pages.push({...e}),this._updateContent()}render(){let e=[];this.m_pages.forEach(t=>{t.btn=new z({cls:t===this.m_curPage?"selected":"",text:t.title,icon:t.icon,click:()=>this._select(t,!0)}),e.push(t.btn)}),this.setContent(e)}select(e,t=!1){if(e){let i=this.m_pages.find(s=>s.id===e);return i?(this._select(i,t),!0):!1}else return this._select(null,t),!0}_select(e,t){if(this.m_curPage!=e){if(!this.dom){this.m_props.default=e.id;return}this.m_curPage&&(this.m_curPage.btn.removeClass("selected"),this.m_curPage.page&&this.m_curPage.page.hide()),this.m_curPage=e,t&&this.signal("change",M(e?e.id:null)),this.m_curPage&&(this.m_curPage.btn.addClass("selected"),this.m_curPage.page&&this.m_curPage.page.show())}}get selection(){return this.m_curPage?.page}};l(Ii,"TabBar");var Di=class extends Be{m_tab_selector;m_menu;constructor(e){super(e),this.m_tab_selector=!!e.tab_selector,this.m_menu=e.menu,this.addClass("@vlayout")}render(){let e=[],t=[];this.m_menu&&(this.m_menu.addClass("@button @tab-btn"),this.m_menu.removeClass("@menu-item"),e.push(this.m_menu)),this.m_cards.forEach(i=>{e.push(i.selector),i.page instanceof Function||t.push(i.page)}),this.m_tab_selector&&t.unshift(new w({cls:"@tab-switch",content:e})),this.setContent(t)}_updateSelector(){}_prepareSelector(e){return new z({cls:"@tab-btn",text:e.title,icon:e.icon,click:()=>{this.switchTo(e.name)}})}_preparePage(e){super._preparePage(e),e.dom||this.appendChild(e)}};l(Di,"TabView");var Pi=class extends u{constructor(e){super(e),this.mapPropEvents(e,"change")}render(e){e.text=e.text??"",this.setAttribute("tabindex",e.tabIndex??0),e.spellcheck===!1&&this.setAttribute("spellcheck","false"),e.readOnly!==void 0&&this.setAttribute("readonly",e.readOnly),e.rows&&this.setAttribute("rows",e.rows),e.placeHolder&&this.setAttribute("placeholder",e.placeHolder),e.autoFocus&&this.setAttribute("autofocus",e.autoFocus),e.name&&this.setAttribute("name",e.name),e.autoGrow&&(this.m_props.autoGrow=!0,this.setAttribute("rows",this._calcHeight(e.text)),this.setDomEvent("keydown",()=>{ce(()=>this._updateHeight())})),this.setDomEvent("keydown",t=>{t.stopPropagation()}),this.setTag("textarea"),this.setDomEvent("input",()=>this._change())}_change(){this.emit("change",M(this.value))}componentCreated(){this.value=this.m_props.text}get value(){return this.dom?this.dom.value:this.m_props.text}set value(e){this.m_props.text=e??"",this.dom&&(this.dom.value=this.m_props.text,this.m_props.autoGrow&&this.setAttribute("rows",this._calcHeight(this.m_props.text)))}get text(){return this.value}set text(e){this.value=e}_calcHeight(e){return 1+(e.match(/\n/g)||[]).length}_updateHeight(){let e=this.value,t=this._calcHeight(e);this.getData("lines")!=t&&(this.setAttribute("rows",t),this.setData("lines",t))}insertText(e){this.appendText(e)}appendText(e){if(this.dom){let t=this.dom,i=t.selectionEnd;t.setRangeText(e,i,i,"end")}}replaceText(e){this.dom&&this.dom.setRangeText(e)}getSelection(){if(this.dom){let e=this.dom;return{start:e.selectionStart,end:e.selectionEnd}}else return{start:0,end:0}}setSelection(e){if(this.dom){let t=this.dom;e.start!==void 0&&(t.selectionStart=e.start),e.end!==void 0&&(t.selectionEnd=e.end)}}getStoreValue(){return this.value}setStoreValue(e){this.value=e}};l(Pi,"TextArea");var Mi=class extends q{m_message;m_icon;constructor(e){super(e),this.m_message=e.message,this.m_icon=e.icon,this.enableMask(!1),this.addClass("@non-maskable")}render(){this.addClass("@hlayout"),this.setContent([new I({icon:this.m_icon,text:this.m_message})])}show(){this.show=super.show,this.displayAt(9999,9999,"br",{x:0,y:-24});let e=1;this.startTimer("fadeout",2e3,!1,()=>{this.startTimer("opacity",100,!0,()=>{this.setStyleValue("opacity",e),e-=.1,e<0&&this.dispose()})})}};l(Mi,"Toaster");function Kn(o){return S({node:o})}l(Kn,"EvExpand");var Si=class extends H{m_view;m_container;m_selection;constructor(e){super(e),e.root=e.root,e.indent=e.indent??8,e.gadgets=e.gadgets,e.sort=e.sort??!1,this.m_selection=null,this.m_container=new O({cls:"@scroll-container"}),this.m_view=new O({cls:"@scroll-view",flex:1,content:this.m_container}),this.setContent([this.m_view,e.gadgets?new w({cls:"gadgets",content:e.gadgets}):null]),this.setDomEvent("click",t=>this._click(t)),this.setDomEvent("dblclick",t=>this._click(t)),this.setDomEvent("contextmenu",t=>this._handleCtxMenu(t)),e.canDragItems&&(this.setDomEvent("dragstart",t=>{let s=u.getElement(t.target,u)?.getData("node");s?(t.dataTransfer.effectAllowed="move",t.dataTransfer.items.add(JSON.stringify({type:"treeview",id:s.id}),"string")):(t.preventDefault(),t.stopPropagation())}),this.setDomEvent("dragover",t=>this._dragEnter(t)),this.setDomEvent("dragenter",t=>this._dragEnter(t)),this.setDomEvent("dragend",t=>this._dragLeave(t)),this.setDomEvent("dragleave",t=>this._dragLeave(t)),this.setDomEvent("drop",t=>this._dragLeave(t)),this.setDomEvent("drop",t=>this._drop(t))),this.mapPropEvents(e,"dblclick","drag","selectionchange","contextMenu")}_dragEnter(e){e.preventDefault();let t=u.getElement(e.target,u);t?.getData("node")&&(t.addClass("@drag-over"),e.dataTransfer.dropEffect="move")}_dragLeave(e){let t=u.getElement(e.target,u);t?.getData("node")&&t.removeClass("@drag-over")}_drop(e){let t=u.getElement(e.target,u),i=t?.getData("node");if(i||(i=this.m_props.root),i){let s;i.children?s=i:s=t.getData("parent");for(let n=0;n<e.dataTransfer.items.length;n++)e.dataTransfer.items[0].getAsString(r=>{let a=JSON.parse(r);this.emit("drag",Bi(i,a,s))})}}render(){this.__update()}__update(){if(this.m_props.root){let e=[];this._buildBranch(this.m_props.root,-1,e,this.m_props.root),this.m_container.setContent(e)}}updateElement(e){let{node:t,item:i}=this._getNode(e);if(t){let s=t.dom.parentNode,n=this._makeNode(i,t.dom.classList.value,t.getData("icon"),t.getData("level")),r=n._build();s.replaceChild(r,t.dom),this.m_selection?.el===t&&(this.m_selection.el=n)}}set root(e){this.m_props.root=e,this.update()}openAll(e=!0){this.forEach(t=>{t.children&&(t.open=e)}),this.__update()}refreshRoot(e){let t=[];this.forEach(s=>(s.open&&t.push(s.id),!1));let i=this.selection;e&&(this.m_props.root=e),this.forEach(s=>(t.indexOf(s.id)>=0&&(s.open=!0),!1)),this.__update()}_buildBranch(e,t,i,s){let n="@tree-item";e.cls&&(n+=" "+e.cls),!e.open&&e.children&&(n+=" collapsed"),e.children&&(n+=" folder",e.children.length==0&&(n+=" empty"));let r=e.icon;if(r===void 0&&e.children&&(e.open===!0?r="var(--x4-icon-chevron-down)":r="var(--x4-icon-chevron-right)"),t>=0){let a=this._makeNode(e,n,r,t);this.m_selection?.id==e.id&&(this.m_selection.el=a,a.addClass("selected")),i.push(a)}(t==-1||e.open)&&e.children&&(this.m_props.sort&&(e.children=e.children.sort((a,h)=>{let m=(a.children?"0"+a.text:a.text)?.toLocaleLowerCase(),c=(h.children?"0"+h.text:h.text)?.toLocaleLowerCase();return m<c?-1:m>c?1:0})),e.children.forEach(a=>{this._buildBranch(a,t+1,i,e)}))}_renderDef(e){return new I({cls:"tree-label",flex:1,text:e.text})}_makeNode(e,t,i,s){return new w({cls:t,content:[new L({cls:"tree-icon",icon:i}),this.m_props.renderItem?this.m_props.renderItem(e):this._renderDef(e)],data:{node:e,level:s,icon:i},style:{paddingLeft:4+s*this.m_props.indent},attrs:{draggable:this.m_props.canDragItems?!0:void 0}})}forEach(e){let t=null;function i(s){if(e(s)==!0)return!0;if(s.children){for(let n=0;n<s.children.length;n++)if(i(s.children[n]))return!0}}return l(i,"scan"),this.m_props.root&&i(this.m_props.root),t}ensureVisible(e){let{node:t}=this._getNode(e);t&&t.scrollIntoView()}set selection(e){this.select(e,!1)}select(e,t=!0){if(this.m_selection?.el&&this.m_selection.el.removeClass("selected"),this.m_selection=null,e!==void 0){let{node:i}=this._getNode(e);if(i&&(this.m_selection={id:e,el:i},i.addClass("selected"),i.scrollIntoView(),t)){let s=i.getData("node");this.emit("selectionchange",ie(s))}}else t&&this.emit("selectionchange",ie(null))}_getNode(e){let t={node:null,item:null};return this.m_container.enumChilds(i=>{let s=i.getData("node");if(s?.id==e)return t={node:i,item:s},!0}),t}get selection(){return this.m_selection?.id}getNodeWithId(e){return this.forEach(t=>t.id==e)}_click(e){let t=e.target,i=t,s=!1;for(t.tabIndex!==-1&&(s=!0);t!=this.dom;){let n=u.getElement(t),r=n?.getData("node");if(r){if(r.children&&!s){(n.hasClass("selected")||i.classList.contains("tree-icon"))&&(r.open=!r.open),this.m_selection={id:r.id,el:null};let a=this.m_view?.dom?.scrollTop;this.update(),a&&this.m_view.dom.scrollTo(0,a),this.emit("expand",Kn(r))}else this.selection=r.id,s||(e.type=="click"?this.emit("click",ne(r)):this.emit("dblclick",ye(r)));this.emit("selectionchange",ie(r));return}t=t.parentElement}e.type=="click"&&(this.m_selection=null,this.update(),this.emit("selectionchange",ie(null)))}_handleCtxMenu(e){e.preventDefault();let t=e.target,i=t;for(;t!=this.dom;){let n=u.getElement(t)?.getData("node");if(n){if(n.children&&i.classList.contains("tree-icon"))return;this.selection=n.id,this.emit("click",ne(n)),this.emit("contextMenu",pe(e,n));return}t=t.parentElement}this.selection=null,this.emit("contextMenu",pe(e,null))}static buildFromStrings(e,t="/"){let i={id:0,text:"<root>",children:[]};function s(n,r){let a=r.indexOf(t),h=r.substr(0,a<0?void 0:a),m;a>=0&&(m=n.find(c=>c.text==h)),m||(m={id:r,text:h},n.push(m)),a>=0&&(m.children||(m.children=[]),s(m.children,r.substr(a+t.length)))}return l(s,"insert"),e.forEach(n=>{s(i.children,n)}),i}static buildFromHierarchy(e,t){let i={id:0,text:"<root>",children:[]},s=[];function n(r){let a,h;r.parent>0?(h=s.find(m=>m.id==r.parent),h||(h={id:r.parent,text:"",children:[]},s.push(h)),h.children||(h.children=[])):h=i,a=s.find(m=>m.id==r.id),a?(a.text=r.name,a.parent=r.parent):(a={id:r.id,text:r.name,parent:r.parent,cls:r.cls,icon:r.icon,data:r.data},r.leaf?a.icon=null:a.children=[]),s.push(a),h.children.push(a)}return l(n,"insert"),e.forEach(n),t&&s.forEach(t),i}};l(Si,"TreeView");var Gn=l((o,e,...t)=>{let i;return o==Ps||o==Ds?t:(o instanceof Function?i=new o(e):i=new u({tag:o,...e}),t&&t.length&&i.setContent(t),i)},"createElement"),Ds=Symbol("fragment"),Ps=l(()=>null,"createFragment"),$n={createElement:Gn,createFragment:Ps,Fragment:Ds},Ai=class extends u{render(e){let t=this.renderTSX(e);t&&this.setContent(t)}};l(Ai,"TSXComponent");var Ms=Symbol("msg_sent");function qn(o){let e=window.location.protocol==="https:"?"wss://":"ws://",t=new WebSocket(`${e}${window.location.hostname}:${window.location.port}`,"messaging"),i=xe.instance();i.on("global",s=>{s[Ms]||t.send(JSON.stringify({msg:s.msg,params:s.params}))}),t.onmessage=s=>{if(s.data!="ping"){let n=JSON.parse(s.data);n[Ms]=!0,i.signal("global",n)}},t.onclose=s=>{console.log("websocket closed:",s),o()},t.onerror=s=>{console.log("websocket error:",s)}}l(qn,"setupWSMessaging");var Yn="1.6.0";
|
|
10
10
|
/**
|
|
11
11
|
* ___ ___ __
|
|
12
12
|
* \ \_/ / / _
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* @author Etienne Cochard
|
|
19
19
|
* @license
|
|
20
20
|
*
|
|
21
|
-
* Copyright (c) 2019-
|
|
21
|
+
* Copyright (c) 2019-2023 R-libre ingenierie
|
|
22
22
|
*
|
|
23
23
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
24
24
|
* of this software and associated documentation files (the "Software"), to deal
|
|
@@ -36,4 +36,4 @@
|
|
|
36
36
|
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
37
37
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
38
38
|
**/
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=x4js.js.map
|