@univerjs/sheets-numfmt-ui 0.10.3 → 0.10.4

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.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var he=Object.defineProperty;var ve=(e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var H=(e,t,r)=>ve(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),ie=require("@univerjs/engine-render"),d=require("@univerjs/sheets-numfmt"),P=require("@univerjs/sheets-ui"),g=require("@univerjs/sheets"),_=require("@univerjs/ui"),D=require("rxjs"),A=require("rxjs/operators"),l=require("react/jsx-runtime"),y=require("react"),T=require("@univerjs/design"),ee={};var fe=Object.getOwnPropertyDescriptor,pe=(e,t,r,n)=>{for(var i=n>1?void 0:n?fe(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},O=(e,t)=>(r,n)=>t(r,n,e);const K="SHEET_NUMFMT_ALERT";let J=class extends c.Disposable{constructor(e,t,r,n,i,s,o){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=r,this._localeService=n,this._zenZoneService=i,this._numfmtService=s,this._configService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(D.debounceTime(100)).subscribe(e=>{var t,r;if(e){const n=e.location,i=this._context.unit,s=i.getActiveSheet();if(!s)return;const o=n.unitId,u=n.subUnitId;let a;const h=s.getCell(n.row,n.col);if(h!=null&&h.s){const f=i.getStyles().get(h.s);f!=null&&f.n&&(a=f.n)}if(a||(a=this._numfmtService.getValue(o,u,n.row,n.col)),!a){this._hideAlert();return}if(c.isTextFormat(a.pattern)&&c.Tools.isDefine(h==null?void 0:h.v)&&c.isRealNum(h.v)){if((t=this._configService.getConfig(d.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY))!=null&&t.disableTextFormatAlert)return;const f=this._cellAlertManagerService.currentAlert.get(K),m=(r=f==null?void 0:f.alert)==null?void 0:r.location;if(m&&m.row===n.row&&m.col===n.col&&m.subUnitId===n.subUnitId&&m.unitId===n.unitId)return;this._cellAlertManagerService.showAlert({type:P.CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n,width:200,height:74,key:K});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(K)}};J=pe([O(1,c.Inject(P.HoverManagerService)),O(2,c.Inject(P.CellAlertManagerService)),O(3,c.Inject(c.LocaleService)),O(4,_.IZenZoneService),O(5,c.Inject(g.INumfmtService)),O(6,c.IConfigService)],J);const Z={id:"sheet.operation.close.numfmt.panel",type:c.CommandType.OPERATION,handler:()=>!0},$={id:"sheet.operation.open.numfmt.panel",type:c.CommandType.OPERATION,handler:e=>(e.get(F).openPanel(),!0)};var ge=Object.getOwnPropertyDescriptor,Se=(e,t,r,n)=>{for(var i=n>1?void 0:n?ge(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},ye=(e,t)=>(r,n)=>t(r,n,e);const Q=y.createContext([]);let L=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){const r=this._getKey(e);return this._localStorageService.getItem(r).then(n=>{n||this._localStorageService.setItem(r,t)})}markHabit(e,t){const r=this._getKey(e);this._localStorageService.getItem(r).then(n=>{if(n){const i=n.findIndex(s=>s===t);i>-1&&n.splice(i,1),n.unshift(t),this._localStorageService.setItem(r,n)}})}async getHabit(e,t){const r=this._getKey(e),n=await this._localStorageService.getItem(r);if(t&&n){const i=n.map((s,o,u)=>{const a=u.length;return{value:s,priority:a-o}});return t.sort((s,o)=>{var h,f;const u=((h=i.find(m=>m.value===s))==null?void 0:h.priority)||-1;return(((f=i.find(m=>m.value===o))==null?void 0:f.priority)||-1)-u})}return n||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};L=Se([ye(0,c.Inject(c.ILocalStorageService))],L);const te="numfmtCurrency",_e=e=>{const t=_.useDependency(L),[r,n]=y.useState(d.currencySymbols);return y.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(te,[...d.currencySymbols]).then(s=>{n(s),e&&e(s)})})},[]),{userHabitCurrency:r,mark:s=>{t.markHabit(te,s)}}},Ce=()=>{const e=y.useRef([]),[t,r]=y.useState({});return y.useEffect(()=>{e.current.forEach(i=>{i()}),e.current=[]},[t]),i=>{e.current.push(i),r({})}},be=e=>!!d.getCurrencyType(e)&&e.startsWith("_("),Ie=e=>{const{defaultPattern:t,action:r,onChange:n}=e,[i,s]=y.useState(()=>d.getDecimalFromPattern(t||"",2)),o=y.useContext(Q),[u,a]=y.useState(()=>d.getCurrencyType(t)||o[0]),h=y.useMemo(()=>o.map(C=>({label:C,value:C})),[]),m=_.useDependency(c.LocaleService).t;r.current=()=>d.setPatternDecimal(`_("${u}"* #,##0${i>0?".0":""}_)`,i);const p=C=>{a(C),n(d.setPatternDecimal(`_("${C}"* #,##0${i>0?".0":""}_)`,i))},S=C=>{const v=C||0;s(v),n(d.setPatternDecimal(`_("${u}"* #,##0${v>0?".0":""}_)`,v))};return l.jsxs("div",{children:[l.jsxs("div",{className:"univer-mt-4 univer-flex univer-justify-between",children:[l.jsxs("div",{className:"option",children:[l.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:m("sheet.numfmt.decimalLength")}),l.jsx("div",{className:"univer-mt-2 univer-w-32",children:l.jsx(T.InputNumber,{value:i,step:1,precision:0,max:20,min:0,onChange:S})})]}),l.jsxs("div",{className:"option",children:[l.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:m("sheet.numfmt.currencyType")}),l.jsx("div",{className:"univer-mt-2 univer-w-36",children:l.jsx(T.Select,{options:h,value:u,onChange:p})})]})]}),l.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:m("sheet.numfmt.accountingDes")})]})},xe=e=>!!d.getCurrencyType(e)&&!e.startsWith("_("),Ne=e=>{const r=_.useDependency(c.LocaleService).t,n=y.useContext(Q),[i,s]=y.useState(()=>d.getCurrencyType(e.defaultPattern)||n[0]),[o,u]=y.useState(()=>d.getDecimalFromPattern(e.defaultPattern||"",2)),[a,h]=y.useState(()=>{var b;const v=d.getCurrencyFormatOptions(i);return((b=v.find(N=>c.isPatternEqualWithoutDecimal(N.value,e.defaultPattern)))==null?void 0:b.value)||v[0].value}),f=y.useMemo(()=>d.getCurrencyFormatOptions(i),[i]),m=y.useMemo(()=>n.map(v=>({label:v,value:v})),[n]);e.action.current=()=>d.setPatternDecimal(a,o);const p=v=>{if(v===void 0)return;s(v);const x=d.getCurrencyFormatOptions(v)[0].value;h(x),e.onChange(d.setPatternDecimal(x,o))},S=v=>{v!==void 0&&(h(v),e.onChange(d.setPatternDecimal(v,o)))},C=v=>{u(v||0),e.onChange(d.setPatternDecimal(a,v||0))};return l.jsxs("div",{children:[l.jsxs("div",{className:"univer-mt-4 univer-flex univer-justify-between",children:[l.jsxs("div",{className:"option",children:[l.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.decimalLength")}),l.jsx("div",{className:"univer-mt-2 univer-w-32",children:l.jsx(T.InputNumber,{value:o,max:20,min:0,onChange:C})})]}),l.jsxs("div",{className:"option",children:[l.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.currencyType")}),l.jsx("div",{className:"univer-mt-2 univer-w-36",children:l.jsx(T.Select,{value:i,options:m,onChange:p})})]})]}),l.jsx("div",{className:"label univer-mt-4",children:r("sheet.numfmt.negType")}),l.jsx("div",{className:"univer-mt-2",children:l.jsx(T.SelectList,{value:a,options:f,onChange:S})}),l.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.currencyDes")})]})};var E=function(){return E=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},E.apply(this,arguments)},Te=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r},se=y.forwardRef(function(e,t){var r=e.icon,n=e.id,i=e.className,s=e.extend,o=Te(e,["icon","id","className","extend"]),u="univerjs-icon univerjs-icon-".concat(n," ").concat(i||"").trim(),a=y.useRef("_".concat(Me()));return ce(r,"".concat(n),{defIds:r.defIds,idSuffix:a.current},E({ref:t,className:u},o),s)});function ce(e,t,r,n,i){return y.createElement(e.tag,E(E({key:t},Ee(e,r,i)),n),(Pe(e,r).children||[]).map(function(s,o){return ce(s,"".concat(t,"-").concat(e.tag,"-").concat(o),r,void 0,i)}))}function Ee(e,t,r){var n=E({},e.attrs);r!=null&&r.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=r.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(s){var o=s[0],u=s[1];o==="mask"&&typeof u=="string"&&(n[o]=u.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var i=t.defIds;return!i||i.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(s){var o=s[0],u=s[1];typeof u=="string"&&(n[o]=u.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function Pe(e,t){var r,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((r=e.children)===null||r===void 0)&&r.length)?E(E({},e),{children:e.children.map(function(i){return typeof i.attrs.id=="string"&&n&&n.includes(i.attrs.id)?E(E({},i),{attrs:E(E({},i.attrs),{id:i.attrs.id+t.idSuffix})}):i})}):e}function Me(){return Math.random().toString(36).substring(2,8)}se.displayName="UniverIcon";var je={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},oe=y.forwardRef(function(e,t){return y.createElement(se,Object.assign({},e,{id:"check-mark-icon",ref:t,icon:je}))});oe.displayName="CheckMarkIcon";const Y="customFormat",z="numfmt_custom_pattern";function De(e){const{defaultPattern:t,action:r,onChange:n}=e,i=_.useDependency(L),s=_.useDependency(c.ILocalStorageService),o=_.useDependency(c.LocaleService),[u,a]=y.useState(t);r.current=()=>(i.markHabit(Y,u),s.getItem(z).then((S=[])=>{const C=[...new Set([u,...S||[]])].splice(0,10).filter(v=>!!v);s.setItem(z,C)}),u);const[h,f]=y.useState([]);y.useEffect(()=>{s.getItem(z).then(S=>{const C=[...d.CURRENCYFORMAT.map(v=>v.suffix("$")),...d.DATEFMTLISG.map(v=>v.suffix),...d.NUMBERFORMAT.map(v=>v.suffix)];C.push(...S||[]),i.addHabit(Y,[]).finally(()=>{i.getHabit(Y,C).then(v=>{f([...new Set(v)])})})})},[]);const m=S=>{a(S),n(S)},p=()=>{n(u)};return l.jsxs("div",{children:[l.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:o.t("sheet.numfmt.customFormat")}),l.jsx(T.Input,{placeholder:o.t("sheet.numfmt.customFormat"),onBlur:p,value:u,onChange:a,className:"univer-mt-2 univer-w-full"}),l.jsx("div",{className:T.clsx("univer-mt-2 univer-max-h-[400px] univer-overflow-auto univer-rounded-lg univer-p-2",T.borderClassName),children:h.map(S=>l.jsxs("div",{onClick:()=>m(S),className:"univer-flex univer-cursor-pointer univer-items-center univer-gap-1.5 univer-py-1.5 univer-text-sm",children:[l.jsx("div",{className:"univer-flex univer-w-4 univer-items-center univer-text-primary-600",children:u===S&&l.jsx(oe,{})}),l.jsx("div",{children:S})]},S))}),l.jsx("div",{className:"univer-mt-3 univer-text-sm univer-text-gray-600 dark:!univer-text-gray-200",children:o.t("sheet.numfmt.customFormatDes")})]})}const Re=e=>{const t=c.numfmt.getFormatInfo(e);return d.getDateFormatOptions().map(r=>r.value).includes(e)||["date","datetime","time"].includes(t.type)};function we(e){const{onChange:t,defaultPattern:r}=e,n=y.useMemo(d.getDateFormatOptions,[]),i=_.useDependency(c.LocaleService),[s,o]=y.useState(()=>{if(r){const a=n.find(h=>h.value===r);if(a)return a.value}return n[0].value});e.action.current=()=>s;const u=a=>{a!==void 0&&(o(a),t(a))};return l.jsxs("div",{children:[l.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:i.t("sheet.numfmt.dateType")}),l.jsx("div",{className:"univer-mt-2",children:l.jsx(T.SelectList,{value:s,options:n,onChange:u})}),l.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:i.t("sheet.numfmt.dateDes")})]})}const Oe=e=>!e,Ue=e=>{const r=_.useDependency(c.LocaleService).t;return e.action.current=()=>"",l.jsx("div",{children:l.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:r("sheet.numfmt.generalDes")})})},ke=e=>d.getNumberFormatOptions().some(t=>c.isPatternEqualWithoutDecimal(t.value,e));function $e(e){const t=_.useDependency(c.LocaleService),r=y.useMemo(d.getNumberFormatOptions,[]),[n,i]=y.useState(()=>d.getDecimalFromPattern(e.defaultPattern||"",0)),[s,o]=y.useState(()=>{const m=r.find(p=>c.isPatternEqualWithoutDecimal(p.value,e.defaultPattern||""));return(m==null?void 0:m.value)||r[0].value}),u=y.useMemo(()=>d.setPatternDecimal(s,Number(n||0)),[s,n]),a=y.useMemo(()=>!d.isPatternHasDecimal(s),[s]),h=m=>{i(m||0),e.onChange(d.setPatternDecimal(s,Number(m||0)))},f=m=>{m!==void 0&&(i(d.getDecimalFromPattern(m,0)),o(m),e.onChange(m))};return e.action.current=()=>u,l.jsxs("div",{children:[l.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:t.t("sheet.numfmt.decimalLength")}),l.jsx("div",{className:"univer-mt-2",children:l.jsx(T.InputNumber,{disabled:a,value:n,max:20,min:0,onChange:h})}),l.jsxs("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:[" ",t.t("sheet.numfmt.negType")]}),l.jsx("div",{className:"univer-mt-2",children:l.jsx(T.SelectList,{onChange:f,options:r,value:s})}),l.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})}const Le=e=>{const{defaultValue:t,defaultPattern:r,row:n,col:i}=e.value,s=_.useDependency(c.LocaleService),o=y.useRef(()=>""),u=s.t,a=Ce(),h=y.useMemo(()=>[{label:"sheet.numfmt.general",component:Ue},{label:"sheet.numfmt.accounting",component:Ie},{label:"sheet.numfmt.currency",component:Ne},{label:"sheet.numfmt.date",component:we},{label:"sheet.numfmt.thousandthPercentile",component:$e},{label:"sheet.numfmt.customFormat",component:De}].map(I=>({...I,label:u(I.label)})),[]),[f,m]=y.useState(b),[p,S]=y.useState(()=>`${n}_${i}`),{mark:C,userHabitCurrency:v}=_e(()=>S(`${n}_${i}_userCurrency'`)),x=y.useMemo(()=>{var I;return(I=h.find(w=>w.label===f))==null?void 0:I.component},[f]);function b(){return[Oe,be,xe,Re,ke].reduce((w,me,de)=>w||(me(r)?h[de].label:""),"")||h[0].label}const N=h.map(I=>({label:I.label,value:I.label})),j=I=>{m(I),a(()=>e.onChange({type:"change",value:o.current()||""}))},R=y.useCallback(I=>{e.onChange({type:"change",value:I})},[]),q=()=>{const I=o.current()||"",w=d.getCurrencyType(I);w&&C(w),e.onChange({type:"confirm",value:I})},U=()=>{e.onChange({type:"cancel",value:""})},G={onChange:R,defaultValue:t,defaultPattern:r,action:o};return y.useEffect(()=>{m(b()),S(`${n}_${i}`)},[n,i]),l.jsxs("div",{className:T.clsx("univer-flex univer-h-full univer-flex-col univer-justify-between univer-overflow-y-auto univer-pb-5",T.scrollbarClassName),children:[l.jsxs("div",{children:[l.jsx("div",{className:"univer-mt-3.5 univer-text-sm univer-text-gray-400",children:u("sheet.numfmt.numfmtType")}),l.jsx("div",{className:"univer-mt-2",children:l.jsx(T.Select,{className:"univer-w-full",value:f,options:N,onChange:j})}),l.jsx("div",{children:x&&l.jsx(Q.Provider,{value:v,children:y.createElement(x,{...G,key:p})})})]}),l.jsxs("div",{className:"univer-mb-5 univer-mt-3.5 univer-flex univer-justify-end",children:[l.jsx(T.Button,{onClick:U,className:"univer-mr-3",children:u("sheet.numfmt.cancel")}),l.jsx(T.Button,{variant:"primary",onClick:q,children:u("sheet.numfmt.confirm")})]})]})};var Fe=Object.getOwnPropertyDescriptor,He=(e,t,r,n)=>{for(var i=n>1?void 0:n?Fe(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},M=(e,t)=>(r,n)=>t(r,n,e);const ne="SHEET_NUMFMT_PANEL";let F=class extends c.Disposable{constructor(t,r,n,i,s,o,u,a,h,f,m){super();H(this,"_previewPattern","");H(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=r,this._univerInstanceService=n,this._commandService=i,this._selectionManagerService=s,this._renderManagerService=o,this._numfmtService=u,this._componentManager=a,this._sidebarService=h,this._localeService=f,this._sheetsNumfmtCellContentController=m,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener(),this._initNumfmtLocalChange()}_initNumfmtLocalChange(){this.disposeWithMe(D.merge(this._sheetsNumfmtCellContentController.locale$,this._localeService.currentLocale$).subscribe(()=>{this._forceUpdate()}))}openPanel(){var x;const t=this._sidebarService,r=this._selectionManagerService,n=this._commandService,i=this._univerInstanceService,s=this._numfmtService,o=this._localeService,a=(((x=r.getCurrentSelections())==null?void 0:x.map(b=>b.range))||[])[0];if(!a)return!1;const h=i.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),f=h.getActiveSheet();if(!f)return!1;const m=f.getCellRaw(a.startRow,a.startColumn),p=s.getValue(h.getUnitId(),f.getSheetId(),a.startRow,a.startColumn);let S="";p&&(S=p.pattern);const C=(m==null?void 0:m.t)===c.CellValueType.NUMBER?m.v:12345678,v={onChange:b=>{var N;if(b.type==="change")this._previewPattern=b.value,this._forceUpdate();else if(b.type==="confirm"){const j=((N=r.getCurrentSelections())==null?void 0:N.map(U=>U.range))||[],R={values:[]},q=d.getPatternType(b.value);j.forEach(U=>{c.Range.foreach(U,(G,I)=>{R.values.push({row:G,col:I,pattern:b.value,type:q})})}),n.executeCommand(d.SetNumfmtCommand.id,R),t.close()}else b.type==="cancel"&&t.close()},value:{defaultPattern:S,defaultValue:C,row:a.startRow,col:a.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:ne,...v},onClose:()=>{this._forceUpdate(),n.executeCommand(Z.id)}}),!0}_forceUpdate(t){var n;const r=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId());r==null||r.with(P.SheetSkeletonManagerService).reCalculate(),(n=r==null?void 0:r.mainComponent)==null||n.makeDirty()}_initCommands(){[$,Z].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this.disposeWithMe(this._componentManager.register(ne,Le))}_initRealTimeRenderingInterceptor(){const t=new D.Observable(n=>{this._commandService.onCommandExecuted(i=>{i.id===$.id&&n.next(!0),i.id===Z.id&&n.next(!1)})}),r=D.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(A.map(n=>n?n.map(i=>i.range):[]))]);this.disposeWithMe(c.toDisposable(r.pipe(A.switchMap(([n,i])=>new D.Observable(s=>{const o=new c.DisposableCollection;return n&&i.length&&s.next({selectionRanges:i,disposableCollection:o}),()=>{o.dispose()}})),A.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:n,selectionRanges:i})=>{var o,u;const s=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET);this.openPanel(),n.add(this._sheetInterceptorService.intercept(g.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:c.InterceptorEffectEnum.Value|c.InterceptorEffectEnum.Style,handler:(a,h,f)=>{var C;const{row:m,col:p}=h,S=f(a)||{};if(i.find(v=>v.startColumn<=p&&v.endColumn>=p&&v.startRow<=m&&v.endRow>=m)){const v=h.worksheet.getCellRaw(m,p),x=v==null?void 0:v.v,b=v==null?void 0:v.t;if(x==null||b!==c.CellValueType.NUMBER||this._previewPattern===null)return S;const N=d.getPatternPreviewIgnoreGeneral(this._previewPattern,x,this._sheetsNumfmtCellContentController.locale);if(N.color){const j=(C=this._themeService.getColorFromTheme(`${N.color}.500`))!=null?C:N.color;return{...S,v:N.result,t:c.CellValueType.STRING,s:{cl:{rgb:j}}}}return{...S,v:N.result,t:c.CellValueType.STRING}}return S}})),(u=(o=this._renderManagerService.getRenderById(s.getUnitId()))==null?void 0:o.mainComponent)==null||u.makeDirty()})))}_commandExecutedListener(){const t=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id];this.disposeWithMe(new D.Observable(r=>{const n=this._commandService.onCommandExecuted(i=>{if(t.includes(i.id)){const s=i.params;r.next(s.unitId)}});return()=>n.dispose()}).pipe(A.debounceTime(16)).subscribe(r=>this._forceUpdate(r)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var r;t||((r=this._sidebarDisposable)==null||r.dispose(),this._sidebarDisposable=null)})}};F=He([M(0,c.Inject(g.SheetInterceptorService)),M(1,c.Inject(c.ThemeService)),M(2,c.IUniverInstanceService),M(3,c.ICommandService),M(4,c.Inject(g.SheetsSelectionsService)),M(5,ie.IRenderManagerService),M(6,g.INumfmtService),M(7,c.Inject(_.ComponentManager)),M(8,_.ISidebarService),M(9,c.Inject(c.LocaleService)),M(10,c.Inject(d.SheetsNumfmtCellContentController))],F);var Ae=Object.getOwnPropertyDescriptor,We=(e,t,r,n)=>{for(var i=n>1?void 0:n?Ae(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},k=(e,t)=>(r,n)=>t(r,n,e);const Ve=()=>{let e=[];return{add:(i,s,o,u,a)=>e.push({unitId:i,subUnitId:s,row:o,col:u,value:a}),getEffects:()=>e,clean:()=>{e=[]}}};let V=class extends c.Disposable{constructor(t,r,n,i,s){super();H(this,"_collectEffectMutation",Ve());this._sheetInterceptorService=t,this._numfmtService=r,this._univerInstanceService=n,this._injector=i,this._editorBridgeService=s,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.BEFORE_CELL_EDIT,{handler:(t,r,n)=>{const i=r.row,s=r.col,o=this._numfmtService.getValue(r.unitId,r.subUnitId,i,s);if(o)switch(d.getPatternType(o.pattern)){case"scientific":case"currency":case"grouped":case"number":{const a=r.worksheet.getCellRaw(i,s);return n&&n(a)}case"percent":case"date":case"time":case"datetime":default:return n&&n(t)}return n(t)}})))}_initInterceptorEditorEnd(){this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.AFTER_CELL_EDIT,{handler:(t,r,n)=>{var a,h,f;this._collectEffectMutation.clean();const i=this._numfmtService.getValue(r.unitId,r.subUnitId,r.row,r.col);if(!(t!=null&&t.v)&&!(t!=null&&t.p)||c.isTextFormat(i==null?void 0:i.pattern)||t.t===c.CellValueType.FORCE_STRING)return n(t);const s=(a=t.p)==null?void 0:a.body,o=(f=(h=t==null?void 0:t.p)==null?void 0:h.body)!=null&&f.dataStream?t.p.body.dataStream.replace(/\r\n$/,""):String(t.v),u=c.numfmt.parseDate(o)||c.numfmt.parseTime(o)||c.numfmt.parseNumber(o);if(s)if(Be(s)){const{dataStream:m}=s,p=m.replace(/\r\n$/,""),S=Number(p);if(Number.isNaN(S)&&!u)return n(t)}else return n(t);if(u){if(!u.z&&c.willLoseNumericPrecision(o))return n({...t,p:void 0,v:o,t:c.CellValueType.FORCE_STRING});u.z&&this._collectEffectMutation.add(r.unitId,r.subUnitId,r.row,r.col,{pattern:u.z});const m=Number(u.v);return n({...t,p:void 0,v:m,t:c.CellValueType.NUMBER})}return n(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(r){var n;switch(r.id){case g.SetRangeValuesCommand.id:{const i=t._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),s=i.getUnitId(),o=(n=i.getActiveSheet())==null?void 0:n.getSheetId();if(!o)return{redos:[],undos:[]};const u=t._collectEffectMutation.getEffects();if(t._collectEffectMutation.clean(),!u.length)return{redos:[],undos:[]};const a=u.filter(p=>{var S;return!!((S=p.value)!=null&&S.pattern)}).map(p=>({row:p.row,col:p.col,pattern:p.value.pattern})),h=u.filter(p=>{var S;return!((S=p.value)!=null&&S.pattern)}).map(p=>({startRow:p.row,endColumn:p.col,startColumn:p.col,endRow:p.row})),f=[],m=[];if(a.length){const p={id:g.SetNumfmtMutation.id,params:g.transformCellsToRange(s,o,a)};f.push(p),m.push(...g.factorySetNumfmtUndoMutation(t._injector,p.params))}if(h.length){const p={id:g.RemoveNumfmtMutation.id,params:{unitId:s,subUnitId:o,ranges:h}};f.push(p),m.push(...g.factoryRemoveNumfmtUndoMutation(t._injector,p.params))}return{redos:f,undos:m.reverse()}}}return{redos:[],undos:[]}}}))}};V=We([k(0,c.Inject(g.SheetInterceptorService)),k(1,c.Inject(g.INumfmtService)),k(2,c.Inject(c.IUniverInstanceService)),k(3,c.Inject(c.Injector)),k(4,c.Optional(P.IEditorBridgeService))],V);function Be(e){const{textRuns:t=[],paragraphs:r=[],customRanges:n,customBlocks:i=[]}=e,s=["va"];return!(t.some(o=>!!(o.ts&&Object.keys(o.ts).some(a=>s.includes(a))))||r.some(o=>o.bullet)||r.length>=2||n!=null&&n.length||i.length>0)}const W=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:c.DEFAULT_TEXT_FORMAT_EXCEL},"|",{label:"sheet.numfmt.number",pattern:"0"},{label:"sheet.numfmt.percent",pattern:"0.00%"},{label:"sheet.numfmt.scientific",pattern:"0.00E+00"},"|",{label:"sheet.numfmt.accounting",pattern:'"¥" #,##0.00_);[Red]("¥"#,##0.00)'},{label:"sheet.numfmt.financialValue",pattern:"#,##0.00;[Red]#,##0.00"},{label:"sheet.numfmt.currency",pattern:'"¥"#,##0.00_);[Red]("¥"#,##0.00)'},{label:"sheet.numfmt.roundingCurrency",pattern:'"¥"#,##0;[Red]"¥"#,##0'},"|",{label:"sheet.numfmt.date",pattern:"yyyy-mm-dd;@"},{label:"sheet.numfmt.time",pattern:'am/pm h":"mm":"ss'},{label:"sheet.numfmt.dateTime",pattern:"yyyy-m-d am/pm h:mm"},{label:"sheet.numfmt.timeDuration",pattern:"h:mm:ss"},"|",{label:"sheet.numfmt.moreFmt",pattern:""}],qe=e=>({icon:new D.Observable(t=>{var s;const r=e.get(d.MenuCurrencyService);function n(o){var a;return(a={[d.countryCurrencyMap.US]:"DollarIcon",[d.countryCurrencyMap.RU]:"RoubleIcon",[d.countryCurrencyMap.CN]:"RmbIcon",[d.countryCurrencyMap.AT]:"EuroIcon"}[o])!=null?a:"DollarIcon"}const i=(s=d.countryCurrencyMap[r.getCurrencySymbol()])!=null?s:"$";return t.next(n(i)),r.currencySymbol$.subscribe(o=>{var a;const u=(a=d.countryCurrencyMap[o])!=null?a:"$";t.next(n(u))})}),id:d.SetCurrencyCommand.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ge=e=>({icon:"AddDigitsIcon",id:d.AddDecimalCommand.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ke=e=>({icon:"ReduceDigitsIcon",id:d.SubtractDecimalCommand.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ze=e=>({icon:"PercentIcon",id:d.SetPercentCommand.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ye=e=>{const t=e.get(c.IUniverInstanceService),r=e.get(c.ICommandService),n=e.get(c.LocaleService),i=e.get(g.SheetsSelectionsService),s=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id],o=P.deriveStateFromActiveSheet$(t,"",({workbook:u,worksheet:a})=>new D.Observable(h=>D.merge(i.selectionMoveEnd$,c.fromCallback(r.onCommandExecuted.bind(r)).pipe(D.filter(([f])=>s.includes(f.id)))).subscribe(()=>{var m,p;const f=i.getCurrentSelections();if(f&&f[0]){const S=f[0].range,C=S.startRow,v=S.startColumn,x=(p=u.getStyles().get((m=a.getCell(C,v))==null?void 0:m.s))==null?void 0:p.n,b=x==null?void 0:x.pattern;let N=n.t("sheet.numfmt.general");if(c.isDefaultFormat(b)){h.next(N);return}if(b){const j=W.filter(R=>typeof R=="object"&&R.pattern).find(R=>c.isPatternEqualWithoutDecimal(b,R.pattern));j&&typeof j=="object"&&j.pattern?N=n.t(j.label):N=n.t("sheet.numfmt.moreFmt")}h.next(N)}})));return{label:ae,id:$.id,tooltip:"sheet.numfmt.title",type:_.MenuItemType.SELECTOR,slot:!0,selections:[{label:{name:le,hoverable:!1,selectable:!1}}],value$:o,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetSetCellStylePermission,g.WorksheetEditPermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}},ae="sheet.numfmt.moreNumfmtType",le="sheet.numfmt.moreNumfmtType.options",ze=e=>{const{value:t}=e,r=_.useDependency(c.LocaleService),n=t!=null?t:r.t("sheet.numfmt.general");return l.jsx("span",{className:"univer-text-sm",children:n})},Xe=()=>{const e=_.useDependency(c.ICommandService),t=_.useDependency(c.LocaleService),r=_.useDependency(_.ILayoutService),n=_.useDependency(d.SheetsNumfmtCellContentController),i=_.useDependency(g.SheetsSelectionsService),s=a=>{const h=i.getCurrentLastSelection();if(!h)return;const f=h.range,m=[];c.Range.foreach(f,(p,S)=>{a?m.push({row:p,col:S,pattern:a,type:d.getPatternType(a)}):m.push({row:p,col:S})}),e.executeCommand(d.SetNumfmtCommand.id,{values:m}),r.focus()},o=a=>{if(a===0)s(null);else if(a===W.length-1)e.executeCommand($.id),r.focus();else{const h=W[a];h.pattern&&s(h.pattern)}},u=1220;return l.jsx("div",{className:"univer-grid univer-gap-1 univer-p-1.5",children:W.map((a,h)=>a==="|"?l.jsx(T.Separator,{},h):l.jsxs("div",{className:"univer-flex univer-h-7 univer-items-center univer-justify-between univer-gap-6 univer-rounded univer-px-2 univer-text-sm hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700",onClick:()=>{o(h)},children:[l.jsx("span",{children:t.t(a.label)}),l.jsx("span",{className:"univer-text-xs univer-text-gray-500",children:a.pattern?d.getPatternPreview(a.pattern||"",u,n.locale).result.trim():""})]},h))})},Je={[_.RibbonDataGroup.FORMULAS]:{[d.SetCurrencyCommand.id]:{order:0,menuItemFactory:qe},[d.AddDecimalCommand.id]:{order:1,menuItemFactory:Ge},[d.SubtractDecimalCommand.id]:{order:2,menuItemFactory:Ke},[d.SetPercentCommand.id]:{order:3,menuItemFactory:Ze},[$.id]:{order:4,menuItemFactory:Ye}}};var Qe=Object.getOwnPropertyDescriptor,et=(e,t,r,n)=>{for(var i=n>1?void 0:n?Qe(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},re=(e,t)=>(r,n)=>t(r,n,e);let B=class extends c.Disposable{constructor(e,t){super(),this._componentManager=e,this._menuManagerService=t,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(Je),[[ae,ze],[le,Xe]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};B=et([re(0,c.Inject(_.ComponentManager)),re(1,_.IMenuManagerService)],B);var tt=Object.defineProperty,nt=Object.getOwnPropertyDescriptor,rt=(e,t,r)=>t in e?tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,it=(e,t,r,n)=>{for(var i=n>1?void 0:n?nt(t,r):t,s=e.length-1,o;s>=0;s--)(o=e[s])&&(i=o(i)||i);return i},X=(e,t)=>(r,n)=>t(r,n,e),ue=(e,t,r)=>rt(e,typeof t!="symbol"?t+"":t,r);const st="SHEET_NUMFMT_UI_PLUGIN";exports.UniverSheetsNumfmtUIPlugin=class extends c.Plugin{constructor(t=ee,r,n,i){super(),this._config=t,this._injector=r,this._configService=n,this._renderManagerService=i;const{menu:s,...o}=c.merge({},ee,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig("sheets-numfmt-ui.config",o)}onStarting(){c.registerDependencies(this._injector,[[F],[V],[L],[B]])}onRendered(){this._registerRenderModules(),c.touchDependencies(this._injector,[[F],[V],[B]])}_registerRenderModules(){[[J]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,r))})}};ue(exports.UniverSheetsNumfmtUIPlugin,"pluginName",st);ue(exports.UniverSheetsNumfmtUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtUIPlugin=it([c.DependentOn(P.UniverSheetsUIPlugin,d.UniverSheetsNumfmtPlugin),X(1,c.Inject(c.Injector)),X(2,c.IConfigService),X(3,ie.IRenderManagerService)],exports.UniverSheetsNumfmtUIPlugin);
1
+ "use strict";var he=Object.defineProperty;var ve=(e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var A=(e,t,r)=>ve(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),re=require("@univerjs/engine-render"),h=require("@univerjs/sheets-numfmt"),P=require("@univerjs/sheets-ui"),g=require("@univerjs/sheets"),_=require("@univerjs/ui"),D=require("rxjs"),W=require("rxjs/operators"),o=require("react/jsx-runtime"),y=require("react"),N=require("@univerjs/design"),Q={};var fe=Object.getOwnPropertyDescriptor,pe=(e,t,r,n)=>{for(var i=n>1?void 0:n?fe(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},U=(e,t)=>(r,n)=>t(r,n,e);const G="SHEET_NUMFMT_ALERT";let X=class extends c.Disposable{constructor(e,t,r,n,i,s,a){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=r,this._localeService=n,this._zenZoneService=i,this._numfmtService=s,this._configService=a,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(D.debounceTime(100)).subscribe(e=>{var t,r;if(e){const n=e.location,i=this._context.unit,s=i.getActiveSheet();if(!s)return;const a=n.unitId,l=n.subUnitId;let m;const u=s.getCell(n.row,n.col);if(u!=null&&u.s){const v=i.getStyles().get(u.s);v!=null&&v.n&&(m=v.n)}if(m||(m=this._numfmtService.getValue(a,l,n.row,n.col)),!m){this._hideAlert();return}if(c.isTextFormat(m.pattern)&&c.Tools.isDefine(u==null?void 0:u.v)&&c.isRealNum(u.v)){if((t=this._configService.getConfig(h.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY))!=null&&t.disableTextFormatAlert)return;const v=this._cellAlertManagerService.currentAlert.get(G),d=(r=v==null?void 0:v.alert)==null?void 0:r.location;if(d&&d.row===n.row&&d.col===n.col&&d.subUnitId===n.subUnitId&&d.unitId===n.unitId)return;this._cellAlertManagerService.showAlert({type:P.CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n,width:200,height:74,key:G});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(G)}};X=pe([U(1,c.Inject(P.HoverManagerService)),U(2,c.Inject(P.CellAlertManagerService)),U(3,c.Inject(c.LocaleService)),U(4,_.IZenZoneService),U(5,c.Inject(g.INumfmtService)),U(6,c.IConfigService)],X);const K={id:"sheet.operation.close.numfmt.panel",type:c.CommandType.OPERATION,handler:()=>!0},L={id:"sheet.operation.open.numfmt.panel",type:c.CommandType.OPERATION,handler:e=>(e.get(H).openPanel(),!0)};var ge=Object.getOwnPropertyDescriptor,Se=(e,t,r,n)=>{for(var i=n>1?void 0:n?ge(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},ye=(e,t)=>(r,n)=>t(r,n,e);const J=y.createContext([]);let F=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){const r=this._getKey(e);return this._localStorageService.getItem(r).then(n=>{n||this._localStorageService.setItem(r,t)})}markHabit(e,t){const r=this._getKey(e);this._localStorageService.getItem(r).then(n=>{if(n){const i=n.findIndex(s=>s===t);i>-1&&n.splice(i,1),n.unshift(t),this._localStorageService.setItem(r,n)}})}async getHabit(e,t){const r=this._getKey(e),n=await this._localStorageService.getItem(r);if(t&&n){const i=n.map((s,a,l)=>{const m=l.length;return{value:s,priority:m-a}});return t.sort((s,a)=>{var u,v;const l=((u=i.find(d=>d.value===s))==null?void 0:u.priority)||-1;return(((v=i.find(d=>d.value===a))==null?void 0:v.priority)||-1)-l})}return n||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};F=Se([ye(0,c.Inject(c.ILocalStorageService))],F);const ee="numfmtCurrency",_e=e=>{const t=_.useDependency(F),[r,n]=y.useState(h.currencySymbols);return y.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(ee,[...h.currencySymbols]).then(s=>{n(s),e&&e(s)})})},[]),{userHabitCurrency:r,mark:s=>{t.markHabit(ee,s)}}},Ce=()=>{const e=y.useRef([]),[t,r]=y.useState({});return y.useEffect(()=>{e.current.forEach(i=>{i()}),e.current=[]},[t]),i=>{e.current.push(i),r({})}},be=e=>!!h.getCurrencyType(e)&&e.startsWith("_("),Ie=e=>{const{defaultPattern:t,action:r,onChange:n}=e,[i,s]=y.useState(()=>h.getDecimalFromPattern(t||"",2)),a=y.useContext(J),[l,m]=y.useState(()=>h.getCurrencyType(t)||a[0]),u=y.useMemo(()=>a.map(C=>({label:C,value:C})),[]),d=_.useDependency(c.LocaleService).t;r.current=()=>h.setPatternDecimal(`_("${l}"* #,##0${i>0?".0":""}_)`,i);const p=C=>{m(C),n(h.setPatternDecimal(`_("${C}"* #,##0${i>0?".0":""}_)`,i))},S=C=>{const f=C||0;s(f),n(h.setPatternDecimal(`_("${l}"* #,##0${f>0?".0":""}_)`,f))};return o.jsxs("div",{children:[o.jsxs("div",{className:"univer-mt-4 univer-flex univer-justify-between",children:[o.jsxs("div",{className:"option",children:[o.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:d("sheet.numfmt.decimalLength")}),o.jsx("div",{className:"univer-mt-2 univer-w-32",children:o.jsx(N.InputNumber,{value:i,step:1,precision:0,max:20,min:0,onChange:S})})]}),o.jsxs("div",{className:"option",children:[o.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:d("sheet.numfmt.currencyType")}),o.jsx("div",{className:"univer-mt-2 univer-w-36",children:o.jsx(N.Select,{options:u,value:l,onChange:p})})]})]}),o.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:d("sheet.numfmt.accountingDes")})]})},xe=e=>!!h.getCurrencyType(e)&&!e.startsWith("_("),Ne=e=>{const r=_.useDependency(c.LocaleService).t,n=y.useContext(J),[i,s]=y.useState(()=>h.getCurrencyType(e.defaultPattern)||n[0]),[a,l]=y.useState(()=>h.getDecimalFromPattern(e.defaultPattern||"",2)),[m,u]=y.useState(()=>{var b;const f=h.getCurrencyFormatOptions(i);return((b=f.find(T=>c.isPatternEqualWithoutDecimal(T.value,e.defaultPattern)))==null?void 0:b.value)||f[0].value}),v=y.useMemo(()=>h.getCurrencyFormatOptions(i),[i]),d=y.useMemo(()=>n.map(f=>({label:f,value:f})),[n]);e.action.current=()=>h.setPatternDecimal(m,a);const p=f=>{if(f===void 0)return;s(f);const x=h.getCurrencyFormatOptions(f)[0].value;u(x),e.onChange(h.setPatternDecimal(x,a))},S=f=>{f!==void 0&&(u(f),e.onChange(h.setPatternDecimal(f,a)))},C=f=>{l(f||0),e.onChange(h.setPatternDecimal(m,f||0))};return o.jsxs("div",{children:[o.jsxs("div",{className:"univer-mt-4 univer-flex univer-justify-between",children:[o.jsxs("div",{className:"option",children:[o.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.decimalLength")}),o.jsx("div",{className:"univer-mt-2 univer-w-32",children:o.jsx(N.InputNumber,{value:a,max:20,min:0,onChange:C})})]}),o.jsxs("div",{className:"option",children:[o.jsx("div",{className:"univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.currencyType")}),o.jsx("div",{className:"univer-mt-2 univer-w-36",children:o.jsx(N.Select,{value:i,options:d,onChange:p})})]})]}),o.jsx("div",{className:"label univer-mt-4",children:r("sheet.numfmt.negType")}),o.jsx("div",{className:"univer-mt-2",children:o.jsx(N.SelectList,{value:m,options:v,onChange:S})}),o.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:r("sheet.numfmt.currencyDes")})]})};var E=function(){return E=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},E.apply(this,arguments)},Te=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r},ie=y.forwardRef(function(e,t){var r=e.icon,n=e.id,i=e.className,s=e.extend,a=Te(e,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(n," ").concat(i||"").trim(),m=y.useRef("_".concat(Me()));return se(r,"".concat(n),{defIds:r.defIds,idSuffix:m.current},E({ref:t,className:l},a),s)});function se(e,t,r,n,i){return y.createElement(e.tag,E(E({key:t},Ee(e,r,i)),n),(Pe(e,r).children||[]).map(function(s,a){return se(s,"".concat(t,"-").concat(e.tag,"-").concat(a),r,void 0,i)}))}function Ee(e,t,r){var n=E({},e.attrs);r!=null&&r.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=r.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(s){var a=s[0],l=s[1];a==="mask"&&typeof l=="string"&&(n[a]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var i=t.defIds;return!i||i.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(s){var a=s[0],l=s[1];typeof l=="string"&&(n[a]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function Pe(e,t){var r,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((r=e.children)===null||r===void 0)&&r.length)?E(E({},e),{children:e.children.map(function(i){return typeof i.attrs.id=="string"&&n&&n.includes(i.attrs.id)?E(E({},i),{attrs:E(E({},i.attrs),{id:i.attrs.id+t.idSuffix})}):i})}):e}function Me(){return Math.random().toString(36).substring(2,8)}ie.displayName="UniverIcon";var je={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ce=y.forwardRef(function(e,t){return y.createElement(ie,Object.assign({},e,{id:"check-mark-icon",ref:t,icon:je}))});ce.displayName="CheckMarkIcon";const Z="customFormat",Y="numfmt_custom_pattern";function De(e){const{defaultPattern:t,action:r,onChange:n}=e,i=_.useDependency(F),s=_.useDependency(c.ILocalStorageService),a=_.useDependency(c.LocaleService),[l,m]=y.useState(t);r.current=()=>(i.markHabit(Z,l),s.getItem(Y).then((S=[])=>{const C=[...new Set([l,...S||[]])].splice(0,10).filter(f=>!!f);s.setItem(Y,C)}),l);const[u,v]=y.useState([]);y.useEffect(()=>{s.getItem(Y).then(S=>{const C=[...h.CURRENCYFORMAT.map(f=>f.suffix("$")),...h.DATEFMTLISG.map(f=>f.suffix),...h.NUMBERFORMAT.map(f=>f.suffix)];C.push(...S||[]),i.addHabit(Z,[]).finally(()=>{i.getHabit(Z,C).then(f=>{v([...new Set(f)])})})})},[]);const d=S=>{m(S),n(S)},p=()=>{n(l)};return o.jsxs("div",{children:[o.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:a.t("sheet.numfmt.customFormat")}),o.jsx(N.Input,{placeholder:a.t("sheet.numfmt.customFormat"),onBlur:p,value:l,onChange:m,className:"univer-mt-2 univer-w-full"}),o.jsx("div",{className:N.clsx("univer-mt-2 univer-max-h-[400px] univer-overflow-auto univer-rounded-lg univer-p-2",N.borderClassName),children:u.map(S=>o.jsxs("div",{onClick:()=>d(S),className:"univer-flex univer-cursor-pointer univer-items-center univer-gap-1.5 univer-py-1.5 univer-text-sm",children:[o.jsx("div",{className:"univer-flex univer-w-4 univer-items-center univer-text-primary-600",children:l===S&&o.jsx(ce,{})}),o.jsx("div",{children:S})]},S))}),o.jsx("div",{className:"univer-mt-3 univer-text-sm univer-text-gray-600 dark:!univer-text-gray-200",children:a.t("sheet.numfmt.customFormatDes")})]})}const we=e=>{const t=c.numfmt.getFormatInfo(e);return h.getDateFormatOptions().map(r=>r.value).includes(e)||["date","datetime","time"].includes(t.type)};function Re(e){const{onChange:t,defaultPattern:r}=e,n=y.useMemo(h.getDateFormatOptions,[]),i=_.useDependency(c.LocaleService),[s,a]=y.useState(()=>{if(r){const m=n.find(u=>u.value===r);if(m)return m.value}return n[0].value});e.action.current=()=>s;const l=m=>{m!==void 0&&(a(m),t(m))};return o.jsxs("div",{children:[o.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:i.t("sheet.numfmt.dateType")}),o.jsx("div",{className:"univer-mt-2",children:o.jsx(N.SelectList,{value:s,options:n,onChange:l})}),o.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:i.t("sheet.numfmt.dateDes")})]})}const Oe=e=>!e,Ue=e=>{const r=_.useDependency(c.LocaleService).t;return e.action.current=()=>"",o.jsx("div",{children:o.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:r("sheet.numfmt.generalDes")})})},ke=e=>h.getNumberFormatOptions().some(t=>c.isPatternEqualWithoutDecimal(t.value,e));function $e(e){const t=_.useDependency(c.LocaleService),r=y.useMemo(h.getNumberFormatOptions,[]),[n,i]=y.useState(()=>h.getDecimalFromPattern(e.defaultPattern||"",0)),[s,a]=y.useState(()=>{const d=r.find(p=>c.isPatternEqualWithoutDecimal(p.value,e.defaultPattern||""));return(d==null?void 0:d.value)||r[0].value}),l=y.useMemo(()=>h.setPatternDecimal(s,Number(n||0)),[s,n]),m=y.useMemo(()=>!h.isPatternHasDecimal(s),[s]),u=d=>{i(d||0),e.onChange(h.setPatternDecimal(s,Number(d||0)))},v=d=>{d!==void 0&&(i(h.getDecimalFromPattern(d,0)),a(d),e.onChange(d))};return e.action.current=()=>l,o.jsxs("div",{children:[o.jsx("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:t.t("sheet.numfmt.decimalLength")}),o.jsx("div",{className:"univer-mt-2",children:o.jsx(N.InputNumber,{disabled:m,value:n,max:20,min:0,onChange:u})}),o.jsxs("div",{className:"univer-mt-4 univer-text-sm univer-text-gray-400",children:[" ",t.t("sheet.numfmt.negType")]}),o.jsx("div",{className:"univer-mt-2",children:o.jsx(N.SelectList,{onChange:v,options:r,value:s})}),o.jsx("div",{className:"univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})}const Le=e=>{const{defaultValue:t,defaultPattern:r,row:n,col:i}=e.value,s=_.useDependency(c.LocaleService),a=y.useRef(()=>""),l=s.t,m=Ce(),u=y.useMemo(()=>[{label:"sheet.numfmt.general",component:Ue},{label:"sheet.numfmt.accounting",component:Ie},{label:"sheet.numfmt.currency",component:Ne},{label:"sheet.numfmt.date",component:Re},{label:"sheet.numfmt.thousandthPercentile",component:$e},{label:"sheet.numfmt.customFormat",component:De}].map(I=>({...I,label:l(I.label)})),[]),[v,d]=y.useState(b),[p,S]=y.useState(()=>`${n}_${i}`),{mark:C,userHabitCurrency:f}=_e(()=>S(`${n}_${i}_userCurrency'`)),x=y.useMemo(()=>{var I;return(I=u.find(O=>O.label===v))==null?void 0:I.component},[v]);function b(){return[Oe,be,xe,we,ke].reduce((O,me,de)=>O||(me(r)?u[de].label:""),"")||u[0].label}const T=u.map(I=>({label:I.label,value:I.label})),j=I=>{d(I),m(()=>e.onChange({type:"change",value:a.current()||""}))},w=y.useCallback(I=>{e.onChange({type:"change",value:I})},[]),R=()=>{const I=a.current()||"",O=h.getCurrencyType(I);O&&C(O),e.onChange({type:"confirm",value:I})},k=()=>{e.onChange({type:"cancel",value:""})},q={onChange:w,defaultValue:t,defaultPattern:r,action:a};return y.useEffect(()=>{d(b()),S(`${n}_${i}`)},[n,i]),o.jsxs("div",{className:N.clsx("univer-flex univer-h-full univer-flex-col univer-justify-between univer-overflow-y-auto univer-pb-5",N.scrollbarClassName),children:[o.jsxs("div",{children:[o.jsx("div",{className:"univer-mt-3.5 univer-text-sm univer-text-gray-400",children:l("sheet.numfmt.numfmtType")}),o.jsx("div",{className:"univer-mt-2",children:o.jsx(N.Select,{className:"univer-w-full",value:v,options:T,onChange:j})}),o.jsx("div",{children:x&&o.jsx(J.Provider,{value:f,children:y.createElement(x,{...q,key:p})})})]}),o.jsxs("div",{className:"univer-mb-5 univer-mt-3.5 univer-flex univer-justify-end",children:[o.jsx(N.Button,{onClick:k,className:"univer-mr-3",children:l("sheet.numfmt.cancel")}),o.jsx(N.Button,{variant:"primary",onClick:R,children:l("sheet.numfmt.confirm")})]})]})};var Fe=Object.getOwnPropertyDescriptor,He=(e,t,r,n)=>{for(var i=n>1?void 0:n?Fe(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},M=(e,t)=>(r,n)=>t(r,n,e);const te="SHEET_NUMFMT_PANEL";let H=class extends c.Disposable{constructor(t,r,n,i,s,a,l,m,u,v,d){super();A(this,"_previewPattern","");A(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=r,this._univerInstanceService=n,this._commandService=i,this._selectionManagerService=s,this._renderManagerService=a,this._numfmtService=l,this._componentManager=m,this._sidebarService=u,this._localeService=v,this._sheetsNumfmtCellContentController=d,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener(),this._initNumfmtLocalChange()}_initNumfmtLocalChange(){this.disposeWithMe(D.merge(this._sheetsNumfmtCellContentController.locale$,this._localeService.currentLocale$).subscribe(()=>{this._forceUpdate()}))}openPanel(){var x;const t=this._sidebarService,r=this._selectionManagerService,n=this._commandService,i=this._univerInstanceService,s=this._numfmtService,a=this._localeService,m=(((x=r.getCurrentSelections())==null?void 0:x.map(b=>b.range))||[])[0];if(!m)return!1;const u=i.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),v=u.getActiveSheet();if(!v)return!1;const d=v.getCellRaw(m.startRow,m.startColumn),p=s.getValue(u.getUnitId(),v.getSheetId(),m.startRow,m.startColumn);let S="";p&&(S=p.pattern);const C=(d==null?void 0:d.t)===c.CellValueType.NUMBER?d.v:12345678,f={onChange:b=>{var T;if(b.type==="change")this._previewPattern=b.value,this._forceUpdate();else if(b.type==="confirm"){const j=((T=r.getCurrentSelections())==null?void 0:T.map(k=>k.range))||[],w={values:[]},R=h.getPatternType(b.value);j.forEach(k=>{c.Range.foreach(k,(q,I)=>{w.values.push({row:q,col:I,pattern:b.value,type:R})})}),n.executeCommand(h.SetNumfmtCommand.id,w),t.close()}else b.type==="cancel"&&t.close()},value:{defaultPattern:S,defaultValue:C,row:m.startRow,col:m.startColumn}};return this._sidebarDisposable=t.open({header:{title:a.t("sheet.numfmt.title")},children:{label:te,...f},onClose:()=>{this._forceUpdate(),n.executeCommand(K.id)}}),!0}_forceUpdate(t){var n;const r=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId());r==null||r.with(P.SheetSkeletonManagerService).reCalculate(),(n=r==null?void 0:r.mainComponent)==null||n.makeDirty()}_initCommands(){[L,K].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this.disposeWithMe(this._componentManager.register(te,Le))}_initRealTimeRenderingInterceptor(){const t=new D.Observable(n=>{this._commandService.onCommandExecuted(i=>{i.id===L.id&&n.next(!0),i.id===K.id&&n.next(!1)})}),r=D.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(W.map(n=>n?n.map(i=>i.range):[]))]);this.disposeWithMe(c.toDisposable(r.pipe(W.switchMap(([n,i])=>new D.Observable(s=>{const a=new c.DisposableCollection;return n&&i.length&&s.next({selectionRanges:i,disposableCollection:a}),()=>{a.dispose()}})),W.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:n,selectionRanges:i})=>{var a,l;const s=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET);this.openPanel(),n.add(this._sheetInterceptorService.intercept(g.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:c.InterceptorEffectEnum.Value|c.InterceptorEffectEnum.Style,handler:(m,u,v)=>{var C;const{row:d,col:p}=u,S=v(m)||{};if(i.find(f=>f.startColumn<=p&&f.endColumn>=p&&f.startRow<=d&&f.endRow>=d)){const f=u.worksheet.getCellRaw(d,p),x=f==null?void 0:f.v,b=f==null?void 0:f.t;if(x==null||b!==c.CellValueType.NUMBER||this._previewPattern===null)return S;const T=h.getPatternPreviewIgnoreGeneral(this._previewPattern,x,this._sheetsNumfmtCellContentController.locale);if(T.color){const j=(C=this._themeService.getColorFromTheme(`${T.color}.500`))!=null?C:T.color;return{...S,v:T.result,t:c.CellValueType.STRING,s:{cl:{rgb:j}}}}return{...S,v:T.result,t:c.CellValueType.STRING}}return S}})),(l=(a=this._renderManagerService.getRenderById(s.getUnitId()))==null?void 0:a.mainComponent)==null||l.makeDirty()})))}_commandExecutedListener(){const t=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id];this.disposeWithMe(new D.Observable(r=>{const n=this._commandService.onCommandExecuted(i=>{if(t.includes(i.id)){const s=i.params;r.next(s.unitId)}});return()=>n.dispose()}).pipe(W.debounceTime(16)).subscribe(r=>this._forceUpdate(r)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var r;t||((r=this._sidebarDisposable)==null||r.dispose(),this._sidebarDisposable=null)})}};H=He([M(0,c.Inject(g.SheetInterceptorService)),M(1,c.Inject(c.ThemeService)),M(2,c.IUniverInstanceService),M(3,c.ICommandService),M(4,c.Inject(g.SheetsSelectionsService)),M(5,re.IRenderManagerService),M(6,g.INumfmtService),M(7,c.Inject(_.ComponentManager)),M(8,_.ISidebarService),M(9,c.Inject(c.LocaleService)),M(10,c.Inject(h.SheetsNumfmtCellContentController))],H);var Ae=Object.getOwnPropertyDescriptor,We=(e,t,r,n)=>{for(var i=n>1?void 0:n?Ae(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},$=(e,t)=>(r,n)=>t(r,n,e);const Be=()=>{let e=[];return{add:(i,s,a,l,m)=>e.push({unitId:i,subUnitId:s,row:a,col:l,value:m}),getEffects:()=>e,clean:()=>{e=[]}}};let B=class extends c.Disposable{constructor(t,r,n,i,s){super();A(this,"_collectEffectMutation",Be());this._sheetInterceptorService=t,this._numfmtService=r,this._univerInstanceService=n,this._injector=i,this._editorBridgeService=s,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.BEFORE_CELL_EDIT,{handler:(t,r,n)=>{const i=r.row,s=r.col,a=this._numfmtService.getValue(r.unitId,r.subUnitId,i,s);if(a)switch(h.getPatternType(a.pattern)){case"scientific":case"currency":case"grouped":case"number":{const m=r.worksheet.getCellRaw(i,s);return n&&n(m)}case"percent":case"date":case"time":case"datetime":default:return n&&n(t)}return n(t)}})))}_initInterceptorEditorEnd(){this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.AFTER_CELL_EDIT,{handler:(t,r,n)=>{var m,u,v;this._collectEffectMutation.clean();const i=this._numfmtService.getValue(r.unitId,r.subUnitId,r.row,r.col);if(!(t!=null&&t.v)&&!(t!=null&&t.p)||c.isTextFormat(i==null?void 0:i.pattern)||t.t===c.CellValueType.FORCE_STRING)return n(t);const s=(m=t.p)==null?void 0:m.body,a=(v=(u=t==null?void 0:t.p)==null?void 0:u.body)!=null&&v.dataStream?t.p.body.dataStream.replace(/\r\n$/,""):String(t.v),l=c.numfmt.parseDate(a)||c.numfmt.parseTime(a)||c.numfmt.parseNumber(a);if(s)if(Ve(s)){const{dataStream:d}=s,p=d.replace(/\r\n$/,""),S=Number(p);if(Number.isNaN(S)&&!l)return n(t)}else return n(t);if(l){if(!l.z&&c.willLoseNumericPrecision(a))return n({...t,p:void 0,v:a,t:c.CellValueType.FORCE_STRING});l.z&&this._collectEffectMutation.add(r.unitId,r.subUnitId,r.row,r.col,{pattern:l.z});const d=Number(l.v);return n({...t,p:void 0,v:d,t:c.CellValueType.NUMBER})}return n(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(r){var n;switch(r.id){case g.SetRangeValuesCommand.id:{const i=t._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),s=i.getUnitId(),a=(n=i.getActiveSheet())==null?void 0:n.getSheetId();if(!a)return{redos:[],undos:[]};const l=t._collectEffectMutation.getEffects();if(t._collectEffectMutation.clean(),!l.length)return{redos:[],undos:[]};const m=l.filter(p=>{var S;return!!((S=p.value)!=null&&S.pattern)}).map(p=>({row:p.row,col:p.col,pattern:p.value.pattern})),u=l.filter(p=>{var S;return!((S=p.value)!=null&&S.pattern)}).map(p=>({startRow:p.row,endColumn:p.col,startColumn:p.col,endRow:p.row})),v=[],d=[];if(m.length){const p={id:g.SetNumfmtMutation.id,params:g.transformCellsToRange(s,a,m)};v.push(p),d.push(...g.factorySetNumfmtUndoMutation(t._injector,p.params))}if(u.length){const p={id:g.RemoveNumfmtMutation.id,params:{unitId:s,subUnitId:a,ranges:u}};v.push(p),d.push(...g.factoryRemoveNumfmtUndoMutation(t._injector,p.params))}return{redos:v,undos:d.reverse()}}}return{redos:[],undos:[]}}}))}};B=We([$(0,c.Inject(g.SheetInterceptorService)),$(1,c.Inject(g.INumfmtService)),$(2,c.Inject(c.IUniverInstanceService)),$(3,c.Inject(c.Injector)),$(4,c.Optional(P.IEditorBridgeService))],B);function Ve(e){const{textRuns:t=[],paragraphs:r=[],customRanges:n,customBlocks:i=[]}=e,s=["va"];return!(t.some(a=>!!(a.ts&&Object.keys(a.ts).some(m=>s.includes(m))))||r.some(a=>a.bullet)||r.length>=2||n!=null&&n.length||i.length>0)}const ae=e=>[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:c.DEFAULT_TEXT_FORMAT_EXCEL},"|",{label:"sheet.numfmt.number",pattern:"0"},{label:"sheet.numfmt.percent",pattern:"0.00%"},{label:"sheet.numfmt.scientific",pattern:"0.00E+00"},"|",{label:"sheet.numfmt.accounting",pattern:`"${e}" #,##0.00_);[Red]("${e}"#,##0.00)`},{label:"sheet.numfmt.financialValue",pattern:"#,##0.00;[Red]#,##0.00"},{label:"sheet.numfmt.currency",pattern:`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`},{label:"sheet.numfmt.roundingCurrency",pattern:`"${e}"#,##0;[Red]"${e}"#,##0`},"|",{label:"sheet.numfmt.date",pattern:"yyyy-mm-dd;@"},{label:"sheet.numfmt.time",pattern:'am/pm h":"mm":"ss'},{label:"sheet.numfmt.dateTime",pattern:"yyyy-m-d am/pm h:mm"},{label:"sheet.numfmt.timeDuration",pattern:"h:mm:ss"},"|",{label:"sheet.numfmt.moreFmt",pattern:""}],qe=e=>({icon:new D.Observable(t=>{const r=e.get(c.LocaleService);return t.next(h.getCurrencySymbolIconByLocale(r.getCurrentLocale()).icon),r.localeChanged$.subscribe(()=>{t.next(h.getCurrencySymbolIconByLocale(r.getCurrentLocale()).icon)})}),id:h.SetCurrencyCommand.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ge=e=>({icon:"AddDigitsIcon",id:h.AddDecimalCommand.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ke=e=>({icon:"ReduceDigitsIcon",id:h.SubtractDecimalCommand.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ze=e=>({icon:"PercentIcon",id:h.SetPercentCommand.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:_.MenuItemType.BUTTON,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),Ye=e=>{const t=e.get(c.IUniverInstanceService),r=e.get(c.ICommandService),n=e.get(c.LocaleService),i=e.get(g.SheetsSelectionsService),s=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id],a=P.deriveStateFromActiveSheet$(t,"",({workbook:l,worksheet:m})=>new D.Observable(u=>D.merge(i.selectionMoveEnd$,c.fromCallback(r.onCommandExecuted.bind(r)).pipe(D.filter(([v])=>s.includes(v.id)))).subscribe(()=>{var d,p;const v=i.getCurrentSelections();if(v&&v[0]){const S=v[0].range,C=S.startRow,f=S.startColumn,x=(p=l.getStyles().get((d=m.getCell(C,f))==null?void 0:d.s))==null?void 0:p.n,b=x==null?void 0:x.pattern,T=h.getCurrencySymbolByLocale(n.getCurrentLocale());let j=n.t("sheet.numfmt.general");if(c.isDefaultFormat(b)){u.next(j);return}if(b){const w=ae(T).filter(R=>typeof R=="object"&&R.pattern).find(R=>c.isPatternEqualWithoutDecimal(b,R.pattern));w&&typeof w=="object"&&w.pattern?j=n.t(w.label):j=n.t("sheet.numfmt.moreFmt")}u.next(j)}})));return{label:oe,id:L.id,tooltip:"sheet.numfmt.title",type:_.MenuItemType.SELECTOR,slot:!0,selections:[{label:{name:le,hoverable:!1,selectable:!1}}],value$:a,hidden$:_.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(e,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetSetCellStylePermission,g.WorksheetEditPermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}},oe="sheet.numfmt.moreNumfmtType",le="sheet.numfmt.moreNumfmtType.options",ze=e=>{const{value:t}=e,r=_.useDependency(c.LocaleService),n=t!=null?t:r.t("sheet.numfmt.general");return o.jsx("span",{className:"univer-text-sm",children:n})},Xe=()=>{const e=_.useDependency(c.ICommandService),t=_.useDependency(c.LocaleService),r=_.useDependency(_.ILayoutService),n=_.useDependency(h.SheetsNumfmtCellContentController),i=_.useDependency(g.SheetsSelectionsService),s=u=>{const v=i.getCurrentLastSelection();if(!v)return;const d=v.range,p=[];c.Range.foreach(d,(S,C)=>{u?p.push({row:S,col:C,pattern:u,type:h.getPatternType(u)}):p.push({row:S,col:C})}),e.executeCommand(h.SetNumfmtCommand.id,{values:p}),r.focus()},a=y.useMemo(()=>{const u=h.localeCurrencySymbolMap.get(t.getCurrentLocale());return ae(u)},[t]),l=u=>{if(u===0)s(null);else if(u===a.length-1)e.executeCommand(L.id),r.focus();else{const v=a[u];v.pattern&&s(v.pattern)}},m=1220;return o.jsx("div",{className:"univer-grid univer-gap-1 univer-p-1.5",children:a.map((u,v)=>u==="|"?o.jsx(N.Separator,{},v):o.jsxs("div",{className:"univer-flex univer-h-7 univer-items-center univer-justify-between univer-gap-6 univer-rounded univer-px-2 univer-text-sm hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700",onClick:()=>{l(v)},children:[o.jsx("span",{children:t.t(u.label)}),o.jsx("span",{className:"univer-text-xs univer-text-gray-500",children:u.pattern?h.getPatternPreview(u.pattern||"",m,n.locale).result.trim():""})]},v))})},Je={[_.RibbonDataGroup.FORMULAS]:{[h.SetCurrencyCommand.id]:{order:0,menuItemFactory:qe},[h.AddDecimalCommand.id]:{order:1,menuItemFactory:Ge},[h.SubtractDecimalCommand.id]:{order:2,menuItemFactory:Ke},[h.SetPercentCommand.id]:{order:3,menuItemFactory:Ze},[L.id]:{order:4,menuItemFactory:Ye}}};var Qe=Object.getOwnPropertyDescriptor,et=(e,t,r,n)=>{for(var i=n>1?void 0:n?Qe(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},ne=(e,t)=>(r,n)=>t(r,n,e);let V=class extends c.Disposable{constructor(e,t){super(),this._componentManager=e,this._menuManagerService=t,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(Je),[[oe,ze],[le,Xe]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};V=et([ne(0,c.Inject(_.ComponentManager)),ne(1,_.IMenuManagerService)],V);var tt=Object.defineProperty,nt=Object.getOwnPropertyDescriptor,rt=(e,t,r)=>t in e?tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,it=(e,t,r,n)=>{for(var i=n>1?void 0:n?nt(t,r):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=a(i)||i);return i},z=(e,t)=>(r,n)=>t(r,n,e),ue=(e,t,r)=>rt(e,typeof t!="symbol"?t+"":t,r);const st="SHEET_NUMFMT_UI_PLUGIN";exports.UniverSheetsNumfmtUIPlugin=class extends c.Plugin{constructor(t=Q,r,n,i){super(),this._config=t,this._injector=r,this._configService=n,this._renderManagerService=i;const{menu:s,...a}=c.merge({},Q,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig("sheets-numfmt-ui.config",a)}onStarting(){c.registerDependencies(this._injector,[[H],[B],[F],[V]])}onRendered(){this._registerRenderModules(),c.touchDependencies(this._injector,[[H],[B],[V]])}_registerRenderModules(){[[X]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,r))})}};ue(exports.UniverSheetsNumfmtUIPlugin,"pluginName",st);ue(exports.UniverSheetsNumfmtUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtUIPlugin=it([c.DependentOn(P.UniverSheetsUIPlugin,h.UniverSheetsNumfmtPlugin),z(1,c.Inject(c.Injector)),z(2,c.IConfigService),z(3,re.IRenderManagerService)],exports.UniverSheetsNumfmtUIPlugin);