@univerjs/sheets-numfmt-ui 0.20.1 → 0.21.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.
Files changed (42) hide show
  1. package/lib/cjs/index.js +1609 -1
  2. package/lib/cjs/locale/ca-ES.js +40 -1
  3. package/lib/cjs/locale/en-US.js +55 -1
  4. package/lib/cjs/locale/es-ES.js +40 -1
  5. package/lib/cjs/locale/fa-IR.js +40 -1
  6. package/lib/cjs/locale/fr-FR.js +40 -1
  7. package/lib/cjs/locale/ja-JP.js +40 -1
  8. package/lib/cjs/locale/ko-KR.js +40 -1
  9. package/lib/cjs/locale/ru-RU.js +40 -1
  10. package/lib/cjs/locale/sk-SK.js +40 -1
  11. package/lib/cjs/locale/vi-VN.js +40 -1
  12. package/lib/cjs/locale/zh-CN.js +40 -1
  13. package/lib/cjs/locale/zh-TW.js +40 -1
  14. package/lib/es/index.js +1603 -1
  15. package/lib/es/locale/ca-ES.js +39 -1
  16. package/lib/es/locale/en-US.js +54 -1
  17. package/lib/es/locale/es-ES.js +39 -1
  18. package/lib/es/locale/fa-IR.js +39 -1
  19. package/lib/es/locale/fr-FR.js +39 -1
  20. package/lib/es/locale/ja-JP.js +39 -1
  21. package/lib/es/locale/ko-KR.js +39 -1
  22. package/lib/es/locale/ru-RU.js +39 -1
  23. package/lib/es/locale/sk-SK.js +39 -1
  24. package/lib/es/locale/vi-VN.js +39 -1
  25. package/lib/es/locale/zh-CN.js +39 -1
  26. package/lib/es/locale/zh-TW.js +39 -1
  27. package/lib/index.js +1603 -1
  28. package/lib/locale/ca-ES.js +39 -1
  29. package/lib/locale/en-US.js +54 -1
  30. package/lib/locale/es-ES.js +39 -1
  31. package/lib/locale/fa-IR.js +39 -1
  32. package/lib/locale/fr-FR.js +39 -1
  33. package/lib/locale/ja-JP.js +39 -1
  34. package/lib/locale/ko-KR.js +39 -1
  35. package/lib/locale/ru-RU.js +39 -1
  36. package/lib/locale/sk-SK.js +39 -1
  37. package/lib/locale/vi-VN.js +39 -1
  38. package/lib/locale/zh-CN.js +39 -1
  39. package/lib/locale/zh-TW.js +39 -1
  40. package/lib/types/controllers/numfmt-repeat-last-action-controller.d.ts +2 -2
  41. package/lib/umd/index.js +1 -1
  42. package/package.json +12 -12
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/engine-render`),require(`@univerjs/sheets-numfmt`),require(`@univerjs/sheets-ui`),require(`@univerjs/sheets`),require(`@univerjs/ui`),require(`rxjs`),require(`rxjs/operators`),require(`@univerjs/design`),require(`react`),require(`react/jsx-runtime`),require(`@univerjs/engine-formula`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-render`,`@univerjs/sheets-numfmt`,`@univerjs/sheets-ui`,`@univerjs/sheets`,`@univerjs/ui`,`rxjs`,`rxjs/operators`,`@univerjs/design`,`react`,`react/jsx-runtime`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmtUi={},e.UniverCore,e.UniverEngineRender,e.UniverSheetsNumfmt,e.UniverSheetsUi,e.UniverSheets,e.UniverUi,e.rxjs,e.rxjs.operators,e.UniverDesign,e.React,e.React,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var p=`@univerjs/sheets-numfmt-ui`,m=`0.20.1`;let h={};function g(e,t){return function(n,r){t(n,r,e)}}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let v=`SHEET_NUMFMT_ALERT`,y=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=r,this._zenZoneService=i,this._numfmtService=a,this._configService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe((0,s.debounceTime)(100)).subscribe(e=>{if(e){let o=e.location,s=this._context.unit,c=s.getActiveSheet();if(!c)return this._hideAlert();let l=o.unitId,u=o.subUnitId,d,f=c.getCell(o.row,o.col);if(f!=null&&f.s){let e=s.getStyles().get(f.s);e!=null&&e.n&&(d=e.n)}if(d||(d=this._numfmtService.getValue(l,u,o.row,o.col)),!d){this._hideAlert();return}if((0,t.isTextFormat)(d.pattern)&&t.Tools.isDefine(f==null?void 0:f.v)&&(0,t.isRealNum)(f.v)){var n,a;if((n=this._configService.getConfig(r.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY))!=null&&n.disableTextFormatAlert)return;let e=this._cellAlertManagerService.currentAlert.get(v),t=e==null||(a=e.alert)==null?void 0:a.location;if(t&&t.row===o.row&&t.col===o.col&&t.subUnitId===o.subUnitId&&t.unitId===o.unitId){this._hideAlert();return}this._cellAlertManagerService.showAlert({type:i.CellAlertType.ERROR,title:this._localeService.t(`info.error`),message:this._localeService.t(`info.forceStringInfo`),location:o,width:200,height:74,key:v});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(v)}};y=_([g(1,(0,t.Inject)(i.HoverManagerService)),g(2,(0,t.Inject)(i.CellAlertManagerService)),g(3,(0,t.Inject)(t.LocaleService)),g(4,o.IZenZoneService),g(5,(0,t.Inject)(a.INumfmtService)),g(6,t.IConfigService)],y);let b=class extends t.Disposable{constructor(e){super(),this._repeatLastActionService=e,this._initCommandRecording()}_initCommandRecording(){this.disposeWithMe(this._repeatLastActionService.registerRepeatableCommand(r.SetNumfmtCommand.id,(e,t)=>{if(!t)return;let{values:n}=t,r=n.find(e=>e.pattern);if(!r)return;let{pattern:i,type:a}=r,o=[],s=new Set;for(let t of e){let{startRow:e,startColumn:n,endRow:r,endColumn:c}=t;for(let t=e;t<=r;t++)for(let e=n;e<=c;e++){let n=`${t}-${e}`;s.has(n)||(s.add(n),o.push({row:t,col:e,pattern:i,type:a}))}}return{...t,values:o}},i.RepeatLastActionPermission.CellStyle))}};b=_([g(0,(0,t.Inject)(i.IRepeatLastActionService))],b);let x={id:`sheet.operation.close.numfmt.panel`,type:t.CommandType.OPERATION,handler:()=>!0},S={id:`sheet.operation.open.numfmt.panel`,type:t.CommandType.OPERATION,handler:e=>(e.get(q).openPanel(),!0)},C=(0,u.createContext)([]),w=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){let n=this._getKey(e);return this._localStorageService.getItem(n).then(e=>{e||this._localStorageService.setItem(n,t)})}markHabit(e,t){let n=this._getKey(e);this._localStorageService.getItem(n).then(e=>{if(e){let r=e.findIndex(e=>e===t);r>-1&&e.splice(r,1),e.unshift(t),this._localStorageService.setItem(n,e)}})}async getHabit(e,t){let n=this._getKey(e),r=await this._localStorageService.getItem(n);if(t&&r){let e=r.map((e,t,n)=>({value:e,priority:n.length-t}));return t.sort((t,n)=>{var r,i;let a=((r=e.find(e=>e.value===t))==null?void 0:r.priority)||-1;return(((i=e.find(e=>e.value===n))==null?void 0:i.priority)||-1)-a})}return r||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};w=_([g(0,(0,t.Inject)(t.ILocalStorageService))],w);let T=`numfmtCurrency`,E=e=>{let t=(0,o.useDependency)(w),[n,i]=(0,u.useState)(r.currencySymbols);return(0,u.useEffect)(()=>{t.addHabit(`numfmtCurrency`,[]).then(()=>{t.getHabit(T,[...r.currencySymbols]).then(t=>{i(t),e&&e(t)})})},[]),{userHabitCurrency:n,mark:e=>{t.markHabit(T,e)}}},ee=()=>{let e=(0,u.useRef)([]),[t,n]=(0,u.useState)({});return(0,u.useEffect)(()=>{e.current.forEach(e=>{e()}),e.current=[]},[t]),t=>{e.current.push(t),n({})}},te=e=>!!(0,r.getCurrencyType)(e)&&e.startsWith(`_(`),ne=e=>{let{defaultPattern:n,action:i,onChange:a}=e,[s,c]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(n||``,2)),f=(0,u.useContext)(C),[p,m]=(0,u.useState)(()=>(0,r.getCurrencyType)(n)||f[0]),h=(0,u.useMemo)(()=>f.map(e=>({label:e,value:e})),[]),g=(0,o.useDependency)(t.LocaleService).t;return i.current=()=>(0,r.setPatternDecimal)(`_("${p}"* #,##0${s>0?`.0`:``}_)`,s),(0,d.jsxs)(`div`,{children:[(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-flex univer-justify-between`,children:[(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-32`,children:(0,d.jsx)(l.InputNumber,{value:s,step:1,precision:0,max:20,min:0,onChange:e=>{let t=e||0;c(t),a((0,r.setPatternDecimal)(`_("${p}"* #,##0${t>0?`.0`:``}_)`,t))}})})]}),(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.currencyType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-36`,children:(0,d.jsx)(l.Select,{options:h,value:p,onChange:e=>{m(e),a((0,r.setPatternDecimal)(`_("${e}"* #,##0${s>0?`.0`:``}_)`,s))}})})]})]}),(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.accountingDes`)})]})},re=e=>!!(0,r.getCurrencyType)(e)&&!e.startsWith(`_(`),D=e=>{let n=(0,o.useDependency)(t.LocaleService).t,i=(0,u.useContext)(C),[a,s]=(0,u.useState)(()=>(0,r.getCurrencyType)(e.defaultPattern)||i[0]),[c,f]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(e.defaultPattern||``,2)),[p,m]=(0,u.useState)(()=>{var n;let i=(0,r.getCurrencyFormatOptions)(a);return((n=i.find(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e.defaultPattern)))==null?void 0:n.value)||i[0].value}),h=(0,u.useMemo)(()=>(0,r.getCurrencyFormatOptions)(a),[a]),g=(0,u.useMemo)(()=>i.map(e=>({label:e,value:e})),[i]);return e.action.current=()=>(0,r.setPatternDecimal)(p,c),(0,d.jsxs)(`div`,{children:[(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-flex univer-justify-between`,children:[(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-32`,children:(0,d.jsx)(l.InputNumber,{value:c,max:20,min:0,onChange:t=>{f(t||0),e.onChange((0,r.setPatternDecimal)(p,t||0))}})})]}),(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.currencyType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-36`,children:(0,d.jsx)(l.Select,{value:a,options:g,onChange:t=>{if(t===void 0)return;s(t);let n=(0,r.getCurrencyFormatOptions)(t)[0].value;m(n),e.onChange((0,r.setPatternDecimal)(n,c))}})})]})]}),(0,d.jsx)(`div`,{className:`label univer-mt-4`,children:n(`sheet.numfmt.negType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{value:p,options:h,onChange:t=>{t!==void 0&&(m(t),e.onChange((0,r.setPatternDecimal)(t,c)))}})}),(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.currencyDes`)})]})};function O({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,u.useRef)(`_${M()}`);return k(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function k(e,t,n,r,i){return(0,u.createElement)(e.tag,{key:t,...A(e,n,i),...r},(j(e,n).children||[]).map((r,a)=>k(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function A(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function j(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function M(){return Math.random().toString(36).substring(2,8)}O.displayName=`UniverIcon`;let N={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`}}]},P=(0,u.forwardRef)(function(e,t){return(0,u.createElement)(O,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:N}))});P.displayName=`CheckMarkIcon`;let F=`customFormat`,I=`numfmt_custom_pattern`;function L(e){let{defaultPattern:n,action:i,onChange:a}=e,s=(0,o.useDependency)(w),c=(0,o.useDependency)(t.ILocalStorageService),f=(0,o.useDependency)(t.LocaleService),[p,m]=(0,u.useState)(n);i.current=()=>(s.markHabit(F,p),c.getItem(I).then((e=[])=>{let t=[...new Set([p,...e||[]])].splice(0,10).filter(e=>!!e);c.setItem(I,t)}),p);let[h,g]=(0,u.useState)([]);(0,u.useEffect)(()=>{c.getItem(I).then(e=>{let t=[...r.CURRENCYFORMAT.map(e=>e.suffix(`$`)),...r.DATEFMTLISG.map(e=>e.suffix),...r.NUMBERFORMAT.map(e=>e.suffix)];t.push(...e||[]),s.addHabit(F,[]).finally(()=>{s.getHabit(F,t).then(e=>{g([...new Set(e)])})})})},[]);let _=e=>{m(e),a(e)};return(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:f.t(`sheet.numfmt.customFormat`)}),(0,d.jsx)(l.Input,{placeholder:f.t(`sheet.numfmt.customFormat`),onBlur:()=>{a(p)},value:p,onChange:m,className:`univer-mt-2 univer-w-full`}),(0,d.jsx)(`div`,{className:(0,l.clsx)(`univer-mt-2 univer-max-h-[400px] univer-overflow-auto univer-rounded-lg univer-p-2`,l.borderClassName),children:h.map(e=>(0,d.jsxs)(`div`,{onClick:()=>_(e),className:`univer-flex univer-cursor-pointer univer-items-center univer-gap-1.5 univer-py-1.5 univer-text-sm`,children:[(0,d.jsx)(`div`,{className:`univer-flex univer-w-4 univer-items-center univer-text-primary-600`,children:p===e&&(0,d.jsx)(P,{})}),(0,d.jsx)(`div`,{children:e})]},e))}),(0,d.jsx)(`div`,{className:`univer-mt-3 univer-text-sm univer-text-gray-600 dark:!univer-text-gray-200`,children:f.t(`sheet.numfmt.customFormatDes`)})]})}let ie=e=>{let n=t.numfmt.getFormatInfo(e);return(0,r.getDateFormatOptions)().map(e=>e.value).includes(e)||[`date`,`datetime`,`time`].includes(n.type)};function ae(e){let{onChange:n,defaultPattern:i}=e,a=(0,u.useMemo)(r.getDateFormatOptions,[]),s=(0,o.useDependency)(t.LocaleService),[c,f]=(0,u.useState)(()=>{if(i){let e=a.find(e=>e.value===i);if(e)return e.value}return a[0].value});return e.action.current=()=>c,(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:s.t(`sheet.numfmt.dateType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{value:c,options:a,onChange:e=>{e!==void 0&&(f(e),n(e))}})}),(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:s.t(`sheet.numfmt.dateDes`)})]})}let oe=e=>!e,R=e=>{let n=(0,o.useDependency)(t.LocaleService).t;return e.action.current=()=>``,(0,d.jsx)(`div`,{children:(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:n(`sheet.numfmt.generalDes`)})})},z=e=>(0,r.getNumberFormatOptions)().some(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e));function B(e){let n=(0,o.useDependency)(t.LocaleService),i=(0,u.useMemo)(r.getNumberFormatOptions,[]),[a,s]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(e.defaultPattern||``,0)),[c,f]=(0,u.useState)(()=>{let n=i.find(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e.defaultPattern||``));return(n==null?void 0:n.value)||i[0].value}),p=(0,u.useMemo)(()=>(0,r.setPatternDecimal)(c,Number(a||0)),[c,a]),m=(0,u.useMemo)(()=>!(0,r.isPatternHasDecimal)(c),[c]),h=t=>{s(t||0),e.onChange((0,r.setPatternDecimal)(c,Number(t||0)))},g=t=>{t!==void 0&&(s((0,r.getDecimalFromPattern)(t,0)),f(t),e.onChange(t))};return e.action.current=()=>p,(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:n.t(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.InputNumber,{disabled:m,value:a,max:20,min:0,onChange:h})}),(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:[` `,n.t(`sheet.numfmt.negType`)]}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{onChange:g,options:i,value:c})}),(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:n.t(`sheet.numfmt.thousandthPercentileDes`)})]})}let V=e=>{let{defaultValue:n,defaultPattern:i,row:a,col:s}=e.value,c=(0,o.useDependency)(t.LocaleService),f=(0,u.useRef)(()=>``),p=c.t,m=ee(),h=(0,u.useMemo)(()=>[{label:`sheet.numfmt.general`,component:R},{label:`sheet.numfmt.accounting`,component:ne},{label:`sheet.numfmt.currency`,component:D},{label:`sheet.numfmt.date`,component:ae},{label:`sheet.numfmt.thousandthPercentile`,component:B},{label:`sheet.numfmt.customFormat`,component:L}].map(e=>({...e,label:p(e.label)})),[]),[g,_]=(0,u.useState)(w),[v,y]=(0,u.useState)(()=>`${a}_${s}`),{mark:b,userHabitCurrency:x}=E(()=>y(`${a}_${s}_userCurrency'`)),S=(0,u.useMemo)(()=>{var e;return(e=h.find(e=>e.label===g))==null?void 0:e.component},[g]);function w(){return[oe,te,re,ie,z].reduce((e,t,n)=>e||(t(i)?h[n].label:``),``)||h[0].label}let T=h.map(e=>({label:e.label,value:e.label})),O=t=>{_(t),m(()=>e.onChange({type:`change`,value:f.current()||``}))},k=(0,u.useCallback)(t=>{e.onChange({type:`change`,value:t})},[]),A=()=>{let t=f.current()||``,n=(0,r.getCurrencyType)(t);n&&b(n),e.onChange({type:`confirm`,value:t})},j=()=>{e.onChange({type:`cancel`,value:``})},M={onChange:k,defaultValue:n,defaultPattern:i,action:f};return(0,u.useEffect)(()=>{_(w()),y(`${a}_${s}`)},[a,s]),(0,d.jsxs)(`div`,{className:(0,l.clsx)(`univer-flex univer-h-full univer-flex-col univer-justify-between univer-overflow-y-auto univer-pb-5`,l.scrollbarClassName),children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm univer-text-gray-400`,children:p(`sheet.numfmt.numfmtType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.Select,{className:`univer-w-full`,value:g,options:T,onChange:O})}),(0,d.jsx)(`div`,{children:S&&(0,d.jsx)(C.Provider,{value:x,children:(0,u.createElement)(S,{...M,key:v})})})]}),(0,d.jsxs)(`div`,{className:`univer-mb-5 univer-mt-3.5 univer-flex univer-justify-end`,children:[(0,d.jsx)(l.Button,{onClick:j,className:`univer-mr-3`,children:p(`sheet.numfmt.cancel`)}),(0,d.jsx)(l.Button,{variant:`primary`,onClick:A,children:p(`sheet.numfmt.confirm`)})]})]})};function H(e){"@babel/helpers - typeof";return H=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},H(e)}function U(e,t){if(H(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(H(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function W(e){var t=U(e,`string`);return H(t)==`symbol`?t:t+``}function G(e,t,n){return(t=W(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let K=`SHEET_NUMFMT_PANEL`,q=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this._sheetInterceptorService=e,this._themeService=t,this._univerInstanceService=n,this._commandService=r,this._selectionManagerService=i,this._renderManagerService=a,this._numfmtService=o,this._componentManager=s,this._sidebarService=c,this._localeService=l,this._sheetsNumfmtCellContentController=u,G(this,`_previewPattern`,``),G(this,`_sidebarDisposable`,null),this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener(),this._initNumfmtLocalChange()}_initNumfmtLocalChange(){this.disposeWithMe((0,s.merge)(this._sheetsNumfmtCellContentController.locale$,this._localeService.currentLocale$).subscribe(()=>{this._forceUpdate()}))}openPanel(){var e;let n=this._sidebarService,i=this._selectionManagerService,a=this._commandService,o=this._univerInstanceService,s=this._numfmtService,c=this._localeService,l=(((e=i.getCurrentSelections())==null?void 0:e.map(e=>e.range))||[])[0];if(!l)return!1;let u=o.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),d=u.getActiveSheet();if(!d)return!1;let f=d.getCellRaw(l.startRow,l.startColumn),p=s.getValue(u.getUnitId(),d.getSheetId(),l.startRow,l.startColumn),m=``;p&&(m=p.pattern);let h=(f==null?void 0:f.t)===t.CellValueType.NUMBER?f.v:12345678,g={onChange:e=>{if(e.type===`change`)this._previewPattern=e.value,this._forceUpdate();else if(e.type===`confirm`){var o;let s=((o=i.getCurrentSelections())==null?void 0:o.map(e=>e.range))||[],c={values:[]},l=(0,r.getPatternType)(e.value);s.forEach(n=>{t.Range.foreach(n,(t,n)=>{c.values.push({row:t,col:n,pattern:e.value,type:l})})}),a.executeCommand(r.SetNumfmtCommand.id,c),n.close()}else e.type===`cancel`&&n.close()},value:{defaultPattern:m,defaultValue:h,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=n.open({header:{title:c.t(`sheet.numfmt.title`)},children:{label:K,...g},onClose:()=>{this._forceUpdate(),a.executeCommand(x.id)}}),!0}_forceUpdate(e){var n;let r=this._renderManagerService.getRenderById(e==null?this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId():e);r==null||r.with(i.SheetSkeletonManagerService).reCalculate(),r==null||(n=r.mainComponent)==null||n.makeDirty()}_initCommands(){[S,x].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initPanel(){this.disposeWithMe(this._componentManager.register(K,V))}_initRealTimeRenderingInterceptor(){let e=(0,s.combineLatest)([new s.Observable(e=>{this._commandService.onCommandExecuted(t=>{t.id===S.id&&e.next(!0),t.id===x.id&&e.next(!1)})}),this._selectionManagerService.selectionMoveEnd$.pipe((0,c.map)(e=>e?e.map(e=>e.range):[]))]);this.disposeWithMe((0,t.toDisposable)(e.pipe((0,c.switchMap)(([e,n])=>new s.Observable(r=>{let i=new t.DisposableCollection;return e&&n.length&&r.next({selectionRanges:n,disposableCollection:i}),()=>{i.dispose()}})),(0,c.tap)(()=>{this._previewPattern=null})).subscribe(({disposableCollection:e,selectionRanges:n})=>{var i;let o=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);this.openPanel(),e.add(this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,i,a)=>{let{row:o,col:s}=i,c=a(e)||{};if(n.find(e=>e.startColumn<=s&&e.endColumn>=s&&e.startRow<=o&&e.endRow>=o)){let e=i.worksheet.getCellRaw(o,s),n=e==null?void 0:e.v,a=e==null?void 0:e.t;if(n==null||a!==t.CellValueType.NUMBER||this._previewPattern===null)return c;let u=(0,r.getPatternPreviewIgnoreGeneral)(this._previewPattern,n,this._sheetsNumfmtCellContentController.locale);if(u.color){var l;let e=(l=this._themeService.getColorFromTheme(`${u.color}.500`))==null?u.color:l;return{...c,v:u.result,t:t.CellValueType.STRING,s:{cl:{rgb:e}}}}return{...c,v:u.result,t:t.CellValueType.STRING}}return c}})),(i=this._renderManagerService.getRenderById(o.getUnitId()))==null||(i=i.mainComponent)==null||i.makeDirty()})))}_commandExecutedListener(){let e=[a.RemoveNumfmtMutation.id,a.SetNumfmtMutation.id];this.disposeWithMe(new s.Observable(t=>{let n=this._commandService.onCommandExecuted(n=>{if(e.includes(n.id)){let e=n.params;t.next(e.unitId)}});return()=>n.dispose()}).pipe((0,c.debounceTime)(16)).subscribe(e=>this._forceUpdate(e)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{if(!e){var t;(t=this._sidebarDisposable)==null||t.dispose(),this._sidebarDisposable=null}})}};q=_([g(0,(0,t.Inject)(a.SheetInterceptorService)),g(1,(0,t.Inject)(t.ThemeService)),g(2,t.IUniverInstanceService),g(3,t.ICommandService),g(4,(0,t.Inject)(a.SheetsSelectionsService)),g(5,n.IRenderManagerService),g(6,a.INumfmtService),g(7,(0,t.Inject)(o.ComponentManager)),g(8,o.ISidebarService),g(9,(0,t.Inject)(t.LocaleService)),g(10,(0,t.Inject)(r.SheetsNumfmtCellContentController))],q);let se=()=>{let e=[];return{add:(t,n,r,i,a)=>e.push({unitId:t,subUnitId:n,row:r,col:i,value:a}),getEffects:()=>e,clean:()=>{e=[]}}},J=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetInterceptorService=e,this._numfmtService=t,this._univerInstanceService=n,this._injector=r,this._editorBridgeService=i,G(this,`_collectEffectMutation`,se()),this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(a.BEFORE_CELL_EDIT,{handler:(e,n,i)=>{let a=n.row,o=n.col,s=this._numfmtService.getValue(n.unitId,n.subUnitId,a,o);if(s)switch((0,r.getPatternType)(s.pattern)){case`scientific`:case`currency`:case`grouped`:case`number`:{let e={...n.worksheet.getCellRaw(a,o)};return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&(0,t.isRealNum)(e.v)&&(e.v=(0,f.stripErrorMargin)(Number(e.v))),i&&i(e)}case`percent`:{let e={...n.worksheet.getCellRaw(a,o)};return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&(0,t.isRealNum)(e.v)&&(e.v=`${(0,f.stripErrorMargin)(Number(e.v)*100)}%`),i&&i(e)}default:return i&&i(e)}return i(e)}})))}_initInterceptorEditorEnd(){this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(a.AFTER_CELL_EDIT,{handler:(e,n,i)=>{var a,o;if(!(e!=null&&e.v)&&!(e!=null&&e.p))return i(e);this._collectEffectMutation.clean();let s=this._numfmtService.getValue(n.unitId,n.subUnitId,n.row,n.col),c=n.worksheet.getCellRaw(n.row,n.col);if((0,t.isTextFormat)(s==null?void 0:s.pattern)||e.t===t.CellValueType.FORCE_STRING)return i(e);let l=(a=e.p)==null?void 0:a.body,u=!(e==null||(o=e.p)==null||(o=o.body)==null)&&o.dataStream?e.p.body.dataStream.replace(/\r\n$/,``):String(e.v),d=(0,t.getNumfmtParseValueFilter)(u);if(l)if(ce(l)){let{dataStream:t}=l,n=t.replace(/\r\n$/,``),r=Number(n);if(Number.isNaN(r)&&!d)return i(e)}else return i(e);if(d){if(!d.z&&!(s!=null&&s.pattern)&&(c==null?void 0:c.t)!==t.CellValueType.STRING&&(c==null?void 0:c.t)!==t.CellValueType.FORCE_STRING&&(0,t.willLoseNumericPrecision)(u))return i({...e,p:void 0,v:u,t:t.CellValueType.FORCE_STRING});d.z&&(!(s!=null&&s.pattern)||(0,r.getPatternType)(d.z)!==(0,r.getPatternType)(s.pattern))&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,{pattern:d.z});let a=(0,f.stripErrorMargin)(Number(d.v),16);return i({...e,p:void 0,v:a,t:t.CellValueType.NUMBER})}return i(e)}})))}_initInterceptorCommands(){let e=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case a.SetRangeValuesCommand.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),o=(r=n.getActiveSheet())==null?void 0:r.getSheetId();if(!o)return{redos:[],undos:[]};let s=e._collectEffectMutation.getEffects();if(e._collectEffectMutation.clean(),!s.length)return{redos:[],undos:[]};let c=s.filter(e=>{var t;return!!((t=e.value)!=null&&t.pattern)}).map(e=>({row:e.row,col:e.col,pattern:e.value.pattern})),l=s.filter(e=>{var t;return!((t=e.value)!=null&&t.pattern)}).map(e=>({startRow:e.row,endColumn:e.col,startColumn:e.col,endRow:e.row})),u=[],d=[];if(c.length){let t={id:a.SetNumfmtMutation.id,params:(0,a.transformCellsToRange)(i,o,c)};u.push(t),d.push(...(0,a.factorySetNumfmtUndoMutation)(e._injector,t.params))}if(l.length){let t={id:a.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:l}};u.push(t),d.push(...(0,a.factoryRemoveNumfmtUndoMutation)(e._injector,t.params))}return{redos:u,undos:d.reverse()}}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._collectEffectMutation.clean()}};J=_([g(0,(0,t.Inject)(a.SheetInterceptorService)),g(1,(0,t.Inject)(a.INumfmtService)),g(2,(0,t.Inject)(t.IUniverInstanceService)),g(3,(0,t.Inject)(t.Injector)),g(4,(0,t.Optional)(i.IEditorBridgeService))],J);function ce(e){let{textRuns:t=[],paragraphs:n=[],customRanges:r,customBlocks:i=[]}=e,a=[`va`];return!(t.some(e=>!!(e.ts&&Object.keys(e.ts).some(e=>a.includes(e))))||n.some(e=>e.bullet)||n.length>=2||r!=null&&r.length||i.length>0)}let Y=e=>[{label:`sheet.numfmt.general`,pattern:null},{label:`sheet.numfmt.text`,pattern:t.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:``}],le=e=>({icon:new s.Observable(n=>{let i=e.get(t.LocaleService);return n.next((0,r.getCurrencySymbolIconByLocale)(i.getCurrentLocale()).icon),i.localeChanged$.subscribe(()=>{n.next((0,r.getCurrencySymbolIconByLocale)(i.getCurrentLocale()).icon)})}),id:r.SetCurrencyCommand.id,title:`sheet.numfmt.currency`,tooltip:`sheet.numfmt.currency`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),ue=e=>({icon:`AddDigitsIcon`,id:r.AddDecimalCommand.id,title:`sheet.numfmt.addDecimal`,tooltip:`sheet.numfmt.addDecimal`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),de=e=>({icon:`ReduceDigitsIcon`,id:r.SubtractDecimalCommand.id,title:`sheet.numfmt.subtractDecimal`,tooltip:`sheet.numfmt.subtractDecimal`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),fe=e=>({icon:`PercentIcon`,id:r.SetPercentCommand.id,title:`sheet.numfmt.percent`,tooltip:`sheet.numfmt.percent`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),pe=e=>{let n=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=e.get(t.LocaleService),u=e.get(a.SheetsSelectionsService),d=[a.RemoveNumfmtMutation.id,a.SetNumfmtMutation.id],f=(0,i.deriveStateFromActiveSheet$)(n,``,({workbook:e,worksheet:n})=>new s.Observable(i=>(0,s.merge)(u.selectionMoveEnd$,(0,t.fromCallback)(c.onCommandExecuted.bind(c)).pipe((0,s.filter)(([e])=>d.includes(e.id)))).subscribe(()=>{let a=u.getCurrentSelections();if(a&&a[0]){var o,s;let c=a[0].range,u=c.startRow,d=c.startColumn,f=(o=e.getStyles().get((s=n.getCell(u,d))==null?void 0:s.s))==null?void 0:o.n,p=f==null?void 0:f.pattern,m=(0,r.getCurrencySymbolByLocale)(l.getCurrentLocale()),h=l.t(`sheet.numfmt.general`);if((0,t.isDefaultFormat)(p)){i.next(h);return}if(p){let e=Y(m).filter(e=>typeof e==`object`&&e.pattern).find(e=>(0,t.isPatternEqualWithoutDecimal)(p,e.pattern));h=e&&typeof e==`object`&&e.pattern?l.t(e.label):l.t(`sheet.numfmt.moreFmt`)}i.next(h)}})));return{label:X,id:S.id,tooltip:`sheet.numfmt.title`,type:o.MenuItemType.SELECTOR,slot:!0,selections:[{label:{name:Z,hoverable:!1,selectable:!1}}],value$:f,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetSetCellStylePermission,a.WorksheetEditPermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}},X=`sheet.numfmt.moreNumfmtType`,Z=`sheet.numfmt.moreNumfmtType.options`;function me(e){let{value:n}=e,r=(0,o.useDependency)(t.LocaleService);return(0,d.jsx)(`span`,{className:`univer-text-sm`,children:n==null?r.t(`sheet.numfmt.general`):n})}function he(){let e=(0,o.useDependency)(t.ICommandService),n=(0,o.useDependency)(t.LocaleService),i=(0,o.useDependency)(o.ILayoutService),s=(0,o.useDependency)(r.SheetsNumfmtCellContentController),c=(0,o.useDependency)(a.SheetsSelectionsService),f=n=>{let a=c.getCurrentLastSelection();if(!a)return;let o=a.range,s=[];t.Range.foreach(o,(e,t)=>{n?s.push({row:e,col:t,pattern:n,type:(0,r.getPatternType)(n)}):s.push({row:e,col:t})}),e.executeCommand(r.SetNumfmtCommand.id,{values:s}),i.focus()},p=(0,u.useMemo)(()=>Y(r.localeCurrencySymbolMap.get(n.getCurrentLocale())),[n]),m=t=>{if(t===0)f(null);else if(t===p.length-1)e.executeCommand(S.id),i.focus();else{let e=p[t];e.pattern&&f(e.pattern)}};return(0,d.jsx)(`div`,{className:`univer-grid univer-gap-1 univer-p-1.5`,children:p.map((e,t)=>e===`|`?(0,d.jsx)(l.Separator,{},t):(0,d.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:()=>m(t),children:[(0,d.jsx)(`span`,{children:n.t(e.label)}),(0,d.jsx)(`span`,{className:`univer-text-xs univer-text-gray-500 dark:!univer-text-gray-400`,children:e.pattern?(0,r.getPatternPreview)(e.pattern||``,1220,s.locale).result.trim():``})]},t))})}let ge={[o.RibbonStartGroup.LAYOUT]:{[S.id]:{order:9,menuItemFactory:pe},[r.SetPercentCommand.id]:{order:9.1,menuItemFactory:fe},[r.SetCurrencyCommand.id]:{order:9.2,menuItemFactory:le},[r.AddDecimalCommand.id]:{order:9.3,menuItemFactory:ue},[r.SubtractDecimalCommand.id]:{order:9.4,menuItemFactory:de}}},Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._menuManagerService=t,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(ge),[[X,me],[Z,he]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};Q=_([g(0,(0,t.Inject)(o.ComponentManager)),g(1,o.IMenuManagerService)],Q);let $=class extends t.Plugin{constructor(e=h,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._renderManagerService=i;let{menu:a,...o}=(0,t.merge)({},h,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(`sheets-numfmt-ui.config`,o)}onStarting(){(0,t.registerDependencies)(this._injector,[[q],[J],[w],[Q],[b]])}onRendered(){this._registerRenderModules(),(0,t.touchDependencies)(this._injector,[[q],[J],[Q],[b]])}_registerRenderModules(){[[y]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,e))})}};G($,`pluginName`,`SHEET_NUMFMT_UI_PLUGIN`),G($,`packageName`,p),G($,`version`,m),G($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=_([(0,t.DependentOn)(i.UniverSheetsUIPlugin,r.UniverSheetsNumfmtPlugin),g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService),g(3,n.IRenderManagerService)],$),Object.defineProperty(e,`UniverSheetsNumfmtUIPlugin`,{enumerable:!0,get:function(){return $}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/engine-render`),require(`@univerjs/sheets-numfmt`),require(`@univerjs/sheets-ui`),require(`@univerjs/sheets`),require(`@univerjs/ui`),require(`rxjs`),require(`rxjs/operators`),require(`@univerjs/design`),require(`react`),require(`react/jsx-runtime`),require(`@univerjs/engine-formula`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-render`,`@univerjs/sheets-numfmt`,`@univerjs/sheets-ui`,`@univerjs/sheets`,`@univerjs/ui`,`rxjs`,`rxjs/operators`,`@univerjs/design`,`react`,`react/jsx-runtime`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmtUi={},e.UniverCore,e.UniverEngineRender,e.UniverSheetsNumfmt,e.UniverSheetsUi,e.UniverSheets,e.UniverUi,e.rxjs,e.rxjs.operators,e.UniverDesign,e.React,e.React,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var p=`@univerjs/sheets-numfmt-ui`,m=`0.21.0`;let h={};function g(e,t){return function(n,r){t(n,r,e)}}function _(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let v=`SHEET_NUMFMT_ALERT`,y=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=r,this._zenZoneService=i,this._numfmtService=a,this._configService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe((0,s.debounceTime)(100)).subscribe(e=>{if(e){let o=e.location,s=this._context.unit,c=s.getActiveSheet();if(!c)return this._hideAlert();let l=o.unitId,u=o.subUnitId,d,f=c.getCell(o.row,o.col);if(f!=null&&f.s){let e=s.getStyles().get(f.s);e!=null&&e.n&&(d=e.n)}if(d||(d=this._numfmtService.getValue(l,u,o.row,o.col)),!d){this._hideAlert();return}if((0,t.isTextFormat)(d.pattern)&&t.Tools.isDefine(f==null?void 0:f.v)&&(0,t.isRealNum)(f.v)){var n,a;if((n=this._configService.getConfig(r.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY))!=null&&n.disableTextFormatAlert)return;let e=this._cellAlertManagerService.currentAlert.get(v),t=e==null||(a=e.alert)==null?void 0:a.location;if(t&&t.row===o.row&&t.col===o.col&&t.subUnitId===o.subUnitId&&t.unitId===o.unitId){this._hideAlert();return}this._cellAlertManagerService.showAlert({type:i.CellAlertType.ERROR,title:this._localeService.t(`info.error`),message:this._localeService.t(`info.forceStringInfo`),location:o,width:200,height:74,key:v});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(v)}};y=_([g(1,(0,t.Inject)(i.HoverManagerService)),g(2,(0,t.Inject)(i.CellAlertManagerService)),g(3,(0,t.Inject)(t.LocaleService)),g(4,o.IZenZoneService),g(5,(0,t.Inject)(a.INumfmtService)),g(6,t.IConfigService)],y);let b=class extends t.Disposable{constructor(e){super(),this._repeatLastActionService=e,this._initCommandRecording()}_initCommandRecording(){this._repeatLastActionService&&this.disposeWithMe(this._repeatLastActionService.registerRepeatableCommand(r.SetNumfmtCommand.id,(e,t)=>{if(!t)return;let{values:n}=t,r=n.find(e=>e.pattern);if(!r)return;let{pattern:i,type:a}=r,o=[],s=new Set;for(let t of e){let{startRow:e,startColumn:n,endRow:r,endColumn:c}=t;for(let t=e;t<=r;t++)for(let e=n;e<=c;e++){let n=`${t}-${e}`;s.has(n)||(s.add(n),o.push({row:t,col:e,pattern:i,type:a}))}}return{...t,values:o}},i.RepeatLastActionPermission.CellStyle))}};b=_([g(0,(0,t.Optional)(i.IRepeatLastActionService))],b);let x={id:`sheet.operation.close.numfmt.panel`,type:t.CommandType.OPERATION,handler:()=>!0},S={id:`sheet.operation.open.numfmt.panel`,type:t.CommandType.OPERATION,handler:e=>(e.get(q).openPanel(),!0)},C=(0,u.createContext)([]),w=class{constructor(e){this._localStorageService=e}_getKey(e){return`userHabitController_${e}`}async addHabit(e,t){let n=this._getKey(e);return this._localStorageService.getItem(n).then(e=>{e||this._localStorageService.setItem(n,t)})}markHabit(e,t){let n=this._getKey(e);this._localStorageService.getItem(n).then(e=>{if(e){let r=e.findIndex(e=>e===t);r>-1&&e.splice(r,1),e.unshift(t),this._localStorageService.setItem(n,e)}})}async getHabit(e,t){let n=this._getKey(e),r=await this._localStorageService.getItem(n);if(t&&r){let e=r.map((e,t,n)=>({value:e,priority:n.length-t}));return t.sort((t,n)=>{var r,i;let a=((r=e.find(e=>e.value===t))==null?void 0:r.priority)||-1;return(((i=e.find(e=>e.value===n))==null?void 0:i.priority)||-1)-a})}return r||[]}deleteHabit(e){this._localStorageService.removeItem(e)}};w=_([g(0,(0,t.Inject)(t.ILocalStorageService))],w);let T=`numfmtCurrency`,E=e=>{let t=(0,o.useDependency)(w),[n,i]=(0,u.useState)(r.currencySymbols);return(0,u.useEffect)(()=>{t.addHabit(`numfmtCurrency`,[]).then(()=>{t.getHabit(T,[...r.currencySymbols]).then(t=>{i(t),e&&e(t)})})},[]),{userHabitCurrency:n,mark:e=>{t.markHabit(T,e)}}},ee=()=>{let e=(0,u.useRef)([]),[t,n]=(0,u.useState)({});return(0,u.useEffect)(()=>{e.current.forEach(e=>{e()}),e.current=[]},[t]),t=>{e.current.push(t),n({})}},te=e=>!!(0,r.getCurrencyType)(e)&&e.startsWith(`_(`),ne=e=>{let{defaultPattern:n,action:i,onChange:a}=e,[s,c]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(n||``,2)),f=(0,u.useContext)(C),[p,m]=(0,u.useState)(()=>(0,r.getCurrencyType)(n)||f[0]),h=(0,u.useMemo)(()=>f.map(e=>({label:e,value:e})),[]),g=(0,o.useDependency)(t.LocaleService).t;return i.current=()=>(0,r.setPatternDecimal)(`_("${p}"* #,##0${s>0?`.0`:``}_)`,s),(0,d.jsxs)(`div`,{children:[(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-flex univer-justify-between`,children:[(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-32`,children:(0,d.jsx)(l.InputNumber,{value:s,step:1,precision:0,max:20,min:0,onChange:e=>{let t=e||0;c(t),a((0,r.setPatternDecimal)(`_("${p}"* #,##0${t>0?`.0`:``}_)`,t))}})})]}),(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.currencyType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-36`,children:(0,d.jsx)(l.Select,{options:h,value:p,onChange:e=>{m(e),a((0,r.setPatternDecimal)(`_("${e}"* #,##0${s>0?`.0`:``}_)`,s))}})})]})]}),(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:g(`sheet.numfmt.accountingDes`)})]})},re=e=>!!(0,r.getCurrencyType)(e)&&!e.startsWith(`_(`),D=e=>{let n=(0,o.useDependency)(t.LocaleService).t,i=(0,u.useContext)(C),[a,s]=(0,u.useState)(()=>(0,r.getCurrencyType)(e.defaultPattern)||i[0]),[c,f]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(e.defaultPattern||``,2)),[p,m]=(0,u.useState)(()=>{var n;let i=(0,r.getCurrencyFormatOptions)(a);return((n=i.find(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e.defaultPattern)))==null?void 0:n.value)||i[0].value}),h=(0,u.useMemo)(()=>(0,r.getCurrencyFormatOptions)(a),[a]),g=(0,u.useMemo)(()=>i.map(e=>({label:e,value:e})),[i]);return e.action.current=()=>(0,r.setPatternDecimal)(p,c),(0,d.jsxs)(`div`,{children:[(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-flex univer-justify-between`,children:[(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-32`,children:(0,d.jsx)(l.InputNumber,{value:c,max:20,min:0,onChange:t=>{f(t||0),e.onChange((0,r.setPatternDecimal)(p,t||0))}})})]}),(0,d.jsxs)(`div`,{className:`option`,children:[(0,d.jsx)(`div`,{className:`univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.currencyType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2 univer-w-36`,children:(0,d.jsx)(l.Select,{value:a,options:g,onChange:t=>{if(t===void 0)return;s(t);let n=(0,r.getCurrencyFormatOptions)(t)[0].value;m(n),e.onChange((0,r.setPatternDecimal)(n,c))}})})]})]}),(0,d.jsx)(`div`,{className:`label univer-mt-4`,children:n(`sheet.numfmt.negType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{value:p,options:h,onChange:t=>{t!==void 0&&(m(t),e.onChange((0,r.setPatternDecimal)(t,c)))}})}),(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:n(`sheet.numfmt.currencyDes`)})]})};function O({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,u.useRef)(`_${M()}`);return k(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function k(e,t,n,r,i){return(0,u.createElement)(e.tag,{key:t,...A(e,n,i),...r},(j(e,n).children||[]).map((r,a)=>k(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function A(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function j(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function M(){return Math.random().toString(36).substring(2,8)}O.displayName=`UniverIcon`;let N={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`}}]},P=(0,u.forwardRef)(function(e,t){return(0,u.createElement)(O,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:N}))});P.displayName=`CheckMarkIcon`;let F=`customFormat`,I=`numfmt_custom_pattern`;function L(e){let{defaultPattern:n,action:i,onChange:a}=e,s=(0,o.useDependency)(w),c=(0,o.useDependency)(t.ILocalStorageService),f=(0,o.useDependency)(t.LocaleService),[p,m]=(0,u.useState)(n);i.current=()=>(s.markHabit(F,p),c.getItem(I).then((e=[])=>{let t=[...new Set([p,...e||[]])].splice(0,10).filter(e=>!!e);c.setItem(I,t)}),p);let[h,g]=(0,u.useState)([]);(0,u.useEffect)(()=>{c.getItem(I).then(e=>{let t=[...r.CURRENCYFORMAT.map(e=>e.suffix(`$`)),...r.DATEFMTLISG.map(e=>e.suffix),...r.NUMBERFORMAT.map(e=>e.suffix)];t.push(...e||[]),s.addHabit(F,[]).finally(()=>{s.getHabit(F,t).then(e=>{g([...new Set(e)])})})})},[]);let _=e=>{m(e),a(e)};return(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:f.t(`sheet.numfmt.customFormat`)}),(0,d.jsx)(l.Input,{placeholder:f.t(`sheet.numfmt.customFormat`),onBlur:()=>{a(p)},value:p,onChange:m,className:`univer-mt-2 univer-w-full`}),(0,d.jsx)(`div`,{className:(0,l.clsx)(`univer-mt-2 univer-max-h-[400px] univer-overflow-auto univer-rounded-lg univer-p-2`,l.borderClassName),children:h.map(e=>(0,d.jsxs)(`div`,{onClick:()=>_(e),className:`univer-flex univer-cursor-pointer univer-items-center univer-gap-1.5 univer-py-1.5 univer-text-sm`,children:[(0,d.jsx)(`div`,{className:`univer-flex univer-w-4 univer-items-center univer-text-primary-600`,children:p===e&&(0,d.jsx)(P,{})}),(0,d.jsx)(`div`,{children:e})]},e))}),(0,d.jsx)(`div`,{className:`univer-mt-3 univer-text-sm univer-text-gray-600 dark:!univer-text-gray-200`,children:f.t(`sheet.numfmt.customFormatDes`)})]})}let ie=e=>{let n=t.numfmt.getFormatInfo(e);return(0,r.getDateFormatOptions)().map(e=>e.value).includes(e)||[`date`,`datetime`,`time`].includes(n.type)};function ae(e){let{onChange:n,defaultPattern:i}=e,a=(0,u.useMemo)(r.getDateFormatOptions,[]),s=(0,o.useDependency)(t.LocaleService),[c,f]=(0,u.useState)(()=>{if(i){let e=a.find(e=>e.value===i);if(e)return e.value}return a[0].value});return e.action.current=()=>c,(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:s.t(`sheet.numfmt.dateType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{value:c,options:a,onChange:e=>{e!==void 0&&(f(e),n(e))}})}),(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:s.t(`sheet.numfmt.dateDes`)})]})}let oe=e=>!e,R=e=>{let n=(0,o.useDependency)(t.LocaleService).t;return e.action.current=()=>``,(0,d.jsx)(`div`,{children:(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:n(`sheet.numfmt.generalDes`)})})},z=e=>(0,r.getNumberFormatOptions)().some(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e));function B(e){let n=(0,o.useDependency)(t.LocaleService),i=(0,u.useMemo)(r.getNumberFormatOptions,[]),[a,s]=(0,u.useState)(()=>(0,r.getDecimalFromPattern)(e.defaultPattern||``,0)),[c,f]=(0,u.useState)(()=>{let n=i.find(n=>(0,t.isPatternEqualWithoutDecimal)(n.value,e.defaultPattern||``));return(n==null?void 0:n.value)||i[0].value}),p=(0,u.useMemo)(()=>(0,r.setPatternDecimal)(c,Number(a||0)),[c,a]),m=(0,u.useMemo)(()=>!(0,r.isPatternHasDecimal)(c),[c]),h=t=>{s(t||0),e.onChange((0,r.setPatternDecimal)(c,Number(t||0)))},g=t=>{t!==void 0&&(s((0,r.getDecimalFromPattern)(t,0)),f(t),e.onChange(t))};return e.action.current=()=>p,(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:n.t(`sheet.numfmt.decimalLength`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.InputNumber,{disabled:m,value:a,max:20,min:0,onChange:h})}),(0,d.jsxs)(`div`,{className:`univer-mt-4 univer-text-sm univer-text-gray-400`,children:[` `,n.t(`sheet.numfmt.negType`)]}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.SelectList,{onChange:g,options:i,value:c})}),(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm/5 univer-text-gray-600 dark:!univer-text-gray-200`,children:n.t(`sheet.numfmt.thousandthPercentileDes`)})]})}let V=e=>{let{defaultValue:n,defaultPattern:i,row:a,col:s}=e.value,c=(0,o.useDependency)(t.LocaleService),f=(0,u.useRef)(()=>``),p=c.t,m=ee(),h=(0,u.useMemo)(()=>[{label:`sheet.numfmt.general`,component:R},{label:`sheet.numfmt.accounting`,component:ne},{label:`sheet.numfmt.currency`,component:D},{label:`sheet.numfmt.date`,component:ae},{label:`sheet.numfmt.thousandthPercentile`,component:B},{label:`sheet.numfmt.customFormat`,component:L}].map(e=>({...e,label:p(e.label)})),[]),[g,_]=(0,u.useState)(w),[v,y]=(0,u.useState)(()=>`${a}_${s}`),{mark:b,userHabitCurrency:x}=E(()=>y(`${a}_${s}_userCurrency'`)),S=(0,u.useMemo)(()=>{var e;return(e=h.find(e=>e.label===g))==null?void 0:e.component},[g]);function w(){return[oe,te,re,ie,z].reduce((e,t,n)=>e||(t(i)?h[n].label:``),``)||h[0].label}let T=h.map(e=>({label:e.label,value:e.label})),O=t=>{_(t),m(()=>e.onChange({type:`change`,value:f.current()||``}))},k=(0,u.useCallback)(t=>{e.onChange({type:`change`,value:t})},[]),A=()=>{let t=f.current()||``,n=(0,r.getCurrencyType)(t);n&&b(n),e.onChange({type:`confirm`,value:t})},j=()=>{e.onChange({type:`cancel`,value:``})},M={onChange:k,defaultValue:n,defaultPattern:i,action:f};return(0,u.useEffect)(()=>{_(w()),y(`${a}_${s}`)},[a,s]),(0,d.jsxs)(`div`,{className:(0,l.clsx)(`univer-flex univer-h-full univer-flex-col univer-justify-between univer-overflow-y-auto univer-pb-5`,l.scrollbarClassName),children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mt-3.5 univer-text-sm univer-text-gray-400`,children:p(`sheet.numfmt.numfmtType`)}),(0,d.jsx)(`div`,{className:`univer-mt-2`,children:(0,d.jsx)(l.Select,{className:`univer-w-full`,value:g,options:T,onChange:O})}),(0,d.jsx)(`div`,{children:S&&(0,d.jsx)(C.Provider,{value:x,children:(0,u.createElement)(S,{...M,key:v})})})]}),(0,d.jsxs)(`div`,{className:`univer-mb-5 univer-mt-3.5 univer-flex univer-justify-end`,children:[(0,d.jsx)(l.Button,{onClick:j,className:`univer-mr-3`,children:p(`sheet.numfmt.cancel`)}),(0,d.jsx)(l.Button,{variant:`primary`,onClick:A,children:p(`sheet.numfmt.confirm`)})]})]})};function H(e){"@babel/helpers - typeof";return H=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},H(e)}function U(e,t){if(H(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(H(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function W(e){var t=U(e,`string`);return H(t)==`symbol`?t:t+``}function G(e,t,n){return(t=W(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let K=`SHEET_NUMFMT_PANEL`,q=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this._sheetInterceptorService=e,this._themeService=t,this._univerInstanceService=n,this._commandService=r,this._selectionManagerService=i,this._renderManagerService=a,this._numfmtService=o,this._componentManager=s,this._sidebarService=c,this._localeService=l,this._sheetsNumfmtCellContentController=u,G(this,`_previewPattern`,``),G(this,`_sidebarDisposable`,null),this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener(),this._initNumfmtLocalChange()}_initNumfmtLocalChange(){this.disposeWithMe((0,s.merge)(this._sheetsNumfmtCellContentController.locale$,this._localeService.currentLocale$).subscribe(()=>{this._forceUpdate()}))}openPanel(){var e;let n=this._sidebarService,i=this._selectionManagerService,a=this._commandService,o=this._univerInstanceService,s=this._numfmtService,c=this._localeService,l=(((e=i.getCurrentSelections())==null?void 0:e.map(e=>e.range))||[])[0];if(!l)return!1;let u=o.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),d=u.getActiveSheet();if(!d)return!1;let f=d.getCellRaw(l.startRow,l.startColumn),p=s.getValue(u.getUnitId(),d.getSheetId(),l.startRow,l.startColumn),m=``;p&&(m=p.pattern);let h=(f==null?void 0:f.t)===t.CellValueType.NUMBER?f.v:12345678,g={onChange:e=>{if(e.type===`change`)this._previewPattern=e.value,this._forceUpdate();else if(e.type===`confirm`){var o;let s=((o=i.getCurrentSelections())==null?void 0:o.map(e=>e.range))||[],c={values:[]},l=(0,r.getPatternType)(e.value);s.forEach(n=>{t.Range.foreach(n,(t,n)=>{c.values.push({row:t,col:n,pattern:e.value,type:l})})}),a.executeCommand(r.SetNumfmtCommand.id,c),n.close()}else e.type===`cancel`&&n.close()},value:{defaultPattern:m,defaultValue:h,row:l.startRow,col:l.startColumn}};return this._sidebarDisposable=n.open({header:{title:c.t(`sheet.numfmt.title`)},children:{label:K,...g},onClose:()=>{this._forceUpdate(),a.executeCommand(x.id)}}),!0}_forceUpdate(e){var n;let r=this._renderManagerService.getRenderById(e==null?this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId():e);r==null||r.with(i.SheetSkeletonManagerService).reCalculate(),r==null||(n=r.mainComponent)==null||n.makeDirty()}_initCommands(){[S,x].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initPanel(){this.disposeWithMe(this._componentManager.register(K,V))}_initRealTimeRenderingInterceptor(){let e=(0,s.combineLatest)([new s.Observable(e=>{this._commandService.onCommandExecuted(t=>{t.id===S.id&&e.next(!0),t.id===x.id&&e.next(!1)})}),this._selectionManagerService.selectionMoveEnd$.pipe((0,c.map)(e=>e?e.map(e=>e.range):[]))]);this.disposeWithMe((0,t.toDisposable)(e.pipe((0,c.switchMap)(([e,n])=>new s.Observable(r=>{let i=new t.DisposableCollection;return e&&n.length&&r.next({selectionRanges:n,disposableCollection:i}),()=>{i.dispose()}})),(0,c.tap)(()=>{this._previewPattern=null})).subscribe(({disposableCollection:e,selectionRanges:n})=>{var i;let o=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);this.openPanel(),e.add(this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,i,a)=>{let{row:o,col:s}=i,c=a(e)||{};if(n.find(e=>e.startColumn<=s&&e.endColumn>=s&&e.startRow<=o&&e.endRow>=o)){let e=i.worksheet.getCellRaw(o,s),n=e==null?void 0:e.v,a=e==null?void 0:e.t;if(n==null||a!==t.CellValueType.NUMBER||this._previewPattern===null)return c;let u=(0,r.getPatternPreviewIgnoreGeneral)(this._previewPattern,n,this._sheetsNumfmtCellContentController.locale);if(u.color){var l;let e=(l=this._themeService.getColorFromTheme(`${u.color}.500`))==null?u.color:l;return{...c,v:u.result,t:t.CellValueType.STRING,s:{cl:{rgb:e}}}}return{...c,v:u.result,t:t.CellValueType.STRING}}return c}})),(i=this._renderManagerService.getRenderById(o.getUnitId()))==null||(i=i.mainComponent)==null||i.makeDirty()})))}_commandExecutedListener(){let e=[a.RemoveNumfmtMutation.id,a.SetNumfmtMutation.id];this.disposeWithMe(new s.Observable(t=>{let n=this._commandService.onCommandExecuted(n=>{if(e.includes(n.id)){let e=n.params;t.next(e.unitId)}});return()=>n.dispose()}).pipe((0,c.debounceTime)(16)).subscribe(e=>this._forceUpdate(e)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{if(!e){var t;(t=this._sidebarDisposable)==null||t.dispose(),this._sidebarDisposable=null}})}};q=_([g(0,(0,t.Inject)(a.SheetInterceptorService)),g(1,(0,t.Inject)(t.ThemeService)),g(2,t.IUniverInstanceService),g(3,t.ICommandService),g(4,(0,t.Inject)(a.SheetsSelectionsService)),g(5,n.IRenderManagerService),g(6,a.INumfmtService),g(7,(0,t.Inject)(o.ComponentManager)),g(8,o.ISidebarService),g(9,(0,t.Inject)(t.LocaleService)),g(10,(0,t.Inject)(r.SheetsNumfmtCellContentController))],q);let se=()=>{let e=[];return{add:(t,n,r,i,a)=>e.push({unitId:t,subUnitId:n,row:r,col:i,value:a}),getEffects:()=>e,clean:()=>{e=[]}}},J=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetInterceptorService=e,this._numfmtService=t,this._univerInstanceService=n,this._injector=r,this._editorBridgeService=i,G(this,`_collectEffectMutation`,se()),this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(a.BEFORE_CELL_EDIT,{handler:(e,n,i)=>{let a=n.row,o=n.col,s=this._numfmtService.getValue(n.unitId,n.subUnitId,a,o);if(s)switch((0,r.getPatternType)(s.pattern)){case`scientific`:case`currency`:case`grouped`:case`number`:{let e={...n.worksheet.getCellRaw(a,o)};return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&(0,t.isRealNum)(e.v)&&(e.v=(0,f.stripErrorMargin)(Number(e.v))),i&&i(e)}case`percent`:{let e={...n.worksheet.getCellRaw(a,o)};return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&(0,t.isRealNum)(e.v)&&(e.v=`${(0,f.stripErrorMargin)(Number(e.v)*100)}%`),i&&i(e)}default:return i&&i(e)}return i(e)}})))}_initInterceptorEditorEnd(){this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(a.AFTER_CELL_EDIT,{handler:(e,n,i)=>{var a,o;if(!(e!=null&&e.v)&&!(e!=null&&e.p))return i(e);this._collectEffectMutation.clean();let s=this._numfmtService.getValue(n.unitId,n.subUnitId,n.row,n.col),c=n.worksheet.getCellRaw(n.row,n.col);if((0,t.isTextFormat)(s==null?void 0:s.pattern)||e.t===t.CellValueType.FORCE_STRING)return i(e);let l=(a=e.p)==null?void 0:a.body,u=!(e==null||(o=e.p)==null||(o=o.body)==null)&&o.dataStream?e.p.body.dataStream.replace(/\r\n$/,``):String(e.v),d=(0,t.getNumfmtParseValueFilter)(u);if(l)if(ce(l)){let{dataStream:t}=l,n=t.replace(/\r\n$/,``),r=Number(n);if(Number.isNaN(r)&&!d)return i(e)}else return i(e);if(d){if(!d.z&&!(s!=null&&s.pattern)&&(c==null?void 0:c.t)!==t.CellValueType.STRING&&(c==null?void 0:c.t)!==t.CellValueType.FORCE_STRING&&(0,t.willLoseNumericPrecision)(u))return i({...e,p:void 0,v:u,t:t.CellValueType.FORCE_STRING});d.z&&(!(s!=null&&s.pattern)||(0,r.getPatternType)(d.z)!==(0,r.getPatternType)(s.pattern))&&this._collectEffectMutation.add(n.unitId,n.subUnitId,n.row,n.col,{pattern:d.z});let a=(0,f.stripErrorMargin)(Number(d.v),16);return i({...e,p:void 0,v:a,t:t.CellValueType.NUMBER})}return i(e)}})))}_initInterceptorCommands(){let e=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case a.SetRangeValuesCommand.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),o=(r=n.getActiveSheet())==null?void 0:r.getSheetId();if(!o)return{redos:[],undos:[]};let s=e._collectEffectMutation.getEffects();if(e._collectEffectMutation.clean(),!s.length)return{redos:[],undos:[]};let c=s.filter(e=>{var t;return!!((t=e.value)!=null&&t.pattern)}).map(e=>({row:e.row,col:e.col,pattern:e.value.pattern})),l=s.filter(e=>{var t;return!((t=e.value)!=null&&t.pattern)}).map(e=>({startRow:e.row,endColumn:e.col,startColumn:e.col,endRow:e.row})),u=[],d=[];if(c.length){let t={id:a.SetNumfmtMutation.id,params:(0,a.transformCellsToRange)(i,o,c)};u.push(t),d.push(...(0,a.factorySetNumfmtUndoMutation)(e._injector,t.params))}if(l.length){let t={id:a.RemoveNumfmtMutation.id,params:{unitId:i,subUnitId:o,ranges:l}};u.push(t),d.push(...(0,a.factoryRemoveNumfmtUndoMutation)(e._injector,t.params))}return{redos:u,undos:d.reverse()}}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._collectEffectMutation.clean()}};J=_([g(0,(0,t.Inject)(a.SheetInterceptorService)),g(1,(0,t.Inject)(a.INumfmtService)),g(2,(0,t.Inject)(t.IUniverInstanceService)),g(3,(0,t.Inject)(t.Injector)),g(4,(0,t.Optional)(i.IEditorBridgeService))],J);function ce(e){let{textRuns:t=[],paragraphs:n=[],customRanges:r,customBlocks:i=[]}=e,a=[`va`];return!(t.some(e=>!!(e.ts&&Object.keys(e.ts).some(e=>a.includes(e))))||n.some(e=>e.bullet)||n.length>=2||r!=null&&r.length||i.length>0)}let Y=e=>[{label:`sheet.numfmt.general`,pattern:null},{label:`sheet.numfmt.text`,pattern:t.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:``}],le=e=>({icon:new s.Observable(n=>{let i=e.get(t.LocaleService);return n.next((0,r.getCurrencySymbolIconByLocale)(i.getCurrentLocale()).icon),i.localeChanged$.subscribe(()=>{n.next((0,r.getCurrencySymbolIconByLocale)(i.getCurrentLocale()).icon)})}),id:r.SetCurrencyCommand.id,title:`sheet.numfmt.currency`,tooltip:`sheet.numfmt.currency`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),ue=e=>({icon:`AddDigitsIcon`,id:r.AddDecimalCommand.id,title:`sheet.numfmt.addDecimal`,tooltip:`sheet.numfmt.addDecimal`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),de=e=>({icon:`ReduceDigitsIcon`,id:r.SubtractDecimalCommand.id,title:`sheet.numfmt.subtractDecimal`,tooltip:`sheet.numfmt.subtractDecimal`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),fe=e=>({icon:`PercentIcon`,id:r.SetPercentCommand.id,title:`sheet.numfmt.percent`,tooltip:`sheet.numfmt.percent`,type:o.MenuItemType.BUTTON,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}),pe=e=>{let n=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=e.get(t.LocaleService),u=e.get(a.SheetsSelectionsService),d=[a.RemoveNumfmtMutation.id,a.SetNumfmtMutation.id],f=(0,i.deriveStateFromActiveSheet$)(n,``,({workbook:e,worksheet:n})=>new s.Observable(i=>(0,s.merge)(u.selectionMoveEnd$,(0,t.fromCallback)(c.onCommandExecuted.bind(c)).pipe((0,s.filter)(([e])=>d.includes(e.id)))).subscribe(()=>{let a=u.getCurrentSelections();if(a&&a[0]){var o,s;let c=a[0].range,u=c.startRow,d=c.startColumn,f=(o=e.getStyles().get((s=n.getCell(u,d))==null?void 0:s.s))==null?void 0:o.n,p=f==null?void 0:f.pattern,m=(0,r.getCurrencySymbolByLocale)(l.getCurrentLocale()),h=l.t(`sheet.numfmt.general`);if((0,t.isDefaultFormat)(p)){i.next(h);return}if(p){let e=Y(m).filter(e=>typeof e==`object`&&e.pattern).find(e=>(0,t.isPatternEqualWithoutDecimal)(p,e.pattern));h=e&&typeof e==`object`&&e.pattern?l.t(e.label):l.t(`sheet.numfmt.moreFmt`)}i.next(h)}})));return{label:X,id:S.id,tooltip:`sheet.numfmt.title`,type:o.MenuItemType.SELECTOR,slot:!0,selections:[{label:{name:Z,hoverable:!1,selectable:!1}}],value$:f,hidden$:(0,o.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetSetCellStylePermission,a.WorksheetEditPermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}},X=`sheet.numfmt.moreNumfmtType`,Z=`sheet.numfmt.moreNumfmtType.options`;function me(e){let{value:n}=e,r=(0,o.useDependency)(t.LocaleService);return(0,d.jsx)(`span`,{className:`univer-text-sm`,children:n==null?r.t(`sheet.numfmt.general`):n})}function he(){let e=(0,o.useDependency)(t.ICommandService),n=(0,o.useDependency)(t.LocaleService),i=(0,o.useDependency)(o.ILayoutService),s=(0,o.useDependency)(r.SheetsNumfmtCellContentController),c=(0,o.useDependency)(a.SheetsSelectionsService),f=n=>{let a=c.getCurrentLastSelection();if(!a)return;let o=a.range,s=[];t.Range.foreach(o,(e,t)=>{n?s.push({row:e,col:t,pattern:n,type:(0,r.getPatternType)(n)}):s.push({row:e,col:t})}),e.executeCommand(r.SetNumfmtCommand.id,{values:s}),i.focus()},p=(0,u.useMemo)(()=>Y(r.localeCurrencySymbolMap.get(n.getCurrentLocale())),[n]),m=t=>{if(t===0)f(null);else if(t===p.length-1)e.executeCommand(S.id),i.focus();else{let e=p[t];e.pattern&&f(e.pattern)}};return(0,d.jsx)(`div`,{className:`univer-grid univer-gap-1 univer-p-1.5`,children:p.map((e,t)=>e===`|`?(0,d.jsx)(l.Separator,{},t):(0,d.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:()=>m(t),children:[(0,d.jsx)(`span`,{children:n.t(e.label)}),(0,d.jsx)(`span`,{className:`univer-text-xs univer-text-gray-500 dark:!univer-text-gray-400`,children:e.pattern?(0,r.getPatternPreview)(e.pattern||``,1220,s.locale).result.trim():``})]},t))})}let ge={[o.RibbonStartGroup.LAYOUT]:{[S.id]:{order:9,menuItemFactory:pe},[r.SetPercentCommand.id]:{order:9.1,menuItemFactory:fe},[r.SetCurrencyCommand.id]:{order:9.2,menuItemFactory:le},[r.AddDecimalCommand.id]:{order:9.3,menuItemFactory:ue},[r.SubtractDecimalCommand.id]:{order:9.4,menuItemFactory:de}}},Q=class extends t.Disposable{constructor(e,t){super(),this._componentManager=e,this._menuManagerService=t,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(ge),[[X,me],[Z,he]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};Q=_([g(0,(0,t.Inject)(o.ComponentManager)),g(1,o.IMenuManagerService)],Q);let $=class extends t.Plugin{constructor(e=h,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._renderManagerService=i;let{menu:a,...o}=(0,t.merge)({},h,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(`sheets-numfmt-ui.config`,o)}onStarting(){(0,t.registerDependencies)(this._injector,[[q],[J],[w],[Q],[b]])}onRendered(){this._registerRenderModules(),(0,t.touchDependencies)(this._injector,[[q],[J],[Q],[b]])}_registerRenderModules(){[[y]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,e))})}};G($,`pluginName`,`SHEET_NUMFMT_UI_PLUGIN`),G($,`packageName`,p),G($,`version`,m),G($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=_([(0,t.DependentOn)(i.UniverSheetsUIPlugin,r.UniverSheetsNumfmtPlugin),g(1,(0,t.Inject)(t.Injector)),g(2,t.IConfigService),g(3,n.IRenderManagerService)],$),Object.defineProperty(e,`UniverSheetsNumfmtUIPlugin`,{enumerable:!0,get:function(){return $}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-numfmt-ui",
3
- "version": "0.20.1",
3
+ "version": "0.21.0",
4
4
  "private": false,
5
5
  "description": "UniverSheet numfmt plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -55,23 +55,23 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "@univerjs/icons": "^1.1.1",
58
- "@univerjs/core": "0.20.1",
59
- "@univerjs/engine-formula": "0.20.1",
60
- "@univerjs/engine-render": "0.20.1",
61
- "@univerjs/sheets": "0.20.1",
62
- "@univerjs/sheets-ui": "0.20.1",
63
- "@univerjs/ui": "0.20.1",
64
- "@univerjs/design": "0.20.1",
65
- "@univerjs/sheets-numfmt": "0.20.1"
58
+ "@univerjs/engine-render": "0.21.0",
59
+ "@univerjs/engine-formula": "0.21.0",
60
+ "@univerjs/sheets-numfmt": "0.21.0",
61
+ "@univerjs/sheets": "0.21.0",
62
+ "@univerjs/sheets-ui": "0.21.0",
63
+ "@univerjs/ui": "0.21.0",
64
+ "@univerjs/design": "0.21.0",
65
+ "@univerjs/core": "0.21.0"
66
66
  },
67
67
  "devDependencies": {
68
- "postcss": "^8.5.8",
68
+ "postcss": "^8.5.10",
69
69
  "react": "18.3.1",
70
70
  "rxjs": "^7.8.2",
71
71
  "tailwindcss": "3.4.18",
72
72
  "typescript": "^6.0.2",
73
- "vitest": "^4.1.1",
74
- "@univerjs-infra/shared": "0.20.1"
73
+ "vitest": "^4.1.4",
74
+ "@univerjs-infra/shared": "0.21.0"
75
75
  },
76
76
  "scripts": {
77
77
  "test": "vitest run",