@univerjs/sheets-numfmt 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -20,58 +20,37 @@ let _univerjs_engine_formula = require("@univerjs/engine-formula");
20
20
  * See the License for the specific language governing permissions and
21
21
  * limitations under the License.
22
22
  */
23
- const currencySymbols = [
24
- "$",
25
- "£",
26
- "¥",
27
- "¤",
28
- "֏",
29
- "؋",
30
- "৳",
31
- "฿",
32
- "៛",
33
- "₡",
34
- "₦",
35
- "₩",
36
- "₪",
37
- "₫",
38
- "€",
39
- "₭",
40
- "₮",
41
- "₱",
42
- "₲",
43
- "₴",
44
- "₸",
45
- "₹",
46
- "₺",
47
- "₼",
48
- "₽",
49
- "₾",
50
- "₿",
51
- "﷼"
52
- ];
53
23
  const localeCurrencySymbolMap = new Map([
54
24
  [_univerjs_core.LocaleType.EN_US, "$"],
55
25
  [_univerjs_core.LocaleType.RU_RU, "₽"],
56
26
  [_univerjs_core.LocaleType.VI_VN, "₫"],
57
27
  [_univerjs_core.LocaleType.ZH_CN, "¥"],
58
28
  [_univerjs_core.LocaleType.ZH_TW, "NT$"],
29
+ [_univerjs_core.LocaleType.ZH_HK, "HK$"],
59
30
  [_univerjs_core.LocaleType.FR_FR, "€"],
60
31
  [_univerjs_core.LocaleType.FA_IR, "﷼"],
61
32
  [_univerjs_core.LocaleType.KO_KR, "₩"],
62
33
  [_univerjs_core.LocaleType.ES_ES, "€"],
63
34
  [_univerjs_core.LocaleType.CA_ES, "€"],
64
- [_univerjs_core.LocaleType.SK_SK, "€"]
35
+ [_univerjs_core.LocaleType.SK_SK, "€"],
36
+ [_univerjs_core.LocaleType.JA_JP, "¥"],
37
+ [_univerjs_core.LocaleType.PT_BR, "R$"],
38
+ [_univerjs_core.LocaleType.DE_DE, "€"],
39
+ [_univerjs_core.LocaleType.IT_IT, "€"],
40
+ [_univerjs_core.LocaleType.ID_ID, "Rp"],
41
+ [_univerjs_core.LocaleType.PL_PL, "zł"],
42
+ [_univerjs_core.LocaleType.AR_SA, "﷼"]
65
43
  ]);
66
44
  /**
67
45
  * Get the currency symbol icon based on the locale.
68
- * TODO@wpxp123456: supplement more currency symbols icons. missing icons: ₩, ₫, NT$, ﷼.
69
46
  */
