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