@univerjs/sheets-numfmt-ui 0.4.0-nightly.202410290723

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/README.md +58 -0
  2. package/lib/cjs/index.js +9 -0
  3. package/lib/es/index.js +1008 -0
  4. package/lib/index.css +1 -0
  5. package/lib/locale/en-US.json +38 -0
  6. package/lib/locale/fa-IR.json +38 -0
  7. package/lib/locale/ru-RU.json +38 -0
  8. package/lib/locale/vi-VN.json +38 -0
  9. package/lib/locale/zh-CN.json +38 -0
  10. package/lib/locale/zh-TW.json +38 -0
  11. package/lib/types/controllers/__tests__/cell-content.controller.spec.d.ts +16 -0
  12. package/lib/types/controllers/__tests__/editor.controller.spec.d.ts +16 -0
  13. package/lib/types/controllers/__tests__/test.util.d.ts +15 -0
  14. package/lib/types/controllers/config.schema.d.ts +7 -0
  15. package/lib/types/controllers/menu.d.ts +44 -0
  16. package/lib/types/controllers/menu.schema.d.ts +2 -0
  17. package/lib/types/controllers/numfmt.controller.d.ts +32 -0
  18. package/lib/types/controllers/numfmt.editor.controller.d.ts +20 -0
  19. package/lib/types/controllers/numfmt.menu.controller.d.ts +8 -0
  20. package/lib/types/controllers/user-habit.controller.d.ts +19 -0
  21. package/lib/types/index.d.ts +16 -0
  22. package/lib/types/locale/en-US.d.ts +3 -0
  23. package/lib/types/locale/fa-IR.d.ts +3 -0
  24. package/lib/types/locale/ru-RU.d.ts +3 -0
  25. package/lib/types/locale/vi-VN.d.ts +3 -0
  26. package/lib/types/locale/zh-CN.d.ts +54 -0
  27. package/lib/types/locale/zh-TW.d.ts +3 -0
  28. package/lib/types/plugin.d.ts +13 -0
  29. package/lib/types/views/components/accounting/index.d.ts +4 -0
  30. package/lib/types/views/components/currency/index.d.ts +4 -0
  31. package/lib/types/views/components/custom-format/index.d.ts +3 -0
  32. package/lib/types/views/components/date/index.d.ts +4 -0
  33. package/lib/types/views/components/general/index.d.ts +4 -0
  34. package/lib/types/views/components/index.d.ts +14 -0
  35. package/lib/types/views/components/interface.d.ts +7 -0
  36. package/lib/types/views/components/more-numfmt-type/MoreNumfmtType.d.ts +7 -0
  37. package/lib/types/views/components/stories/Panel.stories.d.ts +5 -0
  38. package/lib/types/views/components/thousandth-percentile/index.d.ts +4 -0
  39. package/lib/types/views/hooks/useCurrencyOptions.d.ts +19 -0
  40. package/lib/types/views/hooks/useNextTick.d.ts +16 -0
  41. package/lib/umd/index.js +9 -0
  42. package/package.json +96 -0
