@lax-wp/design-system 0.13.38 → 0.13.39-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),re=require("../../validateCell.cjs.js"),H=require("../../../../../constants/table.cjs.js"),ae=require("../../../../forms/date-time-field/DateTimeField.cjs.js"),ne=require("../../../../forms/select-field/SelectField.cjs.js"),oe=require("../../../../forms/toggle/Toggle.cjs.js"),ue=require("@mui/icons-material"),le=require("../../../../../_virtual/index.cjs.js"),d=require("react"),ie=require("../../context.cjs.js"),se=require("./InlineCurrencyField.cjs.js"),ce=require("./MasterDataInlineField.cjs.js"),de=require("../../../../icon/icons.generated.cjs.js"),x=new Map;let w=null,p=null;const F=t=>({target:{value:t}}),me=({cell:t,id:l,inlineEditing:v,cellRef:X,handleCellValueChange:y,registerValidation:I})=>{const{openMasterDataModal:J,selectedMasterData:k,clearSelectedMasterData:Y,getCurrencyForCell:N,getPendingEdit:M,addPendingEdit:f,onFieldOperationFlow:R,fieldOperationLoading:U}=d.useContext(ie.TableContext),Q=U===`${l}-${t?.column?.id}`,E=!!U,b=d.useCallback((a,u)=>{R&&R({value:a,fieldId:t?.column?.id,rowId:String(l),rowData:t?.row?.original,columnKey:t?.column?.key||"",flowName:t?.column?.live_field_source,isLiveField:t?.column?.is_live_field,meta:u})},[t?.column?.id,t?.column?.is_live_field,t?.column?.key,t?.column?.live_field_source,t?.row?.original,l,R]),V=()=>{const a=t?.row?.original?.__rawData,u=t?.column?.Header,r=t?.column?.key,e=u?a?.[u]?.currency_code:void 0,n=r?a?.[r]?.currency_code:void 0;return e&&e!==""?e:n&&n!==""?n:t?.column?.currencyCode||"USD"},o=t.column.key||"",_=`${l}-${o}`,W=N?.(_),z=M?.(String(l),o),[c,h]=d.useState({value:z?.value!==void 0?z.value:t.value||"",currencyCode:z?.meta?.currency_code||W||V()}),[K,D]=d.useState(null),Z=(()=>{if(v!==o)return null;const a=typeof c.value=="number"?String(c.value):c.value,u=re.validateCellValue(a,t?.column);return u.isValid?null:u.error||null})(),ee=M?.(String(l),o)?.validationError,L=K||Z||ee||null,B=d.useRef(null);d.useEffect(()=>{if(v===o&&B.current!==o){const u=N?.(`${l}-${o}`),r=M?.(String(l),o),e=r?.value!==void 0?r.value:t.value||"",n=r?.meta?.currency_code||u||V();h({value:e,currencyCode:n})}v!==o&&B.current===o&&D(null),B.current=v},[v,o,N,M,l,t.value]),d.useEffect(()=>{k&&v===o&&t?.column?.masterDataColumnName&&t?.column?.masterDataName&&(f&&f(String(l),o,{value:k.value,meta:{reference:k.reference},originalValue:t.value}),y(F(k.value)),b(k.value,{reference:k.reference}),Y?.())},[k,v,o,t?.column?.masterDataColumnName,t?.column?.masterDataName,f,l,t.value,y,b,Y]);const g=a=>t?.column?.is_required&&(a==null||a===""||typeof a=="string"&&a.trim()==="")?(D("Field required"),!1):(D(null),!0),A=a=>g(a)?a&&a.trim()!==""&&!H.REGEX.url.test(a)?(D("Invalid URL format"),!1):(D(null),!0):!1,O=a=>g(a)?a&&a.trim()!==""&&!H.REGEX.email.test(a)?(D("Email is not valid"),!1):(D(null),!0):!1,m=d.useRef(c);d.useEffect(()=>{m.current=c},[c]);const j=d.useRef(null),i=`${l}-${o}`;d.useLayoutEffect(()=>{const a=j.current;if(!a)return;const u=x.get(i);if(u){a.focus();try{a.setSelectionRange(u.start,u.end)}catch{}}else w!==i&&a.focus()},[i]);const S=d.useRef();d.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);const P=d.useCallback(a=>{y(F(a)),f&&f(String(l),o,{value:a,originalValue:t.value})},[y,f,l,o,t.value]),T=d.useCallback(a=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{P(a)},300)},[P]),q=d.useCallback(()=>{S.current&&(clearTimeout(S.current),S.current=void 0,P(String(m.current.value??"")))},[P]),$=d.useCallback(()=>{const a=t?.column?.type?.toLowerCase(),u=m.current.value;switch(a){case"url":A(String(u??""));break;case"e-mail":O(String(u??""));break;default:g(u);break}},[t?.column?.type]),G=d.useCallback(()=>{const a=t?.column?.type?.toLowerCase(),u=m.current.value,r=m.current.currencyCode;let e=!0;switch(a){case"url":e=A(String(u??""));break;case"e-mail":e=O(String(u??""));break;default:e=g(u);break}if(!e)return{isValid:!1};let n=null;return a==="currency"&&(n={currency_code:N?.(_)||r}),{isValid:!0,value:typeof u=="number"?String(u):u,meta:n}},[t?.column?.type,_,N]);d.useEffect(()=>{I&&v===o&&I(G)},[I,G,v,o]);const te=()=>{if(t?.column?.is_master_data&&t?.column?.masterDataName&&(t?.column?.masterDataColumnName||t?.column?.masterDataFormula)){const r=M?.(String(l),o),e=k?.value??r?.value??t.value;return s.jsx("div",{onMouseDown:n=>n.stopPropagation(),className:"z-[120] h-full w-full",children:s.jsx(ce.MasterDataInlineField,{id:`master-data-cell-${l}-${t.column.id}`,value:e,onChange:(n,C)=>{y(F(n)),f&&f(String(l),o,{value:n,meta:{reference:C||null},originalValue:t.value}),b(n,{reference:C||void 0}),g(n??"")},placeholder:t.column?.Header,masterDataName:t.column.masterDataName,masterDataColumnName:t.column.masterDataColumnName,masterDataFormula:t.column.masterDataFormula,masterDataFilters:t.column.masterDataFilters,onOpenMasterDataModal:J,reference:r?.meta?.reference})})}const a=t?.column?.type?.toLowerCase(),u=o?t?.row?.original?.__cellMetadata?.[o]:void 0;switch(a){case"choice":{const r=u?.choices??t?.column?.choices;return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),children:s.jsx(ne.SelectField,{id:`select-cell-${l}-${t.column.id}`,value:c.value||null,selectOptions:r?.map(e=>({label:e,value:e}))||[],onChange:e=>{const n=e?Array.isArray(e)?e[0]?.value?.toString()||"":e?.value?.toString()||"":"";h(C=>({...C,value:n})),y(F(n)),f&&f(String(l),o,{value:n,originalValue:t.value}),b(n),g(n)},allowClear:!0,inputStyles:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},className:"z-[120]"})})}case"datetime":case"date":return s.jsx("div",{onMouseDown:r=>{r.stopPropagation(),r.target.tagName!=="INPUT"&&r.preventDefault()},children:s.jsx(ae.DateTimeField,{id:`date-cell-${l}-${t.column.id}`,value:c.value||void 0,handleOnChange:r=>{const e=r||"";h(n=>({...n,value:e})),y(F(e)),f&&f(String(l),o,{value:e,originalValue:t.value}),b(e),g(e)},showTime:a==="datetime",dateFormat:a==="date"?"MM/DD/YYYY":void 0,className:"z-[120] w-full"})});case"currency":{const r=V();return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),className:"z-[120] h-full w-full",children:s.jsx(se.InlineCurrencyField,{id:_,value:String(c.value??""),onChange:(e,n)=>{h(C=>({value:e,currencyCode:n||C.currencyCode})),y(F(e)),f&&f(String(l),o,{value:e,meta:{currency_code:n},originalValue:t.value,originalMeta:{currency_code:r}}),g(e),b(e,{currency_code:n})},currencyCode:c.currencyCode,inputStyle:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},autoFocus:!0,disabled:E})})}case"percentage":return s.jsxs("label",{className:"relative block h-full",onMouseDown:r=>r.stopPropagation(),children:[s.jsx("input",{ref:j,type:"number",defaultValue:String(c.value??""),onChange:r=>{try{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0})}catch{}const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},className:"border border-gray-300 h-full text-gray-900 dark:bg-black-800 dark:text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-white dark:focus:border-white block w-full px-2.5 py-1.5 font-inter font-medium disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400",id:`percentage-cell-${l}-${t.column.id}`,style:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},autoComplete:"off",disabled:E}),s.jsx("span",{className:"absolute inset-y-0 right-3 flex items-center pointer-events-none h-full dark:text-black-100",children:"%"})]});case"boolean":{const r=c.value===!0||c.value==="true"||c.value==="Yes"||c.value==="True"||c.value===1;return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),className:"h-full w-full flex items-center px-2.5 bg-white dark:bg-black-800 rounded border-2 focus:outline-primary-600 border border-primary-600 dark:border-black-700 z-[120]",children:s.jsx(oe.Toggle,{id:`toggle-cell-${l}-${t.column.id}`,isChecked:r,onChange:e=>{h(n=>({...n,value:e})),y(F(e)),f&&f(String(l),o,{value:e,originalValue:t.value}),b(e)},hideStatus:!1,labelDirection:"right",stopClickPropagation:!0,statusText:r?"Yes":"No"})})}case"url":return s.jsx("input",{ref:j,type:"url",defaultValue:String(c.value??""),onChange:r=>{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0});const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,K?A(e):g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E});case"e-mail":return s.jsx("input",{ref:j,type:"email",defaultValue:String(c.value??""),onChange:r=>{try{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0})}catch{}const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,K?O(e):g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E});default:return s.jsx("input",{ref:j,type:"text",defaultValue:String(c.value??""),onChange:r=>{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0});const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E})}};return s.jsxs("div",{ref:X,className:"relative h-full w-full overflow-visible",children:[s.jsx("div",{className:le("border p-0.5 rounded-lg h-full",L?"border-error-600":"border-neutral-200 dark:border-black-700",E&&"pointer-events-none opacity-70"),children:te()}),!!t?.column?.is_live_field&&s.jsx("div",{className:"absolute -top-1.5 -right-1.5 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-[125]",children:Q?s.jsx(de.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8}):s.jsx(ue.BoltOutlined,{sx:{fontSize:12,color:"var(--color-primary-600)"}})}),L&&s.jsx("div",{className:"absolute top-full left-0 mt-1 text-error-600 text-xs font-medium z-[130] bg-white dark:bg-black-800 px-2 py-1 rounded shadow-lg w-full",children:L})]})};exports.InlineEditField=me;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),re=require("../../validateCell.cjs.js"),H=require("../../../../../constants/table.cjs.js"),ae=require("../../../../forms/date-time-field/DateTimeField.cjs.js"),ne=require("../../../../forms/select-field/SelectField.cjs.js"),oe=require("../../../../forms/toggle/Toggle.cjs.js"),ue=require("@mui/icons-material"),le=require("../../../../../_virtual/index.cjs.js"),d=require("react"),ie=require("../../context.cjs.js"),se=require("./InlineCurrencyField.cjs.js"),ce=require("./MasterDataInlineField.cjs.js"),de=require("../../../../icon/icons.generated.cjs.js"),x=new Map;let w=null,p=null;const F=t=>({target:{value:t}}),me=({cell:t,id:l,inlineEditing:v,cellRef:X,handleCellValueChange:y,registerValidation:I})=>{const{openMasterDataModal:J,selectedMasterData:k,clearSelectedMasterData:Y,getCurrencyForCell:N,getPendingEdit:M,addPendingEdit:f,onFieldOperationFlow:R,fieldOperationLoading:U}=d.useContext(ie.TableContext),Q=U===`${l}-${t?.column?.id}`,E=!!U,b=d.useCallback((a,o)=>{R&&R({value:a,fieldId:t?.column?.id,rowId:String(l),rowData:t?.row?.original,columnKey:t?.column?.key||"",flowName:t?.column?.live_field_source,isLiveField:t?.column?.is_live_field,meta:o})},[t?.column?.id,t?.column?.is_live_field,t?.column?.key,t?.column?.live_field_source,t?.row?.original,l,R]),V=()=>{const a=t?.row?.original?.__rawData,o=t?.column?.Header,r=t?.column?.key,e=o?a?.[o]?.currency_code:void 0,n=r?a?.[r]?.currency_code:void 0;return e&&e!==""?e:n&&n!==""?n:t?.column?.currencyCode||"USD"},u=t.column.key||"",_=`${l}-${u}`,W=N?.(_),z=M?.(String(l),u),[c,h]=d.useState({value:z?.value!==void 0?z.value:t.value||"",currencyCode:z?.meta?.currency_code||W||V()}),[K,D]=d.useState(null),Z=(()=>{if(v!==u)return null;const a=typeof c.value=="number"?String(c.value):c.value,o=re.validateCellValue(a,t?.column);return o.isValid?null:o.error||null})(),ee=M?.(String(l),u)?.validationError,L=K||Z||ee||null,B=d.useRef(null);d.useEffect(()=>{if(v===u&&B.current!==u){const o=N?.(`${l}-${u}`),r=M?.(String(l),u),e=r?.value!==void 0?r.value:t.value||"",n=r?.meta?.currency_code||o||V();h({value:e,currencyCode:n})}v!==u&&B.current===u&&D(null),B.current=v},[v,u,N,M,l,t.value]),d.useEffect(()=>{k&&v===t.column.key&&(t?.column?.masterDataColumnName||t?.column?.masterDataFormula)&&t?.column?.masterDataName&&(f&&f(String(l),u,{value:k.value,meta:{reference:k.reference},originalValue:t.value}),y(F(k.value)),b(k.value,{reference:k.reference}),Y?.())},[k,v,u,t?.column?.masterDataFormula,t?.column?.masterDataColumnName,t?.column?.masterDataName,f,l,t.value,y,b,Y]);const g=a=>t?.column?.is_required&&(a==null||a===""||typeof a=="string"&&a.trim()==="")?(D("Field required"),!1):(D(null),!0),A=a=>g(a)?a&&a.trim()!==""&&!H.REGEX.url.test(a)?(D("Invalid URL format"),!1):(D(null),!0):!1,O=a=>g(a)?a&&a.trim()!==""&&!H.REGEX.email.test(a)?(D("Email is not valid"),!1):(D(null),!0):!1,m=d.useRef(c);d.useEffect(()=>{m.current=c},[c]);const j=d.useRef(null),i=`${l}-${u}`;d.useLayoutEffect(()=>{const a=j.current;if(!a)return;const o=x.get(i);if(o){a.focus();try{a.setSelectionRange(o.start,o.end)}catch{}}else w!==i&&a.focus()},[i]);const S=d.useRef();d.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);const P=d.useCallback(a=>{y(F(a)),f&&f(String(l),u,{value:a,originalValue:t.value})},[y,f,l,u,t.value]),T=d.useCallback(a=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{P(a)},300)},[P]),q=d.useCallback(()=>{S.current&&(clearTimeout(S.current),S.current=void 0,P(String(m.current.value??"")))},[P]),$=d.useCallback(()=>{const a=t?.column?.type?.toLowerCase(),o=m.current.value;switch(a){case"url":A(String(o??""));break;case"e-mail":O(String(o??""));break;default:g(o);break}},[t?.column?.type]),G=d.useCallback(()=>{const a=t?.column?.type?.toLowerCase(),o=m.current.value,r=m.current.currencyCode;let e=!0;switch(a){case"url":e=A(String(o??""));break;case"e-mail":e=O(String(o??""));break;default:e=g(o);break}if(!e)return{isValid:!1};let n=null;return a==="currency"&&(n={currency_code:N?.(_)||r}),{isValid:!0,value:typeof o=="number"?String(o):o,meta:n}},[t?.column?.type,_,N]);d.useEffect(()=>{I&&v===u&&I(G)},[I,G,v,u]);const te=()=>{if(t?.column?.is_master_data&&t?.column?.masterDataName&&(t?.column?.masterDataColumnName||t?.column?.masterDataFormula)){const r=M?.(String(l),u),e=k?.value??r?.value??t.value;return s.jsx("div",{onMouseDown:n=>n.stopPropagation(),className:"z-[120] h-full w-full",children:s.jsx(ce.MasterDataInlineField,{id:`master-data-cell-${l}-${t.column.id}`,value:e,onChange:(n,C)=>{y(F(n)),f&&f(String(l),u,{value:n,meta:{reference:C||null},originalValue:t.value}),b(n,{reference:C||void 0}),g(n??"")},placeholder:t.column?.Header,masterDataName:t.column.masterDataName,masterDataColumnName:t.column.masterDataColumnName,masterDataFormula:t.column.masterDataFormula,masterDataFilters:t.column.masterDataFilters,onOpenMasterDataModal:J,reference:r?.meta?.reference})})}const a=t?.column?.type?.toLowerCase(),o=u?t?.row?.original?.__cellMetadata?.[u]:void 0;switch(a){case"choice":{const r=o?.choices??t?.column?.choices;return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),children:s.jsx(ne.SelectField,{id:`select-cell-${l}-${t.column.id}`,value:c.value||null,selectOptions:r?.map(e=>({label:e,value:e}))||[],onChange:e=>{const n=e?Array.isArray(e)?e[0]?.value?.toString()||"":e?.value?.toString()||"":"";h(C=>({...C,value:n})),y(F(n)),f&&f(String(l),u,{value:n,originalValue:t.value}),b(n),g(n)},allowClear:!0,inputStyles:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},className:"z-[120]"})})}case"datetime":case"date":return s.jsx("div",{onMouseDown:r=>{r.stopPropagation(),r.target.tagName!=="INPUT"&&r.preventDefault()},children:s.jsx(ae.DateTimeField,{id:`date-cell-${l}-${t.column.id}`,value:c.value||void 0,handleOnChange:r=>{const e=r||"";h(n=>({...n,value:e})),y(F(e)),f&&f(String(l),u,{value:e,originalValue:t.value}),b(e),g(e)},showTime:a==="datetime",dateFormat:a==="date"?"MM/DD/YYYY":void 0,className:"z-[120] w-full"})});case"currency":{const r=V();return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),className:"z-[120] h-full w-full",children:s.jsx(se.InlineCurrencyField,{id:_,value:String(c.value??""),onChange:(e,n)=>{h(C=>({value:e,currencyCode:n||C.currencyCode})),y(F(e)),f&&f(String(l),u,{value:e,meta:{currency_code:n},originalValue:t.value,originalMeta:{currency_code:r}}),g(e),b(e,{currency_code:n})},currencyCode:c.currencyCode,inputStyle:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},autoFocus:!0,disabled:E})})}case"percentage":return s.jsxs("label",{className:"relative block h-full",onMouseDown:r=>r.stopPropagation(),children:[s.jsx("input",{ref:j,type:"number",defaultValue:String(c.value??""),onChange:r=>{try{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0})}catch{}const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},className:"border border-gray-300 h-full text-gray-900 dark:bg-black-800 dark:text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-white dark:focus:border-white block w-full px-2.5 py-1.5 font-inter font-medium disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400",id:`percentage-cell-${l}-${t.column.id}`,style:{height:"var(--row-height)",border:"none",boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},autoComplete:"off",disabled:E}),s.jsx("span",{className:"absolute inset-y-0 right-3 flex items-center pointer-events-none h-full dark:text-black-100",children:"%"})]});case"boolean":{const r=c.value===!0||c.value==="true"||c.value==="Yes"||c.value==="True"||c.value===1;return s.jsx("div",{onMouseDown:e=>e.stopPropagation(),className:"h-full w-full flex items-center px-2.5 bg-white dark:bg-black-800 rounded border-2 focus:outline-primary-600 border border-primary-600 dark:border-black-700 z-[120]",children:s.jsx(oe.Toggle,{id:`toggle-cell-${l}-${t.column.id}`,isChecked:r,onChange:e=>{h(n=>({...n,value:e})),y(F(e)),f&&f(String(l),u,{value:e,originalValue:t.value}),b(e)},hideStatus:!1,labelDirection:"right",stopClickPropagation:!0,statusText:r?"Yes":"No"})})}case"url":return s.jsx("input",{ref:j,type:"url",defaultValue:String(c.value??""),onChange:r=>{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0});const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,K?A(e):g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E});case"e-mail":return s.jsx("input",{ref:j,type:"email",defaultValue:String(c.value??""),onChange:r=>{try{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0})}catch{}const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,K?O(e):g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E});default:return s.jsx("input",{ref:j,type:"text",defaultValue:String(c.value??""),onChange:r=>{x.set(i,{start:r.target.selectionStart??0,end:r.target.selectionEnd??0});const e=r.target.value;h(n=>({...n,value:e})),m.current={...m.current,value:e},p=i,g(e),T(e)},onBlur:()=>{w=i,x.delete(i),q(),$(),p===i&&(p=null,b(m.current.value)),requestAnimationFrame(()=>{w=null})},onKeyDown:r=>{r.stopPropagation()},onMouseDown:r=>r.stopPropagation(),className:"text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800",style:{height:"var(--row-height)"},disabled:E})}};return s.jsxs("div",{ref:X,className:"relative h-full w-full overflow-visible",children:[s.jsx("div",{className:le("border p-0.5 rounded-lg h-full",L?"border-error-600":"border-neutral-200 dark:border-black-700",E&&"pointer-events-none opacity-70"),children:te()}),!!t?.column?.is_live_field&&s.jsx("div",{className:"absolute -top-1.5 -right-1.5 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-[125]",children:Q?s.jsx(de.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8}):s.jsx(ue.BoltOutlined,{sx:{fontSize:12,color:"var(--color-primary-600)"}})}),L&&s.jsx("div",{className:"absolute top-full left-0 mt-1 text-error-600 text-xs font-medium z-[130] bg-white dark:bg-black-800 px-2 py-1 rounded shadow-lg w-full",children:L})]})};exports.InlineEditField=me;
2
2
  //# sourceMappingURL=InlineEditField.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditField.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/InlineEditField.tsx"],"sourcesContent":["import type { ICell, ValidateAndSaveResult } from '../../types';\nimport { validateCellValue } from '../../validateCell';\nimport { REGEX } from '../../../../../constants/table';\nimport { DateTimeField } from '../../../../forms/date-time-field/DateTimeField';\nimport { SelectField } from '../../../../forms/select-field/SelectField';\nimport { Toggle } from '../../../../forms/toggle/Toggle';\nimport { BoltOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { InlineCurrencyField } from './InlineCurrencyField';\nimport { MasterDataInlineField } from './MasterDataInlineField';\nimport { LoadingSpinnerIcon } from '../../../../icon';\n\ntype InlineEditFieldProps = {\n cell: ICell;\n id: string | number;\n inlineEditing: string | null;\n cellRef: React.RefObject<HTMLDivElement>;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null; [key: string]: unknown | null } | null,\n ) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n};\n\ntype TSelectedOption = { label: string; value: string };\ntype TSelectedOptions = TSelectedOption | TSelectedOption[] | null;\n\nconst _cursorPositionCache = new Map<string, { start: number; end: number }>();\nlet _blurringCellKey: string | null = null;\nlet _pendingFieldOpCellKey: string | null = null;\n\nconst createSyntheticChangeEvent = (value: string | number | boolean | null): React.ChangeEvent<HTMLInputElement> => {\n return {\n target: { value } as HTMLInputElement,\n } as React.ChangeEvent<HTMLInputElement>;\n};\n\nexport const InlineEditField: React.FC<InlineEditFieldProps> = ({ cell, id, inlineEditing, cellRef, handleCellValueChange, registerValidation }) => {\n const {\n openMasterDataModal,\n selectedMasterData,\n clearSelectedMasterData,\n getCurrencyForCell,\n getPendingEdit,\n addPendingEdit,\n onFieldOperationFlow,\n fieldOperationLoading,\n } = useContext(TableContext);\n\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n\n const callLiveFieldOperation = useCallback(\n (value: unknown, meta?: { reference?: unknown; currency_code?: string }) => {\n if (!onFieldOperationFlow) return;\n\n onFieldOperationFlow({\n value,\n fieldId: cell?.column?.id as string,\n rowId: String(id),\n rowData: cell?.row?.original as Record<string, unknown>,\n columnKey: (cell?.column?.key as string) || '',\n flowName: cell?.column?.live_field_source as string | undefined,\n isLiveField: cell?.column?.is_live_field as boolean | undefined,\n meta,\n });\n },\n [\n cell?.column?.id,\n cell?.column?.is_live_field,\n cell?.column?.key,\n cell?.column?.live_field_source,\n cell?.row?.original,\n id,\n onFieldOperationFlow,\n ],\n );\n\n const getCurrencyFromCell = () => {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as string | undefined;\n const columnKey = cell?.column?.key as string | undefined;\n\n const dataFromHeader = headerKey ? rawData?.[headerKey]?.currency_code : undefined;\n const dataFromKey = columnKey ? rawData?.[columnKey]?.currency_code : undefined;\n\n if (dataFromHeader && dataFromHeader !== '') {\n return dataFromHeader as string;\n }\n if (dataFromKey && dataFromKey !== '') {\n return dataFromKey as string;\n }\n\n return (cell?.column?.currencyCode as string) || 'USD';\n };\n\n const columnKey = (cell.column.key as string) || '';\n const currencyCellId = `${id}-${columnKey}`;\n const contextCurrency = getCurrencyForCell?.(currencyCellId);\n const initialPendingEdit = getPendingEdit?.(String(id), columnKey);\n\n const [fieldState, setFieldState] = useState<{ value: string | number | boolean | null; currencyCode: string }>({\n value: initialPendingEdit?.value !== undefined ? (initialPendingEdit.value as string | number | boolean | null) : ((cell.value as string | number | boolean | null) || ''),\n currencyCode: (initialPendingEdit?.meta?.currency_code as string) || contextCurrency || getCurrencyFromCell(),\n });\n const [validationError, setValidationError] = useState<string | null>(null);\n\n const computedValidationError = (() => {\n if (inlineEditing !== columnKey) return null;\n const valueToValidate = typeof fieldState.value === 'number' ? String(fieldState.value) : fieldState.value;\n const result = validateCellValue(valueToValidate, cell?.column as { type?: string; is_required?: boolean });\n return result.isValid ? null : result.error || null;\n })();\n\n const pendingError = getPendingEdit?.(String(id), columnKey)?.validationError;\n const displayValidationError = validationError || computedValidationError || pendingError || null;\n\n const previousInlineEditingRef = useRef<string | null>(null);\n\n useEffect(() => {\n const isEnteringEditMode = inlineEditing === columnKey && previousInlineEditingRef.current !== columnKey;\n\n if (isEnteringEditMode) {\n const currencyFromContext = getCurrencyForCell?.(`${id}-${columnKey}`);\n const pendingEdit = getPendingEdit?.(String(id), columnKey);\n const initialValue = pendingEdit?.value !== undefined ? pendingEdit.value : ((cell.value as string | boolean | null) || '');\n const initialCurrency = (pendingEdit?.meta?.currency_code as string) || currencyFromContext || getCurrencyFromCell();\n\n setFieldState({\n value: initialValue as string | number | boolean | null,\n currencyCode: initialCurrency,\n });\n }\n\n if (inlineEditing !== columnKey && previousInlineEditingRef.current === columnKey) {\n setValidationError(null);\n }\n\n previousInlineEditingRef.current = inlineEditing;\n }, [inlineEditing, columnKey, getCurrencyForCell, getPendingEdit, id, cell.value]);\n\n useEffect(() => {\n if (selectedMasterData && inlineEditing === columnKey && cell?.column?.masterDataColumnName && cell?.column?.masterDataName) {\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: selectedMasterData.value as string | boolean | null,\n meta: { reference: selectedMasterData.reference },\n originalValue: cell.value,\n });\n }\n handleCellValueChange(createSyntheticChangeEvent(selectedMasterData.value as string | number | boolean | null));\n callLiveFieldOperation(selectedMasterData.value, { reference: selectedMasterData.reference });\n clearSelectedMasterData?.();\n }\n }, [\n selectedMasterData,\n inlineEditing,\n columnKey,\n cell?.column?.masterDataColumnName,\n cell?.column?.masterDataName,\n addPendingEdit,\n id,\n cell.value,\n handleCellValueChange,\n callLiveFieldOperation,\n clearSelectedMasterData,\n ]);\n\n const validateRequiredField = (value: string | number | boolean | null): boolean => {\n if (cell?.column?.is_required) {\n const isEmpty = value === null || value === undefined || value === '' || (typeof value === 'string' && value.trim() === '');\n if (isEmpty) {\n setValidationError('Field required');\n return false;\n }\n }\n setValidationError(null);\n return true;\n };\n\n const validateUrlField = (value: string): boolean => {\n if (!validateRequiredField(value)) {\n return false;\n }\n if (value && value.trim() !== '' && !REGEX.url.test(value)) {\n setValidationError('Invalid URL format');\n return false;\n }\n setValidationError(null);\n return true;\n };\n\n const validateEmailField = (value: string): boolean => {\n if (!validateRequiredField(value)) {\n return false;\n }\n if (value && value.trim() !== '' && !REGEX.email.test(value)) {\n setValidationError('Email is not valid');\n return false;\n }\n setValidationError(null);\n return true;\n };\n\n const fieldStateRef = useRef(fieldState);\n useEffect(() => {\n fieldStateRef.current = fieldState;\n }, [fieldState]);\n\n const textInputRef = useRef<HTMLInputElement>(null);\n const cellEditKey = `${id}-${columnKey}`;\n\n useLayoutEffect(() => {\n const el = textInputRef.current;\n if (!el) return;\n const cached = _cursorPositionCache.get(cellEditKey);\n if (cached) {\n el.focus();\n try {\n el.setSelectionRange(cached.start, cached.end);\n } catch {\n // email/number inputs may not support setSelectionRange\n }\n } else if (_blurringCellKey !== cellEditKey) {\n el.focus();\n }\n }, [cellEditKey]);\n\n const debouncedSyncTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\n useEffect(() => {\n return () => {\n if (debouncedSyncTimerRef.current) clearTimeout(debouncedSyncTimerRef.current);\n };\n }, []);\n\n const syncToParent = useCallback(\n (value: string) => {\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value,\n originalValue: cell.value,\n });\n }\n },\n [handleCellValueChange, addPendingEdit, id, columnKey, cell.value],\n );\n\n const debouncedSyncToParent = useCallback(\n (value: string) => {\n if (debouncedSyncTimerRef.current) clearTimeout(debouncedSyncTimerRef.current);\n debouncedSyncTimerRef.current = setTimeout(() => {\n syncToParent(value);\n }, 300);\n },\n [syncToParent],\n );\n\n const flushSyncToParent = useCallback(() => {\n if (debouncedSyncTimerRef.current) {\n clearTimeout(debouncedSyncTimerRef.current);\n debouncedSyncTimerRef.current = undefined;\n syncToParent(String(fieldStateRef.current.value ?? ''));\n }\n }, [syncToParent]);\n\n const handleBlurValidation = useCallback(() => {\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const currentValue = fieldStateRef.current.value;\n\n switch (columnType) {\n case 'url':\n validateUrlField(String(currentValue ?? ''));\n break;\n case 'e-mail':\n validateEmailField(String(currentValue ?? ''));\n break;\n default:\n validateRequiredField(currentValue);\n break;\n }\n }, [cell?.column?.type]);\n\n const validateAndGetValue = useCallback((): ValidateAndSaveResult => {\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const currentValue = fieldStateRef.current.value;\n const currentCurrency = fieldStateRef.current.currencyCode;\n\n let isValid = true;\n\n switch (columnType) {\n case 'url':\n isValid = validateUrlField(String(currentValue ?? ''));\n break;\n case 'e-mail':\n isValid = validateEmailField(String(currentValue ?? ''));\n break;\n default:\n isValid = validateRequiredField(currentValue);\n break;\n }\n\n if (!isValid) {\n return { isValid: false };\n }\n\n let meta: ValidateAndSaveResult['meta'] = null;\n if (columnType === 'currency') {\n const latestCurrency = getCurrencyForCell?.(currencyCellId) || currentCurrency;\n meta = { currency_code: latestCurrency };\n }\n\n return {\n isValid: true,\n value: (typeof currentValue === 'number' ? String(currentValue) : currentValue) as string | boolean | null,\n meta,\n };\n }, [cell?.column?.type, currencyCellId, getCurrencyForCell]);\n\n useEffect(() => {\n if (registerValidation && inlineEditing === columnKey) {\n registerValidation(validateAndGetValue);\n }\n }, [registerValidation, validateAndGetValue, inlineEditing, columnKey]);\n\n const renderFieldByType = () => {\n if (cell?.column?.is_master_data && cell?.column?.masterDataName && (cell?.column?.masterDataColumnName || cell?.column?.masterDataFormula)) {\n const currentPendingEdit = getPendingEdit?.(String(id), columnKey);\n const masterDataValue = selectedMasterData?.value ?? currentPendingEdit?.value ?? cell.value;\n\n return (\n <div onMouseDown={(e) => e.stopPropagation()} className='z-[120] h-full w-full'>\n <MasterDataInlineField\n id={`master-data-cell-${id}-${cell.column.id}`}\n value={masterDataValue as string | number | null}\n onChange={(value, reference) => {\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: value as string | boolean | null,\n meta: { reference: reference || null },\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(value, { reference: reference || undefined });\n validateRequiredField((value as string | boolean | null) ?? '');\n }}\n placeholder={cell.column?.Header as string | undefined}\n masterDataName={cell.column.masterDataName as string}\n masterDataColumnName={cell.column.masterDataColumnName as string}\n masterDataFormula={cell.column.masterDataFormula as string | undefined}\n masterDataFilters={cell.column.masterDataFilters as Record<string, unknown> | undefined}\n onOpenMasterDataModal={openMasterDataModal as never}\n reference={currentPendingEdit?.meta?.reference as Record<string, unknown> | undefined}\n />\n </div>\n );\n }\n\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const rowCellMeta = columnKey\n ? (cell?.row?.original?.__cellMetadata as Record<string, { choices?: string[] }> | undefined)?.[columnKey]\n : undefined;\n\n switch (columnType) {\n case 'choice': {\n const choices = rowCellMeta?.choices ?? (cell?.column?.choices as string[] | undefined);\n return (\n <div onMouseDown={(e) => e.stopPropagation()}>\n <SelectField\n id={`select-cell-${id}-${cell.column.id}`}\n value={fieldState.value || null}\n selectOptions={\n choices?.map((choice: string) => ({\n label: choice,\n value: choice,\n })) || []\n }\n onChange={(selectedOptions: TSelectedOptions) => {\n const value = selectedOptions\n ? Array.isArray(selectedOptions)\n ? selectedOptions[0]?.value?.toString() || ''\n : selectedOptions?.value?.toString() || ''\n : '';\n setFieldState((prev) => ({ ...prev, value }));\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(value);\n validateRequiredField(value);\n }}\n allowClear={true}\n inputStyles={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n className='z-[120]'\n />\n </div>\n );\n }\n\n case 'datetime':\n case 'date':\n return (\n <div\n onMouseDown={(e) => {\n e.stopPropagation();\n if ((e.target as HTMLElement).tagName !== 'INPUT') {\n e.preventDefault();\n }\n }}\n >\n <DateTimeField\n id={`date-cell-${id}-${cell.column.id}`}\n value={(fieldState.value as string | undefined) || undefined}\n handleOnChange={(value) => {\n const newValue = value || '';\n setFieldState((prev) => ({ ...prev, value: newValue }));\n handleCellValueChange(createSyntheticChangeEvent(newValue));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: newValue,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(newValue);\n validateRequiredField(newValue);\n }}\n showTime={columnType === 'datetime'}\n dateFormat={columnType === 'date' ? 'MM/DD/YYYY' : undefined}\n className='z-[120] w-full'\n />\n </div>\n );\n\n case 'currency': {\n const originalCurrencyCode = getCurrencyFromCell();\n return (\n <div onMouseDown={(e) => e.stopPropagation()} className='z-[120] h-full w-full'>\n <InlineCurrencyField\n id={currencyCellId}\n value={String(fieldState.value ?? '')}\n onChange={(numericValue, currency_code) => {\n setFieldState((prev) => ({\n value: numericValue,\n currencyCode: currency_code || prev.currencyCode,\n }));\n handleCellValueChange(createSyntheticChangeEvent(numericValue));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: numericValue,\n meta: { currency_code },\n originalValue: cell.value,\n originalMeta: { currency_code: originalCurrencyCode },\n });\n }\n validateRequiredField(numericValue);\n callLiveFieldOperation(numericValue, { currency_code });\n }}\n currencyCode={fieldState.currencyCode}\n inputStyle={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n autoFocus\n disabled={isAnyFieldOperationLoading}\n />\n </div>\n );\n }\n\n case 'percentage':\n return (\n <label className='relative block h-full' onMouseDown={(e) => e.stopPropagation()}>\n <input\n ref={textInputRef}\n type='number'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n try {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n } catch {\n // number inputs may not support selection\n }\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n validateRequiredField(value);\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n className='border border-gray-300 h-full text-gray-900 dark:bg-black-800 dark:text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-white dark:focus:border-white block w-full px-2.5 py-1.5 font-inter font-medium disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400'\n id={`percentage-cell-${id}-${cell.column.id}`}\n style={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n autoComplete='off'\n disabled={isAnyFieldOperationLoading}\n />\n <span className='absolute inset-y-0 right-3 flex items-center pointer-events-none h-full dark:text-black-100'>%</span>\n </label>\n );\n\n case 'boolean': {\n const currentBoolValue =\n fieldState.value === true ||\n fieldState.value === 'true' ||\n fieldState.value === 'Yes' ||\n fieldState.value === 'True' ||\n fieldState.value === 1;\n\n return (\n <div\n onMouseDown={(e) => e.stopPropagation()}\n className='h-full w-full flex items-center px-2.5 bg-white dark:bg-black-800 rounded border-2 focus:outline-primary-600 border border-primary-600 dark:border-black-700 z-[120]'\n >\n <Toggle\n id={`toggle-cell-${id}-${cell.column.id}`}\n isChecked={currentBoolValue}\n onChange={(checked) => {\n setFieldState((prev) => ({ ...prev, value: checked }));\n handleCellValueChange(createSyntheticChangeEvent(checked));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: checked,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(checked);\n }}\n hideStatus={false}\n labelDirection='right'\n stopClickPropagation={true}\n statusText={currentBoolValue ? 'Yes' : 'No'}\n />\n </div>\n );\n }\n\n case 'url':\n return (\n <input\n ref={textInputRef}\n type='url'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n if (validationError) {\n validateUrlField(value);\n } else {\n validateRequiredField(value);\n }\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n\n case 'e-mail':\n return (\n <input\n ref={textInputRef}\n type='email'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n try {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n } catch {\n // email inputs may not support selection\n }\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n if (validationError) {\n validateEmailField(value);\n } else {\n validateRequiredField(value);\n }\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n\n default:\n return (\n <input\n ref={textInputRef}\n type='text'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n validateRequiredField(value);\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n }\n };\n\n return (\n <div ref={cellRef} className='relative h-full w-full overflow-visible'>\n <div\n className={cn(\n 'border p-0.5 rounded-lg h-full',\n displayValidationError ? 'border-error-600' : 'border-neutral-200 dark:border-black-700',\n isAnyFieldOperationLoading && 'pointer-events-none opacity-70',\n )}\n >\n {renderFieldByType()}\n </div>\n {Boolean(cell?.column?.is_live_field) && (\n <div className='absolute -top-1.5 -right-1.5 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-[125]'>\n {isFieldOperationLoading ? (\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n ) : (\n <BoltOutlined\n sx={{\n fontSize: 12,\n color: 'var(--color-primary-600)',\n }}\n />\n )}\n </div>\n )}\n {displayValidationError && (\n <div className='absolute top-full left-0 mt-1 text-error-600 text-xs font-medium z-[130] bg-white dark:bg-black-800 px-2 py-1 rounded shadow-lg w-full'>\n {displayValidationError}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_cursorPositionCache","_blurringCellKey","_pendingFieldOpCellKey","createSyntheticChangeEvent","value","InlineEditField","cell","id","inlineEditing","cellRef","handleCellValueChange","registerValidation","openMasterDataModal","selectedMasterData","clearSelectedMasterData","getCurrencyForCell","getPendingEdit","addPendingEdit","onFieldOperationFlow","fieldOperationLoading","useContext","TableContext","isFieldOperationLoading","isAnyFieldOperationLoading","callLiveFieldOperation","useCallback","meta","getCurrencyFromCell","rawData","headerKey","columnKey","dataFromHeader","dataFromKey","currencyCellId","contextCurrency","initialPendingEdit","fieldState","setFieldState","useState","validationError","setValidationError","computedValidationError","valueToValidate","result","validateCellValue","pendingError","displayValidationError","previousInlineEditingRef","useRef","useEffect","currencyFromContext","pendingEdit","initialValue","initialCurrency","validateRequiredField","validateUrlField","REGEX","validateEmailField","fieldStateRef","textInputRef","cellEditKey","useLayoutEffect","el","cached","debouncedSyncTimerRef","syncToParent","debouncedSyncToParent","flushSyncToParent","handleBlurValidation","columnType","currentValue","validateAndGetValue","currentCurrency","isValid","renderFieldByType","currentPendingEdit","masterDataValue","jsx","e","MasterDataInlineField","reference","rowCellMeta","choices","SelectField","choice","selectedOptions","prev","DateTimeField","newValue","originalCurrencyCode","InlineCurrencyField","numericValue","currency_code","jsxs","currentBoolValue","Toggle","checked","cn","LoadingSpinnerIcon","BoltOutlined"],"mappings":"mqBA+BMA,MAA2B,IACjC,IAAIC,EAAkC,KAClCC,EAAwC,KAE5C,MAAMC,EAA8BC,IAC3B,CACL,OAAQ,CAAE,MAAAA,CAAA,CAAM,GAIPC,GAAkD,CAAC,CAAE,KAAAC,EAAM,GAAAC,EAAI,cAAAC,EAAe,QAAAC,EAAS,sBAAAC,EAAuB,mBAAAC,KAAyB,CAClJ,KAAM,CACJ,oBAAAC,EACA,mBAAAC,EACA,wBAAAC,EACA,mBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,qBAAAC,EACA,sBAAAC,CAAA,EACEC,EAAAA,WAAWC,GAAAA,YAAY,EAErBC,EAA0BH,IAA0B,GAAGZ,CAAE,IAAID,GAAM,QAAQ,EAAE,GAC7EiB,EAA6B,EAAQJ,EAErCK,EAAyBC,EAAAA,YAC7B,CAACrB,EAAgBsB,IAA2D,CACrER,GAELA,EAAqB,CACnB,MAAAd,EACA,QAASE,GAAM,QAAQ,GACvB,MAAO,OAAOC,CAAE,EAChB,QAASD,GAAM,KAAK,SACpB,UAAYA,GAAM,QAAQ,KAAkB,GAC5C,SAAUA,GAAM,QAAQ,kBACxB,YAAaA,GAAM,QAAQ,cAC3B,KAAAoB,CAAA,CACD,CACH,EACA,CACEpB,GAAM,QAAQ,GACdA,GAAM,QAAQ,cACdA,GAAM,QAAQ,IACdA,GAAM,QAAQ,kBACdA,GAAM,KAAK,SACXC,EACAW,CAAA,CACF,EAGIS,EAAsB,IAAM,CAChC,MAAMC,EAAUtB,GAAM,KAAK,UAAU,UAC/BuB,EAAYvB,GAAM,QAAQ,OAC1BwB,EAAYxB,GAAM,QAAQ,IAE1ByB,EAAiBF,EAAYD,IAAUC,CAAS,GAAG,cAAgB,OACnEG,EAAcF,EAAYF,IAAUE,CAAS,GAAG,cAAgB,OAEtE,OAAIC,GAAkBA,IAAmB,GAChCA,EAELC,GAAeA,IAAgB,GAC1BA,EAGD1B,GAAM,QAAQ,cAA2B,KACnD,EAEMwB,EAAaxB,EAAK,OAAO,KAAkB,GAC3C2B,EAAiB,GAAG1B,CAAE,IAAIuB,CAAS,GACnCI,EAAkBnB,IAAqBkB,CAAc,EACrDE,EAAqBnB,IAAiB,OAAOT,CAAE,EAAGuB,CAAS,EAE3D,CAACM,EAAYC,CAAa,EAAIC,WAA4E,CAC9G,MAAOH,GAAoB,QAAU,OAAaA,EAAmB,MAA+C7B,EAAK,OAA8C,GACvK,aAAe6B,GAAoB,MAAM,eAA4BD,GAAmBP,EAAA,CAAoB,CAC7G,EACK,CAACY,EAAiBC,CAAkB,EAAIF,EAAAA,SAAwB,IAAI,EAEpEG,GAA2B,IAAM,CACrC,GAAIjC,IAAkBsB,EAAW,OAAO,KACxC,MAAMY,EAAkB,OAAON,EAAW,OAAU,SAAW,OAAOA,EAAW,KAAK,EAAIA,EAAW,MAC/FO,EAASC,GAAAA,kBAAkBF,EAAiBpC,GAAM,MAAkD,EAC1G,OAAOqC,EAAO,QAAU,KAAOA,EAAO,OAAS,IACjD,GAAA,EAEME,GAAe7B,IAAiB,OAAOT,CAAE,EAAGuB,CAAS,GAAG,gBACxDgB,EAAyBP,GAAmBE,GAA2BI,IAAgB,KAEvFE,EAA2BC,EAAAA,OAAsB,IAAI,EAE3DC,EAAAA,UAAU,IAAM,CAGd,GAF2BzC,IAAkBsB,GAAaiB,EAAyB,UAAYjB,EAEvE,CACtB,MAAMoB,EAAsBnC,IAAqB,GAAGR,CAAE,IAAIuB,CAAS,EAAE,EAC/DqB,EAAcnC,IAAiB,OAAOT,CAAE,EAAGuB,CAAS,EACpDsB,EAAeD,GAAa,QAAU,OAAYA,EAAY,MAAU7C,EAAK,OAAqC,GAClH+C,EAAmBF,GAAa,MAAM,eAA4BD,GAAuBvB,EAAA,EAE/FU,EAAc,CACZ,MAAOe,EACP,aAAcC,CAAA,CACf,CACH,CAEI7C,IAAkBsB,GAAaiB,EAAyB,UAAYjB,GACtEU,EAAmB,IAAI,EAGzBO,EAAyB,QAAUvC,CACrC,EAAG,CAACA,EAAesB,EAAWf,EAAoBC,EAAgBT,EAAID,EAAK,KAAK,CAAC,EAEjF2C,EAAAA,UAAU,IAAM,CACVpC,GAAsBL,IAAkBsB,GAAaxB,GAAM,QAAQ,sBAAwBA,GAAM,QAAQ,iBACvGW,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAOjB,EAAmB,MAC1B,KAAM,CAAE,UAAWA,EAAmB,SAAA,EACtC,cAAeP,EAAK,KAAA,CACrB,EAEHI,EAAsBP,EAA2BU,EAAmB,KAAyC,CAAC,EAC9GW,EAAuBX,EAAmB,MAAO,CAAE,UAAWA,EAAmB,UAAW,EAC5FC,IAAA,EAEJ,EAAG,CACDD,EACAL,EACAsB,EACAxB,GAAM,QAAQ,qBACdA,GAAM,QAAQ,eACdW,EACAV,EACAD,EAAK,MACLI,EACAc,EACAV,CAAA,CACD,EAED,MAAMwC,EAAyBlD,GACzBE,GAAM,QAAQ,cACAF,GAAU,MAA+BA,IAAU,IAAO,OAAOA,GAAU,UAAYA,EAAM,KAAA,IAAW,KAEtHoC,EAAmB,gBAAgB,EAC5B,KAGXA,EAAmB,IAAI,EAChB,IAGHe,EAAoBnD,GACnBkD,EAAsBlD,CAAK,EAG5BA,GAASA,EAAM,SAAW,IAAM,CAACoD,EAAAA,MAAM,IAAI,KAAKpD,CAAK,GACvDoC,EAAmB,oBAAoB,EAChC,KAETA,EAAmB,IAAI,EAChB,IAPE,GAULiB,EAAsBrD,GACrBkD,EAAsBlD,CAAK,EAG5BA,GAASA,EAAM,SAAW,IAAM,CAACoD,EAAAA,MAAM,MAAM,KAAKpD,CAAK,GACzDoC,EAAmB,oBAAoB,EAChC,KAETA,EAAmB,IAAI,EAChB,IAPE,GAULkB,EAAgBV,EAAAA,OAAOZ,CAAU,EACvCa,EAAAA,UAAU,IAAM,CACdS,EAAc,QAAUtB,CAC1B,EAAG,CAACA,CAAU,CAAC,EAEf,MAAMuB,EAAeX,EAAAA,OAAyB,IAAI,EAC5CY,EAAc,GAAGrD,CAAE,IAAIuB,CAAS,GAEtC+B,EAAAA,gBAAgB,IAAM,CACpB,MAAMC,EAAKH,EAAa,QACxB,GAAI,CAACG,EAAI,OACT,MAAMC,EAAS/D,EAAqB,IAAI4D,CAAW,EACnD,GAAIG,EAAQ,CACVD,EAAG,MAAA,EACH,GAAI,CACFA,EAAG,kBAAkBC,EAAO,MAAOA,EAAO,GAAG,CAC/C,MAAQ,CAER,CACF,MAAW9D,IAAqB2D,GAC9BE,EAAG,MAAA,CAEP,EAAG,CAACF,CAAW,CAAC,EAEhB,MAAMI,EAAwBhB,EAAAA,OAAA,EAE9BC,EAAAA,UAAU,IACD,IAAM,CACPe,EAAsB,SAAS,aAAaA,EAAsB,OAAO,CAC/E,EACC,CAAA,CAAE,EAEL,MAAMC,EAAexC,EAAAA,YAClBrB,GAAkB,CACjBM,EAAsBP,EAA2BC,CAAK,CAAC,EACnDa,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAA1B,EACA,cAAeE,EAAK,KAAA,CACrB,CAEL,EACA,CAACI,EAAuBO,EAAgBV,EAAIuB,EAAWxB,EAAK,KAAK,CAAA,EAG7D4D,EAAwBzC,EAAAA,YAC3BrB,GAAkB,CACb4D,EAAsB,SAAS,aAAaA,EAAsB,OAAO,EAC7EA,EAAsB,QAAU,WAAW,IAAM,CAC/CC,EAAa7D,CAAK,CACpB,EAAG,GAAG,CACR,EACA,CAAC6D,CAAY,CAAA,EAGTE,EAAoB1C,EAAAA,YAAY,IAAM,CACtCuC,EAAsB,UACxB,aAAaA,EAAsB,OAAO,EAC1CA,EAAsB,QAAU,OAChCC,EAAa,OAAOP,EAAc,QAAQ,OAAS,EAAE,CAAC,EAE1D,EAAG,CAACO,CAAY,CAAC,EAEXG,EAAuB3C,EAAAA,YAAY,IAAM,CAC7C,MAAM4C,EAAc/D,GAAM,QAAQ,MAA6B,YAAA,EACzDgE,EAAeZ,EAAc,QAAQ,MAE3C,OAAQW,EAAA,CACN,IAAK,MACHd,EAAiB,OAAOe,GAAgB,EAAE,CAAC,EAC3C,MACF,IAAK,SACHb,EAAmB,OAAOa,GAAgB,EAAE,CAAC,EAC7C,MACF,QACEhB,EAAsBgB,CAAY,EAClC,KAAA,CAEN,EAAG,CAAChE,GAAM,QAAQ,IAAI,CAAC,EAEjBiE,EAAsB9C,EAAAA,YAAY,IAA6B,CACnE,MAAM4C,EAAc/D,GAAM,QAAQ,MAA6B,YAAA,EACzDgE,EAAeZ,EAAc,QAAQ,MACrCc,EAAkBd,EAAc,QAAQ,aAE9C,IAAIe,EAAU,GAEd,OAAQJ,EAAA,CACN,IAAK,MACHI,EAAUlB,EAAiB,OAAOe,GAAgB,EAAE,CAAC,EACrD,MACF,IAAK,SACHG,EAAUhB,EAAmB,OAAOa,GAAgB,EAAE,CAAC,EACvD,MACF,QACEG,EAAUnB,EAAsBgB,CAAY,EAC5C,KAAA,CAGJ,GAAI,CAACG,EACH,MAAO,CAAE,QAAS,EAAA,EAGpB,IAAI/C,EAAsC,KAC1C,OAAI2C,IAAe,aAEjB3C,EAAO,CAAE,cADcX,IAAqBkB,CAAc,GAAKuC,CACvC,GAGnB,CACL,QAAS,GACT,MAAQ,OAAOF,GAAiB,SAAW,OAAOA,CAAY,EAAIA,EAClE,KAAA5C,CAAA,CAEJ,EAAG,CAACpB,GAAM,QAAQ,KAAM2B,EAAgBlB,CAAkB,CAAC,EAE3DkC,EAAAA,UAAU,IAAM,CACVtC,GAAsBH,IAAkBsB,GAC1CnB,EAAmB4D,CAAmB,CAE1C,EAAG,CAAC5D,EAAoB4D,EAAqB/D,EAAesB,CAAS,CAAC,EAEtE,MAAM4C,GAAoB,IAAM,CAC9B,GAAIpE,GAAM,QAAQ,gBAAkBA,GAAM,QAAQ,iBAAmBA,GAAM,QAAQ,sBAAwBA,GAAM,QAAQ,mBAAoB,CAC3I,MAAMqE,EAAqB3D,IAAiB,OAAOT,CAAE,EAAGuB,CAAS,EAC3D8C,EAAkB/D,GAAoB,OAAS8D,GAAoB,OAASrE,EAAK,MAEvF,OACEuE,MAAC,OAAI,YAAcC,GAAMA,EAAE,kBAAmB,UAAU,wBACtD,SAAAD,EAAAA,IAACE,GAAAA,sBAAA,CACC,GAAI,oBAAoBxE,CAAE,IAAID,EAAK,OAAO,EAAE,GAC5C,MAAOsE,EACP,SAAU,CAACxE,EAAO4E,IAAc,CAC9BtE,EAAsBP,EAA2BC,CAAK,CAAC,EACnDa,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAA1B,EACA,KAAM,CAAE,UAAW4E,GAAa,IAAA,EAChC,cAAe1E,EAAK,KAAA,CACrB,EAEHkB,EAAuBpB,EAAO,CAAE,UAAW4E,GAAa,OAAW,EACnE1B,EAAuBlD,GAAqC,EAAE,CAChE,EACA,YAAaE,EAAK,QAAQ,OAC1B,eAAgBA,EAAK,OAAO,eAC5B,qBAAsBA,EAAK,OAAO,qBAClC,kBAAmBA,EAAK,OAAO,kBAC/B,kBAAmBA,EAAK,OAAO,kBAC/B,sBAAuBM,EACvB,UAAW+D,GAAoB,MAAM,SAAA,CAAA,EAEzC,CAEJ,CAEA,MAAMN,EAAc/D,GAAM,QAAQ,MAA6B,YAAA,EACzD2E,EAAcnD,EACfxB,GAAM,KAAK,UAAU,iBAAwEwB,CAAS,EACvG,OAEJ,OAAQuC,EAAA,CACN,IAAK,SAAU,CACb,MAAMa,EAAUD,GAAa,SAAY3E,GAAM,QAAQ,QACvD,aACG,MAAA,CAAI,YAAc,GAAM,EAAE,kBACzB,SAAAuE,EAAAA,IAACM,GAAAA,YAAA,CACC,GAAI,eAAe5E,CAAE,IAAID,EAAK,OAAO,EAAE,GACvC,MAAO8B,EAAW,OAAS,KAC3B,cACE8C,GAAS,IAAKE,IAAoB,CAChC,MAAOA,EACP,MAAOA,CAAA,EACP,GAAK,CAAA,EAET,SAAWC,GAAsC,CAC/C,MAAMjF,EAAQiF,EACV,MAAM,QAAQA,CAAe,EAC3BA,EAAgB,CAAC,GAAG,OAAO,YAAc,GACzCA,GAAiB,OAAO,SAAA,GAAc,GACxC,GACJhD,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAAlF,GAAQ,EAC5CM,EAAsBP,EAA2BC,CAAK,CAAC,EACnDa,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAA1B,EACA,cAAeE,EAAK,KAAA,CACrB,EAEHkB,EAAuBpB,CAAK,EAC5BkD,EAAsBlD,CAAK,CAC7B,EACA,WAAY,GACZ,YAAa,CACX,OAAQ,oBACR,OAAQ,OACR,UAAW,qEAAA,EAEb,UAAU,SAAA,CAAA,EAEd,CAEJ,CAEA,IAAK,WACL,IAAK,OACH,OACEyE,EAAAA,IAAC,MAAA,CACC,YAAcC,GAAM,CAClBA,EAAE,gBAAA,EACGA,EAAE,OAAuB,UAAY,SACxCA,EAAE,eAAA,CAEN,EAEA,SAAAD,EAAAA,IAACU,GAAAA,cAAA,CACC,GAAI,aAAahF,CAAE,IAAID,EAAK,OAAO,EAAE,GACrC,MAAQ8B,EAAW,OAAgC,OACnD,eAAiBhC,GAAU,CACzB,MAAMoF,EAAWpF,GAAS,GAC1BiC,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAOE,GAAW,EACtD9E,EAAsBP,EAA2BqF,CAAQ,CAAC,EACtDvE,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAO0D,EACP,cAAelF,EAAK,KAAA,CACrB,EAEHkB,EAAuBgE,CAAQ,EAC/BlC,EAAsBkC,CAAQ,CAChC,EACA,SAAUnB,IAAe,WACzB,WAAYA,IAAe,OAAS,aAAe,OACnD,UAAU,gBAAA,CAAA,CACZ,CAAA,EAIN,IAAK,WAAY,CACf,MAAMoB,EAAuB9D,EAAA,EAC7B,OACEkD,MAAC,OAAI,YAAc,GAAM,EAAE,kBAAmB,UAAU,wBACtD,SAAAA,EAAAA,IAACa,GAAAA,oBAAA,CACC,GAAIzD,EACJ,MAAO,OAAOG,EAAW,OAAS,EAAE,EACpC,SAAU,CAACuD,EAAcC,IAAkB,CACzCvD,EAAeiD,IAAU,CACvB,MAAOK,EACP,aAAcC,GAAiBN,EAAK,YAAA,EACpC,EACF5E,EAAsBP,EAA2BwF,CAAY,CAAC,EAC1D1E,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAO6D,EACP,KAAM,CAAE,cAAAC,CAAA,EACR,cAAetF,EAAK,MACpB,aAAc,CAAE,cAAemF,CAAA,CAAqB,CACrD,EAEHnC,EAAsBqC,CAAY,EAClCnE,EAAuBmE,EAAc,CAAE,cAAAC,EAAe,CACxD,EACA,aAAcxD,EAAW,aACzB,WAAY,CACV,OAAQ,oBACR,OAAQ,OACR,UAAW,qEAAA,EAEb,UAAS,GACT,SAAUb,CAAA,CAAA,EAEd,CAEJ,CAEA,IAAK,aACH,OACEsE,OAAC,SAAM,UAAU,wBAAwB,YAAcf,GAAMA,EAAE,gBAAA,EAC7D,SAAA,CAAAD,EAAAA,IAAC,QAAA,CACC,IAAKlB,EACL,KAAK,SACL,aAAc,OAAOvB,EAAW,OAAS,EAAE,EAC3C,SAAW0C,GAAM,CACf,GAAI,CACF9E,EAAqB,IAAI4D,EAAa,CAAE,MAAOkB,EAAE,OAAO,gBAAkB,EAAG,IAAKA,EAAE,OAAO,cAAgB,EAAG,CAChH,MAAQ,CAER,CACA,MAAM1E,EAAQ0E,EAAE,OAAO,MACvBzC,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAAlF,GAAQ,EAC5CsD,EAAc,QAAU,CAAE,GAAGA,EAAc,QAAS,MAAAtD,CAAA,EACpDF,EAAyB0D,EACzBN,EAAsBlD,CAAK,EAC3B8D,EAAsB9D,CAAK,CAC7B,EACA,OAAQ,IAAM,CACZH,EAAmB2D,EACnB5D,EAAqB,OAAO4D,CAAW,EACvCO,EAAA,EACAC,EAAA,EACIlE,IAA2B0D,IAC7B1D,EAAyB,KACzBsB,EAAuBkC,EAAc,QAAQ,KAAK,GAEpD,sBAAsB,IAAM,CAC1BzD,EAAmB,IACrB,CAAC,CACH,EACA,UAAY6E,GAAM,CAChBA,EAAE,gBAAA,CACJ,EACA,UAAU,0UACV,GAAI,mBAAmBvE,CAAE,IAAID,EAAK,OAAO,EAAE,GAC3C,MAAO,CACL,OAAQ,oBACR,OAAQ,OACR,UAAW,qEAAA,EAEb,aAAa,MACb,SAAUiB,CAAA,CAAA,EAEZsD,EAAAA,IAAC,OAAA,CAAK,UAAU,8FAA8F,SAAA,GAAA,CAAC,CAAA,EACjH,EAGJ,IAAK,UAAW,CACd,MAAMiB,EACJ1D,EAAW,QAAU,IACrBA,EAAW,QAAU,QACrBA,EAAW,QAAU,OACrBA,EAAW,QAAU,QACrBA,EAAW,QAAU,EAEvB,OACEyC,EAAAA,IAAC,MAAA,CACC,YAAc,GAAM,EAAE,gBAAA,EACtB,UAAU,uKAEV,SAAAA,EAAAA,IAACkB,GAAAA,OAAA,CACC,GAAI,eAAexF,CAAE,IAAID,EAAK,OAAO,EAAE,GACvC,UAAWwF,EACX,SAAWE,GAAY,CACrB3D,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAOU,GAAU,EACrDtF,EAAsBP,EAA2B6F,CAAO,CAAC,EACrD/E,GACFA,EAAe,OAAOV,CAAE,EAAGuB,EAAW,CACpC,MAAOkE,EACP,cAAe1F,EAAK,KAAA,CACrB,EAEHkB,EAAuBwE,CAAO,CAChC,EACA,WAAY,GACZ,eAAe,QACf,qBAAsB,GACtB,WAAYF,EAAmB,MAAQ,IAAA,CAAA,CACzC,CAAA,CAGN,CAEA,IAAK,MACH,OACEjB,EAAAA,IAAC,QAAA,CACC,IAAKlB,EACL,KAAK,MACL,aAAc,OAAOvB,EAAW,OAAS,EAAE,EAC3C,SAAW0C,GAAM,CACf9E,EAAqB,IAAI4D,EAAa,CAAE,MAAOkB,EAAE,OAAO,gBAAkB,EAAG,IAAKA,EAAE,OAAO,cAAgB,EAAG,EAC9G,MAAM1E,EAAQ0E,EAAE,OAAO,MACvBzC,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAAlF,GAAQ,EAC5CsD,EAAc,QAAU,CAAE,GAAGA,EAAc,QAAS,MAAAtD,CAAA,EACpDF,EAAyB0D,EACrBrB,EACFgB,EAAiBnD,CAAK,EAEtBkD,EAAsBlD,CAAK,EAE7B8D,EAAsB9D,CAAK,CAC7B,EACA,OAAQ,IAAM,CACZH,EAAmB2D,EACnB5D,EAAqB,OAAO4D,CAAW,EACvCO,EAAA,EACAC,EAAA,EACIlE,IAA2B0D,IAC7B1D,EAAyB,KACzBsB,EAAuBkC,EAAc,QAAQ,KAAK,GAEpD,sBAAsB,IAAM,CAC1BzD,EAAmB,IACrB,CAAC,CACH,EACA,UAAY6E,GAAM,CAChBA,EAAE,gBAAA,CACJ,EACA,YAAcA,GAAMA,EAAE,gBAAA,EACtB,UAAU,uSACV,MAAO,CACL,OAAQ,mBAAA,EAEV,SAAUvD,CAAA,CAAA,EAIhB,IAAK,SACH,OACEsD,EAAAA,IAAC,QAAA,CACC,IAAKlB,EACL,KAAK,QACL,aAAc,OAAOvB,EAAW,OAAS,EAAE,EAC3C,SAAW0C,GAAM,CACf,GAAI,CACF9E,EAAqB,IAAI4D,EAAa,CAAE,MAAOkB,EAAE,OAAO,gBAAkB,EAAG,IAAKA,EAAE,OAAO,cAAgB,EAAG,CAChH,MAAQ,CAER,CACA,MAAM1E,EAAQ0E,EAAE,OAAO,MACvBzC,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAAlF,GAAQ,EAC5CsD,EAAc,QAAU,CAAE,GAAGA,EAAc,QAAS,MAAAtD,CAAA,EACpDF,EAAyB0D,EACrBrB,EACFkB,EAAmBrD,CAAK,EAExBkD,EAAsBlD,CAAK,EAE7B8D,EAAsB9D,CAAK,CAC7B,EACA,OAAQ,IAAM,CACZH,EAAmB2D,EACnB5D,EAAqB,OAAO4D,CAAW,EACvCO,EAAA,EACAC,EAAA,EACIlE,IAA2B0D,IAC7B1D,EAAyB,KACzBsB,EAAuBkC,EAAc,QAAQ,KAAK,GAEpD,sBAAsB,IAAM,CAC1BzD,EAAmB,IACrB,CAAC,CACH,EACA,UAAY6E,GAAM,CAChBA,EAAE,gBAAA,CACJ,EACA,YAAcA,GAAMA,EAAE,gBAAA,EACtB,UAAU,uSACV,MAAO,CACL,OAAQ,mBAAA,EAEV,SAAUvD,CAAA,CAAA,EAIhB,QACE,OACEsD,EAAAA,IAAC,QAAA,CACC,IAAKlB,EACL,KAAK,OACL,aAAc,OAAOvB,EAAW,OAAS,EAAE,EAC3C,SAAW0C,GAAM,CACf9E,EAAqB,IAAI4D,EAAa,CAAE,MAAOkB,EAAE,OAAO,gBAAkB,EAAG,IAAKA,EAAE,OAAO,cAAgB,EAAG,EAC9G,MAAM1E,EAAQ0E,EAAE,OAAO,MACvBzC,EAAeiD,IAAU,CAAE,GAAGA,EAAM,MAAAlF,GAAQ,EAC5CsD,EAAc,QAAU,CAAE,GAAGA,EAAc,QAAS,MAAAtD,CAAA,EACpDF,EAAyB0D,EACzBN,EAAsBlD,CAAK,EAC3B8D,EAAsB9D,CAAK,CAC7B,EACA,OAAQ,IAAM,CACZH,EAAmB2D,EACnB5D,EAAqB,OAAO4D,CAAW,EACvCO,EAAA,EACAC,EAAA,EACIlE,IAA2B0D,IAC7B1D,EAAyB,KACzBsB,EAAuBkC,EAAc,QAAQ,KAAK,GAEpD,sBAAsB,IAAM,CAC1BzD,EAAmB,IACrB,CAAC,CACH,EACA,UAAY6E,GAAM,CAChBA,EAAE,gBAAA,CACJ,EACA,YAAcA,GAAMA,EAAE,gBAAA,EACtB,UAAU,uSACV,MAAO,CACL,OAAQ,mBAAA,EAEV,SAAUvD,CAAA,CAAA,CACZ,CAGR,EAEA,OACEsE,EAAAA,KAAC,MAAA,CAAI,IAAKpF,EAAS,UAAU,0CAC3B,SAAA,CAAAoE,EAAAA,IAAC,MAAA,CACC,UAAWoB,GACT,iCACAnD,EAAyB,mBAAqB,2CAC9CvB,GAA8B,gCAAA,EAG/B,SAAAmD,GAAA,CAAkB,CAAA,EAEpB,EAAQpE,GAAM,QAAQ,qBACpB,MAAA,CAAI,UAAU,oLACZ,SAAAgB,QACE4E,GAAAA,mBAAA,CAAmB,UAAU,mCAAmC,KAAM,EAAG,EAE1ErB,EAAAA,IAACsB,GAAAA,aAAA,CACC,GAAI,CACF,SAAU,GACV,MAAO,0BAAA,CACT,CAAA,EAGN,EAEDrD,GACC+B,EAAAA,IAAC,MAAA,CAAI,UAAU,yIACZ,SAAA/B,CAAA,CACH,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"InlineEditField.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/InlineEditField.tsx"],"sourcesContent":["import type { ICell, ValidateAndSaveResult } from '../../types';\nimport { validateCellValue } from '../../validateCell';\nimport { REGEX } from '../../../../../constants/table';\nimport { DateTimeField } from '../../../../forms/date-time-field/DateTimeField';\nimport { SelectField } from '../../../../forms/select-field/SelectField';\nimport { Toggle } from '../../../../forms/toggle/Toggle';\nimport { BoltOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { InlineCurrencyField } from './InlineCurrencyField';\nimport { MasterDataInlineField } from './MasterDataInlineField';\nimport { LoadingSpinnerIcon } from '../../../../icon';\n\ntype InlineEditFieldProps = {\n cell: ICell;\n id: string | number;\n inlineEditing: string | null;\n cellRef: React.RefObject<HTMLDivElement>;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null; [key: string]: unknown | null } | null,\n ) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n};\n\ntype TSelectedOption = { label: string; value: string };\ntype TSelectedOptions = TSelectedOption | TSelectedOption[] | null;\n\nconst _cursorPositionCache = new Map<string, { start: number; end: number }>();\nlet _blurringCellKey: string | null = null;\nlet _pendingFieldOpCellKey: string | null = null;\n\nconst createSyntheticChangeEvent = (value: string | number | boolean | null): React.ChangeEvent<HTMLInputElement> => {\n return {\n target: { value } as HTMLInputElement,\n } as React.ChangeEvent<HTMLInputElement>;\n};\n\nexport const InlineEditField: React.FC<InlineEditFieldProps> = ({ cell, id, inlineEditing, cellRef, handleCellValueChange, registerValidation }) => {\n const {\n openMasterDataModal,\n selectedMasterData,\n clearSelectedMasterData,\n getCurrencyForCell,\n getPendingEdit,\n addPendingEdit,\n onFieldOperationFlow,\n fieldOperationLoading,\n } = useContext(TableContext);\n\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n\n const callLiveFieldOperation = useCallback(\n (value: unknown, meta?: { reference?: unknown; currency_code?: string }) => {\n if (!onFieldOperationFlow) return;\n\n onFieldOperationFlow({\n value,\n fieldId: cell?.column?.id as string,\n rowId: String(id),\n rowData: cell?.row?.original as Record<string, unknown>,\n columnKey: (cell?.column?.key as string) || '',\n flowName: cell?.column?.live_field_source as string | undefined,\n isLiveField: cell?.column?.is_live_field as boolean | undefined,\n meta,\n });\n },\n [\n cell?.column?.id,\n cell?.column?.is_live_field,\n cell?.column?.key,\n cell?.column?.live_field_source,\n cell?.row?.original,\n id,\n onFieldOperationFlow,\n ],\n );\n\n const getCurrencyFromCell = () => {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as string | undefined;\n const columnKey = cell?.column?.key as string | undefined;\n\n const dataFromHeader = headerKey ? rawData?.[headerKey]?.currency_code : undefined;\n const dataFromKey = columnKey ? rawData?.[columnKey]?.currency_code : undefined;\n\n if (dataFromHeader && dataFromHeader !== '') {\n return dataFromHeader as string;\n }\n if (dataFromKey && dataFromKey !== '') {\n return dataFromKey as string;\n }\n\n return (cell?.column?.currencyCode as string) || 'USD';\n };\n\n const columnKey = (cell.column.key as string) || '';\n const currencyCellId = `${id}-${columnKey}`;\n const contextCurrency = getCurrencyForCell?.(currencyCellId);\n const initialPendingEdit = getPendingEdit?.(String(id), columnKey);\n\n const [fieldState, setFieldState] = useState<{ value: string | number | boolean | null; currencyCode: string }>({\n value: initialPendingEdit?.value !== undefined ? (initialPendingEdit.value as string | number | boolean | null) : ((cell.value as string | number | boolean | null) || ''),\n currencyCode: (initialPendingEdit?.meta?.currency_code as string) || contextCurrency || getCurrencyFromCell(),\n });\n const [validationError, setValidationError] = useState<string | null>(null);\n\n const computedValidationError = (() => {\n if (inlineEditing !== columnKey) return null;\n const valueToValidate = typeof fieldState.value === 'number' ? String(fieldState.value) : fieldState.value;\n const result = validateCellValue(valueToValidate, cell?.column as { type?: string; is_required?: boolean });\n return result.isValid ? null : result.error || null;\n })();\n\n const pendingError = getPendingEdit?.(String(id), columnKey)?.validationError;\n const displayValidationError = validationError || computedValidationError || pendingError || null;\n\n const previousInlineEditingRef = useRef<string | null>(null);\n\n useEffect(() => {\n const isEnteringEditMode = inlineEditing === columnKey && previousInlineEditingRef.current !== columnKey;\n\n if (isEnteringEditMode) {\n const currencyFromContext = getCurrencyForCell?.(`${id}-${columnKey}`);\n const pendingEdit = getPendingEdit?.(String(id), columnKey);\n const initialValue = pendingEdit?.value !== undefined ? pendingEdit.value : ((cell.value as string | boolean | null) || '');\n const initialCurrency = (pendingEdit?.meta?.currency_code as string) || currencyFromContext || getCurrencyFromCell();\n\n setFieldState({\n value: initialValue as string | number | boolean | null,\n currencyCode: initialCurrency,\n });\n }\n\n if (inlineEditing !== columnKey && previousInlineEditingRef.current === columnKey) {\n setValidationError(null);\n }\n\n previousInlineEditingRef.current = inlineEditing;\n }, [inlineEditing, columnKey, getCurrencyForCell, getPendingEdit, id, cell.value]);\n\n useEffect(() => {\n if (selectedMasterData && inlineEditing === cell.column.key && (cell?.column?.masterDataColumnName || cell?.column?.masterDataFormula) && cell?.column?.masterDataName) {\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: selectedMasterData.value as string | boolean | null,\n meta: { reference: selectedMasterData.reference },\n originalValue: cell.value,\n });\n }\n handleCellValueChange(createSyntheticChangeEvent(selectedMasterData.value as string | number | boolean | null));\n callLiveFieldOperation(selectedMasterData.value, { reference: selectedMasterData.reference });\n clearSelectedMasterData?.();\n }\n }, [\n selectedMasterData,\n inlineEditing,\n columnKey,\n cell?.column?.masterDataFormula,\n cell?.column?.masterDataColumnName,\n cell?.column?.masterDataName,\n addPendingEdit,\n id,\n cell.value,\n handleCellValueChange,\n callLiveFieldOperation,\n clearSelectedMasterData,\n ]);\n\n const validateRequiredField = (value: string | number | boolean | null): boolean => {\n if (cell?.column?.is_required) {\n const isEmpty = value === null || value === undefined || value === '' || (typeof value === 'string' && value.trim() === '');\n if (isEmpty) {\n setValidationError('Field required');\n return false;\n }\n }\n setValidationError(null);\n return true;\n };\n\n const validateUrlField = (value: string): boolean => {\n if (!validateRequiredField(value)) {\n return false;\n }\n if (value && value.trim() !== '' && !REGEX.url.test(value)) {\n setValidationError('Invalid URL format');\n return false;\n }\n setValidationError(null);\n return true;\n };\n\n const validateEmailField = (value: string): boolean => {\n if (!validateRequiredField(value)) {\n return false;\n }\n if (value && value.trim() !== '' && !REGEX.email.test(value)) {\n setValidationError('Email is not valid');\n return false;\n }\n setValidationError(null);\n return true;\n };\n\n const fieldStateRef = useRef(fieldState);\n useEffect(() => {\n fieldStateRef.current = fieldState;\n }, [fieldState]);\n\n const textInputRef = useRef<HTMLInputElement>(null);\n const cellEditKey = `${id}-${columnKey}`;\n\n useLayoutEffect(() => {\n const el = textInputRef.current;\n if (!el) return;\n const cached = _cursorPositionCache.get(cellEditKey);\n if (cached) {\n el.focus();\n try {\n el.setSelectionRange(cached.start, cached.end);\n } catch {\n // email/number inputs may not support setSelectionRange\n }\n } else if (_blurringCellKey !== cellEditKey) {\n el.focus();\n }\n }, [cellEditKey]);\n\n const debouncedSyncTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\n useEffect(() => {\n return () => {\n if (debouncedSyncTimerRef.current) clearTimeout(debouncedSyncTimerRef.current);\n };\n }, []);\n\n const syncToParent = useCallback(\n (value: string) => {\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value,\n originalValue: cell.value,\n });\n }\n },\n [handleCellValueChange, addPendingEdit, id, columnKey, cell.value],\n );\n\n const debouncedSyncToParent = useCallback(\n (value: string) => {\n if (debouncedSyncTimerRef.current) clearTimeout(debouncedSyncTimerRef.current);\n debouncedSyncTimerRef.current = setTimeout(() => {\n syncToParent(value);\n }, 300);\n },\n [syncToParent],\n );\n\n const flushSyncToParent = useCallback(() => {\n if (debouncedSyncTimerRef.current) {\n clearTimeout(debouncedSyncTimerRef.current);\n debouncedSyncTimerRef.current = undefined;\n syncToParent(String(fieldStateRef.current.value ?? ''));\n }\n }, [syncToParent]);\n\n const handleBlurValidation = useCallback(() => {\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const currentValue = fieldStateRef.current.value;\n\n switch (columnType) {\n case 'url':\n validateUrlField(String(currentValue ?? ''));\n break;\n case 'e-mail':\n validateEmailField(String(currentValue ?? ''));\n break;\n default:\n validateRequiredField(currentValue);\n break;\n }\n }, [cell?.column?.type]);\n\n const validateAndGetValue = useCallback((): ValidateAndSaveResult => {\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const currentValue = fieldStateRef.current.value;\n const currentCurrency = fieldStateRef.current.currencyCode;\n\n let isValid = true;\n\n switch (columnType) {\n case 'url':\n isValid = validateUrlField(String(currentValue ?? ''));\n break;\n case 'e-mail':\n isValid = validateEmailField(String(currentValue ?? ''));\n break;\n default:\n isValid = validateRequiredField(currentValue);\n break;\n }\n\n if (!isValid) {\n return { isValid: false };\n }\n\n let meta: ValidateAndSaveResult['meta'] = null;\n if (columnType === 'currency') {\n const latestCurrency = getCurrencyForCell?.(currencyCellId) || currentCurrency;\n meta = { currency_code: latestCurrency };\n }\n\n return {\n isValid: true,\n value: (typeof currentValue === 'number' ? String(currentValue) : currentValue) as string | boolean | null,\n meta,\n };\n }, [cell?.column?.type, currencyCellId, getCurrencyForCell]);\n\n useEffect(() => {\n if (registerValidation && inlineEditing === columnKey) {\n registerValidation(validateAndGetValue);\n }\n }, [registerValidation, validateAndGetValue, inlineEditing, columnKey]);\n\n const renderFieldByType = () => {\n if (cell?.column?.is_master_data && cell?.column?.masterDataName && (cell?.column?.masterDataColumnName || cell?.column?.masterDataFormula)) {\n const currentPendingEdit = getPendingEdit?.(String(id), columnKey);\n const masterDataValue = selectedMasterData?.value ?? currentPendingEdit?.value ?? cell.value;\n\n return (\n <div onMouseDown={(e) => e.stopPropagation()} className='z-[120] h-full w-full'>\n <MasterDataInlineField\n id={`master-data-cell-${id}-${cell.column.id}`}\n value={masterDataValue as string | number | null}\n onChange={(value, reference) => {\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: value as string | boolean | null,\n meta: { reference: reference || null },\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(value, { reference: reference || undefined });\n validateRequiredField((value as string | boolean | null) ?? '');\n }}\n placeholder={cell.column?.Header as string | undefined}\n masterDataName={cell.column.masterDataName as string}\n masterDataColumnName={cell.column.masterDataColumnName as string}\n masterDataFormula={cell.column.masterDataFormula as string | undefined}\n masterDataFilters={cell.column.masterDataFilters as Record<string, unknown> | undefined}\n onOpenMasterDataModal={openMasterDataModal as never}\n reference={currentPendingEdit?.meta?.reference as Record<string, unknown> | undefined}\n />\n </div>\n );\n }\n\n const columnType = (cell?.column?.type as string | undefined)?.toLowerCase();\n const rowCellMeta = columnKey\n ? (cell?.row?.original?.__cellMetadata as Record<string, { choices?: string[] }> | undefined)?.[columnKey]\n : undefined;\n\n switch (columnType) {\n case 'choice': {\n const choices = rowCellMeta?.choices ?? (cell?.column?.choices as string[] | undefined);\n return (\n <div onMouseDown={(e) => e.stopPropagation()}>\n <SelectField\n id={`select-cell-${id}-${cell.column.id}`}\n value={fieldState.value || null}\n selectOptions={\n choices?.map((choice: string) => ({\n label: choice,\n value: choice,\n })) || []\n }\n onChange={(selectedOptions: TSelectedOptions) => {\n const value = selectedOptions\n ? Array.isArray(selectedOptions)\n ? selectedOptions[0]?.value?.toString() || ''\n : selectedOptions?.value?.toString() || ''\n : '';\n setFieldState((prev) => ({ ...prev, value }));\n handleCellValueChange(createSyntheticChangeEvent(value));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(value);\n validateRequiredField(value);\n }}\n allowClear={true}\n inputStyles={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n className='z-[120]'\n />\n </div>\n );\n }\n\n case 'datetime':\n case 'date':\n return (\n <div\n onMouseDown={(e) => {\n e.stopPropagation();\n if ((e.target as HTMLElement).tagName !== 'INPUT') {\n e.preventDefault();\n }\n }}\n >\n <DateTimeField\n id={`date-cell-${id}-${cell.column.id}`}\n value={(fieldState.value as string | undefined) || undefined}\n handleOnChange={(value) => {\n const newValue = value || '';\n setFieldState((prev) => ({ ...prev, value: newValue }));\n handleCellValueChange(createSyntheticChangeEvent(newValue));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: newValue,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(newValue);\n validateRequiredField(newValue);\n }}\n showTime={columnType === 'datetime'}\n dateFormat={columnType === 'date' ? 'MM/DD/YYYY' : undefined}\n className='z-[120] w-full'\n />\n </div>\n );\n\n case 'currency': {\n const originalCurrencyCode = getCurrencyFromCell();\n return (\n <div onMouseDown={(e) => e.stopPropagation()} className='z-[120] h-full w-full'>\n <InlineCurrencyField\n id={currencyCellId}\n value={String(fieldState.value ?? '')}\n onChange={(numericValue, currency_code) => {\n setFieldState((prev) => ({\n value: numericValue,\n currencyCode: currency_code || prev.currencyCode,\n }));\n handleCellValueChange(createSyntheticChangeEvent(numericValue));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: numericValue,\n meta: { currency_code },\n originalValue: cell.value,\n originalMeta: { currency_code: originalCurrencyCode },\n });\n }\n validateRequiredField(numericValue);\n callLiveFieldOperation(numericValue, { currency_code });\n }}\n currencyCode={fieldState.currencyCode}\n inputStyle={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n autoFocus\n disabled={isAnyFieldOperationLoading}\n />\n </div>\n );\n }\n\n case 'percentage':\n return (\n <label className='relative block h-full' onMouseDown={(e) => e.stopPropagation()}>\n <input\n ref={textInputRef}\n type='number'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n try {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n } catch {\n // number inputs may not support selection\n }\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n validateRequiredField(value);\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n className='border border-gray-300 h-full text-gray-900 dark:bg-black-800 dark:text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 dark:focus:ring-white dark:focus:border-white block w-full px-2.5 py-1.5 font-inter font-medium disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400'\n id={`percentage-cell-${id}-${cell.column.id}`}\n style={{\n height: 'var(--row-height)',\n border: 'none',\n boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n }}\n autoComplete='off'\n disabled={isAnyFieldOperationLoading}\n />\n <span className='absolute inset-y-0 right-3 flex items-center pointer-events-none h-full dark:text-black-100'>%</span>\n </label>\n );\n\n case 'boolean': {\n const currentBoolValue =\n fieldState.value === true ||\n fieldState.value === 'true' ||\n fieldState.value === 'Yes' ||\n fieldState.value === 'True' ||\n fieldState.value === 1;\n\n return (\n <div\n onMouseDown={(e) => e.stopPropagation()}\n className='h-full w-full flex items-center px-2.5 bg-white dark:bg-black-800 rounded border-2 focus:outline-primary-600 border border-primary-600 dark:border-black-700 z-[120]'\n >\n <Toggle\n id={`toggle-cell-${id}-${cell.column.id}`}\n isChecked={currentBoolValue}\n onChange={(checked) => {\n setFieldState((prev) => ({ ...prev, value: checked }));\n handleCellValueChange(createSyntheticChangeEvent(checked));\n if (addPendingEdit) {\n addPendingEdit(String(id), columnKey, {\n value: checked,\n originalValue: cell.value,\n });\n }\n callLiveFieldOperation(checked);\n }}\n hideStatus={false}\n labelDirection='right'\n stopClickPropagation={true}\n statusText={currentBoolValue ? 'Yes' : 'No'}\n />\n </div>\n );\n }\n\n case 'url':\n return (\n <input\n ref={textInputRef}\n type='url'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n if (validationError) {\n validateUrlField(value);\n } else {\n validateRequiredField(value);\n }\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n\n case 'e-mail':\n return (\n <input\n ref={textInputRef}\n type='email'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n try {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n } catch {\n // email inputs may not support selection\n }\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n if (validationError) {\n validateEmailField(value);\n } else {\n validateRequiredField(value);\n }\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n\n default:\n return (\n <input\n ref={textInputRef}\n type='text'\n defaultValue={String(fieldState.value ?? '')}\n onChange={(e) => {\n _cursorPositionCache.set(cellEditKey, { start: e.target.selectionStart ?? 0, end: e.target.selectionEnd ?? 0 });\n const value = e.target.value;\n setFieldState((prev) => ({ ...prev, value }));\n fieldStateRef.current = { ...fieldStateRef.current, value };\n _pendingFieldOpCellKey = cellEditKey;\n validateRequiredField(value);\n debouncedSyncToParent(value);\n }}\n onBlur={() => {\n _blurringCellKey = cellEditKey;\n _cursorPositionCache.delete(cellEditKey);\n flushSyncToParent();\n handleBlurValidation();\n if (_pendingFieldOpCellKey === cellEditKey) {\n _pendingFieldOpCellKey = null;\n callLiveFieldOperation(fieldStateRef.current.value);\n }\n requestAnimationFrame(() => {\n _blurringCellKey = null;\n });\n }}\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onMouseDown={(e) => e.stopPropagation()}\n className='text-neutral-900 dark:text-white dark:bg-black-800 text-base font-medium h-full font-inter overflow-hidden whitespace-nowrap text-ellipsis px-2.5 py-1 w-full border rounded focus:outline-primary-600 dark:focus:outline-white z-[120] shadow-xl disabled:bg-neutral-50 dark:disabled:!bg-black-800'\n style={{\n height: 'var(--row-height)',\n }}\n disabled={isAnyFieldOperationLoading}\n />\n );\n }\n };\n\n return (\n <div ref={cellRef} className='relative h-full w-full overflow-visible'>\n <div\n className={cn(\n 'border p-0.5 rounded-lg h-full',\n displayValidationError ? 'border-error-600' : 'border-neutral-200 dark:border-black-700',\n isAnyFieldOperationLoading && 'pointer-events-none opacity-70',\n )}\n >\n {renderFieldByType()}\n </div>\n {Boolean(cell?.column?.is_live_field) && (\n <div className='absolute -top-1.5 -right-1.5 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-[125]'>\n {isFieldOperationLoading ? (\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n ) : (\n <BoltOutlined\n sx={{\n fontSize: 12,\n color: 'var(--color-primary-600)',\n }}\n />\n )}\n </div>\n )}\n {displayValidationError && (\n <div className='absolute top-full left-0 mt-1 text-error-600 text-xs font-medium z-[130] bg-white dark:bg-black-800 px-2 py-1 rounded shadow-lg w-full'>\n {displayValidationError}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_cursorPositionCache","_blurringCellKey","_pendingFieldOpCellKey","createSyntheticChangeEvent","value","InlineEditField","cell","id","inlineEditing","cellRef","handleCellValueChange","registerValidation","openMasterDataModal","selectedMasterData","clearSelectedMasterData","getCurrencyForCell","getPendingEdit","addPendingEdit","onFieldOperationFlow","fieldOperationLoading","useContext","TableContext","isFieldOperationLoading","isAnyFieldOperationLoading","callLiveFieldOperation","useCallback","meta","getCurrencyFromCell","rawData","headerKey","columnKey","dataFromHeader","dataFromKey","currencyCellId","contextCurrency","initialPendingEdit","fieldState","setFieldState","useState","validationError","setValidationError","computedValidationError","valueToValidate","result","validateCellValue","pendingError","displayValidationError","previousInlineEditingRef","useRef","useEffect","currencyFromContext","pendingEdit","initialValue","initialCurrency","validateRequiredField","validateUrlField","REGEX","validateEmailField","fieldStateRef","textInputRef","cellEditKey","useLayoutEffect","el","cached","debouncedSyncTimerRef","syncToParent","debouncedSyncToParent","flushSyncToParent","handleBlurValidation","columnType","currentValue","validateAndGetValue","currentCurrency","isValid","renderFieldByType","currentPendingEdit","masterDataValue","jsx","e","MasterDataInlineField","reference","rowCellMeta","choices","SelectField","choice","selectedOptions","prev","DateTimeField","newValue","originalCurrencyCode","InlineCurrencyField","numericValue","currency_code","jsxs","currentBoolValue","Toggle","checked","cn","LoadingSpinnerIcon","BoltOutlined"],"mappings":"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"}
