@univerjs/sheets-numfmt 0.1.17 → 0.2.1

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,4 +1,4 @@
1
- "use strict";var Re=Object.defineProperty;var Oe=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var H=(e,t,n)=>Oe(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),d=require("@univerjs/sheets"),C=require("@wendellhu/redi"),j=require("@univerjs/sheets-ui"),O=require("rxjs"),x=require("@univerjs/engine-numfmt"),de=require("@univerjs/engine-render"),I=require("@univerjs/ui"),k=require("rxjs/operators"),y=require("react"),E=require("@univerjs/design"),N=require("@wendellhu/redi/react-bindings"),$={id:"sheet.command.numfmt.set.numfmt",type:c.CommandType.COMMAND,handler:(e,t)=>{if(!t)return!1;const n=e.get(c.ICommandService),r=e.get(c.IUniverInstanceService),s=e.get(c.IUndoRedoService),i=d.getSheetCommandTarget(r,t);if(!i)return!1;const{unitId:o,subUnitId:a}=i,l=t.values.filter(v=>!!v.pattern),p=t.values.filter(v=>!v.pattern),f=d.transformCellsToRange(o,a,l),u={unitId:o,subUnitId:a,ranges:p.map(v=>({startColumn:v.col,startRow:v.row,endColumn:v.col,endRow:v.row}))},m=[],S=[];if(l.length){Object.keys(f.values).forEach(g=>{const b=f.values[g];b.ranges=d.rangeMerge(b.ranges)}),m.push({id:d.SetNumfmtMutation.id,params:f});const v=d.factorySetNumfmtUndoMutation(e,f);S.push(...v)}if(p.length){u.ranges=d.rangeMerge(u.ranges),m.push({id:d.RemoveNumfmtMutation.id,params:u});const v=d.factoryRemoveNumfmtUndoMutation(e,u);S.push(...v)}const _=c.sequenceExecute(m,n).result;return _&&s.pushUndoRedo({unitID:o,undoMutations:S,redoMutations:m}),_}},oe="SHEET_NUMFMT_PLUGIN",K=e=>x.getInfo(e).type||"unknown",Z=(e,t,n)=>{const r=x.getInfo(e),s=n===c.LocaleType.ZH_CN?"zh-CN":"en",i=r._partitions[1],o=x.format(e,t,{locale:s});return t<0?{result:o,color:i.color}:{result:o}};var je=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,$e=(e,t,n,r)=>{for(var s=r>1?void 0:r?xe(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&je(t,n,s),s},w=(e,t)=>(n,r)=>t(n,r,e);let W=class extends c.Disposable{constructor(e,t,n,r,s,i){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=s,this._localeService=i,this._initInterceptorCellContent()}_initInterceptorCellContent(){const e=new c.ObjectMatrix;this.disposeWithMe(this._sheetInterceptorService.intercept(d.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(t,n,r)=>{const s=n.unitId,i=n.subUnitId,o=this._numfmtService.getValue(s,i,n.row,n.col);if(!o)return r(t);const a=t;if(!a||a.t!==c.CellValueType.NUMBER)return r(t);let l="";const p=e.getValue(n.row,n.col);if(p&&p.parameters===a.v)return r({...t,...p.result});const f=Z(o.pattern,Number(a.v),this._localeService.getCurrentLocale());if(l=f.result,!l)return r(t);const u={v:l};if(f.color){const m=this._themeService.getCurrentTheme()[`${f.color}500`];m&&(u.interceptorStyle={cl:{rgb:m}})}return e.setValue(n.row,n.col,{result:u,parameters:a.v}),r({...t,...u})},priority:10})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===d.SetNumfmtMutation.id){const n=t.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(i=>{c.Range.foreach(i,(o,a)=>{e.realDeleteValue(o,a)})})})}else if(t.id===d.SetRangeValuesMutation.id){const n=t.params;new c.ObjectMatrix(n.cellValue).forValue((r,s)=>{e.realDeleteValue(r,s)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(t=>{var n;return(n=t==null?void 0:t.activeSheet$)!=null?n:O.of(null)}),O.skip(1)).subscribe(()=>e.reset()))}};W=$e([c.OnLifecycle(c.LifecycleStages.Rendered,W),w(0,c.IUniverInstanceService),w(1,C.Inject(d.SheetInterceptorService)),w(2,C.Inject(c.ThemeService)),w(3,C.Inject(c.ICommandService)),w(4,C.Inject(d.INumfmtService)),w(5,C.Inject(c.LocaleService))],W);const D=(e,t=0)=>{var r;return e&&(r=x.getInfo(e).maxDecimals)!=null?r:t},Q=(e,t)=>{if(e&&!t||!e&&t)return!1;const n=p=>p.reduce((f,u)=>{if(f.isEnd)return f;const m=u.value||u.num;return u.type==="point"?(f.isEnd=!0,f):{...f,result:f.result+m}},{isEnd:!1,result:""}).result,r=x.getInfo(e)._partitions,s=x.getInfo(t)._partitions,i=n(r[0].tokens),o=n(s[0].tokens),a=n(r[1].tokens),l=n(s[1].tokens);return i===o&&a===l&&r[1].color===s[1].color},ue=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),P=(e,t)=>e.split(";").map(r=>/\.0?/.test(r)?r.replace(/\.0*/g,`${t>0?".":""}${ue(Number(t||0))}`):/0([^0]?)|0$/.test(r)?r.replace(/0([^0]+)|0$/,`0${t>0?".":""}${ue(Number(t||0))}$1`):r).join(";"),De=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),fe={id:"sheet.command.numfmt.add.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SelectionManagerService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getSelections();if(!i||!i.length)return!1;const o=d.getSheetCommandTarget(s);if(!o)return!1;const{unitId:a,subUnitId:l}=o;let p=0;i.forEach(S=>{c.Range.foreach(S.range,(_,v)=>{const g=r.getValue(a,l,_,v);if(!g)return;const b=D(g.pattern);p=b>p?b:p})});const f=p+1,u=P(`0${f>0?".0":""}`,f),m=[];return i.forEach(S=>{c.Range.foreach(S.range,(_,v)=>{const g=r.getValue(a,l,_,v);if(!g)m.push({row:_,col:v,pattern:u});else{const b=D(g.pattern),T=P(g.pattern,b+1);T!==g.pattern&&m.push({row:_,col:v,pattern:T})}})}),m.length?await t.executeCommand($.id,{values:m}):!1}},Ue=[{label:"1930-08-05",suffix:"yyyy-MM-dd"},{label:"1930/08/05",suffix:"yyyy/MM/dd"},{label:"1930年08月05日",suffix:'yyyy"年"MM"月"dd"日"'},{label:"08-05",suffix:"MM-dd"},{label:"8月5日",suffix:'M"月"d"日"'},{label:"13:30:30",suffix:"h:mm:ss"},{label:"13:30",suffix:"h:mm"},{label:"下午01:30",suffix:"A/P hh:mm"},{label:"下午1:30",suffix:"A/P h:mm"},{label:"下午1:30:30",suffix:"A/P h:mm:ss"},{label:"08-05 下午 01:30",suffix:"MM-dd A/P hh:mm"}],we=[{label:"(1,235)",suffix:"#,##0_);(#,##0)"},{label:"(1,235) ",suffix:"#,##0_);[Red](#,##0)",color:"red"},{label:"1,234.56",suffix:"#,##0.00_);#,##0.00"},{label:"1,234.56",suffix:"#,##0.00_);[Red]#,##0.00",color:"red"},{label:"-1,234.56",suffix:"#,##0.00_);-#,##0.00"},{label:"-1,234.56",suffix:"#,##0.00_);[Red]-#,##0.00",color:"red"}],he=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:"red"},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:"red"},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:"red"}],pe={id:"sheet.command.numfmt.set.currency",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SelectionManagerService).getSelections();if(!r||!r.length)return!1;const s=[],i=he[0].suffix("¥");return r.forEach(a=>{c.Range.foreach(a.range,(l,p)=>{s.push({row:l,col:p,pattern:i,type:"currency"})})}),await t.executeCommand($.id,{values:s})}},ve={id:"sheet.command.numfmt.subtract.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SelectionManagerService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getSelections();if(!i||!i.length)return!1;const o=d.getSheetCommandTarget(s);if(!o)return!1;const{unitId:a,subUnitId:l}=o;let p=0;i.forEach(_=>{c.Range.foreach(_.range,(v,g)=>{const b=r.getValue(a,l,v,g);if(!b)return;const T=D(b.pattern);p=T>p?T:p})});const f=p-1,u=P(`0${f>0?".0":"."}`,f),m=[];return i.forEach(_=>{c.Range.foreach(_.range,(v,g)=>{const b=r.getValue(a,l,v,g);if(!b)m.push({row:v,col:g,pattern:u});else{const T=D(b.pattern);m.push({row:v,col:g,pattern:P(b.pattern,T-1)})}})}),await t.executeCommand($.id,{values:m})}},re={id:"sheet.operation.close.numfmt.panel",type:c.CommandType.OPERATION,handler:()=>!0},ae=C.createIdentifier("INumfmtController");c.runOnLifecycle(c.LifecycleStages.Rendered,ae);const Y={id:"sheet.operation.open.numfmt.panel",type:c.CommandType.OPERATION,handler:e=>(e.get(ae).openPanel(),!0)};var Se={exports:{}},X={};/**
1
+ "use strict";var Re=Object.defineProperty;var Oe=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var k=(e,t,n)=>Oe(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),C=require("@wendellhu/redi"),d=require("@univerjs/sheets"),j=require("@univerjs/sheets-ui"),O=require("rxjs"),x=require("@univerjs/engine-numfmt"),ve=require("@univerjs/engine-render"),I=require("@univerjs/ui"),W=require("rxjs/operators"),y=require("react"),E=require("@univerjs/design"),N=require("@wendellhu/redi/react-bindings"),oe="SHEET_NUMFMT_PLUGIN",J=e=>x.getInfo(e).type||"unknown",Q=(e,t,n)=>{const r=x.getInfo(e),s=n===c.LocaleType.ZH_CN?"zh-CN":"en",i=r._partitions[1],o=x.format(e,t,{locale:s});return t<0?{result:o,color:i.color}:{result:o}};var je=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,De=(e,t,n,r)=>{for(var s=r>1?void 0:r?xe(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&je(t,n,s),s},w=(e,t)=>(n,r)=>t(n,r,e);let F=class extends c.Disposable{constructor(e,t,n,r,s,i){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=s,this._localeService=i,this._initInterceptorCellContent()}_initInterceptorCellContent(){const e=new c.ObjectMatrix;this.disposeWithMe(this._sheetInterceptorService.intercept(d.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(t,n,r)=>{const s=n.unitId,i=n.subUnitId,o=this._numfmtService.getValue(s,i,n.row,n.col);if(!o)return r(t);const a=t;if(!a||a.t!==c.CellValueType.NUMBER)return r(t);let l="";const p=e.getValue(n.row,n.col);if(p&&p.parameters===a.v)return r({...t,...p.result});const f=Q(o.pattern,Number(a.v),this._localeService.getCurrentLocale());if(l=f.result,!l)return r(t);const u={v:l};if(f.color){const m=this._themeService.getCurrentTheme()[`${f.color}500`];m&&(u.interceptorStyle={cl:{rgb:m}})}return e.setValue(n.row,n.col,{result:u,parameters:a.v}),r({...t,...u})},priority:10})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===d.SetNumfmtMutation.id){const n=t.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(i=>{c.Range.foreach(i,(o,a)=>{e.realDeleteValue(o,a)})})})}else if(t.id===d.SetRangeValuesMutation.id){const n=t.params;new c.ObjectMatrix(n.cellValue).forValue((r,s)=>{e.realDeleteValue(r,s)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(t=>{var n;return(n=t==null?void 0:t.activeSheet$)!=null?n:O.of(null)}),O.skip(1)).subscribe(()=>e.reset()))}};F=De([c.OnLifecycle(c.LifecycleStages.Rendered,F),w(0,c.IUniverInstanceService),w(1,C.Inject(d.SheetInterceptorService)),w(2,C.Inject(c.ThemeService)),w(3,C.Inject(c.ICommandService)),w(4,C.Inject(d.INumfmtService)),w(5,C.Inject(c.LocaleService))],F);const D=(e,t=0)=>{var r;return e&&(r=x.getInfo(e).maxDecimals)!=null?r:t},X=(e,t)=>{if(e&&!t||!e&&t)return!1;const n=p=>p.reduce((f,u)=>{if(f.isEnd)return f;const m=u.value||u.num;return u.type==="point"?(f.isEnd=!0,f):{...f,result:f.result+m}},{isEnd:!1,result:""}).result,r=x.getInfo(e)._partitions,s=x.getInfo(t)._partitions,i=n(r[0].tokens),o=n(s[0].tokens),a=n(r[1].tokens),l=n(s[1].tokens);return i===o&&a===l&&r[1].color===s[1].color},he=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),P=(e,t)=>e.split(";").map(r=>/\.0?/.test(r)?r.replace(/\.0*/g,`${t>0?".":""}${he(Number(t||0))}`):/0([^0]?)|0$/.test(r)?r.replace(/0([^0]+)|0$/,`0${t>0?".":""}${he(Number(t||0))}$1`):r).join(";"),$e=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),$={id:"sheet.command.numfmt.set.numfmt",type:c.CommandType.COMMAND,handler:(e,t)=>{if(!t)return!1;const n=e.get(c.ICommandService),r=e.get(c.IUniverInstanceService),s=e.get(c.IUndoRedoService),i=d.getSheetCommandTarget(r,t);if(!i)return!1;const{unitId:o,subUnitId:a}=i,l=t.values.filter(v=>!!v.pattern),p=t.values.filter(v=>!v.pattern),f=d.transformCellsToRange(o,a,l),u={unitId:o,subUnitId:a,ranges:p.map(v=>({startColumn:v.col,startRow:v.row,endColumn:v.col,endRow:v.row}))},m=[],S=[];if(l.length){Object.keys(f.values).forEach(g=>{const b=f.values[g];b.ranges=d.rangeMerge(b.ranges)}),m.push({id:d.SetNumfmtMutation.id,params:f});const v=d.factorySetNumfmtUndoMutation(e,f);S.push(...v)}if(p.length){u.ranges=d.rangeMerge(u.ranges),m.push({id:d.RemoveNumfmtMutation.id,params:u});const v=d.factoryRemoveNumfmtUndoMutation(e,u);S.push(...v)}const _=c.sequenceExecute(m,n).result;return _&&s.pushUndoRedo({unitID:o,undoMutations:S,redoMutations:m}),_}},ae={id:"sheet.command.numfmt.add.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SelectionManagerService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getSelections();if(!i||!i.length)return!1;const o=d.getSheetCommandTarget(s);if(!o)return!1;const{unitId:a,subUnitId:l}=o;let p=0;i.forEach(S=>{c.Range.foreach(S.range,(_,v)=>{const g=r.getValue(a,l,_,v);if(!g)return;const b=D(g.pattern);p=b>p?b:p})});const f=p+1,u=P(`0${f>0?".0":""}`,f),m=[];return i.forEach(S=>{c.Range.foreach(S.range,(_,v)=>{const g=r.getValue(a,l,_,v);if(!g)m.push({row:_,col:v,pattern:u});else{const b=D(g.pattern),T=P(g.pattern,b+1);T!==g.pattern&&m.push({row:_,col:v,pattern:T})}})}),m.length?await t.executeCommand($.id,{values:m}):!1}},Ue=[{label:"1930-08-05",suffix:"yyyy-MM-dd"},{label:"1930/08/05",suffix:"yyyy/MM/dd"},{label:"1930年08月05日",suffix:'yyyy"年"MM"月"dd"日"'},{label:"08-05",suffix:"MM-dd"},{label:"8月5日",suffix:'M"月"d"日"'},{label:"13:30:30",suffix:"h:mm:ss"},{label:"13:30",suffix:"h:mm"},{label:"下午01:30",suffix:"A/P hh:mm"},{label:"下午1:30",suffix:"A/P h:mm"},{label:"下午1:30:30",suffix:"A/P h:mm:ss"},{label:"08-05 下午 01:30",suffix:"MM-dd A/P hh:mm"}],we=[{label:"(1,235)",suffix:"#,##0_);(#,##0)"},{label:"(1,235) ",suffix:"#,##0_);[Red](#,##0)",color:"red"},{label:"1,234.56",suffix:"#,##0.00_);#,##0.00"},{label:"1,234.56",suffix:"#,##0.00_);[Red]#,##0.00",color:"red"},{label:"-1,234.56",suffix:"#,##0.00_);-#,##0.00"},{label:"-1,234.56",suffix:"#,##0.00_);[Red]-#,##0.00",color:"red"}],Se=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:"red"},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:"red"},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:"red"}],le={id:"sheet.command.numfmt.set.currency",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SelectionManagerService).getSelections();if(!r||!r.length)return!1;const s=[],i=Se[0].suffix("¥");return r.forEach(a=>{c.Range.foreach(a.range,(l,p)=>{s.push({row:l,col:p,pattern:i,type:"currency"})})}),await t.executeCommand($.id,{values:s})}},ue={id:"sheet.command.numfmt.subtract.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SelectionManagerService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getSelections();if(!i||!i.length)return!1;const o=d.getSheetCommandTarget(s);if(!o)return!1;const{unitId:a,subUnitId:l}=o;let p=0;i.forEach(_=>{c.Range.foreach(_.range,(v,g)=>{const b=r.getValue(a,l,v,g);if(!b)return;const T=D(b.pattern);p=T>p?T:p})});const f=p-1,u=P(`0${f>0?".0":"."}`,f),m=[];return i.forEach(_=>{c.Range.foreach(_.range,(v,g)=>{const b=r.getValue(a,l,v,g);if(!b)m.push({row:v,col:g,pattern:u});else{const T=D(b.pattern);m.push({row:v,col:g,pattern:P(b.pattern,T-1)})}})}),await t.executeCommand($.id,{values:m})}},q={id:"sheet.operation.close.numfmt.panel",type:c.CommandType.OPERATION,handler:()=>!0},me=C.createIdentifier("INumfmtController");c.runOnLifecycle(c.LifecycleStages.Rendered,me);const B={id:"sheet.operation.open.numfmt.panel",type:c.CommandType.OPERATION,handler:e=>(e.get(me).openPanel(),!0)};var ge={exports:{}},ee={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var Le=y,Ae=Symbol.for("react.element"),Ve=Symbol.for("react.fragment"),Be=Object.prototype.hasOwnProperty,He=Le.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ke={key:!0,ref:!0,__self:!0,__source:!0};function ge(e,t,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)Be.call(t,r)&&!ke.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:Ae,type:e,key:i,ref:o,props:s,_owner:He.current}}X.Fragment=Ve;X.jsx=ge;X.jsxs=ge;Se.exports=X;var h=Se.exports;const le=y.createContext([]),ce=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"];var We=Object.defineProperty,Fe=Object.getOwnPropertyDescriptor,qe=(e,t,n,r)=>{for(var s=r>1?void 0:r?Fe(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&We(t,n,s),s},Ge=(e,t)=>(n,r)=>t(n,r,e);let J=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){const n=this._getKey(e);return this._localStorageService.getItem(n).then(r=>{r||this._localStorageService.setItem(n,t)})}markHabit(e,t){const n=this._getKey(e);this._localStorageService.getItem(n).then(r=>{if(r){const s=r.findIndex(i=>i===t);s>-1&&r.splice(s,1),r.unshift(t),this._localStorageService.setItem(n,r)}})}async getHabit(e,t){const n=this._getKey(e),r=await this._localStorageService.getItem(n);if(t&&r){const s=r.map((i,o,a)=>{const l=a.length;return{value:i,priority:l-o}});return t.sort((i,o)=>{var p,f;const a=((p=s.find(u=>u.value===i))==null?void 0:p.priority)||-1;return(((f=s.find(u=>u.value===o))==null?void 0:f.priority)||-1)-a})}return r||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};J=qe([Ge(0,C.Inject(c.ILocalStorageService))],J);const me="numfmtCurrency",ze=e=>{const t=N.useDependency(J),[n,r]=y.useState(ce);return y.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(me,[...ce]).then(i=>{r(i),e&&e(i)})})},[]),{userHabitCurrency:n,mark:i=>{t.markHabit(me,i)}}},Ke=()=>{const e=y.useRef([]),[t,n]=y.useState({});return y.useEffect(()=>{e.current.forEach(s=>{s()}),e.current=[]},[t]),s=>{e.current.push(s),n({})}},B=e=>ce.find(n=>e.includes(n)),Ye=e=>!!B(e)&&e.startsWith("_("),Je=e=>{const[t,n]=y.useState(()=>D(e.defaultPattern||"",2)),r=y.useContext(le),[s,i]=y.useState(()=>B(e.defaultPattern)||r[0]),o=y.useMemo(()=>r.map(u=>({label:u,value:u})),[]),l=N.useDependency(c.LocaleService).t;e.action.current=()=>P(`_("${s}"* #,##0${t>0?".0":""}_)`,t);const p=u=>{i(u),e.onChange(P(`_("${u}"* #,##0${t>0?".0":""}_)`,t))},f=u=>{const m=u||0;n(m),e.onChange(P(`_("${s}"* #,##0${m>0?".0":""}_)`,m))};return h.jsxs("div",{children:[h.jsxs("div",{className:"m-t-16 options ",children:[h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:l("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8 w-120",children:h.jsx(E.InputNumber,{value:t,max:20,min:0,onChange:f})})]}),h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:l("sheet.numfmt.currencyType")}),h.jsx("div",{className:"m-t-8 w-140",children:h.jsx(E.Select,{onChange:p,options:o,value:s})})]})]}),h.jsx("div",{className:"describe m-t-14",children:l("sheet.numfmt.accountingDes")})]})},se=e=>he.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),_e=()=>Ue.map(e=>({label:e.label,value:e.suffix})),be=()=>we.map(e=>({label:e.label,value:e.suffix,color:e.color})),Ze=e=>!!B(e)&&!e.startsWith("_("),Qe=e=>{const n=N.useDependency(c.LocaleService).t,r=y.useContext(le),[s,i]=y.useState(()=>B(e.defaultPattern)||r[0]),[o,a]=y.useState(()=>D(e.defaultPattern||"",2)),[l,p]=y.useState(()=>{var b;const v=se(s);return((b=v.find(T=>Q(T.value,e.defaultPattern)))==null?void 0:b.value)||v[0].value}),f=y.useMemo(()=>se(s),[s]),u=y.useMemo(()=>r.map(v=>({label:v,value:v})),[r]);e.action.current=()=>P(l,o);const m=v=>{if(v===void 0)return;i(v);const g=se(v)[0].value;p(g),e.onChange(P(g,o))},S=v=>{v!==void 0&&(p(v),e.onChange(P(v,o)))},_=v=>{a(v||0),e.onChange(P(l,v||0))};return h.jsxs("div",{children:[h.jsxs("div",{className:"m-t-16 options ",children:[h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:n("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8 w-120",children:h.jsx(E.InputNumber,{value:o,max:20,min:0,onChange:_})})]}),h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:n("sheet.numfmt.currencyType")}),h.jsx("div",{className:"m-t-8 w-140",children:h.jsx(E.Select,{onChange:m,options:u,value:s})})]})]}),h.jsx("div",{className:"m-t-16 label",children:n("sheet.numfmt.negType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{onChange:S,options:f,value:l})}),h.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.currencyDes")})]})},Xe=e=>{const t=x.getInfo(e);return _e().map(n=>n.value).includes(e)||["date","datetime","time"].includes(t.type)},et=e=>{const t=y.useMemo(_e,[]),r=N.useDependency(c.LocaleService).t,[s,i]=y.useState(()=>{if(e.defaultPattern){const a=t.find(l=>l.value===e.defaultPattern);if(a)return a.value}return t[0].value});e.action.current=()=>s;const o=a=>{a!==void 0&&(i(a),e.onChange(a))};return h.jsxs("div",{children:[h.jsx("div",{className:"m-t-16 label",children:r("sheet.numfmt.dateType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{value:s,options:t,onChange:o})}),h.jsx("div",{className:"describe m-t-14",children:r("sheet.numfmt.dateDes")})]})},tt=e=>!e,nt=e=>{const n=N.useDependency(c.LocaleService).t;return e.action.current=()=>"",h.jsx("div",{children:h.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.generalDes")})})},rt=e=>be().some(t=>Q(t.value,e)),st=e=>{const t=N.useDependency(c.LocaleService),n=y.useMemo(be,[]),[r,s]=y.useState(()=>D(e.defaultPattern||"",0)),[i,o]=y.useState(()=>{const u=n.find(m=>Q(m.value,e.defaultPattern||""));return(u==null?void 0:u.value)||n[0].value}),a=y.useMemo(()=>P(i,Number(r||0)),[i,r]),l=y.useMemo(()=>!De(i),[i]),p=u=>{s(u||0),e.onChange(P(i,Number(u||0)))},f=u=>{u!==void 0&&(s(D(u,0)),o(u),e.onChange(u))};return e.action.current=()=>a,h.jsxs("div",{children:[h.jsx("div",{className:"m-t-16 label",children:t.t("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.InputNumber,{disabled:l,value:r,max:20,min:0,onChange:p})}),h.jsxs("div",{className:"m-t-16 label",children:[" ",t.t("sheet.numfmt.negType")]}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{onChange:f,options:n,value:i})}),h.jsx("div",{className:"describe m-t-14",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})},it=e=>{const{defaultValue:t,defaultPattern:n,row:r,col:s}=e.value,i=N.useDependency(c.LocaleService),o=y.useRef(()=>""),a=i.t,l=Ke(),p=y.useMemo(()=>[{label:"sheet.numfmt.general",component:nt},{label:"sheet.numfmt.accounting",component:Je},{label:"sheet.numfmt.currency",component:Qe},{label:"sheet.numfmt.date",component:et},{label:"sheet.numfmt.thousandthPercentile",component:st}].map(M=>({...M,label:a(M.label)})),[]),[f,u]=y.useState(b),[m,S]=y.useState(()=>`${r}_${s}`),{mark:_,userHabitCurrency:v}=ze(()=>S(`${r}_${s}_userCurrency'`)),g=y.useMemo(()=>{var M;return(M=p.find(U=>U.label===f))==null?void 0:M.component},[f]);function b(){return[tt,Ye,Ze,Xe,rt].reduce((U,Ne,Ee)=>U||(Ne(n)?p[Ee].label:""),"")||p[0].label}const T=p.map(M=>({label:M.label,value:M.label})),L=M=>{u(M),l(()=>e.onChange({type:"change",value:o.current()||""}))},ee=M=>{e.onChange({type:"change",value:M})},te=()=>{const M=o.current()||"",U=B(M);U&&_(U),e.onChange({type:"confirm",value:M})},ne=()=>{e.onChange({type:"cancel",value:""})},Pe={onChange:ee,defaultValue:t,defaultPattern:n,action:o};return y.useEffect(()=>{u(b()),S(`${r}_${s}`)},[r,s]),h.jsxs("div",{className:"numfmt-panel p-b-20",children:[h.jsxs("div",{children:[h.jsx("div",{className:"label m-t-14",children:a("sheet.numfmt.numfmtType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.Select,{onChange:L,options:T,value:f})}),h.jsx("div",{children:g&&h.jsx(le.Provider,{value:v,children:y.createElement(g,{...Pe,key:m})})})]}),h.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[h.jsx(E.Button,{size:"small",onClick:ne,className:"m-r-12",children:a("sheet.numfmt.cancel")}),h.jsx(E.Button,{type:"primary",size:"small",onClick:te,children:a("sheet.numfmt.confirm")})]})]})},ye={id:"sheet.command.numfmt.set.percent",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SelectionManagerService).getSelections();if(!r||!r.length)return!1;const s=[],i="0%";return r.forEach(a=>{c.Range.foreach(a.range,(l,p)=>{s.push({row:l,col:p,pattern:i,type:"percent"})})}),await t.executeCommand($.id,{values:s})}};var ot=Object.defineProperty,ct=Object.getOwnPropertyDescriptor,at=(e,t,n,r)=>{for(var s=r>1?void 0:r?ct(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&ot(t,n,s),s},R=(e,t)=>(n,r)=>t(n,r,e);let F=class extends c.Disposable{constructor(t,n,r,s,i,o,a,l,p,f){super();H(this,"_previewPattern","");H(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=n,this._univerInstanceService=r,this._commandService=s,this._selectionManagerService=i,this._renderManagerService=o,this._numfmtService=a,this._componentManager=l,this._sidebarService=p,this._localeService=f,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener()}openPanel(){const t=this._sidebarService,n=this._selectionManagerService,r=this._commandService,s=this._univerInstanceService,i=this._numfmtService,o=this._localeService,l=(n.getSelectionRanges()||[])[0];if(!l)return!1;const p=s.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),f=p.getActiveSheet();if(!f)return!1;const u=f.getCellRaw(l.startRow,l.startColumn),m=i.getValue(p.getUnitId(),f.getSheetId(),l.startRow,l.startColumn);let S="";m&&(S=m.pattern);const _=(u==null?void 0:u.t)===c.CellValueType.NUMBER?u.v:12345678,v={onChange:g=>{if(g.type==="change")this._previewPattern=g.value,this._forceUpdate();else if(g.type==="confirm"){const b=n.getSelectionRanges()||[],T={values:[]},L=K(g.value);b.forEach(ee=>{c.Range.foreach(ee,(te,ne)=>{T.values.push({row:te,col:ne,pattern:g.value,type:L})})}),r.executeCommand($.id,T),t.close()}else g.type==="cancel"&&t.close()},value:{defaultPattern:S,defaultValue:_,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:oe,...v},onClose:()=>{this._forceUpdate(),r.executeCommand(re.id)}}),!0}_forceUpdate(t){var r;const n=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId());n==null||n.with(j.SheetSkeletonManagerService).reCalculate(),(r=n==null?void 0:n.mainComponent)==null||r.makeDirty()}_initCommands(){[fe,ve,pe,ye,Y,re,$].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this._componentManager.register(oe,it)}_initRealTimeRenderingInterceptor(){const t=new O.Observable(r=>{this._commandService.onCommandExecuted(s=>{s.id===Y.id&&r.next(!0),s.id===re.id&&r.next(!1)})}),n=O.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(k.map(r=>r?r.map(s=>s.range):[]))]);this.disposeWithMe(c.toDisposable(n.pipe(k.switchMap(([r,s])=>new O.Observable(i=>{const o=new c.DisposableCollection;return r&&s.length&&i.next({selectionRanges:s,disposableCollection:o}),()=>{o.dispose()}})),k.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:r,selectionRanges:s})=>{var o,a;const i=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET);this.openPanel(),r.add(this._sheetInterceptorService.intercept(d.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,handler:(l,p,f)=>{const{row:u,col:m}=p,S=f(l)||{};if(s.find(_=>_.startColumn<=m&&_.endColumn>=m&&_.startRow<=u&&_.endRow>=u)){const _=p.worksheet.getCellRaw(u,m),v=_==null?void 0:_.v,g=_==null?void 0:_.t;if(v==null||g!==c.CellValueType.NUMBER||this._previewPattern===null)return S;const b=Z(this._previewPattern,v,this._localeService.getCurrentLocale());if(b.color){const L=this._themeService.getCurrentTheme()[`${b.color}500`];return{...S,v:b.result,t:c.CellValueType.STRING,s:{cl:{rgb:L}}}}return{...S,v:b.result,t:c.CellValueType.STRING}}return S}})),(a=(o=this._renderManagerService.getRenderById(i.getUnitId()))==null?void 0:o.mainComponent)==null||a.makeDirty()})))}_commandExecutedListener(){const t=[d.RemoveNumfmtMutation.id,d.SetNumfmtMutation.id];this.disposeWithMe(new O.Observable(n=>{const r=this._commandService.onCommandExecuted(s=>{if(t.includes(s.id)){const i=s.params;n.next(i.unitId)}});return()=>r.dispose()}).pipe(k.debounceTime(16)).subscribe(n=>this._forceUpdate(n)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var n;t||((n=this._sidebarDisposable)==null||n.dispose(),this._sidebarDisposable=null)})}};F=at([c.OnLifecycle(c.LifecycleStages.Rendered,F),R(0,C.Inject(d.SheetInterceptorService)),R(1,C.Inject(c.ThemeService)),R(2,c.IUniverInstanceService),R(3,c.ICommandService),R(4,C.Inject(d.SelectionManagerService)),R(5,de.IRenderManagerService),R(6,d.INumfmtService),R(7,C.Inject(I.ComponentManager)),R(8,I.ISidebarService),R(9,C.Inject(c.LocaleService))],F);var lt=Object.defineProperty,ut=Object.getOwnPropertyDescriptor,mt=(e,t,n,r)=>{for(var s=r>1?void 0:r?ut(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&lt(t,n,s),s},A=(e,t)=>(n,r)=>t(n,r,e);const dt=()=>{let e=[];return{add:(s,i,o,a,l)=>e.push({unitId:s,subUnitId:i,row:o,col:a,value:l}),getEffects:()=>e,clean:()=>{e=[]}}};let q=class extends c.Disposable{constructor(t,n,r,s,i){super();H(this,"_collectEffectMutation",dt());this._sheetInterceptorService=t,this._numfmtService=n,this._univerInstanceService=r,this._injector=s,this._editorBridgeService=i,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:(t,n,r)=>{const s=n.row,i=n.col,o=this._numfmtService.getValue(n.unitId,n.subUnitId,s,i);if(o)switch(K(o.pattern)){case"scientific":case"percent":case"currency":case"grouped":case"number":return n.worksheet.getCellRaw(s,i);case"date":case"time":case"datetime":default:return r&&r(t)}return r(t)}})))}_initInterceptorEditorEnd(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{handler:(t,n,r)=>{var f;this._collectEffectMutation.clean();const s=this._numfmtService.getValue(n.unitId,n.subUnitId,n.row,n.col),i=(f=s&&K(s.pattern))!=null?f:"",o=()=>{s&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,null)};if(!(t!=null&&t.v))return r(t);const a=String(t.v),l=x.parseDate(a)||x.parseTime(a);if(!!l){if(l&&l.z){const u=Number(l.v);return this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,{pattern:l.z}),{...t,v:u,t:c.CellValueType.NUMBER}}}else(["date","time","datetime"].includes(i)||!ft(a))&&o();return r(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(n){var r;switch(n.id){case d.SetRangeValuesCommand.id:{const s=t._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),i=s.getUnitId(),o=(r=s.getActiveSheet())==null?void 0:r.getSheetId();if(!o)return{redos:[],undos:[]};const a=t._collectEffectMutation.getEffects();if(!a.length)return{redos:[],undos:[]};const l=a.filter(m=>{var S;return!!((S=m.value)!=null&&S.pattern)}).map(m=>({row:m.row,col:m.col,pattern:m.value.pattern})),p=a.filter(m=>{var S;return!((S=m.value)!=null&&S.pattern)}).map(m=>({startRow:m.row,endColumn:m.col,startColumn:m.col,endRow:m.row})),f=[],u=[];if(l){const m={id:d.SetNumfmtMutation.id,params:d.transformCellsToRange(i,o,l)};f.push(m),u.push(...d.factorySetNumfmtUndoMutation(t._injector,m.params))}if(p){const m={id:d.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:p}};f.push(m),u.push(...d.factoryRemoveNumfmtUndoMutation(t._injector,m.params))}return{redos:f,undos:u.reverse()}}}return{redos:[],undos:[]}}}))}};q=mt([c.OnLifecycle(c.LifecycleStages.Rendered,q),A(0,C.Inject(d.SheetInterceptorService)),A(1,C.Inject(d.INumfmtService)),A(2,C.Inject(c.IUniverInstanceService)),A(3,C.Inject(C.Injector)),A(4,C.Optional(j.IEditorBridgeService))],q);function ft(e){return/^-?\d+(\.\d+)?$/.test(e)}var ht=Object.defineProperty,pt=Object.getOwnPropertyDescriptor,vt=(e,t,n,r)=>{for(var s=r>1?void 0:r?pt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&ht(t,n,s),s},St=(e,t)=>(n,r)=>t(n,r,e);let G=class extends c.Disposable{constructor(e){super(),this._localeService=e}};G=vt([c.OnLifecycle(c.LifecycleStages.Rendered,G),St(0,C.Inject(c.LocaleService))],G);const z=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:"@@@"},"|",{label:"sheet.numfmt.number",pattern:"0"},"|",{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:""}],Ce="sheet.numfmt.moreNumfmtType",Ie="sheet.numfmt.moreNumfmtType.options",gt=e=>{var r;const t=N.useDependency(c.LocaleService),n=(r=e.value)!=null?r:t.t("sheet.numfmt.general");return h.jsx("span",{className:"more-numfmt-type",children:n})},_t=()=>{const e=N.useDependency(c.ICommandService),t=N.useDependency(c.LocaleService),n=N.useInjector(),r=N.useDependency(d.SelectionManagerService),s=a=>{const l=r.getLast();if(!l)return;const p=n.get(de.ITextSelectionRenderManager),f=l.range,u=[];c.Range.foreach(f,(m,S)=>{a?u.push({row:m,col:S,pattern:a,type:K(a)}):u.push({row:m,col:S})}),e.executeCommand($.id,{values:u}),p.focus()},i=a=>{if(a===0)s(null);else if(a===z.length-1)e.executeCommand(Y.id);else{const l=z[a];l.pattern&&s(l.pattern)}},o=1220;return h.jsx("div",{className:"more-numfmt-type-options",children:z.map((a,l)=>a==="|"?h.jsx("div",{className:"line m-t-4",onClick:p=>p.stopPropagation()},l):h.jsxs("div",{className:"option-item m-t-4",onClick:()=>{i(l)},children:[h.jsx("div",{children:t.t(a.label)}),h.jsx("div",{className:"m-l-26",children:a.pattern?Z(a.pattern||"",o,t.getCurrentLocale()).result:""})]},l))})},bt=e=>({icon:"RmbSingle",id:pe.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),yt=e=>({icon:"AddDigitsSingle",id:fe.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:I.MenuItemType.BUTTON,positions:[I.MenuPosition.TOOLBAR_START],group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),Ct=e=>({icon:"ReduceDigitsSingle",id:ve.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),It=e=>({icon:"PercentSingle",id:ye.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),Tt=e=>{const t=e.get(d.INumfmtService),n=e.get(c.IUniverInstanceService),r=e.get(c.ICommandService),s=e.get(c.LocaleService),i=e.get(d.SelectionManagerService),o=j.deriveStateFromActiveSheet$(n,"",({workbook:a,worksheet:l})=>new O.Observable(p=>O.merge(i.selectionMoveEnd$,new O.Observable(f=>{const u=[d.RemoveNumfmtMutation.id,d.SetNumfmtMutation.id],m=r.onCommandExecuted(S=>{u.includes(S.id)&&f.next(null)});return()=>m.dispose()})).subscribe(()=>{const f=i.getSelections();if(f&&f[0]){const u=f[0].range,m=u.startRow,S=u.startColumn,_=t.getValue(a.getUnitId(),l.getSheetId(),m,S),v=_==null?void 0:_.pattern;let g=s.t("sheet.numfmt.general");if(v){const b=z.filter(T=>typeof T=="object"&&T.pattern).find(T=>Q(v,T.pattern));b&&typeof b=="object"&&b.pattern?g=s.t(b.label):g=s.t("sheet.numfmt.moreFmt")}p.next(g)}})));return{label:Ce,id:Y.id,tooltip:"sheet.numfmt.title",type:I.MenuItemType.SELECTOR,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],selections:[{label:{name:Ie,hoverable:!1}}],value$:o,hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetSetCellStylePermission,d.WorksheetEditPermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}};var Mt=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,Nt=(e,t,n,r)=>{for(var s=r>1?void 0:r?Pt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&Mt(t,n,s),s},ie=(e,t)=>(n,r)=>t(n,r,e);const Et={};let V=class extends c.Disposable{constructor(e,t,n,r){super(),this._config=e,this._injector=t,this._componentManager=n,this._menuService=r,this._initMenu()}_initMenu(){const{menu:e={}}=this._config;[It,yt,Ct,bt,Tt].forEach(t=>{this.disposeWithMe(this._menuService.addMenuItem(t(this._injector),e))}),this.disposeWithMe(this._componentManager.register(Ce,gt)),this.disposeWithMe(this._componentManager.register(Ie,_t))}};V=Nt([c.OnLifecycle(c.LifecycleStages.Rendered,V),ie(1,C.Inject(C.Injector)),ie(2,C.Inject(I.ComponentManager)),ie(3,C.Inject(I.IMenuService))],V);var Te=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Ot=(e,t,n)=>t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jt=(e,t,n,r)=>{for(var s=r>1?void 0:r?Rt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&Te(t,n,s),s},xt=(e,t)=>(n,r)=>t(n,r,e),Me=(e,t,n)=>Ot(e,typeof t!="symbol"?t+"":t,n);exports.UniverSheetsNumfmtPlugin=class extends c.Plugin{constructor(t={},n){super(),this._config=t,this._injector=n,this._config=c.Tools.deepMerge({},Et,this._config)}onStarting(){this._injector.add([ae,{useClass:F,lazy:!1}]),this._injector.add([q]),this._injector.add([J]),this._injector.add([W]),this._injector.add([G]),this._injector.add([V,{useFactory:()=>this._injector.createInstance(V,this._config)}])}};Me(exports.UniverSheetsNumfmtPlugin,"pluginName",oe);Me(exports.UniverSheetsNumfmtPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtPlugin=jt([c.DependentOn(d.UniverSheetsPlugin,j.UniverSheetsUIPlugin),xt(1,C.Inject(C.Injector))],exports.UniverSheetsNumfmtPlugin);exports.SetNumfmtCommand=$;exports.getPatternPreview=Z;
9
+ */var Le=y,Ae=Symbol.for("react.element"),Ve=Symbol.for("react.fragment"),Be=Object.prototype.hasOwnProperty,He=Le.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ke={key:!0,ref:!0,__self:!0,__source:!0};function _e(e,t,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)Be.call(t,r)&&!ke.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:Ae,type:e,key:i,ref:o,props:s,_owner:He.current}}ee.Fragment=Ve;ee.jsx=_e;ee.jsxs=_e;ge.exports=ee;var h=ge.exports;const de=y.createContext([]),ce=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"];var We=Object.defineProperty,Fe=Object.getOwnPropertyDescriptor,qe=(e,t,n,r)=>{for(var s=r>1?void 0:r?Fe(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&We(t,n,s),s},Ge=(e,t)=>(n,r)=>t(n,r,e);let Z=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){const n=this._getKey(e);return this._localStorageService.getItem(n).then(r=>{r||this._localStorageService.setItem(n,t)})}markHabit(e,t){const n=this._getKey(e);this._localStorageService.getItem(n).then(r=>{if(r){const s=r.findIndex(i=>i===t);s>-1&&r.splice(s,1),r.unshift(t),this._localStorageService.setItem(n,r)}})}async getHabit(e,t){const n=this._getKey(e),r=await this._localStorageService.getItem(n);if(t&&r){const s=r.map((i,o,a)=>{const l=a.length;return{value:i,priority:l-o}});return t.sort((i,o)=>{var p,f;const a=((p=s.find(u=>u.value===i))==null?void 0:p.priority)||-1;return(((f=s.find(u=>u.value===o))==null?void 0:f.priority)||-1)-a})}return r||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};Z=qe([Ge(0,C.Inject(c.ILocalStorageService))],Z);const pe="numfmtCurrency",ze=e=>{const t=N.useDependency(Z),[n,r]=y.useState(ce);return y.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(pe,[...ce]).then(i=>{r(i),e&&e(i)})})},[]),{userHabitCurrency:n,mark:i=>{t.markHabit(pe,i)}}},Ke=()=>{const e=y.useRef([]),[t,n]=y.useState({});return y.useEffect(()=>{e.current.forEach(s=>{s()}),e.current=[]},[t]),s=>{e.current.push(s),n({})}},H=e=>ce.find(n=>e.includes(n)),Ye=e=>!!H(e)&&e.startsWith("_("),Je=e=>{const[t,n]=y.useState(()=>D(e.defaultPattern||"",2)),r=y.useContext(de),[s,i]=y.useState(()=>H(e.defaultPattern)||r[0]),o=y.useMemo(()=>r.map(u=>({label:u,value:u})),[]),l=N.useDependency(c.LocaleService).t;e.action.current=()=>P(`_("${s}"* #,##0${t>0?".0":""}_)`,t);const p=u=>{i(u),e.onChange(P(`_("${u}"* #,##0${t>0?".0":""}_)`,t))},f=u=>{const m=u||0;n(m),e.onChange(P(`_("${s}"* #,##0${m>0?".0":""}_)`,m))};return h.jsxs("div",{children:[h.jsxs("div",{className:"m-t-16 options ",children:[h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:l("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8 w-120",children:h.jsx(E.InputNumber,{value:t,max:20,min:0,onChange:f})})]}),h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:l("sheet.numfmt.currencyType")}),h.jsx("div",{className:"m-t-8 w-140",children:h.jsx(E.Select,{onChange:p,options:o,value:s})})]})]}),h.jsx("div",{className:"describe m-t-14",children:l("sheet.numfmt.accountingDes")})]})},se=e=>Se.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),be=()=>Ue.map(e=>({label:e.label,value:e.suffix})),ye=()=>we.map(e=>({label:e.label,value:e.suffix,color:e.color})),Ze=e=>!!H(e)&&!e.startsWith("_("),Qe=e=>{const n=N.useDependency(c.LocaleService).t,r=y.useContext(de),[s,i]=y.useState(()=>H(e.defaultPattern)||r[0]),[o,a]=y.useState(()=>D(e.defaultPattern||"",2)),[l,p]=y.useState(()=>{var b;const v=se(s);return((b=v.find(T=>X(T.value,e.defaultPattern)))==null?void 0:b.value)||v[0].value}),f=y.useMemo(()=>se(s),[s]),u=y.useMemo(()=>r.map(v=>({label:v,value:v})),[r]);e.action.current=()=>P(l,o);const m=v=>{if(v===void 0)return;i(v);const g=se(v)[0].value;p(g),e.onChange(P(g,o))},S=v=>{v!==void 0&&(p(v),e.onChange(P(v,o)))},_=v=>{a(v||0),e.onChange(P(l,v||0))};return h.jsxs("div",{children:[h.jsxs("div",{className:"m-t-16 options ",children:[h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:n("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8 w-120",children:h.jsx(E.InputNumber,{value:o,max:20,min:0,onChange:_})})]}),h.jsxs("div",{className:"option",children:[h.jsx("div",{className:"label",children:n("sheet.numfmt.currencyType")}),h.jsx("div",{className:"m-t-8 w-140",children:h.jsx(E.Select,{onChange:m,options:u,value:s})})]})]}),h.jsx("div",{className:"m-t-16 label",children:n("sheet.numfmt.negType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{onChange:S,options:f,value:l})}),h.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.currencyDes")})]})},Xe=e=>{const t=x.getInfo(e);return be().map(n=>n.value).includes(e)||["date","datetime","time"].includes(t.type)},et=e=>{const t=y.useMemo(be,[]),r=N.useDependency(c.LocaleService).t,[s,i]=y.useState(()=>{if(e.defaultPattern){const a=t.find(l=>l.value===e.defaultPattern);if(a)return a.value}return t[0].value});e.action.current=()=>s;const o=a=>{a!==void 0&&(i(a),e.onChange(a))};return h.jsxs("div",{children:[h.jsx("div",{className:"m-t-16 label",children:r("sheet.numfmt.dateType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{value:s,options:t,onChange:o})}),h.jsx("div",{className:"describe m-t-14",children:r("sheet.numfmt.dateDes")})]})},tt=e=>!e,nt=e=>{const n=N.useDependency(c.LocaleService).t;return e.action.current=()=>"",h.jsx("div",{children:h.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.generalDes")})})},rt=e=>ye().some(t=>X(t.value,e)),st=e=>{const t=N.useDependency(c.LocaleService),n=y.useMemo(ye,[]),[r,s]=y.useState(()=>D(e.defaultPattern||"",0)),[i,o]=y.useState(()=>{const u=n.find(m=>X(m.value,e.defaultPattern||""));return(u==null?void 0:u.value)||n[0].value}),a=y.useMemo(()=>P(i,Number(r||0)),[i,r]),l=y.useMemo(()=>!$e(i),[i]),p=u=>{s(u||0),e.onChange(P(i,Number(u||0)))},f=u=>{u!==void 0&&(s(D(u,0)),o(u),e.onChange(u))};return e.action.current=()=>a,h.jsxs("div",{children:[h.jsx("div",{className:"m-t-16 label",children:t.t("sheet.numfmt.decimalLength")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.InputNumber,{disabled:l,value:r,max:20,min:0,onChange:p})}),h.jsxs("div",{className:"m-t-16 label",children:[" ",t.t("sheet.numfmt.negType")]}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.SelectList,{onChange:f,options:n,value:i})}),h.jsx("div",{className:"describe m-t-14",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})},it=e=>{const{defaultValue:t,defaultPattern:n,row:r,col:s}=e.value,i=N.useDependency(c.LocaleService),o=y.useRef(()=>""),a=i.t,l=Ke(),p=y.useMemo(()=>[{label:"sheet.numfmt.general",component:nt},{label:"sheet.numfmt.accounting",component:Je},{label:"sheet.numfmt.currency",component:Qe},{label:"sheet.numfmt.date",component:et},{label:"sheet.numfmt.thousandthPercentile",component:st}].map(M=>({...M,label:a(M.label)})),[]),[f,u]=y.useState(b),[m,S]=y.useState(()=>`${r}_${s}`),{mark:_,userHabitCurrency:v}=ze(()=>S(`${r}_${s}_userCurrency'`)),g=y.useMemo(()=>{var M;return(M=p.find(U=>U.label===f))==null?void 0:M.component},[f]);function b(){return[tt,Ye,Ze,Xe,rt].reduce((U,Ne,Ee)=>U||(Ne(n)?p[Ee].label:""),"")||p[0].label}const T=p.map(M=>({label:M.label,value:M.label})),L=M=>{u(M),l(()=>e.onChange({type:"change",value:o.current()||""}))},te=M=>{e.onChange({type:"change",value:M})},ne=()=>{const M=o.current()||"",U=H(M);U&&_(U),e.onChange({type:"confirm",value:M})},re=()=>{e.onChange({type:"cancel",value:""})},Pe={onChange:te,defaultValue:t,defaultPattern:n,action:o};return y.useEffect(()=>{u(b()),S(`${r}_${s}`)},[r,s]),h.jsxs("div",{className:"numfmt-panel p-b-20",children:[h.jsxs("div",{children:[h.jsx("div",{className:"label m-t-14",children:a("sheet.numfmt.numfmtType")}),h.jsx("div",{className:"m-t-8",children:h.jsx(E.Select,{onChange:L,options:T,value:f})}),h.jsx("div",{children:g&&h.jsx(de.Provider,{value:v,children:y.createElement(g,{...Pe,key:m})})})]}),h.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[h.jsx(E.Button,{size:"small",onClick:re,className:"m-r-12",children:a("sheet.numfmt.cancel")}),h.jsx(E.Button,{type:"primary",size:"small",onClick:ne,children:a("sheet.numfmt.confirm")})]})]})},fe={id:"sheet.command.numfmt.set.percent",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SelectionManagerService).getSelections();if(!r||!r.length)return!1;const s=[],i="0%";return r.forEach(a=>{c.Range.foreach(a.range,(l,p)=>{s.push({row:l,col:p,pattern:i,type:"percent"})})}),await t.executeCommand($.id,{values:s})}};var ot=Object.defineProperty,ct=Object.getOwnPropertyDescriptor,at=(e,t,n,r)=>{for(var s=r>1?void 0:r?ct(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&ot(t,n,s),s},R=(e,t)=>(n,r)=>t(n,r,e);let G=class extends c.Disposable{constructor(t,n,r,s,i,o,a,l,p,f){super();k(this,"_previewPattern","");k(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=n,this._univerInstanceService=r,this._commandService=s,this._selectionManagerService=i,this._renderManagerService=o,this._numfmtService=a,this._componentManager=l,this._sidebarService=p,this._localeService=f,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener()}openPanel(){const t=this._sidebarService,n=this._selectionManagerService,r=this._commandService,s=this._univerInstanceService,i=this._numfmtService,o=this._localeService,l=(n.getSelectionRanges()||[])[0];if(!l)return!1;const p=s.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),f=p.getActiveSheet();if(!f)return!1;const u=f.getCellRaw(l.startRow,l.startColumn),m=i.getValue(p.getUnitId(),f.getSheetId(),l.startRow,l.startColumn);let S="";m&&(S=m.pattern);const _=(u==null?void 0:u.t)===c.CellValueType.NUMBER?u.v:12345678,v={onChange:g=>{if(g.type==="change")this._previewPattern=g.value,this._forceUpdate();else if(g.type==="confirm"){const b=n.getSelectionRanges()||[],T={values:[]},L=J(g.value);b.forEach(te=>{c.Range.foreach(te,(ne,re)=>{T.values.push({row:ne,col:re,pattern:g.value,type:L})})}),r.executeCommand($.id,T),t.close()}else g.type==="cancel"&&t.close()},value:{defaultPattern:S,defaultValue:_,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:oe,...v},onClose:()=>{this._forceUpdate(),r.executeCommand(q.id)}}),!0}_forceUpdate(t){var r;const n=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId());n==null||n.with(j.SheetSkeletonManagerService).reCalculate(),(r=n==null?void 0:n.mainComponent)==null||r.makeDirty()}_initCommands(){[ae,ue,le,fe,B,q,$].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this._componentManager.register(oe,it)}_initRealTimeRenderingInterceptor(){const t=new O.Observable(r=>{this._commandService.onCommandExecuted(s=>{s.id===B.id&&r.next(!0),s.id===q.id&&r.next(!1)})}),n=O.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(W.map(r=>r?r.map(s=>s.range):[]))]);this.disposeWithMe(c.toDisposable(n.pipe(W.switchMap(([r,s])=>new O.Observable(i=>{const o=new c.DisposableCollection;return r&&s.length&&i.next({selectionRanges:s,disposableCollection:o}),()=>{o.dispose()}})),W.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:r,selectionRanges:s})=>{var o,a;const i=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET);this.openPanel(),r.add(this._sheetInterceptorService.intercept(d.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,handler:(l,p,f)=>{const{row:u,col:m}=p,S=f(l)||{};if(s.find(_=>_.startColumn<=m&&_.endColumn>=m&&_.startRow<=u&&_.endRow>=u)){const _=p.worksheet.getCellRaw(u,m),v=_==null?void 0:_.v,g=_==null?void 0:_.t;if(v==null||g!==c.CellValueType.NUMBER||this._previewPattern===null)return S;const b=Q(this._previewPattern,v,this._localeService.getCurrentLocale());if(b.color){const L=this._themeService.getCurrentTheme()[`${b.color}500`];return{...S,v:b.result,t:c.CellValueType.STRING,s:{cl:{rgb:L}}}}return{...S,v:b.result,t:c.CellValueType.STRING}}return S}})),(a=(o=this._renderManagerService.getRenderById(i.getUnitId()))==null?void 0:o.mainComponent)==null||a.makeDirty()})))}_commandExecutedListener(){const t=[d.RemoveNumfmtMutation.id,d.SetNumfmtMutation.id];this.disposeWithMe(new O.Observable(n=>{const r=this._commandService.onCommandExecuted(s=>{if(t.includes(s.id)){const i=s.params;n.next(i.unitId)}});return()=>r.dispose()}).pipe(W.debounceTime(16)).subscribe(n=>this._forceUpdate(n)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var n;t||((n=this._sidebarDisposable)==null||n.dispose(),this._sidebarDisposable=null)})}};G=at([c.OnLifecycle(c.LifecycleStages.Rendered,G),R(0,C.Inject(d.SheetInterceptorService)),R(1,C.Inject(c.ThemeService)),R(2,c.IUniverInstanceService),R(3,c.ICommandService),R(4,C.Inject(d.SelectionManagerService)),R(5,ve.IRenderManagerService),R(6,d.INumfmtService),R(7,C.Inject(I.ComponentManager)),R(8,I.ISidebarService),R(9,C.Inject(c.LocaleService))],G);var lt=Object.defineProperty,ut=Object.getOwnPropertyDescriptor,mt=(e,t,n,r)=>{for(var s=r>1?void 0:r?ut(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&lt(t,n,s),s},A=(e,t)=>(n,r)=>t(n,r,e);const dt=()=>{let e=[];return{add:(s,i,o,a,l)=>e.push({unitId:s,subUnitId:i,row:o,col:a,value:l}),getEffects:()=>e,clean:()=>{e=[]}}};let z=class extends c.Disposable{constructor(t,n,r,s,i){super();k(this,"_collectEffectMutation",dt());this._sheetInterceptorService=t,this._numfmtService=n,this._univerInstanceService=r,this._injector=s,this._editorBridgeService=i,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:(t,n,r)=>{const s=n.row,i=n.col,o=this._numfmtService.getValue(n.unitId,n.subUnitId,s,i);if(o)switch(J(o.pattern)){case"scientific":case"percent":case"currency":case"grouped":case"number":return n.worksheet.getCellRaw(s,i);case"date":case"time":case"datetime":default:return r&&r(t)}return r(t)}})))}_initInterceptorEditorEnd(){this._editorBridgeService&&this.disposeWithMe(c.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{handler:(t,n,r)=>{var f;this._collectEffectMutation.clean();const s=this._numfmtService.getValue(n.unitId,n.subUnitId,n.row,n.col),i=(f=s&&J(s.pattern))!=null?f:"",o=()=>{s&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,null)};if(!(t!=null&&t.v))return r(t);const a=String(t.v),l=x.parseDate(a)||x.parseTime(a);if(!!l){if(l&&l.z){const u=Number(l.v);return this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,{pattern:l.z}),{...t,v:u,t:c.CellValueType.NUMBER}}}else(["date","time","datetime"].includes(i)||!ft(a))&&o();return r(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(n){var r;switch(n.id){case d.SetRangeValuesCommand.id:{const s=t._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),i=s.getUnitId(),o=(r=s.getActiveSheet())==null?void 0:r.getSheetId();if(!o)return{redos:[],undos:[]};const a=t._collectEffectMutation.getEffects();if(!a.length)return{redos:[],undos:[]};const l=a.filter(m=>{var S;return!!((S=m.value)!=null&&S.pattern)}).map(m=>({row:m.row,col:m.col,pattern:m.value.pattern})),p=a.filter(m=>{var S;return!((S=m.value)!=null&&S.pattern)}).map(m=>({startRow:m.row,endColumn:m.col,startColumn:m.col,endRow:m.row})),f=[],u=[];if(l){const m={id:d.SetNumfmtMutation.id,params:d.transformCellsToRange(i,o,l)};f.push(m),u.push(...d.factorySetNumfmtUndoMutation(t._injector,m.params))}if(p){const m={id:d.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:p}};f.push(m),u.push(...d.factoryRemoveNumfmtUndoMutation(t._injector,m.params))}return{redos:f,undos:u.reverse()}}}return{redos:[],undos:[]}}}))}};z=mt([c.OnLifecycle(c.LifecycleStages.Rendered,z),A(0,C.Inject(d.SheetInterceptorService)),A(1,C.Inject(d.INumfmtService)),A(2,C.Inject(c.IUniverInstanceService)),A(3,C.Inject(C.Injector)),A(4,C.Optional(j.IEditorBridgeService))],z);function ft(e){return/^-?\d+(\.\d+)?$/.test(e)}var ht=Object.defineProperty,pt=Object.getOwnPropertyDescriptor,vt=(e,t,n,r)=>{for(var s=r>1?void 0:r?pt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&ht(t,n,s),s},St=(e,t)=>(n,r)=>t(n,r,e);let K=class extends c.Disposable{constructor(e){super(),this._localeService=e}};K=vt([c.OnLifecycle(c.LifecycleStages.Rendered,K),St(0,C.Inject(c.LocaleService))],K);const Y=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:"@@@"},"|",{label:"sheet.numfmt.number",pattern:"0"},"|",{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:""}],Ce="sheet.numfmt.moreNumfmtType",Ie="sheet.numfmt.moreNumfmtType.options",gt=e=>{var r;const t=N.useDependency(c.LocaleService),n=(r=e.value)!=null?r:t.t("sheet.numfmt.general");return h.jsx("span",{className:"more-numfmt-type",children:n})},_t=()=>{const e=N.useDependency(c.ICommandService),t=N.useDependency(c.LocaleService),n=N.useInjector(),r=N.useDependency(d.SelectionManagerService),s=a=>{const l=r.getLast();if(!l)return;const p=n.get(ve.ITextSelectionRenderManager),f=l.range,u=[];c.Range.foreach(f,(m,S)=>{a?u.push({row:m,col:S,pattern:a,type:J(a)}):u.push({row:m,col:S})}),e.executeCommand($.id,{values:u}),p.focus()},i=a=>{if(a===0)s(null);else if(a===Y.length-1)e.executeCommand(B.id);else{const l=Y[a];l.pattern&&s(l.pattern)}},o=1220;return h.jsx("div",{className:"more-numfmt-type-options",children:Y.map((a,l)=>a==="|"?h.jsx("div",{className:"line m-t-4",onClick:p=>p.stopPropagation()},l):h.jsxs("div",{className:"option-item m-t-4",onClick:()=>{i(l)},children:[h.jsx("div",{children:t.t(a.label)}),h.jsx("div",{className:"m-l-26",children:a.pattern?Q(a.pattern||"",o,t.getCurrentLocale()).result:""})]},l))})},bt=e=>({icon:"RmbSingle",id:le.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),yt=e=>({icon:"AddDigitsSingle",id:ae.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:I.MenuItemType.BUTTON,positions:[I.MenuPosition.TOOLBAR_START],group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),Ct=e=>({icon:"ReduceDigitsSingle",id:ue.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),It=e=>({icon:"PercentSingle",id:fe.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:I.MenuItemType.BUTTON,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),Tt=e=>{const t=e.get(d.INumfmtService),n=e.get(c.IUniverInstanceService),r=e.get(c.ICommandService),s=e.get(c.LocaleService),i=e.get(d.SelectionManagerService),o=j.deriveStateFromActiveSheet$(n,"",({workbook:a,worksheet:l})=>new O.Observable(p=>O.merge(i.selectionMoveEnd$,new O.Observable(f=>{const u=[d.RemoveNumfmtMutation.id,d.SetNumfmtMutation.id],m=r.onCommandExecuted(S=>{u.includes(S.id)&&f.next(null)});return()=>m.dispose()})).subscribe(()=>{const f=i.getSelections();if(f&&f[0]){const u=f[0].range,m=u.startRow,S=u.startColumn,_=t.getValue(a.getUnitId(),l.getSheetId(),m,S),v=_==null?void 0:_.pattern;let g=s.t("sheet.numfmt.general");if(v){const b=Y.filter(T=>typeof T=="object"&&T.pattern).find(T=>X(v,T.pattern));b&&typeof b=="object"&&b.pattern?g=s.t(b.label):g=s.t("sheet.numfmt.moreFmt")}p.next(g)}})));return{label:Ce,id:B.id,tooltip:"sheet.numfmt.title",type:I.MenuItemType.SELECTOR,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],selections:[{label:{name:Ie,hoverable:!1}}],value$:o,hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:j.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetSetCellStylePermission,d.WorksheetEditPermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}};var Mt=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,Nt=(e,t,n,r)=>{for(var s=r>1?void 0:r?Pt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&Mt(t,n,s),s},ie=(e,t)=>(n,r)=>t(n,r,e);const Et={};let V=class extends c.Disposable{constructor(e,t,n,r){super(),this._config=e,this._injector=t,this._componentManager=n,this._menuService=r,this._initMenu()}_initMenu(){const{menu:e={}}=this._config;[It,yt,Ct,bt,Tt].forEach(t=>{this.disposeWithMe(this._menuService.addMenuItem(t(this._injector),e))}),this.disposeWithMe(this._componentManager.register(Ce,gt)),this.disposeWithMe(this._componentManager.register(Ie,_t))}};V=Nt([c.OnLifecycle(c.LifecycleStages.Rendered,V),ie(1,C.Inject(C.Injector)),ie(2,C.Inject(I.ComponentManager)),ie(3,C.Inject(I.IMenuService))],V);var Te=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Ot=(e,t,n)=>t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jt=(e,t,n,r)=>{for(var s=r>1?void 0:r?Rt(t,n):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(r?o(t,n,s):o(s))||s);return r&&s&&Te(t,n,s),s},xt=(e,t)=>(n,r)=>t(n,r,e),Me=(e,t,n)=>Ot(e,typeof t!="symbol"?t+"":t,n);exports.UniverSheetsNumfmtPlugin=class extends c.Plugin{constructor(t={},n){super(),this._config=t,this._injector=n,this._config=c.Tools.deepMerge({},Et,this._config)}onStarting(){this._injector.add([me,{useClass:G,lazy:!1}]),this._injector.add([z]),this._injector.add([Z]),this._injector.add([F]),this._injector.add([K]),this._injector.add([V,{useFactory:()=>this._injector.createInstance(V,this._config)}])}};Me(exports.UniverSheetsNumfmtPlugin,"pluginName",oe);Me(exports.UniverSheetsNumfmtPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtPlugin=jt([c.DependentOn(d.UniverSheetsPlugin,j.UniverSheetsUIPlugin),xt(1,C.Inject(C.Injector))],exports.UniverSheetsNumfmtPlugin);exports.AddDecimalCommand=ae;exports.CloseNumfmtPanelOperator=q;exports.OpenNumfmtPanelOperator=B;exports.SetCurrencyCommand=le;exports.SetNumfmtCommand=$;exports.SetPercentCommand=fe;exports.SubtractDecimalCommand=ue;exports.getPatternPreview=Q;
package/lib/es/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  var dt = Object.defineProperty;
2
2
  var ft = (e, t, r) => t in e ? dt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
3
  var ie = (e, t, r) => ft(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { CommandType as w, ICommandService as O, IUniverInstanceService as D, IUndoRedoService as ht, sequenceExecute as pt, LocaleType as vt, Disposable as z, ObjectMatrix as Le, CellValueType as V, Range as R, UniverInstanceType as T, OnLifecycle as K, LifecycleStages as B, ThemeService as Fe, LocaleService as E, runOnLifecycle as _t, ILocalStorageService as gt, toDisposable as Ie, DisposableCollection as St, Plugin as bt, Tools as yt, DependentOn as Ct } from "@univerjs/core";
5
- import { getSheetCommandTarget as Me, transformCellsToRange as We, rangeMerge as Ae, SetNumfmtMutation as Y, factorySetNumfmtUndoMutation as ke, RemoveNumfmtMutation as pe, factoryRemoveNumfmtUndoMutation as Ge, INTERCEPTOR_POINT as ze, SetRangeValuesMutation as Tt, SheetInterceptorService as Pe, INumfmtService as H, SelectionManagerService as U, SetRangeValuesCommand as It, WorkbookEditablePermission as q, WorksheetEditPermission as J, WorksheetSetCellStylePermission as Z, RangeProtectionPermissionEditPoint as Q, UniverSheetsPlugin as Et } from "@univerjs/sheets";
6
- import { Inject as b, createIdentifier as Nt, Injector as Re, Optional as Mt } from "@wendellhu/redi";
4
+ import { LocaleType as ht, Disposable as z, ObjectMatrix as Le, CellValueType as V, Range as R, UniverInstanceType as T, OnLifecycle as K, LifecycleStages as B, ThemeService as Fe, ICommandService as O, LocaleService as E, IUniverInstanceService as w, CommandType as D, IUndoRedoService as pt, sequenceExecute as vt, runOnLifecycle as _t, ILocalStorageService as gt, toDisposable as Ie, DisposableCollection as St, Plugin as bt, Tools as yt, DependentOn as Ct } from "@univerjs/core";
5
+ import { Inject as b, createIdentifier as Tt, Injector as Me, Optional as It } from "@wendellhu/redi";
6
+ import { INTERCEPTOR_POINT as We, SetNumfmtMutation as Y, SetRangeValuesMutation as Et, SheetInterceptorService as Pe, INumfmtService as H, getSheetCommandTarget as Re, transformCellsToRange as ke, rangeMerge as Ae, factorySetNumfmtUndoMutation as Ge, RemoveNumfmtMutation as pe, factoryRemoveNumfmtUndoMutation as ze, SelectionManagerService as U, SetRangeValuesCommand as Nt, WorkbookEditablePermission as q, WorksheetEditPermission as J, WorksheetSetCellStylePermission as Z, RangeProtectionPermissionEditPoint as Q, UniverSheetsPlugin as Mt } from "@univerjs/sheets";
7
7
  import { SheetSkeletonManagerService as Pt, IEditorBridgeService as Rt, getCurrentRangeDisable$ as X, deriveStateFromActiveSheet$ as xt, UniverSheetsUIPlugin as Ot } from "@univerjs/sheets-ui";
8
8
  import { switchMap as jt, of as $t, skip as wt, Observable as k, combineLatest as Dt, merge as Ut } from "rxjs";
9
9
  import x from "@univerjs/engine-numfmt";
@@ -13,52 +13,8 @@ import { map as Ht, switchMap as Ft, tap as Wt, debounceTime as kt } from "rxjs/
13
13
  import Gt, { createContext as zt, useState as I, useEffect as xe, useRef as Ye, useContext as qe, useMemo as P, createElement as Kt } from "react";
14
14
  import { InputNumber as Oe, Select as je, SelectList as $e, Button as Ve } from "@univerjs/design";
15
15
  import { useDependency as N, useInjector as Yt } from "@wendellhu/redi/react-bindings";
16
- const $ = {
17
- id: "sheet.command.numfmt.set.numfmt",
18
- type: w.COMMAND,
19
- handler: (e, t) => {
20
- if (!t)
21
- return !1;
22
- const r = e.get(O), n = e.get(D), s = e.get(ht), i = Me(n, t);
23
- if (!i) return !1;
24
- const { unitId: o, subUnitId: c } = i, a = t.values.filter((h) => !!h.pattern), f = t.values.filter((h) => !h.pattern), m = We(o, c, a), l = {
25
- unitId: o,
26
- subUnitId: c,
27
- ranges: f.map((h) => ({
28
- startColumn: h.col,
29
- startRow: h.row,
30
- endColumn: h.col,
31
- endRow: h.row
32
- }))
33
- }, u = [], p = [];
34
- if (a.length) {
35
- Object.keys(m.values).forEach((v) => {
36
- const g = m.values[v];
37
- g.ranges = Ae(g.ranges);
38
- }), u.push({
39
- id: Y.id,
40
- params: m
41
- });
42
- const h = ke(e, m);
43
- p.push(...h);
44
- }
45
- if (f.length) {
46
- l.ranges = Ae(l.ranges), u.push({
47
- id: pe.id,
48
- params: l
49
- });
50
- const h = Ge(e, l);
51
- p.push(...h);
52
- }
53
- const _ = pt(u, r).result;
54
- return _ && s.pushUndoRedo({
55
- unitID: o,
56
- undoMutations: p,
57
- redoMutations: u
58
- }), _;
59
- }
60
- }, Ee = "SHEET_NUMFMT_PLUGIN", me = (e) => x.getInfo(e).type || "unknown", we = (e, t, r) => {
61
- const n = x.getInfo(e), s = r === vt.ZH_CN ? "zh-CN" : "en", i = n._partitions[1], o = x.format(e, t, { locale: s });
16
+ const Ee = "SHEET_NUMFMT_PLUGIN", me = (e) => x.getInfo(e).type || "unknown", we = (e, t, r) => {
17
+ const n = x.getInfo(e), s = r === ht.ZH_CN ? "zh-CN" : "en", i = n._partitions[1], o = x.format(e, t, { locale: s });
62
18
  return t < 0 ? {
63
19
  result: o,
64
20
  color: i.color
@@ -77,7 +33,7 @@ let oe = class extends z {
77
33
  }
78
34
  _initInterceptorCellContent() {
79
35
  const e = new Le();
80
- this.disposeWithMe(this._sheetInterceptorService.intercept(ze.CELL_CONTENT, {
36
+ this.disposeWithMe(this._sheetInterceptorService.intercept(We.CELL_CONTENT, {
81
37
  handler: (t, r, n) => {
82
38
  const s = r.unitId, i = r.subUnitId, o = this._numfmtService.getValue(s, i, r.row, r.col);
83
39
  if (!o)
@@ -113,7 +69,7 @@ let oe = class extends z {
113
69
  });
114
70
  });
115
71
  });
116
- } else if (t.id === Tt.id) {
72
+ } else if (t.id === Et.id) {
117
73
  const r = t.params;
118
74
  new Le(r.cellValue).forValue((n, s) => {
119
75
  e.realDeleteValue(n, s);
@@ -132,7 +88,7 @@ let oe = class extends z {
132
88
  };
133
89
  oe = Zt([
134
90
  K(B.Rendered, oe),
135
- A(0, D),
91
+ A(0, w),
136
92
  A(1, b(Pe)),
137
93
  A(2, b(Fe)),
138
94
  A(3, b(O)),
@@ -161,14 +117,58 @@ const j = (e, t = 0) => {
161
117
  ) : /0([^0]?)|0$/.test(n) ? n.replace(
162
118
  /0([^0]+)|0$/,
163
119
  `0${t > 0 ? "." : ""}${Be(Number(t || 0))}$1`
164
- ) : n).join(";"), Qt = (e) => /\.0?/.test(e) || /0([^0]?)|0$/.test(e), Je = {
120
+ ) : n).join(";"), Qt = (e) => /\.0?/.test(e) || /0([^0]?)|0$/.test(e), $ = {
121
+ id: "sheet.command.numfmt.set.numfmt",
122
+ type: D.COMMAND,
123
+ handler: (e, t) => {
124
+ if (!t)
125
+ return !1;
126
+ const r = e.get(O), n = e.get(w), s = e.get(pt), i = Re(n, t);
127
+ if (!i) return !1;
128
+ const { unitId: o, subUnitId: c } = i, a = t.values.filter((h) => !!h.pattern), f = t.values.filter((h) => !h.pattern), m = ke(o, c, a), l = {
129
+ unitId: o,
130
+ subUnitId: c,
131
+ ranges: f.map((h) => ({
132
+ startColumn: h.col,
133
+ startRow: h.row,
134
+ endColumn: h.col,
135
+ endRow: h.row
136
+ }))
137
+ }, u = [], p = [];
138
+ if (a.length) {
139
+ Object.keys(m.values).forEach((v) => {
140
+ const g = m.values[v];
141
+ g.ranges = Ae(g.ranges);
142
+ }), u.push({
143
+ id: Y.id,
144
+ params: m
145
+ });
146
+ const h = Ge(e, m);
147
+ p.push(...h);
148
+ }
149
+ if (f.length) {
150
+ l.ranges = Ae(l.ranges), u.push({
151
+ id: pe.id,
152
+ params: l
153
+ });
154
+ const h = ze(e, l);
155
+ p.push(...h);
156
+ }
157
+ const _ = vt(u, r).result;
158
+ return _ && s.pushUndoRedo({
159
+ unitID: o,
160
+ undoMutations: p,
161
+ redoMutations: u
162
+ }), _;
163
+ }
164
+ }, Je = {
165
165
  id: "sheet.command.numfmt.add.decimal.command",
166
- type: w.COMMAND,
166
+ type: D.COMMAND,
167
167
  handler: async (e) => {
168
- const t = e.get(O), r = e.get(U), n = e.get(H), s = e.get(D), i = r.getSelections();
168
+ const t = e.get(O), r = e.get(U), n = e.get(H), s = e.get(w), i = r.getSelections();
169
169
  if (!i || !i.length)
170
170
  return !1;
171
- const o = Me(s);
171
+ const o = Re(s);
172
172
  if (!o) return !1;
173
173
  const { unitId: c, subUnitId: a } = o;
174
174
  let f = 0;
@@ -305,7 +305,7 @@ const j = (e, t = 0) => {
305
305
  }
306
306
  ], Qe = {
307
307
  id: "sheet.command.numfmt.set.currency",
308
- type: w.COMMAND,
308
+ type: D.COMMAND,
309
309
  handler: async (e) => {
310
310
  const t = e.get(O), n = e.get(U).getSelections();
311
311
  if (!n || !n.length)
@@ -319,12 +319,12 @@ const j = (e, t = 0) => {
319
319
  }
320
320
  }, Xe = {
321
321
  id: "sheet.command.numfmt.subtract.decimal.command",
322
- type: w.COMMAND,
322
+ type: D.COMMAND,
323
323
  handler: async (e) => {
324
- const t = e.get(O), r = e.get(U), n = e.get(H), s = e.get(D), i = r.getSelections();
324
+ const t = e.get(O), r = e.get(U), n = e.get(H), s = e.get(w), i = r.getSelections();
325
325
  if (!i || !i.length)
326
326
  return !1;
327
- const o = Me(s);
327
+ const o = Re(s);
328
328
  if (!o) return !1;
329
329
  const { unitId: c, subUnitId: a } = o;
330
330
  let f = 0;
@@ -360,16 +360,16 @@ const j = (e, t = 0) => {
360
360
  }
361
361
  }, ye = {
362
362
  id: "sheet.operation.close.numfmt.panel",
363
- type: w.OPERATION,
363
+ type: D.OPERATION,
364
364
  handler: () => (
365
365
  // do nothing,just notify panel is closed
366
366
  !0
367
367
  )
368
- }, De = Nt("INumfmtController");
368
+ }, De = Tt("INumfmtController");
369
369
  _t(B.Rendered, De);
370
370
  const de = {
371
371
  id: "sheet.operation.open.numfmt.panel",
372
- type: w.OPERATION,
372
+ type: D.OPERATION,
373
373
  handler: (e) => (e.get(De).openPanel(), !0)
374
374
  };
375
375
  var et = { exports: {} }, _e = {};
@@ -657,7 +657,7 @@ const He = "numfmtCurrency", dn = (e) => {
657
657
  ] });
658
658
  }, st = {
659
659
  id: "sheet.command.numfmt.set.percent",
660
- type: w.COMMAND,
660
+ type: D.COMMAND,
661
661
  handler: async (e) => {
662
662
  const t = e.get(O), n = e.get(U).getSelections();
663
663
  if (!n || !n.length)
@@ -787,7 +787,7 @@ let ce = class extends z {
787
787
  var o, c;
788
788
  const i = this._univerInstanceService.getCurrentUnitForType(T.UNIVER_SHEET);
789
789
  this.openPanel(), n.add(
790
- this._sheetInterceptorService.intercept(ze.CELL_CONTENT, {
790
+ this._sheetInterceptorService.intercept(We.CELL_CONTENT, {
791
791
  priority: 99,
792
792
  handler: (a, f, m) => {
793
793
  const { row: l, col: u } = f, p = m(a) || {};
@@ -846,7 +846,7 @@ ce = Mn([
846
846
  K(B.Rendered, ce),
847
847
  M(0, b(Pe)),
848
848
  M(1, b(Fe)),
849
- M(2, D),
849
+ M(2, w),
850
850
  M(3, O),
851
851
  M(4, b(U)),
852
852
  M(5, Lt),
@@ -970,7 +970,7 @@ let ae = class extends z {
970
970
  getMutations(r) {
971
971
  var n;
972
972
  switch (r.id) {
973
- case It.id: {
973
+ case Nt.id: {
974
974
  const s = t._univerInstanceService.getCurrentUnitForType(T.UNIVER_SHEET), i = s.getUnitId(), o = (n = s.getActiveSheet()) == null ? void 0 : n.getSheetId();
975
975
  if (!o)
976
976
  return {
@@ -1002,9 +1002,9 @@ let ae = class extends z {
1002
1002
  if (a) {
1003
1003
  const u = {
1004
1004
  id: Y.id,
1005
- params: We(i, o, a)
1005
+ params: ke(i, o, a)
1006
1006
  };
1007
- m.push(u), l.push(...ke(t._injector, u.params));
1007
+ m.push(u), l.push(...Ge(t._injector, u.params));
1008
1008
  }
1009
1009
  if (f) {
1010
1010
  const u = {
@@ -1015,7 +1015,7 @@ let ae = class extends z {
1015
1015
  ranges: f
1016
1016
  }
1017
1017
  };
1018
- m.push(u), l.push(...Ge(t._injector, u.params));
1018
+ m.push(u), l.push(...ze(t._injector, u.params));
1019
1019
  }
1020
1020
  return {
1021
1021
  redos: m,
@@ -1036,9 +1036,9 @@ ae = xn([
1036
1036
  K(B.Rendered, ae),
1037
1037
  W(0, b(Pe)),
1038
1038
  W(1, b(H)),
1039
- W(2, b(D)),
1040
- W(3, b(Re)),
1041
- W(4, Mt(Rt))
1039
+ W(2, b(w)),
1040
+ W(3, b(Me)),
1041
+ W(4, It(Rt))
1042
1042
  ], ae);
1043
1043
  function jn(e) {
1044
1044
  return /^-?\d+(\.\d+)?$/.test(e);
@@ -1188,7 +1188,7 @@ const ue = [
1188
1188
  hidden$: re(e, T.UNIVER_SHEET),
1189
1189
  disabled$: X(e, { workbookTypes: [q], worksheetTypes: [J, Z], rangeTypes: [Q] })
1190
1190
  }), Wn = (e) => {
1191
- const t = e.get(H), r = e.get(D), n = e.get(O), s = e.get(E), i = e.get(U), o = xt(r, "", ({ workbook: c, worksheet: a }) => new k(
1191
+ const t = e.get(H), r = e.get(w), n = e.get(O), s = e.get(E), i = e.get(U), o = xt(r, "", ({ workbook: c, worksheet: a }) => new k(
1192
1192
  (f) => Ut(
1193
1193
  i.selectionMoveEnd$,
1194
1194
  new k((m) => {
@@ -1251,7 +1251,7 @@ let G = class extends z {
1251
1251
  };
1252
1252
  G = zn([
1253
1253
  K(B.Rendered, G),
1254
- Te(1, b(Re)),
1254
+ Te(1, b(Me)),
1255
1255
  Te(2, b(Ke)),
1256
1256
  Te(3, b(Bt))
1257
1257
  ], G);
@@ -1278,11 +1278,17 @@ let he = class extends bt {
1278
1278
  at(he, "pluginName", Ee);
1279
1279
  at(he, "type", T.UNIVER_SHEET);
1280
1280
  he = Jn([
1281
- Ct(Et, Ot),
1282
- Zn(1, b(Re))
1281
+ Ct(Mt, Ot),
1282
+ Zn(1, b(Me))
1283
1283
  ], he);
1284
1284
  export {
1285
+ Je as AddDecimalCommand,
1286
+ ye as CloseNumfmtPanelOperator,
1287
+ de as OpenNumfmtPanelOperator,
1288
+ Qe as SetCurrencyCommand,
1285
1289
  $ as SetNumfmtCommand,
1290
+ st as SetPercentCommand,
1291
+ Xe as SubtractDecimalCommand,
1286
1292
  he as UniverSheetsNumfmtPlugin,
1287
1293
  we as getPatternPreview
1288
1294
  };
@@ -13,5 +13,4 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- /// <reference types="react" />
17
16
  export declare const UserHabitCurrencyContext: import('react').Context<string[]>;
@@ -4,12 +4,12 @@ import { Dependency } from '@wendellhu/redi';
4
4
  export declare const createTestBed: (dependencies?: Dependency[]) => {
5
5
  univer: Univer;
6
6
  get: {
7
- <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, lookUp?: import('@wendellhu/redi').LookUp | undefined): T;
8
- <T_1>(id: import('@wendellhu/redi').DependencyIdentifier<T_1>, quantity: import("@wendellhu/redi").Quantity.MANY, lookUp?: import('@wendellhu/redi').LookUp | undefined): T_1[];
9
- <T_2>(id: import('@wendellhu/redi').DependencyIdentifier<T_2>, quantity: import("@wendellhu/redi").Quantity.OPTIONAL, lookUp?: import('@wendellhu/redi').LookUp | undefined): T_2 | null;
10
- <T_3>(id: import('@wendellhu/redi').DependencyIdentifier<T_3>, quantity: import("@wendellhu/redi").Quantity.REQUIRED, lookUp?: import('@wendellhu/redi').LookUp | undefined): T_3;
11
- <T_4>(id: import('@wendellhu/redi').DependencyIdentifier<T_4>, quantity?: import('@wendellhu/redi').Quantity | undefined, lookUp?: import('@wendellhu/redi').LookUp | undefined): T_4 | T_4[] | null;
12
- <T_5>(id: import('@wendellhu/redi').DependencyIdentifier<T_5>, quantityOrLookup?: import('@wendellhu/redi').Quantity | import('@wendellhu/redi').LookUp | undefined, lookUp?: import('@wendellhu/redi').LookUp | undefined): T_5 | T_5[] | null;
7
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, lookUp?: import('@wendellhu/redi').LookUp): T;
8
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, quantity: import("@wendellhu/redi").Quantity.MANY, lookUp?: import('@wendellhu/redi').LookUp): T[];
9
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, quantity: import("@wendellhu/redi").Quantity.OPTIONAL, lookUp?: import('@wendellhu/redi').LookUp): T | null;
10
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, quantity: import("@wendellhu/redi").Quantity.REQUIRED, lookUp?: import('@wendellhu/redi').LookUp): T;
11
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, quantity?: import('@wendellhu/redi').Quantity, lookUp?: import('@wendellhu/redi').LookUp): T[] | T | null;
12
+ <T>(id: import('@wendellhu/redi').DependencyIdentifier<T>, quantityOrLookup?: import('@wendellhu/redi').Quantity | import('@wendellhu/redi').LookUp, lookUp?: import('@wendellhu/redi').LookUp): T[] | T | null;
13
13
  };
14
14
  sheet: import('@univerjs/core').Workbook;
15
15
  unitId: string;
@@ -13,6 +13,12 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { type ISetNumfmtCommandParams, SetNumfmtCommand } from './commands/commands/set-numfmt.command';
17
16
  export { UniverSheetsNumfmtPlugin } from './numfmt-plugin';
18
17
  export { getPatternPreview } from './utils/pattern';
18
+ export { AddDecimalCommand } from './commands/commands/add-decimal.command';
19
+ export { SetCurrencyCommand } from './commands/commands/set-currency.command';
20
+ export { type ISetNumfmtCommandParams, SetNumfmtCommand } from './commands/commands/set-numfmt.command';
21
+ export { SetPercentCommand } from './commands/commands/set-percent.command';
22
+ export { SubtractDecimalCommand } from './commands/commands/subtract-decimal.command';
23
+ export { CloseNumfmtPanelOperator } from './commands/operations/close.numfmt.panel.operation';
24
+ export { OpenNumfmtPanelOperator } from './commands/operations/open.numfmt.panel.operation';
package/lib/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(C,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@wendellhu/redi"),require("@univerjs/sheets-ui"),require("rxjs"),require("@univerjs/engine-numfmt"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("rxjs/operators"),require("react"),require("@univerjs/design"),require("@wendellhu/redi/react-bindings")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","@wendellhu/redi","@univerjs/sheets-ui","rxjs","@univerjs/engine-numfmt","@univerjs/engine-render","@univerjs/ui","rxjs/operators","react","@univerjs/design","@wendellhu/redi/react-bindings"],a):(C=typeof globalThis<"u"?globalThis:C||self,a(C.UniverSheetsNumfmt={},C.UniverCore,C.UniverSheets,C["@wendellhu/redi"],C.UniverSheetsUi,C.rxjs,C.UniverEngineNumfmt,C.UniverEngineRender,C.UniverUi,C.rxjs.operators,C.React,C.UniverDesign,C["@wendellhu/redi/react-bindings"]))})(this,function(C,a,m,I,x,j,D,me,T,W,b,R,E){"use strict";var xt=Object.defineProperty;var Dt=(C,a,m)=>a in C?xt(C,a,{enumerable:!0,configurable:!0,writable:!0,value:m}):C[a]=m;var ee=(C,a,m)=>Dt(C,typeof a!="symbol"?a+"":a,m);const U={id:"sheet.command.numfmt.set.numfmt",type:a.CommandType.COMMAND,handler:(e,t)=>{if(!t)return!1;const s=e.get(a.ICommandService),n=e.get(a.IUniverInstanceService),r=e.get(a.IUndoRedoService),i=m.getSheetCommandTarget(n,t);if(!i)return!1;const{unitId:o,subUnitId:c}=i,l=t.values.filter(h=>!!h.pattern),v=t.values.filter(h=>!h.pattern),f=m.transformCellsToRange(o,c,l),u={unitId:o,subUnitId:c,ranges:v.map(h=>({startColumn:h.col,startRow:h.row,endColumn:h.col,endRow:h.row}))},d=[],S=[];if(l.length){Object.keys(f.values).forEach(g=>{const y=f.values[g];y.ranges=m.rangeMerge(y.ranges)}),d.push({id:m.SetNumfmtMutation.id,params:f});const h=m.factorySetNumfmtUndoMutation(e,f);S.push(...h)}if(v.length){u.ranges=m.rangeMerge(u.ranges),d.push({id:m.RemoveNumfmtMutation.id,params:u});const h=m.factoryRemoveNumfmtUndoMutation(e,u);S.push(...h)}const _=a.sequenceExecute(d,s).result;return _&&r.pushUndoRedo({unitID:o,undoMutations:S,redoMutations:d}),_}},te="SHEET_NUMFMT_PLUGIN",F=e=>D.getInfo(e).type||"unknown",B=(e,t,s)=>{const n=D.getInfo(e),r=s===a.LocaleType.ZH_CN?"zh-CN":"en",i=n._partitions[1],o=D.format(e,t,{locale:r});return t<0?{result:o,color:i.color}:{result:o}};var Ne=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,Re=(e,t,s,n)=>{for(var r=n>1?void 0:n?Ee(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&Ne(t,s,r),r},L=(e,t)=>(s,n)=>t(s,n,e);let G=class extends a.Disposable{constructor(e,t,s,n,r,i){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=s,this._commandService=n,this._numfmtService=r,this._localeService=i,this._initInterceptorCellContent()}_initInterceptorCellContent(){const e=new a.ObjectMatrix;this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(t,s,n)=>{const r=s.unitId,i=s.subUnitId,o=this._numfmtService.getValue(r,i,s.row,s.col);if(!o)return n(t);const c=t;if(!c||c.t!==a.CellValueType.NUMBER)return n(t);let l="";const v=e.getValue(s.row,s.col);if(v&&v.parameters===c.v)return n({...t,...v.result});const f=B(o.pattern,Number(c.v),this._localeService.getCurrentLocale());if(l=f.result,!l)return n(t);const u={v:l};if(f.color){const d=this._themeService.getCurrentTheme()[`${f.color}500`];d&&(u.interceptorStyle={cl:{rgb:d}})}return e.setValue(s.row,s.col,{result:u,parameters:c.v}),n({...t,...u})},priority:10})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetNumfmtMutation.id){const s=t.params;Object.keys(s.values).forEach(n=>{s.values[n].ranges.forEach(i=>{a.Range.foreach(i,(o,c)=>{e.realDeleteValue(o,c)})})})}else if(t.id===m.SetRangeValuesMutation.id){const s=t.params;new a.ObjectMatrix(s.cellValue).forValue((n,r)=>{e.realDeleteValue(n,r)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(j.switchMap(t=>{var s;return(s=t==null?void 0:t.activeSheet$)!=null?s:j.of(null)}),j.skip(1)).subscribe(()=>e.reset()))}};G=Re([a.OnLifecycle(a.LifecycleStages.Rendered,G),L(0,a.IUniverInstanceService),L(1,I.Inject(m.SheetInterceptorService)),L(2,I.Inject(a.ThemeService)),L(3,I.Inject(a.ICommandService)),L(4,I.Inject(m.INumfmtService)),L(5,I.Inject(a.LocaleService))],G);const w=(e,t=0)=>{var n;return e&&(n=D.getInfo(e).maxDecimals)!=null?n:t},z=(e,t)=>{if(e&&!t||!e&&t)return!1;const s=v=>v.reduce((f,u)=>{if(f.isEnd)return f;const d=u.value||u.num;return u.type==="point"?(f.isEnd=!0,f):{...f,result:f.result+d}},{isEnd:!1,result:""}).result,n=D.getInfo(e)._partitions,r=D.getInfo(t)._partitions,i=s(n[0].tokens),o=s(r[0].tokens),c=s(n[1].tokens),l=s(r[1].tokens);return i===o&&c===l&&n[1].color===r[1].color},de=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),N=(e,t)=>e.split(";").map(n=>/\.0?/.test(n)?n.replace(/\.0*/g,`${t>0?".":""}${de(Number(t||0))}`):/0([^0]?)|0$/.test(n)?n.replace(/0([^0]+)|0$/,`0${t>0?".":""}${de(Number(t||0))}$1`):n).join(";"),je=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),fe={id:"sheet.command.numfmt.add.decimal.command",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),s=e.get(m.SelectionManagerService),n=e.get(m.INumfmtService),r=e.get(a.IUniverInstanceService),i=s.getSelections();if(!i||!i.length)return!1;const o=m.getSheetCommandTarget(r);if(!o)return!1;const{unitId:c,subUnitId:l}=o;let v=0;i.forEach(S=>{a.Range.foreach(S.range,(_,h)=>{const g=n.getValue(c,l,_,h);if(!g)return;const y=w(g.pattern);v=y>v?y:v})});const f=v+1,u=N(`0${f>0?".0":""}`,f),d=[];return i.forEach(S=>{a.Range.foreach(S.range,(_,h)=>{const g=n.getValue(c,l,_,h);if(!g)d.push({row:_,col:h,pattern:u});else{const y=w(g.pattern),M=N(g.pattern,y+1);M!==g.pattern&&d.push({row:_,col:h,pattern:M})}})}),d.length?await t.executeCommand(U.id,{values:d}):!1}},Oe=[{label:"1930-08-05",suffix:"yyyy-MM-dd"},{label:"1930/08/05",suffix:"yyyy/MM/dd"},{label:"1930年08月05日",suffix:'yyyy"年"MM"月"dd"日"'},{label:"08-05",suffix:"MM-dd"},{label:"8月5日",suffix:'M"月"d"日"'},{label:"13:30:30",suffix:"h:mm:ss"},{label:"13:30",suffix:"h:mm"},{label:"下午01:30",suffix:"A/P hh:mm"},{label:"下午1:30",suffix:"A/P h:mm"},{label:"下午1:30:30",suffix:"A/P h:mm:ss"},{label:"08-05 下午 01:30",suffix:"MM-dd A/P hh:mm"}],xe=[{label:"(1,235)",suffix:"#,##0_);(#,##0)"},{label:"(1,235) ",suffix:"#,##0_);[Red](#,##0)",color:"red"},{label:"1,234.56",suffix:"#,##0.00_);#,##0.00"},{label:"1,234.56",suffix:"#,##0.00_);[Red]#,##0.00",color:"red"},{label:"-1,234.56",suffix:"#,##0.00_);-#,##0.00"},{label:"-1,234.56",suffix:"#,##0.00_);[Red]-#,##0.00",color:"red"}],pe=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:"red"},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:"red"},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:"red"}],ve={id:"sheet.command.numfmt.set.currency",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),n=e.get(m.SelectionManagerService).getSelections();if(!n||!n.length)return!1;const r=[],i=pe[0].suffix("¥");return n.forEach(c=>{a.Range.foreach(c.range,(l,v)=>{r.push({row:l,col:v,pattern:i,type:"currency"})})}),await t.executeCommand(U.id,{values:r})}},he={id:"sheet.command.numfmt.subtract.decimal.command",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),s=e.get(m.SelectionManagerService),n=e.get(m.INumfmtService),r=e.get(a.IUniverInstanceService),i=s.getSelections();if(!i||!i.length)return!1;const o=m.getSheetCommandTarget(r);if(!o)return!1;const{unitId:c,subUnitId:l}=o;let v=0;i.forEach(_=>{a.Range.foreach(_.range,(h,g)=>{const y=n.getValue(c,l,h,g);if(!y)return;const M=w(y.pattern);v=M>v?M:v})});const f=v-1,u=N(`0${f>0?".0":"."}`,f),d=[];return i.forEach(_=>{a.Range.foreach(_.range,(h,g)=>{const y=n.getValue(c,l,h,g);if(!y)d.push({row:h,col:g,pattern:u});else{const M=w(y.pattern);d.push({row:h,col:g,pattern:N(y.pattern,M-1)})}})}),await t.executeCommand(U.id,{values:d})}},ne={id:"sheet.operation.close.numfmt.panel",type:a.CommandType.OPERATION,handler:()=>!0},se=I.createIdentifier("INumfmtController");a.runOnLifecycle(a.LifecycleStages.Rendered,se);const K={id:"sheet.operation.open.numfmt.panel",type:a.CommandType.OPERATION,handler:e=>(e.get(se).openPanel(),!0)};var Se={exports:{}},Y={};/**
1
+ (function(S,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("rxjs"),require("@univerjs/engine-numfmt"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("rxjs/operators"),require("react"),require("@univerjs/design"),require("@wendellhu/redi/react-bindings")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/sheets","@univerjs/sheets-ui","rxjs","@univerjs/engine-numfmt","@univerjs/engine-render","@univerjs/ui","rxjs/operators","react","@univerjs/design","@wendellhu/redi/react-bindings"],a):(S=typeof globalThis<"u"?globalThis:S||self,a(S.UniverSheetsNumfmt={},S.UniverCore,S["@wendellhu/redi"],S.UniverSheets,S.UniverSheetsUi,S.rxjs,S.UniverEngineNumfmt,S.UniverEngineRender,S.UniverUi,S.rxjs.operators,S.React,S.UniverDesign,S["@wendellhu/redi/react-bindings"]))})(this,function(S,a,I,m,x,O,D,ve,T,F,C,R,E){"use strict";var xt=Object.defineProperty;var Dt=(S,a,I)=>a in S?xt(S,a,{enumerable:!0,configurable:!0,writable:!0,value:I}):S[a]=I;var te=(S,a,I)=>Dt(S,typeof a!="symbol"?a+"":a,I);const ne="SHEET_NUMFMT_PLUGIN",B=e=>D.getInfo(e).type||"unknown",G=(e,t,r)=>{const n=D.getInfo(e),s=r===a.LocaleType.ZH_CN?"zh-CN":"en",i=n._partitions[1],o=D.format(e,t,{locale:s});return t<0?{result:o,color:i.color}:{result:o}};var Ne=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,Re=(e,t,r,n)=>{for(var s=n>1?void 0:n?Ee(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&Ne(t,r,s),s},L=(e,t)=>(r,n)=>t(r,n,e);let z=class extends a.Disposable{constructor(e,t,r,n,s,i){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=r,this._commandService=n,this._numfmtService=s,this._localeService=i,this._initInterceptorCellContent()}_initInterceptorCellContent(){const e=new a.ObjectMatrix;this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(t,r,n)=>{const s=r.unitId,i=r.subUnitId,o=this._numfmtService.getValue(s,i,r.row,r.col);if(!o)return n(t);const c=t;if(!c||c.t!==a.CellValueType.NUMBER)return n(t);let l="";const v=e.getValue(r.row,r.col);if(v&&v.parameters===c.v)return n({...t,...v.result});const f=G(o.pattern,Number(c.v),this._localeService.getCurrentLocale());if(l=f.result,!l)return n(t);const u={v:l};if(f.color){const d=this._themeService.getCurrentTheme()[`${f.color}500`];d&&(u.interceptorStyle={cl:{rgb:d}})}return e.setValue(r.row,r.col,{result:u,parameters:c.v}),n({...t,...u})},priority:10})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===m.SetNumfmtMutation.id){const r=t.params;Object.keys(r.values).forEach(n=>{r.values[n].ranges.forEach(i=>{a.Range.foreach(i,(o,c)=>{e.realDeleteValue(o,c)})})})}else if(t.id===m.SetRangeValuesMutation.id){const r=t.params;new a.ObjectMatrix(r.cellValue).forValue((n,s)=>{e.realDeleteValue(n,s)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(O.switchMap(t=>{var r;return(r=t==null?void 0:t.activeSheet$)!=null?r:O.of(null)}),O.skip(1)).subscribe(()=>e.reset()))}};z=Re([a.OnLifecycle(a.LifecycleStages.Rendered,z),L(0,a.IUniverInstanceService),L(1,I.Inject(m.SheetInterceptorService)),L(2,I.Inject(a.ThemeService)),L(3,I.Inject(a.ICommandService)),L(4,I.Inject(m.INumfmtService)),L(5,I.Inject(a.LocaleService))],z);const U=(e,t=0)=>{var n;return e&&(n=D.getInfo(e).maxDecimals)!=null?n:t},K=(e,t)=>{if(e&&!t||!e&&t)return!1;const r=v=>v.reduce((f,u)=>{if(f.isEnd)return f;const d=u.value||u.num;return u.type==="point"?(f.isEnd=!0,f):{...f,result:f.result+d}},{isEnd:!1,result:""}).result,n=D.getInfo(e)._partitions,s=D.getInfo(t)._partitions,i=r(n[0].tokens),o=r(s[0].tokens),c=r(n[1].tokens),l=r(s[1].tokens);return i===o&&c===l&&n[1].color===s[1].color},he=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),N=(e,t)=>e.split(";").map(n=>/\.0?/.test(n)?n.replace(/\.0*/g,`${t>0?".":""}${he(Number(t||0))}`):/0([^0]?)|0$/.test(n)?n.replace(/0([^0]+)|0$/,`0${t>0?".":""}${he(Number(t||0))}$1`):n).join(";"),Oe=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),w={id:"sheet.command.numfmt.set.numfmt",type:a.CommandType.COMMAND,handler:(e,t)=>{if(!t)return!1;const r=e.get(a.ICommandService),n=e.get(a.IUniverInstanceService),s=e.get(a.IUndoRedoService),i=m.getSheetCommandTarget(n,t);if(!i)return!1;const{unitId:o,subUnitId:c}=i,l=t.values.filter(h=>!!h.pattern),v=t.values.filter(h=>!h.pattern),f=m.transformCellsToRange(o,c,l),u={unitId:o,subUnitId:c,ranges:v.map(h=>({startColumn:h.col,startRow:h.row,endColumn:h.col,endRow:h.row}))},d=[],g=[];if(l.length){Object.keys(f.values).forEach(_=>{const b=f.values[_];b.ranges=m.rangeMerge(b.ranges)}),d.push({id:m.SetNumfmtMutation.id,params:f});const h=m.factorySetNumfmtUndoMutation(e,f);g.push(...h)}if(v.length){u.ranges=m.rangeMerge(u.ranges),d.push({id:m.RemoveNumfmtMutation.id,params:u});const h=m.factoryRemoveNumfmtUndoMutation(e,u);g.push(...h)}const y=a.sequenceExecute(d,r).result;return y&&s.pushUndoRedo({unitID:o,undoMutations:g,redoMutations:d}),y}},re={id:"sheet.command.numfmt.add.decimal.command",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),r=e.get(m.SelectionManagerService),n=e.get(m.INumfmtService),s=e.get(a.IUniverInstanceService),i=r.getSelections();if(!i||!i.length)return!1;const o=m.getSheetCommandTarget(s);if(!o)return!1;const{unitId:c,subUnitId:l}=o;let v=0;i.forEach(g=>{a.Range.foreach(g.range,(y,h)=>{const _=n.getValue(c,l,y,h);if(!_)return;const b=U(_.pattern);v=b>v?b:v})});const f=v+1,u=N(`0${f>0?".0":""}`,f),d=[];return i.forEach(g=>{a.Range.foreach(g.range,(y,h)=>{const _=n.getValue(c,l,y,h);if(!_)d.push({row:y,col:h,pattern:u});else{const b=U(_.pattern),M=N(_.pattern,b+1);M!==_.pattern&&d.push({row:y,col:h,pattern:M})}})}),d.length?await t.executeCommand(w.id,{values:d}):!1}},je=[{label:"1930-08-05",suffix:"yyyy-MM-dd"},{label:"1930/08/05",suffix:"yyyy/MM/dd"},{label:"1930年08月05日",suffix:'yyyy"年"MM"月"dd"日"'},{label:"08-05",suffix:"MM-dd"},{label:"8月5日",suffix:'M"月"d"日"'},{label:"13:30:30",suffix:"h:mm:ss"},{label:"13:30",suffix:"h:mm"},{label:"下午01:30",suffix:"A/P hh:mm"},{label:"下午1:30",suffix:"A/P h:mm"},{label:"下午1:30:30",suffix:"A/P h:mm:ss"},{label:"08-05 下午 01:30",suffix:"MM-dd A/P hh:mm"}],xe=[{label:"(1,235)",suffix:"#,##0_);(#,##0)"},{label:"(1,235) ",suffix:"#,##0_);[Red](#,##0)",color:"red"},{label:"1,234.56",suffix:"#,##0.00_);#,##0.00"},{label:"1,234.56",suffix:"#,##0.00_);[Red]#,##0.00",color:"red"},{label:"-1,234.56",suffix:"#,##0.00_);-#,##0.00"},{label:"-1,234.56",suffix:"#,##0.00_);[Red]-#,##0.00",color:"red"}],Se=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:"red"},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:"red"},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:"red"}],se={id:"sheet.command.numfmt.set.currency",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),n=e.get(m.SelectionManagerService).getSelections();if(!n||!n.length)return!1;const s=[],i=Se[0].suffix("¥");return n.forEach(c=>{a.Range.foreach(c.range,(l,v)=>{s.push({row:l,col:v,pattern:i,type:"currency"})})}),await t.executeCommand(w.id,{values:s})}},ie={id:"sheet.command.numfmt.subtract.decimal.command",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),r=e.get(m.SelectionManagerService),n=e.get(m.INumfmtService),s=e.get(a.IUniverInstanceService),i=r.getSelections();if(!i||!i.length)return!1;const o=m.getSheetCommandTarget(s);if(!o)return!1;const{unitId:c,subUnitId:l}=o;let v=0;i.forEach(y=>{a.Range.foreach(y.range,(h,_)=>{const b=n.getValue(c,l,h,_);if(!b)return;const M=U(b.pattern);v=M>v?M:v})});const f=v-1,u=N(`0${f>0?".0":"."}`,f),d=[];return i.forEach(y=>{a.Range.foreach(y.range,(h,_)=>{const b=n.getValue(c,l,h,_);if(!b)d.push({row:h,col:_,pattern:u});else{const M=U(b.pattern);d.push({row:h,col:_,pattern:N(b.pattern,M-1)})}})}),await t.executeCommand(w.id,{values:d})}},Y={id:"sheet.operation.close.numfmt.panel",type:a.CommandType.OPERATION,handler:()=>!0},ae=I.createIdentifier("INumfmtController");a.runOnLifecycle(a.LifecycleStages.Rendered,ae);const V={id:"sheet.operation.open.numfmt.panel",type:a.CommandType.OPERATION,handler:e=>(e.get(ae).openPanel(),!0)};var ge={exports:{}},J={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var De=b,Ue=Symbol.for("react.element"),we=Symbol.for("react.fragment"),Le=Object.prototype.hasOwnProperty,Ae=De.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ve={key:!0,ref:!0,__self:!0,__source:!0};function ge(e,t,s){var n,r={},i=null,o=null;s!==void 0&&(i=""+s),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(n in t)Le.call(t,n)&&!Ve.hasOwnProperty(n)&&(r[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)r[n]===void 0&&(r[n]=t[n]);return{$$typeof:Ue,type:e,key:i,ref:o,props:r,_owner:Ae.current}}Y.Fragment=we,Y.jsx=ge,Y.jsxs=ge,Se.exports=Y;var p=Se.exports;const re=b.createContext([]),ie=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"];var He=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,ke=(e,t,s,n)=>{for(var r=n>1?void 0:n?$e(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&He(t,s,r),r},We=(e,t)=>(s,n)=>t(s,n,e);let J=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){const s=this._getKey(e);return this._localStorageService.getItem(s).then(n=>{n||this._localStorageService.setItem(s,t)})}markHabit(e,t){const s=this._getKey(e);this._localStorageService.getItem(s).then(n=>{if(n){const r=n.findIndex(i=>i===t);r>-1&&n.splice(r,1),n.unshift(t),this._localStorageService.setItem(s,n)}})}async getHabit(e,t){const s=this._getKey(e),n=await this._localStorageService.getItem(s);if(t&&n){const r=n.map((i,o,c)=>{const l=c.length;return{value:i,priority:l-o}});return t.sort((i,o)=>{var v,f;const c=((v=r.find(u=>u.value===i))==null?void 0:v.priority)||-1;return(((f=r.find(u=>u.value===o))==null?void 0:f.priority)||-1)-c})}return n||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};J=ke([We(0,I.Inject(a.ILocalStorageService))],J);const _e="numfmtCurrency",Fe=e=>{const t=E.useDependency(J),[s,n]=b.useState(ie);return b.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(_e,[...ie]).then(i=>{n(i),e&&e(i)})})},[]),{userHabitCurrency:s,mark:i=>{t.markHabit(_e,i)}}},Be=()=>{const e=b.useRef([]),[t,s]=b.useState({});return b.useEffect(()=>{e.current.forEach(r=>{r()}),e.current=[]},[t]),r=>{e.current.push(r),s({})}},V=e=>ie.find(s=>e.includes(s)),Ge=e=>!!V(e)&&e.startsWith("_("),ze=e=>{const[t,s]=b.useState(()=>w(e.defaultPattern||"",2)),n=b.useContext(re),[r,i]=b.useState(()=>V(e.defaultPattern)||n[0]),o=b.useMemo(()=>n.map(u=>({label:u,value:u})),[]),l=E.useDependency(a.LocaleService).t;e.action.current=()=>N(`_("${r}"* #,##0${t>0?".0":""}_)`,t);const v=u=>{i(u),e.onChange(N(`_("${u}"* #,##0${t>0?".0":""}_)`,t))},f=u=>{const d=u||0;s(d),e.onChange(N(`_("${r}"* #,##0${d>0?".0":""}_)`,d))};return p.jsxs("div",{children:[p.jsxs("div",{className:"m-t-16 options ",children:[p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:l("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8 w-120",children:p.jsx(R.InputNumber,{value:t,max:20,min:0,onChange:f})})]}),p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:l("sheet.numfmt.currencyType")}),p.jsx("div",{className:"m-t-8 w-140",children:p.jsx(R.Select,{onChange:v,options:o,value:r})})]})]}),p.jsx("div",{className:"describe m-t-14",children:l("sheet.numfmt.accountingDes")})]})},ae=e=>pe.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ye=()=>Oe.map(e=>({label:e.label,value:e.suffix})),be=()=>xe.map(e=>({label:e.label,value:e.suffix,color:e.color})),Ke=e=>!!V(e)&&!e.startsWith("_("),Ye=e=>{const s=E.useDependency(a.LocaleService).t,n=b.useContext(re),[r,i]=b.useState(()=>V(e.defaultPattern)||n[0]),[o,c]=b.useState(()=>w(e.defaultPattern||"",2)),[l,v]=b.useState(()=>{var y;const h=ae(r);return((y=h.find(M=>z(M.value,e.defaultPattern)))==null?void 0:y.value)||h[0].value}),f=b.useMemo(()=>ae(r),[r]),u=b.useMemo(()=>n.map(h=>({label:h,value:h})),[n]);e.action.current=()=>N(l,o);const d=h=>{if(h===void 0)return;i(h);const g=ae(h)[0].value;v(g),e.onChange(N(g,o))},S=h=>{h!==void 0&&(v(h),e.onChange(N(h,o)))},_=h=>{c(h||0),e.onChange(N(l,h||0))};return p.jsxs("div",{children:[p.jsxs("div",{className:"m-t-16 options ",children:[p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:s("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8 w-120",children:p.jsx(R.InputNumber,{value:o,max:20,min:0,onChange:_})})]}),p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:s("sheet.numfmt.currencyType")}),p.jsx("div",{className:"m-t-8 w-140",children:p.jsx(R.Select,{onChange:d,options:u,value:r})})]})]}),p.jsx("div",{className:"m-t-16 label",children:s("sheet.numfmt.negType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{onChange:S,options:f,value:l})}),p.jsx("div",{className:"describe m-t-14",children:s("sheet.numfmt.currencyDes")})]})},Je=e=>{const t=D.getInfo(e);return ye().map(s=>s.value).includes(e)||["date","datetime","time"].includes(t.type)},Ze=e=>{const t=b.useMemo(ye,[]),n=E.useDependency(a.LocaleService).t,[r,i]=b.useState(()=>{if(e.defaultPattern){const c=t.find(l=>l.value===e.defaultPattern);if(c)return c.value}return t[0].value});e.action.current=()=>r;const o=c=>{c!==void 0&&(i(c),e.onChange(c))};return p.jsxs("div",{children:[p.jsx("div",{className:"m-t-16 label",children:n("sheet.numfmt.dateType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{value:r,options:t,onChange:o})}),p.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.dateDes")})]})},Qe=e=>!e,Xe=e=>{const s=E.useDependency(a.LocaleService).t;return e.action.current=()=>"",p.jsx("div",{children:p.jsx("div",{className:"describe m-t-14",children:s("sheet.numfmt.generalDes")})})},qe=e=>be().some(t=>z(t.value,e)),et=e=>{const t=E.useDependency(a.LocaleService),s=b.useMemo(be,[]),[n,r]=b.useState(()=>w(e.defaultPattern||"",0)),[i,o]=b.useState(()=>{const u=s.find(d=>z(d.value,e.defaultPattern||""));return(u==null?void 0:u.value)||s[0].value}),c=b.useMemo(()=>N(i,Number(n||0)),[i,n]),l=b.useMemo(()=>!je(i),[i]),v=u=>{r(u||0),e.onChange(N(i,Number(u||0)))},f=u=>{u!==void 0&&(r(w(u,0)),o(u),e.onChange(u))};return e.action.current=()=>c,p.jsxs("div",{children:[p.jsx("div",{className:"m-t-16 label",children:t.t("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.InputNumber,{disabled:l,value:n,max:20,min:0,onChange:v})}),p.jsxs("div",{className:"m-t-16 label",children:[" ",t.t("sheet.numfmt.negType")]}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{onChange:f,options:s,value:i})}),p.jsx("div",{className:"describe m-t-14",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})},tt=e=>{const{defaultValue:t,defaultPattern:s,row:n,col:r}=e.value,i=E.useDependency(a.LocaleService),o=b.useRef(()=>""),c=i.t,l=Be(),v=b.useMemo(()=>[{label:"sheet.numfmt.general",component:Xe},{label:"sheet.numfmt.accounting",component:ze},{label:"sheet.numfmt.currency",component:Ye},{label:"sheet.numfmt.date",component:Ze},{label:"sheet.numfmt.thousandthPercentile",component:et}].map(P=>({...P,label:c(P.label)})),[]),[f,u]=b.useState(y),[d,S]=b.useState(()=>`${n}_${r}`),{mark:_,userHabitCurrency:h}=Fe(()=>S(`${n}_${r}_userCurrency'`)),g=b.useMemo(()=>{var P;return(P=v.find(A=>A.label===f))==null?void 0:P.component},[f]);function y(){return[Qe,Ge,Ke,Je,qe].reduce((A,jt,Ot)=>A||(jt(s)?v[Ot].label:""),"")||v[0].label}const M=v.map(P=>({label:P.label,value:P.label})),k=P=>{u(P),l(()=>e.onChange({type:"change",value:o.current()||""}))},ce=P=>{e.onChange({type:"change",value:P})},le=()=>{const P=o.current()||"",A=V(P);A&&_(A),e.onChange({type:"confirm",value:P})},ue=()=>{e.onChange({type:"cancel",value:""})},Rt={onChange:ce,defaultValue:t,defaultPattern:s,action:o};return b.useEffect(()=>{u(y()),S(`${n}_${r}`)},[n,r]),p.jsxs("div",{className:"numfmt-panel p-b-20",children:[p.jsxs("div",{children:[p.jsx("div",{className:"label m-t-14",children:c("sheet.numfmt.numfmtType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.Select,{onChange:k,options:M,value:f})}),p.jsx("div",{children:g&&p.jsx(re.Provider,{value:h,children:b.createElement(g,{...Rt,key:d})})})]}),p.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[p.jsx(R.Button,{size:"small",onClick:ue,className:"m-r-12",children:c("sheet.numfmt.cancel")}),p.jsx(R.Button,{type:"primary",size:"small",onClick:le,children:c("sheet.numfmt.confirm")})]})]})},Ce={id:"sheet.command.numfmt.set.percent",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),n=e.get(m.SelectionManagerService).getSelections();if(!n||!n.length)return!1;const r=[],i="0%";return n.forEach(c=>{a.Range.foreach(c.range,(l,v)=>{r.push({row:l,col:v,pattern:i,type:"percent"})})}),await t.executeCommand(U.id,{values:r})}};var nt=Object.defineProperty,st=Object.getOwnPropertyDescriptor,rt=(e,t,s,n)=>{for(var r=n>1?void 0:n?st(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&nt(t,s,r),r},O=(e,t)=>(s,n)=>t(s,n,e);let Z=class extends a.Disposable{constructor(t,s,n,r,i,o,c,l,v,f){super();ee(this,"_previewPattern","");ee(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=s,this._univerInstanceService=n,this._commandService=r,this._selectionManagerService=i,this._renderManagerService=o,this._numfmtService=c,this._componentManager=l,this._sidebarService=v,this._localeService=f,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener()}openPanel(){const t=this._sidebarService,s=this._selectionManagerService,n=this._commandService,r=this._univerInstanceService,i=this._numfmtService,o=this._localeService,l=(s.getSelectionRanges()||[])[0];if(!l)return!1;const v=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=v.getActiveSheet();if(!f)return!1;const u=f.getCellRaw(l.startRow,l.startColumn),d=i.getValue(v.getUnitId(),f.getSheetId(),l.startRow,l.startColumn);let S="";d&&(S=d.pattern);const _=(u==null?void 0:u.t)===a.CellValueType.NUMBER?u.v:12345678,h={onChange:g=>{if(g.type==="change")this._previewPattern=g.value,this._forceUpdate();else if(g.type==="confirm"){const y=s.getSelectionRanges()||[],M={values:[]},k=F(g.value);y.forEach(ce=>{a.Range.foreach(ce,(le,ue)=>{M.values.push({row:le,col:ue,pattern:g.value,type:k})})}),n.executeCommand(U.id,M),t.close()}else g.type==="cancel"&&t.close()},value:{defaultPattern:S,defaultValue:_,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:te,...h},onClose:()=>{this._forceUpdate(),n.executeCommand(ne.id)}}),!0}_forceUpdate(t){var n;const s=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId());s==null||s.with(x.SheetSkeletonManagerService).reCalculate(),(n=s==null?void 0:s.mainComponent)==null||n.makeDirty()}_initCommands(){[fe,he,ve,Ce,K,ne,U].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this._componentManager.register(te,tt)}_initRealTimeRenderingInterceptor(){const t=new j.Observable(n=>{this._commandService.onCommandExecuted(r=>{r.id===K.id&&n.next(!0),r.id===ne.id&&n.next(!1)})}),s=j.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(W.map(n=>n?n.map(r=>r.range):[]))]);this.disposeWithMe(a.toDisposable(s.pipe(W.switchMap(([n,r])=>new j.Observable(i=>{const o=new a.DisposableCollection;return n&&r.length&&i.next({selectionRanges:r,disposableCollection:o}),()=>{o.dispose()}})),W.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:n,selectionRanges:r})=>{var o,c;const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);this.openPanel(),n.add(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,handler:(l,v,f)=>{const{row:u,col:d}=v,S=f(l)||{};if(r.find(_=>_.startColumn<=d&&_.endColumn>=d&&_.startRow<=u&&_.endRow>=u)){const _=v.worksheet.getCellRaw(u,d),h=_==null?void 0:_.v,g=_==null?void 0:_.t;if(h==null||g!==a.CellValueType.NUMBER||this._previewPattern===null)return S;const y=B(this._previewPattern,h,this._localeService.getCurrentLocale());if(y.color){const k=this._themeService.getCurrentTheme()[`${y.color}500`];return{...S,v:y.result,t:a.CellValueType.STRING,s:{cl:{rgb:k}}}}return{...S,v:y.result,t:a.CellValueType.STRING}}return S}})),(c=(o=this._renderManagerService.getRenderById(i.getUnitId()))==null?void 0:o.mainComponent)==null||c.makeDirty()})))}_commandExecutedListener(){const t=[m.RemoveNumfmtMutation.id,m.SetNumfmtMutation.id];this.disposeWithMe(new j.Observable(s=>{const n=this._commandService.onCommandExecuted(r=>{if(t.includes(r.id)){const i=r.params;s.next(i.unitId)}});return()=>n.dispose()}).pipe(W.debounceTime(16)).subscribe(s=>this._forceUpdate(s)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var s;t||((s=this._sidebarDisposable)==null||s.dispose(),this._sidebarDisposable=null)})}};Z=rt([a.OnLifecycle(a.LifecycleStages.Rendered,Z),O(0,I.Inject(m.SheetInterceptorService)),O(1,I.Inject(a.ThemeService)),O(2,a.IUniverInstanceService),O(3,a.ICommandService),O(4,I.Inject(m.SelectionManagerService)),O(5,me.IRenderManagerService),O(6,m.INumfmtService),O(7,I.Inject(T.ComponentManager)),O(8,T.ISidebarService),O(9,I.Inject(a.LocaleService))],Z);var it=Object.defineProperty,at=Object.getOwnPropertyDescriptor,ot=(e,t,s,n)=>{for(var r=n>1?void 0:n?at(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&it(t,s,r),r},H=(e,t)=>(s,n)=>t(s,n,e);const ct=()=>{let e=[];return{add:(r,i,o,c,l)=>e.push({unitId:r,subUnitId:i,row:o,col:c,value:l}),getEffects:()=>e,clean:()=>{e=[]}}};let Q=class extends a.Disposable{constructor(t,s,n,r,i){super();ee(this,"_collectEffectMutation",ct());this._sheetInterceptorService=t,this._numfmtService=s,this._univerInstanceService=n,this._injector=r,this._editorBridgeService=i,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(a.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:(t,s,n)=>{const r=s.row,i=s.col,o=this._numfmtService.getValue(s.unitId,s.subUnitId,r,i);if(o)switch(F(o.pattern)){case"scientific":case"percent":case"currency":case"grouped":case"number":return s.worksheet.getCellRaw(r,i);case"date":case"time":case"datetime":default:return n&&n(t)}return n(t)}})))}_initInterceptorEditorEnd(){this._editorBridgeService&&this.disposeWithMe(a.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{handler:(t,s,n)=>{var f;this._collectEffectMutation.clean();const r=this._numfmtService.getValue(s.unitId,s.subUnitId,s.row,s.col),i=(f=r&&F(r.pattern))!=null?f:"",o=()=>{r&&this._collectEffectMutation.add(s.unitId,s.subUnitId,s.row,s.col,null)};if(!(t!=null&&t.v))return n(t);const c=String(t.v),l=D.parseDate(c)||D.parseTime(c);if(!!l){if(l&&l.z){const u=Number(l.v);return this._collectEffectMutation.add(s.unitId,s.subUnitId,s.row,s.col,{pattern:l.z}),{...t,v:u,t:a.CellValueType.NUMBER}}}else(["date","time","datetime"].includes(i)||!lt(c))&&o();return n(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(s){var n;switch(s.id){case m.SetRangeValuesCommand.id:{const r=t._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),o=(n=r.getActiveSheet())==null?void 0:n.getSheetId();if(!o)return{redos:[],undos:[]};const c=t._collectEffectMutation.getEffects();if(!c.length)return{redos:[],undos:[]};const l=c.filter(d=>{var S;return!!((S=d.value)!=null&&S.pattern)}).map(d=>({row:d.row,col:d.col,pattern:d.value.pattern})),v=c.filter(d=>{var S;return!((S=d.value)!=null&&S.pattern)}).map(d=>({startRow:d.row,endColumn:d.col,startColumn:d.col,endRow:d.row})),f=[],u=[];if(l){const d={id:m.SetNumfmtMutation.id,params:m.transformCellsToRange(i,o,l)};f.push(d),u.push(...m.factorySetNumfmtUndoMutation(t._injector,d.params))}if(v){const d={id:m.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:v}};f.push(d),u.push(...m.factoryRemoveNumfmtUndoMutation(t._injector,d.params))}return{redos:f,undos:u.reverse()}}}return{redos:[],undos:[]}}}))}};Q=ot([a.OnLifecycle(a.LifecycleStages.Rendered,Q),H(0,I.Inject(m.SheetInterceptorService)),H(1,I.Inject(m.INumfmtService)),H(2,I.Inject(a.IUniverInstanceService)),H(3,I.Inject(I.Injector)),H(4,I.Optional(x.IEditorBridgeService))],Q);function lt(e){return/^-?\d+(\.\d+)?$/.test(e)}var ut=Object.defineProperty,mt=Object.getOwnPropertyDescriptor,dt=(e,t,s,n)=>{for(var r=n>1?void 0:n?mt(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&ut(t,s,r),r},ft=(e,t)=>(s,n)=>t(s,n,e);let X=class extends a.Disposable{constructor(e){super(),this._localeService=e}};X=dt([a.OnLifecycle(a.LifecycleStages.Rendered,X),ft(0,I.Inject(a.LocaleService))],X);const q=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:"@@@"},"|",{label:"sheet.numfmt.number",pattern:"0"},"|",{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:""}],Ie="sheet.numfmt.moreNumfmtType",Te="sheet.numfmt.moreNumfmtType.options",pt=e=>{var n;const t=E.useDependency(a.LocaleService),s=(n=e.value)!=null?n:t.t("sheet.numfmt.general");return p.jsx("span",{className:"more-numfmt-type",children:s})},vt=()=>{const e=E.useDependency(a.ICommandService),t=E.useDependency(a.LocaleService),s=E.useInjector(),n=E.useDependency(m.SelectionManagerService),r=c=>{const l=n.getLast();if(!l)return;const v=s.get(me.ITextSelectionRenderManager),f=l.range,u=[];a.Range.foreach(f,(d,S)=>{c?u.push({row:d,col:S,pattern:c,type:F(c)}):u.push({row:d,col:S})}),e.executeCommand(U.id,{values:u}),v.focus()},i=c=>{if(c===0)r(null);else if(c===q.length-1)e.executeCommand(K.id);else{const l=q[c];l.pattern&&r(l.pattern)}},o=1220;return p.jsx("div",{className:"more-numfmt-type-options",children:q.map((c,l)=>c==="|"?p.jsx("div",{className:"line m-t-4",onClick:v=>v.stopPropagation()},l):p.jsxs("div",{className:"option-item m-t-4",onClick:()=>{i(l)},children:[p.jsx("div",{children:t.t(c.label)}),p.jsx("div",{className:"m-l-26",children:c.pattern?B(c.pattern||"",o,t.getCurrentLocale()).result:""})]},l))})},ht=e=>({icon:"RmbSingle",id:ve.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),St=e=>({icon:"AddDigitsSingle",id:fe.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:T.MenuItemType.BUTTON,positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),gt=e=>({icon:"ReduceDigitsSingle",id:he.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),_t=e=>({icon:"PercentSingle",id:Ce.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),yt=e=>{const t=e.get(m.INumfmtService),s=e.get(a.IUniverInstanceService),n=e.get(a.ICommandService),r=e.get(a.LocaleService),i=e.get(m.SelectionManagerService),o=x.deriveStateFromActiveSheet$(s,"",({workbook:c,worksheet:l})=>new j.Observable(v=>j.merge(i.selectionMoveEnd$,new j.Observable(f=>{const u=[m.RemoveNumfmtMutation.id,m.SetNumfmtMutation.id],d=n.onCommandExecuted(S=>{u.includes(S.id)&&f.next(null)});return()=>d.dispose()})).subscribe(()=>{const f=i.getSelections();if(f&&f[0]){const u=f[0].range,d=u.startRow,S=u.startColumn,_=t.getValue(c.getUnitId(),l.getSheetId(),d,S),h=_==null?void 0:_.pattern;let g=r.t("sheet.numfmt.general");if(h){const y=q.filter(M=>typeof M=="object"&&M.pattern).find(M=>z(h,M.pattern));y&&typeof y=="object"&&y.pattern?g=r.t(y.label):g=r.t("sheet.numfmt.moreFmt")}v.next(g)}})));return{label:Ie,id:K.id,tooltip:"sheet.numfmt.title",type:T.MenuItemType.SELECTOR,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],selections:[{label:{name:Te,hoverable:!1}}],value$:o,hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}};var bt=Object.defineProperty,Ct=Object.getOwnPropertyDescriptor,It=(e,t,s,n)=>{for(var r=n>1?void 0:n?Ct(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&bt(t,s,r),r},oe=(e,t)=>(s,n)=>t(s,n,e);const Tt={};let $=class extends a.Disposable{constructor(e,t,s,n){super(),this._config=e,this._injector=t,this._componentManager=s,this._menuService=n,this._initMenu()}_initMenu(){const{menu:e={}}=this._config;[_t,St,gt,ht,yt].forEach(t=>{this.disposeWithMe(this._menuService.addMenuItem(t(this._injector),e))}),this.disposeWithMe(this._componentManager.register(Ie,pt)),this.disposeWithMe(this._componentManager.register(Te,vt))}};$=It([a.OnLifecycle(a.LifecycleStages.Rendered,$),oe(1,I.Inject(I.Injector)),oe(2,I.Inject(T.ComponentManager)),oe(3,I.Inject(T.IMenuService))],$);var Me=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Pt=(e,t,s)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Nt=(e,t,s,n)=>{for(var r=n>1?void 0:n?Mt(t,s):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(r=(n?o(t,s,r):o(r))||r);return n&&r&&Me(t,s,r),r},Et=(e,t)=>(s,n)=>t(s,n,e),Pe=(e,t,s)=>Pt(e,typeof t!="symbol"?t+"":t,s);C.UniverSheetsNumfmtPlugin=class extends a.Plugin{constructor(t={},s){super(),this._config=t,this._injector=s,this._config=a.Tools.deepMerge({},Tt,this._config)}onStarting(){this._injector.add([se,{useClass:Z,lazy:!1}]),this._injector.add([Q]),this._injector.add([J]),this._injector.add([G]),this._injector.add([X]),this._injector.add([$,{useFactory:()=>this._injector.createInstance($,this._config)}])}},Pe(C.UniverSheetsNumfmtPlugin,"pluginName",te),Pe(C.UniverSheetsNumfmtPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),C.UniverSheetsNumfmtPlugin=Nt([a.DependentOn(m.UniverSheetsPlugin,x.UniverSheetsUIPlugin),Et(1,I.Inject(I.Injector))],C.UniverSheetsNumfmtPlugin),C.SetNumfmtCommand=U,C.getPatternPreview=B,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
9
+ */var De=C,Ue=Symbol.for("react.element"),we=Symbol.for("react.fragment"),Le=Object.prototype.hasOwnProperty,Ae=De.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ve={key:!0,ref:!0,__self:!0,__source:!0};function _e(e,t,r){var n,s={},i=null,o=null;r!==void 0&&(i=""+r),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(n in t)Le.call(t,n)&&!Ve.hasOwnProperty(n)&&(s[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)s[n]===void 0&&(s[n]=t[n]);return{$$typeof:Ue,type:e,key:i,ref:o,props:s,_owner:Ae.current}}J.Fragment=we,J.jsx=_e,J.jsxs=_e,ge.exports=J;var p=ge.exports;const oe=C.createContext([]),ce=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"];var He=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,ke=(e,t,r,n)=>{for(var s=n>1?void 0:n?$e(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&He(t,r,s),s},We=(e,t)=>(r,n)=>t(r,n,e);let Z=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 s=n.findIndex(i=>i===t);s>-1&&n.splice(s,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 s=n.map((i,o,c)=>{const l=c.length;return{value:i,priority:l-o}});return t.sort((i,o)=>{var v,f;const c=((v=s.find(u=>u.value===i))==null?void 0:v.priority)||-1;return(((f=s.find(u=>u.value===o))==null?void 0:f.priority)||-1)-c})}return n||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};Z=ke([We(0,I.Inject(a.ILocalStorageService))],Z);const ye="numfmtCurrency",Fe=e=>{const t=E.useDependency(Z),[r,n]=C.useState(ce);return C.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(ye,[...ce]).then(i=>{n(i),e&&e(i)})})},[]),{userHabitCurrency:r,mark:i=>{t.markHabit(ye,i)}}},Be=()=>{const e=C.useRef([]),[t,r]=C.useState({});return C.useEffect(()=>{e.current.forEach(s=>{s()}),e.current=[]},[t]),s=>{e.current.push(s),r({})}},H=e=>ce.find(r=>e.includes(r)),Ge=e=>!!H(e)&&e.startsWith("_("),ze=e=>{const[t,r]=C.useState(()=>U(e.defaultPattern||"",2)),n=C.useContext(oe),[s,i]=C.useState(()=>H(e.defaultPattern)||n[0]),o=C.useMemo(()=>n.map(u=>({label:u,value:u})),[]),l=E.useDependency(a.LocaleService).t;e.action.current=()=>N(`_("${s}"* #,##0${t>0?".0":""}_)`,t);const v=u=>{i(u),e.onChange(N(`_("${u}"* #,##0${t>0?".0":""}_)`,t))},f=u=>{const d=u||0;r(d),e.onChange(N(`_("${s}"* #,##0${d>0?".0":""}_)`,d))};return p.jsxs("div",{children:[p.jsxs("div",{className:"m-t-16 options ",children:[p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:l("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8 w-120",children:p.jsx(R.InputNumber,{value:t,max:20,min:0,onChange:f})})]}),p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:l("sheet.numfmt.currencyType")}),p.jsx("div",{className:"m-t-8 w-140",children:p.jsx(R.Select,{onChange:v,options:o,value:s})})]})]}),p.jsx("div",{className:"describe m-t-14",children:l("sheet.numfmt.accountingDes")})]})},le=e=>Se.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),be=()=>je.map(e=>({label:e.label,value:e.suffix})),Ce=()=>xe.map(e=>({label:e.label,value:e.suffix,color:e.color})),Ke=e=>!!H(e)&&!e.startsWith("_("),Ye=e=>{const r=E.useDependency(a.LocaleService).t,n=C.useContext(oe),[s,i]=C.useState(()=>H(e.defaultPattern)||n[0]),[o,c]=C.useState(()=>U(e.defaultPattern||"",2)),[l,v]=C.useState(()=>{var b;const h=le(s);return((b=h.find(M=>K(M.value,e.defaultPattern)))==null?void 0:b.value)||h[0].value}),f=C.useMemo(()=>le(s),[s]),u=C.useMemo(()=>n.map(h=>({label:h,value:h})),[n]);e.action.current=()=>N(l,o);const d=h=>{if(h===void 0)return;i(h);const _=le(h)[0].value;v(_),e.onChange(N(_,o))},g=h=>{h!==void 0&&(v(h),e.onChange(N(h,o)))},y=h=>{c(h||0),e.onChange(N(l,h||0))};return p.jsxs("div",{children:[p.jsxs("div",{className:"m-t-16 options ",children:[p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:r("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8 w-120",children:p.jsx(R.InputNumber,{value:o,max:20,min:0,onChange:y})})]}),p.jsxs("div",{className:"option",children:[p.jsx("div",{className:"label",children:r("sheet.numfmt.currencyType")}),p.jsx("div",{className:"m-t-8 w-140",children:p.jsx(R.Select,{onChange:d,options:u,value:s})})]})]}),p.jsx("div",{className:"m-t-16 label",children:r("sheet.numfmt.negType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{onChange:g,options:f,value:l})}),p.jsx("div",{className:"describe m-t-14",children:r("sheet.numfmt.currencyDes")})]})},Je=e=>{const t=D.getInfo(e);return be().map(r=>r.value).includes(e)||["date","datetime","time"].includes(t.type)},Ze=e=>{const t=C.useMemo(be,[]),n=E.useDependency(a.LocaleService).t,[s,i]=C.useState(()=>{if(e.defaultPattern){const c=t.find(l=>l.value===e.defaultPattern);if(c)return c.value}return t[0].value});e.action.current=()=>s;const o=c=>{c!==void 0&&(i(c),e.onChange(c))};return p.jsxs("div",{children:[p.jsx("div",{className:"m-t-16 label",children:n("sheet.numfmt.dateType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{value:s,options:t,onChange:o})}),p.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.dateDes")})]})},Qe=e=>!e,Xe=e=>{const r=E.useDependency(a.LocaleService).t;return e.action.current=()=>"",p.jsx("div",{children:p.jsx("div",{className:"describe m-t-14",children:r("sheet.numfmt.generalDes")})})},qe=e=>Ce().some(t=>K(t.value,e)),et=e=>{const t=E.useDependency(a.LocaleService),r=C.useMemo(Ce,[]),[n,s]=C.useState(()=>U(e.defaultPattern||"",0)),[i,o]=C.useState(()=>{const u=r.find(d=>K(d.value,e.defaultPattern||""));return(u==null?void 0:u.value)||r[0].value}),c=C.useMemo(()=>N(i,Number(n||0)),[i,n]),l=C.useMemo(()=>!Oe(i),[i]),v=u=>{s(u||0),e.onChange(N(i,Number(u||0)))},f=u=>{u!==void 0&&(s(U(u,0)),o(u),e.onChange(u))};return e.action.current=()=>c,p.jsxs("div",{children:[p.jsx("div",{className:"m-t-16 label",children:t.t("sheet.numfmt.decimalLength")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.InputNumber,{disabled:l,value:n,max:20,min:0,onChange:v})}),p.jsxs("div",{className:"m-t-16 label",children:[" ",t.t("sheet.numfmt.negType")]}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.SelectList,{onChange:f,options:r,value:i})}),p.jsx("div",{className:"describe m-t-14",children:t.t("sheet.numfmt.thousandthPercentileDes")})]})},tt=e=>{const{defaultValue:t,defaultPattern:r,row:n,col:s}=e.value,i=E.useDependency(a.LocaleService),o=C.useRef(()=>""),c=i.t,l=Be(),v=C.useMemo(()=>[{label:"sheet.numfmt.general",component:Xe},{label:"sheet.numfmt.accounting",component:ze},{label:"sheet.numfmt.currency",component:Ye},{label:"sheet.numfmt.date",component:Ze},{label:"sheet.numfmt.thousandthPercentile",component:et}].map(P=>({...P,label:c(P.label)})),[]),[f,u]=C.useState(b),[d,g]=C.useState(()=>`${n}_${s}`),{mark:y,userHabitCurrency:h}=Fe(()=>g(`${n}_${s}_userCurrency'`)),_=C.useMemo(()=>{var P;return(P=v.find(A=>A.label===f))==null?void 0:P.component},[f]);function b(){return[Qe,Ge,Ke,Je,qe].reduce((A,Ot,jt)=>A||(Ot(r)?v[jt].label:""),"")||v[0].label}const M=v.map(P=>({label:P.label,value:P.label})),W=P=>{u(P),l(()=>e.onChange({type:"change",value:o.current()||""}))},de=P=>{e.onChange({type:"change",value:P})},fe=()=>{const P=o.current()||"",A=H(P);A&&y(A),e.onChange({type:"confirm",value:P})},pe=()=>{e.onChange({type:"cancel",value:""})},Rt={onChange:de,defaultValue:t,defaultPattern:r,action:o};return C.useEffect(()=>{u(b()),g(`${n}_${s}`)},[n,s]),p.jsxs("div",{className:"numfmt-panel p-b-20",children:[p.jsxs("div",{children:[p.jsx("div",{className:"label m-t-14",children:c("sheet.numfmt.numfmtType")}),p.jsx("div",{className:"m-t-8",children:p.jsx(R.Select,{onChange:W,options:M,value:f})}),p.jsx("div",{children:_&&p.jsx(oe.Provider,{value:h,children:C.createElement(_,{...Rt,key:d})})})]}),p.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[p.jsx(R.Button,{size:"small",onClick:pe,className:"m-r-12",children:c("sheet.numfmt.cancel")}),p.jsx(R.Button,{type:"primary",size:"small",onClick:fe,children:c("sheet.numfmt.confirm")})]})]})},ue={id:"sheet.command.numfmt.set.percent",type:a.CommandType.COMMAND,handler:async e=>{const t=e.get(a.ICommandService),n=e.get(m.SelectionManagerService).getSelections();if(!n||!n.length)return!1;const s=[],i="0%";return n.forEach(c=>{a.Range.foreach(c.range,(l,v)=>{s.push({row:l,col:v,pattern:i,type:"percent"})})}),await t.executeCommand(w.id,{values:s})}};var nt=Object.defineProperty,rt=Object.getOwnPropertyDescriptor,st=(e,t,r,n)=>{for(var s=n>1?void 0:n?rt(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&nt(t,r,s),s},j=(e,t)=>(r,n)=>t(r,n,e);let Q=class extends a.Disposable{constructor(t,r,n,s,i,o,c,l,v,f){super();te(this,"_previewPattern","");te(this,"_sidebarDisposable",null);this._sheetInterceptorService=t,this._themeService=r,this._univerInstanceService=n,this._commandService=s,this._selectionManagerService=i,this._renderManagerService=o,this._numfmtService=c,this._componentManager=l,this._sidebarService=v,this._localeService=f,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener()}openPanel(){const t=this._sidebarService,r=this._selectionManagerService,n=this._commandService,s=this._univerInstanceService,i=this._numfmtService,o=this._localeService,l=(r.getSelectionRanges()||[])[0];if(!l)return!1;const v=s.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),f=v.getActiveSheet();if(!f)return!1;const u=f.getCellRaw(l.startRow,l.startColumn),d=i.getValue(v.getUnitId(),f.getSheetId(),l.startRow,l.startColumn);let g="";d&&(g=d.pattern);const y=(u==null?void 0:u.t)===a.CellValueType.NUMBER?u.v:12345678,h={onChange:_=>{if(_.type==="change")this._previewPattern=_.value,this._forceUpdate();else if(_.type==="confirm"){const b=r.getSelectionRanges()||[],M={values:[]},W=B(_.value);b.forEach(de=>{a.Range.foreach(de,(fe,pe)=>{M.values.push({row:fe,col:pe,pattern:_.value,type:W})})}),n.executeCommand(w.id,M),t.close()}else _.type==="cancel"&&t.close()},value:{defaultPattern:g,defaultValue:y,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:ne,...h},onClose:()=>{this._forceUpdate(),n.executeCommand(Y.id)}}),!0}_forceUpdate(t){var n;const r=this._renderManagerService.getRenderById(t!=null?t:this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET).getUnitId());r==null||r.with(x.SheetSkeletonManagerService).reCalculate(),(n=r==null?void 0:r.mainComponent)==null||n.makeDirty()}_initCommands(){[re,ie,se,ue,V,Y,w].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this._componentManager.register(ne,tt)}_initRealTimeRenderingInterceptor(){const t=new O.Observable(n=>{this._commandService.onCommandExecuted(s=>{s.id===V.id&&n.next(!0),s.id===Y.id&&n.next(!1)})}),r=O.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(F.map(n=>n?n.map(s=>s.range):[]))]);this.disposeWithMe(a.toDisposable(r.pipe(F.switchMap(([n,s])=>new O.Observable(i=>{const o=new a.DisposableCollection;return n&&s.length&&i.next({selectionRanges:s,disposableCollection:o}),()=>{o.dispose()}})),F.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:n,selectionRanges:s})=>{var o,c;const i=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);this.openPanel(),n.add(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,handler:(l,v,f)=>{const{row:u,col:d}=v,g=f(l)||{};if(s.find(y=>y.startColumn<=d&&y.endColumn>=d&&y.startRow<=u&&y.endRow>=u)){const y=v.worksheet.getCellRaw(u,d),h=y==null?void 0:y.v,_=y==null?void 0:y.t;if(h==null||_!==a.CellValueType.NUMBER||this._previewPattern===null)return g;const b=G(this._previewPattern,h,this._localeService.getCurrentLocale());if(b.color){const W=this._themeService.getCurrentTheme()[`${b.color}500`];return{...g,v:b.result,t:a.CellValueType.STRING,s:{cl:{rgb:W}}}}return{...g,v:b.result,t:a.CellValueType.STRING}}return g}})),(c=(o=this._renderManagerService.getRenderById(i.getUnitId()))==null?void 0:o.mainComponent)==null||c.makeDirty()})))}_commandExecutedListener(){const t=[m.RemoveNumfmtMutation.id,m.SetNumfmtMutation.id];this.disposeWithMe(new O.Observable(r=>{const n=this._commandService.onCommandExecuted(s=>{if(t.includes(s.id)){const i=s.params;r.next(i.unitId)}});return()=>n.dispose()}).pipe(F.debounceTime(16)).subscribe(r=>this._forceUpdate(r)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{var r;t||((r=this._sidebarDisposable)==null||r.dispose(),this._sidebarDisposable=null)})}};Q=st([a.OnLifecycle(a.LifecycleStages.Rendered,Q),j(0,I.Inject(m.SheetInterceptorService)),j(1,I.Inject(a.ThemeService)),j(2,a.IUniverInstanceService),j(3,a.ICommandService),j(4,I.Inject(m.SelectionManagerService)),j(5,ve.IRenderManagerService),j(6,m.INumfmtService),j(7,I.Inject(T.ComponentManager)),j(8,T.ISidebarService),j(9,I.Inject(a.LocaleService))],Q);var it=Object.defineProperty,at=Object.getOwnPropertyDescriptor,ot=(e,t,r,n)=>{for(var s=n>1?void 0:n?at(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&it(t,r,s),s},$=(e,t)=>(r,n)=>t(r,n,e);const ct=()=>{let e=[];return{add:(s,i,o,c,l)=>e.push({unitId:s,subUnitId:i,row:o,col:c,value:l}),getEffects:()=>e,clean:()=>{e=[]}}};let X=class extends a.Disposable{constructor(t,r,n,s,i){super();te(this,"_collectEffectMutation",ct());this._sheetInterceptorService=t,this._numfmtService=r,this._univerInstanceService=n,this._injector=s,this._editorBridgeService=i,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(a.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:(t,r,n)=>{const s=r.row,i=r.col,o=this._numfmtService.getValue(r.unitId,r.subUnitId,s,i);if(o)switch(B(o.pattern)){case"scientific":case"percent":case"currency":case"grouped":case"number":return r.worksheet.getCellRaw(s,i);case"date":case"time":case"datetime":default:return n&&n(t)}return n(t)}})))}_initInterceptorEditorEnd(){this._editorBridgeService&&this.disposeWithMe(a.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{handler:(t,r,n)=>{var f;this._collectEffectMutation.clean();const s=this._numfmtService.getValue(r.unitId,r.subUnitId,r.row,r.col),i=(f=s&&B(s.pattern))!=null?f:"",o=()=>{s&&this._collectEffectMutation.add(r.unitId,r.subUnitId,r.row,r.col,null)};if(!(t!=null&&t.v))return n(t);const c=String(t.v),l=D.parseDate(c)||D.parseTime(c);if(!!l){if(l&&l.z){const u=Number(l.v);return this._collectEffectMutation.add(r.unitId,r.subUnitId,r.row,r.col,{pattern:l.z}),{...t,v:u,t:a.CellValueType.NUMBER}}}else(["date","time","datetime"].includes(i)||!lt(c))&&o();return n(t)}})))}_initInterceptorCommands(){const t=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(r){var n;switch(r.id){case m.SetRangeValuesCommand.id:{const s=t._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=s.getUnitId(),o=(n=s.getActiveSheet())==null?void 0:n.getSheetId();if(!o)return{redos:[],undos:[]};const c=t._collectEffectMutation.getEffects();if(!c.length)return{redos:[],undos:[]};const l=c.filter(d=>{var g;return!!((g=d.value)!=null&&g.pattern)}).map(d=>({row:d.row,col:d.col,pattern:d.value.pattern})),v=c.filter(d=>{var g;return!((g=d.value)!=null&&g.pattern)}).map(d=>({startRow:d.row,endColumn:d.col,startColumn:d.col,endRow:d.row})),f=[],u=[];if(l){const d={id:m.SetNumfmtMutation.id,params:m.transformCellsToRange(i,o,l)};f.push(d),u.push(...m.factorySetNumfmtUndoMutation(t._injector,d.params))}if(v){const d={id:m.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:v}};f.push(d),u.push(...m.factoryRemoveNumfmtUndoMutation(t._injector,d.params))}return{redos:f,undos:u.reverse()}}}return{redos:[],undos:[]}}}))}};X=ot([a.OnLifecycle(a.LifecycleStages.Rendered,X),$(0,I.Inject(m.SheetInterceptorService)),$(1,I.Inject(m.INumfmtService)),$(2,I.Inject(a.IUniverInstanceService)),$(3,I.Inject(I.Injector)),$(4,I.Optional(x.IEditorBridgeService))],X);function lt(e){return/^-?\d+(\.\d+)?$/.test(e)}var ut=Object.defineProperty,mt=Object.getOwnPropertyDescriptor,dt=(e,t,r,n)=>{for(var s=n>1?void 0:n?mt(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&ut(t,r,s),s},ft=(e,t)=>(r,n)=>t(r,n,e);let q=class extends a.Disposable{constructor(e){super(),this._localeService=e}};q=dt([a.OnLifecycle(a.LifecycleStages.Rendered,q),ft(0,I.Inject(a.LocaleService))],q);const ee=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:"@@@"},"|",{label:"sheet.numfmt.number",pattern:"0"},"|",{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:""}],Ie="sheet.numfmt.moreNumfmtType",Te="sheet.numfmt.moreNumfmtType.options",pt=e=>{var n;const t=E.useDependency(a.LocaleService),r=(n=e.value)!=null?n:t.t("sheet.numfmt.general");return p.jsx("span",{className:"more-numfmt-type",children:r})},vt=()=>{const e=E.useDependency(a.ICommandService),t=E.useDependency(a.LocaleService),r=E.useInjector(),n=E.useDependency(m.SelectionManagerService),s=c=>{const l=n.getLast();if(!l)return;const v=r.get(ve.ITextSelectionRenderManager),f=l.range,u=[];a.Range.foreach(f,(d,g)=>{c?u.push({row:d,col:g,pattern:c,type:B(c)}):u.push({row:d,col:g})}),e.executeCommand(w.id,{values:u}),v.focus()},i=c=>{if(c===0)s(null);else if(c===ee.length-1)e.executeCommand(V.id);else{const l=ee[c];l.pattern&&s(l.pattern)}},o=1220;return p.jsx("div",{className:"more-numfmt-type-options",children:ee.map((c,l)=>c==="|"?p.jsx("div",{className:"line m-t-4",onClick:v=>v.stopPropagation()},l):p.jsxs("div",{className:"option-item m-t-4",onClick:()=>{i(l)},children:[p.jsx("div",{children:t.t(c.label)}),p.jsx("div",{className:"m-l-26",children:c.pattern?G(c.pattern||"",o,t.getCurrentLocale()).result:""})]},l))})},ht=e=>({icon:"RmbSingle",id:se.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),St=e=>({icon:"AddDigitsSingle",id:re.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:T.MenuItemType.BUTTON,positions:[T.MenuPosition.TOOLBAR_START],group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),gt=e=>({icon:"ReduceDigitsSingle",id:ie.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),_t=e=>({icon:"PercentSingle",id:ue.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:T.MenuItemType.BUTTON,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetEditPermission,m.WorksheetSetCellStylePermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}),yt=e=>{const t=e.get(m.INumfmtService),r=e.get(a.IUniverInstanceService),n=e.get(a.ICommandService),s=e.get(a.LocaleService),i=e.get(m.SelectionManagerService),o=x.deriveStateFromActiveSheet$(r,"",({workbook:c,worksheet:l})=>new O.Observable(v=>O.merge(i.selectionMoveEnd$,new O.Observable(f=>{const u=[m.RemoveNumfmtMutation.id,m.SetNumfmtMutation.id],d=n.onCommandExecuted(g=>{u.includes(g.id)&&f.next(null)});return()=>d.dispose()})).subscribe(()=>{const f=i.getSelections();if(f&&f[0]){const u=f[0].range,d=u.startRow,g=u.startColumn,y=t.getValue(c.getUnitId(),l.getSheetId(),d,g),h=y==null?void 0:y.pattern;let _=s.t("sheet.numfmt.general");if(h){const b=ee.filter(M=>typeof M=="object"&&M.pattern).find(M=>K(h,M.pattern));b&&typeof b=="object"&&b.pattern?_=s.t(b.label):_=s.t("sheet.numfmt.moreFmt")}v.next(_)}})));return{label:Ie,id:V.id,tooltip:"sheet.numfmt.title",type:T.MenuItemType.SELECTOR,group:T.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[T.MenuPosition.TOOLBAR_START],selections:[{label:{name:Te,hoverable:!1}}],value$:o,hidden$:T.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[m.WorkbookEditablePermission],worksheetTypes:[m.WorksheetSetCellStylePermission,m.WorksheetEditPermission],rangeTypes:[m.RangeProtectionPermissionEditPoint]})}};var bt=Object.defineProperty,Ct=Object.getOwnPropertyDescriptor,It=(e,t,r,n)=>{for(var s=n>1?void 0:n?Ct(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&bt(t,r,s),s},me=(e,t)=>(r,n)=>t(r,n,e);const Tt={};let k=class extends a.Disposable{constructor(e,t,r,n){super(),this._config=e,this._injector=t,this._componentManager=r,this._menuService=n,this._initMenu()}_initMenu(){const{menu:e={}}=this._config;[_t,St,gt,ht,yt].forEach(t=>{this.disposeWithMe(this._menuService.addMenuItem(t(this._injector),e))}),this.disposeWithMe(this._componentManager.register(Ie,pt)),this.disposeWithMe(this._componentManager.register(Te,vt))}};k=It([a.OnLifecycle(a.LifecycleStages.Rendered,k),me(1,I.Inject(I.Injector)),me(2,I.Inject(T.ComponentManager)),me(3,I.Inject(T.IMenuService))],k);var Me=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Pt=(e,t,r)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Nt=(e,t,r,n)=>{for(var s=n>1?void 0:n?Mt(t,r):t,i=e.length-1,o;i>=0;i--)(o=e[i])&&(s=(n?o(t,r,s):o(s))||s);return n&&s&&Me(t,r,s),s},Et=(e,t)=>(r,n)=>t(r,n,e),Pe=(e,t,r)=>Pt(e,typeof t!="symbol"?t+"":t,r);S.UniverSheetsNumfmtPlugin=class extends a.Plugin{constructor(t={},r){super(),this._config=t,this._injector=r,this._config=a.Tools.deepMerge({},Tt,this._config)}onStarting(){this._injector.add([ae,{useClass:Q,lazy:!1}]),this._injector.add([X]),this._injector.add([Z]),this._injector.add([z]),this._injector.add([q]),this._injector.add([k,{useFactory:()=>this._injector.createInstance(k,this._config)}])}},Pe(S.UniverSheetsNumfmtPlugin,"pluginName",ne),Pe(S.UniverSheetsNumfmtPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),S.UniverSheetsNumfmtPlugin=Nt([a.DependentOn(m.UniverSheetsPlugin,x.UniverSheetsUIPlugin),Et(1,I.Inject(I.Injector))],S.UniverSheetsNumfmtPlugin),S.AddDecimalCommand=re,S.CloseNumfmtPanelOperator=Y,S.OpenNumfmtPanelOperator=V,S.SetCurrencyCommand=se,S.SetNumfmtCommand=w,S.SetPercentCommand=ue,S.SubtractDecimalCommand=ie,S.getPatternPreview=G,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-numfmt",
3
- "version": "0.1.17",
3
+ "version": "0.2.1",
4
4
  "private": false,
5
5
  "description": "UniverSheet numfmt plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -50,38 +50,38 @@
50
50
  "lib"
51
51
  ],
52
52
  "peerDependencies": {
53
- "@wendellhu/redi": "0.15.4",
53
+ "@wendellhu/redi": "0.15.5",
54
54
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
55
55
  "rxjs": ">=7.0.0",
56
- "@univerjs/core": "0.1.17",
57
- "@univerjs/engine-numfmt": "0.1.17",
58
- "@univerjs/design": "0.1.17",
59
- "@univerjs/engine-render": "0.1.17",
60
- "@univerjs/sheets": "0.1.17",
61
- "@univerjs/sheets-ui": "0.1.17",
62
- "@univerjs/ui": "0.1.17"
56
+ "@univerjs/design": "0.2.1",
57
+ "@univerjs/engine-numfmt": "0.2.1",
58
+ "@univerjs/engine-render": "0.2.1",
59
+ "@univerjs/sheets-ui": "0.2.1",
60
+ "@univerjs/ui": "0.2.1",
61
+ "@univerjs/core": "0.2.1",
62
+ "@univerjs/sheets": "0.2.1"
63
63
  },
64
64
  "dependencies": {
65
- "@univerjs/icons": "^0.1.57"
65
+ "@univerjs/icons": "^0.1.58"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@types/react": "^18.3.3",
69
- "@wendellhu/redi": "0.15.4",
69
+ "@wendellhu/redi": "0.15.5",
70
70
  "less": "^4.2.0",
71
71
  "react": "18.3.1",
72
72
  "rxjs": "^7.8.1",
73
- "typescript": "^5.4.5",
74
- "vite": "^5.3.1",
73
+ "typescript": "^5.5.3",
74
+ "vite": "^5.3.3",
75
75
  "vitest": "^1.6.0",
76
- "@univerjs/core": "0.1.17",
77
- "@univerjs/design": "0.1.17",
78
- "@univerjs/engine-numfmt": "0.1.17",
79
- "@univerjs/engine-formula": "0.1.17",
80
- "@univerjs/engine-render": "0.1.17",
81
- "@univerjs/shared": "0.1.17",
82
- "@univerjs/sheets": "0.1.17",
83
- "@univerjs/sheets-ui": "0.1.17",
84
- "@univerjs/ui": "0.1.17"
76
+ "@univerjs/core": "0.2.1",
77
+ "@univerjs/design": "0.2.1",
78
+ "@univerjs/engine-formula": "0.2.1",
79
+ "@univerjs/engine-numfmt": "0.2.1",
80
+ "@univerjs/shared": "0.2.1",
81
+ "@univerjs/engine-render": "0.2.1",
82
+ "@univerjs/sheets": "0.2.1",
83
+ "@univerjs/sheets-ui": "0.2.1",
84
+ "@univerjs/ui": "0.2.1"
85
85
  },
86
86
  "univerSpace": {
87
87
  ".": {