index.js 32 KB

123456789
  1. "use strict";var ye=Object.defineProperty;var be=(t,e,n)=>e in t?ye(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var W=(t,e,n)=>be(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),ue=require("@univerjs/engine-render"),d=require("@univerjs/sheets-numfmt"),M=require("@univerjs/sheets-ui"),I=require("@univerjs/ui"),Ce=require("@univerjs/engine-formula"),ne=require("@univerjs/engine-numfmt"),g=require("@univerjs/sheets"),x=require("rxjs"),B=require("rxjs/operators"),_=require("react"),E=require("@univerjs/design"),se={};var Ie=Object.defineProperty,Pe=Object.getOwnPropertyDescriptor,Te=(t,e,n,r)=>{for(var s=r>1?void 0:r?Pe(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&Ie(e,n,s),s},U=(t,e)=>(n,r)=>e(n,r,t);const Z="SHEET_NUMFMT_ALERT";let te=class extends o.Disposable{constructor(t,e,n,r,s,i,c){super(),this._context=t,this._hoverManagerService=e,this._cellAlertManagerService=n,this._localeService=r,this._formulaDataModel=s,this._zenZoneService=i,this._numfmtService=c,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(x.debounceTime(100)).subscribe(t=>{var e;if(t){const n=t.location,r=this._context.unit,s=r.getActiveSheet();if(!s)return;const i=n.unitId,c=n.subUnitId;let l;const a=s.getCell(n.row,n.col);if(a!=null&&a.s){const m=r.getStyles().get(a.s);m!=null&&m.n&&(l=m.n)}if(l||(l=this._numfmtService.getValue(i,c,n.row,n.col)),!l){this._hideAlert();return}if(l.pattern===ne.DEFAULT_TEXT_FORMAT&&(a!=null&&a.v)&&o.isRealNum(a.v)){const m=this._cellAlertManagerService.currentAlert.get(Z),f=(e=m==null?void 0:m.alert)==null?void 0:e.location;if(f&&f.row===n.row&&f.col===n.col&&f.subUnitId===n.subUnitId&&f.unitId===n.unitId)return;this._cellAlertManagerService.showAlert({type:M.CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:n,width:200,height:74,key:Z});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(t=>{t&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(Z)}};te=Te([U(1,o.Inject(M.HoverManagerService)),U(2,o.Inject(M.CellAlertManagerService)),U(3,o.Inject(o.LocaleService)),U(4,o.Inject(Ce.FormulaDataModel)),U(5,I.IZenZoneService),U(6,o.Inject(g.INumfmtService))],te);const z={id:"sheet.operation.close.numfmt.panel",type:o.CommandType.OPERATION,handler:()=>!0},L={id:"sheet.operation.open.numfmt.panel",type:o.CommandType.OPERATION,handler:t=>(t.get(H).openPanel(),!0)};var J={exports:{}},F={};/**
  2. * @license React
  3. * react-jsx-runtime.production.min.js
  4. *
  5. * Copyright (c) Facebook, Inc. and its affiliates.
  6. *
  7. * This source code is licensed under the MIT license found in the
  8. * LICENSE file in the root directory of this source tree.
  9. */var ie;function Ne(){if(ie)return F;ie=1;var t=_,e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,s=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function c(l,a,m){var f,h={},p=null,S=null;m!==void 0&&(p=""+m),a.key!==void 0&&(p=""+a.key),a.ref!==void 0&&(S=a.ref);for(f in a)r.call(a,f)&&!i.hasOwnProperty(f)&&(h[f]=a[f]);if(l&&l.defaultProps)for(f in a=l.defaultProps,a)h[f]===void 0&&(h[f]=a[f]);return{$$typeof:e,type:l,key:p,ref:S,props:h,_owner:s.current}}return F.Fragment=n,F.jsx=c,F.jsxs=c,F}var oe;function Ee(){return oe||(oe=1,J.exports=Ne()),J.exports}var u=Ee(),Me=Object.defineProperty,je=Object.getOwnPropertyDescriptor,Re=(t,e,n,r)=>{for(var s=r>1?void 0:r?je(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&Me(e,n,s),s},xe=(t,e)=>(n,r)=>e(n,r,t);const re=_.createContext([]);let k=class{constructor(t){this._localStorageService=t}_getKey(t){return`userHabitController_${t}`}async addHabit(t,e){const n=this._getKey(t);return this._localStorageService.getItem(n).then(r=>{r||this._localStorageService.setItem(n,e)})}markHabit(t,e){const n=this._getKey(t);this._localStorageService.getItem(n).then(r=>{if(r){const s=r.findIndex(i=>i===e);s>-1&&r.splice(s,1),r.unshift(e),this._localStorageService.setItem(n,r)}})}async getHabit(t,e){const n=this._getKey(t),r=await this._localStorageService.getItem(n);if(e&&r){const s=r.map((i,c,l)=>{const a=l.length;return{value:i,priority:a-c}});return e.sort((i,c)=>{var m,f;const l=((m=s.find(h=>h.value===i))==null?void 0:m.priority)||-1;return(((f=s.find(h=>h.value===c))==null?void 0:f.priority)||-1)-l})}return r||[]}deleteHabit(t){this._localStorageService.removeItem(t)}};k=Re([xe(0,o.Inject(o.ILocalStorageService))],k);const ce="numfmtCurrency",Oe=t=>{const e=o.useDependency(k),[n,r]=_.useState(d.currencySymbols);return _.useEffect(()=>{e.addHabit("numfmtCurrency",[]).then(()=>{e.getHabit(ce,[...d.currencySymbols]).then(i=>{r(i),t(i)})})},[]),{userHabitCurrency:n,mark:i=>{e.markHabit(ce,i)}}},De=()=>{const t=_.useRef([]),[e,n]=_.useState({});return _.useEffect(()=>{t.current.forEach(s=>{s()}),t.current=[]},[e]),s=>{t.current.push(s),n({})}},Ue=t=>!!d.getCurrencyType(t)&&t.startsWith("_("),we=t=>{const{defaultPattern:e,action:n,onChange:r}=t,[s,i]=_.useState(()=>d.getDecimalFromPattern(e||"",2)),c=_.useContext(re),[l,a]=_.useState(()=>d.getCurrencyType(e)||c[0]),m=_.useMemo(()=>c.map(y=>({label:y,value:y})),[]),h=o.useDependency(o.LocaleService).t;n.current=()=>d.setPatternDecimal(`_("${l}"* #,##0${s>0?".0":""}_)`,s);const p=y=>{a(y),r(d.setPatternDecimal(`_("${y}"* #,##0${s>0?".0":""}_)`,s))},S=y=>{const v=y||0;i(v),r(d.setPatternDecimal(`_("${l}"* #,##0${v>0?".0":""}_)`,v))};return u.jsxs("div",{children:[u.jsxs("div",{className:"m-t-16 options",children:[u.jsxs("div",{className:"option",children:[u.jsx("div",{className:"label",children:h("sheet.numfmt.decimalLength")}),u.jsx("div",{className:"m-t-8 w-120",children:u.jsx(E.InputNumber,{value:s,max:20,min:0,onChange:S})})]}),u.jsxs("div",{className:"option",children:[u.jsx("div",{className:"label",children:h("sheet.numfmt.currencyType")}),u.jsx("div",{className:"m-t-8 w-140",children:u.jsx(E.Select,{onChange:p,options:m,value:l})})]})]}),u.jsx("div",{className:"describe m-t-14",children:h("sheet.numfmt.accountingDes")})]})},Fe=t=>!!d.getCurrencyType(t)&&!t.startsWith("_("),$e=t=>{const n=o.useDependency(o.LocaleService).t,r=_.useContext(re),[s,i]=_.useState(()=>d.getCurrencyType(t.defaultPattern)||r[0]),[c,l]=_.useState(()=>d.getDecimalFromPattern(t.defaultPattern||"",2)),[a,m]=_.useState(()=>{var b;const v=d.getCurrencyFormatOptions(s);return((b=v.find(T=>d.isPatternEqualWithoutDecimal(T.value,t.defaultPattern)))==null?void 0:b.value)||v[0].value}),f=_.useMemo(()=>d.getCurrencyFormatOptions(s),[s]),h=_.useMemo(()=>r.map(v=>({label:v,value:v})),[r]);t.action.current=()=>d.setPatternDecimal(a,c);const p=v=>{if(v===void 0)return;i(v);const P=d.getCurrencyFormatOptions(v)[0].value;m(P),t.onChange(d.setPatternDecimal(P,c))},S=v=>{v!==void 0&&(m(v),t.onChange(d.setPatternDecimal(v,c)))},y=v=>{l(v||0),t.onChange(d.setPatternDecimal(a,v||0))};return u.jsxs("div",{children:[u.jsxs("div",{className:"m-t-16 options",children:[u.jsxs("div",{className:"option",children:[u.jsx("div",{className:"label",children:n("sheet.numfmt.decimalLength")}),u.jsx("div",{className:"m-t-8 w-120",children:u.jsx(E.InputNumber,{value:c,max:20,min:0,onChange:y})})]}),u.jsxs("div",{className:"option",children:[u.jsx("div",{className:"label",children:n("sheet.numfmt.currencyType")}),u.jsx("div",{className:"m-t-8 w-140",children:u.jsx(E.Select,{onChange:p,options:h,value:s})})]})]}),u.jsx("div",{className:"m-t-16 label",children:n("sheet.numfmt.negType")}),u.jsx("div",{className:"m-t-8",children:u.jsx(E.SelectList,{onChange:S,options:f,value:a})}),u.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.currencyDes")})]})};var N=function(){return N=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},N.apply(this,arguments)},Le=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(t);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(t,r[s])&&(n[r[s]]=t[r[s]]);return n},me=_.forwardRef(function(t,e){var n=t.icon,r=t.id,s=t.className,i=t.extend,c=Le(t,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(r," ").concat(s||"").trim(),a=_.useRef("_".concat(Ae()));return de(n,"".concat(r),{defIds:n.defIds,idSuffix:a.current},N({ref:e,className:l},c),i)});function de(t,e,n,r,s){return _.createElement(t.tag,N(N({key:e},ke(t,n,s)),r),(He(t,n).children||[]).map(function(i,c){return de(i,"".concat(e,"-").concat(t.tag,"-").concat(c),n,void 0,s)}))}function ke(t,e,n){var r=N({},t.attrs);n!=null&&n.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=n.colorChannel1);var s=e.defIds;return!s||s.length===0||(t.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(i){var c=i[0],l=i[1];typeof l=="string"&&(r[c]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function He(t,e){var n,r=e.defIds;return!r||r.length===0?t:t.tag==="defs"&&(!((n=t.children)===null||n===void 0)&&n.length)?N(N({},t),{children:t.children.map(function(s){return typeof s.attrs.id=="string"&&r&&r.indexOf(s.attrs.id)>-1?N(N({},s),{attrs:N(N({},s.attrs),{id:s.attrs.id+e.idSuffix})}):s})}):t}function Ae(){return Math.random().toString(36).substring(2,8)}me.displayName="UniverIcon";var We={tag:"svg",attrs:{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"}}]},he=_.forwardRef(function(t,e){return _.createElement(me,Object.assign({},t,{id:"check-mark-single",ref:e,icon:We}))});he.displayName="CheckMarkSingle";const Be="univer-custom-format-title",Ve="univer-custom-format-input",qe="univer-custom-format-history-list",Ge="univer-custom-format-history-list-item",Ke="univer-custom-format-history-list-item-icon-wrap",Ye="univer-custom-format-des",O={customFormatTitle:Be,customFormatInput:Ve,customFormatHistoryList:qe,customFormatHistoryListItem:Ge,customFormatHistoryListItemIconWrap:Ke,customFormatDes:Ye},X="customFormat",Q="numfmt_custom_pattern";function Ze(t){const{defaultPattern:e,action:n,onChange:r}=t,s=o.useDependency(k),i=o.useDependency(o.ILocalStorageService),c=o.useDependency(o.LocaleService),[l,a]=_.useState(e);n.current=()=>(s.markHabit(X,l),i.getItem(Q).then((S=[])=>{const y=[...new Set([l,...S||[]])].splice(0,10).filter(v=>!!v);i.setItem(Q,y)}),l);const[m,f]=_.useState([]);_.useEffect(()=>{i.getItem(Q).then(S=>{const y=[...d.CURRENCYFORMAT.map(v=>v.suffix("$")),...d.DATEFMTLISG.map(v=>v.suffix),...d.NUMBERFORMAT.map(v=>v.suffix)];y.push(...S||[]),s.addHabit(X,[]).finally(()=>{s.getHabit(X,y).then(v=>{f([...new Set(v)])})})})},[]);const h=S=>{a(S),r(S)},p=()=>{r(l)};return u.jsxs("div",{className:O.customFormat,children:[u.jsx("div",{className:O.customFormatTitle,children:c.t("sheet.numfmt.customFormat")}),u.jsx(E.Input,{placeholder:c.t("sheet.numfmt.customFormat"),onBlur:p,value:l,onChange:a,className:O.customFormatInput}),u.jsx("div",{className:O.customFormatHistoryList,children:m.map(S=>u.jsxs("div",{onClick:()=>h(S),className:O.customFormatHistoryListItem,children:[u.jsx("div",{className:O.customFormatHistoryListItemIconWrap,children:l===S&&u.jsx(he,{})}),u.jsx("div",{children:S})]},S))}),u.jsx("div",{className:O.customFormatDes,children:c.t("sheet.numfmt.customFormatDes")})]})}const ze=t=>{const e=o.numfmt.getInfo(t);return d.getDateFormatOptions().map(n=>n.value).includes(t)||["date","datetime","time"].includes(e.type)},Je=t=>{const e=_.useMemo(d.getDateFormatOptions,[]),r=o.useDependency(o.LocaleService).t,[s,i]=_.useState(()=>{if(t.defaultPattern){const l=e.find(a=>a.value===t.defaultPattern);if(l)return l.value}return e[0].value});t.action.current=()=>s;const c=l=>{l!==void 0&&(i(l),t.onChange(l))};return u.jsxs("div",{children:[u.jsx("div",{className:"m-t-16 label",children:r("sheet.numfmt.dateType")}),u.jsx("div",{className:"m-t-8",children:u.jsx(E.SelectList,{value:s,options:e,onChange:c})}),u.jsx("div",{className:"describe m-t-14",children:r("sheet.numfmt.dateDes")})]})},Xe=t=>!t,Qe=t=>{const n=o.useDependency(o.LocaleService).t;return t.action.current=()=>"",u.jsx("div",{children:u.jsx("div",{className:"describe m-t-14",children:n("sheet.numfmt.generalDes")})})},et=t=>d.getNumberFormatOptions().some(e=>d.isPatternEqualWithoutDecimal(e.value,t)),tt=t=>{const e=o.useDependency(o.LocaleService),n=_.useMemo(d.getNumberFormatOptions,[]),[r,s]=_.useState(()=>d.getDecimalFromPattern(t.defaultPattern||"",0)),[i,c]=_.useState(()=>{const h=n.find(p=>d.isPatternEqualWithoutDecimal(p.value,t.defaultPattern||""));return(h==null?void 0:h.value)||n[0].value}),l=_.useMemo(()=>d.setPatternDecimal(i,Number(r||0)),[i,r]),a=_.useMemo(()=>!d.isPatternHasDecimal(i),[i]),m=h=>{s(h||0),t.onChange(d.setPatternDecimal(i,Number(h||0)))},f=h=>{h!==void 0&&(s(d.getDecimalFromPattern(h,0)),c(h),t.onChange(h))};return t.action.current=()=>l,u.jsxs("div",{children:[u.jsx("div",{className:"m-t-16 label",children:e.t("sheet.numfmt.decimalLength")}),u.jsx("div",{className:"m-t-8",children:u.jsx(E.InputNumber,{disabled:a,value:r,max:20,min:0,onChange:m})}),u.jsxs("div",{className:"m-t-16 label",children:[" ",e.t("sheet.numfmt.negType")]}),u.jsx("div",{className:"m-t-8",children:u.jsx(E.SelectList,{onChange:f,options:n,value:i})}),u.jsx("div",{className:"describe m-t-14",children:e.t("sheet.numfmt.thousandthPercentileDes")})]})},nt=t=>{const{defaultValue:e,defaultPattern:n,row:r,col:s}=t.value,i=o.useDependency(o.LocaleService),c=_.useRef(()=>""),l=i.t,a=De(),m=_.useMemo(()=>[{label:"sheet.numfmt.general",component:Qe},{label:"sheet.numfmt.accounting",component:we},{label:"sheet.numfmt.currency",component:$e},{label:"sheet.numfmt.date",component:Je},{label:"sheet.numfmt.thousandthPercentile",component:tt},{label:"sheet.numfmt.customFormat",component:Ze}].map(C=>({...C,label:l(C.label)})),[]),[f,h]=_.useState(b),[p,S]=_.useState(()=>`${r}_${s}`),{mark:y,userHabitCurrency:v}=Oe(()=>S(`${r}_${s}_userCurrency'`)),P=_.useMemo(()=>{var C;return(C=m.find(D=>D.label===f))==null?void 0:C.component},[f]);function b(){return[Xe,Ue,Fe,ze,et].reduce((D,ge,_e)=>D||(ge(n)?m[_e].label:""),"")||m[0].label}const T=m.map(C=>({label:C.label,value:C.label})),R=C=>{h(C),a(()=>t.onChange({type:"change",value:c.current()||""}))},A=C=>{t.onChange({type:"change",value:C})},K=()=>{const C=c.current()||"",D=d.getCurrencyType(C);D&&y(D),t.onChange({type:"confirm",value:C})},w=()=>{t.onChange({type:"cancel",value:""})},Y={onChange:A,defaultValue:e,defaultPattern:n,action:c};return _.useEffect(()=>{h(b()),S(`${r}_${s}`)},[r,s]),u.jsxs("div",{className:"numfmt-panel p-b-20",children:[u.jsxs("div",{children:[u.jsx("div",{className:"label m-t-14",children:l("sheet.numfmt.numfmtType")}),u.jsx("div",{className:"m-t-8",children:u.jsx(E.Select,{onChange:R,options:T,value:f,style:{width:"100%"}})}),u.jsx("div",{children:P&&u.jsx(re.Provider,{value:v,children:_.createElement(P,{...Y,key:p})})})]}),u.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[u.jsx(E.Button,{size:"small",onClick:w,className:"m-r-12",children:l("sheet.numfmt.cancel")}),u.jsx(E.Button,{type:"primary",size:"small",onClick:K,children:l("sheet.numfmt.confirm")})]})]})};var rt=Object.defineProperty,st=Object.getOwnPropertyDescriptor,it=(t,e,n,r)=>{for(var s=r>1?void 0:r?st(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&rt(e,n,s),s},j=(t,e)=>(n,r)=>e(n,r,t);const ae="SHEET_NUMFMT_PANEL";let H=class extends o.Disposable{constructor(e,n,r,s,i,c,l,a,m,f,h){super();W(this,"_previewPattern","");W(this,"_sidebarDisposable",null);this._sheetInterceptorService=e,this._themeService=n,this._univerInstanceService=r,this._commandService=s,this._selectionManagerService=i,this._renderManagerService=c,this._numfmtService=l,this._componentManager=a,this._sidebarService=m,this._localeService=f,this._sheetsNumfmtCellContentController=h,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener(),this._initNumfmtLocalChange()}_initNumfmtLocalChange(){this.disposeWithMe(x.merge(this._sheetsNumfmtCellContentController.local$,this._localeService.currentLocale$).subscribe(()=>{this._forceUpdate()}))}openPanel(){var P;const e=this._sidebarService,n=this._selectionManagerService,r=this._commandService,s=this._univerInstanceService,i=this._numfmtService,c=this._localeService,a=(((P=n.getCurrentSelections())==null?void 0:P.map(b=>b.range))||[])[0];if(!a)return!1;const m=s.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET),f=m.getActiveSheet();if(!f)return!1;const h=f.getCellRaw(a.startRow,a.startColumn),p=i.getValue(m.getUnitId(),f.getSheetId(),a.startRow,a.startColumn);let S="";p&&(S=p.pattern);const y=(h==null?void 0:h.t)===o.CellValueType.NUMBER?h.v:12345678,v={onChange:b=>{var T;if(b.type==="change")this._previewPattern=b.value,this._forceUpdate();else if(b.type==="confirm"){const R=((T=n.getCurrentSelections())==null?void 0:T.map(w=>w.range))||[],A={values:[]},K=d.getPatternType(b.value);R.forEach(w=>{o.Range.foreach(w,(Y,C)=>{A.values.push({row:Y,col:C,pattern:b.value,type:K})})}),r.executeCommand(d.SetNumfmtCommand.id,A),e.close()}else b.type==="cancel"&&e.close()},value:{defaultPattern:S,defaultValue:y,row:a.startRow,col:a.startColumn}};return this._sidebarDisposable=e.open({header:{title:c.t("sheet.numfmt.title")},children:{label:ae,...v},onClose:()=>{this._forceUpdate(),r.executeCommand(z.id)}}),!0}_forceUpdate(e){var r;const n=this._renderManagerService.getRenderById(e!=null?e:this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET).getUnitId());n==null||n.with(M.SheetSkeletonManagerService).reCalculate(),(r=n==null?void 0:n.mainComponent)==null||r.makeDirty()}_initCommands(){[L,z].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initPanel(){this._componentManager.register(ae,nt)}_initRealTimeRenderingInterceptor(){const e=new x.Observable(r=>{this._commandService.onCommandExecuted(s=>{s.id===L.id&&r.next(!0),s.id===z.id&&r.next(!1)})}),n=x.combineLatest([e,this._selectionManagerService.selectionMoveEnd$.pipe(B.map(r=>r?r.map(s=>s.range):[]))]);this.disposeWithMe(o.toDisposable(n.pipe(B.switchMap(([r,s])=>new x.Observable(i=>{const c=new o.DisposableCollection;return r&&s.length&&i.next({selectionRanges:s,disposableCollection:c}),()=>{c.dispose()}})),B.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection:r,selectionRanges:s})=>{var c,l;const i=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET);this.openPanel(),r.add(this._sheetInterceptorService.intercept(g.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:o.InterceptorEffectEnum.Value|o.InterceptorEffectEnum.Style,handler:(a,m,f)=>{const{row:h,col:p}=m,S=f(a)||{};if(s.find(y=>y.startColumn<=p&&y.endColumn>=p&&y.startRow<=h&&y.endRow>=h)){const y=m.worksheet.getCellRaw(h,p),v=y==null?void 0:y.v,P=y==null?void 0:y.t;if(v==null||P!==o.CellValueType.NUMBER||this._previewPattern===null)return S;const b=d.getPatternPreviewIgnoreGeneral(this._previewPattern,v,this._sheetsNumfmtCellContentController.local);if(b.color){const R=this._themeService.getCurrentTheme()[`${b.color}500`];return{...S,v:b.result,t:o.CellValueType.STRING,s:{cl:{rgb:R}}}}return{...S,v:b.result,t:o.CellValueType.STRING}}return S}})),(l=(c=this._renderManagerService.getRenderById(i.getUnitId()))==null?void 0:c.mainComponent)==null||l.makeDirty()})))}_commandExecutedListener(){const e=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id];this.disposeWithMe(new x.Observable(n=>{const r=this._commandService.onCommandExecuted(s=>{if(e.includes(s.id)){const i=s.params;n.next(i.unitId)}});return()=>r.dispose()}).pipe(B.debounceTime(16)).subscribe(n=>this._forceUpdate(n)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{var n;e||((n=this._sidebarDisposable)==null||n.dispose(),this._sidebarDisposable=null)})}};H=it([j(0,o.Inject(g.SheetInterceptorService)),j(1,o.Inject(o.ThemeService)),j(2,o.IUniverInstanceService),j(3,o.ICommandService),j(4,o.Inject(g.SheetsSelectionsService)),j(5,ue.IRenderManagerService),j(6,g.INumfmtService),j(7,o.Inject(I.ComponentManager)),j(8,I.ISidebarService),j(9,o.Inject(o.LocaleService)),j(10,o.Inject(d.SheetsNumfmtCellContentController))],H);var ot=Object.defineProperty,ct=Object.getOwnPropertyDescriptor,at=(t,e,n,r)=>{for(var s=r>1?void 0:r?ct(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&ot(e,n,s),s},$=(t,e)=>(n,r)=>e(n,r,t);const lt=()=>{let t=[];return{add:(s,i,c,l,a)=>t.push({unitId:s,subUnitId:i,row:c,col:l,value:a}),getEffects:()=>t,clean:()=>{t=[]}}};let q=class extends o.Disposable{constructor(e,n,r,s,i){super();W(this,"_collectEffectMutation",lt());this._sheetInterceptorService=e,this._numfmtService=n,this._univerInstanceService=r,this._injector=s,this._editorBridgeService=i,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(o.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.BEFORE_CELL_EDIT,{handler:(e,n,r)=>{const s=n.row,i=n.col,c=this._numfmtService.getValue(n.unitId,n.subUnitId,s,i);if(c)switch(d.getPatternType(c.pattern)){case"scientific":case"currency":case"grouped":case"number":{const a=n.worksheet.getCellRaw(s,i);return r&&r(a)}case"percent":case"date":case"time":case"datetime":default:return r&&r(e)}return r(e)}})))}_initInterceptorEditorEnd(){this.disposeWithMe(o.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(g.AFTER_CELL_EDIT,{handler:(e,n,r)=>{var f,h,p,S;this._collectEffectMutation.clean();const s=this._numfmtService.getValue(n.unitId,n.subUnitId,n.row,n.col),i=(f=s&&d.getPatternType(s.pattern))!=null?f:"",c=()=>{s&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,null)};if(!(e!=null&&e.v)&&!(e!=null&&e.p)||(s==null?void 0:s.pattern)===ne.DEFAULT_TEXT_FORMAT||e.t===o.CellValueType.FORCE_STRING)return r(e);const l=(h=e.p)==null?void 0:h.body,a=(S=(p=e==null?void 0:e.p)==null?void 0:p.body)!=null&&S.dataStream?e.p.body.dataStream.replace(/\r\n$/,""):String(e.v),m=o.numfmt.parseDate(a)||o.numfmt.parseTime(a)||o.numfmt.parseNumber(a);if(l)if(mt(l)){const{dataStream:y}=l,v=y.replace(/\r\n$/,""),P=Number(v);if(Number.isNaN(P)&&!m)return r(e)}else return r(e);if(m){m.z&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,{pattern:m.z});const y=Number(m.v);return r({...e,p:void 0,v:y,t:o.CellValueType.NUMBER})}else(["date","time","datetime","percent"].includes(i)||!ut(a))&&c();return r(e)}})))}_initInterceptorCommands(){const e=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(n){var r;switch(n.id){case g.SetRangeValuesCommand.id:{const s=e._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SHEET),i=s.getUnitId(),c=(r=s.getActiveSheet())==null?void 0:r.getSheetId();if(!c)return{redos:[],undos:[]};const l=e._collectEffectMutation.getEffects();if(e._collectEffectMutation.clean(),!l.length)return{redos:[],undos:[]};const a=l.filter(p=>{var S;return!!((S=p.value)!=null&&S.pattern)}).map(p=>({row:p.row,col:p.col,pattern:p.value.pattern})),m=l.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})),f=[],h=[];if(a.length){const p={id:g.SetNumfmtMutation.id,params:g.transformCellsToRange(i,c,a)};f.push(p),h.push(...g.factorySetNumfmtUndoMutation(e._injector,p.params))}if(m.length){const p={id:g.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:c,ranges:m}};f.push(p),h.push(...g.factoryRemoveNumfmtUndoMutation(e._injector,p.params))}return{redos:f,undos:h.reverse()}}}return{redos:[],undos:[]}}}))}};q=at([$(0,o.Inject(g.SheetInterceptorService)),$(1,o.Inject(g.INumfmtService)),$(2,o.Inject(o.IUniverInstanceService)),$(3,o.Inject(o.Injector)),$(4,o.Optional(M.IEditorBridgeService))],q);function ut(t){return/^-?\d+(\.\d+)?$/.test(t)}function mt(t){const{textRuns:e=[],paragraphs:n=[],customRanges:r,customBlocks:s=[]}=t,i=["va"];return!(e.some(c=>!!(c.ts&&Object.keys(c.ts).some(a=>i.includes(a))))||n.some(c=>c.bullet)||n.length>=2||r!=null&&r.length||s.length>0)}const V=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:ne.DEFAULT_TEXT_FORMAT},"|",{label:"sheet.numfmt.number",pattern:"0"},"|",{label:"sheet.numfmt.accounting",pattern:'"¥" #,##0.00_);[Red]("¥"#,##0.00)'},{label:"sheet.numfmt.financialValue",pattern:"#,##0.00;[Red]#,##0.00"},{label:"sheet.numfmt.currency",pattern:'"¥"#,##0.00_);[Red]("¥"#,##0.00)'},{label:"sheet.numfmt.roundingCurrency",pattern:'"¥"#,##0;[Red]"¥"#,##0'},"|",{label:"sheet.numfmt.date",pattern:"yyyy-mm-dd;@"},{label:"sheet.numfmt.time",pattern:'am/pm h":"mm":"ss'},{label:"sheet.numfmt.dateTime",pattern:"yyyy-m-d am/pm h:mm"},{label:"sheet.numfmt.timeDuration",pattern:"h:mm:ss"},"|",{label:"sheet.numfmt.moreFmt",pattern:""}],dt=t=>({icon:new x.Observable(e=>{const n=t.get(d.MenuCurrencyService);function r(i){return{[d.countryCurrencyMap.US]:"DollarSingle",[d.countryCurrencyMap.RU]:"RoubleSingle",[d.countryCurrencyMap.CN]:"RmbSingle",[d.countryCurrencyMap.AT]:"EuroSingle"}[i]||"DollarSingle"}const s=d.countryCurrencyMap[n.getCurrencySymbol()]||"$";return e.next(r(s)),n.currencySymbol$.subscribe(i=>{const c=d.countryCurrencyMap[i]||"$";e.next(r(c))})}),id:d.SetCurrencyCommand.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:I.MenuItemType.BUTTON,hidden$:I.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:M.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),ht=t=>({icon:"AddDigitsSingle",id:d.AddDecimalCommand.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:I.MenuItemType.BUTTON,hidden$:I.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:M.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),ft=t=>({icon:"ReduceDigitsSingle",id:d.SubtractDecimalCommand.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:I.MenuItemType.BUTTON,hidden$:I.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:M.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),pt=t=>({icon:"PercentSingle",id:d.SetPercentCommand.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:I.MenuItemType.BUTTON,hidden$:I.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:M.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}),vt=t=>{const e=t.get(o.IUniverInstanceService),n=t.get(o.ICommandService),r=t.get(o.LocaleService),s=t.get(g.SheetsSelectionsService),i=M.deriveStateFromActiveSheet$(e,"",({workbook:c,worksheet:l})=>new x.Observable(a=>x.merge(s.selectionMoveEnd$,new x.Observable(m=>{const f=[g.RemoveNumfmtMutation.id,g.SetNumfmtMutation.id],h=n.onCommandExecuted(p=>{f.includes(p.id)&&m.next(null)});return()=>h.dispose()})).subscribe(()=>{var f,h;const m=s.getCurrentSelections();if(m&&m[0]){const p=m[0].range,S=p.startRow,y=p.startColumn,v=(h=c.getStyles().get((f=l.getCell(S,y))==null?void 0:f.s))==null?void 0:h.n,P=v==null?void 0:v.pattern;let b=r.t("sheet.numfmt.general");if(P){const T=V.filter(R=>typeof R=="object"&&R.pattern).find(R=>d.isPatternEqualWithoutDecimal(P,R.pattern));T&&typeof T=="object"&&T.pattern?b=r.t(T.label):b=r.t("sheet.numfmt.moreFmt")}a.next(b)}})));return{label:fe,id:L.id,tooltip:"sheet.numfmt.title",type:I.MenuItemType.SELECTOR,selections:[{label:{name:pe,hoverable:!1}}],value$:i,hidden$:I.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:M.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetSetCellStylePermission,g.WorksheetEditPermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}},fe="sheet.numfmt.moreNumfmtType",pe="sheet.numfmt.moreNumfmtType.options",St=t=>{var r;const e=o.useDependency(o.LocaleService),n=(r=t.value)!=null?r:e.t("sheet.numfmt.general");return u.jsx("span",{className:"more-numfmt-type",children:n})},gt=()=>{const t=o.useDependency(o.ICommandService),e=o.useDependency(o.LocaleService),n=o.useDependency(I.ILayoutService),r=o.useDependency(d.SheetsNumfmtCellContentController),s=o.useDependency(g.SheetsSelectionsService),i=a=>{const m=s.getCurrentLastSelection();if(!m)return;const f=m.range,h=[];o.Range.foreach(f,(p,S)=>{a?h.push({row:p,col:S,pattern:a,type:d.getPatternType(a)}):h.push({row:p,col:S})}),t.executeCommand(d.SetNumfmtCommand.id,{values:h}),n.focus()},c=a=>{if(a===0)i(null);else if(a===V.length-1)t.executeCommand(L.id);else{const m=V[a];m.pattern&&i(m.pattern)}},l=1220;return u.jsx("div",{className:"more-numfmt-type-options",children:V.map((a,m)=>a==="|"?u.jsx("div",{className:"line m-t-4",onClick:f=>f.stopPropagation()},m):u.jsxs("div",{className:"option-item m-t-4",onClick:()=>{c(m)},children:[u.jsx("div",{children:e.t(a.label)}),u.jsx("div",{className:"m-l-26",children:a.pattern?d.getPatternPreview(a.pattern||"",l,r.local).result:""})]},m))})},_t={[I.RibbonStartGroup.FORMULAS_INSERT]:{[d.SetCurrencyCommand.id]:{order:4,menuItemFactory:dt},[d.AddDecimalCommand.id]:{order:5,menuItemFactory:ht},[d.SubtractDecimalCommand.id]:{order:6,menuItemFactory:ft},[d.SetPercentCommand.id]:{order:7,menuItemFactory:pt},[L.id]:{order:8,menuItemFactory:vt}}};var yt=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Ct=(t,e,n,r)=>{for(var s=r>1?void 0:r?bt(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&yt(e,n,s),s},le=(t,e)=>(n,r)=>e(n,r,t);let G=class extends o.Disposable{constructor(t,e){super(),this._componentManager=t,this._menuManagerService=e,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(_t),this.disposeWithMe(this._componentManager.register(fe,St)),this.disposeWithMe(this._componentManager.register(pe,gt))}};G=Ct([le(0,o.Inject(I.ComponentManager)),le(1,I.IMenuManagerService)],G);var ve=Object.defineProperty,It=Object.getOwnPropertyDescriptor,Pt=(t,e,n)=>e in t?ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Tt=(t,e,n,r)=>{for(var s=r>1?void 0:r?It(e,n):e,i=t.length-1,c;i>=0;i--)(c=t[i])&&(s=(r?c(e,n,s):c(s))||s);return r&&s&&ve(e,n,s),s},ee=(t,e)=>(n,r)=>e(n,r,t),Se=(t,e,n)=>Pt(t,typeof e!="symbol"?e+"":e,n);const Nt="SHEET_NUMFMT_UI_PLUGIN";exports.UniverSheetsNumfmtUIPlugin=class extends o.Plugin{constructor(e=se,n,r,s){super(),this._config=e,this._injector=n,this._configService=r,this._renderManagerService=s;const{menu:i,...c}=o.merge({},se,this._config);i&&this._configService.setConfig("menu",i,{merge:!0}),this._configService.setConfig(I.UI_PLUGIN_CONFIG_KEY,c)}onStarting(){o.registerDependencies(this._injector,[[H],[q],[k],[G]])}onRendered(){this._registerRenderModules(),o.touchDependencies(this._injector,[[H],[q],[G]])}_registerRenderModules(){[[te]].forEach(n=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(o.UniverInstanceType.UNIVER_SHEET,n))})}};Se(exports.UniverSheetsNumfmtUIPlugin,"pluginName",Nt);Se(exports.UniverSheetsNumfmtUIPlugin,"type",o.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtUIPlugin=Tt([o.DependentOn(M.UniverSheetsUIPlugin,d.UniverSheetsNumfmtPlugin),ee(1,o.Inject(o.Injector)),ee(2,o.IConfigService),ee(3,ue.IRenderManagerService)],exports.UniverSheetsNumfmtUIPlugin);