@univerjs/sheets-numfmt 0.2.2 → 0.2.3

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/README.md CHANGED
@@ -1,17 +1,18 @@
1
1
  # @univerjs/sheets-numfmt
2
+ sheets-numfmt
2
3
 
3
- [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-numfmt)](https://npmjs.org/package/@univerjs/sheets-numfmt)
4
- [![license](https://img.shields.io/npm/l/@univerjs/sheets-numfmt)](https://img.shields.io/npm/l/@univerjs/sheets-numfmt)
5
- ![CSS Included](https://img.shields.io/badge/CSS_Included-blue?logo=CSS3)
6
- ![i18n](https://img.shields.io/badge/zh--CN%20%7C%20en--US-cornflowerblue?label=i18n)
4
+ ## Package Overview
5
+
6
+ | Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
7
+ | --- | --- | --- | --- | --- | :---: | :---: |
8
+ | `@univerjs/sheets-numfmt` | `UniverSheetsNumfmt` | [![][npm-version-shield]][npm-version-link] | ![][npm-license-shield] | ![][npm-downloads-shield] | ⭕️ | ⭕️ |
7
9
 
8
10
  ## Introduction
9
11
 
10
12
  Providing editing/rendering capabilities around `number format`, such as edit panels, toolbar buttons, real-time previews, row/column variations, etc.
11
13
 
12
- :::Note
13
- Numerical format is one of the core functions of electronic spreadsheets, and therefore, parsing and handling of numerical format is done within `@univerjs/sheets`.
14
- :::
14
+ > [!NOTE]
15
+ > Numerical format is one of the core functions of electronic spreadsheets, and therefore, parsing and handling of numerical format is done within `@univerjs/sheets`.
15
16
 
16
17
  ## Usage
17
18
 
@@ -26,8 +27,10 @@ pnpm add @univerjs/sheets-numfmt
26
27
  ```
27
28
 
28
29
  ### How to use
29
- Import `@univerjs/sheets-numfmt` at the entrance .
30
- ```ts
30
+
31
+ Import `@univerjs/sheets-numfmt` at the entrance .
32
+
33
+ ```typescript
31
34
  import { LocaleType, LogLevel, Univer } from '@univerjs/core';
32
35
  import { defaultTheme } from '@univerjs/design';
33
36
  import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt';
@@ -35,7 +38,7 @@ import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt';
35
38
  // univer
36
39
  const univer = new Univer({
37
40
  theme: defaultTheme,
38
- locale: LocaleType.ZH_CN,
41
+ locale: LocaleType.EN_US,
39
42
  locales,
40
43
  logLevel: LogLevel.VERBOSE,
41
44
  });
@@ -45,6 +48,11 @@ const univer = new Univer({
45
48
  univer.registerPlugin(UniverSheetsNumfmtPlugin);
46
49
  ```
47
50
 
48
- :::note
49
- If you need to export the snapshot to support the export data format, you need to add [some additional code](/)
50
- :::
51
+ > [!NOTE]
52
+ > If you need to export the snapshot to support the export data format, you need to add [some additional code](/)
53
+
54
+ <!-- Links -->
55
+ [npm-version-shield]: https://img.shields.io/npm/v/@univerjs/sheets-numfmt?style=flat-square
56
+ [npm-version-link]: https://npmjs.com/package/@univerjs/sheets-numfmt
57
+ [npm-license-shield]: https://img.shields.io/npm/l/@univerjs/sheets-numfmt?style=flat-square
58
+ [npm-downloads-shield]: https://img.shields.io/npm/dm/@univerjs/sheets-numfmt?style=flat-square
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 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={};/**
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 W=(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"),x=require("@univerjs/sheets-ui"),O=require("rxjs"),j=require("@univerjs/engine-numfmt"),Se=require("@univerjs/engine-render"),I=require("@univerjs/ui"),q=require("rxjs/operators"),y=require("react"),E=require("@univerjs/design"),N=require("@wendellhu/redi/react-bindings"),ce="SHEET_NUMFMT_PLUGIN",Z=e=>j.getInfo(e).type||"unknown",ee=(e,t,n)=>{const r=j.getInfo(e),s=n===c.LocaleType.ZH_CN?"zh-CN":"en",i=r._partitions[1],o=j.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 G=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=ee(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()))}};G=De([c.OnLifecycle(c.LifecycleStages.Rendered,G),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))],G);const D=(e,t=0)=>{var r;return e&&(r=j.getInfo(e).maxDecimals)!=null?r:t},te=(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=j.getInfo(e)._partitions,s=j.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},pe=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),M=(e,t)=>e.split(";").map(r=>/\.0?/.test(r)?r.replace(/\.0*/g,`${t>0?".":""}${pe(Number(t||0))}`):/0([^0]?)|0$/.test(r)?r.replace(/0([^0]+)|0$/,`0${t>0?".":""}${pe(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=[],g=[];if(l.length){Object.keys(f.values).forEach(b=>{const S=f.values[b];S.ranges=d.rangeMerge(S.ranges)}),m.push({id:d.SetNumfmtMutation.id,params:f});const v=d.factorySetNumfmtUndoMutation(e,f);g.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);g.push(...v)}const _=c.sequenceExecute(m,n).result;return _&&s.pushUndoRedo({unitID:o,undoMutations:g,redoMutations:m}),_}},le={id:"sheet.command.numfmt.add.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SheetsSelectionsService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getCurrentSelections();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(g=>{c.Range.foreach(g.range,(_,v)=>{const b=r.getValue(a,l,_,v);if(!b)return;const S=D(b.pattern);p=S>p?S:p})});const f=p+1,u=M(`0${f>0?".0":""}`,f),m=[];return i.forEach(g=>{c.Range.foreach(g.range,(_,v)=>{const b=r.getValue(a,l,_,v);if(!b)m.push({row:_,col:v,pattern:u});else{const S=D(b.pattern),T=M(b.pattern,S+1);T!==b.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"}],ge=[{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"}],ue={id:"sheet.command.numfmt.set.currency",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SheetsSelectionsService).getCurrentSelections();if(!r||!r.length)return!1;const s=[],i=ge[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})}},me={id:"sheet.command.numfmt.subtract.decimal.command",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),n=e.get(d.SheetsSelectionsService),r=e.get(d.INumfmtService),s=e.get(c.IUniverInstanceService),i=n.getCurrentSelections();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,b)=>{const S=r.getValue(a,l,v,b);if(!S)return;const T=D(S.pattern);p=T>p?T:p})});const f=p-1,u=M(`0${f>0?".0":"."}`,f),m=[];return i.forEach(_=>{c.Range.foreach(_.range,(v,b)=>{const S=r.getValue(a,l,v,b);if(!S)m.push({row:v,col:b,pattern:u});else{const T=D(S.pattern);m.push({row:v,col:b,pattern:M(S.pattern,T-1)})}})}),await t.executeCommand($.id,{values:m})}},z={id:"sheet.operation.close.numfmt.panel",type:c.CommandType.OPERATION,handler:()=>!0},de=C.createIdentifier("INumfmtController");c.runOnLifecycle(c.LifecycleStages.Rendered,de);const H={id:"sheet.operation.open.numfmt.panel",type:c.CommandType.OPERATION,handler:e=>(e.get(de).openPanel(),!0)};var _e={exports:{}},ne={};/**
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 _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;
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 be(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}}ne.Fragment=Ve;ne.jsx=be;ne.jsxs=be;_e.exports=ne;var h=_e.exports;const fe=y.createContext([]),ae=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"];var Fe=Object.defineProperty,We=Object.getOwnPropertyDescriptor,qe=(e,t,n,r)=>{for(var s=r>1?void 0:r?We(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&&Fe(t,n,s),s},Ge=(e,t)=>(n,r)=>t(n,r,e);let Q=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)}};Q=qe([Ge(0,C.Inject(c.ILocalStorageService))],Q);const ve="numfmtCurrency",ze=e=>{const t=N.useDependency(Q),[n,r]=y.useState(ae);return y.useEffect(()=>{t.addHabit("numfmtCurrency",[]).then(()=>{t.getHabit(ve,[...ae]).then(i=>{r(i),e&&e(i)})})},[]),{userHabitCurrency:n,mark:i=>{t.markHabit(ve,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({})}},k=e=>ae.find(n=>e.includes(n)),Ye=e=>!!k(e)&&e.startsWith("_("),Je=e=>{const[t,n]=y.useState(()=>D(e.defaultPattern||"",2)),r=y.useContext(fe),[s,i]=y.useState(()=>k(e.defaultPattern)||r[0]),o=y.useMemo(()=>r.map(u=>({label:u,value:u})),[]),l=N.useDependency(c.LocaleService).t;e.action.current=()=>M(`_("${s}"* #,##0${t>0?".0":""}_)`,t);const p=u=>{i(u),e.onChange(M(`_("${u}"* #,##0${t>0?".0":""}_)`,t))},f=u=>{const m=u||0;n(m),e.onChange(M(`_("${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")})]})},ie=e=>ge.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ye=()=>Ue.map(e=>({label:e.label,value:e.suffix})),Ce=()=>we.map(e=>({label:e.label,value:e.suffix,color:e.color})),Xe=e=>!!k(e)&&!e.startsWith("_("),Ze=e=>{const n=N.useDependency(c.LocaleService).t,r=y.useContext(fe),[s,i]=y.useState(()=>k(e.defaultPattern)||r[0]),[o,a]=y.useState(()=>D(e.defaultPattern||"",2)),[l,p]=y.useState(()=>{var S;const v=ie(s);return((S=v.find(T=>te(T.value,e.defaultPattern)))==null?void 0:S.value)||v[0].value}),f=y.useMemo(()=>ie(s),[s]),u=y.useMemo(()=>r.map(v=>({label:v,value:v})),[r]);e.action.current=()=>M(l,o);const m=v=>{if(v===void 0)return;i(v);const b=ie(v)[0].value;p(b),e.onChange(M(b,o))},g=v=>{v!==void 0&&(p(v),e.onChange(M(v,o)))},_=v=>{a(v||0),e.onChange(M(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:g,options:f,value:l})}),h.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.currencyDes")})]})},Qe=e=>{const t=j.getInfo(e);return ye().map(n=>n.value).includes(e)||["date","datetime","time"].includes(t.type)},et=e=>{const t=y.useMemo(ye,[]),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=>Ce().some(t=>te(t.value,e)),st=e=>{const t=N.useDependency(c.LocaleService),n=y.useMemo(Ce,[]),[r,s]=y.useState(()=>D(e.defaultPattern||"",0)),[i,o]=y.useState(()=>{const u=n.find(m=>te(m.value,e.defaultPattern||""));return(u==null?void 0:u.value)||n[0].value}),a=y.useMemo(()=>M(i,Number(r||0)),[i,r]),l=y.useMemo(()=>!$e(i),[i]),p=u=>{s(u||0),e.onChange(M(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:Ze},{label:"sheet.numfmt.date",component:et},{label:"sheet.numfmt.thousandthPercentile",component:st}].map(P=>({...P,label:a(P.label)})),[]),[f,u]=y.useState(S),[m,g]=y.useState(()=>`${r}_${s}`),{mark:_,userHabitCurrency:v}=ze(()=>g(`${r}_${s}_userCurrency'`)),b=y.useMemo(()=>{var P;return(P=p.find(U=>U.label===f))==null?void 0:P.component},[f]);function S(){return[tt,Ye,Xe,Qe,rt].reduce((U,Ne,Ee)=>U||(Ne(n)?p[Ee].label:""),"")||p[0].label}const T=p.map(P=>({label:P.label,value:P.label})),L=P=>{u(P),l(()=>e.onChange({type:"change",value:o.current()||""}))},F=P=>{e.onChange({type:"change",value:P})},re=()=>{const P=o.current()||"",U=k(P);U&&_(U),e.onChange({type:"confirm",value:P})},A=()=>{e.onChange({type:"cancel",value:""})},se={onChange:F,defaultValue:t,defaultPattern:n,action:o};return y.useEffect(()=>{u(S()),g(`${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:b&&h.jsx(fe.Provider,{value:v,children:y.createElement(b,{...se,key:m})})})]}),h.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[h.jsx(E.Button,{size:"small",onClick:A,className:"m-r-12",children:a("sheet.numfmt.cancel")}),h.jsx(E.Button,{type:"primary",size:"small",onClick:re,children:a("sheet.numfmt.confirm")})]})]})},he={id:"sheet.command.numfmt.set.percent",type:c.CommandType.COMMAND,handler:async e=>{const t=e.get(c.ICommandService),r=e.get(d.SheetsSelectionsService).getCurrentSelections();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 K=class extends c.Disposable{constructor(t,n,r,s,i,o,a,l,p,f){super();W(this,"_previewPattern","");W(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(){var b;const t=this._sidebarService,n=this._selectionManagerService,r=this._commandService,s=this._univerInstanceService,i=this._numfmtService,o=this._localeService,l=(((b=n.getCurrentSelections())==null?void 0:b.map(S=>S.range))||[])[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 g="";m&&(g=m.pattern);const _=(u==null?void 0:u.t)===c.CellValueType.NUMBER?u.v:12345678,v={onChange:S=>{var T;if(S.type==="change")this._previewPattern=S.value,this._forceUpdate();else if(S.type==="confirm"){const L=((T=n.getCurrentSelections())==null?void 0:T.map(A=>A.range))||[],F={values:[]},re=Z(S.value);L.forEach(A=>{c.Range.foreach(A,(se,P)=>{F.values.push({row:se,col:P,pattern:S.value,type:re})})}),r.executeCommand($.id,F),t.close()}else S.type==="cancel"&&t.close()},value:{defaultPattern:g,defaultValue:_,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=t.open({header:{title:o.t("sheet.numfmt.title")},children:{label:ce,...v},onClose:()=>{this._forceUpdate(),r.executeCommand(z.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(x.SheetSkeletonManagerService).reCalculate(),(r=n==null?void 0:n.mainComponent)==null||r.makeDirty()}_initCommands(){[le,me,ue,he,H,z,$].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initPanel(){this._componentManager.register(ce,it)}_initRealTimeRenderingInterceptor(){const t=new O.Observable(r=>{this._commandService.onCommandExecuted(s=>{s.id===H.id&&r.next(!0),s.id===z.id&&r.next(!1)})}),n=O.combineLatest([t,this._selectionManagerService.selectionMoveEnd$.pipe(q.map(r=>r?r.map(s=>s.range):[]))]);this.disposeWithMe(c.toDisposable(n.pipe(q.switchMap(([r,s])=>new O.Observable(i=>{const o=new c.DisposableCollection;return r&&s.length&&i.next({selectionRanges:s,disposableCollection:o}),()=>{o.dispose()}})),q.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,g=f(l)||{};if(s.find(_=>_.startColumn<=m&&_.endColumn>=m&&_.startRow<=u&&_.endRow>=u)){const _=p.worksheet.getCellRaw(u,m),v=_==null?void 0:_.v,b=_==null?void 0:_.t;if(v==null||b!==c.CellValueType.NUMBER||this._previewPattern===null)return g;const S=ee(this._previewPattern,v,this._localeService.getCurrentLocale());if(S.color){const L=this._themeService.getCurrentTheme()[`${S.color}500`];return{...g,v:S.result,t:c.CellValueType.STRING,s:{cl:{rgb:L}}}}return{...g,v:S.result,t:c.CellValueType.STRING}}return g}})),(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(q.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)})}};K=at([c.OnLifecycle(c.LifecycleStages.Rendered,K),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.SheetsSelectionsService)),R(5,Se.IRenderManagerService),R(6,d.INumfmtService),R(7,C.Inject(I.ComponentManager)),R(8,I.ISidebarService),R(9,C.Inject(c.LocaleService))],K);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},V=(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 Y=class extends c.Disposable{constructor(t,n,r,s,i){super();W(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(Z(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&&Z(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=j.parseDate(a)||j.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 g;return!!((g=m.value)!=null&&g.pattern)}).map(m=>({row:m.row,col:m.col,pattern:m.value.pattern})),p=a.filter(m=>{var g;return!((g=m.value)!=null&&g.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:[]}}}))}};Y=mt([c.OnLifecycle(c.LifecycleStages.Rendered,Y),V(0,C.Inject(d.SheetInterceptorService)),V(1,C.Inject(d.INumfmtService)),V(2,C.Inject(c.IUniverInstanceService)),V(3,C.Inject(C.Injector)),V(4,C.Optional(x.IEditorBridgeService))],Y);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 J=class extends c.Disposable{constructor(e){super(),this._localeService=e}};J=vt([c.OnLifecycle(c.LifecycleStages.Rendered,J),St(0,C.Inject(c.LocaleService))],J);const X=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:j.DEFAULT_TEXT_FORMAT},"|",{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",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.SheetsSelectionsService),s=a=>{const l=r.getCurrentLastSelection();if(!l)return;const p=n.get(Se.ITextSelectionRenderManager),f=l.range,u=[];c.Range.foreach(f,(m,g)=>{a?u.push({row:m,col:g,pattern:a,type:Z(a)}):u.push({row:m,col:g})}),e.executeCommand($.id,{values:u}),p.focus()},i=a=>{if(a===0)s(null);else if(a===X.length-1)e.executeCommand(H.id);else{const l=X[a];l.pattern&&s(l.pattern)}},o=1220;return h.jsx("div",{className:"more-numfmt-type-options",children:X.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?ee(a.pattern||"",o,t.getCurrentLocale()).result:""})]},l))})},bt=e=>({icon:"RmbSingle",id:ue.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$:x.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),yt=e=>({icon:"AddDigitsSingle",id:le.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$:x.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),Ct=e=>({icon:"ReduceDigitsSingle",id:me.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$:x.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetEditPermission,d.WorksheetSetCellStylePermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}),It=e=>({icon:"PercentSingle",id:he.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$:x.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.SheetsSelectionsService),o=x.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(g=>{u.includes(g.id)&&f.next(null)});return()=>m.dispose()})).subscribe(()=>{const f=i.getCurrentSelections();if(f&&f[0]){const u=f[0].range,m=u.startRow,g=u.startColumn,_=t.getValue(a.getUnitId(),l.getSheetId(),m,g),v=_==null?void 0:_.pattern;let b=s.t("sheet.numfmt.general");if(v){const S=X.filter(T=>typeof T=="object"&&T.pattern).find(T=>te(v,T.pattern));S&&typeof S=="object"&&S.pattern?b=s.t(S.label):b=s.t("sheet.numfmt.moreFmt")}p.next(b)}})));return{label:Ie,id:H.id,tooltip:"sheet.numfmt.title",type:I.MenuItemType.SELECTOR,group:I.MenuGroup.TOOLBAR_FORMULAS_INSERT,positions:[I.MenuPosition.TOOLBAR_START],selections:[{label:{name:Te,hoverable:!1}}],value$:o,hidden$:I.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:x.getCurrentRangeDisable$(e,{workbookTypes:[d.WorkbookEditablePermission],worksheetTypes:[d.WorksheetSetCellStylePermission,d.WorksheetEditPermission],rangeTypes:[d.RangeProtectionPermissionEditPoint]})}};var Pt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Nt=(e,t,n,r)=>{for(var s=r>1?void 0:r?Mt(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&&Pt(t,n,s),s},oe=(e,t)=>(n,r)=>t(n,r,e);const Et={};let B=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(Ie,gt)),this.disposeWithMe(this._componentManager.register(Te,_t))}};B=Nt([c.OnLifecycle(c.LifecycleStages.Rendered,B),oe(1,C.Inject(C.Injector)),oe(2,C.Inject(I.ComponentManager)),oe(3,C.Inject(I.IMenuService))],B);var Pe=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Ot=(e,t,n)=>t in e?Pe(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&&Pe(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([de,{useClass:K,lazy:!1}]),this._injector.add([Y]),this._injector.add([Q]),this._injector.add([G]),this._injector.add([J]),this._injector.add([B,{useFactory:()=>this._injector.createInstance(B,this._config)}])}};Me(exports.UniverSheetsNumfmtPlugin,"pluginName",ce);Me(exports.UniverSheetsNumfmtPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtPlugin=jt([c.DependentOn(d.UniverSheetsPlugin,x.UniverSheetsUIPlugin),xt(1,C.Inject(C.Injector))],exports.UniverSheetsNumfmtPlugin);exports.AddDecimalCommand=le;exports.CloseNumfmtPanelOperator=z;exports.OpenNumfmtPanelOperator=H;exports.SetCurrencyCommand=ue;exports.SetNumfmtCommand=$;exports.SetPercentCommand=he;exports.SubtractDecimalCommand=me;exports.getPatternPreview=ee;