70
47
  function getCurrencySymbolIconByLocale(locale) {
71
48
  switch (locale) {
72
49
  case _univerjs_core.LocaleType.CA_ES:
50
+ case _univerjs_core.LocaleType.DE_DE:
73
51
  case _univerjs_core.LocaleType.ES_ES:
74
52
  case _univerjs_core.LocaleType.FR_FR:
53
+ case _univerjs_core.LocaleType.IT_IT:
75
54
  case _univerjs_core.LocaleType.SK_SK: return {
76
55
  icon: "EuroIcon",
77
56
  symbol: localeCurrencySymbolMap.get(locale) || "€",
@@ -82,16 +61,26 @@ function getCurrencySymbolIconByLocale(locale) {
82
61
  symbol: localeCurrencySymbolMap.get(locale) || "₽",
83
62
  locale
84
63
  };
64
+ case _univerjs_core.LocaleType.JA_JP:
85
65
  case _univerjs_core.LocaleType.ZH_CN: return {
86
66
  icon: "RmbIcon",
87
67
  symbol: localeCurrencySymbolMap.get(locale) || "¥",
88
68
  locale
89
69
  };
70
+ case _univerjs_core.LocaleType.AR_SA:
90
71
  case _univerjs_core.LocaleType.EN_US:
72
+ case _univerjs_core.LocaleType.FA_IR:
73
+ case _univerjs_core.LocaleType.ID_ID:
74
+ case _univerjs_core.LocaleType.KO_KR:
75
+ case _univerjs_core.LocaleType.PL_PL:
76
+ case _univerjs_core.LocaleType.PT_BR:
77
+ case _univerjs_core.LocaleType.VI_VN:
78
+ case _univerjs_core.LocaleType.ZH_HK:
79
+ case _univerjs_core.LocaleType.ZH_TW:
91
80
  default: return {
92
81
  icon: "DollarIcon",
93
- symbol: "$",
94
- locale: _univerjs_core.LocaleType.EN_US
82
+ symbol: localeCurrencySymbolMap.get(locale) || "$",
83
+ locale
95
84
  };
96
85
  }
97
86
  }
@@ -597,7 +586,7 @@ const getPatternPreviewIgnoreGeneral = (pattern, value, locale) => {
597
586
  };
598
587
 
599
588
  //#endregion
600
- //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
589
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/typeof.js
601
590
  function _typeof(o) {
602
591
  "@babel/helpers - typeof";
603
592
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -608,7 +597,7 @@ function _typeof(o) {
608
597
  }
609
598
 
610
599
  //#endregion
611
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
600
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPrimitive.js
612
601
  function toPrimitive(t, r) {
613
602
  if ("object" != _typeof(t) || !t) return t;
614
603
  var e = t[Symbol.toPrimitive];
@@ -621,14 +610,14 @@ function toPrimitive(t, r) {
621
610
  }
622
611
 
623
612
  //#endregion
624
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
613
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPropertyKey.js
625
614
  function toPropertyKey(t) {
626
615
  var i = toPrimitive(t, "string");
627
616
  return "symbol" == _typeof(i) ? i : i + "";
628
617
  }
629
618
 
630
619
  //#endregion
631
- //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
620
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/defineProperty.js
632
621
  function _defineProperty(e, r, t) {
633
622
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
634
623
  value: t,
@@ -639,7 +628,7 @@ function _defineProperty(e, r, t) {
639
628
  }
640
629
 
641
630
  //#endregion
642
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
631
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorateParam.js
643
632
  function __decorateParam(paramIndex, decorator) {
644
633
  return function(target, key) {
645
634
  decorator(target, key, paramIndex);
@@ -647,7 +636,7 @@ function __decorateParam(paramIndex, decorator) {
647
636
  }
648
637
 
649
638
  //#endregion
650
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
639
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorate.js
651
640
  function __decorate(decorators, target, key, desc) {
652
641
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
653
642
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -685,9 +674,17 @@ let SheetsNumfmtCellContentController = class SheetsNumfmtCellContentController
685
674
  case _univerjs_core.LocaleType.ZH_CN: return "zh-CN";
686
675
  case _univerjs_core.LocaleType.KO_KR: return "ko";
687
676
  case _univerjs_core.LocaleType.ZH_TW: return "zh-TW";
677
+ case _univerjs_core.LocaleType.ZH_HK: return "zh-HK";
688
678
  case _univerjs_core.LocaleType.ES_ES:
689
679
  case _univerjs_core.LocaleType.CA_ES: return "es";
690
680
  case _univerjs_core.LocaleType.SK_SK: return "sk";
681
+ case _univerjs_core.LocaleType.JA_JP: return "ja";
682
+ case _univerjs_core.LocaleType.PT_BR: return "pt";
683
+ case _univerjs_core.LocaleType.DE_DE: return "de";
684
+ case _univerjs_core.LocaleType.IT_IT: return "it";
685
+ case _univerjs_core.LocaleType.ID_ID: return "id";
686
+ case _univerjs_core.LocaleType.PL_PL: return "pl";
687
+ case _univerjs_core.LocaleType.AR_SA: return "ar";
691
688
  case _univerjs_core.LocaleType.EN_US:
692
689
  case _univerjs_core.LocaleType.FA_IR:
693
690
  default: return "en";
@@ -795,7 +792,7 @@ SheetsNumfmtCellContentController = __decorate([
795
792
  //#endregion
796
793
  //#region package.json
797
794
  var name = "@univerjs/sheets-numfmt";
798
- var version = "0.24.0";
795
+ var version = "0.25.0";
799
796
 
800
797
  //#endregion
801
798
  //#region src/base/const/plugin-name.ts
@@ -871,7 +868,7 @@ UniverSheetsNumfmtPlugin = __decorate([
871
868
  * limitations under the License.
872
869
  */
873
870
  const getCurrencyType = (pattern) => {
874
- return currencySymbols.find((code) => pattern.includes(code));
871
+ return _univerjs_core.currencySymbols.find((code) => pattern.includes(code));
875
872
  };
876
873
 
877
874
  //#endregion
@@ -891,7 +888,7 @@ const getCurrencyType = (pattern) => {
891
888
  * See the License for the specific language governing permissions and
892
889
  * limitations under the License.
893
890
  */
894
- const getCurrencyOptions = () => currencySymbols.map((item) => ({
891
+ const getCurrencyOptions = () => _univerjs_core.currencySymbols.map((item) => ({
895
892
  label: item,
896
893
  value: item
897
894
  }));
@@ -932,7 +929,6 @@ Object.defineProperty(exports, 'UniverSheetsNumfmtPlugin', {
932
929
  return UniverSheetsNumfmtPlugin;
933
930
  }
934
931
  });
935
- exports.currencySymbols = currencySymbols;
936
932
  exports.getCurrencyFormat = getCurrencyFormat;
937
933
  exports.getCurrencyFormatOptions = getCurrencyFormatOptions;
938
934
  exports.getCurrencyOptions = getCurrencyOptions;
package/lib/es/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CellValueType, CommandType, DEFAULT_NUMBER_FORMAT, DependentOn, Disposable, ICommandService, IConfigService, IUndoRedoService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService, LocaleType, ObjectMatrix, Plugin, Range, ThemeService, UniverInstanceType, isDefaultFormat, isTextFormat, merge, numfmt, registerDependencies, sequenceExecute, touchDependencies } from "@univerjs/core";
1
+ import { CellValueType, CommandType, DEFAULT_NUMBER_FORMAT, DependentOn, Disposable, ICommandService, IConfigService, IUndoRedoService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService, LocaleType, ObjectMatrix, Plugin, Range, ThemeService, UniverInstanceType, currencySymbols, isDefaultFormat, isTextFormat, merge, numfmt, registerDependencies, sequenceExecute, touchDependencies } from "@univerjs/core";
2
2
  import { INTERCEPTOR_POINT, INumfmtService, InterceptCellContentPriority, RemoveNumfmtMutation, SetNumfmtMutation, SetRangeValuesMutation, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, checkCellValueType, factoryRemoveNumfmtUndoMutation, factorySetNumfmtUndoMutation, getSheetCommandTarget, rangeMerge, transformCellsToRange } from "@univerjs/sheets";
3
3
  import { BehaviorSubject, merge as merge$1, of, skip, switchMap } from "rxjs";
4
4
  import { stripErrorMargin } from "@univerjs/engine-formula";
@@ -19,58 +19,37 @@ import { stripErrorMargin } from "@univerjs/engine-formula";
19
19
  * See the License for the specific language governing permissions and
20
20
  * limitations under the License.
21
21
  */
22
- const currencySymbols = [
23
- "$",
24
- "£",
25
- "¥",
26
- "¤",
27
- "֏",
28
- "؋",
29
- "৳",
30
- "฿",
31
- "៛",
32
- "₡",
33
- "₦",
34
- "₩",
35
- "₪",
36
- "₫",
37
- "€",
38
- "₭",
39
- "₮",
40
- "₱",
41
- "₲",
42
- "₴",
43
- "₸",
44
- "₹",
45
- "₺",
46
- "₼",
47
- "₽",
48
- "₾",
49
- "₿",
50
- "﷼"
51
- ];
52
22
  const localeCurrencySymbolMap = new Map([
53
23
  [LocaleType.EN_US, "$"],
54
24
  [LocaleType.RU_RU, "₽"],
55
25
  [LocaleType.VI_VN, "₫"],
56
26
  [LocaleType.ZH_CN, "¥"],
57
27
  [LocaleType.ZH_TW, "NT$"],
28
+ [LocaleType.ZH_HK, "HK$"],
58
29
  [LocaleType.FR_FR, "€"],
59
30
  [LocaleType.FA_IR, "﷼"],
60
31
  [LocaleType.KO_KR, "₩"],
61
32
  [LocaleType.ES_ES, "€"],
62
33
  [LocaleType.CA_ES, "€"],
63
- [LocaleType.SK_SK, "€"]
34
+ [LocaleType.SK_SK, "€"],
35
+ [LocaleType.JA_JP, "¥"],
36
+ [LocaleType.PT_BR, "R$"],
37
+ [LocaleType.DE_DE, "€"],
38
+ [LocaleType.IT_IT, "€"],
39
+ [LocaleType.ID_ID, "Rp"],
40
+ [LocaleType.PL_PL, "zł"],
41
+ [LocaleType.AR_SA, "﷼"]
64
42
  ]);
65
43
  /**
66
44
  * Get the currency symbol icon based on the locale.
67
- * TODO@wpxp123456: supplement more currency symbols icons. missing icons: ₩, ₫, NT$, ﷼.
68
45
  */
69
46
  function getCurrencySymbolIconByLocale(locale) {
70
47
  switch (locale) {
71
48
  case LocaleType.CA_ES:
49
+ case LocaleType.DE_DE:
72
50
  case LocaleType.ES_ES:
73
51
  case LocaleType.FR_FR:
52
+ case LocaleType.IT_IT:
74
53
  case LocaleType.SK_SK: return {
75
54
  icon: "EuroIcon",
76
55
  symbol: localeCurrencySymbolMap.get(locale) || "€",
@@ -81,16 +60,26 @@ function getCurrencySymbolIconByLocale(locale) {
81
60
  symbol: localeCurrencySymbolMap.get(locale) || "₽",
82
61
  locale
83
62
  };
63
+ case LocaleType.JA_JP:
84
64
  case LocaleType.ZH_CN: return {
85
65
  icon: "RmbIcon",
86
66
  symbol: localeCurrencySymbolMap.get(locale) || "¥",
87
67
  locale
88
68
  };
69
+ case LocaleType.AR_SA:
89
70
  case LocaleType.EN_US:
71
+ case LocaleType.FA_IR:
72
+ case LocaleType.ID_ID:
73
+ case LocaleType.KO_KR:
74
+ case LocaleType.PL_PL:
75
+ case LocaleType.PT_BR:
76
+ case LocaleType.VI_VN:
77
+ case LocaleType.ZH_HK:
78
+ case LocaleType.ZH_TW:
90
79
  default: return {
91
80
  icon: "DollarIcon",
92
- symbol: "$",
93
- locale: LocaleType.EN_US
81
+ symbol: localeCurrencySymbolMap.get(locale) || "$",
82
+ locale
94
83
  };
95
84
  }
96
85
  }
@@ -596,7 +585,7 @@ const getPatternPreviewIgnoreGeneral = (pattern, value, locale) => {
596
585
  };
597
586
 
598
587
  //#endregion
599
- //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
588
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/typeof.js
600
589
  function _typeof(o) {
601
590
  "@babel/helpers - typeof";
602
591
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -607,7 +596,7 @@ function _typeof(o) {
607
596
  }
608
597
 
609
598
  //#endregion
610
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
599
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPrimitive.js
611
600
  function toPrimitive(t, r) {
612
601
  if ("object" != _typeof(t) || !t) return t;
613
602
  var e = t[Symbol.toPrimitive];
@@ -620,14 +609,14 @@ function toPrimitive(t, r) {
620
609
  }
621
610
 
622
611
  //#endregion
623
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
612
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPropertyKey.js
624
613
  function toPropertyKey(t) {
625
614
  var i = toPrimitive(t, "string");
626
615
  return "symbol" == _typeof(i) ? i : i + "";
627
616
  }
628
617
 
629
618
  //#endregion
630
- //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
619
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/defineProperty.js
631
620
  function _defineProperty(e, r, t) {
632
621
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
633
622
  value: t,
@@ -638,7 +627,7 @@ function _defineProperty(e, r, t) {
638
627
  }
639
628
 
640
629
  //#endregion
641
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
630
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorateParam.js
642
631
  function __decorateParam(paramIndex, decorator) {
643
632
  return function(target, key) {
644
633
  decorator(target, key, paramIndex);
@@ -646,7 +635,7 @@ function __decorateParam(paramIndex, decorator) {
646
635
  }
647
636
 
648
637
  //#endregion
649
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
638
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorate.js
650
639
  function __decorate(decorators, target, key, desc) {
651
640
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
652
641
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -684,9 +673,17 @@ let SheetsNumfmtCellContentController = class SheetsNumfmtCellContentController
684
673
  case LocaleType.ZH_CN: return "zh-CN";
685
674
  case LocaleType.KO_KR: return "ko";
686
675
  case LocaleType.ZH_TW: return "zh-TW";
676
+ case LocaleType.ZH_HK: return "zh-HK";
687
677
  case LocaleType.ES_ES:
688
678
  case LocaleType.CA_ES: return "es";
689
679
  case LocaleType.SK_SK: return "sk";
680
+ case LocaleType.JA_JP: return "ja";
681
+ case LocaleType.PT_BR: return "pt";
682
+ case LocaleType.DE_DE: return "de";
683
+ case LocaleType.IT_IT: return "it";
684
+ case LocaleType.ID_ID: return "id";
685
+ case LocaleType.PL_PL: return "pl";
686
+ case LocaleType.AR_SA: return "ar";
690
687
  case LocaleType.EN_US:
691
688
  case LocaleType.FA_IR:
692
689
  default: return "en";
@@ -794,7 +791,7 @@ SheetsNumfmtCellContentController = __decorate([
794
791
  //#endregion
795
792
  //#region package.json
796
793
  var name = "@univerjs/sheets-numfmt";
797
- var version = "0.24.0";
794
+ var version = "0.25.0";
798
795
 
799
796
  //#endregion
800
797
  //#region src/base/const/plugin-name.ts
@@ -910,4 +907,4 @@ const getNumberFormatOptions = () => NUMBERFORMAT.map((item) => ({
910
907
  }));
911
908
 
912
909
  //#endregion
913
- export { AddDecimalCommand, CURRENCYFORMAT, DATEFMTLISG, NUMBERFORMAT, SHEETS_NUMFMT_PLUGIN_CONFIG_KEY, SetCurrencyCommand, SetNumfmtCommand, SetPercentCommand, SheetsNumfmtCellContentController, SubtractDecimalCommand, UniverSheetsNumfmtPlugin, currencySymbols, getCurrencyFormat, getCurrencyFormatOptions, getCurrencyOptions, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, getCurrencyType, getDateFormatOptions, getDecimalFromPattern, getDecimalString, getNumberFormatOptions, getPatternPreview, getPatternPreviewIgnoreGeneral, getPatternType, isPatternHasDecimal, localeCurrencySymbolMap, setPatternDecimal };
910
+ export { AddDecimalCommand, CURRENCYFORMAT, DATEFMTLISG, NUMBERFORMAT, SHEETS_NUMFMT_PLUGIN_CONFIG_KEY, SetCurrencyCommand, SetNumfmtCommand, SetPercentCommand, SheetsNumfmtCellContentController, SubtractDecimalCommand, UniverSheetsNumfmtPlugin, getCurrencyFormat, getCurrencyFormatOptions, getCurrencyOptions, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, getCurrencyType, getDateFormatOptions, getDecimalFromPattern, getDecimalString, getNumberFormatOptions, getPatternPreview, getPatternPreviewIgnoreGeneral, getPatternType, isPatternHasDecimal, localeCurrencySymbolMap, setPatternDecimal };
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CellValueType, CommandType, DEFAULT_NUMBER_FORMAT, DependentOn, Disposable, ICommandService, IConfigService, IUndoRedoService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService, LocaleType, ObjectMatrix, Plugin, Range, ThemeService, UniverInstanceType, isDefaultFormat, isTextFormat, merge, numfmt, registerDependencies, sequenceExecute, touchDependencies } from "@univerjs/core";
1
+ import { CellValueType, CommandType, DEFAULT_NUMBER_FORMAT, DependentOn, Disposable, ICommandService, IConfigService, IUndoRedoService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService, LocaleType, ObjectMatrix, Plugin, Range, ThemeService, UniverInstanceType, currencySymbols, isDefaultFormat, isTextFormat, merge, numfmt, registerDependencies, sequenceExecute, touchDependencies } from "@univerjs/core";
2
2
  import { INTERCEPTOR_POINT, INumfmtService, InterceptCellContentPriority, RemoveNumfmtMutation, SetNumfmtMutation, SetRangeValuesMutation, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, checkCellValueType, factoryRemoveNumfmtUndoMutation, factorySetNumfmtUndoMutation, getSheetCommandTarget, rangeMerge, transformCellsToRange } from "@univerjs/sheets";
3
3
  import { BehaviorSubject, merge as merge$1, of, skip, switchMap } from "rxjs";
4
4
  import { stripErrorMargin } from "@univerjs/engine-formula";
@@ -19,58 +19,37 @@ import { stripErrorMargin } from "@univerjs/engine-formula";
19
19
  * See the License for the specific language governing permissions and
20
20
  * limitations under the License.
21
21
  */
22
- const currencySymbols = [
23
- "$",
24
- "£",
25
- "¥",
26
- "¤",
27
- "֏",
28
- "؋",
29
- "৳",
30
- "฿",
31
- "៛",
32
- "₡",
33
- "₦",
34
- "₩",
35
- "₪",
36
- "₫",
37
- "€",
38
- "₭",
39
- "₮",
40
- "₱",
41
- "₲",
42
- "₴",
43
- "₸",
44
- "₹",
45
- "₺",
46
- "₼",
47
- "₽",
48
- "₾",
49
- "₿",
50
- "﷼"
51
- ];
52
22
  const localeCurrencySymbolMap = new Map([
53
23
  [LocaleType.EN_US, "$"],
54
24
  [LocaleType.RU_RU, "₽"],
55
25
  [LocaleType.VI_VN, "₫"],
56
26
  [LocaleType.ZH_CN, "¥"],
57
27
  [LocaleType.ZH_TW, "NT$"],
28
+ [LocaleType.ZH_HK, "HK$"],
58
29
  [LocaleType.FR_FR, "€"],
59
30
  [LocaleType.FA_IR, "﷼"],
60
31
  [LocaleType.KO_KR, "₩"],
61
32
  [LocaleType.ES_ES, "€"],
62
33
  [LocaleType.CA_ES, "€"],
63
- [LocaleType.SK_SK, "€"]
34
+ [LocaleType.SK_SK, "€"],
35
+ [LocaleType.JA_JP, "¥"],
36
+ [LocaleType.PT_BR, "R$"],
37
+ [LocaleType.DE_DE, "€"],
38
+ [LocaleType.IT_IT, "€"],
39
+ [LocaleType.ID_ID, "Rp"],
40
+ [LocaleType.PL_PL, "zł"],
41
+ [LocaleType.AR_SA, "﷼"]
64
42
  ]);
65
43
  /**
66
44
  * Get the currency symbol icon based on the locale.
67
- * TODO@wpxp123456: supplement more currency symbols icons. missing icons: ₩, ₫, NT$, ﷼.
68
45
  */
69
46
  function getCurrencySymbolIconByLocale(locale) {
70
47
  switch (locale) {
71
48
  case LocaleType.CA_ES:
49
+ case LocaleType.DE_DE:
72
50
  case LocaleType.ES_ES:
73
51
  case LocaleType.FR_FR:
52
+ case LocaleType.IT_IT:
74
53
  case LocaleType.SK_SK: return {
75
54
  icon: "EuroIcon",
76
55
  symbol: localeCurrencySymbolMap.get(locale) || "€",
@@ -81,16 +60,26 @@ function getCurrencySymbolIconByLocale(locale) {
81
60
  symbol: localeCurrencySymbolMap.get(locale) || "₽",
82
61
  locale
83
62
  };
63
+ case LocaleType.JA_JP:
84
64
  case LocaleType.ZH_CN: return {
85
65
  icon: "RmbIcon",
86
66
  symbol: localeCurrencySymbolMap.get(locale) || "¥",
87
67
  locale
88
68
  };
69
+ case LocaleType.AR_SA:
89
70
  case LocaleType.EN_US:
71
+ case LocaleType.FA_IR:
72
+ case LocaleType.ID_ID:
73
+ case LocaleType.KO_KR:
74
+ case LocaleType.PL_PL:
75
+ case LocaleType.PT_BR:
76
+ case LocaleType.VI_VN:
77
+ case LocaleType.ZH_HK:
78
+ case LocaleType.ZH_TW:
90
79
  default: return {
91
80
  icon: "DollarIcon",
92
- symbol: "$",
93
- locale: LocaleType.EN_US
81
+ symbol: localeCurrencySymbolMap.get(locale) || "$",
82
+ locale
94
83
  };
95
84
  }
96
85
  }
@@ -596,7 +585,7 @@ const getPatternPreviewIgnoreGeneral = (pattern, value, locale) => {
596
585
  };
597
586
 
598
587
  //#endregion
599
- //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
588
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/typeof.js
600
589
  function _typeof(o) {
601
590
  "@babel/helpers - typeof";
602
591
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -607,7 +596,7 @@ function _typeof(o) {
607
596
  }
608
597
 
609
598
  //#endregion
610
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
599
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPrimitive.js
611
600
  function toPrimitive(t, r) {
612
601
  if ("object" != _typeof(t) || !t) return t;
613
602
  var e = t[Symbol.toPrimitive];
@@ -620,14 +609,14 @@ function toPrimitive(t, r) {
620
609
  }
621
610
 
622
611
  //#endregion
623
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
612
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPropertyKey.js
624
613
  function toPropertyKey(t) {
625
614
  var i = toPrimitive(t, "string");
626
615
  return "symbol" == _typeof(i) ? i : i + "";
627
616
  }
628
617
 
629
618
  //#endregion
630
- //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
619
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/defineProperty.js
631
620
  function _defineProperty(e, r, t) {
632
621
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
633
622
  value: t,
@@ -638,7 +627,7 @@ function _defineProperty(e, r, t) {
638
627
  }
639
628
 
640
629
  //#endregion
641
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
630
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorateParam.js
642
631
  function __decorateParam(paramIndex, decorator) {
643
632
  return function(target, key) {
644
633
  decorator(target, key, paramIndex);
@@ -646,7 +635,7 @@ function __decorateParam(paramIndex, decorator) {
646
635
  }
647
636
 
648
637
  //#endregion
649
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
638
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorate.js
650
639
  function __decorate(decorators, target, key, desc) {
651
640
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
652
641
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -684,9 +673,17 @@ let SheetsNumfmtCellContentController = class SheetsNumfmtCellContentController
684
673
  case LocaleType.ZH_CN: return "zh-CN";
685
674
  case LocaleType.KO_KR: return "ko";
686
675
  case LocaleType.ZH_TW: return "zh-TW";
676
+ case LocaleType.ZH_HK: return "zh-HK";
687
677
  case LocaleType.ES_ES:
688
678
  case LocaleType.CA_ES: return "es";
689
679
  case LocaleType.SK_SK: return "sk";
680
+ case LocaleType.JA_JP: return "ja";
681
+ case LocaleType.PT_BR: return "pt";
682
+ case LocaleType.DE_DE: return "de";
683
+ case LocaleType.IT_IT: return "it";
684
+ case LocaleType.ID_ID: return "id";
685
+ case LocaleType.PL_PL: return "pl";
686
+ case LocaleType.AR_SA: return "ar";
690
687
  case LocaleType.EN_US:
691
688
  case LocaleType.FA_IR:
692
689
  default: return "en";
@@ -794,7 +791,7 @@ SheetsNumfmtCellContentController = __decorate([
794
791
  //#endregion
795
792
  //#region package.json
796
793
  var name = "@univerjs/sheets-numfmt";
797
- var version = "0.24.0";
794
+ var version = "0.25.0";
798
795
 
799
796
  //#endregion
800
797
  //#region src/base/const/plugin-name.ts
@@ -910,4 +907,4 @@ const getNumberFormatOptions = () => NUMBERFORMAT.map((item) => ({
910
907
  }));
911
908
 
912
909
  //#endregion
913
- export { AddDecimalCommand, CURRENCYFORMAT, DATEFMTLISG, NUMBERFORMAT, SHEETS_NUMFMT_PLUGIN_CONFIG_KEY, SetCurrencyCommand, SetNumfmtCommand, SetPercentCommand, SheetsNumfmtCellContentController, SubtractDecimalCommand, UniverSheetsNumfmtPlugin, currencySymbols, getCurrencyFormat, getCurrencyFormatOptions, getCurrencyOptions, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, getCurrencyType, getDateFormatOptions, getDecimalFromPattern, getDecimalString, getNumberFormatOptions, getPatternPreview, getPatternPreviewIgnoreGeneral, getPatternType, isPatternHasDecimal, localeCurrencySymbolMap, setPatternDecimal };
910
+ export { AddDecimalCommand, CURRENCYFORMAT, DATEFMTLISG, NUMBERFORMAT, SHEETS_NUMFMT_PLUGIN_CONFIG_KEY, SetCurrencyCommand, SetNumfmtCommand, SetPercentCommand, SheetsNumfmtCellContentController, SubtractDecimalCommand, UniverSheetsNumfmtPlugin, getCurrencyFormat, getCurrencyFormatOptions, getCurrencyOptions, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, getCurrencyType, getDateFormatOptions, getDecimalFromPattern, getDecimalString, getNumberFormatOptions, getPatternPreview, getPatternPreviewIgnoreGeneral, getPatternType, isPatternHasDecimal, localeCurrencySymbolMap, setPatternDecimal };
@@ -14,16 +14,26 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { LocaleType } from '@univerjs/core';
17
- export declare const currencySymbols: string[];
18
17
  export declare const localeCurrencySymbolMap: Map<LocaleType, string>;
19
18
  /**
20
19
  * Get the currency symbol icon based on the locale.
21
- * TODO@wpxp123456: supplement more currency symbols icons. missing icons: ₩, ₫, NT$, ﷼.
22
20
  */
23
21
  export declare function getCurrencySymbolIconByLocale(locale: LocaleType): {
24
22
  icon: string;
25
23
  symbol: string;
26
- locale: LocaleType;
24
+ locale: LocaleType.FR_FR | LocaleType.ES_ES | LocaleType.CA_ES | LocaleType.SK_SK | LocaleType.DE_DE | LocaleType.IT_IT;
25
+ } | {
26
+ icon: string;
27
+ symbol: string;
28
+ locale: LocaleType.RU_RU;
29
+ } | {
30
+ icon: string;
31
+ symbol: string;
32
+ locale: LocaleType.ZH_CN | LocaleType.JA_JP;
33
+ } | {
34
+ icon: string;
35
+ symbol: string;
36
+ locale: LocaleType.EN_US | LocaleType.ZH_TW | LocaleType.ZH_HK | LocaleType.VI_VN | LocaleType.FA_IR | LocaleType.KO_KR | LocaleType.PT_BR | LocaleType.ID_ID | LocaleType.PL_PL | LocaleType.AR_SA;
27
37
  };
28
38
  /**
29
39
  * Get the currency symbol by locale.
@@ -25,7 +25,8 @@ export interface IFRangeSheetsNumfmtMixin {
25
25
  * @example
26
26
  * ```ts
27
27
  * const fWorkbook = univerAPI.getActiveWorkbook();
28
- * const fWorksheet = fWorkbook.getActiveSheet();
28
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
29
+ * if (!fWorksheet) return;
29
30
  *
30
31
  * // Set the number format of the A1 cell to '#,##0.00'.
31
32
  * const fRange = fWorksheet.getRange('A1');
@@ -41,7 +42,8 @@ export interface IFRangeSheetsNumfmtMixin {
41
42
  * @example
42
43
  * ```ts
43
44
  * const fWorkbook = univerAPI.getActiveWorkbook();
44
- * const fWorksheet = fWorkbook.getActiveSheet();
45
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
46
+ * if (!fWorksheet) return;
45
47
  *
46
48
  * // Set the number formats of the A1:B2 range.
47
49
  * const fRange = fWorksheet.getRange('A1:B2');
@@ -62,7 +64,8 @@ export interface IFRangeSheetsNumfmtMixin {
62
64
  * @example
63
65
  * ```ts
64
66
  * const fWorkbook = univerAPI.getActiveWorkbook();
65
- * const fWorksheet = fWorkbook.getActiveSheet();
67
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
68
+ * if (!fWorksheet) return;
66
69
  *
67
70
  * // Get the number format of the top-left cell of the A1:B2 range.
68
71
  * const fRange = fWorksheet.getRange('A1:B2');
@@ -76,7 +79,8 @@ export interface IFRangeSheetsNumfmtMixin {
76
79
  * @example
77
80
  * ```ts
78
81
  * const fWorkbook = univerAPI.getActiveWorkbook();
79
- * const fWorksheet = fWorkbook.getActiveSheet();
82
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
83
+ * if (!fWorksheet) return;
80
84
  *
81
85
  * // Get the number formats of the A1:B2 range.
82
86
  * const fRange = fWorksheet.getRange('A1:B2');
@@ -24,7 +24,8 @@ export interface IFWorkbookSheetsNumfmtMixin {
24
24
  * @example
25
25
  * ```ts
26
26
  * const fWorkbook = univerAPI.getActiveWorkbook();
27
- * const fWorksheet = fWorkbook.getActiveSheet();
27
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
28
+ * if (!fWorksheet) return;
28
29
  * const fRange = fWorksheet.getRange('A1');
29
30
  * fRange.setValue(1234.567).setNumberFormat('#,##0.00');
30
31
  *
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { currencySymbols, getCurrencyFormat, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, localeCurrencySymbolMap } from './base/const/currency-symbols';
16
+ export { getCurrencyFormat, getCurrencySymbolByLocale, getCurrencySymbolIconByLocale, localeCurrencySymbolMap } from './base/const/currency-symbols';
17
17
  export { CURRENCYFORMAT, DATEFMTLISG, NUMBERFORMAT } from './base/const/formatdetail';
18
18
  export { AddDecimalCommand } from './commands/commands/add-decimal.command';
19
19
  export { SetCurrencyCommand } from './commands/commands/set-currency.command';
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(require(`@univerjs/sheets-numfmt`),require(`@univerjs/sheets/facade`)):typeof define==`function`&&define.amd?define([`@univerjs/sheets-numfmt`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt,e.UniverSheetsFacade))})(this,function(e,t){var n=class extends t.FRange{setNumberFormat(t){let n=[],{startColumn:r,startRow:i,endColumn:a,endRow:o}=this._range;for(let e=i;e<=o;e++)for(let i=r;i<=a;i++)n.push({row:e,col:i,pattern:t});return this._commandService.syncExecuteCommand(e.SetNumfmtCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),values:n}),this}setNumberFormats(t){let n=[],{startColumn:r,startRow:i,endColumn:a,endRow:o}=this._range;for(let e=i;e<=o;e++)for(let o=r;o<=a;o++){var s;let a=(s=t[e-i])==null?void 0:s[o-r];n.push({row:e,col:o,pattern:a})}return this._commandService.syncExecuteCommand(e.SetNumfmtCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),values:n}),this}getNumberFormat(){var e,t;let n=this.getCellStyle();return(e=n==null||(t=n.numberFormat)==null?void 0:t.pattern)==null?``:e}getNumberFormats(){return this.getCellStyles().map(e=>e.map(e=>{var t,n;return(t=e==null||(n=e.numberFormat)==null?void 0:n.pattern)==null?``:t}))}};t.FRange.extend(n);var r=class extends t.FWorkbook{setNumfmtLocal(t){return this._injector.get(e.SheetsNumfmtCellContentController).setNumfmtLocal(t),this}};t.FWorkbook.extend(r)});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(require("@univerjs/sheets-numfmt"),require("@univerjs/sheets/facade")):typeof define==`function`&&define.amd?define([`@univerjs/sheets-numfmt`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt,e.UniverSheetsFacade))})(this,function(e,t){var n=class extends t.FRange{setNumberFormat(t){let n=[],{startColumn:r,startRow:i,endColumn:a,endRow:o}=this._range;for(let e=i;e<=o;e++)for(let i=r;i<=a;i++)n.push({row:e,col:i,pattern:t});return this._commandService.syncExecuteCommand(e.SetNumfmtCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),values:n}),this}setNumberFormats(t){let n=[],{startColumn:r,startRow:i,endColumn:a,endRow:o}=this._range;for(let e=i;e<=o;e++)for(let o=r;o<=a;o++){var s;let a=(s=t[e-i])==null?void 0:s[o-r];n.push({row:e,col:o,pattern:a})}return this._commandService.syncExecuteCommand(e.SetNumfmtCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),values:n}),this}getNumberFormat(){var e,t;let n=this.getCellStyle();return(e=n==null||(t=n.numberFormat)==null?void 0:t.pattern)==null?``:e}getNumberFormats(){return this.getCellStyles().map(e=>e.map(e=>{var t,n;return(t=e==null||(n=e.numberFormat)==null?void 0:n.pattern)==null?``:t}))}};t.FRange.extend(n);var r=class extends t.FWorkbook{setNumfmtLocal(t){return this._injector.get(e.SheetsNumfmtCellContentController).setNumfmtLocal(t),this}};t.FWorkbook.extend(r)});
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets`),require(`rxjs`),require(`@univerjs/engine-formula`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=`$.£.¥.¤.֏.؋.৳.฿.៛.₡.₦.₩.₪.₫.€.₭.₮.₱.₲.₴.₸.₹.₺.₼.₽.₾.₿.﷼`.split(`.`),o=new Map([[t.LocaleType.EN_US,`$`],[t.LocaleType.RU_RU,`₽`],[t.LocaleType.VI_VN,`₫`],[t.LocaleType.ZH_CN,`¥`],[t.LocaleType.ZH_TW,`NT$`],[t.LocaleType.FR_FR,`€`],[t.LocaleType.FA_IR,`﷼`],[t.LocaleType.KO_KR,`₩`],[t.LocaleType.ES_ES,`€`],[t.LocaleType.CA_ES,`€`],[t.LocaleType.SK_SK,`€`]]);function s(e){switch(e){case t.LocaleType.CA_ES:case t.LocaleType.ES_ES:case t.LocaleType.FR_FR:case t.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:o.get(e)||`€`,locale:e};case t.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:o.get(e)||`₽`,locale:e};case t.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:o.get(e)||`¥`,locale:e};case t.LocaleType.EN_US:default:return{icon:`DollarIcon`,symbol:`$`,locale:t.LocaleType.EN_US}}}function c(e){return o.get(e)||`$`}function l(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${c(e)}"#,##0${r}_);[Red]("${c(e)}"#,##0${r})`}let u=[{label:`1930-08-05`,suffix:`yyyy-MM-dd`},{label:`1930/08/05`,suffix:`yyyy/MM/dd`},{label:`1930年08月05日`,suffix:`yyyy"年"MM"月"dd"日"`},{label:`08-05`,suffix:`MM-dd`},{label:`8月5日`,suffix:`M"月"d"日"`},{label:`13:30:30`,suffix:`h:mm:ss`},{label:`13:30`,suffix:`h:mm`},{label:`下午01:30`,suffix:`A/P hh:mm`},{label:`下午1:30`,suffix:`A/P h:mm`},{label:`下午1:30:30`,suffix:`A/P h:mm:ss`},{label:`08-05 下午 01:30`,suffix:`MM-dd A/P hh:mm`}],d=[{label:`(1,235)`,suffix:`#,##0_);(#,##0)`},{label:`(1,235) `,suffix:`#,##0_);[Red](#,##0)`,color:`red`},{label:`1,234.56`,suffix:`#,##0.00_);#,##0.00`},{label:`1,234.56`,suffix:`#,##0.00_);[Red]#,##0.00`,color:`red`},{label:`-1,234.56`,suffix:`#,##0.00_);-#,##0.00`},{label:`-1,234.56`,suffix:`#,##0.00_);[Red]-#,##0.00`,color:`red`}],f=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:`red`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:`red`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:`red`}],p=(e,n=0)=>{var r;return e?(r=t.numfmt.getFormatInfo(e).maxDecimals)==null?n:r:n},m=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),h=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${m(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${m(Number(t||0))}$1`):e).join(`;`),g=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),_={id:`sheet.command.numfmt.set.numfmt`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),o=e.get(t.IUndoRedoService),s=(0,n.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,n.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((e,r)=>{(0,t.isTextFormat)(r.pattern)&&e.setValue(r.row,r.col,{t:t.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let t=(0,n.checkCellValueType)(i.v);t!==i.t&&e.setValue(r.row,r.col,{t})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let t=p.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),h.push({id:n.SetNumfmtMutation.id,params:p});let a=(0,n.factorySetNumfmtUndoMutation)(e,p);g.push(...a)}if(f.length){m.ranges=(0,n.rangeMerge)(m.ranges);let r=f.reduce((e,t)=>{let r=u.getCellRaw(t.row,t.col);if(r){let i=(0,n.checkCellValueType)(r.v);i!==r.t&&e.setValue(t.row,t.col,{t:i})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:n.RemoveNumfmtMutation.id,params:m},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,m);g.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,t.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},v={id:`sheet.command.numfmt.add.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d+1,m=h(`0${f>0?`.0`:``}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern),i=h(r.pattern,t+1);i!==r.pattern&&g.push({row:e,col:n,pattern:i})}})}),g.length?await r.executeCommand(_.id,{values:g}):!1}},y={id:`sheet.command.numfmt.set.currency`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(t.LocaleService),o=i.getCurrentSelections();if(!o||!o.length)return!1;let c=[],u=l(s(a.getCurrentLocale()).locale);return o.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{c.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(_.id,{values:c})}},b={id:`sheet.command.numfmt.set.percent`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(_.id,{values:a})}},x={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=p(r.pattern);d=i>d?i:d})});let f=d-1,m=h(`0${f>0?`.0`:`.`}`,f),g=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))g.push({row:e,col:n,pattern:m});else{let t=p(r.pattern);g.push({row:e,col:n,pattern:h(r.pattern,t-1)})}})}),await r.executeCommand(_.id,{values:g})}},S=`sheets-numfmt.config`;Symbol(S);let C={},w=e=>t.numfmt.getFormatInfo(e).type||`unknown`,T=(e,n,r=`en`)=>{try{let i=t.numfmt.formatColor(e,n),a=i?String(i):void 0,o=t.numfmt.format(e,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},E=(e,n,r)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,i.stripErrorMargin)(n))}:T(e,n,r);function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function O(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k(e){var t=O(e,`string`);return D(t)==`symbol`?t:t+``}function A(e,t,n){return(t=k(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){return function(n,r){t(n,r,e)}}function M(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let N={tl:{size:6,color:`#409f11`}},P=class extends t.Disposable{constructor(e,t,n,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,A(this,`_locale$`,new r.BehaviorSubject(`en`)),A(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case t.LocaleType.FR_FR:return`fr`;case t.LocaleType.RU_RU:return`ru`;case t.LocaleType.VI_VN:return`vi`;case t.LocaleType.ZH_CN:return`zh-CN`;case t.LocaleType.KO_KR:return`ko`;case t.LocaleType.ZH_TW:return`zh-TW`;case t.LocaleType.ES_ES:case t.LocaleType.CA_ES:return`es`;case t.LocaleType.SK_SK:return`sk`;case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,r.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{e.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(r,i,a)=>{if(!r||r.v===void 0||r.v===null||r.t===t.CellValueType.BOOLEAN||r.t===t.CellValueType.FORCE_STRING)return a(r);let o=i.unitId,s=i.subUnitId,c;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,t.isDefaultFormat)(c==null?void 0:c.pattern)||r.t!==t.CellValueType.NUMBER&&(0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER)return a(r);let l=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...N},a(r))}let d=``,f=e.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...r,...f.result});let p=E(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(r);let m={v:d,t:t.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(r,m),a(r)},priority:n.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===n.SetNumfmtMutation.id){let n=r.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)})})})}else if(r.id===n.SetRangeValuesMutation.id){let n=r.params;new t.ObjectMatrix(n.cellValue).forValue((t,n)=>{e.realDeleteValue(t,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,r.of)(null):t}),(0,r.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};P=M([j(0,t.IUniverInstanceService),j(1,(0,t.Inject)(n.SheetInterceptorService)),j(2,(0,t.Inject)(t.ThemeService)),j(3,(0,t.Inject)(t.ICommandService)),j(4,(0,t.Inject)(n.INumfmtService)),j(5,(0,t.Inject)(t.LocaleService)),j(6,t.IConfigService)],P);var F=`@univerjs/sheets-numfmt`,I=`0.24.0`;let L=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(S,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[P]]),(0,t.touchDependencies)(this._injector,[[P]]),[v,x,y,b,_].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};A(L,`pluginName`,`SHEET_NUMFMT_PLUGIN`),A(L,`packageName`,F),A(L,`version`,I),A(L,`type`,t.UniverInstanceType.UNIVER_SHEET),L=M([(0,t.DependentOn)(n.UniverSheetsPlugin),j(1,(0,t.Inject)(t.Injector)),j(2,t.IConfigService),j(3,t.ICommandService)],L),e.AddDecimalCommand=v,e.CURRENCYFORMAT=f,e.DATEFMTLISG=u,e.NUMBERFORMAT=d,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=S,e.SetCurrencyCommand=y,e.SetNumfmtCommand=_,e.SetPercentCommand=b,Object.defineProperty(e,`SheetsNumfmtCellContentController`,{enumerable:!0,get:function(){return P}}),e.SubtractDecimalCommand=x,Object.defineProperty(e,`UniverSheetsNumfmtPlugin`,{enumerable:!0,get:function(){return L}}),e.currencySymbols=a,e.getCurrencyFormat=l,e.getCurrencyFormatOptions=e=>f.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),e.getCurrencyOptions=()=>a.map(e=>({label:e,value:e})),e.getCurrencySymbolByLocale=c,e.getCurrencySymbolIconByLocale=s,e.getCurrencyType=e=>a.find(t=>e.includes(t)),e.getDateFormatOptions=()=>u.map(e=>({label:e.label,value:e.suffix})),e.getDecimalFromPattern=p,e.getDecimalString=m,e.getNumberFormatOptions=()=>d.map(e=>({label:e.label,value:e.suffix,color:e.color})),e.getPatternPreview=T,e.getPatternPreviewIgnoreGeneral=E,e.getPatternType=w,e.isPatternHasDecimal=g,e.localeCurrencySymbolMap=o,e.setPatternDecimal=h});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/engine-formula")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineFormula))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=new Map([[t.LocaleType.EN_US,`$`],[t.LocaleType.RU_RU,`₽`],[t.LocaleType.VI_VN,`₫`],[t.LocaleType.ZH_CN,`¥`],[t.LocaleType.ZH_TW,`NT$`],[t.LocaleType.ZH_HK,`HK$`],[t.LocaleType.FR_FR,`€`],[t.LocaleType.FA_IR,`﷼`],[t.LocaleType.KO_KR,`₩`],[t.LocaleType.ES_ES,`€`],[t.LocaleType.CA_ES,`€`],[t.LocaleType.SK_SK,`€`],[t.LocaleType.JA_JP,`¥`],[t.LocaleType.PT_BR,`R$`],[t.LocaleType.DE_DE,`€`],[t.LocaleType.IT_IT,`€`],[t.LocaleType.ID_ID,`Rp`],[t.LocaleType.PL_PL,`zł`],[t.LocaleType.AR_SA,`﷼`]]);function o(e){switch(e){case t.LocaleType.CA_ES:case t.LocaleType.DE_DE:case t.LocaleType.ES_ES:case t.LocaleType.FR_FR:case t.LocaleType.IT_IT:case t.LocaleType.SK_SK:return{icon:`EuroIcon`,symbol:a.get(e)||`€`,locale:e};case t.LocaleType.RU_RU:return{icon:`RoubleIcon`,symbol:a.get(e)||`₽`,locale:e};case t.LocaleType.JA_JP:case t.LocaleType.ZH_CN:return{icon:`RmbIcon`,symbol:a.get(e)||`¥`,locale:e};case t.LocaleType.AR_SA:case t.LocaleType.EN_US:case t.LocaleType.FA_IR:case t.LocaleType.ID_ID:case t.LocaleType.KO_KR:case t.LocaleType.PL_PL:case t.LocaleType.PT_BR:case t.LocaleType.VI_VN:case t.LocaleType.ZH_HK:case t.LocaleType.ZH_TW:default:return{icon:`DollarIcon`,symbol:a.get(e)||`$`,locale:e}}}function s(e){return a.get(e)||`$`}function c(e,t=2){let n=t;t>127&&(n=127);let r=``;return n>0&&(r=`.${`0`.repeat(n)}`),`"${s(e)}"#,##0${r}_);[Red]("${s(e)}"#,##0${r})`}let l=[{label:`1930-08-05`,suffix:`yyyy-MM-dd`},{label:`1930/08/05`,suffix:`yyyy/MM/dd`},{label:`1930年08月05日`,suffix:`yyyy"年"MM"月"dd"日"`},{label:`08-05`,suffix:`MM-dd`},{label:`8月5日`,suffix:`M"月"d"日"`},{label:`13:30:30`,suffix:`h:mm:ss`},{label:`13:30`,suffix:`h:mm`},{label:`下午01:30`,suffix:`A/P hh:mm`},{label:`下午1:30`,suffix:`A/P h:mm`},{label:`下午1:30:30`,suffix:`A/P h:mm:ss`},{label:`08-05 下午 01:30`,suffix:`MM-dd A/P hh:mm`}],u=[{label:`(1,235)`,suffix:`#,##0_);(#,##0)`},{label:`(1,235) `,suffix:`#,##0_);[Red](#,##0)`,color:`red`},{label:`1,234.56`,suffix:`#,##0.00_);#,##0.00`},{label:`1,234.56`,suffix:`#,##0.00_);[Red]#,##0.00`,color:`red`},{label:`-1,234.56`,suffix:`#,##0.00_);-#,##0.00`},{label:`-1,234.56`,suffix:`#,##0.00_);[Red]-#,##0.00`,color:`red`}],d=[{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);"${e}"#,##0.00`},{label:e=>`${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]"${e}"#,##0.00`,color:`red`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);("${e}"#,##0.00)`},{label:e=>`(${e}1,235)`,suffix:e=>`"${e}"#,##0.00_);[Red]("${e}"#,##0.00)`,color:`red`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);-"${e}"#,##0.00`},{label:e=>`-${e}1,235`,suffix:e=>`"${e}"#,##0.00_);[Red]-"${e}"#,##0.00`,color:`red`}],f=(e,n=0)=>{var r;return e?(r=t.numfmt.getFormatInfo(e).maxDecimals)==null?n:r:n},p=e=>Array(Math.min(Math.max(0,Number(e)),30)).fill(0).join(``),m=(e,t)=>e.split(`;`).map(e=>/\.0?/.test(e)?e.replace(/\.0*/g,`${t>0?`.`:``}${p(Number(t||0))}`):/0([^0]?)|0$/.test(e)?e.replace(/0([^0]+)|0$/,`0${t>0?`.`:``}${p(Number(t||0))}$1`):e).join(`;`),h=e=>/\.0?/.test(e)||/0([^0]?)|0$/.test(e),g={id:`sheet.command.numfmt.set.numfmt`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),o=e.get(t.IUndoRedoService),s=(0,n.getSheetCommandTarget)(a,r);if(!s)return!1;let{unitId:c,subUnitId:l,worksheet:u}=s,d=r.values.filter(e=>!!e.pattern),f=r.values.filter(e=>!e.pattern),p=(0,n.transformCellsToRange)(c,l,d),m={unitId:c,subUnitId:l,ranges:f.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},h=[],g=[];if(d.length){let r=d.reduce((e,r)=>{(0,t.isTextFormat)(r.pattern)&&e.setValue(r.row,r.col,{t:t.CellValueType.STRING});let i=u.getCellRaw(r.row,r.col);if(i){let t=(0,n.checkCellValueType)(i.v);t!==i.t&&e.setValue(r.row,r.col,{t})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),Object.keys(p.values).forEach(e=>{let t=p.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),h.push({id:n.SetNumfmtMutation.id,params:p});let a=(0,n.factorySetNumfmtUndoMutation)(e,p);g.push(...a)}if(f.length){m.ranges=(0,n.rangeMerge)(m.ranges);let r=f.reduce((e,t)=>{let r=u.getCellRaw(t.row,t.col);if(r){let i=(0,n.checkCellValueType)(r.v);i!==r.t&&e.setValue(t.row,t.col,{t:i})}return e},new t.ObjectMatrix).getMatrix(),i=new t.ObjectMatrix;new t.ObjectMatrix(r).forValue((e,t)=>{let n=u.getCellRaw(e,t);n?i.setValue(e,t,{t:n.t}):i.setValue(e,t,{t:void 0})}),h.push({id:n.RemoveNumfmtMutation.id,params:m},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,m);g.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let _=(0,t.sequenceExecute)(h,i).result;return _&&o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:h}),_}},_={id:`sheet.command.numfmt.add.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d+1,h=m(`0${p>0?`.0`:``}`,p),_=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:e,col:n,pattern:h});else{let t=f(r.pattern),i=m(r.pattern,t+1);i!==r.pattern&&_.push({row:e,col:n,pattern:i})}})}),_.length?await r.executeCommand(g.id,{values:_}):!1}},v={id:`sheet.command.numfmt.set.currency`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(t.LocaleService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let l=[],u=c(o(a.getCurrentLocale()).locale);return s.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{l.push({row:e,col:t,pattern:u,type:`currency`})})}),await r.executeCommand(g.id,{values:l})}},y={id:`sheet.command.numfmt.set.percent`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService).getCurrentSelections();if(!i||!i.length)return!1;let a=[];return i.forEach(e=>{t.Range.foreach(e.range,(e,t)=>{a.push({row:e,col:t,pattern:`0%`,type:`percent`})})}),await r.executeCommand(g.id,{values:a})}},b={id:`sheet.command.numfmt.subtract.decimal.command`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.ICommandService),i=e.get(n.SheetsSelectionsService),a=e.get(n.INumfmtService),o=e.get(t.IUniverInstanceService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let c=(0,n.getSheetCommandTarget)(o);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d=0;s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if(!r){let r=c.worksheet.getCellRaw(e,n);if(!d&&r&&r.t===t.CellValueType.NUMBER&&r.v){let e=/\.(\d*)$/.exec(String(r.v));if(e){let t=e[1].length;if(!t)return;d=Math.max(d,t)}}return}let i=f(r.pattern);d=i>d?i:d})});let p=d-1,h=m(`0${p>0?`.0`:`.`}`,p),_=[];return s.forEach(e=>{t.Range.foreach(e.range,(e,n)=>{let r=a.getValue(l,u,e,n);if((0,t.isDefaultFormat)(r==null?void 0:r.pattern))_.push({row:e,col:n,pattern:h});else{let t=f(r.pattern);_.push({row:e,col:n,pattern:m(r.pattern,t-1)})}})}),await r.executeCommand(g.id,{values:_})}},x=`sheets-numfmt.config`,S={},C=e=>t.numfmt.getFormatInfo(e).type||`unknown`,w=(e,n,r=`en`)=>{try{let i=t.numfmt.formatColor(e,n),a=i?String(i):void 0,o=t.numfmt.format(e,n,{locale:r,throws:!1});return n<0?{result:o,color:a}:{result:o}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},T=(e,n,r)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,i.stripErrorMargin)(n))}:w(e,n,r);function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function k(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M={tl:{size:6,color:`#409f11`}},N=class extends t.Disposable{constructor(e,t,n,i,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=i,this._numfmtService=a,this._localeService=o,this._configService=s,k(this,`_locale$`,new r.BehaviorSubject(`en`)),k(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){let e=this._locale$.getValue();if(e)return e;switch(this._localeService.getCurrentLocale()){case t.LocaleType.FR_FR:return`fr`;case t.LocaleType.RU_RU:return`ru`;case t.LocaleType.VI_VN:return`vi`;case t.LocaleType.ZH_CN:return`zh-CN`;case t.LocaleType.KO_KR:return`ko`;case t.LocaleType.ZH_TW:return`zh-TW`;case t.LocaleType.ZH_HK:return`zh-HK`;case t.LocaleType.ES_ES:case t.LocaleType.CA_ES:return`es`;case t.LocaleType.SK_SK:return`sk`;case t.LocaleType.JA_JP:return`ja`;case t.LocaleType.PT_BR:return`pt`;case t.LocaleType.DE_DE:return`de`;case t.LocaleType.IT_IT:return`it`;case t.LocaleType.ID_ID:return`id`;case t.LocaleType.PL_PL:return`pl`;case t.LocaleType.AR_SA:return`ar`;case t.LocaleType.EN_US:case t.LocaleType.FA_IR:default:return`en`}}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,r.merge)(this._locale$,this._localeService.currentLocale$).subscribe(()=>{e.reset()})),this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(r,i,a)=>{if(!r||r.v===void 0||r.v===null||r.t===t.CellValueType.BOOLEAN||r.t===t.CellValueType.FORCE_STRING)return a(r);let o=i.unitId,s=i.subUnitId,c;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(c=e.n)}if(c||(c=this._numfmtService.getValue(o,s,i.row,i.col)),(0,t.isDefaultFormat)(c==null?void 0:c.pattern)||r.t!==t.CellValueType.NUMBER&&(0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER)return a(r);let l=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(c==null?void 0:c.pattern)){var u;return(u=this._configService.getConfig(`sheets-numfmt.config`))!=null&&u.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...M},a(r))}let d=``,f=e.getValue(i.row,i.col);if(f&&f.parameters===`${l.v}_${c==null?void 0:c.pattern}`)return a({...r,...f.result});let p=T(c==null?void 0:c.pattern,Number(l.v),this.locale);if(d=p.result,!d)return a(r);let m={v:d,t:t.CellValueType.NUMBER};if(p.color){var h;let e=(h=this._themeService.getColorFromTheme(`${p.color}.500`))==null?p.color:h;e&&(m.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:m,parameters:`${l.v}_${c==null?void 0:c.pattern}`}),Object.assign(r,m),a(r)},priority:n.InterceptCellContentPriority.NUMFMT})),this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===n.SetNumfmtMutation.id){let n=r.params;Object.keys(n.values).forEach(r=>{n.values[r].ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)})})})}else if(r.id===n.SetRangeValuesMutation.id){let n=r.params;new t.ObjectMatrix(n.cellValue).forValue((t,n)=>{e.realDeleteValue(t,n)})}})),this.disposeWithMe(this._instanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,r.of)(null):t}),(0,r.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};N=j([A(0,t.IUniverInstanceService),A(1,(0,t.Inject)(n.SheetInterceptorService)),A(2,(0,t.Inject)(t.ThemeService)),A(3,(0,t.Inject)(t.ICommandService)),A(4,(0,t.Inject)(n.INumfmtService)),A(5,(0,t.Inject)(t.LocaleService)),A(6,t.IConfigService)],N);var P=`@univerjs/sheets-numfmt`,F=`0.25.0`;let I=class extends t.Plugin{constructor(e=S,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},S,this._config);this._configService.setConfig(x,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[N]]),(0,t.touchDependencies)(this._injector,[[N]]),[_,b,v,y,g].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};k(I,`pluginName`,`SHEET_NUMFMT_PLUGIN`),k(I,`packageName`,P),k(I,`version`,F),k(I,`type`,t.UniverInstanceType.UNIVER_SHEET),I=j([(0,t.DependentOn)(n.UniverSheetsPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService),A(3,t.ICommandService)],I),e.AddDecimalCommand=_,e.CURRENCYFORMAT=d,e.DATEFMTLISG=l,e.NUMBERFORMAT=u,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=x,e.SetCurrencyCommand=v,e.SetNumfmtCommand=g,e.SetPercentCommand=y,Object.defineProperty(e,"SheetsNumfmtCellContentController",{enumerable:!0,get:function(){return N}}),e.SubtractDecimalCommand=b,Object.defineProperty(e,"UniverSheetsNumfmtPlugin",{enumerable:!0,get:function(){return I}}),e.getCurrencyFormat=c,e.getCurrencyFormatOptions=e=>d.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),e.getCurrencyOptions=()=>t.currencySymbols.map(e=>({label:e,value:e})),e.getCurrencySymbolByLocale=s,e.getCurrencySymbolIconByLocale=o,e.getCurrencyType=e=>t.currencySymbols.find(t=>e.includes(t)),e.getDateFormatOptions=()=>l.map(e=>({label:e.label,value:e.suffix})),e.getDecimalFromPattern=f,e.getDecimalString=p,e.getNumberFormatOptions=()=>u.map(e=>({label:e.label,value:e.suffix,color:e.color})),e.getPatternPreview=w,e.getPatternPreviewIgnoreGeneral=T,e.getPatternType=C,e.isPatternHasDecimal=h,e.localeCurrencySymbolMap=a,e.setPatternDecimal=m});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-numfmt",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "private": false,
5
5
  "description": "Number format services and commands for Univer Sheets.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -62,15 +62,15 @@
62
62
  "rxjs": ">=7.0.0"
63
63
  },
64
64
  "dependencies": {
65
- "@univerjs/core": "0.24.0",
66
- "@univerjs/engine-formula": "0.24.0",
67
- "@univerjs/sheets": "0.24.0"
65
+ "@univerjs/core": "0.25.0",
66
+ "@univerjs/engine-formula": "0.25.0",
67
+ "@univerjs/sheets": "0.25.0"
68
68
  },
69
69
  "devDependencies": {
70
70
  "rxjs": "^7.8.2",
71
71
  "typescript": "^6.0.3",
72
- "vitest": "^4.1.5",
73
- "@univerjs-infra/shared": "0.24.0"
72
+ "vitest": "^4.1.7",
73
+ "@univerjs-infra/shared": "0.25.0"
74
74
  },
75
75
  "scripts": {
76
76
  "test": "vitest run",