@univerjs/sheets-numfmt 0.18.0 → 0.19.0

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
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets`),n=require(`rxjs`),r=require(`@univerjs/engine-formula`);const i=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),a=new Map([[e.LocaleType.EN_US,`$`],[e.LocaleType.RU_RU,`₽`],[e.LocaleType.VI_VN,`₫`],[e.LocaleType.ZH_CN,`¥`],[e.LocaleType.ZH_TW,`NT$`],[e.LocaleType.FR_FR,`€`],[e.LocaleType.FA_IR,`﷼`],[e.LocaleType.KO_KR,`₩`],[e.LocaleType.ES_ES,`€`],[e.LocaleType.CA_ES,`€`],[e.LocaleType.SK_SK,`€`]]);function o(t){switch(t){case e.LocaleType.CA_ES:case e.LocaleType.ES_ES:case e.LocaleType.FR_FR:case e.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:a.get(t)||`€`,locale:t};case e.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:a.get(t)||`₽`,locale:t};case e.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:a.get(t)||`¥`,locale:t};case e.LocaleType.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:e.LocaleType.EN_US}}}function s(e){return a.get(e)||`$`}function c(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${s(e)}"#,##0${r}_);[Red]("${s(e)}"#,##0${r})`}const l=[{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`}],u=[{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`}],d=[{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`}],f=(t,n=0)=>{var r;return t?(r=e.numfmt.getFormatInfo(t).maxDecimals)==null?n:r:n},p=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),m=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${p(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${p(Number(t||0))}$1`):e).join(`;`),h=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),g={id:`sheet.command.numfmt.set.numfmt`,type:e.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;let i=n.get(e.ICommandService),a=n.get(e.IUniverInstanceService),o=n.get(e.IUndoRedoService),s=(0,t.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,t.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((n,r)=>{(0,e.isTextFormat)(r.pattern)&&n.setValue(r.row,r.col,{t:e.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let e=(0,t.checkCellValueType)(i.v);e!==i.t&&n.setValue(r.row,r.col,{t:e})}return n},new e.ObjectMatrix).getMatrix(),i=new e.ObjectMatrix;new e.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let n=p.values[e];n.ranges=(0,t.rangeMerge)(n.ranges)}),h.push({id:t.SetNumfmtMutation.id,params:p});let a=(0,t.factorySetNumfmtUndoMutation)(n,p);g.push(...a)}if(f.length){m.ranges=(0,t.rangeMerge)(m.ranges);let r=f.reduce((e,n)=>{let r=u.getCellRaw(n.row,n.col);if(r){let i=(0,t.checkCellValueType)(r.v);i!==r.t&&e.setValue(n.row,n.col,{t:i})}return e},new e.ObjectMatrix).getMatrix(),i=new e.ObjectMatrix;new e.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:t.RemoveNumfmtMutation.id,params:m},{id:t.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,t.factoryRemoveNumfmtUndoMutation)(n,m);g.push({id:t.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,e.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},_={id:`sheet.command.numfmt.add.decimal.command`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(t.INumfmtService),o=n.get(e.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,t.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if(!r){let r=c.worksheet.getCellRaw(t,n);if(!d&&r&&r.t===e.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d+1,h=m(`0${p>0?`.0`:``}`,p),_=[];return s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if((0,e.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:t,col:n,pattern:h});else{let e=f(r.pattern),i=m(r.pattern,e+1);i!==r.pattern&&_.push({row:t,col:n,pattern:i})}})}),_.length?await r.executeCommand(g.id,{values:_}):!1}},v={id:`sheet.command.numfmt.set.currency`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(e.LocaleService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let l=[],u=c(o(a.getCurrentLocale()).locale);return s.forEach(t=>{e.Range.foreach(t.range,(e,t)=>{l.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(g.id,{values:l})}},y={id:`sheet.command.numfmt.set.percent`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(t=>{e.Range.foreach(t.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(g.id,{values:a})}},b={id:`sheet.command.numfmt.subtract.decimal.command`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(t.INumfmtService),o=n.get(e.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,t.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if(!r){let r=c.worksheet.getCellRaw(t,n);if(!d&&r&&r.t===e.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d-1,h=m(`0${p>0?`.0`:`.`}`,p),_=[];return s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if((0,e.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:t,col:n,pattern:h});else{let e=f(r.pattern);_.push({row:t,col:n,pattern:m(r.pattern,e-1)})}})}),await r.executeCommand(g.id,{values:_})}},x=`sheets-numfmt.config`;Symbol(x);const S={},C=t=>e.numfmt.getFormatInfo(t).type||`unknown`,w=(t,n,r=`en`)=>{try{let i=e.numfmt.formatColor(t,n),a=i?String(i):void 0,o=e.numfmt.format(t,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(e){console.warn(`getPatternPreview error:`,t,e)}return{result:String(n)}},T=(t,n,i)=>t===e.DEFAULT_NUMBER_FORMAT?{result:String((0,r.stripErrorMargin)(n))}:w(t,n,i);function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function k(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const M={tl:{size:6,color:`#409f11`}};let N=class extends e.Disposable{constructor(e,t,r,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=r,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,k(this,`_locale$`,new n.BehaviorSubject(`en`)),k(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let t=this._locale$.getValue();if(t)return t;switch(this._localeService.getCurrentLocale()){case e.LocaleType.FR_FR:return`fr`;case e.LocaleType.RU_RU:return`ru`;case e.LocaleType.VI_VN:return`vi`;case e.LocaleType.ZH_CN:return`zh-CN`;case e.LocaleType.KO_KR:return`ko`;case e.LocaleType.ZH_TW:return`zh-TW`;case e.LocaleType.ES_ES:case e.LocaleType.CA_ES:return`es`;case e.LocaleType.SK_SK:return`sk`;case e.LocaleType.EN_US:case e.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let r=new e.ObjectMatrix;this.disposeWithMe((0,n.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{r.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(t.INTERCEPTOR_POINT.CELL_CONTENT,{effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(n,i,a)=>{if(!n||n.v===void 0||n.v===null||n.t===e.CellValueType.BOOLEAN||n.t===e.CellValueType.FORCE_STRING)return a(n);let o=i.unitId,s=i.subUnitId,c;if(n!=null&&n.s){let e=i.workbook.getStyles().get(n.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,e.isDefaultFormat)(c==null?void 0:c.pattern)||n.t!==e.CellValueType.NUMBER&&(0,t.checkCellValueType)(n.v,n.t)!==e.CellValueType.NUMBER)return a(n);let l=n;if((!n||n===i.rawData)&&(n={...i.rawData}),(0,e.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(n.t=e.CellValueType.STRING,a(n)):(n.t=e.CellValueType.STRING,n.markers={...n==null?void 0:n.markers,...M},a(n))}let d=``,f=r.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...n,...f.result});let p=T(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(n);let m={v:d,t:e.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return r.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(n,m),a(n)},priority:t.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===t.SetNumfmtMutation.id){let t=n.params;Object.keys(t.values).forEach(n=>{t.values[n].ranges.forEach(t=>{e.Range.foreach(t,(e,t)=>{r.realDeleteValue(e,t)})})})}else if(n.id===t.SetRangeValuesMutation.id){let t=n.params;new e.ObjectMatrix(t.cellValue).forValue((e,t)=>{r.realDeleteValue(e,t)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,n.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,n.of)(null):t}),(0,n.skip)(1)).subscribe(()=>r.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};N=j([A(0,e.IUniverInstanceService),A(1,(0,e.Inject)(t.SheetInterceptorService)),A(2,(0,e.Inject)(e.ThemeService)),A(3,(0,e.Inject)(e.ICommandService)),A(4,(0,e.Inject)(t.INumfmtService)),A(5,(0,e.Inject)(e.LocaleService)),A(6,e.IConfigService)],N);var P=`@univerjs/sheets-numfmt`,F=`0.18.0`;let I=class extends e.Plugin{constructor(t=S,n,r,i){super(),this._config=t,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,e.merge)({},S,this._config);this._configService.setConfig(x,a)}onStarting(){(0,e.registerDependencies)(this._injector,[[N]]),(0,e.touchDependencies)(this._injector,[[N]]),[_,b,v,y,g].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};k(I,`pluginName`,`SHEET_NUMFMT_PLUGIN`),k(I,`packageName`,P),k(I,`version`,F),k(I,`type`,e.UniverInstanceType.UNIVER_SHEET),I=j([(0,e.DependentOn)(t.UniverSheetsPlugin),A(1,(0,e.Inject)(e.Injector)),A(2,e.IConfigService),A(3,e.ICommandService)],I);const L=e=>i.find(t=>e.includes(t)),R=()=>i.map(e=>({label:e,value:e})),z=e=>d.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),B=()=>l.map(e=>({label:e.label,value:e.suffix})),V=()=>u.map(e=>({label:e.label,value:e.suffix,color:e.color}));exports.AddDecimalCommand=_,exports.CURRENCYFORMAT=d,exports.DATEFMTLISG=l,exports.NUMBERFORMAT=u,exports.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=x,exports.SetCurrencyCommand=v,exports.SetNumfmtCommand=g,exports.SetPercentCommand=y,Object.defineProperty(exports,`SheetsNumfmtCellContentController`,{enumerable:!0,get:function(){return N}}),exports.SubtractDecimalCommand=b,Object.defineProperty(exports,`UniverSheetsNumfmtPlugin`,{enumerable:!0,get:function(){return I}}),exports.currencySymbols=i,exports.getCurrencyFormat=c,exports.getCurrencyFormatOptions=z,exports.getCurrencyOptions=R,exports.getCurrencySymbolByLocale=s,exports.getCurrencySymbolIconByLocale=o,exports.getCurrencyType=L,exports.getDateFormatOptions=B,exports.getDecimalFromPattern=f,exports.getDecimalString=p,exports.getNumberFormatOptions=V,exports.getPatternPreview=w,exports.getPatternPreviewIgnoreGeneral=T,exports.getPatternType=C,exports.isPatternHasDecimal=h,exports.localeCurrencySymbolMap=a,exports.setPatternDecimal=m;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets`),n=require(`rxjs`),r=require(`@univerjs/engine-formula`);const i=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),a=new Map([[e.LocaleType.EN_US,`$`],[e.LocaleType.RU_RU,`₽`],[e.LocaleType.VI_VN,`₫`],[e.LocaleType.ZH_CN,`¥`],[e.LocaleType.ZH_TW,`NT$`],[e.LocaleType.FR_FR,`€`],[e.LocaleType.FA_IR,`﷼`],[e.LocaleType.KO_KR,`₩`],[e.LocaleType.ES_ES,`€`],[e.LocaleType.CA_ES,`€`],[e.LocaleType.SK_SK,`€`]]);function o(t){switch(t){case e.LocaleType.CA_ES:case e.LocaleType.ES_ES:case e.LocaleType.FR_FR:case e.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:a.get(t)||`€`,locale:t};case e.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:a.get(t)||`₽`,locale:t};case e.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:a.get(t)||`¥`,locale:t};case e.LocaleType.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:e.LocaleType.EN_US}}}function s(e){return a.get(e)||`$`}function c(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${s(e)}"#,##0${r}_);[Red]("${s(e)}"#,##0${r})`}const l=[{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`}],u=[{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`}],d=[{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`}],f=(t,n=0)=>{var r;return t?(r=e.numfmt.getFormatInfo(t).maxDecimals)==null?n:r:n},p=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),m=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${p(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${p(Number(t||0))}$1`):e).join(`;`),h=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),g={id:`sheet.command.numfmt.set.numfmt`,type:e.CommandType.COMMAND,handler:(n,r)=>{if(!r)return!1;let i=n.get(e.ICommandService),a=n.get(e.IUniverInstanceService),o=n.get(e.IUndoRedoService),s=(0,t.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,t.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((n,r)=>{(0,e.isTextFormat)(r.pattern)&&n.setValue(r.row,r.col,{t:e.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let e=(0,t.checkCellValueType)(i.v);e!==i.t&&n.setValue(r.row,r.col,{t:e})}return n},new e.ObjectMatrix).getMatrix(),i=new e.ObjectMatrix;new e.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let n=p.values[e];n.ranges=(0,t.rangeMerge)(n.ranges)}),h.push({id:t.SetNumfmtMutation.id,params:p});let a=(0,t.factorySetNumfmtUndoMutation)(n,p);g.push(...a)}if(f.length){m.ranges=(0,t.rangeMerge)(m.ranges);let r=f.reduce((e,n)=>{let r=u.getCellRaw(n.row,n.col);if(r){let i=(0,t.checkCellValueType)(r.v);i!==r.t&&e.setValue(n.row,n.col,{t:i})}return e},new e.ObjectMatrix).getMatrix(),i=new e.ObjectMatrix;new e.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:t.RemoveNumfmtMutation.id,params:m},{id:t.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,t.factoryRemoveNumfmtUndoMutation)(n,m);g.push({id:t.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,e.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},_={id:`sheet.command.numfmt.add.decimal.command`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(t.INumfmtService),o=n.get(e.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,t.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if(!r){let r=c.worksheet.getCellRaw(t,n);if(!d&&r&&r.t===e.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d+1,h=m(`0${p>0?`.0`:``}`,p),_=[];return s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if((0,e.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:t,col:n,pattern:h});else{let e=f(r.pattern),i=m(r.pattern,e+1);i!==r.pattern&&_.push({row:t,col:n,pattern:i})}})}),_.length?await r.executeCommand(g.id,{values:_}):!1}},v={id:`sheet.command.numfmt.set.currency`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(e.LocaleService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let l=[],u=c(o(a.getCurrentLocale()).locale);return s.forEach(t=>{e.Range.foreach(t.range,(e,t)=>{l.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(g.id,{values:l})}},y={id:`sheet.command.numfmt.set.percent`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(t=>{e.Range.foreach(t.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(g.id,{values:a})}},b={id:`sheet.command.numfmt.subtract.decimal.command`,type:e.CommandType.COMMAND,handler:async n=>{let r=n.get(e.ICommandService),i=n.get(t.SheetsSelectionsService),a=n.get(t.INumfmtService),o=n.get(e.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,t.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if(!r){let r=c.worksheet.getCellRaw(t,n);if(!d&&r&&r.t===e.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d-1,h=m(`0${p>0?`.0`:`.`}`,p),_=[];return s.forEach(t=>{e.Range.foreach(t.range,(t,n)=>{let r=a.getValue(l,u,t,n);if((0,e.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:t,col:n,pattern:h});else{let e=f(r.pattern);_.push({row:t,col:n,pattern:m(r.pattern,e-1)})}})}),await r.executeCommand(g.id,{values:_})}},x=`sheets-numfmt.config`;Symbol(x);const S={},C=t=>e.numfmt.getFormatInfo(t).type||`unknown`,w=(t,n,r=`en`)=>{try{let i=e.numfmt.formatColor(t,n),a=i?String(i):void 0,o=e.numfmt.format(t,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(e){console.warn(`getPatternPreview error:`,t,e)}return{result:String(n)}},T=(t,n,i)=>t===e.DEFAULT_NUMBER_FORMAT?{result:String((0,r.stripErrorMargin)(n))}:w(t,n,i);function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function k(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const M={tl:{size:6,color:`#409f11`}};let N=class extends e.Disposable{constructor(e,t,r,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=r,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,k(this,`_locale$`,new n.BehaviorSubject(`en`)),k(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let t=this._locale$.getValue();if(t)return t;switch(this._localeService.getCurrentLocale()){case e.LocaleType.FR_FR:return`fr`;case e.LocaleType.RU_RU:return`ru`;case e.LocaleType.VI_VN:return`vi`;case e.LocaleType.ZH_CN:return`zh-CN`;case e.LocaleType.KO_KR:return`ko`;case e.LocaleType.ZH_TW:return`zh-TW`;case e.LocaleType.ES_ES:case e.LocaleType.CA_ES:return`es`;case e.LocaleType.SK_SK:return`sk`;case e.LocaleType.EN_US:case e.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let r=new e.ObjectMatrix;this.disposeWithMe((0,n.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{r.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(t.INTERCEPTOR_POINT.CELL_CONTENT,{effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(n,i,a)=>{if(!n||n.v===void 0||n.v===null||n.t===e.CellValueType.BOOLEAN||n.t===e.CellValueType.FORCE_STRING)return a(n);let o=i.unitId,s=i.subUnitId,c;if(n!=null&&n.s){let e=i.workbook.getStyles().get(n.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,e.isDefaultFormat)(c==null?void 0:c.pattern)||n.t!==e.CellValueType.NUMBER&&(0,t.checkCellValueType)(n.v,n.t)!==e.CellValueType.NUMBER)return a(n);let l=n;if((!n||n===i.rawData)&&(n={...i.rawData}),(0,e.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(n.t=e.CellValueType.STRING,a(n)):(n.t=e.CellValueType.STRING,n.markers={...n==null?void 0:n.markers,...M},a(n))}let d=``,f=r.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...n,...f.result});let p=T(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(n);let m={v:d,t:e.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return r.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(n,m),a(n)},priority:t.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id===t.SetNumfmtMutation.id){let t=n.params;Object.keys(t.values).forEach(n=>{t.values[n].ranges.forEach(t=>{e.Range.foreach(t,(e,t)=>{r.realDeleteValue(e,t)})})})}else if(n.id===t.SetRangeValuesMutation.id){let t=n.params;new e.ObjectMatrix(t.cellValue).forValue((e,t)=>{r.realDeleteValue(e,t)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,n.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,n.of)(null):t}),(0,n.skip)(1)).subscribe(()=>r.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};N=j([A(0,e.IUniverInstanceService),A(1,(0,e.Inject)(t.SheetInterceptorService)),A(2,(0,e.Inject)(e.ThemeService)),A(3,(0,e.Inject)(e.ICommandService)),A(4,(0,e.Inject)(t.INumfmtService)),A(5,(0,e.Inject)(e.LocaleService)),A(6,e.IConfigService)],N);var P=`@univerjs/sheets-numfmt`,F=`0.19.0`;let I=class extends e.Plugin{constructor(t=S,n,r,i){super(),this._config=t,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,e.merge)({},S,this._config);this._configService.setConfig(x,a)}onStarting(){(0,e.registerDependencies)(this._injector,[[N]]),(0,e.touchDependencies)(this._injector,[[N]]),[_,b,v,y,g].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};k(I,`pluginName`,`SHEET_NUMFMT_PLUGIN`),k(I,`packageName`,P),k(I,`version`,F),k(I,`type`,e.UniverInstanceType.UNIVER_SHEET),I=j([(0,e.DependentOn)(t.UniverSheetsPlugin),A(1,(0,e.Inject)(e.Injector)),A(2,e.IConfigService),A(3,e.ICommandService)],I);const L=e=>i.find(t=>e.includes(t)),R=()=>i.map(e=>({label:e,value:e})),z=e=>d.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),B=()=>l.map(e=>({label:e.label,value:e.suffix})),V=()=>u.map(e=>({label:e.label,value:e.suffix,color:e.color}));exports.AddDecimalCommand=_,exports.CURRENCYFORMAT=d,exports.DATEFMTLISG=l,exports.NUMBERFORMAT=u,exports.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=x,exports.SetCurrencyCommand=v,exports.SetNumfmtCommand=g,exports.SetPercentCommand=y,Object.defineProperty(exports,`SheetsNumfmtCellContentController`,{enumerable:!0,get:function(){return N}}),exports.SubtractDecimalCommand=b,Object.defineProperty(exports,`UniverSheetsNumfmtPlugin`,{enumerable:!0,get:function(){return I}}),exports.currencySymbols=i,exports.getCurrencyFormat=c,exports.getCurrencyFormatOptions=z,exports.getCurrencyOptions=R,exports.getCurrencySymbolByLocale=s,exports.getCurrencySymbolIconByLocale=o,exports.getCurrencyType=L,exports.getDateFormatOptions=B,exports.getDecimalFromPattern=f,exports.getDecimalString=p,exports.getNumberFormatOptions=V,exports.getPatternPreview=w,exports.getPatternPreviewIgnoreGeneral=T,exports.getPatternType=C,exports.isPatternHasDecimal=h,exports.localeCurrencySymbolMap=a,exports.setPatternDecimal=m;
package/lib/es/index.js CHANGED
@@ -1 +1 @@
1
- import{CellValueType as e,CommandType as t,DEFAULT_NUMBER_FORMAT as n,DependentOn as r,Disposable as i,ICommandService as a,IConfigService as o,IUndoRedoService as s,IUniverInstanceService as c,Inject as l,Injector as u,InterceptorEffectEnum as d,LocaleService as f,LocaleType as p,ObjectMatrix as m,Plugin as h,Range as g,ThemeService as _,UniverInstanceType as v,isDefaultFormat as y,isTextFormat as b,merge as x,numfmt as S,registerDependencies as ee,sequenceExecute as te,touchDependencies as ne}from"@univerjs/core";import{INTERCEPTOR_POINT as re,INumfmtService as C,InterceptCellContentPriority as ie,RemoveNumfmtMutation as ae,SetNumfmtMutation as oe,SetRangeValuesMutation as w,SheetInterceptorService as se,SheetsSelectionsService as T,UniverSheetsPlugin as ce,checkCellValueType as E,factoryRemoveNumfmtUndoMutation as le,factorySetNumfmtUndoMutation as ue,getSheetCommandTarget as D,rangeMerge as O,transformCellsToRange as de}from"@univerjs/sheets";import{BehaviorSubject as fe,merge as pe,of as me,skip as he,switchMap as ge}from"rxjs";import{stripErrorMargin as _e}from"@univerjs/engine-formula";const k=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),A=new Map([[p.EN_US,`$`],[p.RU_RU,`₽`],[p.VI_VN,`₫`],[p.ZH_CN,`¥`],[p.ZH_TW,`NT$`],[p.FR_FR,`€`],[p.FA_IR,`﷼`],[p.KO_KR,`₩`],[p.ES_ES,`€`],[p.CA_ES,`€`],[p.SK_SK,`€`]]);function j(e){switch(e){case p.CA_ES:case p.ES_ES:case p.FR_FR:case p.SK_SK:return{icon:`EuroIcon`,symbol:A.get(e)||`€`,locale:e};case p.RU_RU:return{icon:`RoubleIcon`,symbol:A.get(e)||`₽`,locale:e};case p.ZH_CN:return{icon:`RmbIcon`,symbol:A.get(e)||`¥`,locale:e};case p.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:p.EN_US}}}function M(e){return A.get(e)||`$`}function N(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${M(e)}"#,##0${r}_);[Red]("${M(e)}"#,##0${r})`}const P=[{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`}],F=[{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`}],I=[{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`}],L=(e,t=0)=>{var n;return e?(n=S.getFormatInfo(e).maxDecimals)==null?t:n:t},R=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),z=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${R(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${R(Number(t||0))}$1`):e).join(`;`),ve=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),B={id:`sheet.command.numfmt.set.numfmt`,type:t.COMMAND,handler:(t,n)=>{if(!n)return!1;let r=t.get(a),i=t.get(c),o=t.get(s),l=D(i,n);if(!l)return!1;let{unitId:u,subUnitId:d,worksheet:f}=l,p=n.values.filter(e=>!!e.pattern),h=n.values.filter(e=>!e.pattern),g=de(u,d,p),_={unitId:u,subUnitId:d,ranges:h.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},v=[],y=[];if(p.length){let n=p.reduce((t,n)=>{b(n.pattern)&&t.setValue(n.row,n.col,{t:e.STRING});let r=f.getCellRaw(n.row,n.col);if(r){let e=E(r.v);e!==r.t&&t.setValue(n.row,n.col,{t:e})}return t},new m).getMatrix(),r=new m;new m(n).forValue((e,t)=>{let n=f.getCellRaw(e,t);n?r.setValue(e,t,{t:n.t}):r.setValue(e,t,{t:void 0})}),Object.keys(g.values).forEach(e=>{let t=g.values[e];t.ranges=O(t.ranges)}),v.push({id:oe.id,params:g});let i=ue(t,g);y.push(...i)}if(h.length){_.ranges=O(_.ranges);let e=h.reduce((e,t)=>{let n=f.getCellRaw(t.row,t.col);if(n){let r=E(n.v);r!==n.t&&e.setValue(t.row,t.col,{t:r})}return e},new m).getMatrix(),n=new m;new m(e).forValue((e,t)=>{let r=f.getCellRaw(e,t);r?n.setValue(e,t,{t:r.t}):n.setValue(e,t,{t:void 0})}),v.push({id:ae.id,params:_},{id:w.id,params:{unitId:u,subUnitId:d,cellValue:e}});let r=le(t,_);y.push({id:w.id,params:{unitId:u,subUnitId:d,cellValue:n.getMatrix()}},...r)}let x=te(v,r).result;return x&&o.pushUndoRedo({unitID:u,undoMutations:y,redoMutations:v}),x}},V={id:`sheet.command.numfmt.add.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f+1,m=z(`0${p>0?`.0`:``}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern),i=z(n.pattern,r+1);i!==n.pattern&&h.push({row:e,col:t,pattern:i})}})}),h.length?await n.executeCommand(B.id,{values:h}):!1}},H={id:`sheet.command.numfmt.set.currency`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T),r=e.get(f),i=n.getCurrentSelections();if(!i||!i.length)return!1;let o=[],s=N(j(r.getCurrentLocale()).locale);return i.forEach(e=>{g.foreach(e.range,(e,t)=>{o.push({row:e,col:t,pattern:s,type:`currency`})})}),await t.executeCommand(B.id,{values:o})}},U={id:`sheet.command.numfmt.set.percent`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T).getCurrentSelections();if(!n||!n.length)return!1;let r=[];return n.forEach(e=>{g.foreach(e.range,(e,t)=>{r.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await t.executeCommand(B.id,{values:r})}},W={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f-1,m=z(`0${p>0?`.0`:`.`}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern);h.push({row:e,col:t,pattern:z(n.pattern,r-1)})}})}),await n.executeCommand(B.id,{values:h})}},G=`sheets-numfmt.config`;Symbol(G);const K={},ye=e=>S.getFormatInfo(e).type||`unknown`,q=(e,t,n=`en`)=>{try{let r=S.formatColor(e,t),i=r?String(r):void 0,a=S.format(e,t,{locale:n,throws:!1});return t<0?{result:a,color:i}:{result:a}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(t)}},J=(e,t,r)=>e===n?{result:String(_e(t))}:q(e,t,r);function Y(e){"@babel/helpers - typeof";return Y=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y(e)}function be(e,t){if(Y(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function xe(e){var t=be(e,`string`);return Y(t)==`symbol`?t:t+``}function X(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){return function(n,r){t(n,r,e)}}function Se(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const Ce={tl:{size:6,color:`#409f11`}};let Q=class extends i{constructor(e,t,n,r,i,a,o){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=i,this._localeService=a,this._configService=o,X(this,`_locale$`,new fe(`en`)),X(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case p.FR_FR:return`fr`;case p.RU_RU:return`ru`;case p.VI_VN:return`vi`;case p.ZH_CN:return`zh-CN`;case p.KO_KR:return`ko`;case p.ZH_TW:return`zh-TW`;case p.ES_ES:case p.CA_ES:return`es`;case p.SK_SK:return`sk`;case p.EN_US:case p.FA_IR:default:return`en`}}_initInterceptorCellContent(){let t=new m;this.disposeWithMe(pe(this._locale$,this._localeService.currentLocale$).subscribe(()=>{t.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(re.CELL_CONTENT,{effect:d.Value|d.Style,handler:(n,r,i)=>{if(!n||n.v===void 0||n.v===null||n.t===e.BOOLEAN||n.t===e.FORCE_STRING)return i(n);let a=r.unitId,o=r.subUnitId,s;if(n!=null&&n.s){let e=r.workbook.getStyles().get(n.s);e!=null&&e.n&&(s=e.n)}if(s||(s=this._numfmtService.getValue(a,o,r.row,r.col)),y(s==null?void 0:s.pattern)||n.t!==e.NUMBER&&E(n.v,n.t)!==e.NUMBER)return i(n);let c=n;if((!n||n===r.rawData)&&(n={...r.rawData}),b(s==null?void 0:s.pattern)){var l;return(l=this._configService.getConfig(`sheets-numfmt.config`))!=null&&l.disableTextFormatMark?(n.t=e.STRING,i(n)):(n.t=e.STRING,n.markers={...n==null?void 0:n.markers,...Ce},i(n))}let u=``,d=t.getValue(r.row,r.col);if(d&&d.parameters===`${c.v}_${s==null?void 0:s.pattern}`)return i({...n,...d.result});let f=J(s==null?void 0:s.pattern,Number(c.v),this.locale);if(u=f.result,!u)return i(n);let p={v:u,t:e.NUMBER};if(f.color){var m;let e=(m=this._themeService.getColorFromTheme(`${f.color}.500`))==null?f.color:m;e&&(p.interceptorStyle={cl:{rgb:e}})}return t.setValue(r.row,r.col,{result:p,parameters:`${c.v}_${s==null?void 0:s.pattern}`}),Object.assign(n,p),i(n)},priority:ie.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===oe.id){let n=e.params;Object.keys(n.values).forEach(e=>{n.values[e].ranges.forEach(e=>{g.foreach(e,(e,n)=>{t.realDeleteValue(e,n)})})})}else if(e.id===w.id){let n=e.params;new m(n.cellValue).forValue((e,n)=>{t.realDeleteValue(e,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(v.UNIVER_SHEET).pipe(ge(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?me(null):t}),he(1)).subscribe(()=>t.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};Q=Se([Z(0,c),Z(1,l(se)),Z(2,l(_)),Z(3,l(a)),Z(4,l(C)),Z(5,l(f)),Z(6,o)],Q);var we=`@univerjs/sheets-numfmt`,Te=`0.18.0`;let $=class extends h{constructor(e=K,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._commandService=r;let{...i}=x({},K,this._config);this._configService.setConfig(G,i)}onStarting(){ee(this._injector,[[Q]]),ne(this._injector,[[Q]]),[V,W,H,U,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};X($,`pluginName`,`SHEET_NUMFMT_PLUGIN`),X($,`packageName`,we),X($,`version`,Te),X($,`type`,v.UNIVER_SHEET),$=Se([r(ce),Z(1,l(u)),Z(2,o),Z(3,a)],$);const Ee=e=>k.find(t=>e.includes(t)),De=()=>k.map(e=>({label:e,value:e})),Oe=e=>I.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ke=()=>P.map(e=>({label:e.label,value:e.suffix})),Ae=()=>F.map(e=>({label:e.label,value:e.suffix,color:e.color}));export{V as AddDecimalCommand,I as CURRENCYFORMAT,P as DATEFMTLISG,F as NUMBERFORMAT,G as SHEETS_NUMFMT_PLUGIN_CONFIG_KEY,H as SetCurrencyCommand,B as SetNumfmtCommand,U as SetPercentCommand,Q as SheetsNumfmtCellContentController,W as SubtractDecimalCommand,$ as UniverSheetsNumfmtPlugin,k as currencySymbols,N as getCurrencyFormat,Oe as getCurrencyFormatOptions,De as getCurrencyOptions,M as getCurrencySymbolByLocale,j as getCurrencySymbolIconByLocale,Ee as getCurrencyType,ke as getDateFormatOptions,L as getDecimalFromPattern,R as getDecimalString,Ae as getNumberFormatOptions,q as getPatternPreview,J as getPatternPreviewIgnoreGeneral,ye as getPatternType,ve as isPatternHasDecimal,A as localeCurrencySymbolMap,z as setPatternDecimal};
1
+ import{CellValueType as e,CommandType as t,DEFAULT_NUMBER_FORMAT as n,DependentOn as r,Disposable as i,ICommandService as a,IConfigService as o,IUndoRedoService as s,IUniverInstanceService as c,Inject as l,Injector as u,InterceptorEffectEnum as d,LocaleService as f,LocaleType as p,ObjectMatrix as m,Plugin as h,Range as g,ThemeService as _,UniverInstanceType as v,isDefaultFormat as y,isTextFormat as b,merge as x,numfmt as S,registerDependencies as ee,sequenceExecute as te,touchDependencies as ne}from"@univerjs/core";import{INTERCEPTOR_POINT as re,INumfmtService as C,InterceptCellContentPriority as ie,RemoveNumfmtMutation as ae,SetNumfmtMutation as oe,SetRangeValuesMutation as w,SheetInterceptorService as se,SheetsSelectionsService as T,UniverSheetsPlugin as ce,checkCellValueType as E,factoryRemoveNumfmtUndoMutation as le,factorySetNumfmtUndoMutation as ue,getSheetCommandTarget as D,rangeMerge as O,transformCellsToRange as de}from"@univerjs/sheets";import{BehaviorSubject as fe,merge as pe,of as me,skip as he,switchMap as ge}from"rxjs";import{stripErrorMargin as _e}from"@univerjs/engine-formula";const k=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),A=new Map([[p.EN_US,`$`],[p.RU_RU,`₽`],[p.VI_VN,`₫`],[p.ZH_CN,`¥`],[p.ZH_TW,`NT$`],[p.FR_FR,`€`],[p.FA_IR,`﷼`],[p.KO_KR,`₩`],[p.ES_ES,`€`],[p.CA_ES,`€`],[p.SK_SK,`€`]]);function j(e){switch(e){case p.CA_ES:case p.ES_ES:case p.FR_FR:case p.SK_SK:return{icon:`EuroIcon`,symbol:A.get(e)||`€`,locale:e};case p.RU_RU:return{icon:`RoubleIcon`,symbol:A.get(e)||`₽`,locale:e};case p.ZH_CN:return{icon:`RmbIcon`,symbol:A.get(e)||`¥`,locale:e};case p.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:p.EN_US}}}function M(e){return A.get(e)||`$`}function N(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${M(e)}"#,##0${r}_);[Red]("${M(e)}"#,##0${r})`}const P=[{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`}],F=[{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`}],I=[{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`}],L=(e,t=0)=>{var n;return e?(n=S.getFormatInfo(e).maxDecimals)==null?t:n:t},R=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),z=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${R(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${R(Number(t||0))}$1`):e).join(`;`),ve=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),B={id:`sheet.command.numfmt.set.numfmt`,type:t.COMMAND,handler:(t,n)=>{if(!n)return!1;let r=t.get(a),i=t.get(c),o=t.get(s),l=D(i,n);if(!l)return!1;let{unitId:u,subUnitId:d,worksheet:f}=l,p=n.values.filter(e=>!!e.pattern),h=n.values.filter(e=>!e.pattern),g=de(u,d,p),_={unitId:u,subUnitId:d,ranges:h.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},v=[],y=[];if(p.length){let n=p.reduce((t,n)=>{b(n.pattern)&&t.setValue(n.row,n.col,{t:e.STRING});let r=f.getCellRaw(n.row,n.col);if(r){let e=E(r.v);e!==r.t&&t.setValue(n.row,n.col,{t:e})}return t},new m).getMatrix(),r=new m;new m(n).forValue((e,t)=>{let n=f.getCellRaw(e,t);n?r.setValue(e,t,{t:n.t}):r.setValue(e,t,{t:void 0})}),Object.keys(g.values).forEach(e=>{let t=g.values[e];t.ranges=O(t.ranges)}),v.push({id:oe.id,params:g});let i=ue(t,g);y.push(...i)}if(h.length){_.ranges=O(_.ranges);let e=h.reduce((e,t)=>{let n=f.getCellRaw(t.row,t.col);if(n){let r=E(n.v);r!==n.t&&e.setValue(t.row,t.col,{t:r})}return e},new m).getMatrix(),n=new m;new m(e).forValue((e,t)=>{let r=f.getCellRaw(e,t);r?n.setValue(e,t,{t:r.t}):n.setValue(e,t,{t:void 0})}),v.push({id:ae.id,params:_},{id:w.id,params:{unitId:u,subUnitId:d,cellValue:e}});let r=le(t,_);y.push({id:w.id,params:{unitId:u,subUnitId:d,cellValue:n.getMatrix()}},...r)}let x=te(v,r).result;return x&&o.pushUndoRedo({unitID:u,undoMutations:y,redoMutations:v}),x}},V={id:`sheet.command.numfmt.add.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f+1,m=z(`0${p>0?`.0`:``}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern),i=z(n.pattern,r+1);i!==n.pattern&&h.push({row:e,col:t,pattern:i})}})}),h.length?await n.executeCommand(B.id,{values:h}):!1}},H={id:`sheet.command.numfmt.set.currency`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T),r=e.get(f),i=n.getCurrentSelections();if(!i||!i.length)return!1;let o=[],s=N(j(r.getCurrentLocale()).locale);return i.forEach(e=>{g.foreach(e.range,(e,t)=>{o.push({row:e,col:t,pattern:s,type:`currency`})})}),await t.executeCommand(B.id,{values:o})}},U={id:`sheet.command.numfmt.set.percent`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T).getCurrentSelections();if(!n||!n.length)return!1;let r=[];return n.forEach(e=>{g.foreach(e.range,(e,t)=>{r.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await t.executeCommand(B.id,{values:r})}},W={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f-1,m=z(`0${p>0?`.0`:`.`}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern);h.push({row:e,col:t,pattern:z(n.pattern,r-1)})}})}),await n.executeCommand(B.id,{values:h})}},G=`sheets-numfmt.config`;Symbol(G);const K={},ye=e=>S.getFormatInfo(e).type||`unknown`,q=(e,t,n=`en`)=>{try{let r=S.formatColor(e,t),i=r?String(r):void 0,a=S.format(e,t,{locale:n,throws:!1});return t<0?{result:a,color:i}:{result:a}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(t)}},J=(e,t,r)=>e===n?{result:String(_e(t))}:q(e,t,r);function Y(e){"@babel/helpers - typeof";return Y=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y(e)}function be(e,t){if(Y(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function xe(e){var t=be(e,`string`);return Y(t)==`symbol`?t:t+``}function X(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){return function(n,r){t(n,r,e)}}function Se(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const Ce={tl:{size:6,color:`#409f11`}};let Q=class extends i{constructor(e,t,n,r,i,a,o){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=i,this._localeService=a,this._configService=o,X(this,`_locale$`,new fe(`en`)),X(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case p.FR_FR:return`fr`;case p.RU_RU:return`ru`;case p.VI_VN:return`vi`;case p.ZH_CN:return`zh-CN`;case p.KO_KR:return`ko`;case p.ZH_TW:return`zh-TW`;case p.ES_ES:case p.CA_ES:return`es`;case p.SK_SK:return`sk`;case p.EN_US:case p.FA_IR:default:return`en`}}_initInterceptorCellContent(){let t=new m;this.disposeWithMe(pe(this._locale$,this._localeService.currentLocale$).subscribe(()=>{t.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(re.CELL_CONTENT,{effect:d.Value|d.Style,handler:(n,r,i)=>{if(!n||n.v===void 0||n.v===null||n.t===e.BOOLEAN||n.t===e.FORCE_STRING)return i(n);let a=r.unitId,o=r.subUnitId,s;if(n!=null&&n.s){let e=r.workbook.getStyles().get(n.s);e!=null&&e.n&&(s=e.n)}if(s||(s=this._numfmtService.getValue(a,o,r.row,r.col)),y(s==null?void 0:s.pattern)||n.t!==e.NUMBER&&E(n.v,n.t)!==e.NUMBER)return i(n);let c=n;if((!n||n===r.rawData)&&(n={...r.rawData}),b(s==null?void 0:s.pattern)){var l;return(l=this._configService.getConfig(`sheets-numfmt.config`))!=null&&l.disableTextFormatMark?(n.t=e.STRING,i(n)):(n.t=e.STRING,n.markers={...n==null?void 0:n.markers,...Ce},i(n))}let u=``,d=t.getValue(r.row,r.col);if(d&&d.parameters===`${c.v}_${s==null?void 0:s.pattern}`)return i({...n,...d.result});let f=J(s==null?void 0:s.pattern,Number(c.v),this.locale);if(u=f.result,!u)return i(n);let p={v:u,t:e.NUMBER};if(f.color){var m;let e=(m=this._themeService.getColorFromTheme(`${f.color}.500`))==null?f.color:m;e&&(p.interceptorStyle={cl:{rgb:e}})}return t.setValue(r.row,r.col,{result:p,parameters:`${c.v}_${s==null?void 0:s.pattern}`}),Object.assign(n,p),i(n)},priority:ie.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===oe.id){let n=e.params;Object.keys(n.values).forEach(e=>{n.values[e].ranges.forEach(e=>{g.foreach(e,(e,n)=>{t.realDeleteValue(e,n)})})})}else if(e.id===w.id){let n=e.params;new m(n.cellValue).forValue((e,n)=>{t.realDeleteValue(e,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(v.UNIVER_SHEET).pipe(ge(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?me(null):t}),he(1)).subscribe(()=>t.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};Q=Se([Z(0,c),Z(1,l(se)),Z(2,l(_)),Z(3,l(a)),Z(4,l(C)),Z(5,l(f)),Z(6,o)],Q);var we=`@univerjs/sheets-numfmt`,Te=`0.19.0`;let $=class extends h{constructor(e=K,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._commandService=r;let{...i}=x({},K,this._config);this._configService.setConfig(G,i)}onStarting(){ee(this._injector,[[Q]]),ne(this._injector,[[Q]]),[V,W,H,U,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};X($,`pluginName`,`SHEET_NUMFMT_PLUGIN`),X($,`packageName`,we),X($,`version`,Te),X($,`type`,v.UNIVER_SHEET),$=Se([r(ce),Z(1,l(u)),Z(2,o),Z(3,a)],$);const Ee=e=>k.find(t=>e.includes(t)),De=()=>k.map(e=>({label:e,value:e})),Oe=e=>I.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ke=()=>P.map(e=>({label:e.label,value:e.suffix})),Ae=()=>F.map(e=>({label:e.label,value:e.suffix,color:e.color}));export{V as AddDecimalCommand,I as CURRENCYFORMAT,P as DATEFMTLISG,F as NUMBERFORMAT,G as SHEETS_NUMFMT_PLUGIN_CONFIG_KEY,H as SetCurrencyCommand,B as SetNumfmtCommand,U as SetPercentCommand,Q as SheetsNumfmtCellContentController,W as SubtractDecimalCommand,$ as UniverSheetsNumfmtPlugin,k as currencySymbols,N as getCurrencyFormat,Oe as getCurrencyFormatOptions,De as getCurrencyOptions,M as getCurrencySymbolByLocale,j as getCurrencySymbolIconByLocale,Ee as getCurrencyType,ke as getDateFormatOptions,L as getDecimalFromPattern,R as getDecimalString,Ae as getNumberFormatOptions,q as getPatternPreview,J as getPatternPreviewIgnoreGeneral,ye as getPatternType,ve as isPatternHasDecimal,A as localeCurrencySymbolMap,z as setPatternDecimal};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{CellValueType as e,CommandType as t,DEFAULT_NUMBER_FORMAT as n,DependentOn as r,Disposable as i,ICommandService as a,IConfigService as o,IUndoRedoService as s,IUniverInstanceService as c,Inject as l,Injector as u,InterceptorEffectEnum as d,LocaleService as f,LocaleType as p,ObjectMatrix as m,Plugin as h,Range as g,ThemeService as _,UniverInstanceType as v,isDefaultFormat as y,isTextFormat as b,merge as x,numfmt as S,registerDependencies as ee,sequenceExecute as te,touchDependencies as ne}from"@univerjs/core";import{INTERCEPTOR_POINT as re,INumfmtService as C,InterceptCellContentPriority as ie,RemoveNumfmtMutation as ae,SetNumfmtMutation as oe,SetRangeValuesMutation as w,SheetInterceptorService as se,SheetsSelectionsService as T,UniverSheetsPlugin as ce,checkCellValueType as E,factoryRemoveNumfmtUndoMutation as le,factorySetNumfmtUndoMutation as ue,getSheetCommandTarget as D,rangeMerge as O,transformCellsToRange as de}from"@univerjs/sheets";import{BehaviorSubject as fe,merge as pe,of as me,skip as he,switchMap as ge}from"rxjs";import{stripErrorMargin as _e}from"@univerjs/engine-formula";const k=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),A=new Map([[p.EN_US,`$`],[p.RU_RU,`₽`],[p.VI_VN,`₫`],[p.ZH_CN,`¥`],[p.ZH_TW,`NT$`],[p.FR_FR,`€`],[p.FA_IR,`﷼`],[p.KO_KR,`₩`],[p.ES_ES,`€`],[p.CA_ES,`€`],[p.SK_SK,`€`]]);function j(e){switch(e){case p.CA_ES:case p.ES_ES:case p.FR_FR:case p.SK_SK:return{icon:`EuroIcon`,symbol:A.get(e)||`€`,locale:e};case p.RU_RU:return{icon:`RoubleIcon`,symbol:A.get(e)||`₽`,locale:e};case p.ZH_CN:return{icon:`RmbIcon`,symbol:A.get(e)||`¥`,locale:e};case p.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:p.EN_US}}}function M(e){return A.get(e)||`$`}function N(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${M(e)}"#,##0${r}_);[Red]("${M(e)}"#,##0${r})`}const P=[{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`}],F=[{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`}],I=[{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`}],L=(e,t=0)=>{var n;return e?(n=S.getFormatInfo(e).maxDecimals)==null?t:n:t},R=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),z=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${R(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${R(Number(t||0))}$1`):e).join(`;`),ve=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),B={id:`sheet.command.numfmt.set.numfmt`,type:t.COMMAND,handler:(t,n)=>{if(!n)return!1;let r=t.get(a),i=t.get(c),o=t.get(s),l=D(i,n);if(!l)return!1;let{unitId:u,subUnitId:d,worksheet:f}=l,p=n.values.filter(e=>!!e.pattern),h=n.values.filter(e=>!e.pattern),g=de(u,d,p),_={unitId:u,subUnitId:d,ranges:h.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},v=[],y=[];if(p.length){let n=p.reduce((t,n)=>{b(n.pattern)&&t.setValue(n.row,n.col,{t:e.STRING});let r=f.getCellRaw(n.row,n.col);if(r){let e=E(r.v);e!==r.t&&t.setValue(n.row,n.col,{t:e})}return t},new m).getMatrix(),r=new m;new m(n).forValue((e,t)=>{let n=f.getCellRaw(e,t);n?r.setValue(e,t,{t:n.t}):r.setValue(e,t,{t:void 0})}),Object.keys(g.values).forEach(e=>{let t=g.values[e];t.ranges=O(t.ranges)}),v.push({id:oe.id,params:g});let i=ue(t,g);y.push(...i)}if(h.length){_.ranges=O(_.ranges);let e=h.reduce((e,t)=>{let n=f.getCellRaw(t.row,t.col);if(n){let r=E(n.v);r!==n.t&&e.setValue(t.row,t.col,{t:r})}return e},new m).getMatrix(),n=new m;new m(e).forValue((e,t)=>{let r=f.getCellRaw(e,t);r?n.setValue(e,t,{t:r.t}):n.setValue(e,t,{t:void 0})}),v.push({id:ae.id,params:_},{id:w.id,params:{unitId:u,subUnitId:d,cellValue:e}});let r=le(t,_);y.push({id:w.id,params:{unitId:u,subUnitId:d,cellValue:n.getMatrix()}},...r)}let x=te(v,r).result;return x&&o.pushUndoRedo({unitID:u,undoMutations:y,redoMutations:v}),x}},V={id:`sheet.command.numfmt.add.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f+1,m=z(`0${p>0?`.0`:``}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern),i=z(n.pattern,r+1);i!==n.pattern&&h.push({row:e,col:t,pattern:i})}})}),h.length?await n.executeCommand(B.id,{values:h}):!1}},H={id:`sheet.command.numfmt.set.currency`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T),r=e.get(f),i=n.getCurrentSelections();if(!i||!i.length)return!1;let o=[],s=N(j(r.getCurrentLocale()).locale);return i.forEach(e=>{g.foreach(e.range,(e,t)=>{o.push({row:e,col:t,pattern:s,type:`currency`})})}),await t.executeCommand(B.id,{values:o})}},U={id:`sheet.command.numfmt.set.percent`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T).getCurrentSelections();if(!n||!n.length)return!1;let r=[];return n.forEach(e=>{g.foreach(e.range,(e,t)=>{r.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await t.executeCommand(B.id,{values:r})}},W={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f-1,m=z(`0${p>0?`.0`:`.`}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern);h.push({row:e,col:t,pattern:z(n.pattern,r-1)})}})}),await n.executeCommand(B.id,{values:h})}},G=`sheets-numfmt.config`;Symbol(G);const K={},ye=e=>S.getFormatInfo(e).type||`unknown`,q=(e,t,n=`en`)=>{try{let r=S.formatColor(e,t),i=r?String(r):void 0,a=S.format(e,t,{locale:n,throws:!1});return t<0?{result:a,color:i}:{result:a}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(t)}},J=(e,t,r)=>e===n?{result:String(_e(t))}:q(e,t,r);function Y(e){"@babel/helpers - typeof";return Y=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y(e)}function be(e,t){if(Y(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function xe(e){var t=be(e,`string`);return Y(t)==`symbol`?t:t+``}function X(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){return function(n,r){t(n,r,e)}}function Se(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const Ce={tl:{size:6,color:`#409f11`}};let Q=class extends i{constructor(e,t,n,r,i,a,o){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=i,this._localeService=a,this._configService=o,X(this,`_locale$`,new fe(`en`)),X(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case p.FR_FR:return`fr`;case p.RU_RU:return`ru`;case p.VI_VN:return`vi`;case p.ZH_CN:return`zh-CN`;case p.KO_KR:return`ko`;case p.ZH_TW:return`zh-TW`;case p.ES_ES:case p.CA_ES:return`es`;case p.SK_SK:return`sk`;case p.EN_US:case p.FA_IR:default:return`en`}}_initInterceptorCellContent(){let t=new m;this.disposeWithMe(pe(this._locale$,this._localeService.currentLocale$).subscribe(()=>{t.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(re.CELL_CONTENT,{effect:d.Value|d.Style,handler:(n,r,i)=>{if(!n||n.v===void 0||n.v===null||n.t===e.BOOLEAN||n.t===e.FORCE_STRING)return i(n);let a=r.unitId,o=r.subUnitId,s;if(n!=null&&n.s){let e=r.workbook.getStyles().get(n.s);e!=null&&e.n&&(s=e.n)}if(s||(s=this._numfmtService.getValue(a,o,r.row,r.col)),y(s==null?void 0:s.pattern)||n.t!==e.NUMBER&&E(n.v,n.t)!==e.NUMBER)return i(n);let c=n;if((!n||n===r.rawData)&&(n={...r.rawData}),b(s==null?void 0:s.pattern)){var l;return(l=this._configService.getConfig(`sheets-numfmt.config`))!=null&&l.disableTextFormatMark?(n.t=e.STRING,i(n)):(n.t=e.STRING,n.markers={...n==null?void 0:n.markers,...Ce},i(n))}let u=``,d=t.getValue(r.row,r.col);if(d&&d.parameters===`${c.v}_${s==null?void 0:s.pattern}`)return i({...n,...d.result});let f=J(s==null?void 0:s.pattern,Number(c.v),this.locale);if(u=f.result,!u)return i(n);let p={v:u,t:e.NUMBER};if(f.color){var m;let e=(m=this._themeService.getColorFromTheme(`${f.color}.500`))==null?f.color:m;e&&(p.interceptorStyle={cl:{rgb:e}})}return t.setValue(r.row,r.col,{result:p,parameters:`${c.v}_${s==null?void 0:s.pattern}`}),Object.assign(n,p),i(n)},priority:ie.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===oe.id){let n=e.params;Object.keys(n.values).forEach(e=>{n.values[e].ranges.forEach(e=>{g.foreach(e,(e,n)=>{t.realDeleteValue(e,n)})})})}else if(e.id===w.id){let n=e.params;new m(n.cellValue).forValue((e,n)=>{t.realDeleteValue(e,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(v.UNIVER_SHEET).pipe(ge(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?me(null):t}),he(1)).subscribe(()=>t.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};Q=Se([Z(0,c),Z(1,l(se)),Z(2,l(_)),Z(3,l(a)),Z(4,l(C)),Z(5,l(f)),Z(6,o)],Q);var we=`@univerjs/sheets-numfmt`,Te=`0.18.0`;let $=class extends h{constructor(e=K,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._commandService=r;let{...i}=x({},K,this._config);this._configService.setConfig(G,i)}onStarting(){ee(this._injector,[[Q]]),ne(this._injector,[[Q]]),[V,W,H,U,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};X($,`pluginName`,`SHEET_NUMFMT_PLUGIN`),X($,`packageName`,we),X($,`version`,Te),X($,`type`,v.UNIVER_SHEET),$=Se([r(ce),Z(1,l(u)),Z(2,o),Z(3,a)],$);const Ee=e=>k.find(t=>e.includes(t)),De=()=>k.map(e=>({label:e,value:e})),Oe=e=>I.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ke=()=>P.map(e=>({label:e.label,value:e.suffix})),Ae=()=>F.map(e=>({label:e.label,value:e.suffix,color:e.color}));export{V as AddDecimalCommand,I as CURRENCYFORMAT,P as DATEFMTLISG,F as NUMBERFORMAT,G as SHEETS_NUMFMT_PLUGIN_CONFIG_KEY,H as SetCurrencyCommand,B as SetNumfmtCommand,U as SetPercentCommand,Q as SheetsNumfmtCellContentController,W as SubtractDecimalCommand,$ as UniverSheetsNumfmtPlugin,k as currencySymbols,N as getCurrencyFormat,Oe as getCurrencyFormatOptions,De as getCurrencyOptions,M as getCurrencySymbolByLocale,j as getCurrencySymbolIconByLocale,Ee as getCurrencyType,ke as getDateFormatOptions,L as getDecimalFromPattern,R as getDecimalString,Ae as getNumberFormatOptions,q as getPatternPreview,J as getPatternPreviewIgnoreGeneral,ye as getPatternType,ve as isPatternHasDecimal,A as localeCurrencySymbolMap,z as setPatternDecimal};
1
+ import{CellValueType as e,CommandType as t,DEFAULT_NUMBER_FORMAT as n,DependentOn as r,Disposable as i,ICommandService as a,IConfigService as o,IUndoRedoService as s,IUniverInstanceService as c,Inject as l,Injector as u,InterceptorEffectEnum as d,LocaleService as f,LocaleType as p,ObjectMatrix as m,Plugin as h,Range as g,ThemeService as _,UniverInstanceType as v,isDefaultFormat as y,isTextFormat as b,merge as x,numfmt as S,registerDependencies as ee,sequenceExecute as te,touchDependencies as ne}from"@univerjs/core";import{INTERCEPTOR_POINT as re,INumfmtService as C,InterceptCellContentPriority as ie,RemoveNumfmtMutation as ae,SetNumfmtMutation as oe,SetRangeValuesMutation as w,SheetInterceptorService as se,SheetsSelectionsService as T,UniverSheetsPlugin as ce,checkCellValueType as E,factoryRemoveNumfmtUndoMutation as le,factorySetNumfmtUndoMutation as ue,getSheetCommandTarget as D,rangeMerge as O,transformCellsToRange as de}from"@univerjs/sheets";import{BehaviorSubject as fe,merge as pe,of as me,skip as he,switchMap as ge}from"rxjs";import{stripErrorMargin as _e}from"@univerjs/engine-formula";const k=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),A=new Map([[p.EN_US,`$`],[p.RU_RU,`₽`],[p.VI_VN,`₫`],[p.ZH_CN,`¥`],[p.ZH_TW,`NT$`],[p.FR_FR,`€`],[p.FA_IR,`﷼`],[p.KO_KR,`₩`],[p.ES_ES,`€`],[p.CA_ES,`€`],[p.SK_SK,`€`]]);function j(e){switch(e){case p.CA_ES:case p.ES_ES:case p.FR_FR:case p.SK_SK:return{icon:`EuroIcon`,symbol:A.get(e)||`€`,locale:e};case p.RU_RU:return{icon:`RoubleIcon`,symbol:A.get(e)||`₽`,locale:e};case p.ZH_CN:return{icon:`RmbIcon`,symbol:A.get(e)||`¥`,locale:e};case p.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:p.EN_US}}}function M(e){return A.get(e)||`$`}function N(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${M(e)}"#,##0${r}_);[Red]("${M(e)}"#,##0${r})`}const P=[{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`}],F=[{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`}],I=[{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`}],L=(e,t=0)=>{var n;return e?(n=S.getFormatInfo(e).maxDecimals)==null?t:n:t},R=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),z=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${R(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${R(Number(t||0))}$1`):e).join(`;`),ve=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),B={id:`sheet.command.numfmt.set.numfmt`,type:t.COMMAND,handler:(t,n)=>{if(!n)return!1;let r=t.get(a),i=t.get(c),o=t.get(s),l=D(i,n);if(!l)return!1;let{unitId:u,subUnitId:d,worksheet:f}=l,p=n.values.filter(e=>!!e.pattern),h=n.values.filter(e=>!e.pattern),g=de(u,d,p),_={unitId:u,subUnitId:d,ranges:h.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},v=[],y=[];if(p.length){let n=p.reduce((t,n)=>{b(n.pattern)&&t.setValue(n.row,n.col,{t:e.STRING});let r=f.getCellRaw(n.row,n.col);if(r){let e=E(r.v);e!==r.t&&t.setValue(n.row,n.col,{t:e})}return t},new m).getMatrix(),r=new m;new m(n).forValue((e,t)=>{let n=f.getCellRaw(e,t);n?r.setValue(e,t,{t:n.t}):r.setValue(e,t,{t:void 0})}),Object.keys(g.values).forEach(e=>{let t=g.values[e];t.ranges=O(t.ranges)}),v.push({id:oe.id,params:g});let i=ue(t,g);y.push(...i)}if(h.length){_.ranges=O(_.ranges);let e=h.reduce((e,t)=>{let n=f.getCellRaw(t.row,t.col);if(n){let r=E(n.v);r!==n.t&&e.setValue(t.row,t.col,{t:r})}return e},new m).getMatrix(),n=new m;new m(e).forValue((e,t)=>{let r=f.getCellRaw(e,t);r?n.setValue(e,t,{t:r.t}):n.setValue(e,t,{t:void 0})}),v.push({id:ae.id,params:_},{id:w.id,params:{unitId:u,subUnitId:d,cellValue:e}});let r=le(t,_);y.push({id:w.id,params:{unitId:u,subUnitId:d,cellValue:n.getMatrix()}},...r)}let x=te(v,r).result;return x&&o.pushUndoRedo({unitID:u,undoMutations:y,redoMutations:v}),x}},V={id:`sheet.command.numfmt.add.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f+1,m=z(`0${p>0?`.0`:``}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern),i=z(n.pattern,r+1);i!==n.pattern&&h.push({row:e,col:t,pattern:i})}})}),h.length?await n.executeCommand(B.id,{values:h}):!1}},H={id:`sheet.command.numfmt.set.currency`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T),r=e.get(f),i=n.getCurrentSelections();if(!i||!i.length)return!1;let o=[],s=N(j(r.getCurrentLocale()).locale);return i.forEach(e=>{g.foreach(e.range,(e,t)=>{o.push({row:e,col:t,pattern:s,type:`currency`})})}),await t.executeCommand(B.id,{values:o})}},U={id:`sheet.command.numfmt.set.percent`,type:t.COMMAND,handler:async e=>{let t=e.get(a),n=e.get(T).getCurrentSelections();if(!n||!n.length)return!1;let r=[];return n.forEach(e=>{g.foreach(e.range,(e,t)=>{r.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await t.executeCommand(B.id,{values:r})}},W={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.COMMAND,handler:async t=>{let n=t.get(a),r=t.get(T),i=t.get(C),o=t.get(c),s=r.getCurrentSelections();if(!s||!s.length)return!1;let l=D(o);if(!l)return!1;let{unitId:u,subUnitId:d}=l,f=0;s.forEach(t=>{g.foreach(t.range,(t,n)=>{let r=i.getValue(u,d,t,n);if(!r){let r=l.worksheet.getCellRaw(t,n);if(!f&&r&&r.t===e.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;f=Math.max(f,t)}}return}let a=L(r.pattern);f=a>f?a:f})});let p=f-1,m=z(`0${p>0?`.0`:`.`}`,p),h=[];return s.forEach(e=>{g.foreach(e.range,(e,t)=>{let n=i.getValue(u,d,e,t);if(y(n==null?void 0:n.pattern))h.push({row:e,col:t,pattern:m});else{let r=L(n.pattern);h.push({row:e,col:t,pattern:z(n.pattern,r-1)})}})}),await n.executeCommand(B.id,{values:h})}},G=`sheets-numfmt.config`;Symbol(G);const K={},ye=e=>S.getFormatInfo(e).type||`unknown`,q=(e,t,n=`en`)=>{try{let r=S.formatColor(e,t),i=r?String(r):void 0,a=S.format(e,t,{locale:n,throws:!1});return t<0?{result:a,color:i}:{result:a}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(t)}},J=(e,t,r)=>e===n?{result:String(_e(t))}:q(e,t,r);function Y(e){"@babel/helpers - typeof";return Y=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y(e)}function be(e,t){if(Y(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function xe(e){var t=be(e,`string`);return Y(t)==`symbol`?t:t+``}function X(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){return function(n,r){t(n,r,e)}}function Se(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const Ce={tl:{size:6,color:`#409f11`}};let Q=class extends i{constructor(e,t,n,r,i,a,o){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=i,this._localeService=a,this._configService=o,X(this,`_locale$`,new fe(`en`)),X(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case p.FR_FR:return`fr`;case p.RU_RU:return`ru`;case p.VI_VN:return`vi`;case p.ZH_CN:return`zh-CN`;case p.KO_KR:return`ko`;case p.ZH_TW:return`zh-TW`;case p.ES_ES:case p.CA_ES:return`es`;case p.SK_SK:return`sk`;case p.EN_US:case p.FA_IR:default:return`en`}}_initInterceptorCellContent(){let t=new m;this.disposeWithMe(pe(this._locale$,this._localeService.currentLocale$).subscribe(()=>{t.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(re.CELL_CONTENT,{effect:d.Value|d.Style,handler:(n,r,i)=>{if(!n||n.v===void 0||n.v===null||n.t===e.BOOLEAN||n.t===e.FORCE_STRING)return i(n);let a=r.unitId,o=r.subUnitId,s;if(n!=null&&n.s){let e=r.workbook.getStyles().get(n.s);e!=null&&e.n&&(s=e.n)}if(s||(s=this._numfmtService.getValue(a,o,r.row,r.col)),y(s==null?void 0:s.pattern)||n.t!==e.NUMBER&&E(n.v,n.t)!==e.NUMBER)return i(n);let c=n;if((!n||n===r.rawData)&&(n={...r.rawData}),b(s==null?void 0:s.pattern)){var l;return(l=this._configService.getConfig(`sheets-numfmt.config`))!=null&&l.disableTextFormatMark?(n.t=e.STRING,i(n)):(n.t=e.STRING,n.markers={...n==null?void 0:n.markers,...Ce},i(n))}let u=``,d=t.getValue(r.row,r.col);if(d&&d.parameters===`${c.v}_${s==null?void 0:s.pattern}`)return i({...n,...d.result});let f=J(s==null?void 0:s.pattern,Number(c.v),this.locale);if(u=f.result,!u)return i(n);let p={v:u,t:e.NUMBER};if(f.color){var m;let e=(m=this._themeService.getColorFromTheme(`${f.color}.500`))==null?f.color:m;e&&(p.interceptorStyle={cl:{rgb:e}})}return t.setValue(r.row,r.col,{result:p,parameters:`${c.v}_${s==null?void 0:s.pattern}`}),Object.assign(n,p),i(n)},priority:ie.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===oe.id){let n=e.params;Object.keys(n.values).forEach(e=>{n.values[e].ranges.forEach(e=>{g.foreach(e,(e,n)=>{t.realDeleteValue(e,n)})})})}else if(e.id===w.id){let n=e.params;new m(n.cellValue).forValue((e,n)=>{t.realDeleteValue(e,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(v.UNIVER_SHEET).pipe(ge(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?me(null):t}),he(1)).subscribe(()=>t.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};Q=Se([Z(0,c),Z(1,l(se)),Z(2,l(_)),Z(3,l(a)),Z(4,l(C)),Z(5,l(f)),Z(6,o)],Q);var we=`@univerjs/sheets-numfmt`,Te=`0.19.0`;let $=class extends h{constructor(e=K,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._commandService=r;let{...i}=x({},K,this._config);this._configService.setConfig(G,i)}onStarting(){ee(this._injector,[[Q]]),ne(this._injector,[[Q]]),[V,W,H,U,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};X($,`pluginName`,`SHEET_NUMFMT_PLUGIN`),X($,`packageName`,we),X($,`version`,Te),X($,`type`,v.UNIVER_SHEET),$=Se([r(ce),Z(1,l(u)),Z(2,o),Z(3,a)],$);const Ee=e=>k.find(t=>e.includes(t)),De=()=>k.map(e=>({label:e,value:e})),Oe=e=>I.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),ke=()=>P.map(e=>({label:e.label,value:e.suffix})),Ae=()=>F.map(e=>({label:e.label,value:e.suffix,color:e.color}));export{V as AddDecimalCommand,I as CURRENCYFORMAT,P as DATEFMTLISG,F as NUMBERFORMAT,G as SHEETS_NUMFMT_PLUGIN_CONFIG_KEY,H as SetCurrencyCommand,B as SetNumfmtCommand,U as SetPercentCommand,Q as SheetsNumfmtCellContentController,W as SubtractDecimalCommand,$ as UniverSheetsNumfmtPlugin,k as currencySymbols,N as getCurrencyFormat,Oe as getCurrencyFormatOptions,De as getCurrencyOptions,M as getCurrencySymbolByLocale,j as getCurrencySymbolIconByLocale,Ee as getCurrencyType,ke as getDateFormatOptions,L as getDecimalFromPattern,R as getDecimalString,Ae as getNumberFormatOptions,q as getPatternPreview,J as getPatternPreviewIgnoreGeneral,ye as getPatternType,ve as isPatternHasDecimal,A as localeCurrencySymbolMap,z as setPatternDecimal};
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets`),require(`rxjs`),require(`@univerjs/engine-formula`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),o=new Map([[t.LocaleType.EN_US,`$`],[t.LocaleType.RU_RU,`₽`],[t.LocaleType.VI_VN,`₫`],[t.LocaleType.ZH_CN,`¥`],[t.LocaleType.ZH_TW,`NT$`],[t.LocaleType.FR_FR,`€`],[t.LocaleType.FA_IR,`﷼`],[t.LocaleType.KO_KR,`₩`],[t.LocaleType.ES_ES,`€`],[t.LocaleType.CA_ES,`€`],[t.LocaleType.SK_SK,`€`]]);function s(e){switch(e){case t.LocaleType.CA_ES:case t.LocaleType.ES_ES:case t.LocaleType.FR_FR:case t.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:o.get(e)||`€`,locale:e};case t.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:o.get(e)||`₽`,locale:e};case t.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:o.get(e)||`¥`,locale:e};case t.LocaleType.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:t.LocaleType.EN_US}}}function c(e){return o.get(e)||`$`}function l(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${c(e)}"#,##0${r}_);[Red]("${c(e)}"#,##0${r})`}let u=[{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`}],d=[{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`}],f=[{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`}],p=(e,n=0)=>{var r;return e?(r=t.numfmt.getFormatInfo(e).maxDecimals)==null?n:r:n},m=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),h=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${m(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${m(Number(t||0))}$1`):e).join(`;`),g=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),_={id:`sheet.command.numfmt.set.numfmt`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),o=e.get(t.IUndoRedoService),s=(0,n.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,n.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((e,r)=>{(0,t.isTextFormat)(r.pattern)&&e.setValue(r.row,r.col,{t:t.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let t=(0,n.checkCellValueType)(i.v);t!==i.t&&e.setValue(r.row,r.col,{t})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let t=p.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),h.push({id:n.SetNumfmtMutation.id,params:p});let a=(0,n.factorySetNumfmtUndoMutation)(e,p);g.push(...a)}if(f.length){m.ranges=(0,n.rangeMerge)(m.ranges);let r=f.reduce((e,t)=>{let r=u.getCellRaw(t.row,t.col);if(r){let i=(0,n.checkCellValueType)(r.v);i!==r.t&&e.setValue(t.row,t.col,{t:i})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:n.RemoveNumfmtMutation.id,params:m},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,m);g.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,t.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},v={id:`sheet.command.numfmt.add.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d+1,m=h(`0${f>0?`.0`:``}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern),i=h(r.pattern,t+1);i!==r.pattern&&g.push({row:e,col:n,pattern:i})}})}),g.length?await r.executeCommand(_.id,{values:g}):!1}},y={id:`sheet.command.numfmt.set.currency`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(t.LocaleService),o=i.getCurrentSelections();if(!o||!o.length)return!1;let c=[],u=l(s(a.getCurrentLocale()).locale);return o.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{c.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(_.id,{values:c})}},b={id:`sheet.command.numfmt.set.percent`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(_.id,{values:a})}},x={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d-1,m=h(`0${f>0?`.0`:`.`}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern);g.push({row:e,col:n,pattern:h(r.pattern,t-1)})}})}),await r.executeCommand(_.id,{values:g})}},S=`sheets-numfmt.config`;Symbol(S);let C={},w=e=>t.numfmt.getFormatInfo(e).type||`unknown`,T=(e,n,r=`en`)=>{try{let i=t.numfmt.formatColor(e,n),a=i?String(i):void 0,o=t.numfmt.format(e,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},E=(e,n,r)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,i.stripErrorMargin)(n))}:T(e,n,r);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){return function(n,r){t(n,r,e)}}function M(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let N={tl:{size:6,color:`#409f11`}},P=class extends t.Disposable{constructor(e,t,n,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,A(this,`_locale$`,new r.BehaviorSubject(`en`)),A(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;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.KO_KR:return`ko`;case t.LocaleType.ZH_TW:return`zh-TW`;case t.LocaleType.ES_ES:case t.LocaleType.CA_ES:return`es`;case t.LocaleType.SK_SK:return`sk`;case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,r.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{e.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(r,i,a)=>{if(!r||r.v===void 0||r.v===null||r.t===t.CellValueType.BOOLEAN||r.t===t.CellValueType.FORCE_STRING)return a(r);let o=i.unitId,s=i.subUnitId,c;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,t.isDefaultFormat)(c==null?void 0:c.pattern)||r.t!==t.CellValueType.NUMBER&&(0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER)return a(r);let l=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...N},a(r))}let d=``,f=e.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...r,...f.result});let p=E(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(r);let m={v:d,t:t.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(r,m),a(r)},priority:n.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===n.SetNumfmtMutation.id){let n=r.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)})})})}else if(r.id===n.SetRangeValuesMutation.id){let n=r.params;new t.ObjectMatrix(n.cellValue).forValue((t,n)=>{e.realDeleteValue(t,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,r.of)(null):t}),(0,r.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};P=M([j(0,t.IUniverInstanceService),j(1,(0,t.Inject)(n.SheetInterceptorService)),j(2,(0,t.Inject)(t.ThemeService)),j(3,(0,t.Inject)(t.ICommandService)),j(4,(0,t.Inject)(n.INumfmtService)),j(5,(0,t.Inject)(t.LocaleService)),j(6,t.IConfigService)],P);var F=`@univerjs/sheets-numfmt`,I=`0.18.0`;let L=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(S,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[P]]),(0,t.touchDependencies)(this._injector,[[P]]),[v,x,y,b,_].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};A(L,`pluginName`,`SHEET_NUMFMT_PLUGIN`),A(L,`packageName`,F),A(L,`version`,I),A(L,`type`,t.UniverInstanceType.UNIVER_SHEET),L=M([(0,t.DependentOn)(n.UniverSheetsPlugin),j(1,(0,t.Inject)(t.Injector)),j(2,t.IConfigService),j(3,t.ICommandService)],L),e.AddDecimalCommand=v,e.CURRENCYFORMAT=f,e.DATEFMTLISG=u,e.NUMBERFORMAT=d,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=S,e.SetCurrencyCommand=y,e.SetNumfmtCommand=_,e.SetPercentCommand=b,Object.defineProperty(e,`SheetsNumfmtCellContentController`,{enumerable:!0,get:function(){return P}}),e.SubtractDecimalCommand=x,Object.defineProperty(e,`UniverSheetsNumfmtPlugin`,{enumerable:!0,get:function(){return L}}),e.currencySymbols=a,e.getCurrencyFormat=l,e.getCurrencyFormatOptions=e=>f.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),e.getCurrencyOptions=()=>a.map(e=>({label:e,value:e})),e.getCurrencySymbolByLocale=c,e.getCurrencySymbolIconByLocale=s,e.getCurrencyType=e=>a.find(t=>e.includes(t)),e.getDateFormatOptions=()=>u.map(e=>({label:e.label,value:e.suffix})),e.getDecimalFromPattern=p,e.getDecimalString=m,e.getNumberFormatOptions=()=>d.map(e=>({label:e.label,value:e.suffix,color:e.color})),e.getPatternPreview=T,e.getPatternPreviewIgnoreGeneral=E,e.getPatternType=w,e.isPatternHasDecimal=g,e.localeCurrencySymbolMap=o,e.setPatternDecimal=h});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets`),require(`rxjs`),require(`@univerjs/engine-formula`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),o=new Map([[t.LocaleType.EN_US,`$`],[t.LocaleType.RU_RU,`₽`],[t.LocaleType.VI_VN,`₫`],[t.LocaleType.ZH_CN,`¥`],[t.LocaleType.ZH_TW,`NT$`],[t.LocaleType.FR_FR,`€`],[t.LocaleType.FA_IR,`﷼`],[t.LocaleType.KO_KR,`₩`],[t.LocaleType.ES_ES,`€`],[t.LocaleType.CA_ES,`€`],[t.LocaleType.SK_SK,`€`]]);function s(e){switch(e){case t.LocaleType.CA_ES:case t.LocaleType.ES_ES:case t.LocaleType.FR_FR:case t.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:o.get(e)||`€`,locale:e};case t.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:o.get(e)||`₽`,locale:e};case t.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:o.get(e)||`¥`,locale:e};case t.LocaleType.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:t.LocaleType.EN_US}}}function c(e){return o.get(e)||`$`}function l(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${c(e)}"#,##0${r}_);[Red]("${c(e)}"#,##0${r})`}let u=[{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`}],d=[{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`}],f=[{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`}],p=(e,n=0)=>{var r;return e?(r=t.numfmt.getFormatInfo(e).maxDecimals)==null?n:r:n},m=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),h=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${m(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${m(Number(t||0))}$1`):e).join(`;`),g=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),_={id:`sheet.command.numfmt.set.numfmt`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),o=e.get(t.IUndoRedoService),s=(0,n.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,n.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((e,r)=>{(0,t.isTextFormat)(r.pattern)&&e.setValue(r.row,r.col,{t:t.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let t=(0,n.checkCellValueType)(i.v);t!==i.t&&e.setValue(r.row,r.col,{t})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let t=p.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),h.push({id:n.SetNumfmtMutation.id,params:p});let a=(0,n.factorySetNumfmtUndoMutation)(e,p);g.push(...a)}if(f.length){m.ranges=(0,n.rangeMerge)(m.ranges);let r=f.reduce((e,t)=>{let r=u.getCellRaw(t.row,t.col);if(r){let i=(0,n.checkCellValueType)(r.v);i!==r.t&&e.setValue(t.row,t.col,{t:i})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:n.RemoveNumfmtMutation.id,params:m},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,m);g.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,t.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},v={id:`sheet.command.numfmt.add.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d+1,m=h(`0${f>0?`.0`:``}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern),i=h(r.pattern,t+1);i!==r.pattern&&g.push({row:e,col:n,pattern:i})}})}),g.length?await r.executeCommand(_.id,{values:g}):!1}},y={id:`sheet.command.numfmt.set.currency`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(t.LocaleService),o=i.getCurrentSelections();if(!o||!o.length)return!1;let c=[],u=l(s(a.getCurrentLocale()).locale);return o.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{c.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(_.id,{values:c})}},b={id:`sheet.command.numfmt.set.percent`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(_.id,{values:a})}},x={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d-1,m=h(`0${f>0?`.0`:`.`}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern);g.push({row:e,col:n,pattern:h(r.pattern,t-1)})}})}),await r.executeCommand(_.id,{values:g})}},S=`sheets-numfmt.config`;Symbol(S);let C={},w=e=>t.numfmt.getFormatInfo(e).type||`unknown`,T=(e,n,r=`en`)=>{try{let i=t.numfmt.formatColor(e,n),a=i?String(i):void 0,o=t.numfmt.format(e,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},E=(e,n,r)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,i.stripErrorMargin)(n))}:T(e,n,r);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){return function(n,r){t(n,r,e)}}function M(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let N={tl:{size:6,color:`#409f11`}},P=class extends t.Disposable{constructor(e,t,n,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,A(this,`_locale$`,new r.BehaviorSubject(`en`)),A(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;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.KO_KR:return`ko`;case t.LocaleType.ZH_TW:return`zh-TW`;case t.LocaleType.ES_ES:case t.LocaleType.CA_ES:return`es`;case t.LocaleType.SK_SK:return`sk`;case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,r.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{e.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(r,i,a)=>{if(!r||r.v===void 0||r.v===null||r.t===t.CellValueType.BOOLEAN||r.t===t.CellValueType.FORCE_STRING)return a(r);let o=i.unitId,s=i.subUnitId,c;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,t.isDefaultFormat)(c==null?void 0:c.pattern)||r.t!==t.CellValueType.NUMBER&&(0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER)return a(r);let l=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...N},a(r))}let d=``,f=e.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...r,...f.result});let p=E(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(r);let m={v:d,t:t.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(r,m),a(r)},priority:n.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===n.SetNumfmtMutation.id){let n=r.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)})})})}else if(r.id===n.SetRangeValuesMutation.id){let n=r.params;new t.ObjectMatrix(n.cellValue).forValue((t,n)=>{e.realDeleteValue(t,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,r.of)(null):t}),(0,r.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};P=M([j(0,t.IUniverInstanceService),j(1,(0,t.Inject)(n.SheetInterceptorService)),j(2,(0,t.Inject)(t.ThemeService)),j(3,(0,t.Inject)(t.ICommandService)),j(4,(0,t.Inject)(n.INumfmtService)),j(5,(0,t.Inject)(t.LocaleService)),j(6,t.IConfigService)],P);var F=`@univerjs/sheets-numfmt`,I=`0.19.0`;let L=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(S,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[P]]),(0,t.touchDependencies)(this._injector,[[P]]),[v,x,y,b,_].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};A(L,`pluginName`,`SHEET_NUMFMT_PLUGIN`),A(L,`packageName`,F),A(L,`version`,I),A(L,`type`,t.UniverInstanceType.UNIVER_SHEET),L=M([(0,t.DependentOn)(n.UniverSheetsPlugin),j(1,(0,t.Inject)(t.Injector)),j(2,t.IConfigService),j(3,t.ICommandService)],L),e.AddDecimalCommand=v,e.CURRENCYFORMAT=f,e.DATEFMTLISG=u,e.NUMBERFORMAT=d,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=S,e.SetCurrencyCommand=y,e.SetNumfmtCommand=_,e.SetPercentCommand=b,Object.defineProperty(e,`SheetsNumfmtCellContentController`,{enumerable:!0,get:function(){return P}}),e.SubtractDecimalCommand=x,Object.defineProperty(e,`UniverSheetsNumfmtPlugin`,{enumerable:!0,get:function(){return L}}),e.currencySymbols=a,e.getCurrencyFormat=l,e.getCurrencyFormatOptions=e=>f.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),e.getCurrencyOptions=()=>a.map(e=>({label:e,value:e})),e.getCurrencySymbolByLocale=c,e.getCurrencySymbolIconByLocale=s,e.getCurrencyType=e=>a.find(t=>e.includes(t)),e.getDateFormatOptions=()=>u.map(e=>({label:e.label,value:e.suffix})),e.getDecimalFromPattern=p,e.getDecimalString=m,e.getNumberFormatOptions=()=>d.map(e=>({label:e.label,value:e.suffix,color:e.color})),e.getPatternPreview=T,e.getPatternPreviewIgnoreGeneral=E,e.getPatternType=w,e.isPatternHasDecimal=g,e.localeCurrencySymbolMap=o,e.setPatternDecimal=h});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-numfmt",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "private": false,
5
5
  "description": "UniverSheet numfmt plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -58,15 +58,15 @@
58
58
  "rxjs": ">=7.0.0"
59
59
  },
60
60
  "dependencies": {
61
- "@univerjs/core": "0.18.0",
62
- "@univerjs/engine-formula": "0.18.0",
63
- "@univerjs/sheets": "0.18.0"
61
+ "@univerjs/core": "0.19.0",
62
+ "@univerjs/engine-formula": "0.19.0",
63
+ "@univerjs/sheets": "0.19.0"
64
64
  },
65
65
  "devDependencies": {
66
66
  "rxjs": "^7.8.2",
67
- "typescript": "^5.9.3",
68
- "vitest": "^4.1.0",
69
- "@univerjs-infra/shared": "0.18.0"
67
+ "typescript": "^6.0.2",
68
+ "vitest": "^4.1.1",
69
+ "@univerjs-infra/shared": "0.19.0"
70
70
  },
71
71
  "scripts": {
72
72
  "test": "vitest run",