UNPKG

@sheetxl/studio-vanilla

Version:

SheetXL Studio - Vanilla entry point for integrating SheetXL UI.

7 lines (6 loc) 2.31 kB
"use strict";/** * @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.6.4 * * (C) 2025-present SheetXL Inc. & Michael T. Ford * License: The license can be found at https://www.sheetxl.com/license. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./Bd-US8M4eZh5SC26.cjs"),w=["Ok","Cancel"],N=t.reactExports.memo(E=>{const{value:a=null,context:s,onOption:u,onValidateOption:D,onDone:c,onUpdate:d,options:x=w,defaultOption:m=x?.[0],cancelOption:g="Cancel",sx:R,...O}=E,T=t.reactExports.useMemo(()=>s?.getNames().findValidName("Range1"),[]),i=t.reactExports.useMemo(()=>{if(!a)return!0},[]),[n,j]=t.reactExports.useState({displayText:a?.getName()??T,errorText:null}),[o,V]=t.reactExports.useState({displayValue:a?.getRanges()??s?.selection()??null,errorText:null}),[f,y]=t.reactExports.useState(!1),C=t.reactExports.useCallback(async e=>!n.errorText&&!o.errorText,[s]),h=t.T((e,l,p)=>{if(!l){let r=null;i?r=s?.getNames().addReference(n?.displayText,o?.displayValue,!1):(a.getType()==="reference"&&a.doBatch(()=>{a.setName(n?.displayText),a.setReference(o?.displayValue)},`Edit Named '${n?.displayText}'`),r=a),r&&(r.select(),d(r,i))}u?.(e,l,p),c?.()},[s,n,o,c,u,m,g,d]),v=t.T(e=>{let l=null;try{s?.getNames().validateName(e)}catch(p){l=p.message}j({displayText:e,errorText:l})},[]),S=t.T(e=>{a&&a.getName().toLowerCase()===e.toLowerCase()||s?.getNames().validateName(e)},[s,a]),b=t.reactExports.useCallback(e=>{V({displayValue:e??null,errorText:null})},[]);return t.jsxRuntimeExports.jsx(t.S3,{title:(i?"Define":"Edit")+" Range",options:x,onOption:h,onValidateOption:C,defaultOption:m,cancelOption:g,autoFocusSel:".autoFocus",sx:{width:"460px",...R},...O,children:t.jsxRuntimeExports.jsxs(t.Box,{sx:{paddingTop:e=>e.spacing(1),paddingBottom:e=>e.spacing(0),rowGap:e=>e.spacing(1),range:"flex",flexDirection:"column"},children:[t.jsxRuntimeExports.jsx(t.zp,{formName:"name",defaultInput:T,value:n.displayText,onChangeInput:v,onValidate:S,onFocus:e=>{f||e.target?.select(),y(!0)}}),t.jsxRuntimeExports.jsx(t.Wp,{formName:"range",value:o.displayValue,onChangeInput:b,resolvedAddress:s.getNames().getRanges.bind(s.getNames()),onFocus:e=>{f||e.target?.select(),y(!0)}})]})})});exports.NamedReferenceDialog=N,exports.default=N;