@progress/kendo-react-spreadsheet 7.0.2-develop.1 → 7.0.2-develop.3

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(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"})});
5
+ (function(l,V){typeof exports=="object"&&typeof module<"u"?V(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"],V):(l=typeof globalThis<"u"?globalThis:l||self,V(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,V,O,N,we,ke,Vt,K,f,$,L,_t,S,Ne,Ie,qt,Jt){"use strict";"use client";function $t(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=$t(V),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(Vt.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 Se="spreadsheet.bold",Ae="spreadsheet.italic",De="spreadsheet.underline",Le="spreadsheet.openFile",Re="spreadsheet.textColor",Te="spreadsheet.background",Fe="spreadsheet.addRowAbove",Ke="spreadsheet.addRowBelow",ze="spreadsheet.addColumnLeft",Oe="spreadsheet.addColumnRight",Pe="spreadsheet.deleteRow",Me="spreadsheet.deleteColumn",Be="spreadsheet.undo",je="spreadsheet.redo",He="spreadsheet.fontSize",Ue="spreadsheet.fontSizeIncrease",We="spreadsheet.fontSizeDecrease",Ve="spreadsheet.fontName",_e="spreadsheet.cleanFormatting",qe="spreadsheet.format",Je="spreadsheet.alignHorizontally",$e="spreadsheet.alignVertically",Ge="spreadsheet.align",Xe="spreadsheet.alignLeft",Ze="spreadsheet.alignRight",Ye="spreadsheet.alignCenter",Qe="spreadsheet.center",et="spreadsheet.alignJustify",tt="spreadsheet.justify",nt="spreadsheet.alignTop",at="spreadsheet.alignMiddle",ot="spreadsheet.alignBottom",lt="spreadsheet.increaseDecimal",rt="spreadsheet.decreaseDecimal",st="spreadsheet.textWrap",ct="spreadsheet.gridLines",it="spreadsheet.exportToExcel",ut="spreadsheet.nameBox",dt="spreadsheet.defaultSheetName",mt="spreadsheet.home",pt="spreadsheet.file",ft="spreadsheet.insert",gt="spreadsheet.formatTab",bt="spreadsheet.addNewSheet",ht="spreadsheet.error",yt="spreadsheet.ok",Ct="spreadsheet.modifyMerged",vt="spreadsheet.cannotModifyDisabled",Et="spreadsheet.openUnsupported",xt="spreadsheet.duplicateSheetName",I={[Se]:"Bold",[Ae]:"Italic",[De]:"Underline",[Be]:"Undo",[je]:"Redo",[He]:"Font size",[Ue]:"Increase Font size",[We]:"Decrease Font size",[Ve]:"Font",[_e]:"Clean formatting",[qe]:"Custom format...",[Je]:"Align horizontally",[$e]:"Align vertically",[Ge]:"Align",[Xe]:"Align left",[Ze]:"Align right",[Ye]:"Align center",[et]:"Align justify",[Qe]:"Center",[tt]:"Justify",[nt]:"Align top",[at]:"Align middle",[ot]:"Align bottom",[lt]:"Increase decimal",[rt]:"Decrease decimal",[Re]:"Text Color",[Te]:"Background color",[Fe]:"Add row above",[Ke]:"Add row below",[ze]:"Add column left",[Oe]:"Add column right",[Pe]:"Delete row",[Me]:"Delete column",[Le]:"Open...",[it]:"Export to Excel",[st]:"Text Wrap",[ct]:"Toggle gridlines",[ut]:"Name Box",[dt]:"Sheet",[mt]:"Home",[pt]:"File",[ft]:"Insert",[bt]:"Add new sheet",[gt]:"Format",[Ct]:"Cannot change part of a merged cell.",[vt]:"Cannot modify disabled cells.",[Et]:"Unsupported format. Please select an .xlsx file.",[xt]:"There is an existing sheet with this name. Please enter another name.",[ht]:"Error",[yt]:"OK"},c={bold:Se,italic:Ae,underline:De,undo:Be,redo:je,fontSize:He,fontSizeIncrease:Ue,fontSizeDecrease:We,fontName:Ve,cleanFormatting:_e,format:qe,alignHorizontally:Je,alignVertically:$e,align:Ge,alignLeft:Xe,alignRight:Ze,alignCenter:Ye,center:Qe,alignJustify:et,justify:tt,alignTop:nt,alignMiddle:at,alignBottom:ot,increaseDecimal:lt,decreaseDecimal:rt,textColor:Re,background:Te,addRowAbove:Fe,addRowBelow:Ke,addColumnLeft:ze,addColumnRight:Oe,deleteRow:Pe,deleteColumn:Me,open:Le,exportToExcel:it,textWrap:st,gridLines:ct,nameBox:ut,defaultSheetName:dt,file:pt,home:mt,insert:ft,addNewSheet:bt,error:ht,ok:yt,modifyMerged:Ct,cannotModifyDisabled:vt,openUnsupported:Et,duplicateSheetName:xt,formatTab:gt},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 P=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,P)},[]),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 P=p.value.name;P!==i&&(k.trigger("select",{name:P}),v(P))}},[i]),D=e.useCallback(p=>{const k=t.nameEditor();if(k)if(p.key==="Enter"){const P=p.target.value;k.trigger("enter",{value:P}),v(P)}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 Gt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},wt=e.createContext(Gt),Xt=t=>{const n=t.dataItem,{onSelect:o,onDelete:r,onEnterEdit:a,onExitEdit:s,onCancelEdit:d,onEdit:m}=e.useContext(wt),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}))))},kt=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)});kt.displayName="TabsList";const Zt=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]),P=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(wt.Provider,{value:{onSelect:b,onDelete:D,onEnterEdit:z,onCancelEdit:p,onExitEdit:k,onEdit:P}},e.createElement(_t.Sortable,{idField:"id",data:n,itemUI:Xt,itemsWrapUI:kt,onDragOver:R,onNavigate:x,onDragStart:g,onDragEnd:y}))))},Yt=(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})),Qt=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(Yt(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(Zt,{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(qt.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:r,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};Y.displayName="Open";const en=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],tn="Arial",nn=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],an=12,on=[{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])})},Nt=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(Jt.ColorPicker,{onChange:i,onActiveColorClick:i,fillMode:"flat",...s,title:L.useLocalization().toLanguageString(a,I[a]),value:m})},It=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})},ln={property:"bold",icon:"bold",svgIcon:f.boldIcon,titleKey:c.bold},ee=Q(ln);ee.displayName="Bold";const rn={property:"italic",icon:"italic",svgIcon:f.italicIcon,titleKey:c.italic},te=Q(rn);te.displayName="Italic";const sn={property:"underline",icon:"underline",svgIcon:f.underlineIcon,titleKey:c.underline},ne=Q(sn);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:en,defaultValue:tn,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:nn,defaultValue:an,allowCustom:!0,fillMode:"flat",title:L.useLocalization().toLanguageString(c.fontSize,I[c.fontSize]),tabIndex:-1,clearButton:!1})};se.displayName="FontSize";const St=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},At=St({property:"fontSize",icon:"font-grow",svgIcon:f.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Dt=St({property:"fontSize",icon:"font-shrink",svgIcon:f.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),ce=Nt({icon:"foreground-color",svgIcon:f.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});ce.displayName="TextColor";const ie=Nt({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}],cn=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],un=H.filter(t=>t.commandName==="verticalAlign"),Lt=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})})};Lt.displayName="Alignment";const dn={items:cn,icon:{icon:"align-left",svgIcon:f.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},mn={items:un,icon:{icon:"align-bottom",svgIcon:f.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Rt=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},Tt=Rt(dn),Ft=Rt(mn),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:on,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)})},pn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:f.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},fn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:f.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},gn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:f.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},bn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:f.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},hn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:f.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},yn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:f.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},pe=U(pn),fe=U(fn),ge=U(gn),be=U(bn),he=U(hn),ye=U(yn);pe.displayName="AddColumnLeft",fe.displayName="AddColumnRight",ge.displayName="AddRowBelow",be.displayName="AddRowAbove",he.displayName="DeleteColumn",ye.displayName="DeleteRow";const Cn={action:"undo",icon:"reset",svgIcon:f.arrowRotateCcwIcon,titleKey:c.undo},Ce=It(Cn);Ce.displayName="Undo";const vn={action:"redo",icon:"reload",svgIcon:f.arrowRotateCwIcon,titleKey:c.redo},ve=It(vn);ve.displayName="Redo";const Kt=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])})},En=Kt({icon:f.decimalIncreaseIcon.name,svgIcon:f.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),xn=Kt({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,At,Dt,N.ToolbarSeparator,[ee,te,ne],ce,N.ToolbarSeparator,ie,N.ToolbarSeparator,Tt,Ft,ue,N.ToolbarSeparator,de]},{textKey:c.insert,tools:[[pe,fe,ge,be],N.ToolbarSeparator,[he,ye]]},{textKey:c.formatTab,tools:[me,[xn,En]]}],zt={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"],Pt={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},Mt=":not(.k-dropdownlist button):not(.k-combobox button):not(.k-upload-button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",wn=["button"+Mt,".k-button-group > button"+Mt,".k-dropdownlist",".k-combobox",".k-colorpicker"],xe=e.forwardRef((t,n)=>{K.validatePackage(zt);const o=K.shouldShowValidationUI(zt),{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(),P=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 Nn=e.useCallback(()=>y.current&&y.current.view.nameEditor,[]),Bt=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)},[]),In=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})},[]),jt=e.useCallback(()=>{d(null),s==null||s.close()},[s]),_=L.useInternationalization(),Ht=L.useLocalization();e.useEffect(()=>{var q;const u={...t.defaultProps,sheets:structuredClone((q=t.defaultProps)==null?void 0:q.sheets),messages:{workbook:{defaultSheetName:Ht.toLanguageString(c.defaultSheetName,I[c.defaultSheetName])}},intl:{localeInfo:()=>_.localeInfo(),localeCurrency:()=>_.localeCurrency(),parseDate:(B,j)=>_.parseDate(B,j),toString:(B,j)=>_.toString(B,j),format:(B,...j)=>_.format(B,...j)},formulaBarInputRef:R,formulaCellInputRef:x,nameBoxRef:g},h=new S.SpreadsheetWidget(C.current,u);y.current=h,h.bind("select",P),h.bind("change",w),h.bind("changeFormat",T),h.bind("excelImport",M),h.bind("excelExport",F),h.view.bind("update",Bt),h.view.bind("message",In);const A=h.activeSheet();return A&&Bt({range:A.range(A.activeCell())}),E(!0),()=>{h.destroy()}},[]);const Ut=e.useCallback((u,h)=>{const A=e.createElement(u,{spreadsheetRef:y,value:Pt[u.displayName]?Pt[u.displayName](b):void 0,key:h});return A.type===N.ToolbarSeparator?e.createElement(u,{key:h}):A},[b]);let Wt=null;return a.length&&(Wt=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?Ht.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:wn,className:"k-spreadsheet-toolbar"},u.tools.map((A,q)=>Array.isArray(A)?e.createElement(N.ButtonGroup,{key:q},A.map((B,j)=>Ut(B,j))):Ut(A,q))))}))),e.createElement("div",{ref:C,style:t.style,className:K.classNames("k-widget k-spreadsheet",t.className),role:"application"},Wt,e.createElement("div",{className:"k-spreadsheet-action-bar"},e.createElement(X,{ref:g,nameEditor:Nn}),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(Qt,{spreadsheetRef:y}),s&&e.createElement(ke.Dialog,{title:s.title,onClose:jt},e.createElement("div",null,s.message),e.createElement(ke.DialogActionsBar,{layout:"start"},e.createElement(N.Button,{themeColor:"primary",onClick:jt,autoFocus:!0},k.toLanguageString(c.ok,I[c.ok])))),o&&e.createElement(K.WatermarkOverlay,null))});xe.displayName="KendoReactSpreadsheet",xe.propTypes={className:O.string,defaultProps:O.any,toolbar:O.oneOfType([O.bool,O.arrayOf(O.any)]),style:O.object,onSelect:O.func,onChange:O.func,onChangeFormat:O.func,onExcelImport:O.func,onExcelExport:O.func};const kn=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=Tt,l.AlignVertically=Ft,l.Alignment=Lt,l.BackgroundColor=ie,l.Bold=ee,l.CleanFormatting=kn,l.DecreaseFontSize=Dt,l.DeleteColumn=he,l.DeleteRow=ye,l.ExcelExport=Z,l.FontFamily=ae,l.FontSize=se,l.Format=me,l.GridLines=de,l.IncreaseFontSize=At,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.d.mts ADDED
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export * from './index';
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 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;
5
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Vt=require("react"),B=require("prop-types"),I=require("@progress/kendo-react-buttons"),we=require("@progress/kendo-react-layout"),Re=require("@progress/kendo-react-dialogs"),_t=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"),qt=require("@progress/kendo-react-sortable"),R=require("@progress/kendo-spreadsheet-common"),Te=require("@progress/kendo-file-saver"),Fe=require("@progress/kendo-ooxml"),Jt=require("@progress/kendo-react-upload"),$t=require("@progress/kendo-react-inputs");function Gt(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=Gt(Vt),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 _=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(_t.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})))});_.displayName="FormulaInput";_.propTypes={};const ze="spreadsheet.bold",Ke="spreadsheet.italic",Pe="spreadsheet.underline",Be="spreadsheet.openFile",Oe="spreadsheet.textColor",Me="spreadsheet.background",je="spreadsheet.addRowAbove",He="spreadsheet.addRowBelow",Ue="spreadsheet.addColumnLeft",We="spreadsheet.addColumnRight",Ve="spreadsheet.deleteRow",_e="spreadsheet.deleteColumn",qe="spreadsheet.undo",Je="spreadsheet.redo",$e="spreadsheet.fontSize",Ge="spreadsheet.fontSizeIncrease",Xe="spreadsheet.fontSizeDecrease",Ze="spreadsheet.fontName",Ye="spreadsheet.cleanFormatting",Qe="spreadsheet.format",et="spreadsheet.alignHorizontally",tt="spreadsheet.alignVertically",nt="spreadsheet.align",ot="spreadsheet.alignLeft",at="spreadsheet.alignRight",lt="spreadsheet.alignCenter",rt="spreadsheet.center",st="spreadsheet.alignJustify",ct="spreadsheet.justify",it="spreadsheet.alignTop",ut="spreadsheet.alignMiddle",dt="spreadsheet.alignBottom",mt="spreadsheet.increaseDecimal",pt="spreadsheet.decreaseDecimal",ft="spreadsheet.textWrap",gt="spreadsheet.gridLines",bt="spreadsheet.exportToExcel",ht="spreadsheet.nameBox",yt="spreadsheet.defaultSheetName",Ct="spreadsheet.home",vt="spreadsheet.file",kt="spreadsheet.insert",xt="spreadsheet.formatTab",St="spreadsheet.addNewSheet",It="spreadsheet.error",Et="spreadsheet.ok",wt="spreadsheet.modifyMerged",Rt="spreadsheet.cannotModifyDisabled",Nt="spreadsheet.openUnsupported",At="spreadsheet.duplicateSheetName",E={[ze]:"Bold",[Ke]:"Italic",[Pe]:"Underline",[qe]:"Undo",[Je]:"Redo",[$e]:"Font size",[Ge]:"Increase Font size",[Xe]:"Decrease Font size",[Ze]:"Font",[Ye]:"Clean formatting",[Qe]:"Custom format...",[et]:"Align horizontally",[tt]:"Align vertically",[nt]:"Align",[ot]:"Align left",[at]:"Align right",[lt]:"Align center",[st]:"Align justify",[rt]:"Center",[ct]:"Justify",[it]:"Align top",[ut]:"Align middle",[dt]:"Align bottom",[mt]:"Increase decimal",[pt]:"Decrease decimal",[Oe]:"Text Color",[Me]:"Background color",[je]:"Add row above",[He]:"Add row below",[Ue]:"Add column left",[We]:"Add column right",[Ve]:"Delete row",[_e]:"Delete column",[Be]:"Open...",[bt]:"Export to Excel",[ft]:"Text Wrap",[gt]:"Toggle gridlines",[ht]:"Name Box",[yt]:"Sheet",[Ct]:"Home",[vt]:"File",[kt]:"Insert",[St]:"Add new sheet",[xt]:"Format",[wt]:"Cannot change part of a merged cell.",[Rt]:"Cannot modify disabled cells.",[Nt]:"Unsupported format. Please select an .xlsx file.",[At]:"There is an existing sheet with this name. Please enter another name.",[It]:"Error",[Et]:"OK"},c={bold:ze,italic:Ke,underline:Pe,undo:qe,redo:Je,fontSize:$e,fontSizeIncrease:Ge,fontSizeDecrease:Xe,fontName:Ze,cleanFormatting:Ye,format:Qe,alignHorizontally:et,alignVertically:tt,align:nt,alignLeft:ot,alignRight:at,alignCenter:lt,center:rt,alignJustify:st,justify:ct,alignTop:it,alignMiddle:ut,alignBottom:dt,increaseDecimal:mt,decreaseDecimal:pt,textColor:Oe,background:Me,addRowAbove:je,addRowBelow:He,addColumnLeft:Ue,addColumnRight:We,deleteRow:Ve,deleteColumn:_e,open:Be,exportToExcel:bt,textWrap:ft,gridLines:gt,nameBox:ht,defaultSheetName:yt,file:vt,home:Ct,insert:kt,addNewSheet:St,error:It,ok:Et,modifyMerged:wt,cannotModifyDisabled:Rt,openUnsupported:Nt,duplicateSheetName:At,formatTab:xt},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 K=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,K)},[]),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 K=m.value.name;K!==s&&(S.trigger("select",{name:K}),C(K))}},[s]),N=e.useCallback(m=>{const S=t.nameEditor();if(S)if(m.key==="Enter"){const K=m.target.value;S.trigger("enter",{value:K}),C(K)}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 Xt={onSelect:()=>{},onDelete:()=>{},onEnterEdit:()=>{},onCancelEdit:()=>{},onExitEdit:()=>{},onEdit:()=>{}},Dt=e.createContext(Xt),Zt=t=>{const n=t.dataItem,{onSelect:a,onDelete:l,onEnterEdit:o,onExitEdit:r,onCancelEdit:u,onEdit:d}=e.useContext(Dt),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}))))},Lt=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)});Lt.displayName="TabsList";const Yt=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,P,T)=>({...L,first:P===0,last:P===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 P=n.map(T=>({...T,active:T.id===x.id,inEdit:T.id===x.id}));a(P),s({...x})},[n]),m=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const P=n.map(T=>({...T,inEdit:!1,text:T.inEdit&&d?d.text:T.text}));a(P),s(null)},[n,d]),S=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const P=n.map(j=>({...j,inEdit:!1})),T=n.findIndex(j=>j.id===x.id);a(P),s(null),r.call(void 0,x,T)},[n,r]),K=e.useCallback((x,L)=>{L.stopPropagation(),L.preventDefault();const P=n.map(T=>({...T,text:x.id===T.id?x.text:T.text}));a(P)},[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(Dt.Provider,{value:{onSelect:g,onDelete:N,onEnterEdit:z,onCancelEdit:m,onExitEdit:S,onEdit:K}},e.createElement(qt.Sortable,{idField:"id",data:n,itemUI:Zt,itemsWrapUI:Lt,onDragOver:D,onNavigate:k,onDragStart:f,onDragEnd:h}))))},Qt=(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})),en=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(Qt(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(Yt,{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(Jt.Upload,{restrictions:{allowedExtensions:[".xlsx"]},onAdd:l,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".xlsx,.XLSX",withCredentials:!1})))};ee.displayName="Open";const tn=["Arial","Courier New","Georgia","Times New Roman","Trebuchet MS","Verdana"],nn="Arial",on=[8,9,10,11,12,13,14,16,18,20,22,24,26,28,36,48,72],an=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"}],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])})},Tt=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($t.ColorPicker,{onChange:s,onActiveColorClick:s,fillMode:"flat",...r,title:A.useLocalization().toLanguageString(o,E[o]),value:d})},Ft=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})},rn={property:"bold",icon:"bold",svgIcon:p.boldIcon,titleKey:c.bold},ne=te(rn);ne.displayName="Bold";const sn={property:"italic",icon:"italic",svgIcon:p.italicIcon,titleKey:c.italic},oe=te(sn);oe.displayName="Italic";const cn={property:"underline",icon:"underline",svgIcon:p.underlineIcon,titleKey:c.underline},ae=te(cn);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:tn,defaultValue:nn,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:on,defaultValue:an,allowCustom:!0,fillMode:"flat",title:A.useLocalization().toLanguageString(c.fontSize,E[c.fontSize]),tabIndex:-1,clearButton:!1})};re.displayName="FontSize";const zt=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=zt({property:"fontSize",icon:"font-grow",svgIcon:p.fontGrowIcon,titleKey:c.fontSizeIncrease,displayName:"IncreaseFontSize",step:1}),Pt=zt({property:"fontSize",icon:"font-shrink",svgIcon:p.fontShrinkIcon,titleKey:c.fontSizeDecrease,displayName:"DecreaseFontSize",step:-1}),se=Tt({icon:"foreground-color",svgIcon:p.foregroundColorIcon,view:"palette",property:"color",titleKey:c.textColor,ariaLabel:"Text Color"});se.displayName="TextColor";const ce=Tt({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}],un=[H[0],{...H[1],textKey:c.center},H[2],{...H[3],textKey:c.justify}],dn=H.filter(t=>t.commandName==="verticalAlign"),Bt=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})})};Bt.displayName="Alignment";const mn={items:un,icon:{icon:"align-left",svgIcon:p.alignLeftIcon},displayName:"AlignHorizontally",titleKey:c.alignHorizontally},pn={items:dn,icon:{icon:"align-bottom",svgIcon:p.alignBottomIcon},displayName:"AlignVertically",titleKey:c.alignVertically},Ot=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},Mt=Ot(mn),jt=Ot(pn),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:ln,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)})},fn={command:"AddColumnCommand",value:"left",icon:"table-column-insert-left",svgIcon:p.tableColumnInsertLeftIcon,titleKey:c.addColumnLeft,disabled:t=>t.allCols,displayName:"AddColumnLeft"},gn={command:"AddColumnCommand",value:"right",icon:"table-column-insert-right",svgIcon:p.tableColumnInsertRightIcon,titleKey:c.addColumnRight,disabled:t=>t.allCols,displayName:"AddColumnRight"},bn={command:"AddRowCommand",value:"below",icon:"table-row-insert-below",svgIcon:p.tableRowInsertBelowIcon,titleKey:c.addRowBelow,disabled:t=>t.allRows,displayName:"AddRowBelow"},hn={command:"AddRowCommand",value:"above",icon:"table-row-insert-above",svgIcon:p.tableRowInsertAboveIcon,titleKey:c.addRowAbove,disabled:t=>t.allRows,displayName:"AddRowAbove"},yn={command:"DeleteColumnCommand",icon:"table-column-delete",svgIcon:p.tableColumnDeleteIcon,titleKey:c.deleteColumn,disabled:t=>t.allCols,displayName:"DeleteColumn"},Cn={command:"DeleteRowCommand",icon:"table-row-delete",svgIcon:p.tableRowDeleteIcon,titleKey:c.deleteRow,disabled:t=>t.allRows,displayName:"DeleteRow"},me=U(fn),pe=U(gn),fe=U(bn),ge=U(hn),be=U(yn),he=U(Cn);me.displayName="AddColumnLeft";pe.displayName="AddColumnRight";fe.displayName="AddRowBelow";ge.displayName="AddRowAbove";be.displayName="DeleteColumn";he.displayName="DeleteRow";const vn={action:"undo",icon:"reset",svgIcon:p.arrowRotateCcwIcon,titleKey:c.undo},ye=Ft(vn);ye.displayName="Undo";const kn={action:"redo",icon:"reload",svgIcon:p.arrowRotateCwIcon,titleKey:c.redo},Ce=Ft(kn);Ce.displayName="Redo";const Ht=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])})},xn=Ht({icon:p.decimalIncreaseIcon.name,svgIcon:p.decimalIncreaseIcon,value:1,titleKey:c.increaseDecimal}),Sn=Ht({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,Pt,I.ToolbarSeparator,[ne,oe,ae],se,I.ToolbarSeparator,ce,I.ToolbarSeparator,Mt,jt,ie,I.ToolbarSeparator,ue]},{textKey:c.insert,tools:[[me,pe,fe,ge],I.ToolbarSeparator,[be,he]]},{textKey:c.formatTab,tools:[de,[Sn,xn]]}],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)",In=["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(),K=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)},[]),P=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 Ut=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)},[]),Wt=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 V;const i={...t.defaultProps,sheets:structuredClone((V=t.defaultProps)==null?void 0:V.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",K),b.bind("change",x),b.bind("changeFormat",L),b.bind("excelImport",P),b.bind("excelExport",T),b.view.bind("update",ke),b.view.bind("message",Wt);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:In,className:"k-spreadsheet-toolbar"},i.tools.map((w,V)=>Array.isArray(w)?e.createElement(I.ButtonGroup,{key:V},w.map((O,M)=>Ie(O,M))):Ie(w,V))))}))),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:Ut}),e.createElement("div",{className:"k-spreadsheet-formula-bar"},e.createElement(F.IconWrap,{name:"formula-fx",icon:p.formulaFxIcon}),e.createElement(_,{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(_,{ref:k,className:"k-spreadsheet-cell-editor"})),e.createElement(en,{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 En=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=Mt;exports.AlignVertically=jt;exports.Alignment=Bt;exports.BackgroundColor=ce;exports.Bold=ne;exports.CleanFormatting=En;exports.DecreaseFontSize=Pt;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;
package/index.mjs CHANGED
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use client";
6
6
  import * as e from "react";
7
- import * as F from "prop-types";
7
+ import F from "prop-types";
8
8
  import { Button as K, DropDownButton as q, ToolbarSeparator as B, Toolbar as Jt, ButtonGroup as $t } from "@progress/kendo-react-buttons";
9
9
  import { TabStrip as jt, TabStripTab as Gt } from "@progress/kendo-react-layout";
10
10
  import { Dialog as qt, DialogActionsBar as Xt } from "@progress/kendo-react-dialogs";
@@ -15,7 +15,7 @@ import { ComboBox as he, DropDownList as Dn } from "@progress/kendo-react-dropdo
15
15
  import { useLocalization as R, useInternationalization as Tn } from "@progress/kendo-react-intl";
16
16
  import { Sortable as Ln } from "@progress/kendo-react-sortable";
17
17
  import { SpreadsheetWidget as Fn } from "@progress/kendo-spreadsheet-common";
18
- import { CalcError as Fo, CellRef as Ko, Context as Mo, Matrix as zo, NULLREF as Bo, NameRef as Po, Range as Ho, RangeRef as Oo, Ref as Uo, Sheet as Vo, SpreadsheetWidget as Wo, UnionRef as _o, View as Jo, Workbook as $o, dateToSerial as jo, defineAlias as Go, defineFunction as qo, packDate as Xo, packTime as Zo, serialToDate as Yo, unpackDate as Qo, unpackTime as ea } from "@progress/kendo-spreadsheet-common";
18
+ import { CalcError as Ko, CellRef as Mo, Context as zo, Matrix as Bo, NULLREF as Po, NameRef as Ho, Range as Oo, RangeRef as Uo, Ref as Vo, Sheet as Wo, SpreadsheetWidget as _o, UnionRef as Jo, View as $o, Workbook as jo, dateToSerial as Go, defineAlias as qo, defineFunction as Xo, packDate as Zo, packTime as Yo, serialToDate as Qo, unpackDate as ea, unpackTime as ta } from "@progress/kendo-spreadsheet-common";
19
19
  import { saveAs as Ce } from "@progress/kendo-file-saver";
20
20
  import { Workbook as ve } from "@progress/kendo-ooxml";
21
21
  import { Upload as Kn } from "@progress/kendo-react-upload";
@@ -1086,7 +1086,7 @@ const Ut = (t) => (a) => {
1086
1086
  name: "@progress/kendo-react-spreadsheet",
1087
1087
  productName: "KendoReact",
1088
1088
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
1089
- publishDate: 1702480437,
1089
+ publishDate: 1702641154,
1090
1090
  version: "",
1091
1091
  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"
1092
1092
  }, ie = ["bold", "italic", "underline", "fontFamily", "fontSize", "color", "background", "textAlign", "verticalAlign", "wrap", "gridLines"], de = {
@@ -1288,7 +1288,7 @@ Vt.propTypes = {
1288
1288
  onExcelImport: F.func,
1289
1289
  onExcelExport: F.func
1290
1290
  };
1291
- const Do = (t) => {
1291
+ const To = (t) => {
1292
1292
  const { spreadsheetRef: n } = t, a = e.useCallback(() => {
1293
1293
  n.current && n.current.executeCommand({ command: "PropertyCleanCommand" });
1294
1294
  }, []);
@@ -1314,10 +1314,10 @@ export {
1314
1314
  Qn as Alignment,
1315
1315
  Rt as BackgroundColor,
1316
1316
  kt as Bold,
1317
- Fo as CalcError,
1318
- Ko as CellRef,
1319
- Do as CleanFormatting,
1320
- Mo as Context,
1317
+ Ko as CalcError,
1318
+ Mo as CellRef,
1319
+ To as CleanFormatting,
1320
+ zo as Context,
1321
1321
  Xn as DecreaseFontSize,
1322
1322
  Bt as DeleteColumn,
1323
1323
  Pt as DeleteRow,
@@ -1328,31 +1328,31 @@ export {
1328
1328
  Tt as GridLines,
1329
1329
  qn as IncreaseFontSize,
1330
1330
  xt as Italic,
1331
- zo as Matrix,
1332
- Bo as NULLREF,
1333
- Po as NameRef,
1331
+ Bo as Matrix,
1332
+ Po as NULLREF,
1333
+ Ho as NameRef,
1334
1334
  vt as Open,
1335
- Ho as Range,
1336
- Oo as RangeRef,
1335
+ Oo as Range,
1336
+ Uo as RangeRef,
1337
1337
  Ot as Redo,
1338
- Uo as Ref,
1339
- Vo as Sheet,
1338
+ Vo as Ref,
1339
+ Wo as Sheet,
1340
1340
  Vt as Spreadsheet,
1341
- Wo as SpreadsheetWidget,
1341
+ _o as SpreadsheetWidget,
1342
1342
  Nt as TextColor,
1343
1343
  Dt as TextWrap,
1344
1344
  Et as Underline,
1345
1345
  Ht as Undo,
1346
- _o as UnionRef,
1347
- Jo as View,
1348
- $o as Workbook,
1349
- jo as dateToSerial,
1346
+ Jo as UnionRef,
1347
+ $o as View,
1348
+ jo as Workbook,
1349
+ Go as dateToSerial,
1350
1350
  re as defaultTabs,
1351
- Go as defineAlias,
1352
- qo as defineFunction,
1353
- Xo as packDate,
1354
- Zo as packTime,
1355
- Yo as serialToDate,
1356
- Qo as unpackDate,
1357
- ea as unpackTime
1351
+ qo as defineAlias,
1352
+ Xo as defineFunction,
1353
+ Zo as packDate,
1354
+ Yo as packTime,
1355
+ Qo as serialToDate,
1356
+ ea as unpackDate,
1357
+ ta as unpackTime
1358
1358
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-spreadsheet",
3
- "version": "7.0.2-develop.1",
3
+ "version": "7.0.2-develop.3",
4
4
  "description": "KendoReact Spreadsheet package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -10,8 +10,14 @@
10
10
  "types": "./index.d.ts",
11
11
  "exports": {
12
12
  ".": {
13
- "import": "./index.mjs",
14
- "require": "./index.js"
13
+ "import": {
14
+ "types": "./index.d.mts",
15
+ "default": "./index.mjs"
16
+ },
17
+ "require": {
18
+ "types": "./index.d.ts",
19
+ "default": "./index.js"
20
+ }
15
21
  }
16
22
  },
17
23
  "sideEffects": false,
@@ -21,18 +27,18 @@
21
27
  "@progress/kendo-date-math": "^1.5.10",
22
28
  "@progress/kendo-drawing": "^1.17.5",
23
29
  "@progress/kendo-file-saver": "^1.1.1",
24
- "@progress/kendo-licensing": "^1.3.0",
30
+ "@progress/kendo-licensing": "^1.3.4",
25
31
  "@progress/kendo-ooxml": "^1.7.0",
26
- "@progress/kendo-react-buttons": "7.0.2-develop.1",
27
- "@progress/kendo-react-common": "7.0.2-develop.1",
28
- "@progress/kendo-react-dialogs": "7.0.2-develop.1",
29
- "@progress/kendo-react-dropdowns": "7.0.2-develop.1",
30
- "@progress/kendo-react-inputs": "7.0.2-develop.1",
31
- "@progress/kendo-react-intl": "7.0.2-develop.1",
32
- "@progress/kendo-react-layout": "7.0.2-develop.1",
33
- "@progress/kendo-react-popup": "7.0.2-develop.1",
34
- "@progress/kendo-react-sortable": "7.0.2-develop.1",
35
- "@progress/kendo-react-upload": "7.0.2-develop.1",
32
+ "@progress/kendo-react-buttons": "7.0.2-develop.3",
33
+ "@progress/kendo-react-common": "7.0.2-develop.3",
34
+ "@progress/kendo-react-dialogs": "7.0.2-develop.3",
35
+ "@progress/kendo-react-dropdowns": "7.0.2-develop.3",
36
+ "@progress/kendo-react-inputs": "7.0.2-develop.3",
37
+ "@progress/kendo-react-intl": "7.0.2-develop.3",
38
+ "@progress/kendo-react-layout": "7.0.2-develop.3",
39
+ "@progress/kendo-react-popup": "7.0.2-develop.3",
40
+ "@progress/kendo-react-sortable": "7.0.2-develop.3",
41
+ "@progress/kendo-react-upload": "7.0.2-develop.3",
36
42
  "@progress/kendo-spreadsheet-common": "v1.1.1",
37
43
  "@progress/kendo-svg-icons": "^2.0.0",
38
44
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",