@@ -26,7 +26,7 @@ const C = (t) => ({
26
26
  onFieldOperationFlow: B,
27
27
  fieldOperationLoading: G
28
28
  } = me(pe), te = G === `${l}-${t?.column?.id}`, F = !!G, g = N(
29
- (a, u) => {
29
+ (a, n) => {
30
30
  B && B({
31
31
  value: a,
32
32
  fieldId: t?.column?.id,
@@ -35,7 +35,7 @@ const C = (t) => ({
35
35
  columnKey: t?.column?.key || "",
36
36
  flowName: t?.column?.live_field_source,
37
37
  isLiveField: t?.column?.is_live_field,
38
- meta: u
38
+ meta: n
39
39
  });
40
40
  },
41
41
  [
@@ -48,27 +48,27 @@ const C = (t) => ({
48
48
  B
49
49
  ]
50
50
  ), R = () => {
51
- const a = t?.row?.original?.__rawData, u = t?.column?.Header, r = t?.column?.key, e = u ? a?.[u]?.currency_code : void 0, o = r ? a?.[r]?.currency_code : void 0;
51
+ const a = t?.row?.original?.__rawData, n = t?.column?.Header, r = t?.column?.key, e = n ? a?.[n]?.currency_code : void 0, o = r ? a?.[r]?.currency_code : void 0;
52
52
  return e && e !== "" ? e : o && o !== "" ? o : t?.column?.currencyCode || "USD";
53
- }, n = t.column.key || "", T = `${l}-${n}`, re = M?.(T), A = _?.(String(l), n), [c, y] = W({
53
+ }, u = t.column.key || "", T = `${l}-${u}`, re = M?.(T), A = _?.(String(l), u), [c, y] = W({
54
54
  value: A?.value !== void 0 ? A.value : t.value || "",
55
55
  currencyCode: A?.meta?.currency_code || re || R()
56
56
  }), [q, S] = W(null), ae = (() => {
57
- if (v !== n) return null;
58
- const a = typeof c.value == "number" ? String(c.value) : c.value, u = ue(a, t?.column);
59
- return u.isValid ? null : u.error || null;
60
- })(), oe = _?.(String(l), n)?.validationError, O = q || ae || oe || null, Y = I(null);
57
+ if (v !== u) return null;
58
+ const a = typeof c.value == "number" ? String(c.value) : c.value, n = ue(a, t?.column);
59
+ return n.isValid ? null : n.error || null;
60
+ })(), oe = _?.(String(l), u)?.validationError, O = q || ae || oe || null, Y = I(null);
61
61
  P(() => {
62
- if (v === n && Y.current !== n) {
63
- const u = M?.(`${l}-${n}`), r = _?.(String(l), n), e = r?.value !== void 0 ? r.value : t.value || "", o = r?.meta?.currency_code || u || R();
62
+ if (v === u && Y.current !== u) {
63
+ const n = M?.(`${l}-${u}`), r = _?.(String(l), u), e = r?.value !== void 0 ? r.value : t.value || "", o = r?.meta?.currency_code || n || R();
64
64
  y({
65
65
  value: e,
66
66
  currencyCode: o
67
67
  });
68
68
  }
69
- v !== n && Y.current === n && S(null), Y.current = v;
70
- }, [v, n, M, _, l, t.value]), P(() => {
71
- x && v === n && t?.column?.masterDataColumnName && t?.column?.masterDataName && (m && m(String(l), n, {
69
+ v !== u && Y.current === u && S(null), Y.current = v;
70
+ }, [v, u, M, _, l, t.value]), P(() => {
71
+ x && v === t.column.key && (t?.column?.masterDataColumnName || t?.column?.masterDataFormula) && t?.column?.masterDataName && (m && m(String(l), u, {
72
72
  value: x.value,
73
73
  meta: { reference: x.reference },
74
74
  originalValue: t.value
@@ -76,7 +76,8 @@ const C = (t) => ({
76
76
  }, [
77
77
  x,
78
78
  v,
79
- n,
79
+ u,
80
+ t?.column?.masterDataFormula,
80
81
  t?.column?.masterDataColumnName,
81
82
  t?.column?.masterDataName,
82
83
  m,
@@ -90,15 +91,15 @@ const C = (t) => ({
90
91
  P(() => {
91
92
  d.current = c;
92
93
  }, [c]);
93
- const E = I(null), i = `${l}-${n}`;
94
+ const E = I(null), i = `${l}-${u}`;
94
95
  fe(() => {
95
96
  const a = E.current;
96
97
  if (!a) return;
97
- const u = h.get(i);
98
- if (u) {
98
+ const n = h.get(i);
99
+ if (n) {
99
100
  a.focus();
100
101
  try {
101
- a.setSelectionRange(u.start, u.end);
102
+ a.setSelectionRange(n.start, n.end);
102
103
  } catch {
103
104
  }
104
105
  } else w !== i && a.focus();
@@ -109,12 +110,12 @@ const C = (t) => ({
109
110
  }, []);
110
111
  const $ = N(
111
112
  (a) => {
112
- b(C(a)), m && m(String(l), n, {
113
+ b(C(a)), m && m(String(l), u, {
113
114
  value: a,
114
115
  originalValue: t.value
115
116
  });
116
117
  },
117
- [b, m, l, n, t.value]
118
+ [b, m, l, u, t.value]
118
119
  ), V = N(
119
120
  (a) => {
120
121
  k.current && clearTimeout(k.current), k.current = setTimeout(() => {
@@ -125,30 +126,30 @@ const C = (t) => ({
125
126
  ), z = N(() => {
126
127
  k.current && (clearTimeout(k.current), k.current = void 0, $(String(d.current.value ?? "")));
127
128
  }, [$]), K = N(() => {
128
- const a = t?.column?.type?.toLowerCase(), u = d.current.value;
129
+ const a = t?.column?.type?.toLowerCase(), n = d.current.value;
129
130
  switch (a) {
130
131
  case "url":
131
- U(String(u ?? ""));
132
+ U(String(n ?? ""));
132
133
  break;
133
134
  case "e-mail":
134
- j(String(u ?? ""));
135
+ j(String(n ?? ""));
135
136
  break;
136
137
  default:
137
- f(u);
138
+ f(n);
138
139
  break;
139
140
  }
140
141
  }, [t?.column?.type]), X = N(() => {
141
- const a = t?.column?.type?.toLowerCase(), u = d.current.value, r = d.current.currencyCode;
142
+ const a = t?.column?.type?.toLowerCase(), n = d.current.value, r = d.current.currencyCode;
142
143
  let e = !0;
143
144
  switch (a) {
144
145
  case "url":
145
- e = U(String(u ?? ""));
146
+ e = U(String(n ?? ""));
146
147
  break;
147
148
  case "e-mail":
148
- e = j(String(u ?? ""));
149
+ e = j(String(n ?? ""));
149
150
  break;
150
151
  default:
151
- e = f(u);
152
+ e = f(n);
152
153
  break;
153
154
  }
154
155
  if (!e)
@@ -156,23 +157,23 @@ const C = (t) => ({
156
157
  let o = null;
157
158
  return a === "currency" && (o = { currency_code: M?.(T) || r }), {
158
159
  isValid: !0,
159
- value: typeof u == "number" ? String(u) : u,
160
+ value: typeof n == "number" ? String(n) : n,
160
161
  meta: o
161
162
  };
162
163
  }, [t?.column?.type, T, M]);
163
164
  P(() => {
164
- L && v === n && L(X);
165
- }, [L, X, v, n]);
165
+ L && v === u && L(X);
166
+ }, [L, X, v, u]);
166
167
  const ne = () => {
167
168
  if (t?.column?.is_master_data && t?.column?.masterDataName && (t?.column?.masterDataColumnName || t?.column?.masterDataFormula)) {
168
- const r = _?.(String(l), n), e = x?.value ?? r?.value ?? t.value;
169
+ const r = _?.(String(l), u), e = x?.value ?? r?.value ?? t.value;
169
170
  return /* @__PURE__ */ s("div", { onMouseDown: (o) => o.stopPropagation(), className: "z-[120] h-full w-full", children: /* @__PURE__ */ s(
170
171
  ve,
171
172
  {
172
173
  id: `master-data-cell-${l}-${t.column.id}`,
173
174
  value: e,
174
175
  onChange: (o, D) => {
175
- b(C(o)), m && m(String(l), n, {
176
+ b(C(o)), m && m(String(l), u, {
176
177
  value: o,
177
178
  meta: { reference: D || null },
178
179
  originalValue: t.value
@@ -188,10 +189,10 @@ const C = (t) => ({
188
189
  }
189
190
  ) });
190
191
  }
191
- const a = t?.column?.type?.toLowerCase(), u = n ? t?.row?.original?.__cellMetadata?.[n] : void 0;
192
+ const a = t?.column?.type?.toLowerCase(), n = u ? t?.row?.original?.__cellMetadata?.[u] : void 0;
192
193
  switch (a) {
193
194
  case "choice": {
194
- const r = u?.choices ?? t?.column?.choices;
195
+ const r = n?.choices ?? t?.column?.choices;
195
196
  return /* @__PURE__ */ s("div", { onMouseDown: (e) => e.stopPropagation(), children: /* @__PURE__ */ s(
196
197
  ie,
197
198
  {
@@ -203,7 +204,7 @@ const C = (t) => ({
203
204
  })) || [],
204
205
  onChange: (e) => {
205
206
  const o = e ? Array.isArray(e) ? e[0]?.value?.toString() || "" : e?.value?.toString() || "" : "";
206
- y((D) => ({ ...D, value: o })), b(C(o)), m && m(String(l), n, {
207
+ y((D) => ({ ...D, value: o })), b(C(o)), m && m(String(l), u, {
207
208
  value: o,
208
209
  originalValue: t.value
209
210
  }), g(o), f(o);
@@ -233,7 +234,7 @@ const C = (t) => ({
233
234
  value: c.value || void 0,
234
235
  handleOnChange: (r) => {
235
236
  const e = r || "";
236
- y((o) => ({ ...o, value: e })), b(C(e)), m && m(String(l), n, {
237
+ y((o) => ({ ...o, value: e })), b(C(e)), m && m(String(l), u, {
237
238
  value: e,
238
239
  originalValue: t.value
239
240
  }), g(e), f(e);
@@ -256,7 +257,7 @@ const C = (t) => ({
256
257
  y((D) => ({
257
258
  value: e,
258
259
  currencyCode: o || D.currencyCode
259
- })), b(C(e)), m && m(String(l), n, {
260
+ })), b(C(e)), m && m(String(l), u, {
260
261
  value: e,
261
262
  meta: { currency_code: o },
262
263
  originalValue: t.value,
@@ -324,7 +325,7 @@ const C = (t) => ({
324
325
  id: `toggle-cell-${l}-${t.column.id}`,
325
326
  isChecked: r,
326
327
  onChange: (e) => {
327
- y((o) => ({ ...o, value: e })), b(C(e)), m && m(String(l), n, {
328
+ y((o) => ({ ...o, value: e })), b(C(e)), m && m(String(l), u, {
328
329
  value: e,
329
330
  originalValue: t.value
330
331
  }), g(e);