@sme.up/ketchup 11.0.0-SNAPSHOT-20241202133618 → 11.0.0-SNAPSHOT-20241203120425
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ketchup.cjs.js +1 -1
- package/dist/cjs/kup-input-panel.cjs.entry.js +58 -29
- package/dist/cjs/kup-input-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/kup-manager-fbfa9d0f.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel-declarations.js +28 -27
- package/dist/collection/components/kup-input-panel/kup-input-panel-declarations.js.map +1 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel.js +51 -2
- package/dist/collection/components/kup-input-panel/kup-input-panel.js.map +1 -1
- package/dist/collection/managers/kup-objects/kup-objects.js.map +1 -1
- package/dist/components/kup-input-panel.js +59 -29
- package/dist/components/kup-input-panel.js.map +1 -1
- package/dist/components/p-d5a15f7e.js.map +1 -1
- package/dist/esm/ketchup.js +1 -1
- package/dist/esm/kup-input-panel.entry.js +58 -29
- package/dist/esm/kup-input-panel.entry.js.map +1 -1
- package/dist/esm/kup-manager-6d5555c0.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/ketchup.esm.js.map +1 -1
- package/dist/ketchup/p-187bccf8.entry.js +2 -0
- package/dist/ketchup/p-187bccf8.entry.js.map +1 -0
- package/dist/ketchup/p-9982a6e1.js.map +1 -1
- package/dist/types/components/kup-input-panel/kup-input-panel-declarations.d.ts +2 -1
- package/dist/types/components/kup-input-panel/kup-input-panel.d.ts +5 -0
- package/dist/types/components.d.ts +10 -0
- package/package.json +1 -1
- package/dist/ketchup/p-06641046.entry.js +0 -2
- package/dist/ketchup/p-06641046.entry.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as i,f as n,h as e,H as s,d as l}from"./p-b32ed503.js";import{F as o}from"./p-9e3b99ff.js";import{F as a}from"./p-8d6afe92.js";import{k as u,a5 as r,F as c,g as h,s as f,h as p,an as d,ab as m,aa as v,ao as b,e as k,N as g,am as _}from"./p-9982a6e1.js";import{F as y}from"./p-7db300e0.js";import{F as x,a as w}from"./p-2f6cd896.js";import{c as j}from"./p-635bb4b3.js";import"./p-e3062c19.js";import"./p-74da6bf3.js";import"./p-88c3ed8e.js";import"./p-931c3e7a.js";import"./p-032b4481.js";import"./p-5ba08261.js";import"./p-c56195a0.js";var O;(function(t){t["TAB"]="tab"})(O||(O={}));var F;(function(t){t["customStyle"]="Custom style of the component.";t["data"]="Actual data of the input panel.";t["hiddenSubmitButton"]="Creates a hidden submit button in order to submit the form with enter.";t["submitCb"]="Sets the callback function on submit form";t["optionsHandler"]="Sets the callback function to recieve options";t["buttonPosition"]="Manage the position of the buttons related to the input panel content. It is an enumeration";t["inputPanelPosition"]="Manage the global layout of the input panel fields. The default is COLUMNS.";t["autofocus"]="Sets whether the first input should receive focus."})(F||(F={}));var $;(function(t){t["COLUMNS"]="COLUMNS";t["INLINE"]="INLINE";t["STRETCHED"]="STRETCHED";t["UPINLINE"]="UPINLINE";t["UPCOLUMNS"]="UPCOLUMNS";t["WATERMARK"]="WATERMARK"})($||($={}));var M;(function(t){t["CENTER"]="CENTER";t["LEFT"]="LEFT";t["BOTTOM"]="BOTTOM";t["RIGHT"]="RIGHT";t["TOP"]="TOP"})(M||(M={}));const T={"*F01":"F1","*F02":"F2","*F03":"F3","*F04":"F4","*F05":"F5","*F06":"F6","*F07":"F7","*F08":"F8","*F09":"F9","*F10":"F10","*F11":"F11","*F12":"F12","*F13":"F13","*F14":"F14","*F15":"F15","*F16":"F16","*F17":"F17","*F18":"F18","*F19":"F19","*F20":"F20","*F21":"F21","*F22":"F22","*F23":"F23","*F24":"F24","*ENT":"Enter","*PDN":"PageDown","*PUP":"PageUp"};const z=12;const S=22;const E=t=>{if(t==0){return z/2}if(!t){return null}if(t===1){return 1.5*z}return t*z};const N=t=>{if(!t){return null}return t*S};const C=t=>{if(!t){return null}return(t-1)*S};const W=t=>{if(!t){return null}return t*z};const D=".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup-fcell-width:fit-content;--kup_input_panel_background_color:var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );--kup_input_panel_color:var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );--kup_input_panel_font_family:var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );--kup_input_panel_font_size:var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );--kup_input_panel_label_alignment:var(--kup-input-panel-label-alignment);--kup_input_panel_label_width:var(--kup-input-panel-label-width);--kup_input_panel_padding:var(--kup-input-panel-padding, 1em 0);--kup_input_panel_padding--inline:var(--kup-input-panel-padding--inline, 0)}:host .input-panel{background:var(--kup_input_panel_background_color);color:var(--kup_input_panel_color);display:flex;flex-grow:1;overflow:auto;padding:var(--kup_input_panel_padding);position:relative;gap:1rem}:host .input-panel__commands{display:flex;gap:1rem}:host .input-panel__commands.input-panel__commands--right{flex-shrink:0;overflow:hidden}:host .input-panel--inline{flex:1;overflow-x:auto;white-space:nowrap;padding:var(--kup_input_panel_padding--inline)}:host .input-panel--column{flex-direction:column}:host .input-panel__section_label_container{display:flex;flex-direction:column;gap:1rem}:host .input-panel__section{display:grid;min-width:0}:host .input-panel__section .f-cell__content>*{width:100%}:host .input-panel__horizontal-section{display:inline-grid}:host .input-panel__section-inline{display:inline-block;width:max-content}:host .input-panel .f-cell .f-checkbox .checkbox .checkbox__native-control{height:40px;width:40px}:host .input-panel__label_container{display:flex;flex-direction:column;justify-content:center}:host .input-panel__label_container>.f-cell{flex:1}:host .input-panel__tabs_container{display:flex;flex-direction:column;justify-content:center;gap:2rem}:host .input-panel .f-cell.number-cell .f-cell__content{--kup-textfield-font-family:var(--kup_cell_font_family);font-family:var(--kup_cell_font_family)}:host .input-panel .input-panel-label{display:flex;width:100%;height:100%;align-items:center;justify-content:center}:host .input-panel--absolute{justify-content:flex-end;padding:var(--kup-space-02)}:host .input-panel--absolute .input-panel-label{justify-content:start}:host .input-panel--absolute .mdc-text-field{height:unset !important}:host .input-panel-form--inline{display:flex;align-items:end;gap:1rem}";const I=D;var P=undefined&&undefined.__classPrivateFieldGet||function(t,i,n,e){if(n==="a"&&!e)throw new TypeError("Private accessor was defined without a getter");if(typeof i==="function"?t!==i||!e:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?e:n==="a"?e.call(t):e?e.value:i.get(t)};var L=undefined&&undefined.__classPrivateFieldSet||function(t,i,n,e,s){if(e==="m")throw new TypeError("Private method is not writable");if(e==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i==="function"?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e==="a"?s.call(t,n):s?s.value=n:i.set(t,n),n};var R=undefined&&undefined.__rest||function(t,i){var n={};for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&i.indexOf(e)<0)n[e]=t[e];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var s=0,e=Object.getOwnPropertySymbols(t);s<e.length;s++){if(i.indexOf(e[s])<0&&Object.prototype.propertyIsEnumerable.call(t,e[s]))n[e[s]]=t[e[s]]}return n};var B,U,A,G,H,V,J,K,X,Y,q,Q,Z,tt,it,nt,et,st,lt,ot,at,ut,rt,ct,ht,ft,pt,dt,mt,vt,bt,kt,gt,_t,yt,xt,wt,jt,Ot,Ft,$t,Mt,Tt,zt,St,Et,Nt,Ct,Wt,Dt,It,Pt,Lt,Rt,Bt,Ut,At,Gt,Ht,Vt,Jt,Kt,Xt,Yt,qt,Qt,Zt,ti;const ii=document.documentElement;const ni=class{constructor(n){t(this,n);this.kupReady=i(this,"kup-input-panel-ready",6);this.kupDataTableContextMenu=i(this,"kup-inputpanel-contextmenu",6);B.add(this);U.set(this,u());A.set(this,void 0);G.set(this,new Map([["SmeupTreeNode",P(this,B,"m",Rt).bind(this)],["SmeupDataTree",P(this,B,"m",Bt).bind(this)],["SmeupTable",P(this,B,"m",Ut).bind(this)],["SmeupDataTable",P(this,B,"m",Ut).bind(this)]]));H.set(this,null);V.set(this,new Map([[r.AUTOCOMPLETE,["kup-autocomplete-input","kup-autocomplete-iconclick"]],[r.MULTI_AUTOCOMPLETE,["kup-autocomplete-input","kup-autocomplete-iconclick"]],[r.COMBOBOX,["kup-combobox-iconclick","kup-combobox-blur"]],[r.MULTI_COMBOBOX,["kup-combobox-iconclick"]]]));J.set(this,new Map([[c.AUTOCOMPLETE,"kup-autocomplete-blur"],[c.CHIP,"kup-textfield-blur"],[c.COMBOBOX,"kup-combobox-blur"],[c.DATE,"kup-datepicker-blur"],[c.MULTI_AUTOCOMPLETE,"kup-autocomplete-blur"],[c.MULTI_COMBOBOX,"kup-combobox-blur"],[c.TIME,"kup-timepicker-blur"]]));K.set(this,[]);X.set(this,new Map([[r.DATE,"kup-date-picker"],[r.TIME,"kup-time-picker"]]));Y.set(this,new Map([[c.BUTTON_LIST,P(this,B,"m",nt).bind(this)],[c.EDITOR,P(this,B,"m",st).bind(this)],[c.LABEL,P(this,B,"m",ot).bind(this)],[c.TABLE,P(this,B,"m",lt).bind(this)]]));q.set(this,new Map([[O.TAB,P(this,B,"m",pt).bind(this)]]));Q.set(this,[]);this.buttonPosition=M.BOTTOM;this.customStyle="";this.dashboardMode=false;this.data=null;this.hiddenSubmitButton=false;this.inputPanelPosition=$.COLUMNS;this.submitCb=null;this.optionsHandler=null;this.customButtonClickHandler=null;this.checkValidObjCallback=null;this.checkValidValueCallback=null;this.autoFocus=false;this.inputPanelCells=[];this.inputPanelCommands=[];this.tabSelected=null}onDataChanged(){L(this,H,structuredClone(this.data),"f");if(P(this,K,"f").length){P(this,K,"f").map((({event:t,handler:i})=>{this.rootElement.removeEventListener(t,i)}));L(this,K,[],"f")}if(P(this,Q,"f").length){P(this,Q,"f").map((t=>{P(this,U,"f").keysBinding.unregister(t)}));L(this,Q,[],"f")}if(this.data){P(this,B,"m",bt).call(this,this.data)}}async getProps(t){return h(this,F,t)}async refresh(){n(this)}async setProps(t){f(this,F,t)}componentWillLoad(){P(this,U,"f").debug.logLoad(this,false);P(this,U,"f").language.register(this);P(this,U,"f").theme.register(this);this.onDataChanged()}componentDidLoad(){P(this,B,"m",Qt).call(this);this.kupReady.emit({comp:this,id:this.rootElement.id});P(this,U,"f").debug.logLoad(this,true)}componentWillRender(){P(this,U,"f").debug.logRender(this,false)}componentDidRender(){const t=this.rootElement.shadowRoot;if(t){if(this.autoFocus){P(this,B,"m",Zt).call(this,t)}const i=t.querySelectorAll(".f-text-field");for(let t=0;t<i.length;t++){y(i[t])}}P(this,U,"f").debug.logRender(this,true)}render(){const t=Boolean(!this.inputPanelCells.length);const i=t?[e("p",null,P(this,U,"f").language.translate(p.EMPTY_DATA))]:this.inputPanelCells.map((t=>P(this,B,"m",tt).call(this,t)));return e(s,{key:"10c0534fe25c031303e35399ed59dd532dc111f8"},e("style",{key:"7b7910e3a25eff317b239ac241909b3221d5485a"},P(this,U,"f").theme.setKupStyle(this.rootElement)),e("div",{key:"fd766af40ebffc558f9e842a0e891510238fde69",id:j},i))}disconnectedCallback(){P(this,U,"f").language.unregister(this);P(this,U,"f").theme.unregister(this)}get rootElement(){return l(this)}static get watchers(){return{data:["onDataChanged"]}}};U=new WeakMap,A=new WeakMap,G=new WeakMap,H=new WeakMap,V=new WeakMap,J=new WeakMap,K=new WeakMap,X=new WeakMap,Y=new WeakMap,q=new WeakMap,Q=new WeakMap,B=new WeakSet,Z=function t(i){return this.inputPanelCells.reduce(((t,{cells:n})=>{if(!t){return n.find((({column:t})=>t.name===i)).cell}return t}),null)},tt=function t(i){var n,s;const l=i.row.layout;const a=(l===null||l===void 0?void 0:l.horizontal)||false;const u={};let r;if(!((n=l===null||l===void 0?void 0:l.sections)===null||n===void 0?void 0:n.length)){r=i.cells.map((t=>P(this,B,"m",it).call(this,t.cell,i.row,t.column)))}else{if(l.absolute){r=P(this,B,"m",rt).call(this,i,l);const t=Math.max(...l.sections.flatMap((t=>t.content.map((t=>t.absoluteRow||0)))));u.height=`${t*S}px`}else{if(!l.sectionsType){const t=l.sections.some((t=>t.dim));u.display="grid";if(this.inputPanelPosition=="INLINE"){u.display=""}if(l.horizontal){u.gridTemplateColumns=t?l.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${i.cells.length}, 1fr)`}else{if(this.dashboardMode){u.gridTemplateRows=t?l.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${l.sections.length}, 1fr)`}}}r=P(this,B,"m",ut).call(this,i,l)}}const c={"input-panel-form":true,"input-panel-form--inline":this.buttonPosition==M.RIGHT};const h={"input-panel":true,"input-panel--column":!a,"input-panel--absolute":l===null||l===void 0?void 0:l.absolute,"input-panel--inline":this.inputPanelPosition==$.INLINE};const f={"input-panel__commands":true,[`input-panel__commands--${this.buttonPosition}`]:true};const d={value:(s=l===null||l===void 0?void 0:l.sections[0])===null||s===void 0?void 0:s.title,type:w.HEADING1};return e("div",null,e("form",{name:this.rootElement.id,id:this.rootElement.id,class:c,ref:t=>L(this,A,t,"f"),onSubmit:t=>{t.preventDefault();this.submitCb({value:{before:Object.assign({},P(this,H,"f")),after:P(this,B,"m",_t).call(this)}})},onContextMenu:t=>{t.preventDefault()}},e("div",{class:"input-panel__typography"},e(x,Object.assign({},d))),e("div",{class:h,style:u},r),e("div",{class:f},e(o,{buttonType:"submit",label:P(this,U,"f").language.translate(p.CONFIRM),wrapperClass:"form__submit",invisible:this.hiddenSubmitButton}),this.inputPanelCommands)))},it=function t(i,n,s){if(!i){return}const l=P(this,Y,"f").get(i.shape);if(l!==undefined){return l(i,s.name)}const o={cell:i,column:s,row:n,component:this,editable:true,renderKup:true,setSizes:true};const u=P(this,B,"m",at).call(this,i,s.title);if(u){return e("div",{class:{"input-panel__label_container":true}},u,e(a,Object.assign({},o)))}return e(a,Object.assign({},o))},nt=function t(i,n){return e(o,Object.assign({icon:i.icon,id:n},i.data,{wrapperClass:"form__submit"}))},et=function t(i,n){return e("kup-dropdown-button",Object.assign({},i.data,{label:i.value,data:n,"onkup-dropdownbutton-itemclick":t=>{P(this,B,"m",Xt).call(this,t.detail.node,t.detail.node.id)}}))},st=function t(i,n){const s="kup-editor-save";const l=t=>{const i=this.inputPanelCells.reduce(((t,{cells:i})=>{if(!t){return i.find((({column:t})=>t.name===n)).cell}return t}),null);i.value=t.detail.htmlValue.replace(/\n/g,"<br>")};this.rootElement.addEventListener(s,l);P(this,K,"f").push({event:s,handler:l});return e("kup-editor",Object.assign({},i.data,{id:n,isReadOnly:!i.isEditable,showToolbar:true}))},lt=function t(i,n){return e("kup-data-table",Object.assign({id:n,editableData:true,showGroups:true,showFilters:true,showFooter:true},i.data))},ot=function t(i,n){return e("span",{class:"input-panel-label",id:n},i.value)},at=function t(i,n){if(!n){return null}const s=ii.ketchup.data.cell.getType(i,i.shape);if(s===r.RADIO){return e("span",null,n)}return null},ut=function t(i,n){const e=P(this,q,"f").get(n.sectionsType);return e?e(i,n.sections):n.sections.map((t=>P(this,B,"m",ct).call(this,i,t,false)))},rt=function t(i,n){return n.sections.map((t=>P(this,B,"m",ht).call(this,i,t)))},ct=function t(i,n,s=false,l={}){var o,a;const u={"input-panel__section":!n.horizontal,"input-panel__horizontal-section":n.horizontal,"input-panel__section-inline":this.inputPanelPosition=="INLINE"};l.gap=+n.gap>0?`${n.gap}rem`:"1rem";let r=[];if((o=n.sections)===null||o===void 0?void 0:o.length){r=n.sections.map((n=>P(this,B,"m",t).call(this,i,n)));const e=n.sections.some((t=>t.dim));if(!n.gridCols&&n.horizontal){l.gridTemplateColumns=e?n.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${n.sections.length}, 1fr)`}if(!n.gridRows&&!n.horizontal&&this.dashboardMode){l.gridTemplateRows=e?n.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${n.sections.length}, 1fr)`}}else if((a=n.content)===null||a===void 0?void 0:a.length){r=n.content.map((t=>P(this,B,"m",dt).call(this,i,t)));l.gridTemplateColumns=+n.gridCols>0?`repeat(${n.gridCols}, 1fr)`:"";if(this.dashboardMode){l.gridTemplateRows=+n.gridRows>0?`repeat(${n.gridRows}, 1fr)`:""}}const c=e("div",{class:u,style:l},r.filter(Boolean));return n.title&&!s?e("div",{class:{"input-panel__section_label_container":true}},e(x,{type:w.HEADING1,value:n.title}),c):c},ht=function t(i,n){var s,l;let o=[];if((s=n.sections)===null||s===void 0?void 0:s.length){o=n.sections.map((n=>P(this,B,"m",t).call(this,i,n)))}else if((l=n.content)===null||l===void 0?void 0:l.length){o=n.content.map((t=>P(this,B,"m",mt).call(this,i,t)))}if(E(n.absoluteWidth)==null){return o}const a=`${E(n.absoluteWidth)!=null?`${E(n.absoluteWidth)}px`:"100%"}`;const u=`${N(n.absoluteHeight)!=null?`${N(n.absoluteHeight)}px`:"100%"}`;const r=`${C(n.absoluteRow)}px`;const c=`${W(n.absoluteColumn)}px`;const h={position:"relative",width:a,"min-width":a,"max-width":a,height:u,"min-height":u,"max-height":u,top:r,left:c,overflow:"auto"};return e("div",{style:h},o)},ft=function t(i){var n,e;let s=[];if((n=i.content)===null||n===void 0?void 0:n.length){i.content.forEach((t=>{if(t.id){s.push(t.id)}}))}if((e=i.sections)===null||e===void 0?void 0:e.length){i.sections.forEach((i=>{s=s.concat(P(this,B,"m",t).call(this,i))}))}return s},pt=function t(i,n){if(!this.tabSelected){this.tabSelected=n[0].id||"0"}const s=n.map(((t,n)=>{const e=P(this,B,"m",ft).call(this,t);const s=i.cells.some((t=>{var i;const n=t.cell;const s=t.column;return e.includes(s.name)&&!!((i=n.data)===null||i===void 0?void 0:i.error)}));return{active:(t.id||`${n}`)===this.tabSelected,value:t.title,icon:s?"error":t.icon,id:t.id||`${n}`,danger:s}}));const l=n.map(((t,n)=>{const e=t.id||`${n}`;return P(this,B,"m",ct).call(this,i,t,true,{display:this.tabSelected!==e?"none":"grid"})}));const o=".tab-bar .tab-scroller .tab .tab__content { justify-content: flex-start; }";if(!P(this,K,"f").map((t=>t.event)).includes("kup-tabbar-click")){const t="kup-tabbar-click";const i=t=>{this.tabSelected=t.detail.node.id};this.rootElement.addEventListener(t,i);P(this,K,"f").push({event:t,handler:i})}return e("div",{class:{"input-panel__tabs_container":true}},e("kup-tab-bar",{data:s,customStyle:o}),l)},dt=function t(i,n){const s=i.cells.find((t=>t.column.name===n.id));const l=+n.colSpan>0?n.colSpan:!(+n.colSpan>0)&&!(+n.colStart>0)?1:null;const o=l?`span ${l}`:`${n.colStart}`;const a=+n.colEnd>0?`${n.colEnd}`:"";const u=+n.rowSpan>0?n.rowSpan:!(+n.rowSpan>0)&&!(+n.rowStart>0)?1:null;const r=u?`span ${u}`:`${n.rowStart}`;const c=+n.rowEnd>0?`${n.rowEnd}`:"";const h={"min-width":"0","grid-column-start":o,"grid-column-end":a,"grid-row-start":r,"grid-row-end":c};if(!s||!s.cell){return}return e("div",{style:h},P(this,B,"m",it).call(this,s.cell,i.row,s.column))},mt=function t(i,n){const s=i.cells.find((t=>t.column.name===n.id));if(!s||!s.cell){return}let l;if(s.cell.shape==c.DATE){l=n.absoluteLength>8?n.absoluteLength:8}else{l=n.absoluteLength}if(!n.absoluteHeight){n.absoluteHeight=1}const o=E(l);const a=N(n.absoluteHeight);const u=C(n.absoluteRow);const r=W(n.absoluteColumn);const h={position:"absolute",width:o!==null?`${o}px`:null,"min-width":o!==null?`${o}px`:null,"max-width":o!==null?`${o}px`:null,height:a!==null?`${a}px`:null,"min-height":a!==null?`${a}px`:null,"max-height":a!==null?`${a}px`:null,top:u!==null?`${C(n.absoluteRow)}px`:null,left:r!==null?`${W(n.absoluteColumn)}px`:null,overflow:"auto"};s.cell.data=Object.assign(Object.assign({},s.cell.data),{sizing:"extra-small",customStyle:(s.cell.data.customStyle||"")+".mdc-text-field {height: unset !important;}"});return e("div",{style:h},P(this,B,"m",it).call(this,s.cell,i.row,s.column))},vt=function t(){this.inputPanelCommands=this.data.setup.commands.map((t=>{if((t===null||t===void 0?void 0:t.children)&&(t===null||t===void 0?void 0:t.children.length)>0){const i={"kup-list":{showIcons:true,data:t.children.map((t=>P(this,B,"m",At).call(this,t)))}};return P(this,B,"m",et).call(this,t,i)}else{const i=P(this,B,"m",At).call(this,t);return P(this,B,"m",nt).call(this,i,t.value)}})).flat()},bt=function t(i){var n,e,s,l;if((e=(n=i.setup)===null||n===void 0?void 0:n.commands)===null||e===void 0?void 0:e.length){P(this,B,"m",vt).call(this)}const o=(s=i===null||i===void 0?void 0:i.rows[0])===null||s===void 0?void 0:s.layout;const a=((l=i===null||i===void 0?void 0:i.rows)===null||l===void 0?void 0:l.length)?i.rows.reduce(((t,n)=>{const e=i.columns.filter((t=>t.visible)).map((t=>{const i=structuredClone(n.cells[t.name]);const e=i?Object.assign(Object.assign({},i),{data:P(this,B,"m",kt).call(this,i,t,o),slotData:P(this,B,"m",xt).call(this,i,t),isEditable:true}):null;return{column:t,cell:e}}));return[...t,{cells:e,row:n}]}),[]):[];a.map((({cells:t})=>t.map((({cell:t,column:i})=>{const n=ii.ketchup.data.cell.getType(t,t.shape);const e=P(this,X,"f").get(n);if(!e){return}const s=this.rootElement.shadowRoot.querySelector(`${e}[id=${i.name.replace(/\//g,"\\$1")}]`);s===null||s===void 0?void 0:s.setValue(t.value)}))));this.inputPanelCells=a},kt=function t(i,n,e){const s=Object.assign(Object.assign({},P(this,B,"m",yt).call(this,i,n,e)),{disabled:!i.editable,id:n.name});const l=ii.ketchup.data.cell.getType(i,i.shape);const o=i.data||{},a=R(o,["data"]);return l!==r.MULTI_AUTOCOMPLETE&&l!==r.MULTI_COMBOBOX?P(this,B,"m",gt).call(this,s,Object.assign({},i.data)):Object.assign(Object.assign({},s),a)},gt=function t(i,n){for(const e in n){if(n[e]instanceof Object&&!Array.isArray(n[e])&&e in i){i[e]=P(this,B,"m",t).call(this,i[e],n[e])}else{i[e]=n[e]}}return i},_t=function t(){return this.inputPanelCells.reduce(((t,i)=>{const n=Object.keys(i.row.cells).reduce(((t,n)=>{var e;const s=(e=i.cells.find((t=>t.column.name===n)))===null||e===void 0?void 0:e.cell;let l=s===null||s===void 0?void 0:s.value;if((s===null||s===void 0?void 0:s.shape)===c.TABLE){l=JSON.stringify(P(this,B,"m",Pt).call(this,s.data.data,n))}return Object.assign(Object.assign({},t),{[n]:Object.assign(Object.assign({},i.row.cells[n]),{value:l,obj:s===null||s===void 0?void 0:s.obj})})}),{});return{columns:[...t.columns,...i.cells.map((t=>t.column))],rows:[...t.rows,{cells:n,layout:i.row.layout}]}}),{columns:[],rows:[]})},yt=function t(i,n,e){if(!i){return null}const s=i.options;let l;if(e===null||e===void 0?void 0:e.absolute){l=null}else{l=n.title}const o=i.value;const a=ii.ketchup.data.cell.getType(i,i.shape);const u=new Map([[r.AUTOCOMPLETE,P(this,B,"m",Ft).bind(this)],[r.BUTTON_LIST,P(this,B,"m",Ot).bind(this)],[r.CHART,P(this,B,"m",jt).bind(this)],[r.CHIP,P(this,B,"m",wt).bind(this)],[r.CHECKBOX,P(this,B,"m",$t).bind(this)],[r.COLOR_PICKER,P(this,B,"m",Mt).bind(this)],[r.COMBOBOX,P(this,B,"m",Ft).bind(this)],[r.EDITOR,P(this,B,"m",Tt).bind(this)],[r.MULTI_AUTOCOMPLETE,P(this,B,"m",wt).bind(this)],[r.MULTI_COMBOBOX,P(this,B,"m",wt).bind(this)],[r.NUMBER,P(this,B,"m",Dt).bind(this)],[r.DATE,P(this,B,"m",Nt).bind(this)],[r.OBJECT,P(this,B,"m",Ct).bind(this)],[r.RADIO,P(this,B,"m",St).bind(this)],[r.STRING,P(this,B,"m",zt).bind(this)],[r.SWITCH,P(this,B,"m",Et).bind(this)],[r.TABLE,P(this,B,"m",It).bind(this)],[r.TIME,P(this,B,"m",Wt).bind(this)]]);const c=u.get(a);return c?c(s,l,o,i,n.name):null},xt=function t(i,n){const e=ii.ketchup.data.cell.getType(i,i.shape);if(!i.editable){return null}if(e===r.CHIP){return{trailingIcon:true,label:n.title,disabled:!i.editable,id:n.name,fullWidth:false}}if(e===r.MULTI_AUTOCOMPLETE||e===r.MULTI_COMBOBOX){return Object.assign(Object.assign({},P(this,B,"m",Ft).call(this,i.options,n.title,null,i,n.name)),{showDropDownIcon:true,class:"",style:{width:"100%"},disabled:!i.editable,id:n.name})}return null},wt=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){P(this,B,"m",Vt).call(this,s,l)}return d(e)},jt=function t(){return{data:{sizeX:"50px",offlineMode:{value:"8;4;5"},id:"i1012_GREF_0",cellId:"i1012_GREF_0",sizeY:"50px"}}},Ot=function t(i,n,e,s,l){var o,a,u,r;s.data=s.data||{};s.data.onClick=()=>{P(this,B,"m",Xt).call(this,s,l)};if(((o=s.data)===null||o===void 0?void 0:o.keyShortcut)&&!((a=s.data)===null||a===void 0?void 0:a.disabled)){P(this,Q,"f").push((u=s.data)===null||u===void 0?void 0:u.keyShortcut);P(this,U,"f").keysBinding.register((r=s.data)===null||r===void 0?void 0:r.keyShortcut,s.data.onClick.bind(this))}return Object.assign({label:s.value,fun:s.fun},s.data)},Ft=function t(i,n,e,s,l){var o,a;const u=m(e,n,[]);if(s.fun){const t=ii.ketchup.data.cell.getType(s,s.shape);const i=P(this,V,"f").get(t);if(!i){return}i.map((t=>{const i=t=>{P(this,B,"m",Gt).call(this,t.detail,s.fun,u,l,e)};this.rootElement.addEventListener(t,i);P(this,K,"f").push({event:t,handler:i})}))}else if(i){u.data["kup-list"].data=P(this,B,"m",Lt).call(this,i,e)}if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){P(this,B,"m",Vt).call(this,s,l)}return u},$t=function t(i,n,e,s,l){var o,a;let u=_(e,n);if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){return Object.assign(Object.assign({},u),{onBlur:()=>{P(this,B,"m",Ht).call(this,s,l)}})}return u},Mt=function t(i,n,e){return{data:{"kup-text-field":{label:n}}}},Tt=function t(i,n,e){return{initialValue:e}},zt=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){return{label:n,onBlur:()=>{P(this,B,"m",Ht).call(this,s,l)}}}return{label:n}},St=function t(i,n,e,s,l){var o,a;let u=v(e,i);if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){return Object.assign(Object.assign({},u),{onBlur:()=>{P(this,B,"m",Ht).call(this,s,l)}})}return u},Et=function t(i,n,e){return b(e,n)},Nt=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){P(this,B,"m",Vt).call(this,s,l)}return{data:{"kup-text-field":{label:n}},initialValue:e}},Ct=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){return{initialValue:e||"",label:n||" ",value:e||"",onBlur:()=>{P(this,B,"m",Ht).call(this,s,l)}}}return{initialValue:e||"",label:n||" ",value:e||""}},Wt=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){P(this,B,"m",Vt).call(this,s,l)}return{data:{"kup-text-field":{label:n}}}},Dt=function t(i,n,e,s,l){var o,a;if(((o=s.inputSettings)===null||o===void 0?void 0:o.checkObject)||((a=s.inputSettings)===null||a===void 0?void 0:a.checkValueOnExit)||s.mandatory){return{label:n,onBlur:()=>{P(this,B,"m",Ht).call(this,s,l)}}}return{label:n}},It=function t(i,n,e,s,l){try{let t=JSON.parse(s.value);if(!t){P(this,U,"f").debug.logMessage(this,`Empty value for ${l} cell.`,k.WARNING);return null}if(t.type!=="SmeupDataTable"){P(this,U,"f").debug.logMessage(this,`Wrong data table type for ${l} cell. Type \`SmeupDataTable\` in value expected`,k.ERROR);return null}return{data:{columns:t.columns.map((i=>Object.assign(Object.assign({},i),{obj:t.rows[0].cells[i.name].obj}))),rows:t.rows.map((i=>Object.assign(Object.assign({},i),{cells:Object.keys(i.cells).reduce(((n,e)=>{const s=t.columns.find((t=>t.name===e));return Object.assign(Object.assign({},n),{[e]:Object.assign(Object.assign({},i.cells[e]),{data:Object.assign(Object.assign({},P(this,B,"m",yt).call(this,i.cells[e],s)),{disabled:i.cells[e].editable===false,id:s.id})})})}),{})})))}}}catch(t){P(this,U,"f").debug.logMessage(this,`Invalid value for ${l} cell. Type \`SmeupDataTable\` expected`,k.ERROR);return null}},Pt=function t(i,n){const e=Object.assign(Object.assign({},i),{rows:i.rows.map((t=>Object.assign(Object.assign({},t),{cells:{}})))});const s=i.columns.filter((t=>t.isEditable)).map((t=>t.name));if(!s.length){return e}try{const t=JSON.parse(P(this,H,"f").rows[0].cells[n].value);e.rows=i.rows.map(((i,n)=>s.reduce(((e,s)=>{const l=t.rows[n].cells[s]&&i.cells[s].value!==t.rows[n].cells[s].value;if(l){return Object.assign(Object.assign({},t.rows[n]),{cells:Object.assign(Object.assign({},e.cells),{[s]:Object.assign(Object.assign({},t.rows[n].cells[s]),{value:i.cells[s].value})})})}return Object.assign(Object.assign({},t.rows[n]),{cells:e.cells})}),Object.assign(Object.assign({},t.rows[n]),{cells:{}}))));return e}catch(t){return e}},Lt=function t(i,n){const e=P(this,G,"f").get(i.type);if(e){return e(i,n)}else{return i.map((t=>({value:t.label,id:t.id,selected:n===t.id})))}},Rt=function t(i,n){return i.children.map((i=>{var e;return{id:i.content.codice,value:i.content.testo,selected:n===i.content.codice,children:((e=i.children)===null||e===void 0?void 0:e.length)?P(this,B,"m",t).call(this,i,n):[]}}))},Bt=function t(i,n){return i.children.map((i=>{var e;return{id:i.obj.k,value:i.value,selected:n===i.obj.k,children:((e=i.children)===null||e===void 0?void 0:e.length)?P(this,B,"m",t).call(this,i,n):[]}}))},Ut=function t(i,n){return i.rows.map((t=>{var i;const e=t.fields||t.cells;const[s,l]=Object.keys(e);return{id:e[s].value,value:((i=e[l])===null||i===void 0?void 0:i.value)||e[s].value,selected:n===e[s].value}}))},At=function t(i){if(i.data&&!i.data.keyShortcut&&P(this,U,"f").objects.isJ1Key(i.obj?i.obj:{})){i.data.keyShortcut=T[i.obj.k]}const n=Object.assign(Object.assign({},i),{data:P(this,B,"m",Ot).call(this,null,null,i.value,i,i.obj.k),id:i.obj.k});return n},Gt=function t(i,n,e,s,l){if(i.id!==s||i.open===false){return}this.optionsHandler(n,i.inputValue,P(this,B,"m",_t).call(this),i.id).then((t=>{var n;e.data["kup-list"].data=(n=P(this,B,"m",Lt).call(this,t,l))!==null&&n!==void 0?n:[];i.comp.refresh()}))},Ht=async function t(i,n){var e,s;const l=P(this,B,"m",Z).call(this,n);if(i.mandatory){P(this,B,"m",Jt).call(this,n,l.value?null:P(this,U,"f").language.translate(p.REQUIRED_VALUE));if(!l.value){return}}else{P(this,B,"m",Jt).call(this,n,null)}if(((e=i.inputSettings)===null||e===void 0?void 0:e.checkObject)&&l.value){const{valid:t}=await this.checkValidObjCallback({obj:i.obj,currentState:P(this,B,"m",_t).call(this),fun:i.fun});if(t){P(this,B,"m",Jt).call(this,n,null)}else{P(this,B,"m",Jt).call(this,n,P(this,U,"f").language.translate(p.INVALID_VALUE));return}}if(((s=i.inputSettings)===null||s===void 0?void 0:s.checkValueOnExit)&&P(this,B,"m",Kt).call(this)){this.checkValidValueCallback({before:Object.assign({},P(this,H,"f")),after:P(this,B,"m",_t).call(this)},n)}},Vt=function t(i,n){const e=P(this,J,"f").get(i.shape);if(!e){return}const s=async t=>{var e,s;const l=P(this,B,"m",Z).call(this,n);if(t.detail.id!==n){return}if(i.mandatory){P(this,B,"m",Jt).call(this,n,l.value?null:P(this,U,"f").language.translate(p.REQUIRED_VALUE));if(!t.detail.value){return}}else{P(this,B,"m",Jt).call(this,n,null)}if(((e=i.inputSettings)===null||e===void 0?void 0:e.checkObject)&&t.detail.value){const{valid:t}=await this.checkValidObjCallback({obj:i.obj,currentState:P(this,B,"m",_t).call(this),fun:i.fun});P(this,B,"m",Jt).call(this,n,t?null:P(this,U,"f").language.translate(p.INVALID_VALUE));if(!t){return}}if(((s=i.inputSettings)===null||s===void 0?void 0:s.checkValueOnExit)&&P(this,B,"m",Kt).call(this)){this.checkValidValueCallback({before:Object.assign({},P(this,H,"f")),after:P(this,B,"m",_t).call(this)},n)}};this.rootElement.addEventListener(e,s);P(this,K,"f").push({event:e,handler:s})},Jt=function t(i,n){this.inputPanelCells=this.inputPanelCells.map((t=>Object.assign(Object.assign({},t),{cells:t.cells.map((({cell:t,column:e})=>{const s=e.name===i?Object.assign(Object.assign({},t.data),{error:n}):t.data;return{column:e,cell:Object.assign(Object.assign({},t),{data:s})}}))})))},Kt=function t(){return this.inputPanelCells.some((({cells:t,row:i})=>t.some((({cell:t,column:{name:n}})=>t.value!==i.cells[n].value))))},Xt=function t(i,n){i.fun?this.customButtonClickHandler({fun:i.fun,cellId:n,currentState:P(this,B,"m",_t).call(this)}):this.submitCb({value:{before:Object.assign({},P(this,H,"f")),after:P(this,B,"m",_t).call(this)},cell:n})},Yt=function t(i,n){const e=i.find((t=>{var i;return(i=t.classList)===null||i===void 0?void 0:i.contains("f-cell")}));if(e==null){return}const s=e["kup-get-cell-props"]();const l=s.column.name;let o=e;let a=this.data.rows[0].cells[l];let u=this.data.columns.find((t=>t.name==l));return{anchor:o,cell:a,column:u,originalEvent:n}},qt=function t(i){const n=P(this,U,"f").getEventPath(i.target,this.rootElement);return P(this,B,"m",Yt).call(this,n,i)},Qt=function t(){P(this,U,"f").interact.managedElements.add(P(this,A,"f"));const i=t=>{if(t.button==2){const i=P(this,B,"m",qt).call(this,t);if(i){this.kupDataTableContextMenu.emit({comp:this,id:this.rootElement.id,details:i})}}};P(this,U,"f").interact.on(P(this,A,"f"),g.TAP,i)},Zt=function t(i){const n=i.querySelector("form");const e=n===null||n===void 0?void 0:n.querySelector(".f-cell__content");if(!n||!e)return;const s=P(this,B,"m",ti).call(this,e);if(s){setTimeout((()=>s.focus()),300)}},ti=function t(i){const n=i.querySelector("input");if(n)return n;const e=i instanceof HTMLElement?i.querySelectorAll("*"):[];for(const t of Array.from(e)){if(t.shadowRoot){const i=t.shadowRoot.querySelector("input");if(i)return i}}return null};ni.style=I;export{ni as kup_input_panel};
|
|
2
|
+
//# sourceMappingURL=p-187bccf8.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KupInputPanelLayoutSectionType","KupInputPanelProps","KupInputPanelPosition","KupInputPanelButtonsPositions","InputPanelKeyCommands","CHAR_WIDTH","ROW_HEIGHT","getAbsoluteWidth","length","getAbsoluteHeight","height","getAbsoluteTop","row","getAbsoluteLeft","col","kupInputPanelCss","KupInputPanelStyle0","dom","document","documentElement","KupInputPanel","_KupInputPanel_kupManager","set","this","kupManagerInstance","_KupInputPanel_formRef","_KupInputPanel_optionsAdapterMap","Map","__classPrivateFieldGet","_KupInputPanel_instances","_KupInputPanel_treeOptionsNodeAdapter","bind","_KupInputPanel_dataTreeOptionsChildrenAdapter","_KupInputPanel_tableOptionsAdapter","_KupInputPanel_originalData","_KupInputPanel_eventNames","FCellTypes","AUTOCOMPLETE","MULTI_AUTOCOMPLETE","COMBOBOX","MULTI_COMBOBOX","_KupInputPanel_eventBlurNames","FCellShapes","CHIP","DATE","TIME","_KupInputPanel_listeners","_KupInputPanel_cellTypeComponents","_KupInputPanel_cellCustomRender","BUTTON_LIST","_KupInputPanel_renderButton","EDITOR","_KupInputPanel_renderEditor","LABEL","_KupInputPanel_renderLabel","TABLE","_KupInputPanel_renderDataTable","_KupInputPanel_sectionRenderMap","TAB","_KupInputPanel_renderSectionTab","_KupInputPanel_keysShortcut","BOTTOM","COLUMNS","onDataChanged","__classPrivateFieldSet","structuredClone","data","map","event","handler","rootElement","removeEventListener","key","keysBinding","unregister","_KupInputPanel_mapCells","call","getProps","descriptions","refresh","forceUpdate","setProps","props","componentWillLoad","debug","logLoad","language","register","theme","componentDidLoad","_KupInputPanel_didLoadInteractables","kupReady","emit","comp","id","componentWillRender","logRender","componentDidRender","root","shadowRoot","autoFocus","_KupInputPanel_setFocusOnFirstInput","fs","querySelectorAll","index","FTextFieldMDC","render","isEmptyData","Boolean","inputPanelCells","inputPanelContent","h","translate","KupLanguageGeneric","EMPTY_DATA","inputPanelCell","_KupInputPanel_renderRow","Host","setKupStyle","componentWrapperId","disconnectedCallback","reduce","cell","cells","find","column","name","layout","horizontal","styleObj","rowContent","_a","sections","_KupInputPanel_renderCell","absolute","_KupInputPanel_renderAbsoluteLayout","maxAbsoluteRow","Math","max","flatMap","sec","content","cont","absoluteRow","sectionsType","hasDim","some","dim","display","inputPanelPosition","gridTemplateColumns","join","dashboardMode","gridTemplateRows","_KupInputPanel_renderGridLayout","inputPanelClass","buttonPosition","RIGHT","classObj","INLINE","commandsClass","value","_b","title","type","FTypographyType","HEADING1","class","ref","el","onSubmit","e","preventDefault","submitCb","before","Object","assign","after","_KupInputPanel_reverseMapCells","onContextMenu","FTypography","style","FButton","buttonType","label","CONFIRM","wrapperClass","invisible","hiddenSubmitButton","inputPanelCommands","customRender","get","shape","undefined","cellProps","component","editable","renderKup","setSizes","_KupInputPanel_getLabelComponent","FCell","cellId","icon","_KupInputPanel_renderDropDownButton","_KupInputPanel_getFunctionOnClickBTN","detail","node","edtCell","htmlValue","replace","addEventListener","push","isReadOnly","isEditable","showToolbar","editableData","showGroups","showFilters","showFooter","cellType","ketchup","getType","RADIO","sectionRender","section","_KupInputPanel_renderSection","_KupInputPanel_renderAbsoluteSection","customLabelRender","gap","innerSection","gridCols","gridRows","field","_KupInputPanel_renderField","sectionContent","filter","_KupInputPanel_renderAbsoluteField","absoluteWidth","width","absoluteHeight","top","left","absoluteColumn","sectionStyle","position","overflow","_KupInputPanel_extractContentIds","ids","forEach","item","concat","tabSelected","tabNodes","i","cellIdsInSection","hasError","cellData","includes","error","active","danger","sectionId","tabCustomStyle","l","customStyle","fieldCell","colSpan","colStart","colEnd","rowSpan","rowStart","rowEnd","absoluteLength","absoluteTop","absoluteLeft","sizing","_KupInputPanel_mapCommands","setup","commands","commandObj","children","showIcons","c","_KupInputPanel_commandAdapter","buttonCell","flat","_c","rows","inpuPanelCells","_d","columns","visible","mappedCell","_KupInputPanel_setData","slotData","_KupInputPanel_slotData","componentQuery","querySelector","setValue","defaultProps","_KupInputPanel_mapData","disabled","noDataProps","__rest","_KupInputPanel_deepObjectsMerge","target","source","Array","isArray","curr","updatedCells","keys","cellState","JSON","stringify","_KupInputPanel_getTableUpdatedCell","obj","options","fieldLabel","currentValue","dataAdapterMap","_KupInputPanel_CMBandACPAdapter","_KupInputPanel_BTNAdapter","CHART","_KupInputPanel_GRAAdapter","_KupInputPanel_CHIAdapter","CHECKBOX","_KupInputPanel_CHKAdapter","COLOR_PICKER","_KupInputPanel_CLPAdapter","_KupInputPanel_EDTAdapter","NUMBER","_KupInputPanel_NumberAdapter","_KupInputPanel_DateAdapter","OBJECT","_KupInputPanel_ObjectAdapter","_KupInputPanel_RADAdapter","STRING","_KupInputPanel_ITXAdapter","SWITCH","_KupInputPanel_SWTAdapter","_KupInputPanel_DataTableAdapter","_KupInputPanel_TimeAdapter","adapter","trailingIcon","fullWidth","showDropDownIcon","_options","_fieldLabel","inputSettings","checkObject","checkValueOnExit","mandatory","_KupInputPanel_checkOnBlurEvent","CHIAdapter","sizeX","offlineMode","sizeY","_currentValue","onClick","keyShortcut","fun","rawOptions","configCMandACP","CMBandACPAdapter","evNames","evName","_KupInputPanel_getAutocompleteEventCallback","_KupInputPanel_optionsTreeComboAdapter","CHKAdapter","onBlur","_KupInputPanel_checkOnBlurProp","initialValue","RADAdapter","SWTAdapter","_rawOptions","_value","parse","logMessage","KupDebugCategory","WARNING","ERROR","tableValue","updated","editableColsId","beforeTableValue","updatedRow","colId","changed","option","selected","child","codice","testo","k","fields","objects","isJ1Key","open","optionsHandler","inputValue","then","async","currCell","_KupInputPanel_getCell","_KupInputPanel_setCellError","REQUIRED_VALUE","valid","checkValidObjCallback","currentState","INVALID_VALUE","_KupInputPanel_areValuesUpdated","checkValidValueCallback","customButtonClickHandler","_KupInputPanel_getEventDetails","path","originalEvent","fcell","p","classList","contains","columnName","anchor","_KupInputPanel_contextMenuHandler","eventPath","getEventPath","interact","managedElements","add","tapCb","button","details","kupDataTableContextMenu","on","KupPointerEventTypes","TAP","form","firstCellContent","firstInput","_KupInputPanel_findFirstInput","setTimeout","focus","element","directInput","shadowElements","HTMLElement","elem","from","shadowInput"],"sources":["src/components/kup-input-panel/kup-input-panel-declarations.ts","src/components/kup-input-panel/kup-input-panel-utils.ts","src/components/kup-input-panel/kup-input-panel.scss?tag=kup-input-panel&encapsulation=shadow","src/components/kup-input-panel/kup-input-panel.tsx"],"sourcesContent":["import { GenericObject, KupEventPayload } from '../../components';\nimport {\n KupDataCell,\n KupDataColumn,\n KupDataCommand,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { KupObj } from '../../managers/kup-objects/kup-objects-declarations';\n\nexport interface KupInputPanelSubmit {\n value: KupInputPanelSubmitValue;\n cell?: string;\n}\nexport interface KupInputPanelSubmitValue {\n after: KupInputPanelData;\n before: KupInputPanelData;\n}\n\nexport interface KupInputPanelData {\n columns?: KupDataColumn[];\n rows?: KupInputPanelRow[];\n actions?: KupInputPanelAction[];\n setup?: {\n commands?: Array<KupDataCommand>;\n };\n}\n\nexport interface KupInputPanelAction {\n type?: string;\n fun?: string;\n}\n\nexport interface KupInputPanelColumn {\n name: string;\n title: string;\n visible?: boolean;\n}\n\nexport interface KupInputPanelRow {\n cells?: KupInputPanelRowCells;\n layout?: KupInputPanelLayout;\n}\n\nexport interface KupInputPanelRowCells {\n [key: string]: KupInputPanelCell;\n}\n\nexport interface KupInputPanelCell extends KupDataCell {\n options?: GenericObject | GenericObject[];\n editable?: boolean;\n mandatory?: boolean;\n inputSettings?: GenericObject;\n fun?: string;\n}\n\nexport interface KupInputPanelCellOptions {\n id: string;\n label: string;\n}\n\nexport interface KupInputPanelLayout {\n horizontal?: boolean;\n absolute?: boolean;\n sections?: KupInputPanelLayoutSection[];\n sectionsType?: KupInputPanelLayoutSectionType;\n}\n\nexport enum KupInputPanelLayoutSectionType {\n TAB = 'tab',\n}\n\nexport interface KupInputPanelLayoutSection {\n id?: string;\n title?: string;\n icon?: string;\n content?: KupInputPanelLayoutField[];\n sections?: KupInputPanelLayoutSection[];\n dim?: string;\n horizontal?: boolean;\n gridCols?: number;\n gridRows?: number;\n // Gap is in rem\n gap?: number;\n sectionsType?: KupInputPanelLayoutSectionType;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteWidth?: number;\n absoluteRow?: number;\n absoluteHeight?: number;\n}\n\nexport interface KupInputPanelLayoutField {\n id: string;\n // Span is referred to start\n colSpan?: number;\n colStart?: number;\n colEnd?: number;\n // Span is referred to start\n rowSpan?: number;\n rowStart?: number;\n rowEnd?: number;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteRow?: number;\n absoluteLength?: number;\n absoluteHeight?: number;\n}\n\nexport type DataAdapterFn = (\n options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell?: KupInputPanelCell,\n id?: string\n) => Object;\n\nexport type InputPanelCells = {\n cells: { cell: KupDataCell; column: KupDataColumn }[];\n row?: KupInputPanelRow;\n};\n\nexport type InputPanelEvent = {\n state: { cell: KupDataCell; column: KupDataColumn }[];\n data: {\n field: string;\n value: number | string | object;\n };\n};\n\nexport type InputPanelOptionsHandler = (\n fun: string,\n inputValue: string,\n currentState: KupInputPanelData,\n cellId: string\n) => Promise<GenericObject>;\n\nexport type InputPanelCheckValidObjCallback = (event: {\n obj: KupObj;\n currentState: KupInputPanelData;\n fun?: string;\n}) => Promise<ValidCheckObjResponse>;\n\nexport interface ValidCheckObjResponse {\n valid: boolean;\n}\n\nexport type InputPanelButtonClickHandler = (event: {\n fun: string;\n cellId: string;\n currentState: KupInputPanelData;\n}) => void;\n\nexport type InputPanelCheckValidValueCallback = (\n currentState: KupInputPanelSubmitValue,\n cellId: string\n) => void;\n\nexport enum KupInputPanelProps {\n customStyle = 'Custom style of the component.',\n data = 'Actual data of the input panel.',\n hiddenSubmitButton = 'Creates a hidden submit button in order to submit the form with enter.',\n submitCb = 'Sets the callback function on submit form',\n optionsHandler = 'Sets the callback function to recieve options',\n buttonPosition = 'Manage the position of the buttons related to the input panel content. It is an enumeration',\n inputPanelPosition = 'Manage the global layout of the input panel fields. The default is COLUMNS.',\n autofocus = 'Sets whether the first input should receive focus.'\n}\n\nexport interface KupInputPanelEventHandlerDetails {\n anchor: HTMLElement;\n cell: KupDataCell;\n column: KupDataColumn;\n originalEvent: PointerEvent;\n}\n\nexport interface KupInputPanelClickEventPayload extends KupEventPayload {\n details: KupInputPanelEventHandlerDetails;\n}\n\nexport enum KupInputPanelPosition {\n COLUMNS = 'COLUMNS',\n INLINE = 'INLINE',\n STRETCHED = 'STRETCHED',\n UPINLINE = 'UPINLINE',\n UPCOLUMNS = 'UPCOLUMNS',\n WATERMARK = 'WATERMARK',\n}\n\nexport enum KupInputPanelButtonsPositions {\n CENTER = 'CENTER',\n LEFT = 'LEFT',\n BOTTOM = 'BOTTOM',\n RIGHT = 'RIGHT',\n TOP = 'TOP',\n}\n\ninterface InputPanelCommand {\n [key: string]: string;\n}\n\nexport const InputPanelKeyCommands: InputPanelCommand = {\n '*F01': 'F1',\n '*F02': 'F2',\n '*F03': 'F3',\n '*F04': 'F4',\n '*F05': 'F5',\n '*F06': 'F6',\n '*F07': 'F7',\n '*F08': 'F8',\n '*F09': 'F9',\n '*F10': 'F10',\n '*F11': 'F11',\n '*F12': 'F12',\n '*F13': 'F13',\n '*F14': 'F14',\n '*F15': 'F15',\n '*F16': 'F16',\n '*F17': 'F17',\n '*F18': 'F18',\n '*F19': 'F19',\n '*F20': 'F20',\n '*F21': 'F21',\n '*F22': 'F22',\n '*F23': 'F23',\n '*F24': 'F24',\n '*ENT': 'Enter',\n '*PDN': 'PageDown',\n '*PUP': 'PageUp',\n};\n","export const CHAR_WIDTH = 12;\nexport const ROW_HEIGHT = 22;\n\nexport const getAbsoluteWidth = (length: number) => {\n if (length == 0) {\n return CHAR_WIDTH / 2;\n }\n\n if (!length) {\n return null;\n }\n\n if (length === 1) {\n return 1.5 * CHAR_WIDTH;\n }\n\n return length * CHAR_WIDTH;\n};\n\nexport const getAbsoluteHeight = (height: number) => {\n if (!height) {\n return null;\n }\n\n return height * ROW_HEIGHT;\n};\n\nexport const getAbsoluteTop = (row: number) => {\n if (!row) {\n return null;\n }\n\n return (row - 1) * ROW_HEIGHT;\n};\n\nexport const getAbsoluteLeft = (col: number) => {\n if (!col) {\n return null;\n }\n\n return col * CHAR_WIDTH;\n};\n","/**\n* @prop --kup-input-panel-background-color: Sets background of the component.\n* @prop --kup-input-panel-color: Sets text color of the component.\n* @prop --kup-input-panel-font-family: Sets font family of the component.\n* @prop --kup-input-panel-font-size: Sets font size of the component.\n* @prop --kup-input-panel-label-alignment: Sets the text alignment of labels.\n* @prop --kup-input-panel-label-width: Sets the width of labels.\n* @prop --kup-input-panel-padding: Sets the padding of the input panel.\n*/\n\n:host {\n --kup-fcell-width: fit-content;\n --kup_input_panel_background_color: var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );\n --kup_input_panel_color: var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );\n --kup_input_panel_font_family: var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );\n --kup_input_panel_font_size: var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );\n --kup_input_panel_label_alignment: var(--kup-input-panel-label-alignment);\n --kup_input_panel_label_width: var(--kup-input-panel-label-width);\n --kup_input_panel_padding: var(--kup-input-panel-padding, 1em 0);\n --kup_input_panel_padding--inline: var(--kup-input-panel-padding--inline, 0);\n\n .input-panel {\n background: var(--kup_input_panel_background_color);\n color: var(--kup_input_panel_color);\n display: flex;\n flex-grow: 1;\n overflow: auto;\n padding: var(--kup_input_panel_padding);\n position: relative;\n gap: 1rem;\n\n &__commands {\n display: flex;\n gap: 1rem;\n &.input-panel__commands--right {\n flex-shrink: 0;\n overflow: hidden;\n }\n }\n\n &--inline {\n flex: 1;\n overflow-x: auto;\n white-space: nowrap;\n padding: var(--kup_input_panel_padding--inline);\n }\n\n &--column {\n flex-direction: column;\n }\n\n &__section_label_container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n &__section {\n display: grid;\n min-width: 0;\n\n .f-cell__content {\n > * {\n width: 100%;\n }\n }\n }\n\n &__horizontal-section {\n display: inline-grid;\n }\n\n &__section-inline {\n display: inline-block;\n width: max-content;\n }\n\n .f-cell .f-checkbox .checkbox .checkbox__native-control {\n height: 40px;\n width: 40px;\n }\n\n &__label_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n > .f-cell {\n flex: 1;\n }\n }\n\n &__tabs_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 2rem;\n }\n\n .f-cell.number-cell {\n .f-cell__content {\n --kup-textfield-font-family: var(--kup_cell_font_family);\n\n font-family: var(--kup_cell_font_family);\n }\n }\n\n .input-panel-label {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n\n &--absolute {\n justify-content: flex-end;\n padding: var(--kup-space-02);\n\n .input-panel-label {\n justify-content: start;\n }\n\n .mdc-text-field {\n height: unset !important;\n }\n }\n }\n .input-panel-form--inline {\n display: flex;\n align-items: end;\n gap: 1rem;\n }\n .input-panel__typography {\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n VNode,\n Watch,\n forceUpdate,\n h,\n} from '@stencil/core';\nimport {\n KupAutocompleteEventPayload,\n KupComboboxIconClickEventPayload,\n KupDataCell,\n KupDataTableDataset,\n KupDataTableRow,\n KupDropdownButtonEventPayload,\n KupEditorEventPayload,\n KupTabBarEventPayload,\n KupTabBarNode,\n} from '../../components';\nimport { FButton } from '../../f-components/f-button/f-button';\nimport { FCell } from '../../f-components/f-cell/f-cell';\nimport {\n FCellProps,\n FCellShapes,\n FCellTypes,\n} from '../../f-components/f-cell/f-cell-declarations';\nimport { FTextFieldMDC } from '../../f-components/f-text-field/f-text-field-mdc';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport { KupLanguageGeneric } from '../../managers/kup-language/kup-language-declarations';\nimport {\n KupManager,\n kupManagerInstance,\n} from '../../managers/kup-manager/kup-manager';\nimport { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport {\n FTypographyProps,\n FTypographyType,\n} from '../../f-components/f-typography/f-typography-declarations';\nimport {\n GenericObject,\n KupComponent,\n KupEventPayload,\n} from '../../types/GenericTypes';\nimport {\n CHIAdapter,\n CHKAdapter,\n CMBandACPAdapter,\n RADAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { getProps, setProps } from '../../utils/utils';\nimport { componentWrapperId } from '../../variables/GenericVariables';\nimport {\n DataAdapterFn,\n InputPanelButtonClickHandler,\n InputPanelCells,\n InputPanelCheckValidObjCallback,\n InputPanelCheckValidValueCallback,\n InputPanelKeyCommands,\n InputPanelOptionsHandler,\n KupInputPanelButtonsPositions,\n KupInputPanelCell,\n KupInputPanelClickEventPayload,\n KupInputPanelColumn,\n KupInputPanelData,\n KupInputPanelEventHandlerDetails,\n KupInputPanelLayout,\n KupInputPanelLayoutField,\n KupInputPanelLayoutSection,\n KupInputPanelLayoutSectionType,\n KupInputPanelPosition,\n KupInputPanelProps,\n KupInputPanelRow,\n KupInputPanelSubmit,\n} from './kup-input-panel-declarations';\nimport {\n getAbsoluteHeight,\n getAbsoluteLeft,\n getAbsoluteTop,\n getAbsoluteWidth,\n ROW_HEIGHT,\n} from './kup-input-panel-utils';\nimport { FTypography } from '../../f-components/f-typography/f-typography';\nimport { KupPointerEventTypes } from '../../managers/kup-interact/kup-interact-declarations';\nimport { KupDataCommand } from '../../managers/kup-data/kup-data-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n@Component({\n tag: 'kup-input-panel',\n styleUrl: 'kup-input-panel.scss',\n shadow: true,\n})\nexport class KupInputPanel {\n /**\n * References the root HTML element of the component (<kup-form>).\n */\n @Element() rootElement: HTMLElement;\n\n //#region PROPS\n /*-------------------------------------------------*/\n /* P r o p s */\n /*-------------------------------------------------*/\n\n /**\n * Select the position of the buttons related to the input panel\n * @default \"BOTTOM\"\n */\n @Prop() buttonPosition: KupInputPanelButtonsPositions =\n KupInputPanelButtonsPositions.BOTTOM;\n\n /**\n * Custom style of the component.\n * @default \"\"\n * @see https://smeup.github.io/ketchup/#/customization\n */\n @Prop() customStyle: string = '';\n\n /**\n * Sets verical layout if dashboardMode is true\n * @default false\n */\n @Prop() dashboardMode: boolean = false;\n\n /**\n * Actual data of the form.\n * @default null\n */\n @Prop() data: KupInputPanelData = null;\n\n /**\n * Creates a hidden submit button in order to submit the form with enter.\n * @default false\n */\n @Prop() hiddenSubmitButton: boolean = false;\n\n /**\n * Dispositions of the whole input panel elements\n * @default COLUMNS\n */\n @Prop() inputPanelPosition: KupInputPanelPosition =\n KupInputPanelPosition.COLUMNS;\n\n /**\n * Sets the callback function on submit form\n * @default null\n */\n @Prop() submitCb: (e: KupInputPanelSubmit) => unknown = null;\n\n /**\n * Sets the callback function on loading options via FUN\n * @default null\n */\n @Prop() optionsHandler: InputPanelOptionsHandler = null;\n\n /**\n * Sets the handler to use when click on custom buttons\n * @default null\n */\n @Prop() customButtonClickHandler?: InputPanelButtonClickHandler = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidObjCallback?: InputPanelCheckValidObjCallback = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidValueCallback?: InputPanelCheckValidValueCallback = null;\n\n /**\n * Sets whether the first input should receive focus.\n * @default false\n */\n @Prop() autoFocus?: boolean = false;\n //#endregion\n\n //#endregion\n\n //#region STATES\n /*-------------------------------------------------*/\n /* S t a t e s */\n /*-------------------------------------------------*/\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCells: InputPanelCells[] = [];\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCommands: VNode[] = [];\n\n /**\n * Id of selected tab if exists\n * @default null\n */\n @State() private tabSelected: string = null;\n //#endregion\n\n //#region VARIABLES\n /*-------------------------------------------------*/\n /* I n t e r n a l V a r i a b l e s */\n /*-------------------------------------------------*/\n\n #kupManager: KupManager = kupManagerInstance();\n\n #formRef: HTMLFormElement;\n\n #optionsAdapterMap = new Map<\n string,\n (options: any, currentValue: string) => GenericObject[]\n >([\n ['SmeupTreeNode', this.#treeOptionsNodeAdapter.bind(this)],\n ['SmeupDataTree', this.#dataTreeOptionsChildrenAdapter.bind(this)],\n ['SmeupTable', this.#tableOptionsAdapter.bind(this)],\n ['SmeupDataTable', this.#tableOptionsAdapter.bind(this)],\n ]);\n\n #originalData: KupInputPanelData = null;\n\n #eventNames = new Map<FCellTypes, string[]>([\n [\n FCellTypes.AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [\n FCellTypes.MULTI_AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [FCellTypes.COMBOBOX, ['kup-combobox-iconclick', 'kup-combobox-blur']],\n [FCellTypes.MULTI_COMBOBOX, ['kup-combobox-iconclick']],\n ]);\n\n #eventBlurNames = new Map<FCellShapes, string>([\n [FCellShapes.AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.CHIP, 'kup-textfield-blur'],\n [FCellShapes.COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.DATE, 'kup-datepicker-blur'],\n [FCellShapes.MULTI_AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.MULTI_COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.TIME, 'kup-timepicker-blur'],\n ]);\n\n #listeners: { event: string; handler: (e) => void }[] = [];\n #cellTypeComponents: Map<FCellTypes, string> = new Map<FCellTypes, string>([\n [FCellTypes.DATE, 'kup-date-picker'],\n [FCellTypes.TIME, 'kup-time-picker'],\n ]);\n #cellCustomRender: Map<\n FCellShapes,\n (cell: KupDataCell, cellId: string) => any\n > = new Map<FCellShapes, (cell: KupDataCell, cellId: string) => any>([\n [FCellShapes.BUTTON_LIST, this.#renderButton.bind(this)],\n [FCellShapes.EDITOR, this.#renderEditor.bind(this)],\n [FCellShapes.LABEL, this.#renderLabel.bind(this)],\n [FCellShapes.TABLE, this.#renderDataTable.bind(this)],\n ]);\n #sectionRenderMap: Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n > = new Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n >([\n [KupInputPanelLayoutSectionType.TAB, this.#renderSectionTab.bind(this)],\n ]);\n #keysShortcut: string[] = [];\n //#endregion\n\n //#region WATCHERS\n /*-------------------------------------------------*/\n /* W a t c h e r s */\n /*-------------------------------------------------*/\n\n @Watch('data')\n onDataChanged() {\n this.#originalData = structuredClone(this.data);\n if (this.#listeners.length) {\n this.#listeners.map(({ event, handler }) => {\n this.rootElement.removeEventListener(event, handler);\n });\n this.#listeners = [];\n }\n\n if (this.#keysShortcut.length) {\n this.#keysShortcut.map((key) => {\n this.#kupManager.keysBinding.unregister(key);\n });\n this.#keysShortcut = [];\n }\n if (this.data) {\n this.#mapCells(this.data);\n }\n }\n //#endregion\n\n //#region PUBLIC METHODS\n /*-------------------------------------------------*/\n /* P u b l i c M e t h o d s */\n /*-------------------------------------------------*/\n\n /**\n * Used to retrieve component's props values.\n * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.\n * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.\n */\n @Method()\n async getProps(descriptions?: boolean): Promise<GenericObject> {\n return getProps(this, KupInputPanelProps, descriptions);\n }\n /**\n * This method is used to trigger a new render of the component.\n */\n @Method()\n async refresh(): Promise<void> {\n forceUpdate(this);\n }\n /**\n * Sets the props to the component.\n * @param {GenericObject} props - Object containing props that will be set to the component.\n */\n @Method()\n async setProps(props: GenericObject): Promise<void> {\n setProps(this, KupInputPanelProps, props);\n }\n //#endregion\n\n //#region EVENTS\n /*-------------------------------------------------*/\n /* Events */\n /*-------------------------------------------------*/\n\n /**\n * When component load is complete\n */\n @Event({\n eventName: 'kup-input-panel-ready',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupReady: EventEmitter<KupEventPayload>;\n\n /**\n * Generic right click event on input panel.\n */\n @Event({\n eventName: 'kup-inputpanel-contextmenu',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupDataTableContextMenu: EventEmitter<KupInputPanelClickEventPayload>;\n //#endregion\n\n //#region PRIVATE METHODS\n /*-------------------------------------------------*/\n /* P r i v a t e M e t h o d s */\n /*-------------------------------------------------*/\n\n #getCell(id: string) {\n return this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(({ column }) => column.name === id).cell;\n }\n return cell;\n }, null);\n }\n\n #renderRow(inputPanelCell: InputPanelCells) {\n const layout = inputPanelCell.row.layout;\n const horizontal = layout?.horizontal || false;\n const styleObj: GenericObject = {};\n const styleTypographyObj: GenericObject = {};\n\n let rowContent: VNode[];\n\n if (!layout?.sections?.length) {\n rowContent = inputPanelCell.cells.map((cell) =>\n this.#renderCell(cell.cell, inputPanelCell.row, cell.column)\n );\n } else {\n if (layout.absolute) {\n rowContent = this.#renderAbsoluteLayout(inputPanelCell, layout);\n const maxAbsoluteRow = Math.max(\n ...layout.sections.flatMap((sec) =>\n sec.content.map((cont) => cont.absoluteRow || 0)\n )\n );\n styleObj.height = `${maxAbsoluteRow * ROW_HEIGHT}px`;\n } else {\n if (!layout.sectionsType) {\n const hasDim = layout.sections.some((sec) => sec.dim);\n styleObj.display = 'grid';\n if (this.inputPanelPosition == 'INLINE') {\n styleObj.display = '';\n }\n if (layout.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${inputPanelCell.cells.length}, 1fr)`;\n } else {\n if (this.dashboardMode) {\n styleObj.gridTemplateRows = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n }\n }\n }\n\n rowContent = this.#renderGridLayout(inputPanelCell, layout);\n }\n }\n\n const inputPanelClass = {\n 'input-panel-form': true,\n 'input-panel-form--inline':\n this.buttonPosition == KupInputPanelButtonsPositions.RIGHT,\n };\n\n const classObj = {\n 'input-panel': true,\n 'input-panel--column': !horizontal,\n 'input-panel--absolute': layout?.absolute,\n 'input-panel--inline':\n this.inputPanelPosition == KupInputPanelPosition.INLINE,\n };\n\n const commandsClass = {\n 'input-panel__commands': true,\n [`input-panel__commands--${this.buttonPosition}`]: true,\n };\n\n const props: FTypographyProps = {\n value: layout?.sections[0]?.title,\n type: FTypographyType.HEADING1,\n };\n\n return (\n <div>\n <form\n name={this.rootElement.id}\n id={this.rootElement.id}\n class={inputPanelClass}\n ref={(el: HTMLFormElement) => (this.#formRef = el)}\n onSubmit={(e: SubmitEvent) => {\n e.preventDefault();\n this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n });\n }}\n onContextMenu={(e: MouseEvent) => {\n e.preventDefault();\n }}\n >\n <div class=\"input-panel__typography\">\n <FTypography {...props} />\n </div>\n <div class={classObj} style={styleObj}>\n {rowContent}\n </div>\n <div class={commandsClass}>\n <FButton\n buttonType=\"submit\"\n label={this.#kupManager.language.translate(\n KupLanguageGeneric.CONFIRM\n )}\n wrapperClass=\"form__submit\"\n invisible={this.hiddenSubmitButton}\n ></FButton>\n {this.inputPanelCommands}\n </div>\n </form>\n </div>\n );\n }\n\n #renderCell(\n cell: KupDataCell,\n row: KupInputPanelRow,\n column: KupInputPanelColumn\n ) {\n if (!cell) {\n return;\n }\n\n const customRender = this.#cellCustomRender.get(cell.shape);\n\n if (customRender !== undefined) {\n return customRender(cell, column.name);\n }\n\n const cellProps: FCellProps = {\n cell,\n column,\n row,\n component: this,\n editable: true,\n renderKup: true,\n setSizes: true,\n };\n\n const label = this.#getLabelComponent(cell, column.title);\n\n if (label) {\n return (\n <div class={{ 'input-panel__label_container': true }}>\n {label}\n <FCell {...cellProps} />\n </div>\n );\n }\n\n return <FCell {...cellProps} />;\n }\n\n #renderButton(cell: KupDataCell, cellId: string) {\n return (\n <FButton\n icon={cell.icon}\n id={cellId}\n {...cell.data}\n wrapperClass=\"form__submit\"\n ></FButton>\n );\n }\n\n #renderDropDownButton(cell: KupDataCell, data: GenericObject) {\n return (\n <kup-dropdown-button\n {...cell.data}\n label={cell.value}\n data={data}\n onkup-dropdownbutton-itemclick={(\n e: CustomEvent<KupDropdownButtonEventPayload>\n ) => {\n this.#getFunctionOnClickBTN(\n e.detail.node,\n e.detail.node.id\n );\n }}\n ></kup-dropdown-button>\n );\n }\n\n #renderEditor(cell: KupDataCell, cellId: string) {\n const event = 'kup-editor-save';\n const handler = (e: CustomEvent<KupEditorEventPayload>) => {\n const edtCell: KupDataCell =\n this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(\n ({ column }) => column.name === cellId\n ).cell;\n }\n return cell;\n }, null);\n edtCell.value = e.detail.htmlValue.replace(/\\n/g, '<br>');\n };\n\n this.rootElement.addEventListener(event, handler);\n\n this.#listeners.push({\n event,\n handler,\n });\n\n return (\n <kup-editor\n {...cell.data}\n id={cellId}\n isReadOnly={!cell.isEditable}\n showToolbar={true}\n ></kup-editor>\n );\n }\n\n #renderDataTable(cell: KupDataCell, cellId: string) {\n return (\n <kup-data-table\n id={cellId}\n editableData={true}\n showGroups={true}\n showFilters={true}\n showFooter={true}\n {...cell.data}\n ></kup-data-table>\n );\n }\n\n #renderLabel(cell: KupDataCell, cellId: string) {\n return (\n <span class=\"input-panel-label\" id={cellId}>\n {cell.value}\n </span>\n );\n }\n\n #getLabelComponent(cell: KupDataCell, label: string) {\n if (!label) {\n return null;\n }\n\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (cellType === FCellTypes.RADIO) {\n return <span>{label}</span>;\n }\n\n return null;\n }\n\n #renderGridLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n const sectionRender = this.#sectionRenderMap.get(layout.sectionsType);\n\n return sectionRender\n ? sectionRender(inputPanelCell, layout.sections)\n : layout.sections.map((section) =>\n this.#renderSection(inputPanelCell, section, false)\n );\n }\n\n #renderAbsoluteLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n return layout.sections.map((section) =>\n this.#renderAbsoluteSection(inputPanelCell, section)\n );\n }\n\n #renderSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection,\n customLabelRender: boolean = false,\n styleObj: GenericObject = {}\n ) {\n const classObj = {\n 'input-panel__section': !section.horizontal,\n 'input-panel__horizontal-section': section.horizontal,\n 'input-panel__section-inline': this.inputPanelPosition == 'INLINE',\n };\n\n styleObj.gap = +section.gap > 0 ? `${section.gap}rem` : '1rem';\n\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderSection(cells, innerSection)\n );\n\n const hasDim = section.sections.some((sec) => sec.dim);\n\n if (!section.gridCols && section.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n\n if (\n !section.gridRows &&\n !section.horizontal &&\n this.dashboardMode\n ) {\n styleObj.gridTemplateRows = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderField(cells, field)\n );\n styleObj.gridTemplateColumns =\n +section.gridCols > 0 ? `repeat(${section.gridCols}, 1fr)` : '';\n if (this.dashboardMode) {\n styleObj.gridTemplateRows =\n +section.gridRows > 0\n ? `repeat(${section.gridRows}, 1fr)`\n : '';\n }\n }\n const sectionContent = (\n <div class={classObj} style={styleObj}>\n {content.filter(Boolean)}\n </div>\n );\n\n return section.title && !customLabelRender ? (\n <div class={{ 'input-panel__section_label_container': true }}>\n <FTypography\n type={FTypographyType.HEADING1}\n value={section.title}\n ></FTypography>\n {sectionContent}\n </div>\n ) : (\n sectionContent\n );\n }\n\n #renderAbsoluteSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection\n ) {\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderAbsoluteSection(cells, innerSection)\n );\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderAbsoluteField(cells, field)\n );\n }\n\n //If width is not specified the div in the return at the end can be removed\n if (getAbsoluteWidth(section.absoluteWidth) == null) {\n return content;\n }\n\n const width = `${\n getAbsoluteWidth(section.absoluteWidth) != null\n ? `${getAbsoluteWidth(section.absoluteWidth)}px`\n : '100%'\n }`;\n const height = `${\n getAbsoluteHeight(section.absoluteHeight) != null\n ? `${getAbsoluteHeight(section.absoluteHeight)}px`\n : '100%'\n }`;\n const top = `${getAbsoluteTop(section.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(section.absoluteColumn)}px`;\n\n const sectionStyle = {\n position: 'relative',\n width,\n 'min-width': width,\n 'max-width': width,\n height,\n 'min-height': height,\n 'max-height': height,\n top,\n left,\n overflow: 'auto',\n };\n\n return <div style={sectionStyle}>{content}</div>;\n }\n\n #extractContentIds(node: KupInputPanelLayoutSection) {\n let ids: string[] = [];\n\n if (node.content?.length) {\n node.content.forEach((item) => {\n if (item.id) {\n ids.push(item.id);\n }\n });\n }\n\n if (node.sections?.length) {\n node.sections.forEach((section) => {\n ids = ids.concat(this.#extractContentIds(section));\n });\n }\n\n return ids;\n }\n\n #renderSectionTab(\n cells: InputPanelCells,\n sections: KupInputPanelLayoutSection[]\n ) {\n if (!this.tabSelected) {\n this.tabSelected = sections[0].id || '0';\n }\n\n const tabNodes: KupTabBarNode[] = sections.map((section, i) => {\n const cellIdsInSection = this.#extractContentIds(section);\n\n const hasError = cells.cells.some((cellData) => {\n const cell = cellData.cell;\n const column = cellData.column;\n return (\n cellIdsInSection.includes(column.name) && !!cell.data?.error\n );\n });\n\n return {\n active: (section.id || `${i}`) === this.tabSelected,\n value: section.title,\n icon: hasError ? 'error' : section.icon,\n id: section.id || `${i}`,\n danger: hasError,\n };\n });\n\n const sectionContent = sections.map((section, i) => {\n const sectionId = section.id || `${i}`;\n return this.#renderSection(cells, section, true, {\n display: this.tabSelected !== sectionId ? 'none' : 'grid',\n });\n });\n\n const tabCustomStyle =\n '.tab-bar .tab-scroller .tab .tab__content { justify-content: flex-start; }';\n\n if (!this.#listeners.map((l) => l.event).includes('kup-tabbar-click')) {\n const event = 'kup-tabbar-click';\n const handler = (e: CustomEvent<KupTabBarEventPayload>) => {\n this.tabSelected = e.detail.node.id;\n };\n\n this.rootElement.addEventListener(event, handler);\n this.#listeners.push({\n event,\n handler,\n });\n }\n\n return (\n <div class={{ 'input-panel__tabs_container': true }}>\n <kup-tab-bar\n data={tabNodes}\n customStyle={tabCustomStyle}\n ></kup-tab-bar>\n {sectionContent}\n </div>\n );\n }\n\n #renderField(cells: InputPanelCells, field: KupInputPanelLayoutField) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n\n const colSpan =\n +field.colSpan > 0\n ? field.colSpan\n : !(+field.colSpan > 0) && !(+field.colStart > 0)\n ? 1\n : null;\n\n const colStart = colSpan ? `span ${colSpan}` : `${field.colStart}`;\n\n const colEnd = +field.colEnd > 0 ? `${field.colEnd}` : '';\n\n const rowSpan =\n +field.rowSpan > 0\n ? field.rowSpan\n : !(+field.rowSpan > 0) && !(+field.rowStart > 0)\n ? 1\n : null;\n\n const rowStart = rowSpan ? `span ${rowSpan}` : `${field.rowStart}`;\n\n const rowEnd = +field.rowEnd > 0 ? `${field.rowEnd}` : '';\n\n const styleObj = {\n 'min-width': '0',\n 'grid-column-start': colStart,\n 'grid-column-end': colEnd,\n 'grid-row-start': rowStart,\n 'grid-row-end': rowEnd,\n };\n\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #renderAbsoluteField(\n cells: InputPanelCells,\n field: KupInputPanelLayoutField\n ) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n let length: number;\n if (fieldCell.cell.shape == FCellShapes.DATE) {\n length = field.absoluteLength > 8 ? field.absoluteLength : 8;\n } else {\n length = field.absoluteLength;\n }\n\n if (!field.absoluteHeight) {\n field.absoluteHeight = 1;\n }\n\n const absoluteWidth = getAbsoluteWidth(length);\n const absoluteHeight = getAbsoluteHeight(field.absoluteHeight);\n const absoluteTop = getAbsoluteTop(field.absoluteRow);\n const absoluteLeft = getAbsoluteLeft(field.absoluteColumn);\n\n const styleObj = {\n position: 'absolute',\n width: absoluteWidth !== null ? `${absoluteWidth}px` : null,\n 'min-width': absoluteWidth !== null ? `${absoluteWidth}px` : null,\n 'max-width': absoluteWidth !== null ? `${absoluteWidth}px` : null,\n height: absoluteHeight !== null ? `${absoluteHeight}px` : null,\n 'min-height':\n absoluteHeight !== null ? `${absoluteHeight}px` : null,\n 'max-height':\n absoluteHeight !== null ? `${absoluteHeight}px` : null,\n top:\n absoluteTop !== null\n ? `${getAbsoluteTop(field.absoluteRow)}px`\n : null,\n left:\n absoluteLeft !== null\n ? `${getAbsoluteLeft(field.absoluteColumn)}px`\n : null,\n overflow: 'auto',\n };\n\n fieldCell.cell.data = {\n ...fieldCell.cell.data,\n sizing: 'extra-small',\n customStyle:\n (fieldCell.cell.data.customStyle || '') +\n '.mdc-text-field {height: unset !important;}',\n };\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #mapCommands() {\n this.inputPanelCommands = this.data.setup.commands\n .map((commandObj) => {\n if (commandObj?.children && commandObj?.children.length > 0) {\n const data = {\n 'kup-list': {\n showIcons: true,\n data: commandObj.children.map((c) =>\n this.#commandAdapter(c)\n ),\n },\n };\n return this.#renderDropDownButton(commandObj, data);\n } else {\n const buttonCell = this.#commandAdapter(commandObj);\n return this.#renderButton(buttonCell, commandObj.value);\n }\n })\n .flat();\n }\n\n #mapCells(data: KupInputPanelData) {\n if (data.setup?.commands?.length) {\n this.#mapCommands();\n }\n\n const layout = data?.rows[0]?.layout;\n const inpuPanelCells = data?.rows?.length\n ? data.rows.reduce((inpuPanelCells, row) => {\n const cells = data.columns\n .filter((column) => column.visible)\n .map((column) => {\n const cell = structuredClone(row.cells[column.name]);\n const mappedCell = cell\n ? {\n ...cell,\n data: this.#setData(cell, column, layout),\n slotData: this.#slotData(cell, column),\n isEditable: true,\n }\n : null;\n return { column, cell: mappedCell };\n });\n return [...inpuPanelCells, { cells, row }];\n }, [])\n : [];\n inpuPanelCells.map(({ cells }: InputPanelCells) =>\n cells.map(({ cell, column }) => {\n const cellType = dom.ketchup.data.cell.getType(\n cell,\n cell.shape\n );\n const componentQuery = this.#cellTypeComponents.get(cellType);\n if (!componentQuery) {\n return;\n }\n\n const el: any = this.rootElement.shadowRoot.querySelector(\n `${componentQuery}[id=${column.name.replace(\n /\\//g,\n '\\\\$1'\n )}]`\n );\n\n el?.setValue(cell.value);\n })\n );\n\n this.inputPanelCells = inpuPanelCells;\n }\n\n #setData(\n cell: KupInputPanelCell,\n column: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n const defaultProps = {\n ...this.#mapData(cell, column, layout),\n disabled: !cell.editable,\n id: column.name,\n };\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n const { data, ...noDataProps } = cell.data || {};\n\n return cellType !== FCellTypes.MULTI_AUTOCOMPLETE &&\n cellType !== FCellTypes.MULTI_COMBOBOX\n ? this.#deepObjectsMerge(defaultProps, {\n ...cell.data,\n })\n : // Add and ovverride defaultProps of Chip host component except data\n {\n ...defaultProps,\n ...noDataProps,\n };\n }\n\n #deepObjectsMerge(target: GenericObject, source: GenericObject) {\n for (const key in source) {\n if (\n source[key] instanceof Object &&\n !Array.isArray(source[key]) &&\n key in target\n ) {\n target[key] = this.#deepObjectsMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n return target;\n }\n\n #reverseMapCells(): KupInputPanelData {\n return this.inputPanelCells.reduce(\n (data, curr) => {\n const updatedCells = Object.keys(curr.row.cells).reduce(\n (cells, key) => {\n const cellState = curr.cells.find(\n (c) => c.column.name === key\n )?.cell;\n\n let value: any = cellState?.value;\n\n if (cellState?.shape === FCellShapes.TABLE) {\n value = JSON.stringify(\n this.#getTableUpdatedCell(\n cellState.data.data,\n key\n )\n );\n }\n\n return {\n ...cells,\n [key]: {\n ...curr.row.cells[key],\n value,\n obj: cellState?.obj,\n },\n };\n },\n {}\n );\n\n return {\n columns: [\n ...data.columns,\n ...curr.cells.map((cell) => cell.column),\n ],\n rows: [\n ...data.rows,\n {\n cells: updatedCells,\n layout: curr.row.layout,\n },\n ],\n };\n },\n {\n columns: [],\n rows: [],\n }\n );\n }\n\n #mapData(\n cell: KupInputPanelCell,\n col: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n if (!cell) {\n return null;\n }\n\n const options = cell.options;\n let fieldLabel: string;\n if (layout?.absolute) {\n fieldLabel = null;\n } else {\n fieldLabel = col.title;\n }\n const currentValue = cell.value;\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const dataAdapterMap = new Map<FCellTypes, DataAdapterFn>([\n [FCellTypes.AUTOCOMPLETE, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.BUTTON_LIST, this.#BTNAdapter.bind(this)],\n [FCellTypes.CHART, this.#GRAAdapter.bind(this)],\n [FCellTypes.CHIP, this.#CHIAdapter.bind(this)],\n [FCellTypes.CHECKBOX, this.#CHKAdapter.bind(this)],\n [FCellTypes.COLOR_PICKER, this.#CLPAdapter.bind(this)],\n [FCellTypes.COMBOBOX, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.EDITOR, this.#EDTAdapter.bind(this)],\n [FCellTypes.MULTI_AUTOCOMPLETE, this.#CHIAdapter.bind(this)],\n [FCellTypes.MULTI_COMBOBOX, this.#CHIAdapter.bind(this)],\n [FCellTypes.NUMBER, this.#NumberAdapter.bind(this)],\n [FCellTypes.DATE, this.#DateAdapter.bind(this)],\n [FCellTypes.OBJECT, this.#ObjectAdapter.bind(this)],\n [FCellTypes.RADIO, this.#RADAdapter.bind(this)],\n [FCellTypes.STRING, this.#ITXAdapter.bind(this)],\n [FCellTypes.SWITCH, this.#SWTAdapter.bind(this)],\n [FCellTypes.TABLE, this.#DataTableAdapter.bind(this)],\n [FCellTypes.TIME, this.#TimeAdapter.bind(this)],\n ]);\n\n const adapter = dataAdapterMap.get(cellType);\n\n return adapter\n ? adapter(options, fieldLabel, currentValue, cell, col.name)\n : null;\n }\n\n #slotData(cell: KupInputPanelCell, col: KupInputPanelColumn) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (!cell.editable) {\n return null;\n }\n\n if (cellType === FCellTypes.CHIP) {\n return {\n trailingIcon: true,\n label: col.title,\n disabled: !cell.editable,\n id: col.name,\n fullWidth: false,\n };\n }\n\n if (\n cellType === FCellTypes.MULTI_AUTOCOMPLETE ||\n cellType === FCellTypes.MULTI_COMBOBOX\n ) {\n return {\n ...this.#CMBandACPAdapter(\n cell.options,\n col.title,\n null,\n cell,\n col.name\n ),\n showDropDownIcon: true,\n class: '',\n style: { width: '100%' },\n disabled: !cell.editable,\n id: col.name,\n };\n }\n\n return null;\n }\n\n #CHIAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return CHIAdapter(currentValue);\n }\n\n #GRAAdapter() {\n //TODO: definire mapping\n return {\n data: {\n sizeX: '50px',\n offlineMode: {\n value: '8;4;5',\n },\n id: 'i1012_GREF_0',\n cellId: 'i1012_GREF_0',\n sizeY: '50px',\n },\n };\n }\n\n #BTNAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n cell.data = cell.data || {};\n\n cell.data.onClick = () => {\n this.#getFunctionOnClickBTN(cell, id);\n };\n\n if (cell.data?.keyShortcut && !cell.data?.disabled) {\n this.#keysShortcut.push(cell.data?.keyShortcut);\n this.#kupManager.keysBinding.register(\n cell.data?.keyShortcut,\n cell.data.onClick.bind(this)\n );\n }\n\n return {\n label: cell.value,\n fun: cell.fun,\n ...cell.data,\n };\n }\n\n #CMBandACPAdapter(\n rawOptions: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n const configCMandACP = CMBandACPAdapter(currentValue, fieldLabel, []);\n\n if (cell.fun) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const evNames = this.#eventNames.get(cellType);\n\n if (!evNames) {\n return;\n }\n\n evNames.map((evName) => {\n const handler = (\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => {\n this.#getAutocompleteEventCallback(\n e.detail,\n cell.fun,\n configCMandACP,\n id,\n currentValue\n );\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n });\n } else if (rawOptions) {\n configCMandACP.data['kup-list'].data =\n this.#optionsTreeComboAdapter(rawOptions, currentValue);\n }\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return configCMandACP;\n }\n\n #CHKAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = CHKAdapter(currentValue, fieldLabel);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #CLPAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string\n ) {\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #EDTAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string\n ) {\n return {\n initialValue: currentValue,\n };\n }\n\n #ITXAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #RADAdapter(\n options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = RADAdapter(currentValue, options);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #SWTAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string\n ) {\n return SWTAdapter(currentValue, fieldLabel);\n }\n\n #DateAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n initialValue: currentValue,\n };\n }\n\n #ObjectAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n };\n }\n\n #TimeAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #NumberAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #DataTableAdapter(\n _rawOptions: GenericObject,\n _fieldLabel: string,\n _value: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n try {\n let data = JSON.parse(cell.value);\n\n if (!data) {\n this.#kupManager.debug.logMessage(\n this,\n `Empty value for ${id} cell.`,\n KupDebugCategory.WARNING\n );\n return null;\n }\n\n if ((data as any).type !== 'SmeupDataTable') {\n this.#kupManager.debug.logMessage(\n this,\n `Wrong data table type for ${id} cell. Type \\`SmeupDataTable\\` in value expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n\n return {\n data: {\n columns: data.columns.map((col) => ({\n ...col,\n obj: data.rows[0].cells[col.name].obj,\n })),\n rows: data.rows.map((row) => ({\n ...row,\n cells: Object.keys(row.cells).reduce((cell, key) => {\n const column = data.columns.find(\n (col) => col.name === key\n );\n return {\n ...cell,\n [key]: {\n ...row.cells[key],\n data: {\n ...this.#mapData(\n row.cells[key],\n column\n ),\n disabled:\n row.cells[key].editable === false,\n id: column.id,\n },\n },\n };\n }, {}),\n })),\n },\n };\n } catch (e) {\n this.#kupManager.debug.logMessage(\n this,\n `Invalid value for ${id} cell. Type \\`SmeupDataTable\\` expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n }\n\n #getTableUpdatedCell(\n tableValue: KupDataTableDataset,\n cellId: string\n ): KupDataTableDataset {\n const updated: KupDataTableDataset = {\n ...tableValue,\n rows: tableValue.rows.map((row) => ({ ...row, cells: {} })),\n };\n\n const editableColsId = tableValue.columns\n .filter((col) => col.isEditable)\n .map((col) => col.name);\n\n if (!editableColsId.length) {\n return updated;\n }\n\n try {\n const beforeTableValue = JSON.parse(\n this.#originalData.rows[0].cells[cellId].value\n );\n\n updated.rows = tableValue.rows.map((row, i) =>\n editableColsId.reduce<KupDataTableRow>(\n (updatedRow, colId) => {\n const changed =\n beforeTableValue.rows[i].cells[colId] &&\n row.cells[colId].value !==\n beforeTableValue.rows[i].cells[colId].value;\n\n if (changed) {\n return {\n ...beforeTableValue.rows[i],\n cells: {\n ...updatedRow.cells,\n [colId]: {\n ...beforeTableValue.rows[i].cells[\n colId\n ],\n value: row.cells[colId].value,\n },\n },\n };\n }\n\n return {\n ...beforeTableValue.rows[i],\n cells: updatedRow.cells,\n };\n },\n { ...beforeTableValue.rows[i], cells: {} }\n )\n );\n\n return updated;\n } catch (e) {\n return updated;\n }\n }\n\n #optionsTreeComboAdapter(options: any, currentValue: string) {\n const adapter = this.#optionsAdapterMap.get(options.type);\n\n if (adapter) {\n return adapter(options, currentValue);\n } else {\n return options.map((option) => ({\n value: option.label,\n id: option.id,\n selected: currentValue === option.id,\n }));\n }\n }\n\n #treeOptionsNodeAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.content.codice,\n value: child.content.testo,\n selected: currentValue === child.content.codice,\n children: child.children?.length\n ? this.#treeOptionsNodeAdapter(child, currentValue)\n : [],\n }));\n }\n\n #dataTreeOptionsChildrenAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.obj.k,\n value: child.value,\n selected: currentValue === child.obj.k,\n children: child.children?.length\n ? this.#dataTreeOptionsChildrenAdapter(child, currentValue)\n : [],\n }));\n }\n\n #tableOptionsAdapter(options: any, currentValue: string): GenericObject[] {\n return options.rows.map((row) => {\n const cells = row.fields || row.cells;\n const [id, value] = Object.keys(cells);\n\n return {\n id: cells[id].value,\n value: cells[value]?.value || cells[id].value,\n selected: currentValue === cells[id].value,\n };\n });\n }\n\n #commandAdapter(cell: KupDataCell): KupDataCell {\n if (\n cell.data &&\n !cell.data.keyShortcut &&\n this.#kupManager.objects.isJ1Key(cell.obj ? cell.obj : {})\n ) {\n cell.data.keyShortcut = InputPanelKeyCommands[cell.obj.k];\n }\n\n const buttonCell = {\n ...cell,\n data: this.#BTNAdapter(null, null, cell.value, cell, cell.obj.k),\n id: cell.obj.k,\n };\n return buttonCell;\n }\n\n #getAutocompleteEventCallback(\n detail: KupAutocompleteEventPayload | KupComboboxIconClickEventPayload,\n fun: string,\n data: any,\n id: string,\n currentValue: string\n ) {\n if (\n detail.id !== id ||\n (detail as KupComboboxIconClickEventPayload).open === false\n ) {\n return;\n }\n this.optionsHandler(\n fun,\n detail.inputValue,\n this.#reverseMapCells(),\n detail.id\n ).then((options) => {\n data.data['kup-list'].data =\n this.#optionsTreeComboAdapter(options, currentValue) ?? [];\n detail.comp.refresh();\n });\n }\n\n async #checkOnBlurProp(cell: KupInputPanelCell, id: string) {\n const currCell = this.#getCell(id);\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!currCell.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && currCell.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n if (valid) {\n this.#setCellError(id, null);\n } else {\n this.#setCellError(\n id,\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n return;\n }\n }\n\n if (cell.inputSettings?.checkValueOnExit && this.#areValuesUpdated()) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n }\n\n #checkOnBlurEvent(cell: KupInputPanelCell, id: string) {\n const evName = this.#eventBlurNames.get(cell.shape);\n if (!evName) {\n return;\n }\n\n const handler = async (e: CustomEvent<KupAutocompleteEventPayload>) => {\n const currCell = this.#getCell(id);\n\n if (e.detail.id !== id) {\n return;\n }\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!e.detail.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && e.detail.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n\n this.#setCellError(\n id,\n valid\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n if (!valid) {\n return;\n }\n }\n\n if (\n cell.inputSettings?.checkValueOnExit &&\n this.#areValuesUpdated()\n ) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n }\n\n #setCellError(id: string, error: string) {\n this.inputPanelCells = this.inputPanelCells.map((cell) => ({\n ...cell,\n cells: cell.cells.map(({ cell, column }) => {\n const data =\n column.name === id\n ? {\n ...cell.data,\n error,\n }\n : cell.data;\n return {\n column,\n cell: {\n ...cell,\n data,\n },\n };\n }),\n }));\n }\n\n #areValuesUpdated() {\n return this.inputPanelCells.some(({ cells, row }) =>\n cells.some(\n ({ cell, column: { name } }) =>\n cell.value !== row.cells[name].value\n )\n );\n }\n\n #getFunctionOnClickBTN(cell: KupInputPanelCell, id: string) {\n cell.fun\n ? this.customButtonClickHandler({\n fun: cell.fun,\n cellId: id,\n currentState: this.#reverseMapCells(),\n })\n : this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n cell: id,\n });\n }\n\n #getEventDetails(\n path: HTMLElement[],\n originalEvent: PointerEvent\n ): KupInputPanelEventHandlerDetails {\n const fcell = path.find((p) => p.classList?.contains('f-cell'));\n if (fcell == null) {\n return;\n }\n\n const props = fcell['kup-get-cell-props']();\n const columnName = props.column.name;\n\n let anchor = fcell;\n let cell = this.data.rows[0].cells[columnName];\n let column = this.data.columns.find((c) => c.name == columnName);\n\n return {\n anchor,\n cell,\n column,\n originalEvent,\n };\n }\n\n #contextMenuHandler(e: PointerEvent): KupInputPanelEventHandlerDetails {\n const eventPath = this.#kupManager.getEventPath(\n e.target,\n this.rootElement\n );\n\n return this.#getEventDetails(eventPath, e);\n }\n\n #didLoadInteractables() {\n this.#kupManager.interact.managedElements.add(this.#formRef);\n\n const tapCb = (e: PointerEvent) => {\n if (e.button == 2) {\n const details = this.#contextMenuHandler(e);\n\n if (details) {\n this.kupDataTableContextMenu.emit({\n comp: this,\n id: this.rootElement.id,\n details,\n });\n }\n }\n };\n\n this.#kupManager.interact.on(\n this.#formRef,\n KupPointerEventTypes.TAP,\n tapCb\n );\n }\n\n #setFocusOnFirstInput(root:ShadowRoot){\n \n const form = root.querySelector('form');\n const firstCellContent = form?.querySelector<HTMLElement>('.f-cell__content');\n \n if (!form || !firstCellContent) return;\n \n const firstInput = this.#findFirstInput(firstCellContent);\n if (firstInput) {\n setTimeout(() => firstInput.focus(), 300);\n }\n }\n\n #findFirstInput(element: HTMLElement | ShadowRoot): HTMLInputElement | null {\n const directInput = element.querySelector<HTMLInputElement>('input');\n if (directInput) return directInput;\n \n const shadowElements = element instanceof HTMLElement\n ? element.querySelectorAll<HTMLElement>('*')\n : [];\n for (const elem of Array.from(shadowElements)) {\n if (elem.shadowRoot) {\n const shadowInput = elem.shadowRoot.querySelector('input');\n if (shadowInput) return shadowInput;\n }\n }\n \n return null;\n }\n \n //#endregion\n\n //#region LIFECYCLE HOOKS\n /*-------------------------------------------------*/\n /* L i f e c y c l e H o o k s */\n /*-------------------------------------------------*/\n\n componentWillLoad() {\n this.#kupManager.debug.logLoad(this, false);\n this.#kupManager.language.register(this);\n this.#kupManager.theme.register(this);\n this.onDataChanged();\n }\n\n componentDidLoad() {\n this.#didLoadInteractables();\n this.kupReady.emit({ comp: this, id: this.rootElement.id });\n this.#kupManager.debug.logLoad(this, true); \n }\n\n componentWillRender() {\n this.#kupManager.debug.logRender(this, false);\n }\n\n componentDidRender() {\n const root: ShadowRoot = this.rootElement.shadowRoot;\n if (root) {\n if(this.autoFocus){\n this.#setFocusOnFirstInput(root)\n }\n const fs: NodeListOf<HTMLElement> =\n root.querySelectorAll('.f-text-field');\n \n for (let index = 0; index < fs.length; index++) {\n FTextFieldMDC(fs[index]);\n }\n }\n \n this.#kupManager.debug.logRender(this, true);\n }\n\n render() {\n const isEmptyData = Boolean(!this.inputPanelCells.length);\n const inputPanelContent: VNode[] = isEmptyData\n ? [\n <p>\n {this.#kupManager.language.translate(\n KupLanguageGeneric.EMPTY_DATA\n )}\n </p>,\n ]\n : this.inputPanelCells.map((inputPanelCell) =>\n this.#renderRow(inputPanelCell)\n );\n\n return (\n <Host>\n <style>\n {this.#kupManager.theme.setKupStyle(\n this.rootElement as KupComponent\n )}\n </style>\n <div id={componentWrapperId}>{inputPanelContent}</div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.#kupManager.language.unregister(this);\n this.#kupManager.theme.unregister(this);\n }\n //#endregion\n}\n"],"mappings":"wiBAkEA,IAAYA,GAAZ,SAAYA,GACRA,EAAA,YACH,EAFD,CAAYA,MAA8B,KA0F1C,IAAYC,GAAZ,SAAYA,GACRA,EAAA,gDACAA,EAAA,0CACAA,EAAA,+FACAA,EAAA,wDACAA,EAAA,kEACAA,EAAA,gHACAA,EAAA,oGACAA,EAAA,iEACH,EATD,CAAYA,MAAkB,KAsB9B,IAAYC,GAAZ,SAAYA,GACRA,EAAA,qBACAA,EAAA,mBACAA,EAAA,yBACAA,EAAA,uBACAA,EAAA,yBACAA,EAAA,wBACH,EAPD,CAAYA,MAAqB,KASjC,IAAYC,GAAZ,SAAYA,GACRA,EAAA,mBACAA,EAAA,eACAA,EAAA,mBACAA,EAAA,iBACAA,EAAA,YACH,EAND,CAAYA,MAA6B,KAYlC,MAAMC,EAA2C,CACpD,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,MACR,OAAQ,QACR,OAAQ,WACR,OAAQ,UClOL,MAAMC,EAAa,GACnB,MAAMC,EAAa,GAEnB,MAAMC,EAAoBC,IAC7B,GAAIA,GAAU,EAAG,CACb,OAAOH,EAAa,C,CAGxB,IAAKG,EAAQ,CACT,OAAO,I,CAGX,GAAIA,IAAW,EAAG,CACd,OAAO,IAAMH,C,CAGjB,OAAOG,EAASH,CAAU,EAGvB,MAAMI,EAAqBC,IAC9B,IAAKA,EAAQ,CACT,OAAO,I,CAGX,OAAOA,EAASJ,CAAU,EAGvB,MAAMK,EAAkBC,IAC3B,IAAKA,EAAK,CACN,OAAO,I,CAGX,OAAQA,EAAM,GAAKN,CAAU,EAG1B,MAAMO,EAAmBC,IAC5B,IAAKA,EAAK,CACN,OAAO,I,CAGX,OAAOA,EAAMT,CAAU,ECxC3B,MAAMU,EAAmB,m2IACzB,MAAAC,EAAeD,E,2yCC2Ff,MAAME,GAAcC,SAASC,gB,MAMhBC,GAAa,M,yJAsHtBC,EAAAC,IAAAC,KAA0BC,KAE1BC,EAAAH,IAAAC,UAAA,GAEAG,EAAAJ,IAAAC,KAAqB,IAAII,IAGvB,CACE,CAAC,gBAAiBC,EAAAL,KAAIM,EAAA,IAAAC,IAAyBC,KAAKR,OACpD,CAAC,gBAAiBK,EAAAL,KAAIM,EAAA,IAAAG,IAAiCD,KAAKR,OAC5D,CAAC,aAAcK,EAAAL,KAAIM,EAAA,IAAAI,IAAsBF,KAAKR,OAC9C,CAAC,iBAAkBK,EAAAL,KAAIM,EAAA,IAAAI,IAAsBF,KAAKR,UAGtDW,EAAAZ,IAAAC,KAAmC,MAEnCY,EAAAb,IAAAC,KAAc,IAAII,IAA0B,CACxC,CACIS,EAAWC,aACX,CAAC,yBAA0B,+BAE/B,CACID,EAAWE,mBACX,CAAC,yBAA0B,+BAE/B,CAACF,EAAWG,SAAU,CAAC,yBAA0B,sBACjD,CAACH,EAAWI,eAAgB,CAAC,8BAGjCC,EAAAnB,IAAAC,KAAkB,IAAII,IAAyB,CAC3C,CAACe,EAAYL,aAAc,yBAC3B,CAACK,EAAYC,KAAM,sBACnB,CAACD,EAAYH,SAAU,qBACvB,CAACG,EAAYE,KAAM,uBACnB,CAACF,EAAYJ,mBAAoB,yBACjC,CAACI,EAAYF,eAAgB,qBAC7B,CAACE,EAAYG,KAAM,0BAGvBC,EAAAxB,IAAAC,KAAwD,IACxDwB,EAAAzB,IAAAC,KAA+C,IAAII,IAAwB,CACvE,CAACS,EAAWQ,KAAM,mBAClB,CAACR,EAAWS,KAAM,sBAEtBG,EAAA1B,IAAAC,KAGI,IAAII,IAA6D,CACjE,CAACe,EAAYO,YAAarB,EAAAL,KAAIM,EAAA,IAAAqB,IAAenB,KAAKR,OAClD,CAACmB,EAAYS,OAAQvB,EAAAL,KAAIM,EAAA,IAAAuB,IAAerB,KAAKR,OAC7C,CAACmB,EAAYW,MAAOzB,EAAAL,KAAIM,EAAA,IAAAyB,IAAcvB,KAAKR,OAC3C,CAACmB,EAAYa,MAAO3B,EAAAL,KAAIM,EAAA,IAAA2B,IAAkBzB,KAAKR,UAEnDkC,EAAAnC,IAAAC,KAGI,IAAII,IAGN,CACE,CAAC3B,EAA+B0D,IAAK9B,EAAAL,KAAIM,EAAA,IAAA8B,IAAmB5B,KAAKR,UAErEqC,EAAAtC,IAAAC,KAA0B,I,oBApKtBpB,EAA8B0D,O,iBAOJ,G,mBAMG,M,UAMC,K,wBAMI,M,wBAOlC3D,EAAsB4D,Q,cAM8B,K,oBAML,K,8BAMe,K,2BAMA,K,6BAMI,K,eAMxC,M,qBAcwB,G,wBAMP,G,iBAMR,I,CA+EvC,aAAAC,GACIC,EAAAzC,KAAIW,EAAiB+B,gBAAgB1C,KAAK2C,MAAK,KAC/C,GAAItC,EAAAL,KAAIuB,EAAA,KAAYtC,OAAQ,CACxBoB,EAAAL,KAAIuB,EAAA,KAAYqB,KAAI,EAAGC,QAAOC,cAC1B9C,KAAK+C,YAAYC,oBAAoBH,EAAOC,EAAQ,IAExDL,EAAAzC,KAAIuB,EAAc,GAAE,I,CAGxB,GAAIlB,EAAAL,KAAIqC,EAAA,KAAepD,OAAQ,CAC3BoB,EAAAL,KAAIqC,EAAA,KAAeO,KAAKK,IACpB5C,EAAAL,KAAIF,EAAA,KAAaoD,YAAYC,WAAWF,EAAI,IAEhDR,EAAAzC,KAAIqC,EAAiB,GAAE,I,CAE3B,GAAIrC,KAAK2C,KAAM,CACXtC,EAAAL,KAAIM,EAAA,IAAA8C,IAAUC,KAAdrD,KAAeA,KAAK2C,K,EAgB5B,cAAMW,CAASC,GACX,OAAOD,EAAStD,KAAMtB,EAAoB6E,E,CAM9C,aAAMC,GACFC,EAAYzD,K,CAOhB,cAAM0D,CAASC,GACXD,EAAS1D,KAAMtB,EAAoBiF,E,CA6pDvC,iBAAAC,GACIvD,EAAAL,KAAIF,EAAA,KAAa+D,MAAMC,QAAQ9D,KAAM,OACrCK,EAAAL,KAAIF,EAAA,KAAaiE,SAASC,SAAShE,MACnCK,EAAAL,KAAIF,EAAA,KAAamE,MAAMD,SAAShE,MAChCA,KAAKwC,e,CAGT,gBAAA0B,GACI7D,EAAAL,KAAIM,EAAA,IAAA6D,IAAsBd,KAA1BrD,MACAA,KAAKoE,SAASC,KAAK,CAAEC,KAAMtE,KAAMuE,GAAIvE,KAAK+C,YAAYwB,KACtDlE,EAAAL,KAAIF,EAAA,KAAa+D,MAAMC,QAAQ9D,KAAM,K,CAGzC,mBAAAwE,GACInE,EAAAL,KAAIF,EAAA,KAAa+D,MAAMY,UAAUzE,KAAM,M,CAG3C,kBAAA0E,GACI,MAAMC,EAAmB3E,KAAK+C,YAAY6B,WAC1C,GAAID,EAAM,CACN,GAAG3E,KAAK6E,UAAU,CACdxE,EAAAL,KAAIM,EAAA,IAAAwE,IAAsBzB,KAA1BrD,KAA2B2E,E,CAE/B,MAAMI,EACFJ,EAAKK,iBAAiB,iBAE1B,IAAK,IAAIC,EAAQ,EAAGA,EAAQF,EAAG9F,OAAQgG,IAAS,CAC5CC,EAAcH,EAAGE,G,EAIzB5E,EAAAL,KAAIF,EAAA,KAAa+D,MAAMY,UAAUzE,KAAM,K,CAG3C,MAAAmF,GACI,MAAMC,EAAcC,SAASrF,KAAKsF,gBAAgBrG,QAClD,MAAMsG,EAA6BH,EAC7B,CACII,EAAA,SACKnF,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UACvBC,EAAmBC,cAI/B3F,KAAKsF,gBAAgB1C,KAAKgD,GACtBvF,EAAAL,KAAIM,EAAA,IAAAuF,IAAWxC,KAAfrD,KAAgB4F,KAG1B,OACIJ,EAACM,EAAI,CAAA7C,IAAA,4CACDuC,EAAA,SAAAvC,IAAA,4CACK5C,EAAAL,KAAIF,EAAA,KAAamE,MAAM8B,YACpB/F,KAAK+C,cAGbyC,EAAA,OAAAvC,IAAA,2CAAKsB,GAAIyB,GAAqBT,G,CAK1C,oBAAAU,GACI5F,EAAAL,KAAIF,EAAA,KAAaiE,SAASZ,WAAWnD,MACrCK,EAAAL,KAAIF,EAAA,KAAamE,MAAMd,WAAWnD,K,8QAtrD7BuE,GACL,OAAOvE,KAAKsF,gBAAgBY,QAAoB,CAACC,GAAQC,YACrD,IAAKD,EAAM,CACP,OAAOC,EAAMC,MAAK,EAAGC,YAAaA,EAAOC,OAAShC,IAAI4B,I,CAE1D,OAAOA,CAAI,GACZ,KACP,EAACN,GAAA,SAAAA,EAEUD,G,QACP,MAAMY,EAASZ,EAAevG,IAAImH,OAClC,MAAMC,GAAaD,IAAM,MAANA,SAAM,SAANA,EAAQC,aAAc,MACzC,MAAMC,EAA0B,GAGhC,IAAIC,EAEJ,MAAKC,EAAAJ,IAAM,MAANA,SAAM,SAANA,EAAQK,YAAQ,MAAAD,SAAA,SAAAA,EAAE3H,QAAQ,CAC3B0H,EAAaf,EAAeQ,MAAMxD,KAAKuD,GACnC9F,EAAAL,KAAIM,EAAA,IAAAwG,IAAYzD,KAAhBrD,KAAiBmG,EAAKA,KAAMP,EAAevG,IAAK8G,EAAKG,S,KAEtD,CACH,GAAIE,EAAOO,SAAU,CACjBJ,EAAatG,EAAAL,KAAIM,EAAA,IAAA0G,IAAsB3D,KAA1BrD,KAA2B4F,EAAgBY,GACxD,MAAMS,EAAiBC,KAAKC,OACrBX,EAAOK,SAASO,SAASC,GACxBA,EAAIC,QAAQ1E,KAAK2E,GAASA,EAAKC,aAAe,OAGtDd,EAASvH,OAAS,GAAG8H,EAAiBlI,K,KACnC,CACH,IAAKyH,EAAOiB,aAAc,CACtB,MAAMC,EAASlB,EAAOK,SAASc,MAAMN,GAAQA,EAAIO,MACjDlB,EAASmB,QAAU,OACnB,GAAI7H,KAAK8H,oBAAsB,SAAU,CACrCpB,EAASmB,QAAU,E,CAEvB,GAAIrB,EAAOC,WAAY,CACnBC,EAASqB,oBAAsBL,EACzBlB,EAAOK,SACFjE,KAAKyE,GAAQA,EAAIO,KAAO,SACxBI,KAAK,KACV,UAAUpC,EAAeQ,MAAMnH,c,KAClC,CACH,GAAIe,KAAKiI,cAAe,CACpBvB,EAASwB,iBAAmBR,EACtBlB,EAAOK,SACFjE,KAAKyE,GAAQA,EAAIO,KAAO,SACxBI,KAAK,KACV,UAAUxB,EAAOK,SAAS5H,c,GAK5C0H,EAAatG,EAAAL,KAAIM,EAAA,IAAA6H,IAAkB9E,KAAtBrD,KAAuB4F,EAAgBY,E,EAI5D,MAAM4B,EAAkB,CACpB,mBAAoB,KACpB,2BACIpI,KAAKqI,gBAAkBzJ,EAA8B0J,OAG7D,MAAMC,EAAW,CACb,cAAe,KACf,uBAAwB9B,EACxB,wBAAyBD,IAAM,MAANA,SAAM,SAANA,EAAQO,SACjC,sBACI/G,KAAK8H,oBAAsBnJ,EAAsB6J,QAGzD,MAAMC,EAAgB,CAClB,wBAAyB,KACzB,CAAC,0BAA0BzI,KAAKqI,kBAAmB,MAGvD,MAAM1E,EAA0B,CAC5B+E,OAAOC,EAAAnC,IAAM,MAANA,SAAM,SAANA,EAAQK,SAAS,MAAE,MAAA8B,SAAA,SAAAA,EAAEC,MAC5BC,KAAMC,EAAgBC,UAG1B,OACIvD,EAAA,WACIA,EAAA,QACIe,KAAMvG,KAAK+C,YAAYwB,GACvBA,GAAIvE,KAAK+C,YAAYwB,GACrByE,MAAOZ,EACPa,IAAMC,GAAyBzG,EAAAzC,KAAIE,EAAYgJ,EAAE,KACjDC,SAAWC,IACPA,EAAEC,iBACFrJ,KAAKsJ,SAAS,CACVZ,MAAO,CACHa,OAAMC,OAAAC,OAAA,GAAOpJ,EAAAL,KAAIW,EAAA,MACjB+I,MAAOrJ,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,QAEb,EAEN4J,cAAgBR,IACZA,EAAEC,gBAAgB,GAGtB7D,EAAA,OAAKwD,MAAM,2BACPxD,EAACqE,EAAWL,OAAAC,OAAA,GAAK9F,KAErB6B,EAAA,OAAKwD,MAAOT,EAAUuB,MAAOpD,GACxBC,GAELnB,EAAA,OAAKwD,MAAOP,GACRjD,EAACuE,EAAO,CACJC,WAAW,SACXC,MAAO5J,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UAC7BC,EAAmBwE,SAEvBC,aAAa,eACbC,UAAWpK,KAAKqK,qBAEnBrK,KAAKsK,qBAK1B,EAACxD,GAAA,SAAAA,EAGGX,EACA9G,EACAiH,GAEA,IAAKH,EAAM,CACP,M,CAGJ,MAAMoE,EAAelK,EAAAL,KAAIyB,EAAA,KAAmB+I,IAAIrE,EAAKsE,OAErD,GAAIF,IAAiBG,UAAW,CAC5B,OAAOH,EAAapE,EAAMG,EAAOC,K,CAGrC,MAAMoE,EAAwB,CAC1BxE,OACAG,SACAjH,MACAuL,UAAW5K,KACX6K,SAAU,KACVC,UAAW,KACXC,SAAU,MAGd,MAAMd,EAAQ5J,EAAAL,KAAIM,EAAA,IAAA0K,IAAmB3H,KAAvBrD,KAAwBmG,EAAMG,EAAOsC,OAEnD,GAAIqB,EAAO,CACP,OACIzE,EAAA,OAAKwD,MAAO,CAAE,+BAAgC,OACzCiB,EACDzE,EAACyF,EAAKzB,OAAAC,OAAA,GAAKkB,I,CAKvB,OAAOnF,EAACyF,EAAKzB,OAAAC,OAAA,GAAKkB,GACtB,EAAChJ,GAAA,SAAAA,EAEawE,EAAmB+E,GAC7B,OACI1F,EAACuE,EAAOP,OAAAC,OAAA,CACJ0B,KAAMhF,EAAKgF,KACX5G,GAAI2G,GACA/E,EAAKxD,KAAI,CACbwH,aAAa,iBAGzB,EAACiB,GAAA,SAAAA,EAEqBjF,EAAmBxD,GACrC,OACI6C,EAAA,sBAAAgE,OAAAC,OAAA,GACQtD,EAAKxD,KAAI,CACbsH,MAAO9D,EAAKuC,MACZ/F,KAAMA,EAAI,iCAENyG,IAEA/I,EAAAL,KAAIM,EAAA,IAAA+K,IAAuBhI,KAA3BrD,KACIoJ,EAAEkC,OAAOC,KACTnC,EAAEkC,OAAOC,KAAKhH,GACjB,IAIjB,EAAC1C,GAAA,SAAAA,EAEasE,EAAmB+E,GAC7B,MAAMrI,EAAQ,kBACd,MAAMC,EAAWsG,IACb,MAAMoC,EACFxL,KAAKsF,gBAAgBY,QAAoB,CAACC,GAAQC,YAC9C,IAAKD,EAAM,CACP,OAAOC,EAAMC,MACT,EAAGC,YAAaA,EAAOC,OAAS2E,IAClC/E,I,CAEN,OAAOA,CAAI,GACZ,MACPqF,EAAQ9C,MAAQU,EAAEkC,OAAOG,UAAUC,QAAQ,MAAO,OAAO,EAG7D1L,KAAK+C,YAAY4I,iBAAiB9I,EAAOC,GAEzCzC,EAAAL,KAAIuB,EAAA,KAAYqK,KAAK,CACjB/I,QACAC,YAGJ,OACI0C,EAAA,aAAAgE,OAAAC,OAAA,GACQtD,EAAKxD,KAAI,CACb4B,GAAI2G,EACJW,YAAa1F,EAAK2F,WAClBC,YAAa,OAGzB,EAAC9J,GAAA,SAAAA,EAEgBkE,EAAmB+E,GAChC,OACI1F,EAAA,iBAAAgE,OAAAC,OAAA,CACIlF,GAAI2G,EACJc,aAAc,KACdC,WAAY,KACZC,YAAa,KACbC,WAAY,MACRhG,EAAKxD,MAGrB,EAACZ,GAAA,SAAAA,EAEYoE,EAAmB+E,GAC5B,OACI1F,EAAA,QAAMwD,MAAM,oBAAoBzE,GAAI2G,GAC/B/E,EAAKuC,MAGlB,EAACsC,GAAA,SAAAA,EAEkB7E,EAAmB8D,GAClC,IAAKA,EAAO,CACR,OAAO,I,CAGX,MAAMmC,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QAAQnG,EAAMA,EAAKsE,OAE1D,GAAI2B,IAAavL,EAAW0L,MAAO,CAC/B,OAAO/G,EAAA,YAAOyE,E,CAGlB,OAAO,IACX,EAAC9B,GAAA,SAAAA,EAGGvC,EACAY,GAEA,MAAMgG,EAAgBnM,EAAAL,KAAIkC,EAAA,KAAmBsI,IAAIhE,EAAOiB,cAExD,OAAO+E,EACDA,EAAc5G,EAAgBY,EAAOK,UACrCL,EAAOK,SAASjE,KAAK6J,GACjBpM,EAAAL,KAAIM,EAAA,IAAAoM,IAAerJ,KAAnBrD,KAAoB4F,EAAgB6G,EAAS,QAE3D,EAACzF,GAAA,SAAAA,EAGGpB,EACAY,GAEA,OAAOA,EAAOK,SAASjE,KAAK6J,GACxBpM,EAAAL,KAAIM,EAAA,IAAAqM,IAAuBtJ,KAA3BrD,KAA4B4F,EAAgB6G,IAEpD,EAACC,GAAA,SAAAA,EAGGtG,EACAqG,EACAG,EAA6B,MAC7BlG,EAA0B,I,QAE1B,MAAM6B,EAAW,CACb,wBAAyBkE,EAAQhG,WACjC,kCAAmCgG,EAAQhG,WAC3C,8BAA+BzG,KAAK8H,oBAAsB,UAG9DpB,EAASmG,KAAOJ,EAAQI,IAAM,EAAI,GAAGJ,EAAQI,SAAW,OAExD,IAAIvF,EAAU,GAEd,IAAIV,EAAA6F,EAAQ5F,YAAQ,MAAAD,SAAA,SAAAA,EAAE3H,OAAQ,CAC1BqI,EAAUmF,EAAQ5F,SAASjE,KAAKkK,GAC5BzM,EAAAL,KAAIM,EAAA,IAAAoM,GAAerJ,KAAnBrD,KAAoBoG,EAAO0G,KAG/B,MAAMpF,EAAS+E,EAAQ5F,SAASc,MAAMN,GAAQA,EAAIO,MAElD,IAAK6E,EAAQM,UAAYN,EAAQhG,WAAY,CACzCC,EAASqB,oBAAsBL,EACzB+E,EAAQ5F,SAASjE,KAAKyE,GAAQA,EAAIO,KAAO,SAAQI,KAAK,KACtD,UAAUyE,EAAQ5F,SAAS5H,c,CAGrC,IACKwN,EAAQO,WACRP,EAAQhG,YACTzG,KAAKiI,cACP,CACEvB,EAASwB,iBAAmBR,EACtB+E,EAAQ5F,SAASjE,KAAKyE,GAAQA,EAAIO,KAAO,SAAQI,KAAK,KACtD,UAAUyE,EAAQ5F,SAAS5H,c,OAElC,IAAI0J,EAAA8D,EAAQnF,WAAO,MAAAqB,SAAA,SAAAA,EAAE1J,OAAQ,CAChCqI,EAAUmF,EAAQnF,QAAQ1E,KAAKqK,GAC3B5M,EAAAL,KAAIM,EAAA,IAAA4M,IAAa7J,KAAjBrD,KAAkBoG,EAAO6G,KAE7BvG,EAASqB,qBACJ0E,EAAQM,SAAW,EAAI,UAAUN,EAAQM,iBAAmB,GACjE,GAAI/M,KAAKiI,cAAe,CACpBvB,EAASwB,kBACJuE,EAAQO,SAAW,EACd,UAAUP,EAAQO,iBAClB,E,EAGlB,MAAMG,EACF3H,EAAA,OAAKwD,MAAOT,EAAUuB,MAAOpD,GACxBY,EAAQ8F,OAAO/H,UAIxB,OAAOoH,EAAQ7D,QAAUgE,EACrBpH,EAAA,OAAKwD,MAAO,CAAE,uCAAwC,OAClDxD,EAACqE,EAAW,CACRhB,KAAMC,EAAgBC,SACtBL,MAAO+D,EAAQ7D,QAElBuE,GACC,CAId,EAACR,GAAA,SAAAA,EAGGvG,EACAqG,G,QAEA,IAAInF,EAAU,GAEd,IAAIV,EAAA6F,EAAQ5F,YAAQ,MAAAD,SAAA,SAAAA,EAAE3H,OAAQ,CAC1BqI,EAAUmF,EAAQ5F,SAASjE,KAAKkK,GAC5BzM,EAAAL,KAAIM,EAAA,IAAAqM,GAAuBtJ,KAA3BrD,KAA4BoG,EAAO0G,I,MAEpC,IAAInE,EAAA8D,EAAQnF,WAAO,MAAAqB,SAAA,SAAAA,EAAE1J,OAAQ,CAChCqI,EAAUmF,EAAQnF,QAAQ1E,KAAKqK,GAC3B5M,EAAAL,KAAIM,EAAA,IAAA+M,IAAqBhK,KAAzBrD,KAA0BoG,EAAO6G,I,CAKzC,GAAIjO,EAAiByN,EAAQa,gBAAkB,KAAM,CACjD,OAAOhG,C,CAGX,MAAMiG,EAAQ,GACVvO,EAAiByN,EAAQa,gBAAkB,KACrC,GAAGtO,EAAiByN,EAAQa,mBAC5B,SAEV,MAAMnO,EAAS,GACXD,EAAkBuN,EAAQe,iBAAmB,KACvC,GAAGtO,EAAkBuN,EAAQe,oBAC7B,SAEV,MAAMC,EAAM,GAAGrO,EAAeqN,EAAQjF,iBACtC,MAAMkG,EAAO,GAAGpO,EAAgBmN,EAAQkB,oBAExC,MAAMC,EAAe,CACjBC,SAAU,WACVN,QACA,YAAaA,EACb,YAAaA,EACbpO,SACA,aAAcA,EACd,aAAcA,EACdsO,MACAC,OACAI,SAAU,QAGd,OAAOtI,EAAA,OAAKsE,MAAO8D,GAAetG,EACtC,EAACyG,GAAA,SAAAA,EAEkBxC,G,QACf,IAAIyC,EAAgB,GAEpB,IAAIpH,EAAA2E,EAAKjE,WAAO,MAAAV,SAAA,SAAAA,EAAE3H,OAAQ,CACtBsM,EAAKjE,QAAQ2G,SAASC,IAClB,GAAIA,EAAK3J,GAAI,CACTyJ,EAAIpC,KAAKsC,EAAK3J,G,KAK1B,IAAIoE,EAAA4C,EAAK1E,YAAQ,MAAA8B,SAAA,SAAAA,EAAE1J,OAAQ,CACvBsM,EAAK1E,SAASoH,SAASxB,IACnBuB,EAAMA,EAAIG,OAAO9N,EAAAL,KAAIM,EAAA,IAAAyN,GAAmB1K,KAAvBrD,KAAwByM,GAAS,G,CAI1D,OAAOuB,CACX,EAAC5L,GAAA,SAAAA,EAGGgE,EACAS,GAEA,IAAK7G,KAAKoO,YAAa,CACnBpO,KAAKoO,YAAcvH,EAAS,GAAGtC,IAAM,G,CAGzC,MAAM8J,EAA4BxH,EAASjE,KAAI,CAAC6J,EAAS6B,KACrD,MAAMC,EAAmBlO,EAAAL,KAAIM,EAAA,IAAAyN,IAAmB1K,KAAvBrD,KAAwByM,GAEjD,MAAM+B,EAAWpI,EAAMA,MAAMuB,MAAM8G,I,MAC/B,MAAMtI,EAAOsI,EAAStI,KACtB,MAAMG,EAASmI,EAASnI,OACxB,OACIiI,EAAiBG,SAASpI,EAAOC,WAAWK,EAAAT,EAAKxD,QAAI,MAAAiE,SAAA,SAAAA,EAAE+H,MAAK,IAIpE,MAAO,CACHC,QAASnC,EAAQlI,IAAM,GAAG+J,OAAStO,KAAKoO,YACxC1F,MAAO+D,EAAQ7D,MACfuC,KAAMqD,EAAW,QAAU/B,EAAQtB,KACnC5G,GAAIkI,EAAQlI,IAAM,GAAG+J,IACrBO,OAAQL,EACX,IAGL,MAAMrB,EAAiBtG,EAASjE,KAAI,CAAC6J,EAAS6B,KAC1C,MAAMQ,EAAYrC,EAAQlI,IAAM,GAAG+J,IACnC,OAAOjO,EAAAL,KAAIM,EAAA,IAAAoM,IAAerJ,KAAnBrD,KAAoBoG,EAAOqG,EAAS,KAAM,CAC7C5E,QAAS7H,KAAKoO,cAAgBU,EAAY,OAAS,QACrD,IAGN,MAAMC,EACF,6EAEJ,IAAK1O,EAAAL,KAAIuB,EAAA,KAAYqB,KAAKoM,GAAMA,EAAEnM,QAAO6L,SAAS,oBAAqB,CACnE,MAAM7L,EAAQ,mBACd,MAAMC,EAAWsG,IACbpJ,KAAKoO,YAAchF,EAAEkC,OAAOC,KAAKhH,EAAE,EAGvCvE,KAAK+C,YAAY4I,iBAAiB9I,EAAOC,GACzCzC,EAAAL,KAAIuB,EAAA,KAAYqK,KAAK,CACjB/I,QACAC,W,CAIR,OACI0C,EAAA,OAAKwD,MAAO,CAAE,8BAA+B,OACzCxD,EAAA,eACI7C,KAAM0L,EACNY,YAAaF,IAEhB5B,EAGb,EAACD,GAAA,SAAAA,EAEY9G,EAAwB6G,GACjC,MAAMiC,EAAY9I,EAAMA,MAAMC,MACzBF,GAASA,EAAKG,OAAOC,OAAS0G,EAAM1I,KAGzC,MAAM4K,GACDlC,EAAMkC,QAAU,EACXlC,EAAMkC,WACHlC,EAAMkC,QAAU,OAASlC,EAAMmC,SAAW,GAC7C,EACA,KAEV,MAAMA,EAAWD,EAAU,QAAQA,IAAY,GAAGlC,EAAMmC,WAExD,MAAMC,GAAUpC,EAAMoC,OAAS,EAAI,GAAGpC,EAAMoC,SAAW,GAEvD,MAAMC,GACDrC,EAAMqC,QAAU,EACXrC,EAAMqC,WACHrC,EAAMqC,QAAU,OAASrC,EAAMsC,SAAW,GAC7C,EACA,KAEV,MAAMA,EAAWD,EAAU,QAAQA,IAAY,GAAGrC,EAAMsC,WAExD,MAAMC,GAAUvC,EAAMuC,OAAS,EAAI,GAAGvC,EAAMuC,SAAW,GAEvD,MAAM9I,EAAW,CACb,YAAa,IACb,oBAAqB0I,EACrB,kBAAmBC,EACnB,iBAAkBE,EAClB,eAAgBC,GAGpB,IAAKN,IAAcA,EAAU/I,KAAM,CAC/B,M,CAGJ,OACIX,EAAA,OAAKsE,MAAOpD,GACPrG,EAAAL,KAAIM,EAAA,IAAAwG,IAAYzD,KAAhBrD,KAAiBkP,EAAU/I,KAAMC,EAAM/G,IAAK6P,EAAU5I,QAGnE,EAAC+G,GAAA,SAAAA,EAGGjH,EACA6G,GAEA,MAAMiC,EAAY9I,EAAMA,MAAMC,MACzBF,GAASA,EAAKG,OAAOC,OAAS0G,EAAM1I,KAEzC,IAAK2K,IAAcA,EAAU/I,KAAM,CAC/B,M,CAGJ,IAAIlH,EACJ,GAAIiQ,EAAU/I,KAAKsE,OAAStJ,EAAYE,KAAM,CAC1CpC,EAASgO,EAAMwC,eAAiB,EAAIxC,EAAMwC,eAAiB,C,KACxD,CACHxQ,EAASgO,EAAMwC,c,CAGnB,IAAKxC,EAAMO,eAAgB,CACvBP,EAAMO,eAAiB,C,CAG3B,MAAMF,EAAgBtO,EAAiBC,GACvC,MAAMuO,EAAiBtO,EAAkB+N,EAAMO,gBAC/C,MAAMkC,EAActQ,EAAe6N,EAAMzF,aACzC,MAAMmI,EAAerQ,EAAgB2N,EAAMU,gBAE3C,MAAMjH,EAAW,CACbmH,SAAU,WACVN,MAAOD,IAAkB,KAAO,GAAGA,MAAoB,KACvD,YAAaA,IAAkB,KAAO,GAAGA,MAAoB,KAC7D,YAAaA,IAAkB,KAAO,GAAGA,MAAoB,KAC7DnO,OAAQqO,IAAmB,KAAO,GAAGA,MAAqB,KAC1D,aACIA,IAAmB,KAAO,GAAGA,MAAqB,KACtD,aACIA,IAAmB,KAAO,GAAGA,MAAqB,KACtDC,IACIiC,IAAgB,KACV,GAAGtQ,EAAe6N,EAAMzF,iBACxB,KACVkG,KACIiC,IAAiB,KACX,GAAGrQ,EAAgB2N,EAAMU,oBACzB,KACVG,SAAU,QAGdoB,EAAU/I,KAAKxD,KAAI6G,OAAAC,OAAAD,OAAAC,OAAA,GACZyF,EAAU/I,KAAKxD,MAAI,CACtBiN,OAAQ,cACRX,aACKC,EAAU/I,KAAKxD,KAAKsM,aAAe,IACpC,gDAGR,OACIzJ,EAAA,OAAKsE,MAAOpD,GACPrG,EAAAL,KAAIM,EAAA,IAAAwG,IAAYzD,KAAhBrD,KAAiBkP,EAAU/I,KAAMC,EAAM/G,IAAK6P,EAAU5I,QAGnE,EAACuJ,GAAA,SAAAA,IAGG7P,KAAKsK,mBAAqBtK,KAAK2C,KAAKmN,MAAMC,SACrCnN,KAAKoN,IACF,IAAIA,IAAU,MAAVA,SAAU,SAAVA,EAAYC,YAAYD,IAAU,MAAVA,SAAU,SAAVA,EAAYC,SAAShR,QAAS,EAAG,CACzD,MAAM0D,EAAO,CACT,WAAY,CACRuN,UAAW,KACXvN,KAAMqN,EAAWC,SAASrN,KAAKuN,GAC3B9P,EAAAL,KAAIM,EAAA,IAAA8P,IAAgB/M,KAApBrD,KAAqBmQ,OAIjC,OAAO9P,EAAAL,KAAIM,EAAA,IAAA8K,IAAsB/H,KAA1BrD,KAA2BgQ,EAAYrN,E,KAC3C,CACH,MAAM0N,EAAahQ,EAAAL,KAAIM,EAAA,IAAA8P,IAAgB/M,KAApBrD,KAAqBgQ,GACxC,OAAO3P,EAAAL,KAAIM,EAAA,IAAAqB,IAAc0B,KAAlBrD,KAAmBqQ,EAAYL,EAAWtH,M,KAGxD4H,MACT,EAAClN,GAAA,SAAAA,EAEST,G,YACN,IAAIgG,GAAA/B,EAAAjE,EAAKmN,SAAK,MAAAlJ,SAAA,SAAAA,EAAEmJ,YAAQ,MAAApH,SAAA,SAAAA,EAAE1J,OAAQ,CAC9BoB,EAAAL,KAAIM,EAAA,IAAAuP,IAAaxM,KAAjBrD,K,CAGJ,MAAMwG,GAAS+J,EAAA5N,IAAI,MAAJA,SAAI,SAAJA,EAAM6N,KAAK,MAAE,MAAAD,SAAA,SAAAA,EAAE/J,OAC9B,MAAMiK,IAAiBC,EAAA/N,IAAI,MAAJA,SAAI,SAAJA,EAAM6N,QAAI,MAAAE,SAAA,SAAAA,EAAEzR,QAC7B0D,EAAK6N,KAAKtK,QAAO,CAACuK,EAAgBpR,KAC9B,MAAM+G,EAAQzD,EAAKgO,QACdvD,QAAQ9G,GAAWA,EAAOsK,UAC1BhO,KAAK0D,IACF,MAAMH,EAAOzD,gBAAgBrD,EAAI+G,MAAME,EAAOC,OAC9C,MAAMsK,EAAa1K,E,+BAENA,GAAI,CACPxD,KAAMtC,EAAAL,KAAIM,EAAA,IAAAwQ,IAASzN,KAAbrD,KAAcmG,EAAMG,EAAQE,GAClCuK,SAAU1Q,EAAAL,KAAIM,EAAA,IAAA0Q,IAAU3N,KAAdrD,KAAemG,EAAMG,GAC/BwF,WAAY,OAEhB,KACN,MAAO,CAAExF,SAAQH,KAAM0K,EAAY,IAE3C,MAAO,IAAIJ,EAAgB,CAAErK,QAAO/G,OAAM,GAC3C,IACH,GACNoR,EAAe7N,KAAI,EAAGwD,WAClBA,EAAMxD,KAAI,EAAGuD,OAAMG,aACf,MAAM8F,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QACnCnG,EACAA,EAAKsE,OAET,MAAMwG,EAAiB5Q,EAAAL,KAAIwB,EAAA,KAAqBgJ,IAAI4B,GACpD,IAAK6E,EAAgB,CACjB,M,CAGJ,MAAM/H,EAAUlJ,KAAK+C,YAAY6B,WAAWsM,cACxC,GAAGD,QAAqB3K,EAAOC,KAAKmF,QAChC,MACA,YAIRxC,IAAE,MAAFA,SAAE,SAAFA,EAAIiI,SAAShL,EAAKuC,MAAM,MAIhC1I,KAAKsF,gBAAkBmL,CAC3B,EAACK,GAAA,SAAAA,EAGG3K,EACAG,EACAE,GAEA,MAAM4K,EAAY5H,OAAAC,OAAAD,OAAAC,OAAA,GACXpJ,EAAAL,KAAIM,EAAA,IAAA+Q,IAAShO,KAAbrD,KAAcmG,EAAMG,EAAQE,IAAO,CACtC8K,UAAWnL,EAAK0E,SAChBtG,GAAI+B,EAAOC,OAEf,MAAM6F,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QAAQnG,EAAMA,EAAKsE,O,MACpD7D,EAA2BT,EAAKxD,MAAQ,GAA7B4O,EAAWC,EAAA5K,EAAtB,UAEN,OAAOwF,IAAavL,EAAWE,oBAC3BqL,IAAavL,EAAWI,eACtBZ,EAAAL,KAAIM,EAAA,IAAAmR,IAAkBpO,KAAtBrD,KAAuBoR,EAAY5H,OAAAC,OAAA,GAC5BtD,EAAKxD,O,+BAILyO,GACAG,EAEjB,EAACE,GAAA,SAAAA,EAEiBC,EAAuBC,GACrC,IAAK,MAAM1O,KAAO0O,EAAQ,CACtB,GACIA,EAAO1O,aAAgBuG,SACtBoI,MAAMC,QAAQF,EAAO1O,KACtBA,KAAOyO,EACT,CACEA,EAAOzO,GAAO5C,EAAAL,KAAIM,EAAA,IAAAmR,GAAkBpO,KAAtBrD,KAAuB0R,EAAOzO,GAAM0O,EAAO1O,G,KACtD,CACHyO,EAAOzO,GAAO0O,EAAO1O,E,EAG7B,OAAOyO,CACX,EAAC/H,GAAA,SAAAA,IAGG,OAAO3J,KAAKsF,gBAAgBY,QACxB,CAACvD,EAAMmP,KACH,MAAMC,EAAevI,OAAOwI,KAAKF,EAAKzS,IAAI+G,OAAOF,QAC7C,CAACE,EAAOnD,K,MACJ,MAAMgP,GAAYrL,EAAAkL,EAAK1L,MAAMC,MACxB8J,GAAMA,EAAE7J,OAAOC,OAAStD,OAC5B,MAAA2D,SAAA,SAAAA,EAAET,KAEH,IAAIuC,EAAauJ,IAAS,MAATA,SAAS,SAATA,EAAWvJ,MAE5B,IAAIuJ,IAAS,MAATA,SAAS,SAATA,EAAWxH,SAAUtJ,EAAYa,MAAO,CACxC0G,EAAQwJ,KAAKC,UACT9R,EAAAL,KAAIM,EAAA,IAAA8R,IAAqB/O,KAAzBrD,KACIiS,EAAUtP,KAAKA,KACfM,G,CAKZ,OAAAuG,OAAAC,OAAAD,OAAAC,OAAA,GACOrD,GAAK,CACRnD,CAACA,GAAGuG,OAAAC,OAAAD,OAAAC,OAAA,GACGqI,EAAKzS,IAAI+G,MAAMnD,IAAI,CACtByF,QACA2J,IAAKJ,IAAS,MAATA,SAAS,SAATA,EAAWI,OAAG,GAI/B,IAGJ,MAAO,CACH1B,QAAS,IACFhO,EAAKgO,WACLmB,EAAK1L,MAAMxD,KAAKuD,GAASA,EAAKG,UAErCkK,KAAM,IACC7N,EAAK6N,KACR,CACIpK,MAAO2L,EACPvL,OAAQsL,EAAKzS,IAAImH,SAG5B,GAEL,CACImK,QAAS,GACTH,KAAM,IAGlB,EAACa,GAAA,SAAAA,EAGGlL,EACA5G,EACAiH,GAEA,IAAKL,EAAM,CACP,OAAO,I,CAGX,MAAMmM,EAAUnM,EAAKmM,QACrB,IAAIC,EACJ,GAAI/L,IAAM,MAANA,SAAM,SAANA,EAAQO,SAAU,CAClBwL,EAAa,I,KACV,CACHA,EAAahT,EAAIqJ,K,CAErB,MAAM4J,EAAerM,EAAKuC,MAC1B,MAAM0D,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QAAQnG,EAAMA,EAAKsE,OAE1D,MAAMgI,EAAiB,IAAIrS,IAA+B,CACtD,CAACS,EAAWC,aAAcT,EAAAL,KAAIM,EAAA,IAAAoS,IAAmBlS,KAAKR,OACtD,CAACa,EAAWa,YAAarB,EAAAL,KAAIM,EAAA,IAAAqS,IAAanS,KAAKR,OAC/C,CAACa,EAAW+R,MAAOvS,EAAAL,KAAIM,EAAA,IAAAuS,IAAarS,KAAKR,OACzC,CAACa,EAAWO,KAAMf,EAAAL,KAAIM,EAAA,IAAAwS,IAAatS,KAAKR,OACxC,CAACa,EAAWkS,SAAU1S,EAAAL,KAAIM,EAAA,IAAA0S,IAAaxS,KAAKR,OAC5C,CAACa,EAAWoS,aAAc5S,EAAAL,KAAIM,EAAA,IAAA4S,IAAa1S,KAAKR,OAChD,CAACa,EAAWG,SAAUX,EAAAL,KAAIM,EAAA,IAAAoS,IAAmBlS,KAAKR,OAClD,CAACa,EAAWe,OAAQvB,EAAAL,KAAIM,EAAA,IAAA6S,IAAa3S,KAAKR,OAC1C,CAACa,EAAWE,mBAAoBV,EAAAL,KAAIM,EAAA,IAAAwS,IAAatS,KAAKR,OACtD,CAACa,EAAWI,eAAgBZ,EAAAL,KAAIM,EAAA,IAAAwS,IAAatS,KAAKR,OAClD,CAACa,EAAWuS,OAAQ/S,EAAAL,KAAIM,EAAA,IAAA+S,IAAgB7S,KAAKR,OAC7C,CAACa,EAAWQ,KAAMhB,EAAAL,KAAIM,EAAA,IAAAgT,IAAc9S,KAAKR,OACzC,CAACa,EAAW0S,OAAQlT,EAAAL,KAAIM,EAAA,IAAAkT,IAAgBhT,KAAKR,OAC7C,CAACa,EAAW0L,MAAOlM,EAAAL,KAAIM,EAAA,IAAAmT,IAAajT,KAAKR,OACzC,CAACa,EAAW6S,OAAQrT,EAAAL,KAAIM,EAAA,IAAAqT,IAAanT,KAAKR,OAC1C,CAACa,EAAW+S,OAAQvT,EAAAL,KAAIM,EAAA,IAAAuT,IAAarT,KAAKR,OAC1C,CAACa,EAAWmB,MAAO3B,EAAAL,KAAIM,EAAA,IAAAwT,IAAmBtT,KAAKR,OAC/C,CAACa,EAAWS,KAAMjB,EAAAL,KAAIM,EAAA,IAAAyT,IAAcvT,KAAKR,SAG7C,MAAMgU,EAAUvB,EAAejI,IAAI4B,GAEnC,OAAO4H,EACDA,EAAQ1B,EAASC,EAAYC,EAAcrM,EAAM5G,EAAIgH,MACrD,IACV,EAACyK,GAAA,SAAAA,EAES7K,EAAyB5G,GAC/B,MAAM6M,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QAAQnG,EAAMA,EAAKsE,OAE1D,IAAKtE,EAAK0E,SAAU,CAChB,OAAO,I,CAGX,GAAIuB,IAAavL,EAAWO,KAAM,CAC9B,MAAO,CACH6S,aAAc,KACdhK,MAAO1K,EAAIqJ,MACX0I,UAAWnL,EAAK0E,SAChBtG,GAAIhF,EAAIgH,KACR2N,UAAW,M,CAInB,GACI9H,IAAavL,EAAWE,oBACxBqL,IAAavL,EAAWI,eAC1B,CACE,OAAAuI,OAAAC,OAAAD,OAAAC,OAAA,GACOpJ,EAAAL,KAAIM,EAAA,IAAAoS,IAAkBrP,KAAtBrD,KACCmG,EAAKmM,QACL/S,EAAIqJ,MACJ,KACAzC,EACA5G,EAAIgH,OACP,CACD4N,iBAAkB,KAClBnL,MAAO,GACPc,MAAO,CAAEyD,MAAO,QAChB+D,UAAWnL,EAAK0E,SAChBtG,GAAIhF,EAAIgH,M,CAIhB,OAAO,IACX,EAACuM,GAAA,SAAAA,EAGGsB,EACAC,EACA7B,EACArM,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACEpU,EAAAL,KAAIM,EAAA,IAAAoU,IAAkBrR,KAAtBrD,KAAuBmG,EAAM5B,E,CAGjC,OAAOoQ,EAAWnC,EACtB,EAACK,GAAA,SAAAA,IAIG,MAAO,CACHlQ,KAAM,CACFiS,MAAO,OACPC,YAAa,CACTnM,MAAO,SAEXnE,GAAI,eACJ2G,OAAQ,eACR4J,MAAO,QAGnB,EAACnC,GAAA,SAAAA,EAGGyB,EACAC,EACAU,EACA5O,EACA5B,G,YAEA4B,EAAKxD,KAAOwD,EAAKxD,MAAQ,GAEzBwD,EAAKxD,KAAKqS,QAAU,KAChB3U,EAAAL,KAAIM,EAAA,IAAA+K,IAAuBhI,KAA3BrD,KAA4BmG,EAAM5B,EAAG,EAGzC,KAAIqC,EAAAT,EAAKxD,QAAI,MAAAiE,SAAA,SAAAA,EAAEqO,iBAAgBtM,EAAAxC,EAAKxD,QAAI,MAAAgG,SAAA,SAAAA,EAAE2I,UAAU,CAChDjR,EAAAL,KAAIqC,EAAA,KAAeuJ,MAAK2E,EAAApK,EAAKxD,QAAI,MAAA4N,SAAA,SAAAA,EAAE0E,aACnC5U,EAAAL,KAAIF,EAAA,KAAaoD,YAAYc,UACzB0M,EAAAvK,EAAKxD,QAAI,MAAA+N,SAAA,SAAAA,EAAEuE,YACX9O,EAAKxD,KAAKqS,QAAQxU,KAAKR,M,CAI/B,OAAAwJ,OAAAC,OAAA,CACIQ,MAAO9D,EAAKuC,MACZwM,IAAK/O,EAAK+O,KACP/O,EAAKxD,KAEhB,EAAC+P,GAAA,SAAAA,EAGGyC,EACA5C,EACAC,EACArM,EACA5B,G,QAEA,MAAM6Q,EAAiBC,EAAiB7C,EAAcD,EAAY,IAElE,GAAIpM,EAAK+O,IAAK,CACV,MAAM9I,EAAW1M,GAAI2M,QAAQ1J,KAAKwD,KAAKmG,QAAQnG,EAAMA,EAAKsE,OAE1D,MAAM6K,EAAUjV,EAAAL,KAAIY,EAAA,KAAa4J,IAAI4B,GAErC,IAAKkJ,EAAS,CACV,M,CAGJA,EAAQ1S,KAAK2S,IACT,MAAMzS,EACFsG,IAEA/I,EAAAL,KAAIM,EAAA,IAAAkV,IAA8BnS,KAAlCrD,KACIoJ,EAAEkC,OACFnF,EAAK+O,IACLE,EACA7Q,EACAiO,EACH,EAELxS,KAAK+C,YAAY4I,iBAAiB4J,EAAQzS,GAC1CzC,EAAAL,KAAIuB,EAAA,KAAYqK,KAAK,CACjB/I,MAAO0S,EACPzS,WACF,G,MAEH,GAAIqS,EAAY,CACnBC,EAAezS,KAAK,YAAYA,KAC5BtC,EAAAL,KAAIM,EAAA,IAAAmV,IAAyBpS,KAA7BrD,KAA8BmV,EAAY3C,E,CAGlD,KACI5L,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACEpU,EAAAL,KAAIM,EAAA,IAAAoU,IAAkBrR,KAAtBrD,KAAuBmG,EAAM5B,E,CAGjC,OAAO6Q,CACX,EAACpC,GAAA,SAAAA,EAGGoB,EACA7B,EACAC,EACArM,EACA5B,G,QAEA,IAAI5B,EAAO+S,EAAWlD,EAAcD,GAEpC,KACI3L,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACE,OAAAjL,OAAAC,OAAAD,OAAAC,OAAA,GACO9G,GAAI,CACPgT,OAAQ,KACJtV,EAAAL,KAAIM,EAAA,IAAAsV,IAAiBvS,KAArBrD,KAAsBmG,EAAM5B,EAAG,G,CAK3C,OAAO5B,CACX,EAACuQ,GAAA,SAAAA,EAGGkB,EACA7B,EACAwC,GAEA,MAAO,CACHpS,KAAM,CACF,iBAAkB,CACdsH,MAAOsI,IAIvB,EAACY,GAAA,SAAAA,EAGGiB,EACAC,EACA7B,GAEA,MAAO,CACHqD,aAAcrD,EAEtB,EAACmB,GAAA,SAAAA,EAGGS,EACA7B,EACAwC,EACA5O,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACE,MAAO,CACHxK,MAAOsI,EACPoD,OAAQ,KACJtV,EAAAL,KAAIM,EAAA,IAAAsV,IAAiBvS,KAArBrD,KAAsBmG,EAAM5B,EAAG,E,CAI3C,MAAO,CAAE0F,MAAOsI,EACpB,EAACkB,GAAA,SAAAA,EAGGnB,EACA+B,EACA7B,EACArM,EACA5B,G,QAEA,IAAI5B,EAAOmT,EAAWtD,EAAcF,GAEpC,KACI1L,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACE,OAAAjL,OAAAC,OAAAD,OAAAC,OAAA,GACO9G,GAAI,CACPgT,OAAQ,KACJtV,EAAAL,KAAIM,EAAA,IAAAsV,IAAiBvS,KAArBrD,KAAsBmG,EAAM5B,EAAG,G,CAK3C,OAAO5B,CACX,EAACkR,GAAA,SAAAA,EAGGO,EACA7B,EACAC,GAEA,OAAOuD,EAAWvD,EAAcD,EACpC,EAACe,GAAA,SAAAA,EAGGc,EACA7B,EACAC,EACArM,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACEpU,EAAAL,KAAIM,EAAA,IAAAoU,IAAkBrR,KAAtBrD,KAAuBmG,EAAM5B,E,CAGjC,MAAO,CACH5B,KAAM,CACF,iBAAkB,CACdsH,MAAOsI,IAGfsD,aAAcrD,EAEtB,EAACgB,GAAA,SAAAA,EAGGY,EACA7B,EACAC,EACArM,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACE,MAAO,CACHoB,aAAcrD,GAAgB,GAC9BvI,MAAOsI,GAAc,IACrB7J,MAAO8J,GAAgB,GACvBmD,OAAQ,KACJtV,EAAAL,KAAIM,EAAA,IAAAsV,IAAiBvS,KAArBrD,KAAsBmG,EAAM5B,EAAG,E,CAK3C,MAAO,CACHsR,aAAcrD,GAAgB,GAC9BvI,MAAOsI,GAAc,IACrB7J,MAAO8J,GAAgB,GAE/B,EAACuB,GAAA,SAAAA,EAGGK,EACA7B,EACAwC,EACA5O,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACEpU,EAAAL,KAAIM,EAAA,IAAAoU,IAAkBrR,KAAtBrD,KAAuBmG,EAAM5B,E,CAEjC,MAAO,CACH5B,KAAM,CACF,iBAAkB,CACdsH,MAAOsI,IAIvB,EAACc,GAAA,SAAAA,EAGGe,EACA7B,EACAwC,EACA5O,EACA5B,G,QAEA,KACIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,gBACpB5L,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBrO,EAAKsO,UACP,CACE,MAAO,CACHxK,MAAOsI,EACPoD,OAAQ,KACJtV,EAAAL,KAAIM,EAAA,IAAAsV,IAAiBvS,KAArBrD,KAAsBmG,EAAM5B,EAAG,E,CAI3C,MAAO,CAAE0F,MAAOsI,EACpB,EAACuB,GAAA,SAAAA,EAGGkC,EACA3B,EACA4B,EACA9P,EACA5B,GAEA,IACI,IAAI5B,EAAOuP,KAAKgE,MAAM/P,EAAKuC,OAE3B,IAAK/F,EAAM,CACPtC,EAAAL,KAAIF,EAAA,KAAa+D,MAAMsS,WACnBnW,KACA,mBAAmBuE,UACnB6R,EAAiBC,SAErB,OAAO,I,CAGX,GAAK1T,EAAakG,OAAS,iBAAkB,CACzCxI,EAAAL,KAAIF,EAAA,KAAa+D,MAAMsS,WACnBnW,KACA,6BAA6BuE,oDAC7B6R,EAAiBE,OAErB,OAAO,I,CAGX,MAAO,CACH3T,KAAM,CACFgO,QAAShO,EAAKgO,QAAQ/N,KAAKrD,GAAGiK,OAAAC,OAAAD,OAAAC,OAAA,GACvBlK,GAAG,CACN8S,IAAK1P,EAAK6N,KAAK,GAAGpK,MAAM7G,EAAIgH,MAAM8L,QAEtC7B,KAAM7N,EAAK6N,KAAK5N,KAAKvD,GAAGmK,OAAAC,OAAAD,OAAAC,OAAA,GACjBpK,GAAG,CACN+G,MAAOoD,OAAOwI,KAAK3S,EAAI+G,OAAOF,QAAO,CAACC,EAAMlD,KACxC,MAAMqD,EAAS3D,EAAKgO,QAAQtK,MACvB9G,GAAQA,EAAIgH,OAAStD,IAE1B,OAAAuG,OAAAC,OAAAD,OAAAC,OAAA,GACOtD,GAAI,CACPlD,CAACA,GAAGuG,OAAAC,OAAAD,OAAAC,OAAA,GACGpK,EAAI+G,MAAMnD,IAAI,CACjBN,KAAI6G,OAAAC,OAAAD,OAAAC,OAAA,GACGpJ,EAAAL,KAAIM,EAAA,IAAA+Q,IAAShO,KAAbrD,KACCX,EAAI+G,MAAMnD,GACVqD,IACH,CACDgL,SACIjS,EAAI+G,MAAMnD,GAAK4H,WAAa,MAChCtG,GAAI+B,EAAO/B,QAAE,GAI1B,S,CAIjB,MAAO6E,GACL/I,EAAAL,KAAIF,EAAA,KAAa+D,MAAMsS,WACnBnW,KACA,qBAAqBuE,2CACrB6R,EAAiBE,OAErB,OAAO,I,CAEf,EAAClE,GAAA,SAAAA,EAGGmE,EACArL,GAEA,MAAMsL,EAAOhN,OAAAC,OAAAD,OAAAC,OAAA,GACN8M,GAAU,CACb/F,KAAM+F,EAAW/F,KAAK5N,KAAKvD,GAAGmK,OAAAC,OAAAD,OAAAC,OAAA,GAAWpK,GAAG,CAAE+G,MAAO,SAGzD,MAAMqQ,EAAiBF,EAAW5F,QAC7BvD,QAAQ7N,GAAQA,EAAIuM,aACpBlJ,KAAKrD,GAAQA,EAAIgH,OAEtB,IAAKkQ,EAAexX,OAAQ,CACxB,OAAOuX,C,CAGX,IACI,MAAME,EAAmBxE,KAAKgE,MAC1B7V,EAAAL,KAAIW,EAAA,KAAe6P,KAAK,GAAGpK,MAAM8E,GAAQxC,OAG7C8N,EAAQhG,KAAO+F,EAAW/F,KAAK5N,KAAI,CAACvD,EAAKiP,IACrCmI,EAAevQ,QACX,CAACyQ,EAAYC,KACT,MAAMC,EACFH,EAAiBlG,KAAKlC,GAAGlI,MAAMwQ,IAC/BvX,EAAI+G,MAAMwQ,GAAOlO,QACbgO,EAAiBlG,KAAKlC,GAAGlI,MAAMwQ,GAAOlO,MAE9C,GAAImO,EAAS,CACT,OAAArN,OAAAC,OAAAD,OAAAC,OAAA,GACOiN,EAAiBlG,KAAKlC,IAAE,CAC3BlI,MAAKoD,OAAAC,OAAAD,OAAAC,OAAA,GACEkN,EAAWvQ,OAAK,CACnBwQ,CAACA,GAAKpN,OAAAC,OAAAD,OAAAC,OAAA,GACCiN,EAAiBlG,KAAKlC,GAAGlI,MACxBwQ,IACH,CACDlO,MAAOrJ,EAAI+G,MAAMwQ,GAAOlO,W,CAMxC,OAAAc,OAAAC,OAAAD,OAAAC,OAAA,GACOiN,EAAiBlG,KAAKlC,IAAE,CAC3BlI,MAAOuQ,EAAWvQ,OAAK,GAE9BoD,OAAAC,OAAAD,OAAAC,OAAA,GACIiN,EAAiBlG,KAAKlC,IAAE,CAAElI,MAAO,QAI9C,OAAOoQ,C,CACT,MAAOpN,GACL,OAAOoN,C,CAEf,EAACf,GAAA,SAAAA,EAEwBnD,EAAcE,GACnC,MAAMwB,EAAU3T,EAAAL,KAAIG,EAAA,KAAoBqK,IAAI8H,EAAQzJ,MAEpD,GAAImL,EAAS,CACT,OAAOA,EAAQ1B,EAASE,E,KACrB,CACH,OAAOF,EAAQ1P,KAAKkU,IAAM,CACtBpO,MAAOoO,EAAO7M,MACd1F,GAAIuS,EAAOvS,GACXwS,SAAUvE,IAAiBsE,EAAOvS,M,CAG9C,EAAChE,GAAA,SAAAA,EAGG+R,EACAE,GAEA,OAAOF,EAAQrC,SAASrN,KAAKoU,I,MAAU,OACnCzS,GAAIyS,EAAM1P,QAAQ2P,OAClBvO,MAAOsO,EAAM1P,QAAQ4P,MACrBH,SAAUvE,IAAiBwE,EAAM1P,QAAQ2P,OACzChH,WAAUrJ,EAAAoQ,EAAM/G,YAAQ,MAAArJ,SAAA,SAAAA,EAAE3H,QACpBoB,EAAAL,KAAIM,EAAA,IAAAC,GAAwB8C,KAA5BrD,KAA6BgX,EAAOxE,GACpC,GACT,GACL,EAAC/R,GAAA,SAAAA,EAGG6R,EACAE,GAEA,OAAOF,EAAQrC,SAASrN,KAAKoU,I,MAAU,OACnCzS,GAAIyS,EAAM3E,IAAI8E,EACdzO,MAAOsO,EAAMtO,MACbqO,SAAUvE,IAAiBwE,EAAM3E,IAAI8E,EACrClH,WAAUrJ,EAAAoQ,EAAM/G,YAAQ,MAAArJ,SAAA,SAAAA,EAAE3H,QACpBoB,EAAAL,KAAIM,EAAA,IAAAG,GAAgC4C,KAApCrD,KAAqCgX,EAAOxE,GAC5C,GACT,GACL,EAAC9R,GAAA,SAAAA,EAEoB4R,EAAcE,GAC/B,OAAOF,EAAQ9B,KAAK5N,KAAKvD,I,MACrB,MAAM+G,EAAQ/G,EAAI+X,QAAU/X,EAAI+G,MAChC,MAAO7B,EAAImE,GAASc,OAAOwI,KAAK5L,GAEhC,MAAO,CACH7B,GAAI6B,EAAM7B,GAAImE,MACdA,QAAO9B,EAAAR,EAAMsC,MAAM,MAAA9B,SAAA,SAAAA,EAAE8B,QAAStC,EAAM7B,GAAImE,MACxCqO,SAAUvE,IAAiBpM,EAAM7B,GAAImE,MACxC,GAET,EAAC0H,GAAA,SAAAA,EAEejK,GACZ,GACIA,EAAKxD,OACJwD,EAAKxD,KAAKsS,aACX5U,EAAAL,KAAIF,EAAA,KAAauX,QAAQC,QAAQnR,EAAKkM,IAAMlM,EAAKkM,IAAM,IACzD,CACElM,EAAKxD,KAAKsS,YAAcpW,EAAsBsH,EAAKkM,IAAI8E,E,CAG3D,MAAM9G,EAAU7G,OAAAC,OAAAD,OAAAC,OAAA,GACTtD,GAAI,CACPxD,KAAMtC,EAAAL,KAAIM,EAAA,IAAAqS,IAAYtP,KAAhBrD,KAAiB,KAAM,KAAMmG,EAAKuC,MAAOvC,EAAMA,EAAKkM,IAAI8E,GAC9D5S,GAAI4B,EAAKkM,IAAI8E,IAEjB,OAAO9G,CACX,EAACmF,GAAA,SAAAA,EAGGlK,EACA4J,EACAvS,EACA4B,EACAiO,GAEA,GACIlH,EAAO/G,KAAOA,GACb+G,EAA4CiM,OAAS,MACxD,CACE,M,CAEJvX,KAAKwX,eACDtC,EACA5J,EAAOmM,WACPpX,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,MACAsL,EAAO/G,IACTmT,MAAMpF,I,MACJ3P,EAAKA,KAAK,YAAYA,MAClBiE,EAAAvG,EAAAL,KAAIM,EAAA,IAAAmV,IAAyBpS,KAA7BrD,KAA8BsS,EAASE,MAAa,MAAA5L,SAAA,EAAAA,EAAI,GAC5D0E,EAAOhH,KAAKd,SAAS,GAE7B,EAACoS,GAED+B,eAAA/B,EAAuBzP,EAAyB5B,G,QAC5C,MAAMqT,EAAWvX,EAAAL,KAAIM,EAAA,IAAAuX,GAASxU,KAAbrD,KAAcuE,GAG/B,GAAI4B,EAAKsO,UAAW,CAChBpU,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KACIuE,EACAqT,EAASlP,MAEH,KAEArI,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UACtBC,EAAmBqS,iBAIjC,IAAKH,EAASlP,MAAO,CACjB,M,MAED,CACHrI,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KAAmBuE,EAAI,K,CAI3B,KAAIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,cAAeqD,EAASlP,MAAO,CACnD,MAAMsP,MAAEA,SAAgBhY,KAAKiY,sBAAsB,CAC/C5F,IAAKlM,EAAKkM,IACV6F,aAAc7X,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,MACdkV,IAAK/O,EAAK+O,MAEd,GAAI8C,EAAO,CACP3X,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KAAmBuE,EAAI,K,KACpB,CACHlE,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KACIuE,EACAlE,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UACtBC,EAAmByS,gBAG3B,M,EAIR,KAAIxP,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBAAoBnU,EAAAL,KAAIM,EAAA,IAAA8X,IAAkB/U,KAAtBrD,MAA0B,CAClEA,KAAKqY,wBACD,CACI9O,OAAMC,OAAAC,OAAA,GAAOpJ,EAAAL,KAAIW,EAAA,MACjB+I,MAAOrJ,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,OAEXuE,E,CAGZ,EAACmQ,GAAA,SAAAA,EAEiBvO,EAAyB5B,GACvC,MAAMgR,EAASlV,EAAAL,KAAIkB,EAAA,KAAiBsJ,IAAIrE,EAAKsE,OAC7C,IAAK8K,EAAQ,CACT,M,CAGJ,MAAMzS,EAAU6U,MAAOvO,I,QACnB,MAAMwO,EAAWvX,EAAAL,KAAIM,EAAA,IAAAuX,GAASxU,KAAbrD,KAAcuE,GAE/B,GAAI6E,EAAEkC,OAAO/G,KAAOA,EAAI,CACpB,M,CAIJ,GAAI4B,EAAKsO,UAAW,CAChBpU,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KACIuE,EACAqT,EAASlP,MAEH,KAEArI,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UACtBC,EAAmBqS,iBAIjC,IAAK3O,EAAEkC,OAAO5C,MAAO,CACjB,M,MAED,CACHrI,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KAAmBuE,EAAI,K,CAI3B,KAAIqC,EAAAT,EAAKmO,iBAAa,MAAA1N,SAAA,SAAAA,EAAE2N,cAAenL,EAAEkC,OAAO5C,MAAO,CACnD,MAAMsP,MAAEA,SAAgBhY,KAAKiY,sBAAsB,CAC/C5F,IAAKlM,EAAKkM,IACV6F,aAAc7X,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,MACdkV,IAAK/O,EAAK+O,MAGd7U,EAAAL,KAAIM,EAAA,IAAAwX,IAAczU,KAAlBrD,KACIuE,EACAyT,EAEM,KAEA3X,EAAAL,KAAIF,EAAA,KAAaiE,SAAS0B,UACtBC,EAAmByS,gBAGjC,IAAKH,EAAO,CACR,M,EAIR,KACIrP,EAAAxC,EAAKmO,iBAAa,MAAA3L,SAAA,SAAAA,EAAE6L,mBACpBnU,EAAAL,KAAIM,EAAA,IAAA8X,IAAkB/U,KAAtBrD,MACF,CACEA,KAAKqY,wBACD,CACI9O,OAAMC,OAAAC,OAAA,GAAOpJ,EAAAL,KAAIW,EAAA,MACjB+I,MAAOrJ,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,OAEXuE,E,GAIZvE,KAAK+C,YAAY4I,iBAAiB4J,EAAQzS,GAC1CzC,EAAAL,KAAIuB,EAAA,KAAYqK,KAAK,CACjB/I,MAAO0S,EACPzS,WAER,EAACgV,GAAA,SAAAA,EAEavT,EAAYoK,GACtB3O,KAAKsF,gBAAkBtF,KAAKsF,gBAAgB1C,KAAKuD,GAAIqD,OAAAC,OAAAD,OAAAC,OAAA,GAC9CtD,GAAI,CACPC,MAAOD,EAAKC,MAAMxD,KAAI,EAAGuD,OAAMG,aAC3B,MAAM3D,EACF2D,EAAOC,OAAShC,E,+BAEH4B,EAAKxD,MAAI,CACZgM,UAEJxI,EAAKxD,KACf,MAAO,CACH2D,SACAH,KAAIqD,OAAAC,OAAAD,OAAAC,OAAA,GACGtD,GAAI,CACPxD,SAEP,OAGb,EAACyV,GAAA,SAAAA,IAGG,OAAOpY,KAAKsF,gBAAgBqC,MAAK,EAAGvB,QAAO/G,SACvC+G,EAAMuB,MACF,EAAGxB,OAAMG,QAAUC,WACfJ,EAAKuC,QAAUrJ,EAAI+G,MAAMG,GAAMmC,SAG/C,EAAC2C,GAAA,SAAAA,EAEsBlF,EAAyB5B,GAC5C4B,EAAK+O,IACClV,KAAKsY,yBAAyB,CAC1BpD,IAAK/O,EAAK+O,IACVhK,OAAQ3G,EACR2T,aAAc7X,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,QAElBA,KAAKsJ,SAAS,CACVZ,MAAO,CACHa,OAAMC,OAAAC,OAAA,GAAOpJ,EAAAL,KAAIW,EAAA,MACjB+I,MAAOrJ,EAAAL,KAAIM,EAAA,IAAAqJ,IAAiBtG,KAArBrD,OAEXmG,KAAM5B,GAEpB,EAACgU,GAAA,SAAAA,EAGGC,EACAC,GAEA,MAAMC,EAAQF,EAAKnS,MAAMsS,IAAC,IAAA/R,EAAK,OAAAA,EAAA+R,EAAEC,aAAS,MAAAhS,SAAA,SAAAA,EAAEiS,SAAS,SAAS,IAC9D,GAAIH,GAAS,KAAM,CACf,M,CAGJ,MAAM/U,EAAQ+U,EAAM,wBACpB,MAAMI,EAAanV,EAAM2C,OAAOC,KAEhC,IAAIwS,EAASL,EACb,IAAIvS,EAAOnG,KAAK2C,KAAK6N,KAAK,GAAGpK,MAAM0S,GACnC,IAAIxS,EAAStG,KAAK2C,KAAKgO,QAAQtK,MAAM8J,GAAMA,EAAE5J,MAAQuS,IAErD,MAAO,CACHC,SACA5S,OACAG,SACAmS,gBAER,EAACO,GAAA,SAAAA,EAEmB5P,GAChB,MAAM6P,EAAY5Y,EAAAL,KAAIF,EAAA,KAAaoZ,aAC/B9P,EAAEsI,OACF1R,KAAK+C,aAGT,OAAO1C,EAAAL,KAAIM,EAAA,IAAAiY,IAAiBlV,KAArBrD,KAAsBiZ,EAAW7P,EAC5C,EAACjF,GAAA,SAAAA,IAGG9D,EAAAL,KAAIF,EAAA,KAAaqZ,SAASC,gBAAgBC,IAAIhZ,EAAAL,KAAIE,EAAA,MAElD,MAAMoZ,EAASlQ,IACX,GAAIA,EAAEmQ,QAAU,EAAG,CACf,MAAMC,EAAUnZ,EAAAL,KAAIM,EAAA,IAAA0Y,IAAoB3V,KAAxBrD,KAAyBoJ,GAEzC,GAAIoQ,EAAS,CACTxZ,KAAKyZ,wBAAwBpV,KAAK,CAC9BC,KAAMtE,KACNuE,GAAIvE,KAAK+C,YAAYwB,GACrBiV,W,IAMhBnZ,EAAAL,KAAIF,EAAA,KAAaqZ,SAASO,GACtBrZ,EAAAL,KAAIE,EAAA,KACJyZ,EAAqBC,IACrBN,EAER,EAACxU,GAAA,SAAAA,EAEqBH,GAElB,MAAMkV,EAAOlV,EAAKuM,cAAc,QAChC,MAAM4I,EAAmBD,IAAI,MAAJA,SAAI,SAAJA,EAAM3I,cAA2B,oBAE1D,IAAK2I,IAASC,EAAkB,OAEhC,MAAMC,EAAa1Z,EAAAL,KAAIM,EAAA,IAAA0Z,IAAgB3W,KAApBrD,KAAqB8Z,GACxC,GAAIC,EAAY,CACZE,YAAW,IAAMF,EAAWG,SAAS,I,CAE7C,EAACF,GAAA,SAAAA,EAEeG,GACZ,MAAMC,EAAcD,EAAQjJ,cAAgC,SAC5D,GAAIkJ,EAAa,OAAOA,EAExB,MAAMC,EAAiBF,aAAmBG,YACpCH,EAAQnV,iBAA8B,KACtC,GACN,IAAK,MAAMuV,KAAQ3I,MAAM4I,KAAKH,GAAiB,CAC3C,GAAIE,EAAK3V,WAAY,CACjB,MAAM6V,EAAcF,EAAK3V,WAAWsM,cAAc,SAClD,GAAIuJ,EAAa,OAAOA,C,EAIhC,OAAO,IACX,E","ignoreList":[]}
|