@progress/kendo-react-spreadsheet
Version:
KendoReact Spreadsheet package
9 lines (8 loc) • 2.97 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react"),I=require("@progress/kendo-react-dropdowns"),O=require("@progress/kendo-react-common"),w=require("@progress/kendo-svg-icons"),B=require("@progress/kendo-react-intl"),f=require("./messages.js");function q(a){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const r in a)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(a,r);Object.defineProperty(l,r,s.get?s:{enumerable:!0,get:()=>a[r]})}}return l.default=a,Object.freeze(l)}const t=q(N),p=t.forwardRef((a,l)=>{const r=t.useRef(null),s=t.useRef(null),[i,k]=t.useState([]),[v,g]=t.useState(!1),[c,u]=t.useState(""),m=t.useMemo(()=>({}),[]);m.data=i,t.useImperativeHandle(r,()=>({value:e=>{if(e===void 0){const n=s.current&&s.current.value;return n&&(n.name||n)}u(e||"")}}),[]),t.useImperativeHandle(l,()=>r.current,[]);const y=t.useCallback(e=>{const n=a.nameEditor();n&&n.trigger("delete",{name:e})},[]),E=t.useCallback((e,n)=>{const o=t.createElement(t.Fragment,null,e.props.children,t.createElement("span",{role:"button",className:"k-button-delete",onClick:()=>y(n.dataItem[n.textField]),onMouseDown:d=>d.preventDefault(),onPointerDown:d=>d.preventDefault(),"data-role":"delete"},t.createElement(O.IconWrap,{name:"x",icon:w.xIcon})));return t.cloneElement(e,e.props,o)},[]),C=t.useCallback(e=>t.cloneElement(e,{...e.props},t.createElement("div",null)),[]),D=t.useCallback(e=>{if(e.syntheticEvent&&e.syntheticEvent.type==="change")return;const n=a.nameEditor();n&&(k(n.readData()),g(!0))},[]),x=t.useCallback(()=>{g(!1)},[]),R=t.useCallback(e=>{if(e.syntheticEvent.target.closest("[data-role]"))return;const n=a.nameEditor();if(n&&e.value){const o=e.value.name;o!==c&&(n.trigger("select",{name:o}),u(o))}},[c]),S=t.useCallback(e=>{const n=a.nameEditor();if(n)if(e.key==="Enter"){const o=e.target.value;n.trigger("enter",{value:o}),u(o)}else e.key==="Escape"&&(n.trigger("cancel"),u(m.prevValue))},[]),h=t.useCallback(e=>{m.prevValue=e.value.name},[]),b=B.useLocalization().toLanguageString(f.keys.nameBox,f.messages[f.keys.nameBox]);return t.createElement("div",{className:"k-spreadsheet-name-editor",onKeyDown:S},t.createElement(I.ComboBox,{ref:s,title:b,popupSettings:{className:"k-spreadsheet-names-popup"},fillMode:"flat",clearButton:!1,dataItemKey:"name",textField:"name",itemRender:E,data:i,value:c?i.find(e=>e.name===c)||{name:c}:null,onChange:R,opened:v,onOpen:D,onClose:x,onFocus:h,listNoDataRender:C,allowCustom:!0,ariaLabel:b}))});p.displayName="NameBox";p.propTypes={};exports.NameBox=p;