@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 +40 -44
- package/lib/es/index.js +40 -43
- package/lib/index.js +40 -43
- package/lib/types/base/const/currency-symbols.d.ts +13 -3
- package/lib/types/facade/f-range.d.ts +8 -4
- package/lib/types/facade/f-workbook.d.ts +2 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +6 -6
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
*
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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 {
|
|
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(
|
|
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.
|
|
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.
|
|
66
|
-
"@univerjs/engine-formula": "0.
|
|
67
|
-
"@univerjs/sheets": "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.
|
|
73
|
-
"@univerjs-infra/shared": "0.
|
|
72
|
+
"vitest": "^4.1.7",
|
|
73
|
+
"@univerjs-infra/shared": "0.25.0"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"test": "vitest run",
|