@progress/kendo-react-spreadsheet 7.0.0-develop.9 → 7.0.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.
@@ -2,4 +2,4 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- (function(r,_){typeof exports=="object"&&typeof module<"u"?_(exports,require("react"),require("prop-types"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-layout"),require("@progress/kendo-react-dialogs"),require("@progress/kendo-react-popup"),require("@progress/kendo-react-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-dropdowns"),require("@progress/kendo-react-intl"),require("@progress/kendo-react-sortable"),require("@progress/kendo-spreadsheet-common"),require("@progress/kendo-file-saver"),require("@progress/kendo-ooxml"),require("@progress/kendo-react-upload"),require("@progress/kendo-react-inputs")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-buttons","@progress/kendo-react-layout","@progress/kendo-react-dialogs","@progress/kendo-react-popup","@progress/kendo-react-common","@progress/kendo-svg-icons","@progress/kendo-react-dropdowns","@progress/kendo-react-intl","@progress/kendo-react-sortable","@progress/kendo-spreadsheet-common","@progress/kendo-file-saver","@progress/kendo-ooxml","@progress/kendo-react-upload","@progress/kendo-react-inputs"],_):(r=typeof globalThis<"u"?globalThis:r||self,_(r.KendoReactSpreadsheet={},r.React,r.PropTypes,r.KendoReactButtons,r.KendoReactLayout,r.KendoReactDialogs,r.KendoReactPopup,r.KendoReactCommon,r.KendoSvgIcons,r.KendoReactDropdowns,r.KendoReactIntl,r.KendoReactSortable,r.KendoSpreadsheetCommon,r.KendoFileSaver,r.KendoOoxml,r.KendoReactUpload,r.KendoReactInputs))})(this,function(r,_,Vt,N,we,ke,qt,K,f,$,L,Jt,I,Ne,Se,$t,Gt){"use strict";function Ie(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return n.default=t,Object.freeze(n)}const e=Ie(_),z=Ie(Vt),G=e.forwardRef((t,n)=>{const o=e.useRef(null),s=e.useRef(null);return e.useImperativeHandle(o,()=>({element:s.current,props:t})),e.useImperativeHandle(n,()=>o.current),e.createElement("div",{className:"k-list k-list-md"},e.createElement("div",{className:"k-list-content"},e.createElement("ul",{ref:s,className:"k-spreadsheet-formula-list k-list-ul",onMouseDown:a=>a.preventDefault(),style:{maxHeight:280}},t.data.map(a=>e.createElement("li",{key:a.text,className:"k-list-item",onClick:()=>t.onItemClick(a.value)},e.createElement(K.IconWrap,{name:"formula-fx",icon:f.formulaFxIcon}),e.createElement("span",{className:"k-list-item-text"},a.text))))))});G.displayName="List",G.propTypes={};const J=e.forwardRef((t,n)=>{const[o,s]=e.useState(!1),[a,l]=e.useState(0),[m,d]=e.useState([]),i=e.useMemo(()=>({}),[]);i.showPopup=o,i.popupContentKey=a,i.data=m;const v=e.useRef(null),E=e.useRef(null),C=e.useRef(null),h=e.useCallback(()=>{if(C.current&&C.current.element)return C.current.element.querySelector(".k-focus")},[]),A=e.useCallback(()=>{const b=h();b&&b.classList.remove("k-focus")},[]),g=e.useCallback(b=>{const T=Array.from(C.current&&C.current.element.children||[]),P=h();let p;if(P){const k=T.indexOf(P);P.classList.remove("k-focus"),p=T[k+b]?T[k+b]:b===1?T[0]:T[T.length-1]}else p=b===1?T[0]:T[T.length-1];p&&p.classList.add("k-focus")},[]);e.useImperativeHandle(v,()=>({element:E.current,props:t,popup:{open:()=>{s(!0)},close:()=>{s(!1)},position:()=>{l(i.popupContentKey+1)},visible:()=>i.showPopup},list:{get element(){return C.current&&C.current.element},data:b=>{if(b)d(b);else return i.data},value:()=>({}),focus:()=>Array.from(C.current&&C.current.element&&C.current.element.children||[]).indexOf(h()),focusNext:()=>{g(1)},focusPrev:()=>{g(-1)},focusFirst:()=>{const b=C.current&&C.current.element;b&&b.children.item(0)&&(A(),b.children.item(0).classList.add("k-focus"))},focusLast:()=>{const b=C.current&&C.current.element;b&&b.children.length&&(A(),b.children.item(b.children.length-1).classList.add("k-focus"))},itemClick:b=>{i.itemClick=b}}}),[]),e.useImperativeHandle(n,()=>v.current,[]);const x=e.useCallback(b=>{i.itemClick&&i.itemClick(b)},[]);return e.createElement(e.Fragment,null,e.createElement("div",{className:K.classNames("k-spreadsheet-formula-input",t.className),contentEditable:"true",spellCheck:"false",style:{whiteSpace:"pre"},ref:E}),e.createElement(qt.Popup,{show:o,anchor:E.current,animate:{openDuration:100,closeDuration:100},contentKey:a,popupClass:"k-list-container"},e.createElement(G,{data:m,ref:C,onItemClick:x})))});J.displayName="FormulaInput",J.propTypes={};const Ae="spreadsheet.bold",De="spreadsheet.italic",Le="spreadsheet.underline",Re="spreadsheet.openFile",Te="spreadsheet.textColor",Fe="spreadsheet.background",Ke="spreadsheet.addRowAbove",ze="spreadsheet.addRowBelow",Pe="spreadsheet.addColumnLeft",Oe="spreadsheet.addColumnRight",Me="spreadsheet.deleteRow",Be="spreadsheet.deleteColumn",je="spreadsheet.undo",He="spreadsheet.redo",Ue="spreadsheet.fontSize",We="spreadsheet.fontSizeIncrease",_e="spreadsheet.fontSizeDecrease",Ve="spreadsheet.fontName",qe="spreadsheet.cleanFormatting",Je="spreadsheet.format",$e="spreadsheet.alignHorizontally",Ge="spreadsheet.alignVertically",Xe="spreadsheet.align",Ze="spreadsheet.alignLeft",Ye="spreadsheet.alignRight",Qe="spreadsheet.alignCenter",et="spreadsheet.center",tt="spreadsheet.alignJustify",nt="spreadsheet.justify",at="spreadsheet.alignTop",ot="spreadsheet.alignMiddle",rt="spreadsheet.alignBottom",lt="spreadsheet.increaseDecimal",st="spreadsheet.decreaseDecimal",ct="spreadsheet.textWrap",it="spreadsheet.gridLines",ut="spreadsheet.exportToExcel",dt="spreadsheet.nameBox",mt="spreadsheet.defaultSheetName",pt="spreadsheet.home",ft="spreadsheet.file",gt="spreadsheet.insert",bt="spreadsheet.formatTab",ht="spreadsheet.addNewSheet",yt="spreadsheet.error",Ct="spreadsheet.ok",vt="spreadsheet.modifyMerged",Et="spreadsheet.cannotModifyDisabled",xt="spreadsheet.openUnsupported",wt="spreadsheet.duplicateSheetName",S={[Ae]:"Bold",[De]:"Italic",[Le]:"Underline",[je]:"Undo",[He]:"Redo",[Ue]:"Font size",[We]:"Increase Font size",[_e]:"Decrease Font size",[Ve]:"Font",[qe]:"Clean formatting",[Je]:"Custom format...",[$e]:"Align horizontally",[Ge]:"Align vertically",[Xe]:"Align",[Ze]:"Align left",[Ye]:"Align right",[Qe]:"Align center",[tt]:"Align justify",[et]:"Center",[nt]:"Justify",[at]:"Align top",[ot]:"Align middle",[rt]:"Align bottom",[lt]:"Increase decimal",[st]:"Decrease decimal",[Te]:"Text Color",[Fe]:"Background color",[Ke]:"Add row above",[ze]:"Add row below",[Pe]:"Add column left",[Oe]:"Add column right",[Me]:"Delete row",[Be]:"Delete column",[Re]:"Open...",[ut]:"Export to Excel",[ct]:"Text Wrap",[it]:"Toggle gridlines",[dt]:"Name Box",[mt]:"Sheet",[pt]:"Home",[ft]:"File",[gt]:"Insert",[ht]:"Add new sheet",[bt]:"Format",[vt]:"Cannot change part of a merged cell.",[Et]:"Cannot modify disabled cells.",[xt]:"Unsupported format. Please select an .xlsx file.",[wt]:"There is an existing sheet with this name. Please enter another name.",[yt]:"Error",[Ct]:"OK"},c={bold:Ae,italic:De,underline:Le,undo:je,redo:He,fontSize:Ue,fontSizeIncrease:We,fontSizeDecrease:_e,fontName:Ve,cleanFormatting:qe,format:Je,alignHorizontally:$e,alignVertically:Ge,align:Xe,alignLeft:Ze,alignRight:Ye,alignCenter:Qe,center:et,alignJustify:tt,justify:nt,alignTop:at,alignMiddle:ot,alignBottom:rt,increaseDecimal:lt,decreaseDecimal:st,textColor:Te,background:Fe,addRowAbove:Ke,addRowBelow:ze,addColumnLeft:Pe,addColumnRight:Oe,deleteRow:Me,deleteColumn:Be,open:Re,exportToExcel:ut,textWrap:ct,gridLines:it,nameBox:dt,defaultSheetName:mt,file:ft,home:pt,insert:gt,addNewSheet:ht,error:yt,ok:Ct,modifyMerged:vt,cannotModifyDisabled:Et,openUnsupported:xt,duplicateSheetName:wt,formatTab:bt},X=e.forwardRef((t,n)=>{const o=e.useRef(null),s=e.useRef(null),[a,l]=e.useState([]),[m,d]=e.useState(!1),[i,v]=e.useState(""),E=e.useMemo(()=>({}),[]);E.data=a,e.useImperativeHandle(o,()=>({value:p=>{if(p===void 0){const k=s.current&&s.current.value;return k&&(k.name||k)}else v(p||"")}}),[]),e.useImperativeHandle(n,()=>o.current,[]);const C=e.useCallback(p=>{const k=t.nameEditor();k&&k.trigger("delete",{name:p})},[]),h=e.useCallback((p,k)=>{const O=e.createElement(e.Fragment,null,p.props.children,e.createElement("span",{role:"button",className:"k-button-delete",onClick:()=>C(k.dataItem[k.textField]),onMouseDown:w=>w.preventDefault(),onPointerDown:w=>w.preventDefault(),"data-role":"delete"},e.createElement(K.IconWrap,{name:"x",icon:f.xIcon})));return e.cloneElement(p,p.props,O)},[]),A=e.useCallback(p=>e.cloneElement(p,{...p.props},e.createElement("div",null)),[]),g=e.useCallback(p=>{if(p.syntheticEvent&&p.syntheticEvent.type==="change")return;const k=t.nameEditor();k&&(l(k.readData()),d(!0))},[]),x=e.useCallback(()=>{d(!1)},[]),b=e.useCallback(p=>{if(p.syntheticEvent.target.closest("[data-role]"))return;const k=t.nameEditor();if(k&&p.value){const O=p.value.name;O!==i&&(k.trigger("select",{name:O}),v(O))}},[i]),T=e.useCallback(p=>{const k=t.nameEditor();if(k)if(p.key==="Enter"){const O=p.target.value;k.trigger("enter",{value:O}),v(O)}else p.key==="Escape"&&(k.trigger("cancel"),v(E.prevValue))},[]),P=e.useCallback(p=>{E.prevValue=p.value.name},[]);return e.createElement("div",{className:"k-spreadsheet-name-editor",onKeyDown:T},e.createElement($.ComboBox,{ref:s,title:L.useLocalization().toLanguageString(c.nameBox,S[c.nameBox]),popupSettings:{className:"k-spreadsheet-names-popup"},fillMode:"flat",clearButton:!1,dataItemKey:"name",textField:"name",itemRender:h,data:a,value:i?a.find(p=>p.name===i)||{name:i}:null,onChange:b,opened:m,onOpen:g,onClose:x,onFocus:P,listNoDataRender:A,allowCustom:!0}))});X.displayName="NameBox",X.propTypes={};const Xt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},kt=e.createContext(Xt),Zt=t=>{const n=t.dataItem,{onSelect:o,onDelete:s,onEnterEdit:a,onExitEdit:l,onCancelEdit:m,onEdit:d}=e.useContext(kt),i=e.useCallback(g=>{g.target instanceof HTMLElement&&g.target.nodeName==="INPUT"||o.call(void 0,n,g)},[n,o]),v=e.useCallback(g=>{s.call(void 0,n,g)},[n,s]),E=e.useCallback(g=>{g.target instanceof HTMLElement&&g.target.nodeName==="INPUT"||a.call(void 0,n,g)},[n,a]),C=e.useCallback(g=>{l.call(void 0,n,g)},[n,l]),h=e.useCallback(g=>{g.key==="Enter"?l.call(void 0,n,g):g.key==="Escape"&&m.call(void 0,n,g)},[n,l,m]),A=e.useCallback(g=>{d.call(void 0,{...n,text:g.target.value},g)},[n,d]);return e.createElement("li",{style:t.style,...t.attributes,ref:t.forwardRef,role:"tab",className:K.classNames("k-item k-tabstrip-item",{"k-disabled":t.isDisabled,"k-active k-state-tab-on-top k-spreadsheet-sheets-bar-active":n.active,"k-spreadsheet-sheets-bar-inactive":!n.active,"k-first":n.first,"k-last":n.last}),onClick:i,onDoubleClick:E},n.inEdit?e.createElement("input",{type:"text",className:"k-textbox k-spreadsheet-sheets-editor",value:n.text,onChange:A,maxLength:50,autoFocus:!0,onBlur:C,onKeyDown:h}):e.createElement(e.Fragment,null,e.createElement("span",{className:"k-link"},n.text),n.first&&n.last?null:e.createElement("span",{className:"k-link k-spreadsheet-sheets-remove",onClick:v},e.createElement(K.IconWrap,{name:"x",icon:f.xIcon}))))},Nt=e.forwardRef((t,n)=>{const{children:o,className:s,...a}=t;return e.createElement("ul",{className:K.classNames("k-tabstrip-items k-reset",s),role:"tablist",...a,ref:n},o)});Nt.displayName="TabsList";const Yt=t=>{const{sheets:n,setSheets:o,onSheetSelect:s,onSheetDelete:a,onSheetEdit:l,onSheetReorderEnd:m}=t,[d,i]=e.useState(null),v=e.useRef(!1),E=e.useRef(-1),C=e.useCallback(w=>{o(w.map((R,M,F)=>({...R,first:M===0,last:M===F.length-1})))},[]),h=e.useCallback(w=>{C(w.newState)},[C,m]),A=e.useCallback(w=>{m.call(void 0,w)},[m]),g=e.useCallback(w=>{v.current=!0,E.current=w.prevIndex},[]),x=e.useCallback(w=>{setTimeout(()=>{v.current=!1},50),m.call(void 0,{...w,prevIndex:E.current})},[]),b=e.useCallback((w,R)=>{v.current||s.call(void 0,w,R)},[s]),T=e.useCallback((w,R)=>{R.stopPropagation(),a.call(void 0,w)},[n,a]),P=e.useCallback((w,R)=>{R.stopPropagation(),R.preventDefault();const M=n.map(F=>({...F,active:F.id===w.id,inEdit:F.id===w.id}));o(M),i({...w})},[n]),p=e.useCallback((w,R)=>{R.stopPropagation(),R.preventDefault();const M=n.map(F=>({...F,inEdit:!1,text:F.inEdit&&d?d.text:F.text}));o(M),i(null)},[n,d]),k=e.useCallback((w,R)=>{R.stopPropagation(),R.preventDefault();const M=n.map(W=>({...W,inEdit:!1})),F=n.findIndex(W=>W.id===w.id);o(M),i(null),l.call(void 0,w,F)},[n,l]),O=e.useCallback((w,R)=>{R.stopPropagation(),R.preventDefault();const M=n.map(F=>({...F,text:w.id===F.id?w.text:F.text}));o(M)},[n]);return e.createElement("div",{className:"k-spreadsheet-sheets-items k-tabstrip k-floatwrap k-tabstrip-bottom"},e.createElement("div",{className:"k-tabstrip-items-wrapper k-hstack"},e.createElement(kt.Provider,{value:{onSelect:b,onDelete:T,onEnterEdit:P,onCancelEdit:p,onExitEdit:k,onEdit:O}},e.createElement(Jt.Sortable,{idField:"id",data:n,itemUI:Zt,itemsWrapUI:Nt,onDragOver:h,onNavigate:A,onDragStart:g,onDragEnd:x}))))},Qt=(t,n)=>t.map((o,s,a)=>({text:o.name(),id:K.guid(),first:s===0,last:s===a.length-1,active:o.name()===n})),en=t=>{const{spreadsheetRef:n}=t,[o,s]=e.useState([]),a=e.useRef((o.find(h=>h.active)||{}).text),l=e.useCallback(()=>{n.current&&(n.current.view.sheetsbar.onSheetSelect(a.current),s(Qt(n.current.sheets(),a.current)))},[]),m=e.useCallback(()=>{if(n.current){const h=n.current.sheets();h.find(A=>A.name()===a.current)||(a.current=h[h.length-1].name()),l()}},[]);e.useEffect(()=>(n.current&&(n.current.sheets().length&&(a.current=n.current.sheets()[0].name(),l()),n.current.view.bind("update",m)),()=>{n.current&&n.current.view.unbind("update",m)}),[n.current]);const d=e.useCallback(h=>{a.current!==h.text&&(a.current=h.text,l())},[]),i=e.useCallback(()=>{if(n.current){n.current.view.sheetsbar.onAddSelect();const h=n.current.sheets();a.current=h[h.length-1].name(),l()}},[]),v=e.useCallback(h=>{if(n.current){if(a.current===h.text){const A=n.current.sheets(),g=A.findIndex(b=>b.name()===h.text),x=A[g+1]||A[g-1];a.current=x?x.name():""}n.current.view.sheetsbar.onSheetRemove(h.text),l()}},[]),E=e.useCallback((h,A)=>{if(n.current){let g=h.text;const x=n.current.sheets(),b=x[A];if(!g){a.current=b.name(),l();return}if(b&&b.name()===g)return;x.find(T=>T.name()===g)&&(g=b.name()),n.current.view.sheetsbar.onSheetRename(g,A),a.current=g,l()}},[]),C=e.useCallback(h=>{if(n.current){const{prevIndex:A,nextIndex:g}=h;a.current=n.current.sheets()[A].name(),n.current.view.sheetsbar.onSheetReorderEnd({oldIndex:A,newIndex:g}),l()}},[]);return e.createElement("div",{className:"k-spreadsheet-sheets-bar k-header"},e.createElement(N.Button,{fillMode:"flat",icon:"plus",className:"k-spreadsheet-sheets-bar-add",title:L.useLocalization().toLanguageString(c.addNewSheet,S[c.addNewSheet]),svgIcon:f.plusIcon,onClick:i}),e.createElement(Yt,{sheets:o,setSheets:s,onSheetSelect:d,onSheetDelete:v,onSheetEdit:E,onSheetReorderEnd:C}))},Z=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(()=>{n.current&&n.current.saveAsExcel({...n.current.options.excel,saveAs:Ne.saveAs,Workbook:Se.Workbook})},[]);return e.createElement(N.Button,{className:"k-toolbar-button",title:"Export...",icon:"download",fillMode:"flat",svgIcon:f.downloadIcon,onClick:o})};Z.displayName="ExcelExport";const Y=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(a=>{const l=a.target;if(l instanceof Element&&l.parentNode){const m=l.closest(".k-toolbar"),d=m&&m.querySelector(".k-upload input");d&&d.click()}},[]),s=e.useCallback(a=>{const l=a.newState;if(l[0]&&l[0].getRawFile){const m=l[0].getRawFile();n.current&&n.current.executeCommand({command:"OpenCommand",options:{file:m}})}},[]);return e.createElement(e.Fragment,null,e.createElement(N.Button,{className:"k-toolbar-button",title:L.useLocalization().toLanguageString(c.open,S[c.open]),icon:"folder-open",svgIcon:f.folderOpenIcon,fillMode:"flat",onClick:o}),e.createElement("div",{style:{display:"none"}},e.createElement($t.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:s,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};Y.displayName="Open";const tn=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],nn="Arial",an=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],on=12,rn=[{text:"Automatic",value:null},{text:"Text",value:"@"},{text:"Number",value:"#,0.00"},{text:"Percent",value:"0.00%"},{text:"Financial",value:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'},{text:"Currency",value:"$#,##0.00;[Red]$#,##0.00"},{text:"Date",value:"m/d/yyyy"},{text:"Time",value:"h:mm:ss AM/PM"},{text:"Date time",value:"m/d/yyyy h:mm"},{text:"Duration",value:"[h]:mm:ss"}],Q=t=>o=>{const{property:s,icon:a,svgIcon:l,titleKey:m}=t,{spreadsheetRef:d,value:i}=o,v=e.useCallback(()=>{if(d.current){const C={command:"PropertyChangeCommand",options:{property:s,value:!i}};d.current.executeCommand(C)}},[i]);return e.createElement(N.Button,{type:"button",icon:a,svgIcon:l,fillMode:"flat",togglable:!0,onClick:v,selected:i,title:L.useLocalization().toLanguageString(m,S[m])})},St=t=>o=>{const{property:s,titleKey:a,...l}=t,{spreadsheetRef:m,value:d}=o,i=e.useCallback(v=>{if(m.current){const E={command:"PropertyChangeCommand",options:{property:s,value:v.value||null}};m.current.executeCommand(E)}},[s]);return e.createElement(Gt.ColorPicker,{onChange:i,onActiveColorClick:i,fillMode:"flat",...l,title:L.useLocalization().toLanguageString(a,S[a]),value:d})},It=t=>o=>{const{spreadsheetRef:s}=o,a=e.useCallback(()=>{s.current&&s.current.workbook.undoRedoStack[t.action]()},[]);return e.createElement(N.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(t.titleKey,S[t.titleKey]),onClick:a})},ln={property:"bold",icon:"bold",svgIcon:f.boldIcon,titleKey:c.bold},ee=Q(ln);ee.displayName="Bold";const sn={property:"italic",icon:"italic",svgIcon:f.italicIcon,titleKey:c.italic},te=Q(sn);te.displayName="Italic";const cn={property:"underline",icon:"underline",svgIcon:f.underlineIcon,titleKey:c.underline},ne=Q(cn);ne.displayName="Underline";const ae=t=>{const{spreadsheetRef:n,value:o}=t,s=e.useCallback(a=>{if(n.current){const l={command:"PropertyChangeCommand",options:{property:"fontFamily",value:a.value||null}};n.current.executeCommand(l)}},[]);return e.createElement($.DropDownList,{onChange:s,value:o,data:tn,defaultValue:nn,fillMode:"flat",title:L.useLocalization().toLanguageString(c.fontName,S[c.fontName]),leftRightKeysNavigation:!1})};ae.displayName="FontFamily";const oe=1,re=409,le=t=>typeof t=="string"?parseFloat(t):t,se=t=>{const{spreadsheetRef:n}=t,o=le(t.value),s=e.useCallback(a=>{var d;let l=a.value?le(a.value):o;l=isNaN(l)?o:l,l=Math.min(re,Math.max(oe,l));const m={command:"PropertyChangeCommand",options:{property:"fontSize",value:l}};a.nativeEvent.type==="keydown"||a.nativeEvent.type==="focusout"?(d=n.current)==null||d.executeCommand(m):setTimeout(()=>{var i;(i=n.current)==null||i.executeCommand(m)},0)},[o]);return e.createElement($.ComboBox,{onChange:s,value:o,data:an,defaultValue:on,allowCustom:!0,fillMode:"flat",title:L.useLocalization().toLanguageString(c.fontSize,S[c.fontSize]),tabIndex:-1,clearButton:!1})};se.displayName="FontSize";const At=t=>{const n=o=>{const{property:s,icon:a,svgIcon:l,titleKey:m,step:d}=t,{spreadsheetRef:i}=o,v=le(o.value),E=e.useCallback(()=>{var h;const C={command:"PropertyChangeCommand",options:{property:s,value:Math.min(re,Math.max(oe,v+d))}};(h=i.current)==null||h.executeCommand(C)},[v]);return e.createElement(N.Button,{type:"button",icon:a,svgIcon:l,fillMode:"flat",onClick:E,disabled:v+d<oe||v+d>re,title:L.useLocalization().toLanguageString(m,S[m])})};return n.displayName=t.displayName,n},Dt=At({property:"fontSize",icon:"font-grow",svgIcon:f.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Lt=At({property:"fontSize",icon:"font-shrink",svgIcon:f.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),ce=St({icon:"foreground-color",svgIcon:f.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});ce.displayName="TextColor";const ie=St({icon:"droplet",svgIcon:f.dropletIcon,view:"palette",property:"background",titleKey:c.background,ariaLabel:"Background"});ie.displayName="BackgroundColor";const H=[{icon:"align-left",svgIcon:f.alignLeftIcon,textKey:c.alignLeft,commandName:"textAlign",value:"left",selected:!1},{icon:"align-center",svgIcon:f.alignCenterIcon,textKey:c.alignCenter,commandName:"textAlign",value:"center",selected:!1},{icon:"align-right",svgIcon:f.alignRightIcon,textKey:c.alignRight,commandName:"textAlign",value:"right",selected:!1},{icon:"align-justify",svgIcon:f.alignJustifyIcon,textKey:c.alignJustify,commandName:"textAlign",value:"justify",selected:!1},{icon:"align-top",svgIcon:f.alignTopIcon,textKey:c.alignTop,commandName:"verticalAlign",value:"top",selected:!1},{icon:"align-middle",svgIcon:f.alignMiddleIcon,textKey:c.alignMiddle,commandName:"verticalAlign",value:"center",selected:!1},{icon:"align-bottom",svgIcon:f.alignBottomIcon,textKey:c.alignBottom,commandName:"verticalAlign",value:"bottom",selected:!1}],un=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],dn=H.filter(t=>t.commandName==="verticalAlign"),Rt=t=>{const{value:n,spreadsheetRef:o}=t,{textAlign:s,verticalAlign:a}=n||{},l=L.useLocalization(),m=e.useCallback(i=>{if(o.current){const v=i.item,E={command:"PropertyChangeCommand",options:{property:v.commandName,value:v.value||null}};o.current.executeCommand(E)}},[]);let d=H.slice();return d=d.map(i=>({...i,text:l.toLanguageString(i.textKey,S[i.textKey])})),s&&(d=d.map(i=>i.commandName==="textAlign"?{...i,selected:i.value===s}:i)),a&&(d=d.map(i=>i.commandName==="verticalAlign"?{...i,selected:i.value===a}:i)),e.createElement(N.DropDownButton,{icon:"align-left",svgIcon:f.alignLeftIcon,items:d,fillMode:"flat",onItemClick:m,title:l.toLanguageString(c.align,S[c.align]),text:e.createElement(K.IconWrap,{name:"caret-alt-down",icon:f.caretAltDownIcon})})};Rt.displayName="Alignment";const mn={items:un,icon:{icon:"align-left",svgIcon:f.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},pn={items:dn,icon:{icon:"align-bottom",svgIcon:f.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Tt=t=>{const n=o=>{const{value:s,spreadsheetRef:a}=o,l=L.useLocalization(),m=e.useCallback(E=>{if(a.current){const C=E.item,h={command:"PropertyChangeCommand",options:{property:C.commandName,value:C.value||null}};a.current.executeCommand(h)}},[]);let d=t.items.slice();d=d.map(E=>({...E,text:l.toLanguageString(E.textKey,S[E.textKey])})),d=d.map(E=>({...E,selected:E.value===s}));const i={...t.icon},v=d.find(E=>E.selected);return v&&(i.icon=v.icon,i.svgIcon=v.svgIcon),e.createElement(N.DropDownButton,{...i,items:d,fillMode:"flat",onItemClick:m,title:l.toLanguageString(t.titleKey,S[t.titleKey]),text:e.createElement(K.IconWrap,{name:"caret-alt-down",icon:f.caretAltDownIcon})})};return n.displayName=t.displayName,n},Ft=Tt(mn),Kt=Tt(pn),ue=t=>{const{value:n,spreadsheetRef:o}=t,s=e.useCallback(()=>{if(o.current){const a=o.current.activeSheet();if(a){const d={command:"TextWrapCommand",options:{property:"wrap",value:!a.range(a.activeCell()).wrap()}};o.current.executeCommand(d)}}},[]);return e.createElement(N.Button,{type:"button",togglable:!0,icon:"text-wrap",svgIcon:f.textWrapIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(c.textWrap,S[c.textWrap]),onClick:s,selected:n})};ue.displayName="TextWrap";const de=t=>{const{value:n,spreadsheetRef:o}=t,s=e.useCallback(()=>{if(o.current){const a=o.current.activeSheet();if(a){const m={command:"GridLinesChangeCommand",options:{property:"gridLines",value:!a.showGridLines()}};o.current.executeCommand(m)}}},[]);return e.createElement(N.Button,{type:"button",togglable:!0,icon:"borders-none",svgIcon:f.bordersNoneIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(c.gridLines,S[c.gridLines]),onClick:s,selected:n})};de.displayName="GridLines";const me=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(s=>{const a=s.item.value||null;setTimeout(()=>{if(n.current){const l={command:"PropertyChangeCommand",options:{property:"format",value:a}};n.current.executeCommand(l)}},0)},[]);return e.createElement(N.DropDownButton,{icon:"custom-format",svgIcon:f.customFormatIcon,fillMode:"flat",onItemClick:o,items:rn,title:L.useLocalization().toLanguageString(c.format,S[c.format]),text:e.createElement(K.IconWrap,{name:"caret-alt-down"})})};me.displayName="Format";const U=t=>o=>{const{spreadsheetRef:s,value:a}=o,l=e.useCallback(()=>{if(s.current){const m={command:t.command,options:{value:t.value}};s.current.executeCommand(m)}},[]);return e.createElement(N.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(t.titleKey,S[t.titleKey]),onClick:l,disabled:a&&t.disabled(a)})},fn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:f.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},gn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:f.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},bn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:f.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},hn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:f.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},yn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:f.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},Cn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:f.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},pe=U(fn),fe=U(gn),ge=U(bn),be=U(hn),he=U(yn),ye=U(Cn);pe.displayName="AddColumnLeft",fe.displayName="AddColumnRight",ge.displayName="AddRowBelow",be.displayName="AddRowAbove",he.displayName="DeleteColumn",ye.displayName="DeleteRow";const vn={action:"undo",icon:"reset",svgIcon:f.arrowRotateCcwIcon,titleKey:c.undo},Ce=It(vn);Ce.displayName="Undo";const En={action:"redo",icon:"reload",svgIcon:f.arrowRotateCwIcon,titleKey:c.redo},ve=It(En);ve.displayName="Redo";const zt=t=>o=>{const{icon:s,svgIcon:a,titleKey:l,value:m}=t,{spreadsheetRef:d}=o,i=e.useCallback(()=>{if(d.current){const v={command:"AdjustDecimalsCommand",options:{value:m}};d.current.executeCommand(v)}},[]);return e.createElement(N.Button,{type:"button",icon:s,svgIcon:a,fillMode:"flat",onClick:i,title:L.useLocalization().toLanguageString(l,S[l])})},xn=zt({icon:f.decimalIncreaseIcon.name,svgIcon:f.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),wn=zt({icon:f.decimalDecreaseIcon.name,svgIcon:f.decimalDecreaseIcon,value:-1,titleKey:c.decreaseDecimal}),Ee=[{textKey:c.file,tools:[Y,Z]},{textKey:c.home,selected:!0,tools:[[Ce,ve],N.ToolbarSeparator,ae,se,Dt,Lt,N.ToolbarSeparator,[ee,te,ne],ce,N.ToolbarSeparator,ie,N.ToolbarSeparator,Ft,Kt,ue,N.ToolbarSeparator,de]},{textKey:c.insert,tools:[[pe,fe,ge,be],N.ToolbarSeparator,[he,ye]]},{textKey:c.formatTab,tools:[me,[wn,xn]]}],Pt={name:"@progress/kendo-react-spreadsheet",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:1683639393,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning"},Ot=["bold","italic","underline","fontFamily","fontSize","color","background","textAlign","verticalAlign","wrap","gridLines"],Mt={Bold:t=>t.bold,Italic:t=>t.italic,Underline:t=>t.underline,FontFamily:t=>t.fontFamily,FontSize:t=>t.fontSize,IncreaseFontSize:t=>t.fontSize,DecreaseFontSize:t=>t.fontSize,TextColor:t=>t.color,BackgroundColor:t=>t.background,Alignment:t=>({textAlign:t.textAlign,verticalAlign:t.verticalAlign}),AlignHorizontally:t=>t.textAlign,AlignVertically:t=>t.verticalAlign,TextWrap:t=>t.wrap,GridLines:t=>t.gridLines,AddColumnLeft:t=>t.selectedHeaders,AddColumnRight:t=>t.selectedHeaders,AddRowBelow:t=>t.selectedHeaders,AddRowAbove:t=>t.selectedHeaders,DeleteColumn:t=>t.selectedHeaders,DeleteRow:t=>t.selectedHeaders},Bt=":not(.k-dropdownlist button):not(.k-combobox button):not(.k-upload-button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",kn=["button"+Bt,".k-button-group > button"+Bt,".k-dropdownlist",".k-combobox",".k-colorpicker"],xe=e.forwardRef((t,n)=>{K.validatePackage(Pt);const o=K.shouldShowValidationUI(Pt),{toolbar:s=Ee}=t,a=[];typeof s=="boolean"?a.push(...s?Ee:[]):a.push(...s);const[l,m]=e.useState(null),[d,i]=e.useState(a.findIndex(u=>u.selected)||0),[v,E]=e.useState(!1),C=e.useRef(null),h=e.useRef(null),A=e.useRef(null),g=e.useRef(null),x=e.useRef(null),[b,T]=e.useState({}),P=e.useRef({});P.current=b;const p=e.useRef({});p.current=t;const k=L.useLocalization(),O=e.useCallback(u=>{p.current.onSelect&&p.current.onSelect.call(void 0,u)},[]),w=e.useCallback(u=>{p.current.onChange&&p.current.onChange.call(void 0,u)},[]),R=e.useCallback(u=>{p.current.onChangeFormat&&p.current.onChangeFormat.call(void 0,u)},[]),M=e.useCallback(u=>{p.current.onExcelImport&&p.current.onExcelImport.call(void 0,u)},[]),F=e.useCallback(u=>{p.current.onExcelExport&&p.current.onExcelExport.call(void 0,u)},[]),W=e.useRef(null);e.useImperativeHandle(W,()=>({element:C.current,get instance(){return x.current},props:t,get view(){return x.current.view},get workbook(){return x.current.workbook},executeCommand(u){var y;(y=x.current)==null||y.executeCommand(u)},fromJSON(u){var y;return(y=x.current)==null?void 0:y.fromJSON(u)},toJSON(){return x.current.toJSON()},saveJSON(){return x.current.saveJSON()},fromFile(u){return x.current.fromFile(u)},saveAsExcel(u){var y;(y=x.current)==null||y.saveAsExcel({...x.current.options.excel,saveAs:Ne.saveAs,Workbook:Se.Workbook,...u})},activeSheet(u){var y;return(y=x.current)==null?void 0:y.activeSheet(u)},sheets(){return x.current.sheets()},refresh(){var u;return(u=x.current)==null?void 0:u.refresh()}}),[t]),e.useImperativeHandle(n,()=>W.current);const Sn=e.useCallback(()=>x.current&&x.current.view.nameEditor,[]),jt=e.useCallback(u=>{const y={};Ot.forEach(D=>{typeof u.range[D]=="function"?y[D]=u.range[D]():D==="gridLines"&&(y[D]=u.range.sheet().showGridLines())}),y.selectedHeaders=u.range.sheet().selectedHeaders(),(Ot.some(D=>y[D]!==P.current[D])||y.selectedHeaders.allCols!==P.current.selectedHeaders.allCols||y.selectedHeaders.allRows!==P.current.selectedHeaders.allRows)&&T(y)},[]),In=e.useCallback(u=>{const y=u.name,D=c[y];m({title:u.title==="Error"?k.toLanguageString(c.error,S[c.error]||u.title):u.title,message:D?k.toLanguageString(D,S[D]||u.text):u.text,close:u.close})},[]),Ht=e.useCallback(()=>{m(null),l==null||l.close()},[l]),V=L.useInternationalization(),Ut=L.useLocalization();e.useEffect(()=>{var q;const u={...t.defaultProps,sheets:structuredClone((q=t.defaultProps)==null?void 0:q.sheets),messages:{workbook:{defaultSheetName:Ut.toLanguageString(c.defaultSheetName,S[c.defaultSheetName])}},intl:{localeInfo:()=>V.localeInfo(),localeCurrency:()=>V.localeCurrency(),parseDate:(B,j)=>V.parseDate(B,j),toString:(B,j)=>V.toString(B,j),format:(B,...j)=>V.format(B,...j)},formulaBarInputRef:h,formulaCellInputRef:A,nameBoxRef:g},y=new I.SpreadsheetWidget(C.current,u);x.current=y,y.bind("select",O),y.bind("change",w),y.bind("changeFormat",R),y.bind("excelImport",M),y.bind("excelExport",F),y.view.bind("update",jt),y.view.bind("message",In);const D=y.activeSheet();return D&&jt({range:D.range(D.activeCell())}),E(!0),()=>{y.destroy()}},[]);const Wt=e.useCallback((u,y)=>{const D=e.createElement(u,{spreadsheetRef:x,value:Mt[u.displayName]?Mt[u.displayName](b):void 0,key:y});return D.type===N.ToolbarSeparator?e.createElement(u,{key:y}):D},[b]);let _t=null;return a.length&&(_t=e.createElement(we.TabStrip,{selected:d,animation:!1,className:"k-floatwrap k-spreadsheet-tabstrip",style:{minHeight:"auto"},onSelect:u=>i(u.selected)},a.map(u=>{const y=u.textKey?Ut.toLanguageString(u.textKey,S[u.textKey]):u.text;return e.createElement(we.TabStripTab,{key:u.textKey||u.text,title:y},e.createElement(N.Toolbar,{buttons:kn,className:"k-spreadsheet-toolbar"},u.tools.map((D,q)=>Array.isArray(D)?e.createElement(N.ButtonGroup,{key:q},D.map((B,j)=>Wt(B,j))):Wt(D,q))))}))),e.createElement("div",{ref:C,style:t.style,className:K.classNames("k-widget k-spreadsheet",t.className),role:"application"},_t,e.createElement("div",{className:"k-spreadsheet-action-bar"},e.createElement(X,{ref:g,nameEditor:Sn}),e.createElement("div",{className:"k-spreadsheet-formula-bar"},e.createElement(K.IconWrap,{name:"formula-fx",icon:f.formulaFxIcon}),e.createElement(J,{ref:h}))),e.createElement("div",{className:"k-spreadsheet-view"},e.createElement("div",{className:"k-spreadsheet-fixed-container"}),e.createElement("div",{className:"k-spreadsheet-scroller"},e.createElement("div",{className:"k-spreadsheet-view-size"})),e.createElement("div",{tabIndex:0,className:"k-spreadsheet-clipboard",contentEditable:"true"}),e.createElement(J,{ref:A,className:"k-spreadsheet-cell-editor"})),e.createElement(en,{spreadsheetRef:x}),l&&e.createElement(ke.Dialog,{title:l.title,onClose:Ht},e.createElement("div",null,l.message),e.createElement(ke.DialogActionsBar,{layout:"start"},e.createElement(N.Button,{themeColor:"primary",onClick:Ht,autoFocus:!0},k.toLanguageString(c.ok,S[c.ok])))),o&&e.createElement(K.WatermarkOverlay,null))});xe.displayName="KendoReactSpreadsheet",xe.propTypes={className:z.string,defaultProps:z.any,toolbar:z.oneOfType([z.bool,z.arrayOf(z.any)]),style:z.object,onSelect:z.func,onChange:z.func,onChangeFormat:z.func,onExcelImport:z.func,onExcelExport:z.func};const Nn=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(()=>{n.current&&n.current.executeCommand({command:"PropertyCleanCommand"})},[]);return e.createElement(N.Button,{type:"button",icon:"clean-css",svgIcon:f.clearCssIcon,fillMode:"flat",onClick:o,title:L.useLocalization().toLanguageString(c.cleanFormatting,S[c.cleanFormatting])})};Object.defineProperty(r,"CalcError",{enumerable:!0,get:()=>I.CalcError}),Object.defineProperty(r,"CellRef",{enumerable:!0,get:()=>I.CellRef}),Object.defineProperty(r,"Context",{enumerable:!0,get:()=>I.Context}),Object.defineProperty(r,"Matrix",{enumerable:!0,get:()=>I.Matrix}),Object.defineProperty(r,"NULLREF",{enumerable:!0,get:()=>I.NULLREF}),Object.defineProperty(r,"NameRef",{enumerable:!0,get:()=>I.NameRef}),Object.defineProperty(r,"Range",{enumerable:!0,get:()=>I.Range}),Object.defineProperty(r,"RangeRef",{enumerable:!0,get:()=>I.RangeRef}),Object.defineProperty(r,"Ref",{enumerable:!0,get:()=>I.Ref}),Object.defineProperty(r,"Sheet",{enumerable:!0,get:()=>I.Sheet}),Object.defineProperty(r,"SpreadsheetWidget",{enumerable:!0,get:()=>I.SpreadsheetWidget}),Object.defineProperty(r,"UnionRef",{enumerable:!0,get:()=>I.UnionRef}),Object.defineProperty(r,"View",{enumerable:!0,get:()=>I.View}),Object.defineProperty(r,"Workbook",{enumerable:!0,get:()=>I.Workbook}),Object.defineProperty(r,"dateToSerial",{enumerable:!0,get:()=>I.dateToSerial}),Object.defineProperty(r,"defineAlias",{enumerable:!0,get:()=>I.defineAlias}),Object.defineProperty(r,"defineFunction",{enumerable:!0,get:()=>I.defineFunction}),Object.defineProperty(r,"packDate",{enumerable:!0,get:()=>I.packDate}),Object.defineProperty(r,"packTime",{enumerable:!0,get:()=>I.packTime}),Object.defineProperty(r,"serialToDate",{enumerable:!0,get:()=>I.serialToDate}),Object.defineProperty(r,"unpackDate",{enumerable:!0,get:()=>I.unpackDate}),Object.defineProperty(r,"unpackTime",{enumerable:!0,get:()=>I.unpackTime}),r.AddColumnLeft=pe,r.AddColumnRight=fe,r.AddRowAbove=be,r.AddRowBelow=ge,r.AlignHorizontally=Ft,r.AlignVertically=Kt,r.Alignment=Rt,r.BackgroundColor=ie,r.Bold=ee,r.CleanFormatting=Nn,r.DecreaseFontSize=Lt,r.DeleteColumn=he,r.DeleteRow=ye,r.ExcelExport=Z,r.FontFamily=ae,r.FontSize=se,r.Format=me,r.GridLines=de,r.IncreaseFontSize=Dt,r.Italic=te,r.Open=Y,r.Redo=ve,r.Spreadsheet=xe,r.TextColor=ce,r.TextWrap=ue,r.Underline=ne,r.Undo=Ce,r.defaultTabs=Ee,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
5
+ (function(l,_){typeof exports=="object"&&typeof module<"u"?_(exports,require("react"),require("prop-types"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-layout"),require("@progress/kendo-react-dialogs"),require("@progress/kendo-react-popup"),require("@progress/kendo-react-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-dropdowns"),require("@progress/kendo-react-intl"),require("@progress/kendo-react-sortable"),require("@progress/kendo-spreadsheet-common"),require("@progress/kendo-file-saver"),require("@progress/kendo-ooxml"),require("@progress/kendo-react-upload"),require("@progress/kendo-react-inputs")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-buttons","@progress/kendo-react-layout","@progress/kendo-react-dialogs","@progress/kendo-react-popup","@progress/kendo-react-common","@progress/kendo-svg-icons","@progress/kendo-react-dropdowns","@progress/kendo-react-intl","@progress/kendo-react-sortable","@progress/kendo-spreadsheet-common","@progress/kendo-file-saver","@progress/kendo-ooxml","@progress/kendo-react-upload","@progress/kendo-react-inputs"],_):(l=typeof globalThis<"u"?globalThis:l||self,_(l.KendoReactSpreadsheet={},l.React,l.PropTypes,l.KendoReactButtons,l.KendoReactLayout,l.KendoReactDialogs,l.KendoReactPopup,l.KendoReactCommon,l.KendoSvgIcons,l.KendoReactDropdowns,l.KendoReactIntl,l.KendoReactSortable,l.KendoSpreadsheetCommon,l.KendoFileSaver,l.KendoOoxml,l.KendoReactUpload,l.KendoReactInputs))})(this,function(l,_,Vt,N,we,ke,qt,K,f,$,L,Jt,S,Ne,Ie,$t,Gt){"use strict";"use client";function Se(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return n.default=t,Object.freeze(n)}const e=Se(_),P=Se(Vt),G=e.forwardRef((t,n)=>{const o=e.useRef(null),r=e.useRef(null);return e.useImperativeHandle(o,()=>({element:r.current,props:t})),e.useImperativeHandle(n,()=>o.current),e.createElement("div",{className:"k-list k-list-md"},e.createElement("div",{className:"k-list-content"},e.createElement("ul",{ref:r,className:"k-spreadsheet-formula-list k-list-ul",onMouseDown:a=>a.preventDefault(),style:{maxHeight:280}},t.data.map(a=>e.createElement("li",{key:a.text,className:"k-list-item",onClick:()=>t.onItemClick(a.value)},e.createElement(K.IconWrap,{name:"formula-fx",icon:f.formulaFxIcon}),e.createElement("span",{className:"k-list-item-text"},a.text))))))});G.displayName="List",G.propTypes={};const J=e.forwardRef((t,n)=>{const[o,r]=e.useState(!1),[a,s]=e.useState(0),[d,m]=e.useState([]),i=e.useMemo(()=>({}),[]);i.showPopup=o,i.popupContentKey=a,i.data=d;const v=e.useRef(null),E=e.useRef(null),C=e.useRef(null),R=e.useCallback(()=>{if(C.current&&C.current.element)return C.current.element.querySelector(".k-focus")},[]),x=e.useCallback(()=>{const b=R();b&&b.classList.remove("k-focus")},[]),g=e.useCallback(b=>{const D=Array.from(C.current&&C.current.element.children||[]),z=R();let p;if(z){const k=D.indexOf(z);z.classList.remove("k-focus"),p=D[k+b]?D[k+b]:b===1?D[0]:D[D.length-1]}else p=b===1?D[0]:D[D.length-1];p&&p.classList.add("k-focus")},[]);e.useImperativeHandle(v,()=>({element:E.current,props:t,popup:{open:()=>{r(!0)},close:()=>{r(!1)},position:()=>{s(i.popupContentKey+1)},visible:()=>i.showPopup},list:{get element(){return C.current&&C.current.element},data:b=>{if(b)m(b);else return i.data},value:()=>({}),focus:()=>Array.from(C.current&&C.current.element&&C.current.element.children||[]).indexOf(R()),focusNext:()=>{g(1)},focusPrev:()=>{g(-1)},focusFirst:()=>{const b=C.current&&C.current.element;b&&b.children.item(0)&&(x(),b.children.item(0).classList.add("k-focus"))},focusLast:()=>{const b=C.current&&C.current.element;b&&b.children.length&&(x(),b.children.item(b.children.length-1).classList.add("k-focus"))},itemClick:b=>{i.itemClick=b}}}),[]),e.useImperativeHandle(n,()=>v.current,[]);const y=e.useCallback(b=>{i.itemClick&&i.itemClick(b)},[]);return e.createElement(e.Fragment,null,e.createElement("div",{className:K.classNames("k-spreadsheet-formula-input",t.className),contentEditable:"true",spellCheck:"false",style:{whiteSpace:"pre"},ref:E}),e.createElement(qt.Popup,{show:o,anchor:E.current,animate:{openDuration:100,closeDuration:100},contentKey:a,popupClass:"k-list-container"},e.createElement(G,{data:d,ref:C,onItemClick:y})))});J.displayName="FormulaInput",J.propTypes={};const Ae="spreadsheet.bold",De="spreadsheet.italic",Le="spreadsheet.underline",Re="spreadsheet.openFile",Te="spreadsheet.textColor",Fe="spreadsheet.background",Ke="spreadsheet.addRowAbove",ze="spreadsheet.addRowBelow",Pe="spreadsheet.addColumnLeft",Oe="spreadsheet.addColumnRight",Me="spreadsheet.deleteRow",Be="spreadsheet.deleteColumn",je="spreadsheet.undo",He="spreadsheet.redo",Ue="spreadsheet.fontSize",We="spreadsheet.fontSizeIncrease",_e="spreadsheet.fontSizeDecrease",Ve="spreadsheet.fontName",qe="spreadsheet.cleanFormatting",Je="spreadsheet.format",$e="spreadsheet.alignHorizontally",Ge="spreadsheet.alignVertically",Xe="spreadsheet.align",Ze="spreadsheet.alignLeft",Ye="spreadsheet.alignRight",Qe="spreadsheet.alignCenter",et="spreadsheet.center",tt="spreadsheet.alignJustify",nt="spreadsheet.justify",at="spreadsheet.alignTop",ot="spreadsheet.alignMiddle",lt="spreadsheet.alignBottom",rt="spreadsheet.increaseDecimal",st="spreadsheet.decreaseDecimal",ct="spreadsheet.textWrap",it="spreadsheet.gridLines",ut="spreadsheet.exportToExcel",dt="spreadsheet.nameBox",mt="spreadsheet.defaultSheetName",pt="spreadsheet.home",ft="spreadsheet.file",gt="spreadsheet.insert",bt="spreadsheet.formatTab",ht="spreadsheet.addNewSheet",yt="spreadsheet.error",Ct="spreadsheet.ok",vt="spreadsheet.modifyMerged",Et="spreadsheet.cannotModifyDisabled",xt="spreadsheet.openUnsupported",wt="spreadsheet.duplicateSheetName",I={[Ae]:"Bold",[De]:"Italic",[Le]:"Underline",[je]:"Undo",[He]:"Redo",[Ue]:"Font size",[We]:"Increase Font size",[_e]:"Decrease Font size",[Ve]:"Font",[qe]:"Clean formatting",[Je]:"Custom format...",[$e]:"Align horizontally",[Ge]:"Align vertically",[Xe]:"Align",[Ze]:"Align left",[Ye]:"Align right",[Qe]:"Align center",[tt]:"Align justify",[et]:"Center",[nt]:"Justify",[at]:"Align top",[ot]:"Align middle",[lt]:"Align bottom",[rt]:"Increase decimal",[st]:"Decrease decimal",[Te]:"Text Color",[Fe]:"Background color",[Ke]:"Add row above",[ze]:"Add row below",[Pe]:"Add column left",[Oe]:"Add column right",[Me]:"Delete row",[Be]:"Delete column",[Re]:"Open...",[ut]:"Export to Excel",[ct]:"Text Wrap",[it]:"Toggle gridlines",[dt]:"Name Box",[mt]:"Sheet",[pt]:"Home",[ft]:"File",[gt]:"Insert",[ht]:"Add new sheet",[bt]:"Format",[vt]:"Cannot change part of a merged cell.",[Et]:"Cannot modify disabled cells.",[xt]:"Unsupported format. Please select an .xlsx file.",[wt]:"There is an existing sheet with this name. Please enter another name.",[yt]:"Error",[Ct]:"OK"},c={bold:Ae,italic:De,underline:Le,undo:je,redo:He,fontSize:Ue,fontSizeIncrease:We,fontSizeDecrease:_e,fontName:Ve,cleanFormatting:qe,format:Je,alignHorizontally:$e,alignVertically:Ge,align:Xe,alignLeft:Ze,alignRight:Ye,alignCenter:Qe,center:et,alignJustify:tt,justify:nt,alignTop:at,alignMiddle:ot,alignBottom:lt,increaseDecimal:rt,decreaseDecimal:st,textColor:Te,background:Fe,addRowAbove:Ke,addRowBelow:ze,addColumnLeft:Pe,addColumnRight:Oe,deleteRow:Me,deleteColumn:Be,open:Re,exportToExcel:ut,textWrap:ct,gridLines:it,nameBox:dt,defaultSheetName:mt,file:ft,home:pt,insert:gt,addNewSheet:ht,error:yt,ok:Ct,modifyMerged:vt,cannotModifyDisabled:Et,openUnsupported:xt,duplicateSheetName:wt,formatTab:bt},X=e.forwardRef((t,n)=>{const o=e.useRef(null),r=e.useRef(null),[a,s]=e.useState([]),[d,m]=e.useState(!1),[i,v]=e.useState(""),E=e.useMemo(()=>({}),[]);E.data=a,e.useImperativeHandle(o,()=>({value:p=>{if(p===void 0){const k=r.current&&r.current.value;return k&&(k.name||k)}else v(p||"")}}),[]),e.useImperativeHandle(n,()=>o.current,[]);const C=e.useCallback(p=>{const k=t.nameEditor();k&&k.trigger("delete",{name:p})},[]),R=e.useCallback((p,k)=>{const O=e.createElement(e.Fragment,null,p.props.children,e.createElement("span",{role:"button",className:"k-button-delete",onClick:()=>C(k.dataItem[k.textField]),onMouseDown:w=>w.preventDefault(),onPointerDown:w=>w.preventDefault(),"data-role":"delete"},e.createElement(K.IconWrap,{name:"x",icon:f.xIcon})));return e.cloneElement(p,p.props,O)},[]),x=e.useCallback(p=>e.cloneElement(p,{...p.props},e.createElement("div",null)),[]),g=e.useCallback(p=>{if(p.syntheticEvent&&p.syntheticEvent.type==="change")return;const k=t.nameEditor();k&&(s(k.readData()),m(!0))},[]),y=e.useCallback(()=>{m(!1)},[]),b=e.useCallback(p=>{if(p.syntheticEvent.target.closest("[data-role]"))return;const k=t.nameEditor();if(k&&p.value){const O=p.value.name;O!==i&&(k.trigger("select",{name:O}),v(O))}},[i]),D=e.useCallback(p=>{const k=t.nameEditor();if(k)if(p.key==="Enter"){const O=p.target.value;k.trigger("enter",{value:O}),v(O)}else p.key==="Escape"&&(k.trigger("cancel"),v(E.prevValue))},[]),z=e.useCallback(p=>{E.prevValue=p.value.name},[]);return e.createElement("div",{className:"k-spreadsheet-name-editor",onKeyDown:D},e.createElement($.ComboBox,{ref:r,title:L.useLocalization().toLanguageString(c.nameBox,I[c.nameBox]),popupSettings:{className:"k-spreadsheet-names-popup"},fillMode:"flat",clearButton:!1,dataItemKey:"name",textField:"name",itemRender:R,data:a,value:i?a.find(p=>p.name===i)||{name:i}:null,onChange:b,opened:d,onOpen:g,onClose:y,onFocus:z,listNoDataRender:x,allowCustom:!0}))});X.displayName="NameBox",X.propTypes={};const Xt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},kt=e.createContext(Xt),Zt=t=>{const n=t.dataItem,{onSelect:o,onDelete:r,onEnterEdit:a,onExitEdit:s,onCancelEdit:d,onEdit:m}=e.useContext(kt),i=e.useCallback(g=>{g.target instanceof HTMLElement&&g.target.nodeName==="INPUT"||o.call(void 0,n,g)},[n,o]),v=e.useCallback(g=>{r.call(void 0,n,g)},[n,r]),E=e.useCallback(g=>{g.target instanceof HTMLElement&&g.target.nodeName==="INPUT"||a.call(void 0,n,g)},[n,a]),C=e.useCallback(g=>{s.call(void 0,n,g)},[n,s]),R=e.useCallback(g=>{g.key==="Enter"?s.call(void 0,n,g):g.key==="Escape"&&d.call(void 0,n,g)},[n,s,d]),x=e.useCallback(g=>{m.call(void 0,{...n,text:g.target.value},g)},[n,m]);return e.createElement("li",{style:t.style,...t.attributes,ref:t.forwardRef,role:"tab",className:K.classNames("k-item k-tabstrip-item",{"k-disabled":t.isDisabled,"k-active k-state-tab-on-top k-spreadsheet-sheets-bar-active":n.active,"k-spreadsheet-sheets-bar-inactive":!n.active,"k-first":n.first,"k-last":n.last}),onClick:i,onDoubleClick:E},n.inEdit?e.createElement("input",{type:"text",className:"k-textbox k-spreadsheet-sheets-editor",value:n.text,onChange:x,maxLength:50,autoFocus:!0,onBlur:C,onKeyDown:R}):e.createElement(e.Fragment,null,e.createElement("span",{className:"k-link"},n.text),n.first&&n.last?null:e.createElement("span",{className:"k-link k-spreadsheet-sheets-remove",onClick:v},e.createElement(K.IconWrap,{name:"x",icon:f.xIcon}))))},Nt=e.forwardRef((t,n)=>{const{children:o,className:r,...a}=t;return e.createElement("ul",{className:K.classNames("k-tabstrip-items k-reset",r),role:"tablist",...a,ref:n},o)});Nt.displayName="TabsList";const Yt=t=>{const{sheets:n,setSheets:o,onSheetSelect:r,onSheetDelete:a,onSheetEdit:s,onSheetReorderEnd:d}=t,[m,i]=e.useState(null),v=e.useRef(!1),E=e.useRef(-1),C=e.useCallback(w=>{o(w.map((T,M,F)=>({...T,first:M===0,last:M===F.length-1})))},[]),R=e.useCallback(w=>{C(w.newState)},[C,d]),x=e.useCallback(w=>{d.call(void 0,w)},[d]),g=e.useCallback(w=>{v.current=!0,E.current=w.prevIndex},[]),y=e.useCallback(w=>{setTimeout(()=>{v.current=!1},50),d.call(void 0,{...w,prevIndex:E.current})},[]),b=e.useCallback((w,T)=>{v.current||r.call(void 0,w,T)},[r]),D=e.useCallback((w,T)=>{T.stopPropagation(),a.call(void 0,w)},[n,a]),z=e.useCallback((w,T)=>{T.stopPropagation(),T.preventDefault();const M=n.map(F=>({...F,active:F.id===w.id,inEdit:F.id===w.id}));o(M),i({...w})},[n]),p=e.useCallback((w,T)=>{T.stopPropagation(),T.preventDefault();const M=n.map(F=>({...F,inEdit:!1,text:F.inEdit&&m?m.text:F.text}));o(M),i(null)},[n,m]),k=e.useCallback((w,T)=>{T.stopPropagation(),T.preventDefault();const M=n.map(W=>({...W,inEdit:!1})),F=n.findIndex(W=>W.id===w.id);o(M),i(null),s.call(void 0,w,F)},[n,s]),O=e.useCallback((w,T)=>{T.stopPropagation(),T.preventDefault();const M=n.map(F=>({...F,text:w.id===F.id?w.text:F.text}));o(M)},[n]);return e.createElement("div",{className:"k-spreadsheet-sheets-items k-tabstrip k-floatwrap k-tabstrip-bottom"},e.createElement("div",{className:"k-tabstrip-items-wrapper k-hstack"},e.createElement(kt.Provider,{value:{onSelect:b,onDelete:D,onEnterEdit:z,onCancelEdit:p,onExitEdit:k,onEdit:O}},e.createElement(Jt.Sortable,{idField:"id",data:n,itemUI:Zt,itemsWrapUI:Nt,onDragOver:R,onNavigate:x,onDragStart:g,onDragEnd:y}))))},Qt=(t,n,o)=>t.map((r,a,s)=>({text:r.name(),id:o+"-sheet-"+a,first:a===0,last:a===s.length-1,active:r.name()===n})),en=t=>{const{spreadsheetRef:n}=t,[o,r]=e.useState([]),a=e.useRef((o.find(x=>x.active)||{}).text),s=K.useId(),d=e.useCallback(()=>{n.current&&(n.current.view.sheetsbar.onSheetSelect(a.current),r(Qt(n.current.sheets(),a.current,s)))},[]),m=e.useCallback(()=>{if(n.current){const x=n.current.sheets();x.find(g=>g.name()===a.current)||(a.current=x[x.length-1].name()),d()}},[]);e.useEffect(()=>(n.current&&(n.current.sheets().length&&(a.current=n.current.sheets()[0].name(),d()),n.current.view.bind("update",m)),()=>{n.current&&n.current.view.unbind("update",m)}),[n.current]);const i=e.useCallback(x=>{a.current!==x.text&&(a.current=x.text,d())},[]),v=e.useCallback(()=>{if(n.current){n.current.view.sheetsbar.onAddSelect();const x=n.current.sheets();a.current=x[x.length-1].name(),d()}},[]),E=e.useCallback(x=>{if(n.current){if(a.current===x.text){const g=n.current.sheets(),y=g.findIndex(D=>D.name()===x.text),b=g[y+1]||g[y-1];a.current=b?b.name():""}n.current.view.sheetsbar.onSheetRemove(x.text),d()}},[]),C=e.useCallback((x,g)=>{if(n.current){let y=x.text;const b=n.current.sheets(),D=b[g];if(!y){a.current=D.name(),d();return}if(D&&D.name()===y)return;b.find(z=>z.name()===y)&&(y=D.name()),n.current.view.sheetsbar.onSheetRename(y,g),a.current=y,d()}},[]),R=e.useCallback(x=>{if(n.current){const{prevIndex:g,nextIndex:y}=x;a.current=n.current.sheets()[g].name(),n.current.view.sheetsbar.onSheetReorderEnd({oldIndex:g,newIndex:y}),d()}},[]);return e.createElement("div",{className:"k-spreadsheet-sheets-bar k-header"},e.createElement(N.Button,{fillMode:"flat",icon:"plus",className:"k-spreadsheet-sheets-bar-add",title:L.useLocalization().toLanguageString(c.addNewSheet,I[c.addNewSheet]),svgIcon:f.plusIcon,onClick:v}),e.createElement(Yt,{sheets:o,setSheets:r,onSheetSelect:i,onSheetDelete:E,onSheetEdit:C,onSheetReorderEnd:R}))},Z=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(()=>{n.current&&n.current.saveAsExcel({...n.current.options.excel,saveAs:Ne.saveAs,Workbook:Ie.Workbook})},[]);return e.createElement(N.Button,{className:"k-toolbar-button",title:"Export...",icon:"download",fillMode:"flat",svgIcon:f.downloadIcon,onClick:o})};Z.displayName="ExcelExport";const Y=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(a=>{const s=a.target;if(s instanceof Element&&s.parentNode){const d=s.closest(".k-toolbar"),m=d&&d.querySelector(".k-upload input");m&&m.click()}},[]),r=e.useCallback(a=>{const s=a.newState;if(s[0]&&s[0].getRawFile){const d=s[0].getRawFile();n.current&&n.current.executeCommand({command:"OpenCommand",options:{file:d}})}},[]);return e.createElement(e.Fragment,null,e.createElement(N.Button,{className:"k-toolbar-button",title:L.useLocalization().toLanguageString(c.open,I[c.open]),icon:"folder-open",svgIcon:f.folderOpenIcon,fillMode:"flat",onClick:o}),e.createElement("div",{style:{display:"none"}},e.createElement($t.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:r,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};Y.displayName="Open";const tn=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],nn="Arial",an=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],on=12,ln=[{text:"Automatic",value:null},{text:"Text",value:"@"},{text:"Number",value:"#,0.00"},{text:"Percent",value:"0.00%"},{text:"Financial",value:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'},{text:"Currency",value:"$#,##0.00;[Red]$#,##0.00"},{text:"Date",value:"m/d/yyyy"},{text:"Time",value:"h:mm:ss AM/PM"},{text:"Date time",value:"m/d/yyyy h:mm"},{text:"Duration",value:"[h]:mm:ss"}],Q=t=>o=>{const{property:r,icon:a,svgIcon:s,titleKey:d}=t,{spreadsheetRef:m,value:i}=o,v=e.useCallback(()=>{if(m.current){const C={command:"PropertyChangeCommand",options:{property:r,value:!i}};m.current.executeCommand(C)}},[i]);return e.createElement(N.Button,{type:"button",icon:a,svgIcon:s,fillMode:"flat",togglable:!0,onClick:v,selected:i,title:L.useLocalization().toLanguageString(d,I[d])})},It=t=>o=>{const{property:r,titleKey:a,...s}=t,{spreadsheetRef:d,value:m}=o,i=e.useCallback(v=>{if(d.current){const E={command:"PropertyChangeCommand",options:{property:r,value:v.value||null}};d.current.executeCommand(E)}},[r]);return e.createElement(Gt.ColorPicker,{onChange:i,onActiveColorClick:i,fillMode:"flat",...s,title:L.useLocalization().toLanguageString(a,I[a]),value:m})},St=t=>o=>{const{spreadsheetRef:r}=o,a=e.useCallback(()=>{r.current&&r.current.workbook.undoRedoStack[t.action]()},[]);return e.createElement(N.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(t.titleKey,I[t.titleKey]),onClick:a})},rn={property:"bold",icon:"bold",svgIcon:f.boldIcon,titleKey:c.bold},ee=Q(rn);ee.displayName="Bold";const sn={property:"italic",icon:"italic",svgIcon:f.italicIcon,titleKey:c.italic},te=Q(sn);te.displayName="Italic";const cn={property:"underline",icon:"underline",svgIcon:f.underlineIcon,titleKey:c.underline},ne=Q(cn);ne.displayName="Underline";const ae=t=>{const{spreadsheetRef:n,value:o}=t,r=e.useCallback(a=>{if(n.current){const s={command:"PropertyChangeCommand",options:{property:"fontFamily",value:a.value||null}};n.current.executeCommand(s)}},[]);return e.createElement($.DropDownList,{onChange:r,value:o,data:tn,defaultValue:nn,fillMode:"flat",title:L.useLocalization().toLanguageString(c.fontName,I[c.fontName]),leftRightKeysNavigation:!1})};ae.displayName="FontFamily";const oe=1,le=409,re=t=>typeof t=="string"?parseFloat(t):t,se=t=>{const{spreadsheetRef:n}=t,o=re(t.value),r=e.useCallback(a=>{var m;let s=a.value?re(a.value):o;s=isNaN(s)?o:s,s=Math.min(le,Math.max(oe,s));const d={command:"PropertyChangeCommand",options:{property:"fontSize",value:s}};a.nativeEvent.type==="keydown"||a.nativeEvent.type==="focusout"?(m=n.current)==null||m.executeCommand(d):setTimeout(()=>{var i;(i=n.current)==null||i.executeCommand(d)},0)},[o]);return e.createElement($.ComboBox,{onChange:r,value:o,data:an,defaultValue:on,allowCustom:!0,fillMode:"flat",title:L.useLocalization().toLanguageString(c.fontSize,I[c.fontSize]),tabIndex:-1,clearButton:!1})};se.displayName="FontSize";const At=t=>{const n=o=>{const{property:r,icon:a,svgIcon:s,titleKey:d,step:m}=t,{spreadsheetRef:i}=o,v=re(o.value),E=e.useCallback(()=>{var R;const C={command:"PropertyChangeCommand",options:{property:r,value:Math.min(le,Math.max(oe,v+m))}};(R=i.current)==null||R.executeCommand(C)},[v]);return e.createElement(N.Button,{type:"button",icon:a,svgIcon:s,fillMode:"flat",onClick:E,disabled:v+m<oe||v+m>le,title:L.useLocalization().toLanguageString(d,I[d])})};return n.displayName=t.displayName,n},Dt=At({property:"fontSize",icon:"font-grow",svgIcon:f.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Lt=At({property:"fontSize",icon:"font-shrink",svgIcon:f.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),ce=It({icon:"foreground-color",svgIcon:f.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});ce.displayName="TextColor";const ie=It({icon:"droplet",svgIcon:f.dropletIcon,view:"palette",property:"background",titleKey:c.background,ariaLabel:"Background"});ie.displayName="BackgroundColor";const H=[{icon:"align-left",svgIcon:f.alignLeftIcon,textKey:c.alignLeft,commandName:"textAlign",value:"left",selected:!1},{icon:"align-center",svgIcon:f.alignCenterIcon,textKey:c.alignCenter,commandName:"textAlign",value:"center",selected:!1},{icon:"align-right",svgIcon:f.alignRightIcon,textKey:c.alignRight,commandName:"textAlign",value:"right",selected:!1},{icon:"align-justify",svgIcon:f.alignJustifyIcon,textKey:c.alignJustify,commandName:"textAlign",value:"justify",selected:!1},{icon:"align-top",svgIcon:f.alignTopIcon,textKey:c.alignTop,commandName:"verticalAlign",value:"top",selected:!1},{icon:"align-middle",svgIcon:f.alignMiddleIcon,textKey:c.alignMiddle,commandName:"verticalAlign",value:"center",selected:!1},{icon:"align-bottom",svgIcon:f.alignBottomIcon,textKey:c.alignBottom,commandName:"verticalAlign",value:"bottom",selected:!1}],un=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],dn=H.filter(t=>t.commandName==="verticalAlign"),Rt=t=>{const{value:n,spreadsheetRef:o}=t,{textAlign:r,verticalAlign:a}=n||{},s=L.useLocalization(),d=e.useCallback(i=>{if(o.current){const v=i.item,E={command:"PropertyChangeCommand",options:{property:v.commandName,value:v.value||null}};o.current.executeCommand(E)}},[]);let m=H.slice();return m=m.map(i=>({...i,text:s.toLanguageString(i.textKey,I[i.textKey])})),r&&(m=m.map(i=>i.commandName==="textAlign"?{...i,selected:i.value===r}:i)),a&&(m=m.map(i=>i.commandName==="verticalAlign"?{...i,selected:i.value===a}:i)),e.createElement(N.DropDownButton,{icon:"align-left",svgIcon:f.alignLeftIcon,items:m,fillMode:"flat",onItemClick:d,title:s.toLanguageString(c.align,I[c.align]),text:e.createElement(K.IconWrap,{name:"caret-alt-down",icon:f.caretAltDownIcon})})};Rt.displayName="Alignment";const mn={items:un,icon:{icon:"align-left",svgIcon:f.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},pn={items:dn,icon:{icon:"align-bottom",svgIcon:f.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Tt=t=>{const n=o=>{const{value:r,spreadsheetRef:a}=o,s=L.useLocalization(),d=e.useCallback(E=>{if(a.current){const C=E.item,R={command:"PropertyChangeCommand",options:{property:C.commandName,value:C.value||null}};a.current.executeCommand(R)}},[]);let m=t.items.slice();m=m.map(E=>({...E,text:s.toLanguageString(E.textKey,I[E.textKey])})),m=m.map(E=>({...E,selected:E.value===r}));const i={...t.icon},v=m.find(E=>E.selected);return v&&(i.icon=v.icon,i.svgIcon=v.svgIcon),e.createElement(N.DropDownButton,{...i,items:m,fillMode:"flat",onItemClick:d,title:s.toLanguageString(t.titleKey,I[t.titleKey]),text:e.createElement(K.IconWrap,{name:"caret-alt-down",icon:f.caretAltDownIcon})})};return n.displayName=t.displayName,n},Ft=Tt(mn),Kt=Tt(pn),ue=t=>{const{value:n,spreadsheetRef:o}=t,r=e.useCallback(()=>{if(o.current){const a=o.current.activeSheet();if(a){const m={command:"TextWrapCommand",options:{property:"wrap",value:!a.range(a.activeCell()).wrap()}};o.current.executeCommand(m)}}},[]);return e.createElement(N.Button,{type:"button",togglable:!0,icon:"text-wrap",svgIcon:f.textWrapIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(c.textWrap,I[c.textWrap]),onClick:r,selected:n})};ue.displayName="TextWrap";const de=t=>{const{value:n,spreadsheetRef:o}=t,r=e.useCallback(()=>{if(o.current){const a=o.current.activeSheet();if(a){const d={command:"GridLinesChangeCommand",options:{property:"gridLines",value:!a.showGridLines()}};o.current.executeCommand(d)}}},[]);return e.createElement(N.Button,{type:"button",togglable:!0,icon:"borders-none",svgIcon:f.bordersNoneIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(c.gridLines,I[c.gridLines]),onClick:r,selected:n})};de.displayName="GridLines";const me=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(r=>{const a=r.item.value||null;setTimeout(()=>{if(n.current){const s={command:"PropertyChangeCommand",options:{property:"format",value:a}};n.current.executeCommand(s)}},0)},[]);return e.createElement(N.DropDownButton,{icon:"custom-format",svgIcon:f.customFormatIcon,fillMode:"flat",onItemClick:o,items:ln,title:L.useLocalization().toLanguageString(c.format,I[c.format]),text:e.createElement(K.IconWrap,{name:"caret-alt-down"})})};me.displayName="Format";const U=t=>o=>{const{spreadsheetRef:r,value:a}=o,s=e.useCallback(()=>{if(r.current){const d={command:t.command,options:{value:t.value}};r.current.executeCommand(d)}},[]);return e.createElement(N.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:L.useLocalization().toLanguageString(t.titleKey,I[t.titleKey]),onClick:s,disabled:a&&t.disabled(a)})},fn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:f.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},gn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:f.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},bn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:f.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},hn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:f.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},yn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:f.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},Cn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:f.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},pe=U(fn),fe=U(gn),ge=U(bn),be=U(hn),he=U(yn),ye=U(Cn);pe.displayName="AddColumnLeft",fe.displayName="AddColumnRight",ge.displayName="AddRowBelow",be.displayName="AddRowAbove",he.displayName="DeleteColumn",ye.displayName="DeleteRow";const vn={action:"undo",icon:"reset",svgIcon:f.arrowRotateCcwIcon,titleKey:c.undo},Ce=St(vn);Ce.displayName="Undo";const En={action:"redo",icon:"reload",svgIcon:f.arrowRotateCwIcon,titleKey:c.redo},ve=St(En);ve.displayName="Redo";const zt=t=>o=>{const{icon:r,svgIcon:a,titleKey:s,value:d}=t,{spreadsheetRef:m}=o,i=e.useCallback(()=>{if(m.current){const v={command:"AdjustDecimalsCommand",options:{value:d}};m.current.executeCommand(v)}},[]);return e.createElement(N.Button,{type:"button",icon:r,svgIcon:a,fillMode:"flat",onClick:i,title:L.useLocalization().toLanguageString(s,I[s])})},xn=zt({icon:f.decimalIncreaseIcon.name,svgIcon:f.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),wn=zt({icon:f.decimalDecreaseIcon.name,svgIcon:f.decimalDecreaseIcon,value:-1,titleKey:c.decreaseDecimal}),Ee=[{textKey:c.file,tools:[Y,Z]},{textKey:c.home,selected:!0,tools:[[Ce,ve],N.ToolbarSeparator,ae,se,Dt,Lt,N.ToolbarSeparator,[ee,te,ne],ce,N.ToolbarSeparator,ie,N.ToolbarSeparator,Ft,Kt,ue,N.ToolbarSeparator,de]},{textKey:c.insert,tools:[[pe,fe,ge,be],N.ToolbarSeparator,[he,ye]]},{textKey:c.formatTab,tools:[me,[wn,xn]]}],Pt={name:"@progress/kendo-react-spreadsheet",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:1683639393,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning"},Ot=["bold","italic","underline","fontFamily","fontSize","color","background","textAlign","verticalAlign","wrap","gridLines"],Mt={Bold:t=>t.bold,Italic:t=>t.italic,Underline:t=>t.underline,FontFamily:t=>t.fontFamily,FontSize:t=>t.fontSize,IncreaseFontSize:t=>t.fontSize,DecreaseFontSize:t=>t.fontSize,TextColor:t=>t.color,BackgroundColor:t=>t.background,Alignment:t=>({textAlign:t.textAlign,verticalAlign:t.verticalAlign}),AlignHorizontally:t=>t.textAlign,AlignVertically:t=>t.verticalAlign,TextWrap:t=>t.wrap,GridLines:t=>t.gridLines,AddColumnLeft:t=>t.selectedHeaders,AddColumnRight:t=>t.selectedHeaders,AddRowBelow:t=>t.selectedHeaders,AddRowAbove:t=>t.selectedHeaders,DeleteColumn:t=>t.selectedHeaders,DeleteRow:t=>t.selectedHeaders},Bt=":not(.k-dropdownlist button):not(.k-combobox button):not(.k-upload-button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",kn=["button"+Bt,".k-button-group > button"+Bt,".k-dropdownlist",".k-combobox",".k-colorpicker"],xe=e.forwardRef((t,n)=>{K.validatePackage(Pt);const o=K.shouldShowValidationUI(Pt),{toolbar:r=Ee}=t,a=[];typeof r=="boolean"?a.push(...r?Ee:[]):a.push(...r);const[s,d]=e.useState(null),[m,i]=e.useState(a.findIndex(u=>u.selected)||0),[v,E]=e.useState(!1),C=e.useRef(null),R=e.useRef(null),x=e.useRef(null),g=e.useRef(null),y=e.useRef(null),[b,D]=e.useState({}),z=e.useRef({});z.current=b;const p=e.useRef({});p.current=t;const k=L.useLocalization(),O=e.useCallback(u=>{p.current.onSelect&&p.current.onSelect.call(void 0,u)},[]),w=e.useCallback(u=>{p.current.onChange&&p.current.onChange.call(void 0,u)},[]),T=e.useCallback(u=>{p.current.onChangeFormat&&p.current.onChangeFormat.call(void 0,u)},[]),M=e.useCallback(u=>{p.current.onExcelImport&&p.current.onExcelImport.call(void 0,u)},[]),F=e.useCallback(u=>{p.current.onExcelExport&&p.current.onExcelExport.call(void 0,u)},[]),W=e.useRef(null);e.useImperativeHandle(W,()=>({element:C.current,get instance(){return y.current},props:t,get view(){return y.current.view},get workbook(){return y.current.workbook},executeCommand(u){var h;(h=y.current)==null||h.executeCommand(u)},fromJSON(u){var h;return(h=y.current)==null?void 0:h.fromJSON(u)},toJSON(){return y.current.toJSON()},saveJSON(){return y.current.saveJSON()},fromFile(u){return y.current.fromFile(u)},saveAsExcel(u){var h;(h=y.current)==null||h.saveAsExcel({...y.current.options.excel,saveAs:Ne.saveAs,Workbook:Ie.Workbook,...u})},activeSheet(u){var h;return(h=y.current)==null?void 0:h.activeSheet(u)},sheets(){return y.current.sheets()},refresh(){var u;return(u=y.current)==null?void 0:u.refresh()}}),[t]),e.useImperativeHandle(n,()=>W.current);const In=e.useCallback(()=>y.current&&y.current.view.nameEditor,[]),jt=e.useCallback(u=>{const h={};Ot.forEach(A=>{typeof u.range[A]=="function"?h[A]=u.range[A]():A==="gridLines"&&(h[A]=u.range.sheet().showGridLines())}),h.selectedHeaders=u.range.sheet().selectedHeaders(),(Ot.some(A=>h[A]!==z.current[A])||h.selectedHeaders.allCols!==z.current.selectedHeaders.allCols||h.selectedHeaders.allRows!==z.current.selectedHeaders.allRows)&&D(h)},[]),Sn=e.useCallback(u=>{const h=u.name,A=c[h];d({title:u.title==="Error"?k.toLanguageString(c.error,I[c.error]||u.title):u.title,message:A?k.toLanguageString(A,I[A]||u.text):u.text,close:u.close})},[]),Ht=e.useCallback(()=>{d(null),s==null||s.close()},[s]),V=L.useInternationalization(),Ut=L.useLocalization();e.useEffect(()=>{var q;const u={...t.defaultProps,sheets:structuredClone((q=t.defaultProps)==null?void 0:q.sheets),messages:{workbook:{defaultSheetName:Ut.toLanguageString(c.defaultSheetName,I[c.defaultSheetName])}},intl:{localeInfo:()=>V.localeInfo(),localeCurrency:()=>V.localeCurrency(),parseDate:(B,j)=>V.parseDate(B,j),toString:(B,j)=>V.toString(B,j),format:(B,...j)=>V.format(B,...j)},formulaBarInputRef:R,formulaCellInputRef:x,nameBoxRef:g},h=new S.SpreadsheetWidget(C.current,u);y.current=h,h.bind("select",O),h.bind("change",w),h.bind("changeFormat",T),h.bind("excelImport",M),h.bind("excelExport",F),h.view.bind("update",jt),h.view.bind("message",Sn);const A=h.activeSheet();return A&&jt({range:A.range(A.activeCell())}),E(!0),()=>{h.destroy()}},[]);const Wt=e.useCallback((u,h)=>{const A=e.createElement(u,{spreadsheetRef:y,value:Mt[u.displayName]?Mt[u.displayName](b):void 0,key:h});return A.type===N.ToolbarSeparator?e.createElement(u,{key:h}):A},[b]);let _t=null;return a.length&&(_t=e.createElement(we.TabStrip,{selected:m,animation:!1,className:"k-floatwrap k-spreadsheet-tabstrip",style:{minHeight:"auto"},onSelect:u=>i(u.selected)},a.map(u=>{const h=u.textKey?Ut.toLanguageString(u.textKey,I[u.textKey]):u.text;return e.createElement(we.TabStripTab,{key:u.textKey||u.text,title:h},e.createElement(N.Toolbar,{buttons:kn,className:"k-spreadsheet-toolbar"},u.tools.map((A,q)=>Array.isArray(A)?e.createElement(N.ButtonGroup,{key:q},A.map((B,j)=>Wt(B,j))):Wt(A,q))))}))),e.createElement("div",{ref:C,style:t.style,className:K.classNames("k-widget k-spreadsheet",t.className),role:"application"},_t,e.createElement("div",{className:"k-spreadsheet-action-bar"},e.createElement(X,{ref:g,nameEditor:In}),e.createElement("div",{className:"k-spreadsheet-formula-bar"},e.createElement(K.IconWrap,{name:"formula-fx",icon:f.formulaFxIcon}),e.createElement(J,{ref:R}))),e.createElement("div",{className:"k-spreadsheet-view"},e.createElement("div",{className:"k-spreadsheet-fixed-container"}),e.createElement("div",{className:"k-spreadsheet-scroller"},e.createElement("div",{className:"k-spreadsheet-view-size"})),e.createElement("div",{tabIndex:0,className:"k-spreadsheet-clipboard",contentEditable:"true"}),e.createElement(J,{ref:x,className:"k-spreadsheet-cell-editor"})),e.createElement(en,{spreadsheetRef:y}),s&&e.createElement(ke.Dialog,{title:s.title,onClose:Ht},e.createElement("div",null,s.message),e.createElement(ke.DialogActionsBar,{layout:"start"},e.createElement(N.Button,{themeColor:"primary",onClick:Ht,autoFocus:!0},k.toLanguageString(c.ok,I[c.ok])))),o&&e.createElement(K.WatermarkOverlay,null))});xe.displayName="KendoReactSpreadsheet",xe.propTypes={className:P.string,defaultProps:P.any,toolbar:P.oneOfType([P.bool,P.arrayOf(P.any)]),style:P.object,onSelect:P.func,onChange:P.func,onChangeFormat:P.func,onExcelImport:P.func,onExcelExport:P.func};const Nn=t=>{const{spreadsheetRef:n}=t,o=e.useCallback(()=>{n.current&&n.current.executeCommand({command:"PropertyCleanCommand"})},[]);return e.createElement(N.Button,{type:"button",icon:"clean-css",svgIcon:f.clearCssIcon,fillMode:"flat",onClick:o,title:L.useLocalization().toLanguageString(c.cleanFormatting,I[c.cleanFormatting])})};Object.defineProperty(l,"CalcError",{enumerable:!0,get:()=>S.CalcError}),Object.defineProperty(l,"CellRef",{enumerable:!0,get:()=>S.CellRef}),Object.defineProperty(l,"Context",{enumerable:!0,get:()=>S.Context}),Object.defineProperty(l,"Matrix",{enumerable:!0,get:()=>S.Matrix}),Object.defineProperty(l,"NULLREF",{enumerable:!0,get:()=>S.NULLREF}),Object.defineProperty(l,"NameRef",{enumerable:!0,get:()=>S.NameRef}),Object.defineProperty(l,"Range",{enumerable:!0,get:()=>S.Range}),Object.defineProperty(l,"RangeRef",{enumerable:!0,get:()=>S.RangeRef}),Object.defineProperty(l,"Ref",{enumerable:!0,get:()=>S.Ref}),Object.defineProperty(l,"Sheet",{enumerable:!0,get:()=>S.Sheet}),Object.defineProperty(l,"SpreadsheetWidget",{enumerable:!0,get:()=>S.SpreadsheetWidget}),Object.defineProperty(l,"UnionRef",{enumerable:!0,get:()=>S.UnionRef}),Object.defineProperty(l,"View",{enumerable:!0,get:()=>S.View}),Object.defineProperty(l,"Workbook",{enumerable:!0,get:()=>S.Workbook}),Object.defineProperty(l,"dateToSerial",{enumerable:!0,get:()=>S.dateToSerial}),Object.defineProperty(l,"defineAlias",{enumerable:!0,get:()=>S.defineAlias}),Object.defineProperty(l,"defineFunction",{enumerable:!0,get:()=>S.defineFunction}),Object.defineProperty(l,"packDate",{enumerable:!0,get:()=>S.packDate}),Object.defineProperty(l,"packTime",{enumerable:!0,get:()=>S.packTime}),Object.defineProperty(l,"serialToDate",{enumerable:!0,get:()=>S.serialToDate}),Object.defineProperty(l,"unpackDate",{enumerable:!0,get:()=>S.unpackDate}),Object.defineProperty(l,"unpackTime",{enumerable:!0,get:()=>S.unpackTime}),l.AddColumnLeft=pe,l.AddColumnRight=fe,l.AddRowAbove=be,l.AddRowBelow=ge,l.AlignHorizontally=Ft,l.AlignVertically=Kt,l.Alignment=Rt,l.BackgroundColor=ie,l.Bold=ee,l.CleanFormatting=Nn,l.DecreaseFontSize=Lt,l.DeleteColumn=he,l.DeleteRow=ye,l.ExcelExport=Z,l.FontFamily=ae,l.FontSize=se,l.Format=me,l.GridLines=de,l.IncreaseFontSize=Dt,l.Italic=te,l.Open=Y,l.Redo=ve,l.Spreadsheet=xe,l.TextColor=ce,l.TextWrap=ue,l.Underline=ne,l.Undo=Ce,l.defaultTabs=Ee,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
package/index.js CHANGED
@@ -2,4 +2,4 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Vt=require("react"),qt=require("prop-types"),I=require("@progress/kendo-react-buttons"),we=require("@progress/kendo-react-layout"),Re=require("@progress/kendo-react-dialogs"),Jt=require("@progress/kendo-react-popup"),F=require("@progress/kendo-react-common"),p=require("@progress/kendo-svg-icons"),X=require("@progress/kendo-react-dropdowns"),A=require("@progress/kendo-react-intl"),$t=require("@progress/kendo-react-sortable"),N=require("@progress/kendo-spreadsheet-common"),Te=require("@progress/kendo-file-saver"),Fe=require("@progress/kendo-ooxml"),Gt=require("@progress/kendo-react-upload"),Xt=require("@progress/kendo-react-inputs");function ze(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(n,a,r.get?r:{enumerable:!0,get:()=>t[a]})}}return n.default=t,Object.freeze(n)}const e=ze(Vt),B=ze(qt),Z=e.forwardRef((t,n)=>{const a=e.useRef(null),r=e.useRef(null);return e.useImperativeHandle(a,()=>({element:r.current,props:t})),e.useImperativeHandle(n,()=>a.current),e.createElement("div",{className:"k-list k-list-md"},e.createElement("div",{className:"k-list-content"},e.createElement("ul",{ref:r,className:"k-spreadsheet-formula-list k-list-ul",onMouseDown:o=>o.preventDefault(),style:{maxHeight:280}},t.data.map(o=>e.createElement("li",{key:o.text,className:"k-list-item",onClick:()=>t.onItemClick(o.value)},e.createElement(F.IconWrap,{name:"formula-fx",icon:p.formulaFxIcon}),e.createElement("span",{className:"k-list-item-text"},o.text))))))});Z.displayName="List";Z.propTypes={};const V=e.forwardRef((t,n)=>{const[a,r]=e.useState(!1),[o,l]=e.useState(0),[d,u]=e.useState([]),s=e.useMemo(()=>({}),[]);s.showPopup=a,s.popupContentKey=o,s.data=d;const C=e.useRef(null),v=e.useRef(null),y=e.useRef(null),b=e.useCallback(()=>{if(y.current&&y.current.element)return y.current.element.querySelector(".k-focus")},[]),w=e.useCallback(()=>{const g=b();g&&g.classList.remove("k-focus")},[]),f=e.useCallback(g=>{const L=Array.from(y.current&&y.current.element.children||[]),z=b();let m;if(z){const S=L.indexOf(z);z.classList.remove("k-focus"),m=L[S+g]?L[S+g]:g===1?L[0]:L[L.length-1]}else m=g===1?L[0]:L[L.length-1];m&&m.classList.add("k-focus")},[]);e.useImperativeHandle(C,()=>({element:v.current,props:t,popup:{open:()=>{r(!0)},close:()=>{r(!1)},position:()=>{l(s.popupContentKey+1)},visible:()=>s.showPopup},list:{get element(){return y.current&&y.current.element},data:g=>{if(g)u(g);else return s.data},value:()=>({}),focus:()=>Array.from(y.current&&y.current.element&&y.current.element.children||[]).indexOf(b()),focusNext:()=>{f(1)},focusPrev:()=>{f(-1)},focusFirst:()=>{const g=y.current&&y.current.element;g&&g.children.item(0)&&(w(),g.children.item(0).classList.add("k-focus"))},focusLast:()=>{const g=y.current&&y.current.element;g&&g.children.length&&(w(),g.children.item(g.children.length-1).classList.add("k-focus"))},itemClick:g=>{s.itemClick=g}}}),[]),e.useImperativeHandle(n,()=>C.current,[]);const k=e.useCallback(g=>{s.itemClick&&s.itemClick(g)},[]);return e.createElement(e.Fragment,null,e.createElement("div",{className:F.classNames("k-spreadsheet-formula-input",t.className),contentEditable:"true",spellCheck:"false",style:{whiteSpace:"pre"},ref:v}),e.createElement(Jt.Popup,{show:a,anchor:v.current,animate:{openDuration:100,closeDuration:100},contentKey:o,popupClass:"k-list-container"},e.createElement(Z,{data:d,ref:y,onItemClick:k})))});V.displayName="FormulaInput";V.propTypes={};const Pe="spreadsheet.bold",Ke="spreadsheet.italic",Be="spreadsheet.underline",Oe="spreadsheet.openFile",Me="spreadsheet.textColor",je="spreadsheet.background",He="spreadsheet.addRowAbove",Ue="spreadsheet.addRowBelow",We="spreadsheet.addColumnLeft",_e="spreadsheet.addColumnRight",Ve="spreadsheet.deleteRow",qe="spreadsheet.deleteColumn",Je="spreadsheet.undo",$e="spreadsheet.redo",Ge="spreadsheet.fontSize",Xe="spreadsheet.fontSizeIncrease",Ze="spreadsheet.fontSizeDecrease",Ye="spreadsheet.fontName",Qe="spreadsheet.cleanFormatting",et="spreadsheet.format",tt="spreadsheet.alignHorizontally",nt="spreadsheet.alignVertically",ot="spreadsheet.align",at="spreadsheet.alignLeft",lt="spreadsheet.alignRight",rt="spreadsheet.alignCenter",st="spreadsheet.center",ct="spreadsheet.alignJustify",it="spreadsheet.justify",ut="spreadsheet.alignTop",dt="spreadsheet.alignMiddle",mt="spreadsheet.alignBottom",pt="spreadsheet.increaseDecimal",ft="spreadsheet.decreaseDecimal",gt="spreadsheet.textWrap",bt="spreadsheet.gridLines",ht="spreadsheet.exportToExcel",yt="spreadsheet.nameBox",Ct="spreadsheet.defaultSheetName",vt="spreadsheet.home",kt="spreadsheet.file",xt="spreadsheet.insert",St="spreadsheet.formatTab",It="spreadsheet.addNewSheet",Et="spreadsheet.error",wt="spreadsheet.ok",Rt="spreadsheet.modifyMerged",Nt="spreadsheet.cannotModifyDisabled",At="spreadsheet.openUnsupported",Dt="spreadsheet.duplicateSheetName",E={[Pe]:"Bold",[Ke]:"Italic",[Be]:"Underline",[Je]:"Undo",[$e]:"Redo",[Ge]:"Font size",[Xe]:"Increase Font size",[Ze]:"Decrease Font size",[Ye]:"Font",[Qe]:"Clean formatting",[et]:"Custom format...",[tt]:"Align horizontally",[nt]:"Align vertically",[ot]:"Align",[at]:"Align left",[lt]:"Align right",[rt]:"Align center",[ct]:"Align justify",[st]:"Center",[it]:"Justify",[ut]:"Align top",[dt]:"Align middle",[mt]:"Align bottom",[pt]:"Increase decimal",[ft]:"Decrease decimal",[Me]:"Text Color",[je]:"Background color",[He]:"Add row above",[Ue]:"Add row below",[We]:"Add column left",[_e]:"Add column right",[Ve]:"Delete row",[qe]:"Delete column",[Oe]:"Open...",[ht]:"Export to Excel",[gt]:"Text Wrap",[bt]:"Toggle gridlines",[yt]:"Name Box",[Ct]:"Sheet",[vt]:"Home",[kt]:"File",[xt]:"Insert",[It]:"Add new sheet",[St]:"Format",[Rt]:"Cannot change part of a merged cell.",[Nt]:"Cannot modify disabled cells.",[At]:"Unsupported format. Please select an .xlsx file.",[Dt]:"There is an existing sheet with this name. Please enter another name.",[Et]:"Error",[wt]:"OK"},c={bold:Pe,italic:Ke,underline:Be,undo:Je,redo:$e,fontSize:Ge,fontSizeIncrease:Xe,fontSizeDecrease:Ze,fontName:Ye,cleanFormatting:Qe,format:et,alignHorizontally:tt,alignVertically:nt,align:ot,alignLeft:at,alignRight:lt,alignCenter:rt,center:st,alignJustify:ct,justify:it,alignTop:ut,alignMiddle:dt,alignBottom:mt,increaseDecimal:pt,decreaseDecimal:ft,textColor:Me,background:je,addRowAbove:He,addRowBelow:Ue,addColumnLeft:We,addColumnRight:_e,deleteRow:Ve,deleteColumn:qe,open:Oe,exportToExcel:ht,textWrap:gt,gridLines:bt,nameBox:yt,defaultSheetName:Ct,file:kt,home:vt,insert:xt,addNewSheet:It,error:Et,ok:wt,modifyMerged:Rt,cannotModifyDisabled:Nt,openUnsupported:At,duplicateSheetName:Dt,formatTab:St},Y=e.forwardRef((t,n)=>{const a=e.useRef(null),r=e.useRef(null),[o,l]=e.useState([]),[d,u]=e.useState(!1),[s,C]=e.useState(""),v=e.useMemo(()=>({}),[]);v.data=o,e.useImperativeHandle(a,()=>({value:m=>{if(m===void 0){const S=r.current&&r.current.value;return S&&(S.name||S)}else C(m||"")}}),[]),e.useImperativeHandle(n,()=>a.current,[]);const y=e.useCallback(m=>{const S=t.nameEditor();S&&S.trigger("delete",{name:m})},[]),b=e.useCallback((m,S)=>{const P=e.createElement(e.Fragment,null,m.props.children,e.createElement("span",{role:"button",className:"k-button-delete",onClick:()=>y(S.dataItem[S.textField]),onMouseDown:x=>x.preventDefault(),onPointerDown:x=>x.preventDefault(),"data-role":"delete"},e.createElement(F.IconWrap,{name:"x",icon:p.xIcon})));return e.cloneElement(m,m.props,P)},[]),w=e.useCallback(m=>e.cloneElement(m,{...m.props},e.createElement("div",null)),[]),f=e.useCallback(m=>{if(m.syntheticEvent&&m.syntheticEvent.type==="change")return;const S=t.nameEditor();S&&(l(S.readData()),u(!0))},[]),k=e.useCallback(()=>{u(!1)},[]),g=e.useCallback(m=>{if(m.syntheticEvent.target.closest("[data-role]"))return;const S=t.nameEditor();if(S&&m.value){const P=m.value.name;P!==s&&(S.trigger("select",{name:P}),C(P))}},[s]),L=e.useCallback(m=>{const S=t.nameEditor();if(S)if(m.key==="Enter"){const P=m.target.value;S.trigger("enter",{value:P}),C(P)}else m.key==="Escape"&&(S.trigger("cancel"),C(v.prevValue))},[]),z=e.useCallback(m=>{v.prevValue=m.value.name},[]);return e.createElement("div",{className:"k-spreadsheet-name-editor",onKeyDown:L},e.createElement(X.ComboBox,{ref:r,title:A.useLocalization().toLanguageString(c.nameBox,E[c.nameBox]),popupSettings:{className:"k-spreadsheet-names-popup"},fillMode:"flat",clearButton:!1,dataItemKey:"name",textField:"name",itemRender:b,data:o,value:s?o.find(m=>m.name===s)||{name:s}:null,onChange:g,opened:d,onOpen:f,onClose:k,onFocus:z,listNoDataRender:w,allowCustom:!0}))});Y.displayName="NameBox";Y.propTypes={};const Zt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},Lt=e.createContext(Zt),Yt=t=>{const n=t.dataItem,{onSelect:a,onDelete:r,onEnterEdit:o,onExitEdit:l,onCancelEdit:d,onEdit:u}=e.useContext(Lt),s=e.useCallback(f=>{f.target instanceof HTMLElement&&f.target.nodeName==="INPUT"||a.call(void 0,n,f)},[n,a]),C=e.useCallback(f=>{r.call(void 0,n,f)},[n,r]),v=e.useCallback(f=>{f.target instanceof HTMLElement&&f.target.nodeName==="INPUT"||o.call(void 0,n,f)},[n,o]),y=e.useCallback(f=>{l.call(void 0,n,f)},[n,l]),b=e.useCallback(f=>{f.key==="Enter"?l.call(void 0,n,f):f.key==="Escape"&&d.call(void 0,n,f)},[n,l,d]),w=e.useCallback(f=>{u.call(void 0,{...n,text:f.target.value},f)},[n,u]);return e.createElement("li",{style:t.style,...t.attributes,ref:t.forwardRef,role:"tab",className:F.classNames("k-item k-tabstrip-item",{"k-disabled":t.isDisabled,"k-active k-state-tab-on-top k-spreadsheet-sheets-bar-active":n.active,"k-spreadsheet-sheets-bar-inactive":!n.active,"k-first":n.first,"k-last":n.last}),onClick:s,onDoubleClick:v},n.inEdit?e.createElement("input",{type:"text",className:"k-textbox k-spreadsheet-sheets-editor",value:n.text,onChange:w,maxLength:50,autoFocus:!0,onBlur:y,onKeyDown:b}):e.createElement(e.Fragment,null,e.createElement("span",{className:"k-link"},n.text),n.first&&n.last?null:e.createElement("span",{className:"k-link k-spreadsheet-sheets-remove",onClick:C},e.createElement(F.IconWrap,{name:"x",icon:p.xIcon}))))},Tt=e.forwardRef((t,n)=>{const{children:a,className:r,...o}=t;return e.createElement("ul",{className:F.classNames("k-tabstrip-items k-reset",r),role:"tablist",...o,ref:n},a)});Tt.displayName="TabsList";const Qt=t=>{const{sheets:n,setSheets:a,onSheetSelect:r,onSheetDelete:o,onSheetEdit:l,onSheetReorderEnd:d}=t,[u,s]=e.useState(null),C=e.useRef(!1),v=e.useRef(-1),y=e.useCallback(x=>{a(x.map((D,K,T)=>({...D,first:K===0,last:K===T.length-1})))},[]),b=e.useCallback(x=>{y(x.newState)},[y,d]),w=e.useCallback(x=>{d.call(void 0,x)},[d]),f=e.useCallback(x=>{C.current=!0,v.current=x.prevIndex},[]),k=e.useCallback(x=>{setTimeout(()=>{C.current=!1},50),d.call(void 0,{...x,prevIndex:v.current})},[]),g=e.useCallback((x,D)=>{C.current||r.call(void 0,x,D)},[r]),L=e.useCallback((x,D)=>{D.stopPropagation(),o.call(void 0,x)},[n,o]),z=e.useCallback((x,D)=>{D.stopPropagation(),D.preventDefault();const K=n.map(T=>({...T,active:T.id===x.id,inEdit:T.id===x.id}));a(K),s({...x})},[n]),m=e.useCallback((x,D)=>{D.stopPropagation(),D.preventDefault();const K=n.map(T=>({...T,inEdit:!1,text:T.inEdit&&u?u.text:T.text}));a(K),s(null)},[n,u]),S=e.useCallback((x,D)=>{D.stopPropagation(),D.preventDefault();const K=n.map(j=>({...j,inEdit:!1})),T=n.findIndex(j=>j.id===x.id);a(K),s(null),l.call(void 0,x,T)},[n,l]),P=e.useCallback((x,D)=>{D.stopPropagation(),D.preventDefault();const K=n.map(T=>({...T,text:x.id===T.id?x.text:T.text}));a(K)},[n]);return e.createElement("div",{className:"k-spreadsheet-sheets-items k-tabstrip k-floatwrap k-tabstrip-bottom"},e.createElement("div",{className:"k-tabstrip-items-wrapper k-hstack"},e.createElement(Lt.Provider,{value:{onSelect:g,onDelete:L,onEnterEdit:z,onCancelEdit:m,onExitEdit:S,onEdit:P}},e.createElement($t.Sortable,{idField:"id",data:n,itemUI:Yt,itemsWrapUI:Tt,onDragOver:b,onNavigate:w,onDragStart:f,onDragEnd:k}))))},en=(t,n)=>t.map((a,r,o)=>({text:a.name(),id:F.guid(),first:r===0,last:r===o.length-1,active:a.name()===n})),tn=t=>{const{spreadsheetRef:n}=t,[a,r]=e.useState([]),o=e.useRef((a.find(b=>b.active)||{}).text),l=e.useCallback(()=>{n.current&&(n.current.view.sheetsbar.onSheetSelect(o.current),r(en(n.current.sheets(),o.current)))},[]),d=e.useCallback(()=>{if(n.current){const b=n.current.sheets();b.find(w=>w.name()===o.current)||(o.current=b[b.length-1].name()),l()}},[]);e.useEffect(()=>(n.current&&(n.current.sheets().length&&(o.current=n.current.sheets()[0].name(),l()),n.current.view.bind("update",d)),()=>{n.current&&n.current.view.unbind("update",d)}),[n.current]);const u=e.useCallback(b=>{o.current!==b.text&&(o.current=b.text,l())},[]),s=e.useCallback(()=>{if(n.current){n.current.view.sheetsbar.onAddSelect();const b=n.current.sheets();o.current=b[b.length-1].name(),l()}},[]),C=e.useCallback(b=>{if(n.current){if(o.current===b.text){const w=n.current.sheets(),f=w.findIndex(g=>g.name()===b.text),k=w[f+1]||w[f-1];o.current=k?k.name():""}n.current.view.sheetsbar.onSheetRemove(b.text),l()}},[]),v=e.useCallback((b,w)=>{if(n.current){let f=b.text;const k=n.current.sheets(),g=k[w];if(!f){o.current=g.name(),l();return}if(g&&g.name()===f)return;k.find(L=>L.name()===f)&&(f=g.name()),n.current.view.sheetsbar.onSheetRename(f,w),o.current=f,l()}},[]),y=e.useCallback(b=>{if(n.current){const{prevIndex:w,nextIndex:f}=b;o.current=n.current.sheets()[w].name(),n.current.view.sheetsbar.onSheetReorderEnd({oldIndex:w,newIndex:f}),l()}},[]);return e.createElement("div",{className:"k-spreadsheet-sheets-bar k-header"},e.createElement(I.Button,{fillMode:"flat",icon:"plus",className:"k-spreadsheet-sheets-bar-add",title:A.useLocalization().toLanguageString(c.addNewSheet,E[c.addNewSheet]),svgIcon:p.plusIcon,onClick:s}),e.createElement(Qt,{sheets:a,setSheets:r,onSheetSelect:u,onSheetDelete:C,onSheetEdit:v,onSheetReorderEnd:y}))},Q=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(()=>{n.current&&n.current.saveAsExcel({...n.current.options.excel,saveAs:Te.saveAs,Workbook:Fe.Workbook})},[]);return e.createElement(I.Button,{className:"k-toolbar-button",title:"Export...",icon:"download",fillMode:"flat",svgIcon:p.downloadIcon,onClick:a})};Q.displayName="ExcelExport";const ee=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(o=>{const l=o.target;if(l instanceof Element&&l.parentNode){const d=l.closest(".k-toolbar"),u=d&&d.querySelector(".k-upload input");u&&u.click()}},[]),r=e.useCallback(o=>{const l=o.newState;if(l[0]&&l[0].getRawFile){const d=l[0].getRawFile();n.current&&n.current.executeCommand({command:"OpenCommand",options:{file:d}})}},[]);return e.createElement(e.Fragment,null,e.createElement(I.Button,{className:"k-toolbar-button",title:A.useLocalization().toLanguageString(c.open,E[c.open]),icon:"folder-open",svgIcon:p.folderOpenIcon,fillMode:"flat",onClick:a}),e.createElement("div",{style:{display:"none"}},e.createElement(Gt.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:r,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};ee.displayName="Open";const nn=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],on="Arial",an=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],ln=12,rn=[{text:"Automatic",value:null},{text:"Text",value:"@"},{text:"Number",value:"#,0.00"},{text:"Percent",value:"0.00%"},{text:"Financial",value:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'},{text:"Currency",value:"$#,##0.00;[Red]$#,##0.00"},{text:"Date",value:"m/d/yyyy"},{text:"Time",value:"h:mm:ss AM/PM"},{text:"Date time",value:"m/d/yyyy h:mm"},{text:"Duration",value:"[h]:mm:ss"}],te=t=>a=>{const{property:r,icon:o,svgIcon:l,titleKey:d}=t,{spreadsheetRef:u,value:s}=a,C=e.useCallback(()=>{if(u.current){const y={command:"PropertyChangeCommand",options:{property:r,value:!s}};u.current.executeCommand(y)}},[s]);return e.createElement(I.Button,{type:"button",icon:o,svgIcon:l,fillMode:"flat",togglable:!0,onClick:C,selected:s,title:A.useLocalization().toLanguageString(d,E[d])})},Ft=t=>a=>{const{property:r,titleKey:o,...l}=t,{spreadsheetRef:d,value:u}=a,s=e.useCallback(C=>{if(d.current){const v={command:"PropertyChangeCommand",options:{property:r,value:C.value||null}};d.current.executeCommand(v)}},[r]);return e.createElement(Xt.ColorPicker,{onChange:s,onActiveColorClick:s,fillMode:"flat",...l,title:A.useLocalization().toLanguageString(o,E[o]),value:u})},zt=t=>a=>{const{spreadsheetRef:r}=a,o=e.useCallback(()=>{r.current&&r.current.workbook.undoRedoStack[t.action]()},[]);return e.createElement(I.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(t.titleKey,E[t.titleKey]),onClick:o})},sn={property:"bold",icon:"bold",svgIcon:p.boldIcon,titleKey:c.bold},ne=te(sn);ne.displayName="Bold";const cn={property:"italic",icon:"italic",svgIcon:p.italicIcon,titleKey:c.italic},oe=te(cn);oe.displayName="Italic";const un={property:"underline",icon:"underline",svgIcon:p.underlineIcon,titleKey:c.underline},ae=te(un);ae.displayName="Underline";const le=t=>{const{spreadsheetRef:n,value:a}=t,r=e.useCallback(o=>{if(n.current){const l={command:"PropertyChangeCommand",options:{property:"fontFamily",value:o.value||null}};n.current.executeCommand(l)}},[]);return e.createElement(X.DropDownList,{onChange:r,value:a,data:nn,defaultValue:on,fillMode:"flat",title:A.useLocalization().toLanguageString(c.fontName,E[c.fontName]),leftRightKeysNavigation:!1})};le.displayName="FontFamily";const q=1,J=409,$=t=>typeof t=="string"?parseFloat(t):t,re=t=>{const{spreadsheetRef:n}=t,a=$(t.value),r=e.useCallback(o=>{var u;let l=o.value?$(o.value):a;l=isNaN(l)?a:l,l=Math.min(J,Math.max(q,l));const d={command:"PropertyChangeCommand",options:{property:"fontSize",value:l}};o.nativeEvent.type==="keydown"||o.nativeEvent.type==="focusout"?(u=n.current)==null||u.executeCommand(d):setTimeout(()=>{var s;(s=n.current)==null||s.executeCommand(d)},0)},[a]);return e.createElement(X.ComboBox,{onChange:r,value:a,data:an,defaultValue:ln,allowCustom:!0,fillMode:"flat",title:A.useLocalization().toLanguageString(c.fontSize,E[c.fontSize]),tabIndex:-1,clearButton:!1})};re.displayName="FontSize";const Pt=t=>{const n=a=>{const{property:r,icon:o,svgIcon:l,titleKey:d,step:u}=t,{spreadsheetRef:s}=a,C=$(a.value),v=e.useCallback(()=>{var b;const y={command:"PropertyChangeCommand",options:{property:r,value:Math.min(J,Math.max(q,C+u))}};(b=s.current)==null||b.executeCommand(y)},[C]);return e.createElement(I.Button,{type:"button",icon:o,svgIcon:l,fillMode:"flat",onClick:v,disabled:C+u<q||C+u>J,title:A.useLocalization().toLanguageString(d,E[d])})};return n.displayName=t.displayName,n},Kt=Pt({property:"fontSize",icon:"font-grow",svgIcon:p.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Bt=Pt({property:"fontSize",icon:"font-shrink",svgIcon:p.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),se=Ft({icon:"foreground-color",svgIcon:p.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});se.displayName="TextColor";const ce=Ft({icon:"droplet",svgIcon:p.dropletIcon,view:"palette",property:"background",titleKey:c.background,ariaLabel:"Background"});ce.displayName="BackgroundColor";const H=[{icon:"align-left",svgIcon:p.alignLeftIcon,textKey:c.alignLeft,commandName:"textAlign",value:"left",selected:!1},{icon:"align-center",svgIcon:p.alignCenterIcon,textKey:c.alignCenter,commandName:"textAlign",value:"center",selected:!1},{icon:"align-right",svgIcon:p.alignRightIcon,textKey:c.alignRight,commandName:"textAlign",value:"right",selected:!1},{icon:"align-justify",svgIcon:p.alignJustifyIcon,textKey:c.alignJustify,commandName:"textAlign",value:"justify",selected:!1},{icon:"align-top",svgIcon:p.alignTopIcon,textKey:c.alignTop,commandName:"verticalAlign",value:"top",selected:!1},{icon:"align-middle",svgIcon:p.alignMiddleIcon,textKey:c.alignMiddle,commandName:"verticalAlign",value:"center",selected:!1},{icon:"align-bottom",svgIcon:p.alignBottomIcon,textKey:c.alignBottom,commandName:"verticalAlign",value:"bottom",selected:!1}],dn=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],mn=H.filter(t=>t.commandName==="verticalAlign"),Ot=t=>{const{value:n,spreadsheetRef:a}=t,{textAlign:r,verticalAlign:o}=n||{},l=A.useLocalization(),d=e.useCallback(s=>{if(a.current){const C=s.item,v={command:"PropertyChangeCommand",options:{property:C.commandName,value:C.value||null}};a.current.executeCommand(v)}},[]);let u=H.slice();return u=u.map(s=>({...s,text:l.toLanguageString(s.textKey,E[s.textKey])})),r&&(u=u.map(s=>s.commandName==="textAlign"?{...s,selected:s.value===r}:s)),o&&(u=u.map(s=>s.commandName==="verticalAlign"?{...s,selected:s.value===o}:s)),e.createElement(I.DropDownButton,{icon:"align-left",svgIcon:p.alignLeftIcon,items:u,fillMode:"flat",onItemClick:d,title:l.toLanguageString(c.align,E[c.align]),text:e.createElement(F.IconWrap,{name:"caret-alt-down",icon:p.caretAltDownIcon})})};Ot.displayName="Alignment";const pn={items:dn,icon:{icon:"align-left",svgIcon:p.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},fn={items:mn,icon:{icon:"align-bottom",svgIcon:p.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Mt=t=>{const n=a=>{const{value:r,spreadsheetRef:o}=a,l=A.useLocalization(),d=e.useCallback(v=>{if(o.current){const y=v.item,b={command:"PropertyChangeCommand",options:{property:y.commandName,value:y.value||null}};o.current.executeCommand(b)}},[]);let u=t.items.slice();u=u.map(v=>({...v,text:l.toLanguageString(v.textKey,E[v.textKey])})),u=u.map(v=>({...v,selected:v.value===r}));const s={...t.icon},C=u.find(v=>v.selected);return C&&(s.icon=C.icon,s.svgIcon=C.svgIcon),e.createElement(I.DropDownButton,{...s,items:u,fillMode:"flat",onItemClick:d,title:l.toLanguageString(t.titleKey,E[t.titleKey]),text:e.createElement(F.IconWrap,{name:"caret-alt-down",icon:p.caretAltDownIcon})})};return n.displayName=t.displayName,n},jt=Mt(pn),Ht=Mt(fn),ie=t=>{const{value:n,spreadsheetRef:a}=t,r=e.useCallback(()=>{if(a.current){const o=a.current.activeSheet();if(o){const u={command:"TextWrapCommand",options:{property:"wrap",value:!o.range(o.activeCell()).wrap()}};a.current.executeCommand(u)}}},[]);return e.createElement(I.Button,{type:"button",togglable:!0,icon:"text-wrap",svgIcon:p.textWrapIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(c.textWrap,E[c.textWrap]),onClick:r,selected:n})};ie.displayName="TextWrap";const ue=t=>{const{value:n,spreadsheetRef:a}=t,r=e.useCallback(()=>{if(a.current){const o=a.current.activeSheet();if(o){const d={command:"GridLinesChangeCommand",options:{property:"gridLines",value:!o.showGridLines()}};a.current.executeCommand(d)}}},[]);return e.createElement(I.Button,{type:"button",togglable:!0,icon:"borders-none",svgIcon:p.bordersNoneIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(c.gridLines,E[c.gridLines]),onClick:r,selected:n})};ue.displayName="GridLines";const de=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(r=>{const o=r.item.value||null;setTimeout(()=>{if(n.current){const l={command:"PropertyChangeCommand",options:{property:"format",value:o}};n.current.executeCommand(l)}},0)},[]);return e.createElement(I.DropDownButton,{icon:"custom-format",svgIcon:p.customFormatIcon,fillMode:"flat",onItemClick:a,items:rn,title:A.useLocalization().toLanguageString(c.format,E[c.format]),text:e.createElement(F.IconWrap,{name:"caret-alt-down"})})};de.displayName="Format";const U=t=>a=>{const{spreadsheetRef:r,value:o}=a,l=e.useCallback(()=>{if(r.current){const d={command:t.command,options:{value:t.value}};r.current.executeCommand(d)}},[]);return e.createElement(I.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(t.titleKey,E[t.titleKey]),onClick:l,disabled:o&&t.disabled(o)})},gn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:p.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},bn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:p.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},hn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:p.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},yn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:p.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},Cn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:p.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},vn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:p.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},me=U(gn),pe=U(bn),fe=U(hn),ge=U(yn),be=U(Cn),he=U(vn);me.displayName="AddColumnLeft";pe.displayName="AddColumnRight";fe.displayName="AddRowBelow";ge.displayName="AddRowAbove";be.displayName="DeleteColumn";he.displayName="DeleteRow";const kn={action:"undo",icon:"reset",svgIcon:p.arrowRotateCcwIcon,titleKey:c.undo},ye=zt(kn);ye.displayName="Undo";const xn={action:"redo",icon:"reload",svgIcon:p.arrowRotateCwIcon,titleKey:c.redo},Ce=zt(xn);Ce.displayName="Redo";const Ut=t=>a=>{const{icon:r,svgIcon:o,titleKey:l,value:d}=t,{spreadsheetRef:u}=a,s=e.useCallback(()=>{if(u.current){const C={command:"AdjustDecimalsCommand",options:{value:d}};u.current.executeCommand(C)}},[]);return e.createElement(I.Button,{type:"button",icon:r,svgIcon:o,fillMode:"flat",onClick:s,title:A.useLocalization().toLanguageString(l,E[l])})},Sn=Ut({icon:p.decimalIncreaseIcon.name,svgIcon:p.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),In=Ut({icon:p.decimalDecreaseIcon.name,svgIcon:p.decimalDecreaseIcon,value:-1,titleKey:c.decreaseDecimal}),G=[{textKey:c.file,tools:[ee,Q]},{textKey:c.home,selected:!0,tools:[[ye,Ce],I.ToolbarSeparator,le,re,Kt,Bt,I.ToolbarSeparator,[ne,oe,ae],se,I.ToolbarSeparator,ce,I.ToolbarSeparator,jt,Ht,ie,I.ToolbarSeparator,ue]},{textKey:c.insert,tools:[[me,pe,fe,ge],I.ToolbarSeparator,[be,he]]},{textKey:c.formatTab,tools:[de,[In,Sn]]}],Ne={name:"@progress/kendo-react-spreadsheet",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:1683639393,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning"},Ae=["bold","italic","underline","fontFamily","fontSize","color","background","textAlign","verticalAlign","wrap","gridLines"],De={Bold:t=>t.bold,Italic:t=>t.italic,Underline:t=>t.underline,FontFamily:t=>t.fontFamily,FontSize:t=>t.fontSize,IncreaseFontSize:t=>t.fontSize,DecreaseFontSize:t=>t.fontSize,TextColor:t=>t.color,BackgroundColor:t=>t.background,Alignment:t=>({textAlign:t.textAlign,verticalAlign:t.verticalAlign}),AlignHorizontally:t=>t.textAlign,AlignVertically:t=>t.verticalAlign,TextWrap:t=>t.wrap,GridLines:t=>t.gridLines,AddColumnLeft:t=>t.selectedHeaders,AddColumnRight:t=>t.selectedHeaders,AddRowBelow:t=>t.selectedHeaders,AddRowAbove:t=>t.selectedHeaders,DeleteColumn:t=>t.selectedHeaders,DeleteRow:t=>t.selectedHeaders},Le=":not(.k-dropdownlist button):not(.k-combobox button):not(.k-upload-button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",En=["button"+Le,".k-button-group > button"+Le,".k-dropdownlist",".k-combobox",".k-colorpicker"],ve=e.forwardRef((t,n)=>{F.validatePackage(Ne);const a=F.shouldShowValidationUI(Ne),{toolbar:r=G}=t,o=[];typeof r=="boolean"?o.push(...r?G:[]):o.push(...r);const[l,d]=e.useState(null),[u,s]=e.useState(o.findIndex(i=>i.selected)||0),[C,v]=e.useState(!1),y=e.useRef(null),b=e.useRef(null),w=e.useRef(null),f=e.useRef(null),k=e.useRef(null),[g,L]=e.useState({}),z=e.useRef({});z.current=g;const m=e.useRef({});m.current=t;const S=A.useLocalization(),P=e.useCallback(i=>{m.current.onSelect&&m.current.onSelect.call(void 0,i)},[]),x=e.useCallback(i=>{m.current.onChange&&m.current.onChange.call(void 0,i)},[]),D=e.useCallback(i=>{m.current.onChangeFormat&&m.current.onChangeFormat.call(void 0,i)},[]),K=e.useCallback(i=>{m.current.onExcelImport&&m.current.onExcelImport.call(void 0,i)},[]),T=e.useCallback(i=>{m.current.onExcelExport&&m.current.onExcelExport.call(void 0,i)},[]),j=e.useRef(null);e.useImperativeHandle(j,()=>({element:y.current,get instance(){return k.current},props:t,get view(){return k.current.view},get workbook(){return k.current.workbook},executeCommand(i){var h;(h=k.current)==null||h.executeCommand(i)},fromJSON(i){var h;return(h=k.current)==null?void 0:h.fromJSON(i)},toJSON(){return k.current.toJSON()},saveJSON(){return k.current.saveJSON()},fromFile(i){return k.current.fromFile(i)},saveAsExcel(i){var h;(h=k.current)==null||h.saveAsExcel({...k.current.options.excel,saveAs:Te.saveAs,Workbook:Fe.Workbook,...i})},activeSheet(i){var h;return(h=k.current)==null?void 0:h.activeSheet(i)},sheets(){return k.current.sheets()},refresh(){var i;return(i=k.current)==null?void 0:i.refresh()}}),[t]),e.useImperativeHandle(n,()=>j.current);const Wt=e.useCallback(()=>k.current&&k.current.view.nameEditor,[]),ke=e.useCallback(i=>{const h={};Ae.forEach(R=>{typeof i.range[R]=="function"?h[R]=i.range[R]():R==="gridLines"&&(h[R]=i.range.sheet().showGridLines())}),h.selectedHeaders=i.range.sheet().selectedHeaders(),(Ae.some(R=>h[R]!==z.current[R])||h.selectedHeaders.allCols!==z.current.selectedHeaders.allCols||h.selectedHeaders.allRows!==z.current.selectedHeaders.allRows)&&L(h)},[]),_t=e.useCallback(i=>{const h=i.name,R=c[h];d({title:i.title==="Error"?S.toLanguageString(c.error,E[c.error]||i.title):i.title,message:R?S.toLanguageString(R,E[R]||i.text):i.text,close:i.close})},[]),xe=e.useCallback(()=>{d(null),l==null||l.close()},[l]),W=A.useInternationalization(),Se=A.useLocalization();e.useEffect(()=>{var _;const i={...t.defaultProps,sheets:structuredClone((_=t.defaultProps)==null?void 0:_.sheets),messages:{workbook:{defaultSheetName:Se.toLanguageString(c.defaultSheetName,E[c.defaultSheetName])}},intl:{localeInfo:()=>W.localeInfo(),localeCurrency:()=>W.localeCurrency(),parseDate:(O,M)=>W.parseDate(O,M),toString:(O,M)=>W.toString(O,M),format:(O,...M)=>W.format(O,...M)},formulaBarInputRef:b,formulaCellInputRef:w,nameBoxRef:f},h=new N.SpreadsheetWidget(y.current,i);k.current=h,h.bind("select",P),h.bind("change",x),h.bind("changeFormat",D),h.bind("excelImport",K),h.bind("excelExport",T),h.view.bind("update",ke),h.view.bind("message",_t);const R=h.activeSheet();return R&&ke({range:R.range(R.activeCell())}),v(!0),()=>{h.destroy()}},[]);const Ie=e.useCallback((i,h)=>{const R=e.createElement(i,{spreadsheetRef:k,value:De[i.displayName]?De[i.displayName](g):void 0,key:h});return R.type===I.ToolbarSeparator?e.createElement(i,{key:h}):R},[g]);let Ee=null;return o.length&&(Ee=e.createElement(we.TabStrip,{selected:u,animation:!1,className:"k-floatwrap k-spreadsheet-tabstrip",style:{minHeight:"auto"},onSelect:i=>s(i.selected)},o.map(i=>{const h=i.textKey?Se.toLanguageString(i.textKey,E[i.textKey]):i.text;return e.createElement(we.TabStripTab,{key:i.textKey||i.text,title:h},e.createElement(I.Toolbar,{buttons:En,className:"k-spreadsheet-toolbar"},i.tools.map((R,_)=>Array.isArray(R)?e.createElement(I.ButtonGroup,{key:_},R.map((O,M)=>Ie(O,M))):Ie(R,_))))}))),e.createElement("div",{ref:y,style:t.style,className:F.classNames("k-widget k-spreadsheet",t.className),role:"application"},Ee,e.createElement("div",{className:"k-spreadsheet-action-bar"},e.createElement(Y,{ref:f,nameEditor:Wt}),e.createElement("div",{className:"k-spreadsheet-formula-bar"},e.createElement(F.IconWrap,{name:"formula-fx",icon:p.formulaFxIcon}),e.createElement(V,{ref:b}))),e.createElement("div",{className:"k-spreadsheet-view"},e.createElement("div",{className:"k-spreadsheet-fixed-container"}),e.createElement("div",{className:"k-spreadsheet-scroller"},e.createElement("div",{className:"k-spreadsheet-view-size"})),e.createElement("div",{tabIndex:0,className:"k-spreadsheet-clipboard",contentEditable:"true"}),e.createElement(V,{ref:w,className:"k-spreadsheet-cell-editor"})),e.createElement(tn,{spreadsheetRef:k}),l&&e.createElement(Re.Dialog,{title:l.title,onClose:xe},e.createElement("div",null,l.message),e.createElement(Re.DialogActionsBar,{layout:"start"},e.createElement(I.Button,{themeColor:"primary",onClick:xe,autoFocus:!0},S.toLanguageString(c.ok,E[c.ok])))),a&&e.createElement(F.WatermarkOverlay,null))});ve.displayName="KendoReactSpreadsheet";ve.propTypes={className:B.string,defaultProps:B.any,toolbar:B.oneOfType([B.bool,B.arrayOf(B.any)]),style:B.object,onSelect:B.func,onChange:B.func,onChangeFormat:B.func,onExcelImport:B.func,onExcelExport:B.func};const wn=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(()=>{n.current&&n.current.executeCommand({command:"PropertyCleanCommand"})},[]);return e.createElement(I.Button,{type:"button",icon:"clean-css",svgIcon:p.clearCssIcon,fillMode:"flat",onClick:a,title:A.useLocalization().toLanguageString(c.cleanFormatting,E[c.cleanFormatting])})};Object.defineProperty(exports,"CalcError",{enumerable:!0,get:()=>N.CalcError});Object.defineProperty(exports,"CellRef",{enumerable:!0,get:()=>N.CellRef});Object.defineProperty(exports,"Context",{enumerable:!0,get:()=>N.Context});Object.defineProperty(exports,"Matrix",{enumerable:!0,get:()=>N.Matrix});Object.defineProperty(exports,"NULLREF",{enumerable:!0,get:()=>N.NULLREF});Object.defineProperty(exports,"NameRef",{enumerable:!0,get:()=>N.NameRef});Object.defineProperty(exports,"Range",{enumerable:!0,get:()=>N.Range});Object.defineProperty(exports,"RangeRef",{enumerable:!0,get:()=>N.RangeRef});Object.defineProperty(exports,"Ref",{enumerable:!0,get:()=>N.Ref});Object.defineProperty(exports,"Sheet",{enumerable:!0,get:()=>N.Sheet});Object.defineProperty(exports,"SpreadsheetWidget",{enumerable:!0,get:()=>N.SpreadsheetWidget});Object.defineProperty(exports,"UnionRef",{enumerable:!0,get:()=>N.UnionRef});Object.defineProperty(exports,"View",{enumerable:!0,get:()=>N.View});Object.defineProperty(exports,"Workbook",{enumerable:!0,get:()=>N.Workbook});Object.defineProperty(exports,"dateToSerial",{enumerable:!0,get:()=>N.dateToSerial});Object.defineProperty(exports,"defineAlias",{enumerable:!0,get:()=>N.defineAlias});Object.defineProperty(exports,"defineFunction",{enumerable:!0,get:()=>N.defineFunction});Object.defineProperty(exports,"packDate",{enumerable:!0,get:()=>N.packDate});Object.defineProperty(exports,"packTime",{enumerable:!0,get:()=>N.packTime});Object.defineProperty(exports,"serialToDate",{enumerable:!0,get:()=>N.serialToDate});Object.defineProperty(exports,"unpackDate",{enumerable:!0,get:()=>N.unpackDate});Object.defineProperty(exports,"unpackTime",{enumerable:!0,get:()=>N.unpackTime});exports.AddColumnLeft=me;exports.AddColumnRight=pe;exports.AddRowAbove=ge;exports.AddRowBelow=fe;exports.AlignHorizontally=jt;exports.AlignVertically=Ht;exports.Alignment=Ot;exports.BackgroundColor=ce;exports.Bold=ne;exports.CleanFormatting=wn;exports.DecreaseFontSize=Bt;exports.DeleteColumn=be;exports.DeleteRow=he;exports.ExcelExport=Q;exports.FontFamily=le;exports.FontSize=re;exports.Format=de;exports.GridLines=ue;exports.IncreaseFontSize=Kt;exports.Italic=oe;exports.Open=ee;exports.Redo=Ce;exports.Spreadsheet=ve;exports.TextColor=se;exports.TextWrap=ie;exports.Underline=ae;exports.Undo=ye;exports.defaultTabs=G;
5
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Vt=require("react"),qt=require("prop-types"),I=require("@progress/kendo-react-buttons"),we=require("@progress/kendo-react-layout"),Re=require("@progress/kendo-react-dialogs"),Jt=require("@progress/kendo-react-popup"),F=require("@progress/kendo-react-common"),p=require("@progress/kendo-svg-icons"),X=require("@progress/kendo-react-dropdowns"),A=require("@progress/kendo-react-intl"),$t=require("@progress/kendo-react-sortable"),R=require("@progress/kendo-spreadsheet-common"),Te=require("@progress/kendo-file-saver"),Fe=require("@progress/kendo-ooxml"),Gt=require("@progress/kendo-react-upload"),Xt=require("@progress/kendo-react-inputs");function ze(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const l=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(n,a,l.get?l:{enumerable:!0,get:()=>t[a]})}}return n.default=t,Object.freeze(n)}const e=ze(Vt),B=ze(qt),Z=e.forwardRef((t,n)=>{const a=e.useRef(null),l=e.useRef(null);return e.useImperativeHandle(a,()=>({element:l.current,props:t})),e.useImperativeHandle(n,()=>a.current),e.createElement("div",{className:"k-list k-list-md"},e.createElement("div",{className:"k-list-content"},e.createElement("ul",{ref:l,className:"k-spreadsheet-formula-list k-list-ul",onMouseDown:o=>o.preventDefault(),style:{maxHeight:280}},t.data.map(o=>e.createElement("li",{key:o.text,className:"k-list-item",onClick:()=>t.onItemClick(o.value)},e.createElement(F.IconWrap,{name:"formula-fx",icon:p.formulaFxIcon}),e.createElement("span",{className:"k-list-item-text"},o.text))))))});Z.displayName="List";Z.propTypes={};const V=e.forwardRef((t,n)=>{const[a,l]=e.useState(!1),[o,r]=e.useState(0),[u,d]=e.useState([]),s=e.useMemo(()=>({}),[]);s.showPopup=a,s.popupContentKey=o,s.data=u;const C=e.useRef(null),v=e.useRef(null),y=e.useRef(null),D=e.useCallback(()=>{if(y.current&&y.current.element)return y.current.element.querySelector(".k-focus")},[]),k=e.useCallback(()=>{const g=D();g&&g.classList.remove("k-focus")},[]),f=e.useCallback(g=>{const N=Array.from(y.current&&y.current.element.children||[]),z=D();let m;if(z){const S=N.indexOf(z);z.classList.remove("k-focus"),m=N[S+g]?N[S+g]:g===1?N[0]:N[N.length-1]}else m=g===1?N[0]:N[N.length-1];m&&m.classList.add("k-focus")},[]);e.useImperativeHandle(C,()=>({element:v.current,props:t,popup:{open:()=>{l(!0)},close:()=>{l(!1)},position:()=>{r(s.popupContentKey+1)},visible:()=>s.showPopup},list:{get element(){return y.current&&y.current.element},data:g=>{if(g)d(g);else return s.data},value:()=>({}),focus:()=>Array.from(y.current&&y.current.element&&y.current.element.children||[]).indexOf(D()),focusNext:()=>{f(1)},focusPrev:()=>{f(-1)},focusFirst:()=>{const g=y.current&&y.current.element;g&&g.children.item(0)&&(k(),g.children.item(0).classList.add("k-focus"))},focusLast:()=>{const g=y.current&&y.current.element;g&&g.children.length&&(k(),g.children.item(g.children.length-1).classList.add("k-focus"))},itemClick:g=>{s.itemClick=g}}}),[]),e.useImperativeHandle(n,()=>C.current,[]);const h=e.useCallback(g=>{s.itemClick&&s.itemClick(g)},[]);return e.createElement(e.Fragment,null,e.createElement("div",{className:F.classNames("k-spreadsheet-formula-input",t.className),contentEditable:"true",spellCheck:"false",style:{whiteSpace:"pre"},ref:v}),e.createElement(Jt.Popup,{show:a,anchor:v.current,animate:{openDuration:100,closeDuration:100},contentKey:o,popupClass:"k-list-container"},e.createElement(Z,{data:u,ref:y,onItemClick:h})))});V.displayName="FormulaInput";V.propTypes={};const Pe="spreadsheet.bold",Ke="spreadsheet.italic",Be="spreadsheet.underline",Oe="spreadsheet.openFile",Me="spreadsheet.textColor",je="spreadsheet.background",He="spreadsheet.addRowAbove",Ue="spreadsheet.addRowBelow",We="spreadsheet.addColumnLeft",_e="spreadsheet.addColumnRight",Ve="spreadsheet.deleteRow",qe="spreadsheet.deleteColumn",Je="spreadsheet.undo",$e="spreadsheet.redo",Ge="spreadsheet.fontSize",Xe="spreadsheet.fontSizeIncrease",Ze="spreadsheet.fontSizeDecrease",Ye="spreadsheet.fontName",Qe="spreadsheet.cleanFormatting",et="spreadsheet.format",tt="spreadsheet.alignHorizontally",nt="spreadsheet.alignVertically",ot="spreadsheet.align",at="spreadsheet.alignLeft",lt="spreadsheet.alignRight",rt="spreadsheet.alignCenter",st="spreadsheet.center",ct="spreadsheet.alignJustify",it="spreadsheet.justify",ut="spreadsheet.alignTop",dt="spreadsheet.alignMiddle",mt="spreadsheet.alignBottom",pt="spreadsheet.increaseDecimal",ft="spreadsheet.decreaseDecimal",gt="spreadsheet.textWrap",bt="spreadsheet.gridLines",ht="spreadsheet.exportToExcel",yt="spreadsheet.nameBox",Ct="spreadsheet.defaultSheetName",vt="spreadsheet.home",kt="spreadsheet.file",xt="spreadsheet.insert",St="spreadsheet.formatTab",It="spreadsheet.addNewSheet",Et="spreadsheet.error",wt="spreadsheet.ok",Rt="spreadsheet.modifyMerged",Nt="spreadsheet.cannotModifyDisabled",At="spreadsheet.openUnsupported",Dt="spreadsheet.duplicateSheetName",E={[Pe]:"Bold",[Ke]:"Italic",[Be]:"Underline",[Je]:"Undo",[$e]:"Redo",[Ge]:"Font size",[Xe]:"Increase Font size",[Ze]:"Decrease Font size",[Ye]:"Font",[Qe]:"Clean formatting",[et]:"Custom format...",[tt]:"Align horizontally",[nt]:"Align vertically",[ot]:"Align",[at]:"Align left",[lt]:"Align right",[rt]:"Align center",[ct]:"Align justify",[st]:"Center",[it]:"Justify",[ut]:"Align top",[dt]:"Align middle",[mt]:"Align bottom",[pt]:"Increase decimal",[ft]:"Decrease decimal",[Me]:"Text Color",[je]:"Background color",[He]:"Add row above",[Ue]:"Add row below",[We]:"Add column left",[_e]:"Add column right",[Ve]:"Delete row",[qe]:"Delete column",[Oe]:"Open...",[ht]:"Export to Excel",[gt]:"Text Wrap",[bt]:"Toggle gridlines",[yt]:"Name Box",[Ct]:"Sheet",[vt]:"Home",[kt]:"File",[xt]:"Insert",[It]:"Add new sheet",[St]:"Format",[Rt]:"Cannot change part of a merged cell.",[Nt]:"Cannot modify disabled cells.",[At]:"Unsupported format. Please select an .xlsx file.",[Dt]:"There is an existing sheet with this name. Please enter another name.",[Et]:"Error",[wt]:"OK"},c={bold:Pe,italic:Ke,underline:Be,undo:Je,redo:$e,fontSize:Ge,fontSizeIncrease:Xe,fontSizeDecrease:Ze,fontName:Ye,cleanFormatting:Qe,format:et,alignHorizontally:tt,alignVertically:nt,align:ot,alignLeft:at,alignRight:lt,alignCenter:rt,center:st,alignJustify:ct,justify:it,alignTop:ut,alignMiddle:dt,alignBottom:mt,increaseDecimal:pt,decreaseDecimal:ft,textColor:Me,background:je,addRowAbove:He,addRowBelow:Ue,addColumnLeft:We,addColumnRight:_e,deleteRow:Ve,deleteColumn:qe,open:Oe,exportToExcel:ht,textWrap:gt,gridLines:bt,nameBox:yt,defaultSheetName:Ct,file:kt,home:vt,insert:xt,addNewSheet:It,error:Et,ok:wt,modifyMerged:Rt,cannotModifyDisabled:Nt,openUnsupported:At,duplicateSheetName:Dt,formatTab:St},Y=e.forwardRef((t,n)=>{const a=e.useRef(null),l=e.useRef(null),[o,r]=e.useState([]),[u,d]=e.useState(!1),[s,C]=e.useState(""),v=e.useMemo(()=>({}),[]);v.data=o,e.useImperativeHandle(a,()=>({value:m=>{if(m===void 0){const S=l.current&&l.current.value;return S&&(S.name||S)}else C(m||"")}}),[]),e.useImperativeHandle(n,()=>a.current,[]);const y=e.useCallback(m=>{const S=t.nameEditor();S&&S.trigger("delete",{name:m})},[]),D=e.useCallback((m,S)=>{const P=e.createElement(e.Fragment,null,m.props.children,e.createElement("span",{role:"button",className:"k-button-delete",onClick:()=>y(S.dataItem[S.textField]),onMouseDown:x=>x.preventDefault(),onPointerDown:x=>x.preventDefault(),"data-role":"delete"},e.createElement(F.IconWrap,{name:"x",icon:p.xIcon})));return e.cloneElement(m,m.props,P)},[]),k=e.useCallback(m=>e.cloneElement(m,{...m.props},e.createElement("div",null)),[]),f=e.useCallback(m=>{if(m.syntheticEvent&&m.syntheticEvent.type==="change")return;const S=t.nameEditor();S&&(r(S.readData()),d(!0))},[]),h=e.useCallback(()=>{d(!1)},[]),g=e.useCallback(m=>{if(m.syntheticEvent.target.closest("[data-role]"))return;const S=t.nameEditor();if(S&&m.value){const P=m.value.name;P!==s&&(S.trigger("select",{name:P}),C(P))}},[s]),N=e.useCallback(m=>{const S=t.nameEditor();if(S)if(m.key==="Enter"){const P=m.target.value;S.trigger("enter",{value:P}),C(P)}else m.key==="Escape"&&(S.trigger("cancel"),C(v.prevValue))},[]),z=e.useCallback(m=>{v.prevValue=m.value.name},[]);return e.createElement("div",{className:"k-spreadsheet-name-editor",onKeyDown:N},e.createElement(X.ComboBox,{ref:l,title:A.useLocalization().toLanguageString(c.nameBox,E[c.nameBox]),popupSettings:{className:"k-spreadsheet-names-popup"},fillMode:"flat",clearButton:!1,dataItemKey:"name",textField:"name",itemRender:D,data:o,value:s?o.find(m=>m.name===s)||{name:s}:null,onChange:g,opened:u,onOpen:f,onClose:h,onFocus:z,listNoDataRender:k,allowCustom:!0}))});Y.displayName="NameBox";Y.propTypes={};const Zt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},Lt=e.createContext(Zt),Yt=t=>{const n=t.dataItem,{onSelect:a,onDelete:l,onEnterEdit:o,onExitEdit:r,onCancelEdit:u,onEdit:d}=e.useContext(Lt),s=e.useCallback(f=>{f.target instanceof HTMLElement&&f.target.nodeName==="INPUT"||a.call(void 0,n,f)},[n,a]),C=e.useCallback(f=>{l.call(void 0,n,f)},[n,l]),v=e.useCallback(f=>{f.target instanceof HTMLElement&&f.target.nodeName==="INPUT"||o.call(void 0,n,f)},[n,o]),y=e.useCallback(f=>{r.call(void 0,n,f)},[n,r]),D=e.useCallback(f=>{f.key==="Enter"?r.call(void 0,n,f):f.key==="Escape"&&u.call(void 0,n,f)},[n,r,u]),k=e.useCallback(f=>{d.call(void 0,{...n,text:f.target.value},f)},[n,d]);return e.createElement("li",{style:t.style,...t.attributes,ref:t.forwardRef,role:"tab",className:F.classNames("k-item k-tabstrip-item",{"k-disabled":t.isDisabled,"k-active k-state-tab-on-top k-spreadsheet-sheets-bar-active":n.active,"k-spreadsheet-sheets-bar-inactive":!n.active,"k-first":n.first,"k-last":n.last}),onClick:s,onDoubleClick:v},n.inEdit?e.createElement("input",{type:"text",className:"k-textbox k-spreadsheet-sheets-editor",value:n.text,onChange:k,maxLength:50,autoFocus:!0,onBlur:y,onKeyDown:D}):e.createElement(e.Fragment,null,e.createElement("span",{className:"k-link"},n.text),n.first&&n.last?null:e.createElement("span",{className:"k-link k-spreadsheet-sheets-remove",onClick:C},e.createElement(F.IconWrap,{name:"x",icon:p.xIcon}))))},Tt=e.forwardRef((t,n)=>{const{children:a,className:l,...o}=t;return e.createElement("ul",{className:F.classNames("k-tabstrip-items k-reset",l),role:"tablist",...o,ref:n},a)});Tt.displayName="TabsList";const Qt=t=>{const{sheets:n,setSheets:a,onSheetSelect:l,onSheetDelete:o,onSheetEdit:r,onSheetReorderEnd:u}=t,[d,s]=e.useState(null),C=e.useRef(!1),v=e.useRef(-1),y=e.useCallback(x=>{a(x.map((L,K,T)=>({...L,first:K===0,last:K===T.length-1})))},[]),D=e.useCallback(x=>{y(x.newState)},[y,u]),k=e.useCallback(x=>{u.call(void 0,x)},[u]),f=e.useCallback(x=>{C.current=!0,v.current=x.prevIndex},[]),h=e.useCallback(x=>{setTimeout(()=>{C.current=!1},50),u.call(void 0,{...x,prevIndex:v.current})},[]),g=e.useCallback((x,L)=>{C.current||l.call(void 0,x,L)},[l]),N=e.useCallback((x,L)=>{L.stopPropagation(),o.call(void 0,x)},[n,o]),z=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const K=n.map(T=>({...T,active:T.id===x.id,inEdit:T.id===x.id}));a(K),s({...x})},[n]),m=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const K=n.map(T=>({...T,inEdit:!1,text:T.inEdit&&d?d.text:T.text}));a(K),s(null)},[n,d]),S=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const K=n.map(j=>({...j,inEdit:!1})),T=n.findIndex(j=>j.id===x.id);a(K),s(null),r.call(void 0,x,T)},[n,r]),P=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const K=n.map(T=>({...T,text:x.id===T.id?x.text:T.text}));a(K)},[n]);return e.createElement("div",{className:"k-spreadsheet-sheets-items k-tabstrip k-floatwrap k-tabstrip-bottom"},e.createElement("div",{className:"k-tabstrip-items-wrapper k-hstack"},e.createElement(Lt.Provider,{value:{onSelect:g,onDelete:N,onEnterEdit:z,onCancelEdit:m,onExitEdit:S,onEdit:P}},e.createElement($t.Sortable,{idField:"id",data:n,itemUI:Yt,itemsWrapUI:Tt,onDragOver:D,onNavigate:k,onDragStart:f,onDragEnd:h}))))},en=(t,n,a)=>t.map((l,o,r)=>({text:l.name(),id:a+"-sheet-"+o,first:o===0,last:o===r.length-1,active:l.name()===n})),tn=t=>{const{spreadsheetRef:n}=t,[a,l]=e.useState([]),o=e.useRef((a.find(k=>k.active)||{}).text),r=F.useId(),u=e.useCallback(()=>{n.current&&(n.current.view.sheetsbar.onSheetSelect(o.current),l(en(n.current.sheets(),o.current,r)))},[]),d=e.useCallback(()=>{if(n.current){const k=n.current.sheets();k.find(f=>f.name()===o.current)||(o.current=k[k.length-1].name()),u()}},[]);e.useEffect(()=>(n.current&&(n.current.sheets().length&&(o.current=n.current.sheets()[0].name(),u()),n.current.view.bind("update",d)),()=>{n.current&&n.current.view.unbind("update",d)}),[n.current]);const s=e.useCallback(k=>{o.current!==k.text&&(o.current=k.text,u())},[]),C=e.useCallback(()=>{if(n.current){n.current.view.sheetsbar.onAddSelect();const k=n.current.sheets();o.current=k[k.length-1].name(),u()}},[]),v=e.useCallback(k=>{if(n.current){if(o.current===k.text){const f=n.current.sheets(),h=f.findIndex(N=>N.name()===k.text),g=f[h+1]||f[h-1];o.current=g?g.name():""}n.current.view.sheetsbar.onSheetRemove(k.text),u()}},[]),y=e.useCallback((k,f)=>{if(n.current){let h=k.text;const g=n.current.sheets(),N=g[f];if(!h){o.current=N.name(),u();return}if(N&&N.name()===h)return;g.find(z=>z.name()===h)&&(h=N.name()),n.current.view.sheetsbar.onSheetRename(h,f),o.current=h,u()}},[]),D=e.useCallback(k=>{if(n.current){const{prevIndex:f,nextIndex:h}=k;o.current=n.current.sheets()[f].name(),n.current.view.sheetsbar.onSheetReorderEnd({oldIndex:f,newIndex:h}),u()}},[]);return e.createElement("div",{className:"k-spreadsheet-sheets-bar k-header"},e.createElement(I.Button,{fillMode:"flat",icon:"plus",className:"k-spreadsheet-sheets-bar-add",title:A.useLocalization().toLanguageString(c.addNewSheet,E[c.addNewSheet]),svgIcon:p.plusIcon,onClick:C}),e.createElement(Qt,{sheets:a,setSheets:l,onSheetSelect:s,onSheetDelete:v,onSheetEdit:y,onSheetReorderEnd:D}))},Q=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(()=>{n.current&&n.current.saveAsExcel({...n.current.options.excel,saveAs:Te.saveAs,Workbook:Fe.Workbook})},[]);return e.createElement(I.Button,{className:"k-toolbar-button",title:"Export...",icon:"download",fillMode:"flat",svgIcon:p.downloadIcon,onClick:a})};Q.displayName="ExcelExport";const ee=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(o=>{const r=o.target;if(r instanceof Element&&r.parentNode){const u=r.closest(".k-toolbar"),d=u&&u.querySelector(".k-upload input");d&&d.click()}},[]),l=e.useCallback(o=>{const r=o.newState;if(r[0]&&r[0].getRawFile){const u=r[0].getRawFile();n.current&&n.current.executeCommand({command:"OpenCommand",options:{file:u}})}},[]);return e.createElement(e.Fragment,null,e.createElement(I.Button,{className:"k-toolbar-button",title:A.useLocalization().toLanguageString(c.open,E[c.open]),icon:"folder-open",svgIcon:p.folderOpenIcon,fillMode:"flat",onClick:a}),e.createElement("div",{style:{display:"none"}},e.createElement(Gt.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:l,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};ee.displayName="Open";const nn=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],on="Arial",an=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],ln=12,rn=[{text:"Automatic",value:null},{text:"Text",value:"@"},{text:"Number",value:"#,0.00"},{text:"Percent",value:"0.00%"},{text:"Financial",value:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'},{text:"Currency",value:"$#,##0.00;[Red]$#,##0.00"},{text:"Date",value:"m/d/yyyy"},{text:"Time",value:"h:mm:ss AM/PM"},{text:"Date time",value:"m/d/yyyy h:mm"},{text:"Duration",value:"[h]:mm:ss"}],te=t=>a=>{const{property:l,icon:o,svgIcon:r,titleKey:u}=t,{spreadsheetRef:d,value:s}=a,C=e.useCallback(()=>{if(d.current){const y={command:"PropertyChangeCommand",options:{property:l,value:!s}};d.current.executeCommand(y)}},[s]);return e.createElement(I.Button,{type:"button",icon:o,svgIcon:r,fillMode:"flat",togglable:!0,onClick:C,selected:s,title:A.useLocalization().toLanguageString(u,E[u])})},Ft=t=>a=>{const{property:l,titleKey:o,...r}=t,{spreadsheetRef:u,value:d}=a,s=e.useCallback(C=>{if(u.current){const v={command:"PropertyChangeCommand",options:{property:l,value:C.value||null}};u.current.executeCommand(v)}},[l]);return e.createElement(Xt.ColorPicker,{onChange:s,onActiveColorClick:s,fillMode:"flat",...r,title:A.useLocalization().toLanguageString(o,E[o]),value:d})},zt=t=>a=>{const{spreadsheetRef:l}=a,o=e.useCallback(()=>{l.current&&l.current.workbook.undoRedoStack[t.action]()},[]);return e.createElement(I.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(t.titleKey,E[t.titleKey]),onClick:o})},sn={property:"bold",icon:"bold",svgIcon:p.boldIcon,titleKey:c.bold},ne=te(sn);ne.displayName="Bold";const cn={property:"italic",icon:"italic",svgIcon:p.italicIcon,titleKey:c.italic},oe=te(cn);oe.displayName="Italic";const un={property:"underline",icon:"underline",svgIcon:p.underlineIcon,titleKey:c.underline},ae=te(un);ae.displayName="Underline";const le=t=>{const{spreadsheetRef:n,value:a}=t,l=e.useCallback(o=>{if(n.current){const r={command:"PropertyChangeCommand",options:{property:"fontFamily",value:o.value||null}};n.current.executeCommand(r)}},[]);return e.createElement(X.DropDownList,{onChange:l,value:a,data:nn,defaultValue:on,fillMode:"flat",title:A.useLocalization().toLanguageString(c.fontName,E[c.fontName]),leftRightKeysNavigation:!1})};le.displayName="FontFamily";const q=1,J=409,$=t=>typeof t=="string"?parseFloat(t):t,re=t=>{const{spreadsheetRef:n}=t,a=$(t.value),l=e.useCallback(o=>{var d;let r=o.value?$(o.value):a;r=isNaN(r)?a:r,r=Math.min(J,Math.max(q,r));const u={command:"PropertyChangeCommand",options:{property:"fontSize",value:r}};o.nativeEvent.type==="keydown"||o.nativeEvent.type==="focusout"?(d=n.current)==null||d.executeCommand(u):setTimeout(()=>{var s;(s=n.current)==null||s.executeCommand(u)},0)},[a]);return e.createElement(X.ComboBox,{onChange:l,value:a,data:an,defaultValue:ln,allowCustom:!0,fillMode:"flat",title:A.useLocalization().toLanguageString(c.fontSize,E[c.fontSize]),tabIndex:-1,clearButton:!1})};re.displayName="FontSize";const Pt=t=>{const n=a=>{const{property:l,icon:o,svgIcon:r,titleKey:u,step:d}=t,{spreadsheetRef:s}=a,C=$(a.value),v=e.useCallback(()=>{var D;const y={command:"PropertyChangeCommand",options:{property:l,value:Math.min(J,Math.max(q,C+d))}};(D=s.current)==null||D.executeCommand(y)},[C]);return e.createElement(I.Button,{type:"button",icon:o,svgIcon:r,fillMode:"flat",onClick:v,disabled:C+d<q||C+d>J,title:A.useLocalization().toLanguageString(u,E[u])})};return n.displayName=t.displayName,n},Kt=Pt({property:"fontSize",icon:"font-grow",svgIcon:p.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Bt=Pt({property:"fontSize",icon:"font-shrink",svgIcon:p.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),se=Ft({icon:"foreground-color",svgIcon:p.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});se.displayName="TextColor";const ce=Ft({icon:"droplet",svgIcon:p.dropletIcon,view:"palette",property:"background",titleKey:c.background,ariaLabel:"Background"});ce.displayName="BackgroundColor";const H=[{icon:"align-left",svgIcon:p.alignLeftIcon,textKey:c.alignLeft,commandName:"textAlign",value:"left",selected:!1},{icon:"align-center",svgIcon:p.alignCenterIcon,textKey:c.alignCenter,commandName:"textAlign",value:"center",selected:!1},{icon:"align-right",svgIcon:p.alignRightIcon,textKey:c.alignRight,commandName:"textAlign",value:"right",selected:!1},{icon:"align-justify",svgIcon:p.alignJustifyIcon,textKey:c.alignJustify,commandName:"textAlign",value:"justify",selected:!1},{icon:"align-top",svgIcon:p.alignTopIcon,textKey:c.alignTop,commandName:"verticalAlign",value:"top",selected:!1},{icon:"align-middle",svgIcon:p.alignMiddleIcon,textKey:c.alignMiddle,commandName:"verticalAlign",value:"center",selected:!1},{icon:"align-bottom",svgIcon:p.alignBottomIcon,textKey:c.alignBottom,commandName:"verticalAlign",value:"bottom",selected:!1}],dn=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],mn=H.filter(t=>t.commandName==="verticalAlign"),Ot=t=>{const{value:n,spreadsheetRef:a}=t,{textAlign:l,verticalAlign:o}=n||{},r=A.useLocalization(),u=e.useCallback(s=>{if(a.current){const C=s.item,v={command:"PropertyChangeCommand",options:{property:C.commandName,value:C.value||null}};a.current.executeCommand(v)}},[]);let d=H.slice();return d=d.map(s=>({...s,text:r.toLanguageString(s.textKey,E[s.textKey])})),l&&(d=d.map(s=>s.commandName==="textAlign"?{...s,selected:s.value===l}:s)),o&&(d=d.map(s=>s.commandName==="verticalAlign"?{...s,selected:s.value===o}:s)),e.createElement(I.DropDownButton,{icon:"align-left",svgIcon:p.alignLeftIcon,items:d,fillMode:"flat",onItemClick:u,title:r.toLanguageString(c.align,E[c.align]),text:e.createElement(F.IconWrap,{name:"caret-alt-down",icon:p.caretAltDownIcon})})};Ot.displayName="Alignment";const pn={items:dn,icon:{icon:"align-left",svgIcon:p.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},fn={items:mn,icon:{icon:"align-bottom",svgIcon:p.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Mt=t=>{const n=a=>{const{value:l,spreadsheetRef:o}=a,r=A.useLocalization(),u=e.useCallback(v=>{if(o.current){const y=v.item,D={command:"PropertyChangeCommand",options:{property:y.commandName,value:y.value||null}};o.current.executeCommand(D)}},[]);let d=t.items.slice();d=d.map(v=>({...v,text:r.toLanguageString(v.textKey,E[v.textKey])})),d=d.map(v=>({...v,selected:v.value===l}));const s={...t.icon},C=d.find(v=>v.selected);return C&&(s.icon=C.icon,s.svgIcon=C.svgIcon),e.createElement(I.DropDownButton,{...s,items:d,fillMode:"flat",onItemClick:u,title:r.toLanguageString(t.titleKey,E[t.titleKey]),text:e.createElement(F.IconWrap,{name:"caret-alt-down",icon:p.caretAltDownIcon})})};return n.displayName=t.displayName,n},jt=Mt(pn),Ht=Mt(fn),ie=t=>{const{value:n,spreadsheetRef:a}=t,l=e.useCallback(()=>{if(a.current){const o=a.current.activeSheet();if(o){const d={command:"TextWrapCommand",options:{property:"wrap",value:!o.range(o.activeCell()).wrap()}};a.current.executeCommand(d)}}},[]);return e.createElement(I.Button,{type:"button",togglable:!0,icon:"text-wrap",svgIcon:p.textWrapIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(c.textWrap,E[c.textWrap]),onClick:l,selected:n})};ie.displayName="TextWrap";const ue=t=>{const{value:n,spreadsheetRef:a}=t,l=e.useCallback(()=>{if(a.current){const o=a.current.activeSheet();if(o){const u={command:"GridLinesChangeCommand",options:{property:"gridLines",value:!o.showGridLines()}};a.current.executeCommand(u)}}},[]);return e.createElement(I.Button,{type:"button",togglable:!0,icon:"borders-none",svgIcon:p.bordersNoneIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(c.gridLines,E[c.gridLines]),onClick:l,selected:n})};ue.displayName="GridLines";const de=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(l=>{const o=l.item.value||null;setTimeout(()=>{if(n.current){const r={command:"PropertyChangeCommand",options:{property:"format",value:o}};n.current.executeCommand(r)}},0)},[]);return e.createElement(I.DropDownButton,{icon:"custom-format",svgIcon:p.customFormatIcon,fillMode:"flat",onItemClick:a,items:rn,title:A.useLocalization().toLanguageString(c.format,E[c.format]),text:e.createElement(F.IconWrap,{name:"caret-alt-down"})})};de.displayName="Format";const U=t=>a=>{const{spreadsheetRef:l,value:o}=a,r=e.useCallback(()=>{if(l.current){const u={command:t.command,options:{value:t.value}};l.current.executeCommand(u)}},[]);return e.createElement(I.Button,{type:"button",icon:t.icon,svgIcon:t.svgIcon,fillMode:"flat",title:A.useLocalization().toLanguageString(t.titleKey,E[t.titleKey]),onClick:r,disabled:o&&t.disabled(o)})},gn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:p.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},bn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:p.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},hn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:p.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},yn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:p.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},Cn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:p.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},vn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:p.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},me=U(gn),pe=U(bn),fe=U(hn),ge=U(yn),be=U(Cn),he=U(vn);me.displayName="AddColumnLeft";pe.displayName="AddColumnRight";fe.displayName="AddRowBelow";ge.displayName="AddRowAbove";be.displayName="DeleteColumn";he.displayName="DeleteRow";const kn={action:"undo",icon:"reset",svgIcon:p.arrowRotateCcwIcon,titleKey:c.undo},ye=zt(kn);ye.displayName="Undo";const xn={action:"redo",icon:"reload",svgIcon:p.arrowRotateCwIcon,titleKey:c.redo},Ce=zt(xn);Ce.displayName="Redo";const Ut=t=>a=>{const{icon:l,svgIcon:o,titleKey:r,value:u}=t,{spreadsheetRef:d}=a,s=e.useCallback(()=>{if(d.current){const C={command:"AdjustDecimalsCommand",options:{value:u}};d.current.executeCommand(C)}},[]);return e.createElement(I.Button,{type:"button",icon:l,svgIcon:o,fillMode:"flat",onClick:s,title:A.useLocalization().toLanguageString(r,E[r])})},Sn=Ut({icon:p.decimalIncreaseIcon.name,svgIcon:p.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),In=Ut({icon:p.decimalDecreaseIcon.name,svgIcon:p.decimalDecreaseIcon,value:-1,titleKey:c.decreaseDecimal}),G=[{textKey:c.file,tools:[ee,Q]},{textKey:c.home,selected:!0,tools:[[ye,Ce],I.ToolbarSeparator,le,re,Kt,Bt,I.ToolbarSeparator,[ne,oe,ae],se,I.ToolbarSeparator,ce,I.ToolbarSeparator,jt,Ht,ie,I.ToolbarSeparator,ue]},{textKey:c.insert,tools:[[me,pe,fe,ge],I.ToolbarSeparator,[be,he]]},{textKey:c.formatTab,tools:[de,[In,Sn]]}],Ne={name:"@progress/kendo-react-spreadsheet",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:1683639393,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning"},Ae=["bold","italic","underline","fontFamily","fontSize","color","background","textAlign","verticalAlign","wrap","gridLines"],De={Bold:t=>t.bold,Italic:t=>t.italic,Underline:t=>t.underline,FontFamily:t=>t.fontFamily,FontSize:t=>t.fontSize,IncreaseFontSize:t=>t.fontSize,DecreaseFontSize:t=>t.fontSize,TextColor:t=>t.color,BackgroundColor:t=>t.background,Alignment:t=>({textAlign:t.textAlign,verticalAlign:t.verticalAlign}),AlignHorizontally:t=>t.textAlign,AlignVertically:t=>t.verticalAlign,TextWrap:t=>t.wrap,GridLines:t=>t.gridLines,AddColumnLeft:t=>t.selectedHeaders,AddColumnRight:t=>t.selectedHeaders,AddRowBelow:t=>t.selectedHeaders,AddRowAbove:t=>t.selectedHeaders,DeleteColumn:t=>t.selectedHeaders,DeleteRow:t=>t.selectedHeaders},Le=":not(.k-dropdownlist button):not(.k-combobox button):not(.k-upload-button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",En=["button"+Le,".k-button-group > button"+Le,".k-dropdownlist",".k-combobox",".k-colorpicker"],ve=e.forwardRef((t,n)=>{F.validatePackage(Ne);const a=F.shouldShowValidationUI(Ne),{toolbar:l=G}=t,o=[];typeof l=="boolean"?o.push(...l?G:[]):o.push(...l);const[r,u]=e.useState(null),[d,s]=e.useState(o.findIndex(i=>i.selected)||0),[C,v]=e.useState(!1),y=e.useRef(null),D=e.useRef(null),k=e.useRef(null),f=e.useRef(null),h=e.useRef(null),[g,N]=e.useState({}),z=e.useRef({});z.current=g;const m=e.useRef({});m.current=t;const S=A.useLocalization(),P=e.useCallback(i=>{m.current.onSelect&&m.current.onSelect.call(void 0,i)},[]),x=e.useCallback(i=>{m.current.onChange&&m.current.onChange.call(void 0,i)},[]),L=e.useCallback(i=>{m.current.onChangeFormat&&m.current.onChangeFormat.call(void 0,i)},[]),K=e.useCallback(i=>{m.current.onExcelImport&&m.current.onExcelImport.call(void 0,i)},[]),T=e.useCallback(i=>{m.current.onExcelExport&&m.current.onExcelExport.call(void 0,i)},[]),j=e.useRef(null);e.useImperativeHandle(j,()=>({element:y.current,get instance(){return h.current},props:t,get view(){return h.current.view},get workbook(){return h.current.workbook},executeCommand(i){var b;(b=h.current)==null||b.executeCommand(i)},fromJSON(i){var b;return(b=h.current)==null?void 0:b.fromJSON(i)},toJSON(){return h.current.toJSON()},saveJSON(){return h.current.saveJSON()},fromFile(i){return h.current.fromFile(i)},saveAsExcel(i){var b;(b=h.current)==null||b.saveAsExcel({...h.current.options.excel,saveAs:Te.saveAs,Workbook:Fe.Workbook,...i})},activeSheet(i){var b;return(b=h.current)==null?void 0:b.activeSheet(i)},sheets(){return h.current.sheets()},refresh(){var i;return(i=h.current)==null?void 0:i.refresh()}}),[t]),e.useImperativeHandle(n,()=>j.current);const Wt=e.useCallback(()=>h.current&&h.current.view.nameEditor,[]),ke=e.useCallback(i=>{const b={};Ae.forEach(w=>{typeof i.range[w]=="function"?b[w]=i.range[w]():w==="gridLines"&&(b[w]=i.range.sheet().showGridLines())}),b.selectedHeaders=i.range.sheet().selectedHeaders(),(Ae.some(w=>b[w]!==z.current[w])||b.selectedHeaders.allCols!==z.current.selectedHeaders.allCols||b.selectedHeaders.allRows!==z.current.selectedHeaders.allRows)&&N(b)},[]),_t=e.useCallback(i=>{const b=i.name,w=c[b];u({title:i.title==="Error"?S.toLanguageString(c.error,E[c.error]||i.title):i.title,message:w?S.toLanguageString(w,E[w]||i.text):i.text,close:i.close})},[]),xe=e.useCallback(()=>{u(null),r==null||r.close()},[r]),W=A.useInternationalization(),Se=A.useLocalization();e.useEffect(()=>{var _;const i={...t.defaultProps,sheets:structuredClone((_=t.defaultProps)==null?void 0:_.sheets),messages:{workbook:{defaultSheetName:Se.toLanguageString(c.defaultSheetName,E[c.defaultSheetName])}},intl:{localeInfo:()=>W.localeInfo(),localeCurrency:()=>W.localeCurrency(),parseDate:(O,M)=>W.parseDate(O,M),toString:(O,M)=>W.toString(O,M),format:(O,...M)=>W.format(O,...M)},formulaBarInputRef:D,formulaCellInputRef:k,nameBoxRef:f},b=new R.SpreadsheetWidget(y.current,i);h.current=b,b.bind("select",P),b.bind("change",x),b.bind("changeFormat",L),b.bind("excelImport",K),b.bind("excelExport",T),b.view.bind("update",ke),b.view.bind("message",_t);const w=b.activeSheet();return w&&ke({range:w.range(w.activeCell())}),v(!0),()=>{b.destroy()}},[]);const Ie=e.useCallback((i,b)=>{const w=e.createElement(i,{spreadsheetRef:h,value:De[i.displayName]?De[i.displayName](g):void 0,key:b});return w.type===I.ToolbarSeparator?e.createElement(i,{key:b}):w},[g]);let Ee=null;return o.length&&(Ee=e.createElement(we.TabStrip,{selected:d,animation:!1,className:"k-floatwrap k-spreadsheet-tabstrip",style:{minHeight:"auto"},onSelect:i=>s(i.selected)},o.map(i=>{const b=i.textKey?Se.toLanguageString(i.textKey,E[i.textKey]):i.text;return e.createElement(we.TabStripTab,{key:i.textKey||i.text,title:b},e.createElement(I.Toolbar,{buttons:En,className:"k-spreadsheet-toolbar"},i.tools.map((w,_)=>Array.isArray(w)?e.createElement(I.ButtonGroup,{key:_},w.map((O,M)=>Ie(O,M))):Ie(w,_))))}))),e.createElement("div",{ref:y,style:t.style,className:F.classNames("k-widget k-spreadsheet",t.className),role:"application"},Ee,e.createElement("div",{className:"k-spreadsheet-action-bar"},e.createElement(Y,{ref:f,nameEditor:Wt}),e.createElement("div",{className:"k-spreadsheet-formula-bar"},e.createElement(F.IconWrap,{name:"formula-fx",icon:p.formulaFxIcon}),e.createElement(V,{ref:D}))),e.createElement("div",{className:"k-spreadsheet-view"},e.createElement("div",{className:"k-spreadsheet-fixed-container"}),e.createElement("div",{className:"k-spreadsheet-scroller"},e.createElement("div",{className:"k-spreadsheet-view-size"})),e.createElement("div",{tabIndex:0,className:"k-spreadsheet-clipboard",contentEditable:"true"}),e.createElement(V,{ref:k,className:"k-spreadsheet-cell-editor"})),e.createElement(tn,{spreadsheetRef:h}),r&&e.createElement(Re.Dialog,{title:r.title,onClose:xe},e.createElement("div",null,r.message),e.createElement(Re.DialogActionsBar,{layout:"start"},e.createElement(I.Button,{themeColor:"primary",onClick:xe,autoFocus:!0},S.toLanguageString(c.ok,E[c.ok])))),a&&e.createElement(F.WatermarkOverlay,null))});ve.displayName="KendoReactSpreadsheet";ve.propTypes={className:B.string,defaultProps:B.any,toolbar:B.oneOfType([B.bool,B.arrayOf(B.any)]),style:B.object,onSelect:B.func,onChange:B.func,onChangeFormat:B.func,onExcelImport:B.func,onExcelExport:B.func};const wn=t=>{const{spreadsheetRef:n}=t,a=e.useCallback(()=>{n.current&&n.current.executeCommand({command:"PropertyCleanCommand"})},[]);return e.createElement(I.Button,{type:"button",icon:"clean-css",svgIcon:p.clearCssIcon,fillMode:"flat",onClick:a,title:A.useLocalization().toLanguageString(c.cleanFormatting,E[c.cleanFormatting])})};Object.defineProperty(exports,"CalcError",{enumerable:!0,get:()=>R.CalcError});Object.defineProperty(exports,"CellRef",{enumerable:!0,get:()=>R.CellRef});Object.defineProperty(exports,"Context",{enumerable:!0,get:()=>R.Context});Object.defineProperty(exports,"Matrix",{enumerable:!0,get:()=>R.Matrix});Object.defineProperty(exports,"NULLREF",{enumerable:!0,get:()=>R.NULLREF});Object.defineProperty(exports,"NameRef",{enumerable:!0,get:()=>R.NameRef});Object.defineProperty(exports,"Range",{enumerable:!0,get:()=>R.Range});Object.defineProperty(exports,"RangeRef",{enumerable:!0,get:()=>R.RangeRef});Object.defineProperty(exports,"Ref",{enumerable:!0,get:()=>R.Ref});Object.defineProperty(exports,"Sheet",{enumerable:!0,get:()=>R.Sheet});Object.defineProperty(exports,"SpreadsheetWidget",{enumerable:!0,get:()=>R.SpreadsheetWidget});Object.defineProperty(exports,"UnionRef",{enumerable:!0,get:()=>R.UnionRef});Object.defineProperty(exports,"View",{enumerable:!0,get:()=>R.View});Object.defineProperty(exports,"Workbook",{enumerable:!0,get:()=>R.Workbook});Object.defineProperty(exports,"dateToSerial",{enumerable:!0,get:()=>R.dateToSerial});Object.defineProperty(exports,"defineAlias",{enumerable:!0,get:()=>R.defineAlias});Object.defineProperty(exports,"defineFunction",{enumerable:!0,get:()=>R.defineFunction});Object.defineProperty(exports,"packDate",{enumerable:!0,get:()=>R.packDate});Object.defineProperty(exports,"packTime",{enumerable:!0,get:()=>R.packTime});Object.defineProperty(exports,"serialToDate",{enumerable:!0,get:()=>R.serialToDate});Object.defineProperty(exports,"unpackDate",{enumerable:!0,get:()=>R.unpackDate});Object.defineProperty(exports,"unpackTime",{enumerable:!0,get:()=>R.unpackTime});exports.AddColumnLeft=me;exports.AddColumnRight=pe;exports.AddRowAbove=ge;exports.AddRowBelow=fe;exports.AlignHorizontally=jt;exports.AlignVertically=Ht;exports.Alignment=Ot;exports.BackgroundColor=ce;exports.Bold=ne;exports.CleanFormatting=wn;exports.DecreaseFontSize=Bt;exports.DeleteColumn=be;exports.DeleteRow=he;exports.ExcelExport=Q;exports.FontFamily=le;exports.FontSize=re;exports.Format=de;exports.GridLines=ue;exports.IncreaseFontSize=Kt;exports.Italic=oe;exports.Open=ee;exports.Redo=Ce;exports.Spreadsheet=ve;exports.TextColor=se;exports.TextWrap=ie;exports.Underline=ae;exports.Undo=ye;exports.defaultTabs=G;