@sheetxl/studio-vanilla
Version:
SheetXL Studio - Vanilla entry point for integrating SheetXL UI.
7 lines (6 loc) • 2.35 kB
JavaScript
"use strict";/**
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.27
*
* (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("./Bc1oKNEzl3Kcj4g5.cjs"),b=["Ok","Cancel"],T=t.reactExports.memo(E=>{const{initialValue:a=null,context:n,onOption:u,onValidateOption:I,onDone:p,onInput:c,options:d=b,defaultOption:x=d?.[0],cancelOption:m="Cancel",sx:O,...R}=E,g=t.reactExports.useMemo(()=>n?.().getNames().findValidName("Range1"),[]),f=t.reactExports.useMemo(()=>{if(!a)return!0},[]),[s,V]=t.reactExports.useState({displayText:a?.getName()??g,errorText:null}),[o,j]=t.reactExports.useState({displayValue:a?.getRanges()??n?.().selection()??null,errorText:null}),[y,N]=t.reactExports.useState(!1),C=t.reactExports.useCallback(async e=>!s.errorText&&!o.errorText,[]),h=t.k((e,l,i)=>{if(!l){let r=null;f?r=n?.().getNames().addReference(s?.displayText,o?.displayValue,!1):(a.getType()==="reference"&&a.doBatch(()=>{a.setName(s?.displayText),a.setReference(o?.displayValue)},`Edit Named '${s?.displayText}'`),r=a),r&&(r.select(),c(r))}u?.(e,l,i),p?.()},[n,s,o,p,u,x,m,c]),v=t.k(e=>{let l=null;try{n?.().getNames().validateName(e)}catch(i){l=i.message}V({displayText:e,errorText:l})},[]),k=t.k(e=>{a&&a.getName().toLowerCase()===e.toLowerCase()||n?.().getNames().validateName(e)},[n,a]),S=t.reactExports.useCallback(e=>{j({displayValue:e??null,errorText:null})},[]);return t.jsxRuntimeExports.jsx(t.Or,{title:(f?"Define":"Edit")+" Range",options:d,onOption:h,onValidateOption:C,defaultOption:x,cancelOption:m,autoFocusSel:".autoFocus",sx:{width:"460px",...O},...R,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.Ia,{formName:"name",defaultInput:g,value:s.displayText,onChangeInput:v,onValidate:k,onFocus:e=>{y||e.target?.select(),N(!0)}}),t.jsxRuntimeExports.jsx(t.La,{formName:"range",value:o.displayValue,onChangeInput:S,resolvedAddress:n?n().getNames().getRanges.bind(n().getNames()):void 0,onFocus:e=>{y||e.target?.select(),N(!0)}})]})})});exports.NamedReferenceDialog=T,exports.default=T;