package/README.md ADDED
@@ -0,0 +1,58 @@
1
+ # @univerjs/sheets-numfmt-ui
2
+ sheets-numfmt
3
+
4
+ ## Package Overview
5
+
6
+ | Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
7
+ | --- | --- | --- | --- | --- | :---: | :---: |
8
+ | `@univerjs/sheets-numfmt-ui` | `UniverSheetsNumfmtUI` | [![][npm-version-shield]][npm-version-link] | ![][npm-license-shield] | ![][npm-downloads-shield] | ⭕️ | ⭕️ |
9
+
10
+ ## Introduction
11
+
12
+ Providing editing/rendering capabilities around `number format`, such as edit panels, toolbar buttons, real-time previews, row/column variations, etc.
13
+
14
+ > [!NOTE]
15
+ > Numerical format is one of the core functions of electronic spreadsheets, and therefore, parsing and handling of numerical format is done within `@univerjs/sheets`.
16
+
17
+ ## Usage
18
+
19
+ ### Installation
20
+
21
+ ```shell
22
+ # Using npm
23
+ npm install @univerjs/sheets-numfmt-ui
24
+
25
+ # Using pnpm
26
+ pnpm add @univerjs/sheets-numfmt-ui
27
+ ```
28
+
29
+ ### How to use
30
+
31
+ Import `@univerjs/sheets-numfmt-ui` at the entrance .
32
+
33
+ ```typescript
34
+ import { LocaleType, LogLevel, Univer } from '@univerjs/core';
35
+ import { defaultTheme } from '@univerjs/design';
36
+ import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui';
37
+
38
+ // univer
39
+ const univer = new Univer({
40
+ theme: defaultTheme,
41
+ locale: LocaleType.EN_US,
42
+ locales,
43
+ logLevel: LogLevel.VERBOSE,
44
+ });
45
+
46
+ // ... Other plug-ins are registered
47
+
48
+ univer.registerPlugin(UniverSheetsNumfmtUIPlugin);
49
+ ```
50
+
51
+ > [!NOTE]
52
+ > If you need to export the snapshot to support the export data format, you need to add [some additional code](/)
53
+
54
+ <!-- Links -->
55
+ [npm-version-shield]: https://img.shields.io/npm/v/@univerjs/sheets-numfmt-ui?style=flat-square
56
+ [npm-version-link]: https://npmjs.com/package/@univerjs/sheets-numfmt-ui
57
+ [npm-license-shield]: https://img.shields.io/npm/l/@univerjs/sheets-numfmt-ui?style=flat-square
58
+ [npm-downloads-shield]: https://img.shields.io/npm/dm/@univerjs/sheets-numfmt-ui?style=flat-square
@@ -0,0 +1,9 @@
1
+ "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key2,value)=>key2 in obj?__defProp(obj,key2,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key2]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key2,value)=>__defNormalProp(obj,typeof key2!="symbol"?key2+"":key2,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),sheetsNumfmt=require("@univerjs/sheets-numfmt"),sheetsUi=require("@univerjs/sheets-ui"),ui=require("@univerjs/ui"),engineRender=require("@univerjs/engine-render"),sheets=require("@univerjs/sheets"),rxjs=require("rxjs"),operators=require("rxjs/operators"),require$$0=require("react"),design=require("@univerjs/design"),engineNumfmt=require("@univerjs/engine-numfmt"),defaultPluginConfig={};var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/**
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 f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q");reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key2,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key2):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key2,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key2,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key2)=>decorator(target,key2,index),"__decorateParam$4");const UserHabitCurrencyContext=require$$0.createContext([]);var _a;let UserHabitController=(_a=class{constructor(_localStorageService){this._localStorageService=_localStorageService}_getKey(habit){return`userHabitController_${habit}`}async addHabit(habit,initValue){const key2=this._getKey(habit);return this._localStorageService.getItem(key2).then(item=>{item||this._localStorageService.setItem(key2,initValue)})}markHabit(habit,value){const key2=this._getKey(habit);this._localStorageService.getItem(key2).then(list=>{if(list){const index=list.findIndex(item=>item===value);index>-1&&list.splice(index,1),list.unshift(value),this._localStorageService.setItem(key2,list)}})}async getHabit(habit,sortList){const key2=this._getKey(habit),result=await this._localStorageService.getItem(key2);if(sortList&&result){const priority=result.map((item,index,arr)=>{const length=arr.length;return{value:item,priority:length-index}});return sortList.sort((a,b)=>{var _a6,_b;const ap=((_a6=priority.find(item=>item.value===a))==null?void 0:_a6.priority)||-1;return(((_b=priority.find(item=>item.value===b))==null?void 0:_b.priority)||-1)-ap})}return result||[]}deleteHabit(habit){this._localStorageService.removeItem(habit)}},__name(_a,"UserHabitController"),_a);UserHabitController=__decorateClass$4([__decorateParam$4(0,core.Inject(core.ILocalStorageService))],UserHabitController);const key$1="numfmtCurrency",useCurrencyOptions=__name(onOptionChange=>{const userHabitController=core.useDependency(UserHabitController),[options,optionsSet]=require$$0.useState(sheetsNumfmt.currencySymbols);return require$$0.useEffect(()=>{userHabitController.addHabit("numfmtCurrency",[]).then(()=>{userHabitController.getHabit(key$1,[...sheetsNumfmt.currencySymbols]).then(list=>{optionsSet(list),onOptionChange&&onOptionChange(list)})})},[]),{userHabitCurrency:options,mark:__name(v=>{userHabitController.markHabit(key$1,v)},"mark")}},"useCurrencyOptions"),useNextTick=__name(()=>{const effectList=require$$0.useRef([]),[value,dispatch]=require$$0.useState({});return require$$0.useEffect(()=>{effectList.current.forEach(fn=>{fn()}),effectList.current=[]},[value]),__name(fn=>{effectList.current.push(fn),dispatch({})},"nextTick")},"useNextTick"),isAccountingPanel=__name(pattern=>!!sheetsNumfmt.getCurrencyType(pattern)&&pattern.startsWith("_("),"isAccountingPanel"),AccountingPanel=__name(props=>{const{defaultPattern,action,onChange}=props,[decimal,decimalSet]=require$$0.useState(()=>sheetsNumfmt.getDecimalFromPattern(defaultPattern||"",2)),userHabitCurrency=require$$0.useContext(UserHabitCurrencyContext),[suffix,suffixSet]=require$$0.useState(()=>sheetsNumfmt.getCurrencyType(defaultPattern)||userHabitCurrency[0]),options=require$$0.useMemo(()=>userHabitCurrency.map(key2=>({label:key2,value:key2})),[]),t=core.useDependency(core.LocaleService).t;action.current=()=>sheetsNumfmt.setPatternDecimal(`_("${suffix}"* #,##0${decimal>0?".0":""}_)`,decimal);const onSelect=__name(v=>{suffixSet(v),onChange(sheetsNumfmt.setPatternDecimal(`_("${v}"* #,##0${decimal>0?".0":""}_)`,decimal))},"onSelect"),onDecimalChange=__name(v=>{const decimal2=v||0;decimalSet(decimal2),onChange(sheetsNumfmt.setPatternDecimal(`_("${suffix}"* #,##0${decimal2>0?".0":""}_)`,decimal2))},"onDecimalChange");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"m-t-16 options ",children:[jsxRuntimeExports.jsxs("div",{className:"option",children:[jsxRuntimeExports.jsx("div",{className:"label",children:t("sheet.numfmt.decimalLength")}),jsxRuntimeExports.jsx("div",{className:"m-t-8 w-120",children:jsxRuntimeExports.jsx(design.InputNumber,{value:decimal,max:20,min:0,onChange:onDecimalChange})})]}),jsxRuntimeExports.jsxs("div",{className:"option",children:[jsxRuntimeExports.jsx("div",{className:"label",children:t("sheet.numfmt.currencyType")}),jsxRuntimeExports.jsx("div",{className:"m-t-8 w-140",children:jsxRuntimeExports.jsx(design.Select,{onChange:onSelect,options,value:suffix})})]})]}),jsxRuntimeExports.jsx("div",{className:"describe m-t-14",children:t("sheet.numfmt.accountingDes")})]})},"AccountingPanel"),isCurrencyPanel=__name(pattern=>!!sheetsNumfmt.getCurrencyType(pattern)&&!pattern.startsWith("_("),"isCurrencyPanel"),CurrencyPanel=__name(props=>{const t=core.useDependency(core.LocaleService).t,userHabitCurrency=require$$0.useContext(UserHabitCurrencyContext),[suffix,suffixSet]=require$$0.useState(()=>sheetsNumfmt.getCurrencyType(props.defaultPattern)||userHabitCurrency[0]),[decimal,decimalSet]=require$$0.useState(()=>sheetsNumfmt.getDecimalFromPattern(props.defaultPattern||"",2)),[pattern,patternSet]=require$$0.useState(()=>{var _a6;const negativeOptions2=sheetsNumfmt.getCurrencyFormatOptions(suffix);return((_a6=negativeOptions2.find(item=>sheetsNumfmt.isPatternEqualWithoutDecimal(item.value,props.defaultPattern)))==null?void 0:_a6.value)||negativeOptions2[0].value}),negativeOptions=require$$0.useMemo(()=>sheetsNumfmt.getCurrencyFormatOptions(suffix),[suffix]),options=require$$0.useMemo(()=>userHabitCurrency.map(key2=>({label:key2,value:key2})),[userHabitCurrency]);props.action.current=()=>sheetsNumfmt.setPatternDecimal(pattern,decimal);const onSelect=__name(value=>{if(value===void 0)return;suffixSet(value);const pattern2=sheetsNumfmt.getCurrencyFormatOptions(value)[0].value;patternSet(pattern2),props.onChange(sheetsNumfmt.setPatternDecimal(pattern2,decimal))},"onSelect"),onChange=__name(value=>{value!==void 0&&(patternSet(value),props.onChange(sheetsNumfmt.setPatternDecimal(value,decimal)))},"onChange"),onDecimalChange=__name(v=>{decimalSet(v||0),props.onChange(sheetsNumfmt.setPatternDecimal(pattern,v||0))},"onDecimalChange");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"m-t-16 options ",children:[jsxRuntimeExports.jsxs("div",{className:"option",children:[jsxRuntimeExports.jsx("div",{className:"label",children:t("sheet.numfmt.decimalLength")}),jsxRuntimeExports.jsx("div",{className:"m-t-8 w-120",children:jsxRuntimeExports.jsx(design.InputNumber,{value:decimal,max:20,min:0,onChange:onDecimalChange})})]}),jsxRuntimeExports.jsxs("div",{className:"option",children:[jsxRuntimeExports.jsx("div",{className:"label",children:t("sheet.numfmt.currencyType")}),jsxRuntimeExports.jsx("div",{className:"m-t-8 w-140",children:jsxRuntimeExports.jsx(design.Select,{onChange:onSelect,options,value:suffix})})]})]}),jsxRuntimeExports.jsx("div",{className:"m-t-16 label",children:t("sheet.numfmt.negType")}),jsxRuntimeExports.jsx("div",{className:"m-t-8",children:jsxRuntimeExports.jsx(design.SelectList,{onChange,options:negativeOptions,value:pattern})}),jsxRuntimeExports.jsx("div",{className:"describe m-t-14",children:t("sheet.numfmt.currencyDes")})]})},"CurrencyPanel");var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a6){var key2=_a6[0],value=_a6[1];typeof value=="string"&&(attrs[key2]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a6,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a6=node.children)===null||_a6===void 0)&&_a6.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element={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"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element}))});CheckMarkSingle.displayName="CheckMarkSingle";const customFormatTitle="univer-custom-format-title",customFormatInput="univer-custom-format-input",customFormatHistoryList="univer-custom-format-history-list",customFormatHistoryListItem="univer-custom-format-history-list-item",customFormatHistoryListItemIconWrap="univer-custom-format-history-list-item-icon-wrap",customFormatDes="univer-custom-format-des",styles={customFormatTitle,customFormatInput,customFormatHistoryList,customFormatHistoryListItem,customFormatHistoryListItemIconWrap,customFormatDes},key="customFormat",historyPatternKey="numfmt_custom_pattern";function CustomFormat(props){const{defaultPattern,action,onChange}=props,userHabitController=core.useDependency(UserHabitController),localStorageService=core.useDependency(core.ILocalStorageService),localeService=core.useDependency(core.LocaleService),[pattern,patternSet]=require$$0.useState(defaultPattern);action.current=()=>(userHabitController.markHabit(key,pattern),localStorageService.getItem(historyPatternKey).then((list=[])=>{const _list=[...new Set([pattern,...list||[]])].splice(0,10).filter(e=>!!e);localStorageService.setItem(historyPatternKey,_list)}),pattern);const[options,optionsSet]=require$$0.useState([]);require$$0.useEffect(()=>{localStorageService.getItem(historyPatternKey).then(historyList=>{const list=[...sheetsNumfmt.CURRENCYFORMAT.map(item=>item.suffix("$")),...sheetsNumfmt.DATEFMTLISG.map(item=>item.suffix),...sheetsNumfmt.NUMBERFORMAT.map(item=>item.suffix)];list.push(...historyList||[]),userHabitController.addHabit(key,[]).finally(()=>{userHabitController.getHabit(key,list).then(list2=>{optionsSet([...new Set(list2)])})})})},[]);const handleClick=__name(p2=>{patternSet(p2),onChange(p2)},"handleClick"),handleBlur=__name(()=>{onChange(pattern)},"handleBlur");return jsxRuntimeExports.jsxs("div",{className:styles.customFormat,children:[jsxRuntimeExports.jsx("div",{className:styles.customFormatTitle,children:localeService.t("sheet.numfmt.customFormat")}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("sheet.numfmt.customFormat"),onBlur:handleBlur,value:pattern,onChange:patternSet,className:styles.customFormatInput}),jsxRuntimeExports.jsx("div",{className:styles.customFormatHistoryList,children:options.map(p2=>jsxRuntimeExports.jsxs("div",{onClick:__name(()=>handleClick(p2),"onClick"),className:styles.customFormatHistoryListItem,children:[jsxRuntimeExports.jsx("div",{className:styles.customFormatHistoryListItemIconWrap,children:pattern===p2&&jsxRuntimeExports.jsx(CheckMarkSingle,{})}),jsxRuntimeExports.jsx("div",{children:p2})]},p2))}),jsxRuntimeExports.jsx("div",{className:styles.customFormatDes,children:localeService.t("sheet.numfmt.customFormatDes")})]})}__name(CustomFormat,"CustomFormat");const isDatePanel=__name(pattern=>{const info=core.numfmt.getInfo(pattern);return sheetsNumfmt.getDateFormatOptions().map(item=>item.value).includes(pattern)||["date","datetime","time"].includes(info.type)},"isDatePanel"),DatePanel=__name(props=>{const options=require$$0.useMemo(sheetsNumfmt.getDateFormatOptions,[]),t=core.useDependency(core.LocaleService).t,[suffix,suffixSet]=require$$0.useState(()=>{if(props.defaultPattern){const item=options.find(item2=>item2.value===props.defaultPattern);if(item)return item.value}return options[0].value});props.action.current=()=>suffix;const onChange=__name(v=>{v!==void 0&&(suffixSet(v),props.onChange(v))},"onChange");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"m-t-16 label",children:t("sheet.numfmt.dateType")}),jsxRuntimeExports.jsx("div",{className:"m-t-8",children:jsxRuntimeExports.jsx(design.SelectList,{value:suffix,options,onChange})}),jsxRuntimeExports.jsx("div",{className:"describe m-t-14",children:t("sheet.numfmt.dateDes")})]})},"DatePanel"),isGeneralPanel=__name(pattern=>!pattern,"isGeneralPanel"),GeneralPanel=__name(props=>{const t=core.useDependency(core.LocaleService).t;return props.action.current=()=>"",jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("div",{className:"describe m-t-14",children:t("sheet.numfmt.generalDes")})})},"GeneralPanel"),isThousandthPercentilePanel=__name(pattern=>sheetsNumfmt.getNumberFormatOptions().some(item=>sheetsNumfmt.isPatternEqualWithoutDecimal(item.value,pattern)),"isThousandthPercentilePanel"),ThousandthPercentilePanel=__name(props=>{const localeService=core.useDependency(core.LocaleService),options=require$$0.useMemo(sheetsNumfmt.getNumberFormatOptions,[]),[decimal,decimalSet]=require$$0.useState(()=>sheetsNumfmt.getDecimalFromPattern(props.defaultPattern||"",0)),[suffix,suffixSet]=require$$0.useState(()=>{const item=options.find(item2=>sheetsNumfmt.isPatternEqualWithoutDecimal(item2.value,props.defaultPattern||""));return(item==null?void 0:item.value)||options[0].value}),pattern=require$$0.useMemo(()=>sheetsNumfmt.setPatternDecimal(suffix,Number(decimal||0)),[suffix,decimal]),isInputDisable=require$$0.useMemo(()=>!sheetsNumfmt.isPatternHasDecimal(suffix),[suffix]),handleDecimalChange=__name(decimal2=>{decimalSet(decimal2||0),props.onChange(sheetsNumfmt.setPatternDecimal(suffix,Number(decimal2||0)))},"handleDecimalChange"),handleClick=__name(v=>{v!==void 0&&(decimalSet(sheetsNumfmt.getDecimalFromPattern(v,0)),suffixSet(v),props.onChange(v))},"handleClick");return props.action.current=()=>pattern,jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"m-t-16 label",children:localeService.t("sheet.numfmt.decimalLength")}),jsxRuntimeExports.jsx("div",{className:"m-t-8",children:jsxRuntimeExports.jsx(design.InputNumber,{disabled:isInputDisable,value:decimal,max:20,min:0,onChange:handleDecimalChange})}),jsxRuntimeExports.jsxs("div",{className:"m-t-16 label",children:[" ",localeService.t("sheet.numfmt.negType")]}),jsxRuntimeExports.jsx("div",{className:"m-t-8",children:jsxRuntimeExports.jsx(design.SelectList,{onChange:handleClick,options,value:suffix})}),jsxRuntimeExports.jsx("div",{className:"describe m-t-14",children:localeService.t("sheet.numfmt.thousandthPercentileDes")})]})},"ThousandthPercentilePanel"),SheetNumfmtPanel=__name(props=>{const{defaultValue,defaultPattern,row,col}=props.value,localeService=core.useDependency(core.LocaleService),getCurrentPattern=require$$0.useRef(()=>""),t=localeService.t,nextTick=useNextTick(),typeOptions=require$$0.useMemo(()=>[{label:"sheet.numfmt.general",component:GeneralPanel},{label:"sheet.numfmt.accounting",component:AccountingPanel},{label:"sheet.numfmt.currency",component:CurrencyPanel},{label:"sheet.numfmt.date",component:DatePanel},{label:"sheet.numfmt.thousandthPercentile",component:ThousandthPercentilePanel},{label:"sheet.numfmt.customFormat",component:CustomFormat}].map(item=>({...item,label:t(item.label)})),[]),[type,typeSet]=require$$0.useState(findDefaultType),[key2,keySet]=require$$0.useState(()=>`${row}_${col}`),{mark,userHabitCurrency}=useCurrencyOptions(()=>keySet(`${row}_${col}_userCurrency'`)),BusinessComponent=require$$0.useMemo(()=>{var _a6;return(_a6=typeOptions.find(item=>item.label===type))==null?void 0:_a6.component},[type]);function findDefaultType(){return[isGeneralPanel,isAccountingPanel,isCurrencyPanel,isDatePanel,isThousandthPercentilePanel].reduce((pre,curFn,index)=>pre||(curFn(defaultPattern)?typeOptions[index].label:""),"")||typeOptions[0].label}__name(findDefaultType,"findDefaultType");const selectOptions=typeOptions.map(option=>({label:option.label,value:option.label})),handleSelect=__name(value=>{typeSet(value),nextTick(()=>props.onChange({type:"change",value:getCurrentPattern.current()||""}))},"handleSelect"),handleChange=__name(v=>{props.onChange({type:"change",value:v})},"handleChange"),handleConfirm=__name(()=>{const pattern=getCurrentPattern.current()||"",currency=sheetsNumfmt.getCurrencyType(pattern);currency&&mark(currency),props.onChange({type:"confirm",value:pattern})},"handleConfirm"),handleCancel=__name(()=>{props.onChange({type:"cancel",value:""})},"handleCancel"),subProps={onChange:handleChange,defaultValue,defaultPattern,action:getCurrentPattern};return require$$0.useEffect(()=>{typeSet(findDefaultType()),keySet(`${row}_${col}`)},[row,col]),jsxRuntimeExports.jsxs("div",{className:"numfmt-panel p-b-20",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"label m-t-14",children:t("sheet.numfmt.numfmtType")}),jsxRuntimeExports.jsx("div",{className:"m-t-8",children:jsxRuntimeExports.jsx(design.Select,{onChange:handleSelect,options:selectOptions,value:type,style:{width:"100%"}})}),jsxRuntimeExports.jsx("div",{children:BusinessComponent&&jsxRuntimeExports.jsx(UserHabitCurrencyContext.Provider,{value:userHabitCurrency,children:require$$0.createElement(BusinessComponent,{...subProps,key:key2})})})]}),jsxRuntimeExports.jsxs("div",{className:"btn-list m-t-14 m-b-20",children:[jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleCancel,className:"m-r-12",children:t("sheet.numfmt.cancel")}),jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:t("sheet.numfmt.confirm")})]})]})},"SheetNumfmtPanel");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key2,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key2):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key2,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key2,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key2)=>decorator(target,key2,index),"__decorateParam$3");const SHEET_NUMFMT_PANEL="SHEET_NUMFMT_PANEL";var _a2;let SheetNumfmtUIController=(_a2=class extends core.Disposable{constructor(_sheetInterceptorService,_themeService,_univerInstanceService,_commandService,_selectionManagerService,_renderManagerService,_numfmtService,_componentManager,_sidebarService,_localeService){super();__publicField(this,"_previewPattern","");__publicField(this,"_sidebarDisposable",null);this._sheetInterceptorService=_sheetInterceptorService,this._themeService=_themeService,this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._renderManagerService=_renderManagerService,this._numfmtService=_numfmtService,this._componentManager=_componentManager,this._sidebarService=_sidebarService,this._localeService=_localeService,this._initRealTimeRenderingInterceptor(),this._initPanel(),this._initCommands(),this._initCloseListener(),this._commandExecutedListener()}openPanel(){var _a6;const sidebarService=this._sidebarService,selectionManagerService=this._selectionManagerService,commandService=this._commandService,univerInstanceService=this._univerInstanceService,numfmtService=this._numfmtService,localeService=this._localeService,range=(((_a6=selectionManagerService.getCurrentSelections())==null?void 0:_a6.map(s=>s.range))||[])[0];if(!range)return!1;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),sheet=workbook.getActiveSheet();if(!sheet)return!1;const cellValue=sheet.getCellRaw(range.startRow,range.startColumn),numfmtValue=numfmtService.getValue(workbook.getUnitId(),sheet.getSheetId(),range.startRow,range.startColumn);let pattern="";numfmtValue&&(pattern=numfmtValue.pattern);const defaultValue=(cellValue==null?void 0:cellValue.t)===core.CellValueType.NUMBER?cellValue.v:12345678,props={onChange:__name(config=>{var _a7;if(config.type==="change")this._previewPattern=config.value,this._forceUpdate();else if(config.type==="confirm"){const selections2=((_a7=selectionManagerService.getCurrentSelections())==null?void 0:_a7.map(s=>s.range))||[],params={values:[]},patternType=sheetsNumfmt.getPatternType(config.value);selections2.forEach(rangeInfo=>{core.Range.foreach(rangeInfo,(row,col)=>{params.values.push({row,col,pattern:config.value,type:patternType})})}),commandService.executeCommand(sheetsNumfmt.SetNumfmtCommand.id,params),sidebarService.close()}else config.type==="cancel"&&sidebarService.close()},"onChange"),value:{defaultPattern:pattern,defaultValue,row:range.startRow,col:range.startColumn}};return this._sidebarDisposable=sidebarService.open({header:{title:localeService.t("sheet.numfmt.title")},children:{label:SHEET_NUMFMT_PANEL,...props},onClose:__name(()=>{this._forceUpdate(),commandService.executeCommand(sheetsNumfmt.CloseNumfmtPanelOperator.id)},"onClose")}),!0}_forceUpdate(unitId){var _a6;const renderUnit=this._renderManagerService.getRenderById(unitId!=null?unitId:this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId());renderUnit==null||renderUnit.with(sheetsUi.SheetSkeletonManagerService).reCalculate(),(_a6=renderUnit==null?void 0:renderUnit.mainComponent)==null||_a6.makeDirty()}_initCommands(){[sheetsNumfmt.OpenNumfmtPanelOperator,sheetsNumfmt.CloseNumfmtPanelOperator].forEach(config=>{this.disposeWithMe(this._commandService.registerCommand(config))})}_initPanel(){this._componentManager.register(SHEET_NUMFMT_PANEL,SheetNumfmtPanel)}_initRealTimeRenderingInterceptor(){const isPanelOpenObserver=new rxjs.Observable(subscriber=>{this._commandService.onCommandExecuted(commandInfo=>{commandInfo.id===sheetsNumfmt.OpenNumfmtPanelOperator.id&&subscriber.next(!0),commandInfo.id===sheetsNumfmt.CloseNumfmtPanelOperator.id&&subscriber.next(!1)})}),combineOpenAndSelection$=rxjs.combineLatest([isPanelOpenObserver,this._selectionManagerService.selectionMoveEnd$.pipe(operators.map(selectionInfos=>selectionInfos?selectionInfos.map(selectionInfo=>selectionInfo.range):[]))]);this.disposeWithMe(core.toDisposable(combineOpenAndSelection$.pipe(operators.switchMap(([isOpen,selectionRanges])=>new rxjs.Observable(subscribe=>{const disposableCollection=new core.DisposableCollection;return isOpen&&selectionRanges.length&&subscribe.next({selectionRanges,disposableCollection}),()=>{disposableCollection.dispose()}})),operators.tap(()=>{this._previewPattern=null})).subscribe(({disposableCollection,selectionRanges})=>{var _a6,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);this.openPanel(),disposableCollection.add(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:99,effect:core.InterceptorEffectEnum.Value|core.InterceptorEffectEnum.Style,handler:__name((cell,location,next)=>{const{row,col}=location,defaultValue=next(cell)||{};if(selectionRanges.find(range=>range.startColumn<=col&&range.endColumn>=col&&range.startRow<=row&&range.endRow>=row)){const rawValue=location.worksheet.getCellRaw(row,col),value=rawValue==null?void 0:rawValue.v,type=rawValue==null?void 0:rawValue.t;if(value==null||type!==core.CellValueType.NUMBER||this._previewPattern===null)return defaultValue;const info=sheetsNumfmt.getPatternPreviewIgnoreGeneral(this._previewPattern,value,this._localeService.getCurrentLocale());if(info.color){const color=this._themeService.getCurrentTheme()[`${info.color}500`];return{...defaultValue,v:info.result,t:core.CellValueType.STRING,s:{cl:{rgb:color}}}}return{...defaultValue,v:info.result,t:core.CellValueType.STRING}}return defaultValue},"handler")})),(_b=(_a6=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a6.mainComponent)==null||_b.makeDirty()})))}_commandExecutedListener(){const commandList=[sheets.RemoveNumfmtMutation.id,sheets.SetNumfmtMutation.id];this.disposeWithMe(new rxjs.Observable(subscribe=>{const disposable=this._commandService.onCommandExecuted(command=>{if(commandList.includes(command.id)){const params=command.params;subscribe.next(params.unitId)}});return()=>disposable.dispose()}).pipe(operators.debounceTime(16)).subscribe(unitId=>this._forceUpdate(unitId)))}_initCloseListener(){this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(unit=>{var _a6;unit||((_a6=this._sidebarDisposable)==null||_a6.dispose(),this._sidebarDisposable=null)})}},__name(_a2,"SheetNumfmtUIController"),_a2);SheetNumfmtUIController=__decorateClass$3([__decorateParam$3(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$3(1,core.Inject(core.ThemeService)),__decorateParam$3(2,core.IUniverInstanceService),__decorateParam$3(3,core.ICommandService),__decorateParam$3(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$3(5,engineRender.IRenderManagerService),__decorateParam$3(6,sheets.INumfmtService),__decorateParam$3(7,core.Inject(ui.ComponentManager)),__decorateParam$3(8,ui.ISidebarService),__decorateParam$3(9,core.Inject(core.LocaleService))],SheetNumfmtUIController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key2,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key2):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key2,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key2,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key2)=>decorator(target,key2,index),"__decorateParam$2");const createCollectEffectMutation=__name(()=>{let list=[];return{add:__name((unitId,subUnitId,row,col,value)=>list.push({unitId,subUnitId,row,col,value}),"add"),getEffects:__name(()=>list,"getEffects"),clean:__name(()=>{list=[]},"clean")}},"createCollectEffectMutation");var _a3;let NumfmtEditorController=(_a3=class extends core.Disposable{constructor(_sheetInterceptorService,_numfmtService,_univerInstanceService,_injector,_editorBridgeService){super();__publicField(this,"_collectEffectMutation",createCollectEffectMutation());this._sheetInterceptorService=_sheetInterceptorService,this._numfmtService=_numfmtService,this._univerInstanceService=_univerInstanceService,this._injector=_injector,this._editorBridgeService=_editorBridgeService,this._initInterceptorEditorStart(),this._initInterceptorEditorEnd(),this._initInterceptorCommands()}_initInterceptorEditorStart(){this._editorBridgeService&&this.disposeWithMe(core.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:__name((value,context,next)=>{const row=context.row,col=context.col,numfmtCell=this._numfmtService.getValue(context.unitId,context.subUnitId,row,col);if(numfmtCell)switch(sheetsNumfmt.getPatternType(numfmtCell.pattern)){case"scientific":case"currency":case"grouped":case"number":return context.worksheet.getCellRaw(row,col);case"percent":case"date":case"time":case"datetime":default:return next&&next(value)}return next(value)},"handler")})))}_initInterceptorEditorEnd(){this._editorBridgeService&&this.disposeWithMe(core.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT,{handler:__name((value,context,next)=>{var _a6;this._collectEffectMutation.clean();const currentNumfmtValue=this._numfmtService.getValue(context.unitId,context.subUnitId,context.row,context.col),currentNumfmtType=(_a6=currentNumfmtValue&&sheetsNumfmt.getPatternType(currentNumfmtValue.pattern))!=null?_a6:"",clean=__name(()=>{currentNumfmtValue&&this._collectEffectMutation.add(context.unitId,context.subUnitId,context.row,context.col,null)},"clean");if(!(value!=null&&value.v))return next(value);const content=String(value.v),numfmtInfo=core.numfmt.parseDate(content)||core.numfmt.parseTime(content)||core.numfmt.parseNumber(content);if(numfmtInfo){if(numfmtInfo.z){const v=Number(numfmtInfo.v);return this._collectEffectMutation.add(context.unitId,context.subUnitId,context.row,context.col,{pattern:numfmtInfo.z}),{...value,v,t:core.CellValueType.NUMBER}}}else(["date","time","datetime","percent"].includes(currentNumfmtType)||!isNumeric(content))&&clean();return next(value)},"handler")})))}_initInterceptorCommands(){const self=this;this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations(command){var _a6;switch(command.id){case sheets.SetRangeValuesCommand.id:{const workbook=self._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),subUnitId=(_a6=workbook.getActiveSheet())==null?void 0:_a6.getSheetId();if(!subUnitId)return{redos:[],undos:[]};const list=self._collectEffectMutation.getEffects();if(self._collectEffectMutation.clean(),!list.length)return{redos:[],undos:[]};const cells=list.filter(item=>{var _a7;return!!((_a7=item.value)!=null&&_a7.pattern)}).map(item=>({row:item.row,col:item.col,pattern:item.value.pattern})),removeCells=list.filter(item=>{var _a7;return!((_a7=item.value)!=null&&_a7.pattern)}).map(item=>({startRow:item.row,endColumn:item.col,startColumn:item.col,endRow:item.row})),redos=[],undos=[];if(cells.length){const redo={id:sheets.SetNumfmtMutation.id,params:sheets.transformCellsToRange(unitId,subUnitId,cells)};redos.push(redo),undos.push(...sheets.factorySetNumfmtUndoMutation(self._injector,redo.params))}if(removeCells.length){const redo={id:sheets.RemoveNumfmtMutation.id,params:{unitId,subUnitId,ranges:removeCells}};redos.push(redo),undos.push(...sheets.factoryRemoveNumfmtUndoMutation(self._injector,redo.params))}return{redos,undos:undos.reverse()}}}return{redos:[],undos:[]}}}))}},__name(_a3,"NumfmtEditorController"),_a3);NumfmtEditorController=__decorateClass$2([__decorateParam$2(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$2(1,core.Inject(sheets.INumfmtService)),__decorateParam$2(2,core.Inject(core.IUniverInstanceService)),__decorateParam$2(3,core.Inject(core.Injector)),__decorateParam$2(4,core.Optional(sheetsUi.IEditorBridgeService))],NumfmtEditorController);function isNumeric(str){return/^-?\d+(\.\d+)?$/.test(str)}__name(isNumeric,"isNumeric");const MENU_OPTIONS=[{label:"sheet.numfmt.general",pattern:null},{label:"sheet.numfmt.text",pattern:engineNumfmt.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:""}],CurrencyMenuItem=__name(accessor=>({icon:new rxjs.Observable(subscribe=>{const menuCurrencyService=accessor.get(sheetsNumfmt.MenuCurrencyService);function getIconKey(symbol2){return{[sheetsNumfmt.countryCurrencyMap.US]:"DollarSingle",[sheetsNumfmt.countryCurrencyMap.RU]:"RoubleSingle",[sheetsNumfmt.countryCurrencyMap.CN]:"RmbSingle",[sheetsNumfmt.countryCurrencyMap.AT]:"EuroSingle"}[symbol2]||"DollarSingle"}__name(getIconKey,"getIconKey");const symbol=sheetsNumfmt.countryCurrencyMap[menuCurrencyService.getCurrencySymbol()]||"$";return subscribe.next(getIconKey(symbol)),menuCurrencyService.currencySymbol$.subscribe(code=>{const symbol2=sheetsNumfmt.countryCurrencyMap[code]||"$";subscribe.next(getIconKey(symbol2))})}),id:sheetsNumfmt.SetCurrencyCommand.id,title:"sheet.numfmt.currency",tooltip:"sheet.numfmt.currency",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}),"CurrencyMenuItem"),AddDecimalMenuItem=__name(accessor=>({icon:"AddDigitsSingle",id:sheetsNumfmt.AddDecimalCommand.id,title:"sheet.numfmt.addDecimal",tooltip:"sheet.numfmt.addDecimal",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}),"AddDecimalMenuItem"),SubtractDecimalMenuItem=__name(accessor=>({icon:"ReduceDigitsSingle",id:sheetsNumfmt.SubtractDecimalCommand.id,title:"sheet.numfmt.subtractDecimal",tooltip:"sheet.numfmt.subtractDecimal",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}),"SubtractDecimalMenuItem"),PercentMenuItem=__name(accessor=>({icon:"PercentSingle",id:sheetsNumfmt.SetPercentCommand.id,title:"sheet.numfmt.percent",tooltip:"sheet.numfmt.percent",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}),"PercentMenuItem"),FactoryOtherMenuItem=__name(accessor=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),value$=sheetsUi.deriveStateFromActiveSheet$(univerInstanceService,"",({workbook,worksheet})=>new rxjs.Observable(subscribe=>rxjs.merge(selectionManagerService.selectionMoveEnd$,new rxjs.Observable(commandSubscribe=>{const commandList=[sheets.RemoveNumfmtMutation.id,sheets.SetNumfmtMutation.id],disposable=commandService.onCommandExecuted(commandInfo=>{commandList.includes(commandInfo.id)&&commandSubscribe.next(null)});return()=>disposable.dispose()})).subscribe(()=>{var _a6,_b;const selections=selectionManagerService.getCurrentSelections();if(selections&&selections[0]){const range=selections[0].range,row=range.startRow,col=range.startColumn,numfmtValue=(_b=workbook.getStyles().get((_a6=worksheet.getCell(row,col))==null?void 0:_a6.s))==null?void 0:_b.n,pattern=numfmtValue==null?void 0:numfmtValue.pattern;let value=localeService.t("sheet.numfmt.general");if(pattern){const item=MENU_OPTIONS.filter(item2=>typeof item2=="object"&&item2.pattern).find(item2=>sheetsNumfmt.isPatternEqualWithoutDecimal(pattern,item2.pattern));item&&typeof item=="object"&&item.pattern?value=localeService.t(item.label):value=localeService.t("sheet.numfmt.moreFmt")}subscribe.next(value)}})));return{label:MORE_NUMFMT_TYPE_KEY,id:sheetsNumfmt.OpenNumfmtPanelOperator.id,tooltip:"sheet.numfmt.title",type:ui.MenuItemType.SELECTOR,selections:[{label:{name:OPTIONS_KEY,hoverable:!1}}],value$,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}},"FactoryOtherMenuItem"),MORE_NUMFMT_TYPE_KEY="sheet.numfmt.moreNumfmtType",OPTIONS_KEY="sheet.numfmt.moreNumfmtType.options",MoreNumfmtType=__name(props=>{var _a6;const localeService=core.useDependency(core.LocaleService),value=(_a6=props.value)!=null?_a6:localeService.t("sheet.numfmt.general");return jsxRuntimeExports.jsx("span",{className:"more-numfmt-type",children:value})},"MoreNumfmtType"),Options=__name(()=>{const commandService=core.useDependency(core.ICommandService),localeService=core.useDependency(core.LocaleService),layoutService=core.useDependency(ui.ILayoutService);core.useInjector();const selectionManagerService=core.useDependency(sheets.SheetsSelectionsService),setNumfmt=__name(pattern=>{const selection=selectionManagerService.getCurrentLastSelection();if(!selection)return;const range=selection.range,values=[];core.Range.foreach(range,(row,col)=>{pattern?values.push({row,col,pattern,type:sheetsNumfmt.getPatternType(pattern)}):values.push({row,col})}),commandService.executeCommand(sheetsNumfmt.SetNumfmtCommand.id,{values}),layoutService.focus()},"setNumfmt"),handleOnclick=__name(index=>{if(index===0)setNumfmt(null);else if(index===MENU_OPTIONS.length-1)commandService.executeCommand(sheetsNumfmt.OpenNumfmtPanelOperator.id);else{const item=MENU_OPTIONS[index];item.pattern&&setNumfmt(item.pattern)}},"handleOnclick"),defaultValue=1220;return jsxRuntimeExports.jsx("div",{className:"more-numfmt-type-options",children:MENU_OPTIONS.map((item,index)=>item==="|"?jsxRuntimeExports.jsx("div",{className:"line m-t-4",onClick:__name(e=>e.stopPropagation(),"onClick")},index):jsxRuntimeExports.jsxs("div",{className:"option-item m-t-4",onClick:__name(()=>{handleOnclick(index)},"onClick"),children:[jsxRuntimeExports.jsx("div",{children:localeService.t(item.label)}),jsxRuntimeExports.jsx("div",{className:"m-l-26",children:item.pattern?sheetsNumfmt.getPatternPreview(item.pattern||"",defaultValue,localeService.getCurrentLocale()).result:""})]},index))})},"Options"),menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[sheetsNumfmt.SetCurrencyCommand.id]:{order:4,menuItemFactory:CurrencyMenuItem},[sheetsNumfmt.AddDecimalCommand.id]:{order:5,menuItemFactory:AddDecimalMenuItem},[sheetsNumfmt.SubtractDecimalCommand.id]:{order:6,menuItemFactory:SubtractDecimalMenuItem},[sheetsNumfmt.SetPercentCommand.id]:{order:7,menuItemFactory:PercentMenuItem},[sheetsNumfmt.OpenNumfmtPanelOperator.id]:{order:8,menuItemFactory:FactoryOtherMenuItem}}};var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key2,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key2):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key2,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key2,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key2)=>decorator(target,key2,index),"__decorateParam$1"),_a4;let NumfmtMenuController=(_a4=class extends core.Disposable{constructor(_componentManager,_menuManagerService){super(),this._componentManager=_componentManager,this._menuManagerService=_menuManagerService,this._initMenu()}_initMenu(){this._menuManagerService.mergeMenu(menuSchema),this.disposeWithMe(this._componentManager.register(MORE_NUMFMT_TYPE_KEY,MoreNumfmtType)),this.disposeWithMe(this._componentManager.register(OPTIONS_KEY,Options))}},__name(_a4,"NumfmtMenuController"),_a4);NumfmtMenuController=__decorateClass$1([__decorateParam$1(0,core.Inject(ui.ComponentManager)),__decorateParam$1(1,ui.IMenuManagerService)],NumfmtMenuController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key2,value)=>key2 in obj?__defProp2(obj,key2,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key2]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key2,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key2):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key2,result):decorator(result))||result);return kind&&result&&__defProp2(target,key2,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key2)=>decorator(target,key2,index),"__decorateParam"),__publicField2=__name((obj,key2,value)=>__defNormalProp2(obj,typeof key2!="symbol"?key2+"":key2,value),"__publicField");const SHEET_NUMFMT_UI_PLUGIN="SHEET_NUMFMT_UI_PLUGIN";var _a5;exports.UniverSheetsNumfmtUIPlugin=(_a5=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(ui.PLUGIN_CONFIG_KEY,rest)}onStarting(){core.registerDependencies(this._injector,[[SheetNumfmtUIController],[NumfmtEditorController],[UserHabitController],[NumfmtMenuController]])}onRendered(){core.touchDependencies(this._injector,[[SheetNumfmtUIController],[NumfmtEditorController],[NumfmtMenuController]])}},__name(_a5,"UniverSheetsNumfmtUIPlugin"),_a5);__publicField2(exports.UniverSheetsNumfmtUIPlugin,"pluginName",SHEET_NUMFMT_UI_PLUGIN);__publicField2(exports.UniverSheetsNumfmtUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsNumfmtUIPlugin=__decorateClass([core.DependentOn(sheetsUi.UniverSheetsUIPlugin,sheetsNumfmt.UniverSheetsNumfmtPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports.UniverSheetsNumfmtUIPlugin);