@univerjs/sheets-numfmt 0.8.0-nightly.202505271607 → 0.8.0-nightly.202505291607

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Z=Object.defineProperty;var J=(e,r,s)=>r in e?Z(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s;var T=(e,r,s)=>J(e,typeof r!="symbol"?r+"":r,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@univerjs/core"),f=require("@univerjs/sheets"),A=require("@univerjs/engine-numfmt"),N=require("rxjs"),X=require("@univerjs/engine-formula"),U=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],L={US:"$",CA:"C$",GB:"£",JP:"¥",IN:"₹",AU:"A$",CN:"¥",KR:"₩",RU:"₽",AT:"€",BE:"€",CY:"€",EE:"€",FI:"€",FR:"€",DE:"€",GR:"€",IE:"€",IT:"€",LV:"€",LT:"€",LU:"€",MT:"€",NL:"€",PT:"€",SK:"€",SI:"€",ES:"€"},G=[{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"}],B=[{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"}],V=[{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"}],Q="SHEET_NUMFMT_PLUGIN",E=(e,r=0)=>{var n;return e&&(n=t.numfmt.getInfo(e).maxDecimals)!=null?n:r},ee=(e,r)=>{if(e&&!r||!e&&r)return!1;const s=i=>i.reduce((S,C)=>{if(S.isEnd)return S;const h=C.value||C.num;return C.type==="point"?(S.isEnd=!0,S):{...S,result:S.result+h}},{isEnd:!1,result:""}).result,n=t.numfmt.getInfo(e)._partitions,o=t.numfmt.getInfo(r)._partitions,a=s(n[0].tokens),l=s(o[0].tokens),g=s(n[1].tokens),u=s(o[1].tokens);return a===l&&g===u&&n[1].color===o[1].color},x=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),P=(e,r)=>e.split(";").map(n=>/\.0?/.test(n)?n.replace(/\.0*/g,`${r>0?".":""}${x(Number(r||0))}`):/0([^0]?)|0$/.test(n)?n.replace(/0([^0]+)|0$/,`0${r>0?".":""}${x(Number(r||0))}$1`):n).join(";"),te=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),R={id:"sheet.command.numfmt.set.numfmt",type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;const s=e.get(t.ICommandService),n=e.get(t.IUniverInstanceService),o=e.get(t.IUndoRedoService),a=f.getSheetCommandTarget(n,r);if(!a)return!1;const{unitId:l,subUnitId:g,worksheet:u}=a,i=r.values.filter(c=>!!c.pattern),S=r.values.filter(c=>!c.pattern),C=f.transformCellsToRange(l,g,i),h={unitId:l,subUnitId:g,ranges:S.map(c=>({startColumn:c.col,startRow:c.row,endColumn:c.col,endRow:c.row}))},M=[],p=[];if(i.length){const c=i.reduce((d,m)=>{A.isTextFormat(m.pattern)&&d.setValue(m.row,m.col,{t:t.CellValueType.STRING});const b=u.getCellRaw(m.row,m.col);if(b){const $=f.checkCellValueType(b.v);$!==b.t&&d.setValue(m.row,m.col,{t:$})}return d},new t.ObjectMatrix).getMatrix(),y=new t.ObjectMatrix;new t.ObjectMatrix(c).forValue((d,m)=>{const b=u.getCellRaw(d,m);b?y.setValue(d,m,{t:b.t}):y.setValue(d,m,{t:void 0})}),Object.keys(C.values).forEach(d=>{const m=C.values[d];m.ranges=f.rangeMerge(m.ranges)}),M.push({id:f.SetNumfmtMutation.id,params:C});const _=f.factorySetNumfmtUndoMutation(e,C);p.push(..._)}if(S.length){h.ranges=f.rangeMerge(h.ranges);const c=S.reduce((d,m)=>{const b=u.getCellRaw(m.row,m.col);if(b){const $=f.checkCellValueType(b.v);$!==b.t&&d.setValue(m.row,m.col,{t:$})}return d},new t.ObjectMatrix).getMatrix(),y=new t.ObjectMatrix;new t.ObjectMatrix(c).forValue((d,m)=>{const b=u.getCellRaw(d,m);b?y.setValue(d,m,{t:b.t}):y.setValue(d,m,{t:void 0})}),M.push({id:f.RemoveNumfmtMutation.id,params:h},{id:f.SetRangeValuesMutation.id,params:{unitId:l,subUnitId:g,cellValue:c}});const _=f.factoryRemoveNumfmtUndoMutation(e,h);p.push({id:f.SetRangeValuesMutation.id,params:{unitId:l,subUnitId:g,cellValue:y.getMatrix()}},..._)}const v=t.sequenceExecute(M,s).result;return v&&o.pushUndoRedo({unitID:l,undoMutations:p,redoMutations:M}),v}},H={id:"sheet.command.numfmt.add.decimal.command",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(f.SheetsSelectionsService),n=e.get(f.INumfmtService),o=e.get(t.IUniverInstanceService),a=s.getCurrentSelections();if(!a||!a.length)return!1;const l=f.getSheetCommandTarget(o);if(!l)return!1;const{unitId:g,subUnitId:u}=l;let i=0;a.forEach(M=>{t.Range.foreach(M.range,(p,v)=>{const c=n.getValue(g,u,p,v);if(!c){const _=l.worksheet.getCellRaw(p,v);if(!i&&_&&_.t===t.CellValueType.NUMBER&&_.v){const d=/\.(\d*)$/.exec(String(_.v));if(d){const m=d[1].length;if(!m)return;i=Math.max(i,m)}}return}const y=E(c.pattern);i=y>i?y:i})});const S=i+1,C=P(`0${S>0?".0":""}`,S),h=[];return a.forEach(M=>{t.Range.foreach(M.range,(p,v)=>{const c=n.getValue(g,u,p,v);if(!c)h.push({row:p,col:v,pattern:C});else{const y=E(c.pattern),_=P(c.pattern,y+1);_!==c.pattern&&h.push({row:p,col:v,pattern:_})}})}),h.length?await r.executeCommand(R.id,{values:h}):!1}};class D{constructor(){T(this,"_currencySymbol$",new N.BehaviorSubject("US"));T(this,"currencySymbol$",this._currencySymbol$.asObservable())}setCurrencySymbolByCountryCode(r){this._currencySymbol$.next(r)}getCurrencySymbol(){return this._currencySymbol$.getValue()}}const W={id:"sheet.command.numfmt.set.currency",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(f.SheetsSelectionsService),n=e.get(D),o=L[n.getCurrencySymbol()]||"$",a=s.getCurrentSelections();if(!a||!a.length)return!1;const l=[],g=V[4].suffix(o);return a.forEach(i=>{t.Range.foreach(i.range,(S,C)=>{l.push({row:S,col:C,pattern:g,type:"currency"})})}),await r.executeCommand(R.id,{values:l})}},q={id:"sheet.command.numfmt.set.percent",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),n=e.get(f.SheetsSelectionsService).getCurrentSelections();if(!n||!n.length)return!1;const o=[],a="0%";return n.forEach(g=>{t.Range.foreach(g.range,(u,i)=>{o.push({row:u,col:i,pattern:a,type:"percent"})})}),await r.executeCommand(R.id,{values:o})}},k={id:"sheet.command.numfmt.subtract.decimal.command",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(f.SheetsSelectionsService),n=e.get(f.INumfmtService),o=e.get(t.IUniverInstanceService),a=s.getCurrentSelections();if(!a||!a.length)return!1;const l=f.getSheetCommandTarget(o);if(!l)return!1;const{unitId:g,subUnitId:u}=l;let i=0;a.forEach(p=>{t.Range.foreach(p.range,(v,c)=>{const y=n.getValue(g,u,v,c);if(!y){const d=l.worksheet.getCellRaw(v,c);if(!i&&d&&d.t===t.CellValueType.NUMBER&&d.v){const m=/\.(\d*)$/.exec(String(d.v));if(m){const b=m[1].length;if(!b)return;i=Math.max(i,b)}}return}const _=E(y.pattern);i=_>i?_:i})});const S=i-1,C=P(`0${S>0?".0":"."}`,S),h=[];return a.forEach(p=>{t.Range.foreach(p.range,(v,c)=>{const y=n.getValue(g,u,v,c);if(!y)h.push({row:v,col:c,pattern:C});else{const _=E(y.pattern);h.push({row:v,col:c,pattern:P(y.pattern,_-1)})}})}),await r.executeCommand(R.id,{values:h})}},w="sheets-numfmt.config",j={},ne=e=>t.numfmt.getInfo(e).type||"unknown",K=(e,r,s="en")=>{const o=t.numfmt.getInfo(e)._partitions[1],a=t.numfmt.format(e,r,{locale:s,throws:!1});return r<0?{result:a,color:o.color}:{result:a}},Y=(e,r,s)=>e==="General"?{result:String(X.stripErrorMargin(r))}:K(e,r,s);var re=Object.getOwnPropertyDescriptor,se=(e,r,s,n)=>{for(var o=n>1?void 0:n?re(r,s):r,a=e.length-1,l;a>=0;a--)(l=e[a])&&(o=l(o)||o);return o},I=(e,r)=>(s,n)=>r(s,n,e);const oe={tl:{size:6,color:"#409f11"}};exports.SheetsNumfmtCellContentController=class extends t.Disposable{constructor(s,n,o,a,l,g,u){super();T(this,"_local$",new N.BehaviorSubject("en"));T(this,"local$",this._local$.asObservable());this._instanceService=s,this._sheetInterceptorService=n,this._themeService=o,this._commandService=a,this._numfmtService=l,this._localeService=g,this._configService=u,this._initInterceptorCellContent()}get local(){const s=this._local$.getValue();if(s)return s;switch(this._localeService.getCurrentLocale()){case t.LocaleType.FR_FR:return"fr";case t.LocaleType.RU_RU:return"ru";case t.LocaleType.VI_VN:return"vi";case t.LocaleType.ZH_CN:return"zh-CN";case t.LocaleType.ZH_TW:return"zh-TW";case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return"en"}}_initInterceptorCellContent(){const s=new t.ObjectMatrix;this.disposeWithMe(N.merge(this._local$,this._localeService.currentLocale$).subscribe(()=>{s.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(f.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(n,o,a)=>{var v;const l=o.unitId,g=o.subUnitId;let u;const i=n;if(!i||i.v===void 0||i.v===null)return a(n);if(n!=null&&n.s){const c=o.workbook.getStyles().get(n.s);c!=null&&c.n&&(u=c.n)}if(u||(u=this._numfmtService.getValue(l,g,o.row,o.col)),!u||u.pattern==="General"||f.checkCellValueType(i.v)!==t.CellValueType.NUMBER)return a(n);if((!n||n===o.rawData)&&(n={...o.rawData}),A.isTextFormat(u.pattern))return(v=this._configService.getConfig(w))!=null&&v.disableTextFormatMark?(n.t=t.CellValueType.STRING,a(n)):(n.t=t.CellValueType.STRING,n.markers={...n==null?void 0:n.markers,...oe},a(n));let C="";const h=s.getValue(o.row,o.col);if(h&&h.parameters===`${i.v}_${u.pattern}`)return a({...n,...h.result});const M=Y(u.pattern,Number(i.v),this.local);if(C=M.result,!C)return a(n);const p={v:C,t:t.CellValueType.NUMBER};if(M.color){const c=this._themeService.getColorFromTheme(`${M.color}.500`);c&&(p.interceptorStyle={cl:{rgb:c}})}return s.setValue(o.row,o.col,{result:p,parameters:`${i.v}_${u.pattern}`}),Object.assign(n,p),a(n)},priority:f.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===f.SetNumfmtMutation.id){const o=n.params;Object.keys(o.values).forEach(a=>{o.values[a].ranges.forEach(g=>{t.Range.foreach(g,(u,i)=>{s.realDeleteValue(u,i)})})})}else if(n.id===f.SetRangeValuesMutation.id){const o=n.params;new t.ObjectMatrix(o.cellValue).forValue((a,l)=>{s.realDeleteValue(a,l)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe(N.switchMap(n=>{var o;return(o=n==null?void 0:n.activeSheet$)!=null?o:N.of(null)}),N.skip(1)).subscribe(()=>s.reset()))}setNumfmtLocal(s){this._local$.next(s)}};exports.SheetsNumfmtCellContentController=se([I(0,t.IUniverInstanceService),I(1,t.Inject(f.SheetInterceptorService)),I(2,t.Inject(t.ThemeService)),I(3,t.Inject(t.ICommandService)),I(4,t.Inject(f.INumfmtService)),I(5,t.Inject(t.LocaleService)),I(6,t.IConfigService)],exports.SheetsNumfmtCellContentController);class F extends t.Disposable{constructor(){super(...arguments);T(this,"_currencySymbol$",new N.BehaviorSubject("US"));T(this,"currencySymbol$",this._currencySymbol$.asObservable())}setCurrencySymbolByCountryCode(s){this._currencySymbol$.next(s)}getCurrencySymbol(){return this._currencySymbol$.getValue()}}var ae=Object.defineProperty,ce=Object.getOwnPropertyDescriptor,ie=(e,r,s)=>r in e?ae(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,le=(e,r,s,n)=>{for(var o=n>1?void 0:n?ce(r,s):r,a=e.length-1,l;a>=0;a--)(l=e[a])&&(o=l(o)||o);return o},O=(e,r)=>(s,n)=>r(s,n,e),z=(e,r,s)=>ie(e,typeof r!="symbol"?r+"":r,s);exports.UniverSheetsNumfmtPlugin=class extends t.Plugin{constructor(r=j,s,n,o){super(),this._config=r,this._injector=s,this._configService=n,this._commandService=o;const{...a}=t.merge({},j,this._config);this._configService.setConfig(w,a)}onStarting(){t.registerDependencies(this._injector,[[exports.SheetsNumfmtCellContentController],[D],[F]]),t.touchDependencies(this._injector,[[exports.SheetsNumfmtCellContentController]])}onRendered(){t.touchDependencies(this._injector,[[F]]),[H,k,W,q,R].forEach(r=>{this.disposeWithMe(this._commandService.registerCommand(r))})}};z(exports.UniverSheetsNumfmtPlugin,"pluginName",Q);z(exports.UniverSheetsNumfmtPlugin,"type",t.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtPlugin=le([t.DependentOn(f.UniverSheetsPlugin),O(1,t.Inject(t.Injector)),O(2,t.IConfigService),O(3,t.ICommandService)],exports.UniverSheetsNumfmtPlugin);const ue=e=>U.find(s=>e.includes(s)),me=()=>U.map(e=>({label:e,value:e})),fe=e=>V.map(r=>({label:r.label(e),value:r.suffix(e),color:r.color})),de=()=>G.map(e=>({label:e.label,value:e.suffix})),ge=()=>B.map(e=>({label:e.label,value:e.suffix,color:e.color}));exports.AddDecimalCommand=H;exports.CURRENCYFORMAT=V;exports.DATEFMTLISG=G;exports.MenuCurrencyService=D;exports.NUMBERFORMAT=B;exports.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=w;exports.SetCurrencyCommand=W;exports.SetNumfmtCommand=R;exports.SetPercentCommand=q;exports.SubtractDecimalCommand=k;exports.countryCurrencyMap=L;exports.currencySymbols=U;exports.getCurrencyFormatOptions=fe;exports.getCurrencyOptions=me;exports.getCurrencyType=ue;exports.getDateFormatOptions=de;exports.getDecimalFromPattern=E;exports.getDecimalString=x;exports.getNumberFormatOptions=ge;exports.getPatternPreview=K;exports.getPatternPreviewIgnoreGeneral=Y;exports.getPatternType=ne;exports.isPatternEqualWithoutDecimal=ee;exports.isPatternHasDecimal=te;exports.setPatternDecimal=P;
1
+ "use strict";var Z=Object.defineProperty;var J=(e,r,s)=>r in e?Z(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s;var T=(e,r,s)=>J(e,typeof r!="symbol"?r+"":r,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@univerjs/core"),m=require("@univerjs/sheets"),A=require("@univerjs/engine-numfmt"),N=require("rxjs"),X=require("@univerjs/engine-formula"),U=["$","£","¥","¤","֏","؋","৳","฿","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],L={US:"$",CA:"C$",GB:"£",JP:"¥",IN:"₹",AU:"A$",CN:"¥",KR:"₩",RU:"₽",AT:"€",BE:"€",CY:"€",EE:"€",FI:"€",FR:"€",DE:"€",GR:"€",IE:"€",IT:"€",LV:"€",LT:"€",LU:"€",MT:"€",NL:"€",PT:"€",SK:"€",SI:"€",ES:"€"},G=[{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"}],B=[{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"}],V=[{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"}],Q="SHEET_NUMFMT_PLUGIN",E=(e,r=0)=>{var n;return e&&(n=t.numfmt.getFormatInfo(e).maxDecimals)!=null?n:r},x=e=>new Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(""),P=(e,r)=>e.split(";").map(n=>/\.0?/.test(n)?n.replace(/\.0*/g,`${r>0?".":""}${x(Number(r||0))}`):/0([^0]?)|0$/.test(n)?n.replace(/0([^0]+)|0$/,`0${r>0?".":""}${x(Number(r||0))}$1`):n).join(";"),ee=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),R={id:"sheet.command.numfmt.set.numfmt",type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;const s=e.get(t.ICommandService),n=e.get(t.IUniverInstanceService),a=e.get(t.IUndoRedoService),o=m.getSheetCommandTarget(n,r);if(!o)return!1;const{unitId:l,subUnitId:S,worksheet:f}=o,c=r.values.filter(i=>!!i.pattern),M=r.values.filter(i=>!i.pattern),_=m.transformCellsToRange(l,S,c),v={unitId:l,subUnitId:S,ranges:M.map(i=>({startColumn:i.col,startRow:i.row,endColumn:i.col,endRow:i.row}))},b=[],C=[];if(c.length){const i=c.reduce((g,u)=>{A.isTextFormat(u.pattern)&&g.setValue(u.row,u.col,{t:t.CellValueType.STRING});const y=f.getCellRaw(u.row,u.col);if(y){const $=m.checkCellValueType(y.v);$!==y.t&&g.setValue(u.row,u.col,{t:$})}return g},new t.ObjectMatrix).getMatrix(),d=new t.ObjectMatrix;new t.ObjectMatrix(i).forValue((g,u)=>{const y=f.getCellRaw(g,u);y?d.setValue(g,u,{t:y.t}):d.setValue(g,u,{t:void 0})}),Object.keys(_.values).forEach(g=>{const u=_.values[g];u.ranges=m.rangeMerge(u.ranges)}),b.push({id:m.SetNumfmtMutation.id,params:_});const p=m.factorySetNumfmtUndoMutation(e,_);C.push(...p)}if(M.length){v.ranges=m.rangeMerge(v.ranges);const i=M.reduce((g,u)=>{const y=f.getCellRaw(u.row,u.col);if(y){const $=m.checkCellValueType(y.v);$!==y.t&&g.setValue(u.row,u.col,{t:$})}return g},new t.ObjectMatrix).getMatrix(),d=new t.ObjectMatrix;new t.ObjectMatrix(i).forValue((g,u)=>{const y=f.getCellRaw(g,u);y?d.setValue(g,u,{t:y.t}):d.setValue(g,u,{t:void 0})}),b.push({id:m.RemoveNumfmtMutation.id,params:v},{id:m.SetRangeValuesMutation.id,params:{unitId:l,subUnitId:S,cellValue:i}});const p=m.factoryRemoveNumfmtUndoMutation(e,v);C.push({id:m.SetRangeValuesMutation.id,params:{unitId:l,subUnitId:S,cellValue:d.getMatrix()}},...p)}const h=t.sequenceExecute(b,s).result;return h&&a.pushUndoRedo({unitID:l,undoMutations:C,redoMutations:b}),h}},H={id:"sheet.command.numfmt.add.decimal.command",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(m.SheetsSelectionsService),n=e.get(m.INumfmtService),a=e.get(t.IUniverInstanceService),o=s.getCurrentSelections();if(!o||!o.length)return!1;const l=m.getSheetCommandTarget(a);if(!l)return!1;const{unitId:S,subUnitId:f}=l;let c=0;o.forEach(b=>{t.Range.foreach(b.range,(C,h)=>{const i=n.getValue(S,f,C,h);if(!i){const p=l.worksheet.getCellRaw(C,h);if(!c&&p&&p.t===t.CellValueType.NUMBER&&p.v){const g=/\.(\d*)$/.exec(String(p.v));if(g){const u=g[1].length;if(!u)return;c=Math.max(c,u)}}return}const d=E(i.pattern);c=d>c?d:c})});const M=c+1,_=P(`0${M>0?".0":""}`,M),v=[];return o.forEach(b=>{t.Range.foreach(b.range,(C,h)=>{const i=n.getValue(S,f,C,h);if(!i)v.push({row:C,col:h,pattern:_});else{const d=E(i.pattern),p=P(i.pattern,d+1);p!==i.pattern&&v.push({row:C,col:h,pattern:p})}})}),v.length?await r.executeCommand(R.id,{values:v}):!1}};class D{constructor(){T(this,"_currencySymbol$",new N.BehaviorSubject("US"));T(this,"currencySymbol$",this._currencySymbol$.asObservable())}setCurrencySymbolByCountryCode(r){this._currencySymbol$.next(r)}getCurrencySymbol(){return this._currencySymbol$.getValue()}}const W={id:"sheet.command.numfmt.set.currency",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(m.SheetsSelectionsService),n=e.get(D),a=L[n.getCurrencySymbol()]||"$",o=s.getCurrentSelections();if(!o||!o.length)return!1;const l=[],S=V[4].suffix(a);return o.forEach(c=>{t.Range.foreach(c.range,(M,_)=>{l.push({row:M,col:_,pattern:S,type:"currency"})})}),await r.executeCommand(R.id,{values:l})}},q={id:"sheet.command.numfmt.set.percent",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),n=e.get(m.SheetsSelectionsService).getCurrentSelections();if(!n||!n.length)return!1;const a=[],o="0%";return n.forEach(S=>{t.Range.foreach(S.range,(f,c)=>{a.push({row:f,col:c,pattern:o,type:"percent"})})}),await r.executeCommand(R.id,{values:a})}},K={id:"sheet.command.numfmt.subtract.decimal.command",type:t.CommandType.COMMAND,handler:async e=>{const r=e.get(t.ICommandService),s=e.get(m.SheetsSelectionsService),n=e.get(m.INumfmtService),a=e.get(t.IUniverInstanceService),o=s.getCurrentSelections();if(!o||!o.length)return!1;const l=m.getSheetCommandTarget(a);if(!l)return!1;const{unitId:S,subUnitId:f}=l;let c=0;o.forEach(C=>{t.Range.foreach(C.range,(h,i)=>{const d=n.getValue(S,f,h,i);if(!d){const g=l.worksheet.getCellRaw(h,i);if(!c&&g&&g.t===t.CellValueType.NUMBER&&g.v){const u=/\.(\d*)$/.exec(String(g.v));if(u){const y=u[1].length;if(!y)return;c=Math.max(c,y)}}return}const p=E(d.pattern);c=p>c?p:c})});const M=c-1,_=P(`0${M>0?".0":"."}`,M),v=[];return o.forEach(C=>{t.Range.foreach(C.range,(h,i)=>{const d=n.getValue(S,f,h,i);if(!d)v.push({row:h,col:i,pattern:_});else{const p=E(d.pattern);v.push({row:h,col:i,pattern:P(d.pattern,p-1)})}})}),await r.executeCommand(R.id,{values:v})}},w="sheets-numfmt.config",F={},te=e=>t.numfmt.getFormatInfo(e).type||"unknown",Y=(e,r,s="en")=>{const n=String(t.numfmt.formatColor(e,r)),a=t.numfmt.format(e,r,{locale:s,throws:!1});return r<0?{result:a,color:n}:{result:a}},k=(e,r,s)=>e==="General"?{result:String(X.stripErrorMargin(r))}:Y(e,r,s);var ne=Object.getOwnPropertyDescriptor,re=(e,r,s,n)=>{for(var a=n>1?void 0:n?ne(r,s):r,o=e.length-1,l;o>=0;o--)(l=e[o])&&(a=l(a)||a);return a},I=(e,r)=>(s,n)=>r(s,n,e);const se={tl:{size:6,color:"#409f11"}};exports.SheetsNumfmtCellContentController=class extends t.Disposable{constructor(s,n,a,o,l,S,f){super();T(this,"_local$",new N.BehaviorSubject("en"));T(this,"local$",this._local$.asObservable());this._instanceService=s,this._sheetInterceptorService=n,this._themeService=a,this._commandService=o,this._numfmtService=l,this._localeService=S,this._configService=f,this._initInterceptorCellContent()}get local(){const s=this._local$.getValue();if(s)return s;switch(this._localeService.getCurrentLocale()){case t.LocaleType.FR_FR:return"fr";case t.LocaleType.RU_RU:return"ru";case t.LocaleType.VI_VN:return"vi";case t.LocaleType.ZH_CN:return"zh-CN";case t.LocaleType.ZH_TW:return"zh-TW";case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return"en"}}_initInterceptorCellContent(){const s=new t.ObjectMatrix;this.disposeWithMe(N.merge(this._local$,this._localeService.currentLocale$).subscribe(()=>{s.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(n,a,o)=>{var h,i;const l=a.unitId,S=a.subUnitId;let f;const c=n;if(!c||c.v===void 0||c.v===null)return o(n);if(n!=null&&n.s){const d=a.workbook.getStyles().get(n.s);d!=null&&d.n&&(f=d.n)}if(f||(f=this._numfmtService.getValue(l,S,a.row,a.col)),!f||f.pattern==="General"||m.checkCellValueType(c.v)!==t.CellValueType.NUMBER)return o(n);if((!n||n===a.rawData)&&(n={...a.rawData}),A.isTextFormat(f.pattern))return(h=this._configService.getConfig(w))!=null&&h.disableTextFormatMark?(n.t=t.CellValueType.STRING,o(n)):(n.t=t.CellValueType.STRING,n.markers={...n==null?void 0:n.markers,...se},o(n));let _="";const v=s.getValue(a.row,a.col);if(v&&v.parameters===`${c.v}_${f.pattern}`)return o({...n,...v.result});const b=k(f.pattern,Number(c.v),this.local);if(_=b.result,!_)return o(n);const C={v:_,t:t.CellValueType.NUMBER};if(b.color){const d=(i=this._themeService.getColorFromTheme(`${b.color}.500`))!=null?i:b.color;d&&(C.interceptorStyle={cl:{rgb:d}})}return s.setValue(a.row,a.col,{result:C,parameters:`${c.v}_${f.pattern}`}),Object.assign(n,C),o(n)},priority:m.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===m.SetNumfmtMutation.id){const a=n.params;Object.keys(a.values).forEach(o=>{a.values[o].ranges.forEach(S=>{t.Range.foreach(S,(f,c)=>{s.realDeleteValue(f,c)})})})}else if(n.id===m.SetRangeValuesMutation.id){const a=n.params;new t.ObjectMatrix(a.cellValue).forValue((o,l)=>{s.realDeleteValue(o,l)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe(N.switchMap(n=>{var a;return(a=n==null?void 0:n.activeSheet$)!=null?a:N.of(null)}),N.skip(1)).subscribe(()=>s.reset()))}setNumfmtLocal(s){this._local$.next(s)}};exports.SheetsNumfmtCellContentController=re([I(0,t.IUniverInstanceService),I(1,t.Inject(m.SheetInterceptorService)),I(2,t.Inject(t.ThemeService)),I(3,t.Inject(t.ICommandService)),I(4,t.Inject(m.INumfmtService)),I(5,t.Inject(t.LocaleService)),I(6,t.IConfigService)],exports.SheetsNumfmtCellContentController);class j extends t.Disposable{constructor(){super(...arguments);T(this,"_currencySymbol$",new N.BehaviorSubject("US"));T(this,"currencySymbol$",this._currencySymbol$.asObservable())}setCurrencySymbolByCountryCode(s){this._currencySymbol$.next(s)}getCurrencySymbol(){return this._currencySymbol$.getValue()}}var ae=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ce=(e,r,s)=>r in e?ae(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,ie=(e,r,s,n)=>{for(var a=n>1?void 0:n?oe(r,s):r,o=e.length-1,l;o>=0;o--)(l=e[o])&&(a=l(a)||a);return a},O=(e,r)=>(s,n)=>r(s,n,e),z=(e,r,s)=>ce(e,typeof r!="symbol"?r+"":r,s);exports.UniverSheetsNumfmtPlugin=class extends t.Plugin{constructor(r=F,s,n,a){super(),this._config=r,this._injector=s,this._configService=n,this._commandService=a;const{...o}=t.merge({},F,this._config);this._configService.setConfig(w,o)}onStarting(){t.registerDependencies(this._injector,[[exports.SheetsNumfmtCellContentController],[D],[j]]),t.touchDependencies(this._injector,[[exports.SheetsNumfmtCellContentController]])}onRendered(){t.touchDependencies(this._injector,[[j]]),[H,K,W,q,R].forEach(r=>{this.disposeWithMe(this._commandService.registerCommand(r))})}};z(exports.UniverSheetsNumfmtPlugin,"pluginName",Q);z(exports.UniverSheetsNumfmtPlugin,"type",t.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtPlugin=ie([t.DependentOn(m.UniverSheetsPlugin),O(1,t.Inject(t.Injector)),O(2,t.IConfigService),O(3,t.ICommandService)],exports.UniverSheetsNumfmtPlugin);const le=e=>U.find(s=>e.includes(s)),ue=()=>U.map(e=>({label:e,value:e})),me=e=>V.map(r=>({label:r.label(e),value:r.suffix(e),color:r.color})),fe=()=>G.map(e=>({label:e.label,value:e.suffix})),de=()=>B.map(e=>({label:e.label,value:e.suffix,color:e.color}));exports.AddDecimalCommand=H;exports.CURRENCYFORMAT=V;exports.DATEFMTLISG=G;exports.MenuCurrencyService=D;exports.NUMBERFORMAT=B;exports.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=w;exports.SetCurrencyCommand=W;exports.SetNumfmtCommand=R;exports.SetPercentCommand=q;exports.SubtractDecimalCommand=K;exports.countryCurrencyMap=L;exports.currencySymbols=U;exports.getCurrencyFormatOptions=me;exports.getCurrencyOptions=ue;exports.getCurrencyType=le;exports.getDateFormatOptions=fe;exports.getDecimalFromPattern=E;exports.getDecimalString=x;exports.getNumberFormatOptions=de;exports.getPatternPreview=Y;exports.getPatternPreviewIgnoreGeneral=k;exports.getPatternType=te;exports.isPatternHasDecimal=ee;exports.setPatternDecimal=P;