@univerjs/sheets-numfmt 1.0.3 → 1.0.4

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
@@ -832,7 +832,7 @@ SheetsNumfmtCellContentController = __decorate([
832
832
  //#endregion
833
833
  //#region package.json
834
834
  var name = "@univerjs/sheets-numfmt";
835
- var version = "1.0.3";
835
+ var version = "1.0.4";
836
836
 
837
837
  //#endregion
838
838
  //#region src/base/const/plugin-name.ts
@@ -912,7 +912,7 @@ const getCurrencyType = (pattern) => {
912
912
  };
913
913
 
914
914
  //#endregion
915
- //#region src/utils/options.ts
915
+ //#region src/base/const/date-format.ts
916
916
  /**
917
917
  * Copyright 2023-present DreamNum Co., Ltd.
918
918
  *
@@ -928,6 +928,117 @@ const getCurrencyType = (pattern) => {
928
928
  * See the License for the specific language governing permissions and
929
929
  * limitations under the License.
930
930
  */
931
+ const ISO_DATE_PROFILE = {
932
+ dates: ["yyyy/MM/dd", "MM-dd"],
933
+ shortDate: "MM-dd"
934
+ };
935
+ const MDY_DATE_PROFILE = {
936
+ dates: [
937
+ "m/d/yyyy",
938
+ "mm/dd/yyyy",
939
+ "mmm d, yyyy",
940
+ "m/d",
941
+ "mmmm d"
942
+ ],
943
+ shortDate: "m/d"
944
+ };
945
+ const DMY_DATE_PROFILE = {
946
+ dates: [
947
+ "dd/mm/yyyy",
948
+ "d/m/yyyy",
949
+ "d mmm yyyy",
950
+ "dd/mm",
951
+ "d mmmm"
952
+ ],
953
+ shortDate: "dd/mm"
954
+ };
955
+ const DMY_DOT_DATE_PROFILE = {
956
+ dates: [
957
+ "dd.mm.yyyy",
958
+ "d.m.yyyy",
959
+ "d mmm yyyy",
960
+ "dd.mm",
961
+ "d mmmm"
962
+ ],
963
+ shortDate: "dd.mm"
964
+ };
965
+ const CJK_DATE_PROFILE = {
966
+ dates: [
967
+ "yyyy/MM/dd",
968
+ "yyyy\"年\"MM\"月\"dd\"日\"",
969
+ "MM-dd",
970
+ "M\"月\"d\"日\""
971
+ ],
972
+ shortDate: "MM-dd",
973
+ periodBeforeTime: true
974
+ };
975
+ const DATE_FORMAT_PROFILES = {
976
+ [_univerjs_core.LocaleType.EN_US]: MDY_DATE_PROFILE,
977
+ [_univerjs_core.LocaleType.FR_FR]: DMY_DATE_PROFILE,
978
+ [_univerjs_core.LocaleType.ZH_CN]: CJK_DATE_PROFILE,
979
+ [_univerjs_core.LocaleType.RU_RU]: DMY_DOT_DATE_PROFILE,
980
+ [_univerjs_core.LocaleType.ZH_TW]: CJK_DATE_PROFILE,
981
+ [_univerjs_core.LocaleType.ZH_HK]: {
982
+ ...CJK_DATE_PROFILE,
983
+ dates: ["dd/MM/yyyy", ...CJK_DATE_PROFILE.dates],
984
+ shortDate: "dd/MM"
985
+ },
986
+ [_univerjs_core.LocaleType.VI_VN]: DMY_DATE_PROFILE,
987
+ [_univerjs_core.LocaleType.FA_IR]: ISO_DATE_PROFILE,
988
+ [_univerjs_core.LocaleType.CA_ES]: {
989
+ dates: [
990
+ "dd/mm/yyyy",
991
+ "d/m/yyyy",
992
+ "dd/mm"
993
+ ],
994
+ shortDate: "dd/mm"
995
+ },
996
+ [_univerjs_core.LocaleType.JA_JP]: CJK_DATE_PROFILE,
997
+ [_univerjs_core.LocaleType.KO_KR]: {
998
+ dates: [
999
+ "yyyy. mm. dd.",
1000
+ "yyyy\"년\" m\"월\" d\"일\"",
1001
+ "mm-dd",
1002
+ "m\"월\" d\"일\""
1003
+ ],
1004
+ shortDate: "mm-dd",
1005
+ periodBeforeTime: true
1006
+ },
1007
+ [_univerjs_core.LocaleType.ES_ES]: DMY_DATE_PROFILE,
1008
+ [_univerjs_core.LocaleType.SK_SK]: DMY_DOT_DATE_PROFILE,
1009
+ [_univerjs_core.LocaleType.PT_BR]: DMY_DATE_PROFILE,
1010
+ [_univerjs_core.LocaleType.DE_DE]: DMY_DOT_DATE_PROFILE,
1011
+ [_univerjs_core.LocaleType.IT_IT]: DMY_DATE_PROFILE,
1012
+ [_univerjs_core.LocaleType.ID_ID]: DMY_DATE_PROFILE,
1013
+ [_univerjs_core.LocaleType.PL_PL]: DMY_DOT_DATE_PROFILE,
1014
+ [_univerjs_core.LocaleType.AR_SA]: {
1015
+ dates: [
1016
+ "dd/mm/yyyy",
1017
+ "d/m/yyyy",
1018
+ "dd/mm"
1019
+ ],
1020
+ shortDate: "dd/mm"
1021
+ }
1022
+ };
1023
+ function getDateFormatPatterns(locale) {
1024
+ const profile = DATE_FORMAT_PROFILES[locale] ?? ISO_DATE_PROFILE;
1025
+ const timePatterns = [
1026
+ "hh:mm",
1027
+ "h:mm",
1028
+ "h:mm:ss"
1029
+ ].map((pattern) => profile.periodBeforeTime ? `AM/PM ${pattern}` : `${pattern} AM/PM`);
1030
+ return [.../* @__PURE__ */ new Set([
1031
+ "yyyy-MM-dd",
1032
+ ...profile.dates,
1033
+ "h:mm:ss",
1034
+ "h:mm",
1035
+ ...timePatterns,
1036
+ `${profile.shortDate} ${timePatterns[0]}`
1037
+ ])];
1038
+ }
1039
+
1040
+ //#endregion
1041
+ //#region src/utils/options.ts
931
1042
  const getCurrencyOptions = () => _univerjs_core.currencySymbols.map((item) => ({
932
1043
  label: item,
933
1044
  value: item
@@ -937,10 +1048,20 @@ const getCurrencyFormatOptions = (suffix) => CURRENCYFORMAT.map((item) => ({
937
1048
  value: item.suffix(suffix),
938
1049
  color: item.color
939
1050
  }));
940
- const getDateFormatOptions = () => DATEFMTLISG.map((item) => ({
941
- label: item.label,
942
- value: item.suffix
943
- }));
1051
+ const DATE_FORMAT_PREVIEW_VALUE = (0, _univerjs_core.excelDateTimeSerial)(new Date(Date.UTC(1930, 7, 5, 13, 30, 30)));
1052
+ const getDateFormatOptions = (locale, currentPattern) => {
1053
+ if (locale === void 0) return DATEFMTLISG.map((item) => ({
1054
+ label: item.label,
1055
+ value: item.suffix
1056
+ }));
1057
+ const numfmtLocale = (0, _univerjs_core.getNumfmtLocaleTag)(locale);
1058
+ const patterns = getDateFormatPatterns(locale);
1059
+ if (currentPattern && !patterns.includes(currentPattern)) patterns.unshift(currentPattern);
1060
+ return patterns.map((pattern) => ({
1061
+ label: _univerjs_core.numfmt.format(pattern, DATE_FORMAT_PREVIEW_VALUE, { locale: numfmtLocale }),
1062
+ value: pattern
1063
+ }));
1064
+ };
944
1065
  const getNumberFormatOptions = () => NUMBERFORMAT.map((item) => ({
945
1066
  label: item.label,
946
1067
  value: item.suffix,
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, RegionService, ThemeService, UniverInstanceType, currencySymbols, getNumfmtLocaleTag, getNumfmtParseValueFilter, 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, RegionService, ThemeService, UniverInstanceType, currencySymbols, excelDateTimeSerial, getNumfmtLocaleTag, getNumfmtParseValueFilter, 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 { stripErrorMargin } from "@univerjs/engine-formula";
4
4
  import { BehaviorSubject, merge as merge$1, of, skip, switchMap } from "rxjs";
@@ -831,7 +831,7 @@ SheetsNumfmtCellContentController = __decorate([
831
831
  //#endregion
832
832
  //#region package.json
833
833
  var name = "@univerjs/sheets-numfmt";
834
- var version = "1.0.3";
834
+ var version = "1.0.4";
835
835
 
836
836
  //#endregion
837
837
  //#region src/base/const/plugin-name.ts
@@ -911,7 +911,7 @@ const getCurrencyType = (pattern) => {
911
911
  };
912
912
 
913
913
  //#endregion
914
- //#region src/utils/options.ts
914
+ //#region src/base/const/date-format.ts
915
915
  /**
916
916
  * Copyright 2023-present DreamNum Co., Ltd.
917
917
  *
@@ -927,6 +927,117 @@ const getCurrencyType = (pattern) => {
927
927
  * See the License for the specific language governing permissions and
928
928
  * limitations under the License.
929
929
  */
930
+ const ISO_DATE_PROFILE = {
931
+ dates: ["yyyy/MM/dd", "MM-dd"],
932
+ shortDate: "MM-dd"
933
+ };
934
+ const MDY_DATE_PROFILE = {
935
+ dates: [
936
+ "m/d/yyyy",
937
+ "mm/dd/yyyy",
938
+ "mmm d, yyyy",
939
+ "m/d",
940
+ "mmmm d"
941
+ ],
942
+ shortDate: "m/d"
943
+ };
944
+ const DMY_DATE_PROFILE = {
945
+ dates: [
946
+ "dd/mm/yyyy",
947
+ "d/m/yyyy",
948
+ "d mmm yyyy",
949
+ "dd/mm",
950
+ "d mmmm"
951
+ ],
952
+ shortDate: "dd/mm"
953
+ };
954
+ const DMY_DOT_DATE_PROFILE = {
955
+ dates: [
956
+ "dd.mm.yyyy",
957
+ "d.m.yyyy",
958
+ "d mmm yyyy",
959
+ "dd.mm",
960
+ "d mmmm"
961
+ ],
962
+ shortDate: "dd.mm"
963
+ };
964
+ const CJK_DATE_PROFILE = {
965
+ dates: [
966
+ "yyyy/MM/dd",
967
+ "yyyy\"年\"MM\"月\"dd\"日\"",
968
+ "MM-dd",
969
+ "M\"月\"d\"日\""
970
+ ],
971
+ shortDate: "MM-dd",
972
+ periodBeforeTime: true
973
+ };
974
+ const DATE_FORMAT_PROFILES = {
975
+ [LocaleType.EN_US]: MDY_DATE_PROFILE,
976
+ [LocaleType.FR_FR]: DMY_DATE_PROFILE,
977
+ [LocaleType.ZH_CN]: CJK_DATE_PROFILE,
978
+ [LocaleType.RU_RU]: DMY_DOT_DATE_PROFILE,
979
+ [LocaleType.ZH_TW]: CJK_DATE_PROFILE,
980
+ [LocaleType.ZH_HK]: {
981
+ ...CJK_DATE_PROFILE,
982
+ dates: ["dd/MM/yyyy", ...CJK_DATE_PROFILE.dates],
983
+ shortDate: "dd/MM"
984
+ },
985
+ [LocaleType.VI_VN]: DMY_DATE_PROFILE,
986
+ [LocaleType.FA_IR]: ISO_DATE_PROFILE,
987
+ [LocaleType.CA_ES]: {
988
+ dates: [
989
+ "dd/mm/yyyy",
990
+ "d/m/yyyy",
991
+ "dd/mm"
992
+ ],
993
+ shortDate: "dd/mm"
994
+ },
995
+ [LocaleType.JA_JP]: CJK_DATE_PROFILE,
996
+ [LocaleType.KO_KR]: {
997
+ dates: [
998
+ "yyyy. mm. dd.",
999
+ "yyyy\"년\" m\"월\" d\"일\"",
1000
+ "mm-dd",
1001
+ "m\"월\" d\"일\""
1002
+ ],
1003
+ shortDate: "mm-dd",
1004
+ periodBeforeTime: true
1005
+ },
1006
+ [LocaleType.ES_ES]: DMY_DATE_PROFILE,
1007
+ [LocaleType.SK_SK]: DMY_DOT_DATE_PROFILE,
1008
+ [LocaleType.PT_BR]: DMY_DATE_PROFILE,
1009
+ [LocaleType.DE_DE]: DMY_DOT_DATE_PROFILE,
1010
+ [LocaleType.IT_IT]: DMY_DATE_PROFILE,
1011
+ [LocaleType.ID_ID]: DMY_DATE_PROFILE,
1012
+ [LocaleType.PL_PL]: DMY_DOT_DATE_PROFILE,
1013
+ [LocaleType.AR_SA]: {
1014
+ dates: [
1015
+ "dd/mm/yyyy",
1016
+ "d/m/yyyy",
1017
+ "dd/mm"
1018
+ ],
1019
+ shortDate: "dd/mm"
1020
+ }
1021
+ };
1022
+ function getDateFormatPatterns(locale) {
1023
+ const profile = DATE_FORMAT_PROFILES[locale] ?? ISO_DATE_PROFILE;
1024
+ const timePatterns = [
1025
+ "hh:mm",
1026
+ "h:mm",
1027
+ "h:mm:ss"
1028
+ ].map((pattern) => profile.periodBeforeTime ? `AM/PM ${pattern}` : `${pattern} AM/PM`);
1029
+ return [.../* @__PURE__ */ new Set([
1030
+ "yyyy-MM-dd",
1031
+ ...profile.dates,
1032
+ "h:mm:ss",
1033
+ "h:mm",
1034
+ ...timePatterns,
1035
+ `${profile.shortDate} ${timePatterns[0]}`
1036
+ ])];
1037
+ }
1038
+
1039
+ //#endregion
1040
+ //#region src/utils/options.ts
930
1041
  const getCurrencyOptions = () => currencySymbols.map((item) => ({
931
1042
  label: item,
932
1043
  value: item
@@ -936,10 +1047,20 @@ const getCurrencyFormatOptions = (suffix) => CURRENCYFORMAT.map((item) => ({
936
1047
  value: item.suffix(suffix),
937
1048
  color: item.color
938
1049
  }));
939
- const getDateFormatOptions = () => DATEFMTLISG.map((item) => ({
940
- label: item.label,
941
- value: item.suffix
942
- }));
1050
+ const DATE_FORMAT_PREVIEW_VALUE = excelDateTimeSerial(new Date(Date.UTC(1930, 7, 5, 13, 30, 30)));
1051
+ const getDateFormatOptions = (locale, currentPattern) => {
1052
+ if (locale === void 0) return DATEFMTLISG.map((item) => ({
1053
+ label: item.label,
1054
+ value: item.suffix
1055
+ }));
1056
+ const numfmtLocale = getNumfmtLocaleTag(locale);
1057
+ const patterns = getDateFormatPatterns(locale);
1058
+ if (currentPattern && !patterns.includes(currentPattern)) patterns.unshift(currentPattern);
1059
+ return patterns.map((pattern) => ({
1060
+ label: numfmt.format(pattern, DATE_FORMAT_PREVIEW_VALUE, { locale: numfmtLocale }),
1061
+ value: pattern
1062
+ }));
1063
+ };
943
1064
  const getNumberFormatOptions = () => NUMBERFORMAT.map((item) => ({
944
1065
  label: item.label,
945
1066
  value: item.suffix,
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, RegionService, ThemeService, UniverInstanceType, currencySymbols, getNumfmtLocaleTag, getNumfmtParseValueFilter, 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, RegionService, ThemeService, UniverInstanceType, currencySymbols, excelDateTimeSerial, getNumfmtLocaleTag, getNumfmtParseValueFilter, 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 { stripErrorMargin } from "@univerjs/engine-formula";
4
4
  import { BehaviorSubject, merge as merge$1, of, skip, switchMap } from "rxjs";
@@ -831,7 +831,7 @@ SheetsNumfmtCellContentController = __decorate([
831
831
  //#endregion
832
832
  //#region package.json
833
833
  var name = "@univerjs/sheets-numfmt";
834
- var version = "1.0.3";
834
+ var version = "1.0.4";
835
835
 
836
836
  //#endregion
837
837
  //#region src/base/const/plugin-name.ts
@@ -911,7 +911,7 @@ const getCurrencyType = (pattern) => {
911
911
  };
912
912
 
913
913
  //#endregion
914
- //#region src/utils/options.ts
914
+ //#region src/base/const/date-format.ts
915
915
  /**
916
916
  * Copyright 2023-present DreamNum Co., Ltd.
917
917
  *
@@ -927,6 +927,117 @@ const getCurrencyType = (pattern) => {
927
927
  * See the License for the specific language governing permissions and
928
928
  * limitations under the License.
929
929
  */
930
+ const ISO_DATE_PROFILE = {
931
+ dates: ["yyyy/MM/dd", "MM-dd"],
932
+ shortDate: "MM-dd"
933
+ };
934
+ const MDY_DATE_PROFILE = {
935
+ dates: [
936
+ "m/d/yyyy",
937
+ "mm/dd/yyyy",
938
+ "mmm d, yyyy",
939
+ "m/d",
940
+ "mmmm d"
941
+ ],
942
+ shortDate: "m/d"
943
+ };
944
+ const DMY_DATE_PROFILE = {
945
+ dates: [
946
+ "dd/mm/yyyy",
947
+ "d/m/yyyy",
948
+ "d mmm yyyy",
949
+ "dd/mm",
950
+ "d mmmm"
951
+ ],
952
+ shortDate: "dd/mm"
953
+ };
954
+ const DMY_DOT_DATE_PROFILE = {
955
+ dates: [
956
+ "dd.mm.yyyy",
957
+ "d.m.yyyy",
958
+ "d mmm yyyy",
959
+ "dd.mm",
960
+ "d mmmm"
961
+ ],
962
+ shortDate: "dd.mm"
963
+ };
964
+ const CJK_DATE_PROFILE = {
965
+ dates: [
966
+ "yyyy/MM/dd",
967
+ "yyyy\"年\"MM\"月\"dd\"日\"",
968
+ "MM-dd",
969
+ "M\"月\"d\"日\""
970
+ ],
971
+ shortDate: "MM-dd",
972
+ periodBeforeTime: true
973
+ };
974
+ const DATE_FORMAT_PROFILES = {
975
+ [LocaleType.EN_US]: MDY_DATE_PROFILE,
976
+ [LocaleType.FR_FR]: DMY_DATE_PROFILE,
977
+ [LocaleType.ZH_CN]: CJK_DATE_PROFILE,
978
+ [LocaleType.RU_RU]: DMY_DOT_DATE_PROFILE,
979
+ [LocaleType.ZH_TW]: CJK_DATE_PROFILE,
980
+ [LocaleType.ZH_HK]: {
981
+ ...CJK_DATE_PROFILE,
982
+ dates: ["dd/MM/yyyy", ...CJK_DATE_PROFILE.dates],
983
+ shortDate: "dd/MM"
984
+ },
985
+ [LocaleType.VI_VN]: DMY_DATE_PROFILE,
986
+ [LocaleType.FA_IR]: ISO_DATE_PROFILE,
987
+ [LocaleType.CA_ES]: {
988
+ dates: [
989
+ "dd/mm/yyyy",
990
+ "d/m/yyyy",
991
+ "dd/mm"
992
+ ],
993
+ shortDate: "dd/mm"
994
+ },
995
+ [LocaleType.JA_JP]: CJK_DATE_PROFILE,
996
+ [LocaleType.KO_KR]: {
997
+ dates: [
998
+ "yyyy. mm. dd.",
999
+ "yyyy\"년\" m\"월\" d\"일\"",
1000
+ "mm-dd",
1001
+ "m\"월\" d\"일\""
1002
+ ],
1003
+ shortDate: "mm-dd",
1004
+ periodBeforeTime: true
1005
+ },
1006
+ [LocaleType.ES_ES]: DMY_DATE_PROFILE,
1007
+ [LocaleType.SK_SK]: DMY_DOT_DATE_PROFILE,
1008
+ [LocaleType.PT_BR]: DMY_DATE_PROFILE,
1009
+ [LocaleType.DE_DE]: DMY_DOT_DATE_PROFILE,
1010
+ [LocaleType.IT_IT]: DMY_DATE_PROFILE,
1011
+ [LocaleType.ID_ID]: DMY_DATE_PROFILE,
1012
+ [LocaleType.PL_PL]: DMY_DOT_DATE_PROFILE,
1013
+ [LocaleType.AR_SA]: {
1014
+ dates: [
1015
+ "dd/mm/yyyy",
1016
+ "d/m/yyyy",
1017
+ "dd/mm"
1018
+ ],
1019
+ shortDate: "dd/mm"
1020
+ }
1021
+ };
1022
+ function getDateFormatPatterns(locale) {
1023
+ const profile = DATE_FORMAT_PROFILES[locale] ?? ISO_DATE_PROFILE;
1024
+ const timePatterns = [
1025
+ "hh:mm",
1026
+ "h:mm",
1027
+ "h:mm:ss"
1028
+ ].map((pattern) => profile.periodBeforeTime ? `AM/PM ${pattern}` : `${pattern} AM/PM`);
1029
+ return [.../* @__PURE__ */ new Set([
1030
+ "yyyy-MM-dd",
1031
+ ...profile.dates,
1032
+ "h:mm:ss",
1033
+ "h:mm",
1034
+ ...timePatterns,
1035
+ `${profile.shortDate} ${timePatterns[0]}`
1036
+ ])];
1037
+ }
1038
+
1039
+ //#endregion
1040
+ //#region src/utils/options.ts
930
1041
  const getCurrencyOptions = () => currencySymbols.map((item) => ({
931
1042
  label: item,
932
1043
  value: item
@@ -936,10 +1047,20 @@ const getCurrencyFormatOptions = (suffix) => CURRENCYFORMAT.map((item) => ({
936
1047
  value: item.suffix(suffix),
937
1048
  color: item.color
938
1049
  }));
939
- const getDateFormatOptions = () => DATEFMTLISG.map((item) => ({
940
- label: item.label,
941
- value: item.suffix
942
- }));
1050
+ const DATE_FORMAT_PREVIEW_VALUE = excelDateTimeSerial(new Date(Date.UTC(1930, 7, 5, 13, 30, 30)));
1051
+ const getDateFormatOptions = (locale, currentPattern) => {
1052
+ if (locale === void 0) return DATEFMTLISG.map((item) => ({
1053
+ label: item.label,
1054
+ value: item.suffix
1055
+ }));
1056
+ const numfmtLocale = getNumfmtLocaleTag(locale);
1057
+ const patterns = getDateFormatPatterns(locale);
1058
+ if (currentPattern && !patterns.includes(currentPattern)) patterns.unshift(currentPattern);
1059
+ return patterns.map((pattern) => ({
1060
+ label: numfmt.format(pattern, DATE_FORMAT_PREVIEW_VALUE, { locale: numfmtLocale }),
1061
+ value: pattern
1062
+ }));
1063
+ };
943
1064
  const getNumberFormatOptions = () => NUMBERFORMAT.map((item) => ({
944
1065
  label: item.label,
945
1066
  value: item.suffix,
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Co., Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { LocaleType } from '@univerjs/core';
17
+ export declare function getDateFormatPatterns(locale: LocaleType): string[];
@@ -13,6 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import type { LocaleType } from '@univerjs/core';
16
17
  export declare const getCurrencyOptions: () => {
17
18
  label: string;
18
19
  value: string;
@@ -22,7 +23,7 @@ export declare const getCurrencyFormatOptions: (suffix: string) => {
22
23
  value: string;
23
24
  color: string | undefined;
24
25
  }[];
25
- export declare const getDateFormatOptions: () => {
26
+ export declare const getDateFormatOptions: (locale?: LocaleType, currentPattern?: string) => {
26
27
  label: string;
27
28
  value: string;
28
29
  }[];
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("@univerjs/engine-formula"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`@univerjs/engine-formula`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.UniverEngineFormula,e.rxjs))})(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.VI_VN:return{icon:`DongIcon`,symbol:a.get(e)||`₫`,locale:e};case t.LocaleType.AR_SA:case t.LocaleType.FA_IR:return{icon:`RialIcon`,symbol:a.get(e)||`﷼`,locale:e};case t.LocaleType.KO_KR:return{icon:`WonIcon`,symbol:a.get(e)||`₩`,locale:e};case t.LocaleType.ID_ID:return{icon:`RupiahIcon`,symbol:a.get(e)||`Rp`,locale:e};case t.LocaleType.PL_PL:return{icon:`ZlotyIcon`,symbol:a.get(e)||`zł`,locale:e};case t.LocaleType.EN_US:case t.LocaleType.PT_BR: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)=>e?t.numfmt.getFormatInfo(e).maxDecimals??n: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=e=>{let n=t.numfmt.getFormatInfo(e).type||`unknown`;return n===`general`&&t.numfmt.tokenize(e).some(e=>e.type===t.numfmt.tokenTypes.CONDITION)?`number`:n},_=(e,n,r=`en`,i)=>{try{let a=t.numfmt.formatColor(e,n),o=a?String(a):void 0,s=t.numfmt.format(e,n,{locale:r,dateSystem:i,throws:!1});return n<0?{result:s,color:o}:{result:s}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},v=(e,n,i,a)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,r.stripErrorMargin)(n))}:_(e,n,i,a);function y(e){return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&/e/i.test(String(e.v))}function b(e){let t=String(e==null?void 0:e.v),n=t.search(/e/i),r=t.indexOf(`.`),i=n>-1&&r>-1?n-r-1:0;return`0.${`0`.repeat(Math.max(2,i))}E+00`}function x(e){return(0,t.isDefaultFormat)(e)||(0,t.isTextFormat)(e)||g(e)===`scientific`}let S={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=>!y(u.getCellRaw(e.row,e.col))||x(e.pattern)),f=d.filter(e=>!!e.pattern),p=d.filter(e=>!e.pattern);if(!f.length&&!p.length)return!1;let m=(0,n.transformCellsToRange)(c,l,f),h={unitId:c,subUnitId:l,ranges:p.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},g=[],_=[];if(f.length){let r=f.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(m.values).forEach(e=>{let t=m.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),g.push({id:n.SetNumfmtMutation.id,params:m});let a=(0,n.factorySetNumfmtUndoMutation)(e,m);_.push(...a)}if(p.length){h.ranges=(0,n.rangeMerge)(h.ranges);let r=p.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})}),g.push({id:n.RemoveNumfmtMutation.id,params:h},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,h);_.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let v=(0,t.sequenceExecute)(g,i).result;return v&&o.pushUndoRedo({unitID:c,undoMutations:_,redoMutations:g}),v}},C={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(y(r)){d=Math.max(d,f(b(r)));return}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),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)){let t=c.worksheet.getCellRaw(e,n);g.push({row:e,col:n,pattern:y(t)?m(b(t),p):h})}else{let t=f(r.pattern),i=m(r.pattern,t+1);i!==r.pattern&&g.push({row:e,col:n,pattern:i})}})}),g.length?await r.executeCommand(S.id,{values:g}):!1}},w={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.RegionService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let l=[],u=c(o(a.getCurrentRegion()).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(S.id,{values:l})}},T={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(S.id,{values:a})}},E={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(y(r)){d=Math.max(d,f(b(r)));return}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),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)){let t=c.worksheet.getCellRaw(e,n);g.push({row:e,col:n,pattern:y(t)?m(b(t),p):h})}else{let t=f(r.pattern);g.push({row:e,col:n,pattern:m(r.pattern,t-1)})}})}),await r.executeCommand(S.id,{values:g})}},D=`sheets-numfmt.config`,O={};function k(e){"@babel/helpers - typeof";return k=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},k(e)}function A(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j(e){var t=A(e,`string`);return k(t)==`symbol`?t:t+``}function M(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t){return function(n,r){t(n,r,e)}}function P(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 F={tl:{size:6,color:`#409f11`}},I=class extends t.Disposable{constructor(e,t,n,r,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=a,this._localeService=o,this._configService=s,M(this,`_locale$`,new i.BehaviorSubject(null)),M(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){return this.getLocale()}getLocale(e){return this._locale$.getValue()??(0,t.getNumfmtLocaleTag)((e==null?void 0:e.getSnapshot().locale)??this._localeService.getCurrentLocale())}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,i.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=this.getLocale(i.workbook),l=i.workbook.getDateSystem(),u;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(u=e.n)}if(u||=this._numfmtService.getValue(o,s,i.row,i.col),(0,t.isDefaultFormat)(u==null?void 0:u.pattern))return a(r);if(r.t!==t.CellValueType.NUMBER){var d;if((0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER&&!((0,t.isTextFormat)(u==null?void 0:u.pattern)&&typeof r.v==`string`&&typeof((d=(0,t.getNumfmtParseValueFilter)(r.v,{locale:c,dateSystem:l}))==null?void 0:d.v)==`number`))return a(r)}let f=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(u==null?void 0:u.pattern)){var p;return(p=this._configService.getConfig(`sheets-numfmt.config`))!=null&&p.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...F},a(r))}let m=`${o}_${s}_${f.v}_${u==null?void 0:u.pattern}_${c}_${l}`,h=e.getValue(i.row,i.col);if(h&&h.parameters===m)return a({...r,...h.result});let g=v(u==null?void 0:u.pattern,Number(f.v),c,l),_=g.result,y={v:_,t:t.CellValueType.NUMBER};if(_===``&&(y.coverable=!1),g.color){let e=this._themeService.getColorFromTheme(`${g.color}.500`)??g.color;e&&(y.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:y,parameters:m}),Object.assign(r,y),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,i.switchMap)(e=>(e==null?void 0:e.activeSheet$)??(0,i.of)(null)),(0,i.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};I=P([N(0,t.IUniverInstanceService),N(1,(0,t.Inject)(n.SheetInterceptorService)),N(2,(0,t.Inject)(t.ThemeService)),N(3,(0,t.Inject)(t.ICommandService)),N(4,(0,t.Inject)(n.INumfmtService)),N(5,(0,t.Inject)(t.LocaleService)),N(6,t.IConfigService)],I);var L=`@univerjs/sheets-numfmt`,R=`1.0.3`;let z=class extends t.Plugin{constructor(e=O,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},O,this._config);this._configService.setConfig(D,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[I]]),(0,t.touchDependencies)(this._injector,[[I]]),[C,E,w,T,S].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};M(z,`pluginName`,`SHEET_NUMFMT_PLUGIN`),M(z,`packageName`,L),M(z,`version`,R),M(z,`type`,t.UniverInstanceType.UNIVER_SHEET),z=P([(0,t.DependentOn)(n.UniverSheetsPlugin),N(1,(0,t.Inject)(t.Injector)),N(2,t.IConfigService),N(3,t.ICommandService)],z),e.AddDecimalCommand=C,e.CURRENCYFORMAT=d,e.DATEFMTLISG=l,e.NUMBERFORMAT=u,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=D,e.SetCurrencyCommand=w,e.SetNumfmtCommand=S,e.SetPercentCommand=T,Object.defineProperty(e,"SheetsNumfmtCellContentController",{enumerable:!0,get:function(){return I}}),e.SubtractDecimalCommand=E,Object.defineProperty(e,"UniverSheetsNumfmtPlugin",{enumerable:!0,get:function(){return z}}),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=_,e.getPatternPreviewIgnoreGeneral=v,e.getPatternType=g,e.isPatternHasDecimal=h,e.localeCurrencySymbolMap=a,e.setPatternDecimal=m});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@univerjs/engine-formula"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`@univerjs/engine-formula`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsNumfmt={},e.UniverCore,e.UniverSheets,e.UniverEngineFormula,e.rxjs))})(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.VI_VN:return{icon:`DongIcon`,symbol:a.get(e)||`₫`,locale:e};case t.LocaleType.AR_SA:case t.LocaleType.FA_IR:return{icon:`RialIcon`,symbol:a.get(e)||`﷼`,locale:e};case t.LocaleType.KO_KR:return{icon:`WonIcon`,symbol:a.get(e)||`₩`,locale:e};case t.LocaleType.ID_ID:return{icon:`RupiahIcon`,symbol:a.get(e)||`Rp`,locale:e};case t.LocaleType.PL_PL:return{icon:`ZlotyIcon`,symbol:a.get(e)||`zł`,locale:e};case t.LocaleType.EN_US:case t.LocaleType.PT_BR: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)=>e?t.numfmt.getFormatInfo(e).maxDecimals??n: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=e=>{let n=t.numfmt.getFormatInfo(e).type||`unknown`;return n===`general`&&t.numfmt.tokenize(e).some(e=>e.type===t.numfmt.tokenTypes.CONDITION)?`number`:n},_=(e,n,r=`en`,i)=>{try{let a=t.numfmt.formatColor(e,n),o=a?String(a):void 0,s=t.numfmt.format(e,n,{locale:r,dateSystem:i,throws:!1});return n<0?{result:s,color:o}:{result:s}}catch(t){console.warn(`getPatternPreview error:`,e,t)}return{result:String(n)}},v=(e,n,i,a)=>e===t.DEFAULT_NUMBER_FORMAT?{result:String((0,r.stripErrorMargin)(n))}:_(e,n,i,a);function y(e){return(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&/e/i.test(String(e.v))}function b(e){let t=String(e==null?void 0:e.v),n=t.search(/e/i),r=t.indexOf(`.`),i=n>-1&&r>-1?n-r-1:0;return`0.${`0`.repeat(Math.max(2,i))}E+00`}function x(e){return(0,t.isDefaultFormat)(e)||(0,t.isTextFormat)(e)||g(e)===`scientific`}let S={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=>!y(u.getCellRaw(e.row,e.col))||x(e.pattern)),f=d.filter(e=>!!e.pattern),p=d.filter(e=>!e.pattern);if(!f.length&&!p.length)return!1;let m=(0,n.transformCellsToRange)(c,l,f),h={unitId:c,subUnitId:l,ranges:p.map(e=>({startColumn:e.col,startRow:e.row,endColumn:e.col,endRow:e.row}))},g=[],_=[];if(f.length){let r=f.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(m.values).forEach(e=>{let t=m.values[e];t.ranges=(0,n.rangeMerge)(t.ranges)}),g.push({id:n.SetNumfmtMutation.id,params:m});let a=(0,n.factorySetNumfmtUndoMutation)(e,m);_.push(...a)}if(p.length){h.ranges=(0,n.rangeMerge)(h.ranges);let r=p.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})}),g.push({id:n.RemoveNumfmtMutation.id,params:h},{id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:r}});let a=(0,n.factoryRemoveNumfmtUndoMutation)(e,h);_.push({id:n.SetRangeValuesMutation.id,params:{unitId:c,subUnitId:l,cellValue:i.getMatrix()}},...a)}let v=(0,t.sequenceExecute)(g,i).result;return v&&o.pushUndoRedo({unitID:c,undoMutations:_,redoMutations:g}),v}},C={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(y(r)){d=Math.max(d,f(b(r)));return}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),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)){let t=c.worksheet.getCellRaw(e,n);g.push({row:e,col:n,pattern:y(t)?m(b(t),p):h})}else{let t=f(r.pattern),i=m(r.pattern,t+1);i!==r.pattern&&g.push({row:e,col:n,pattern:i})}})}),g.length?await r.executeCommand(S.id,{values:g}):!1}},w={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.RegionService),s=i.getCurrentSelections();if(!s||!s.length)return!1;let l=[],u=c(o(a.getCurrentRegion()).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(S.id,{values:l})}},T={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(S.id,{values:a})}},E={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(y(r)){d=Math.max(d,f(b(r)));return}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),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)){let t=c.worksheet.getCellRaw(e,n);g.push({row:e,col:n,pattern:y(t)?m(b(t),p):h})}else{let t=f(r.pattern);g.push({row:e,col:n,pattern:m(r.pattern,t-1)})}})}),await r.executeCommand(S.id,{values:g})}},D=`sheets-numfmt.config`,O={};function k(e){"@babel/helpers - typeof";return k=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},k(e)}function A(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j(e){var t=A(e,`string`);return k(t)==`symbol`?t:t+``}function M(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t){return function(n,r){t(n,r,e)}}function P(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 F={tl:{size:6,color:`#409f11`}},I=class extends t.Disposable{constructor(e,t,n,r,a,o,s){super(),this._instanceService=e,this._sheetInterceptorService=t,this._themeService=n,this._commandService=r,this._numfmtService=a,this._localeService=o,this._configService=s,M(this,`_locale$`,new i.BehaviorSubject(null)),M(this,`locale$`,this._locale$.asObservable()),this._initInterceptorCellContent()}get locale(){return this.getLocale()}getLocale(e){return this._locale$.getValue()??(0,t.getNumfmtLocaleTag)((e==null?void 0:e.getSnapshot().locale)??this._localeService.getCurrentLocale())}_initInterceptorCellContent(){let e=new t.ObjectMatrix;this.disposeWithMe((0,i.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=this.getLocale(i.workbook),l=i.workbook.getDateSystem(),u;if(r!=null&&r.s){let e=i.workbook.getStyles().get(r.s);e!=null&&e.n&&(u=e.n)}if(u||=this._numfmtService.getValue(o,s,i.row,i.col),(0,t.isDefaultFormat)(u==null?void 0:u.pattern))return a(r);if(r.t!==t.CellValueType.NUMBER){var d;if((0,n.checkCellValueType)(r.v,r.t)!==t.CellValueType.NUMBER&&!((0,t.isTextFormat)(u==null?void 0:u.pattern)&&typeof r.v==`string`&&typeof((d=(0,t.getNumfmtParseValueFilter)(r.v,{locale:c,dateSystem:l}))==null?void 0:d.v)==`number`))return a(r)}let f=r;if((!r||r===i.rawData)&&(r={...i.rawData}),(0,t.isTextFormat)(u==null?void 0:u.pattern)){var p;return(p=this._configService.getConfig(`sheets-numfmt.config`))!=null&&p.disableTextFormatMark?(r.t=t.CellValueType.STRING,a(r)):(r.t=t.CellValueType.STRING,r.markers={...r==null?void 0:r.markers,...F},a(r))}let m=`${o}_${s}_${f.v}_${u==null?void 0:u.pattern}_${c}_${l}`,h=e.getValue(i.row,i.col);if(h&&h.parameters===m)return a({...r,...h.result});let g=v(u==null?void 0:u.pattern,Number(f.v),c,l),_=g.result,y={v:_,t:t.CellValueType.NUMBER};if(_===``&&(y.coverable=!1),g.color){let e=this._themeService.getColorFromTheme(`${g.color}.500`)??g.color;e&&(y.interceptorStyle={cl:{rgb:e}})}return e.setValue(i.row,i.col,{result:y,parameters:m}),Object.assign(r,y),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,i.switchMap)(e=>(e==null?void 0:e.activeSheet$)??(0,i.of)(null)),(0,i.skip)(1)).subscribe(()=>e.reset()))}setNumfmtLocal(e){this._locale$.next(e)}};I=P([N(0,t.IUniverInstanceService),N(1,(0,t.Inject)(n.SheetInterceptorService)),N(2,(0,t.Inject)(t.ThemeService)),N(3,(0,t.Inject)(t.ICommandService)),N(4,(0,t.Inject)(n.INumfmtService)),N(5,(0,t.Inject)(t.LocaleService)),N(6,t.IConfigService)],I);var L=`@univerjs/sheets-numfmt`,R=`1.0.4`;let z=class extends t.Plugin{constructor(e=O,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},O,this._config);this._configService.setConfig(D,a)}onStarting(){(0,t.registerDependencies)(this._injector,[[I]]),(0,t.touchDependencies)(this._injector,[[I]]),[C,E,w,T,S].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}};M(z,`pluginName`,`SHEET_NUMFMT_PLUGIN`),M(z,`packageName`,L),M(z,`version`,R),M(z,`type`,t.UniverInstanceType.UNIVER_SHEET),z=P([(0,t.DependentOn)(n.UniverSheetsPlugin),N(1,(0,t.Inject)(t.Injector)),N(2,t.IConfigService),N(3,t.ICommandService)],z);let B=e=>t.currencySymbols.find(t=>e.includes(t)),V={dates:[`yyyy/MM/dd`,`MM-dd`],shortDate:`MM-dd`},H={dates:[`m/d/yyyy`,`mm/dd/yyyy`,`mmm d, yyyy`,`m/d`,`mmmm d`],shortDate:`m/d`},U={dates:[`dd/mm/yyyy`,`d/m/yyyy`,`d mmm yyyy`,`dd/mm`,`d mmmm`],shortDate:`dd/mm`},W={dates:[`dd.mm.yyyy`,`d.m.yyyy`,`d mmm yyyy`,`dd.mm`,`d mmmm`],shortDate:`dd.mm`},G={dates:[`yyyy/MM/dd`,`yyyy"年"MM"月"dd"日"`,`MM-dd`,`M"月"d"日"`],shortDate:`MM-dd`,periodBeforeTime:!0},K={[t.LocaleType.EN_US]:H,[t.LocaleType.FR_FR]:U,[t.LocaleType.ZH_CN]:G,[t.LocaleType.RU_RU]:W,[t.LocaleType.ZH_TW]:G,[t.LocaleType.ZH_HK]:{...G,dates:[`dd/MM/yyyy`,...G.dates],shortDate:`dd/MM`},[t.LocaleType.VI_VN]:U,[t.LocaleType.FA_IR]:V,[t.LocaleType.CA_ES]:{dates:[`dd/mm/yyyy`,`d/m/yyyy`,`dd/mm`],shortDate:`dd/mm`},[t.LocaleType.JA_JP]:G,[t.LocaleType.KO_KR]:{dates:[`yyyy. mm. dd.`,`yyyy"년" m"월" d"일"`,`mm-dd`,`m"월" d"일"`],shortDate:`mm-dd`,periodBeforeTime:!0},[t.LocaleType.ES_ES]:U,[t.LocaleType.SK_SK]:W,[t.LocaleType.PT_BR]:U,[t.LocaleType.DE_DE]:W,[t.LocaleType.IT_IT]:U,[t.LocaleType.ID_ID]:U,[t.LocaleType.PL_PL]:W,[t.LocaleType.AR_SA]:{dates:[`dd/mm/yyyy`,`d/m/yyyy`,`dd/mm`],shortDate:`dd/mm`}};function q(e){let t=K[e]??V,n=[`hh:mm`,`h:mm`,`h:mm:ss`].map(e=>t.periodBeforeTime?`AM/PM ${e}`:`${e} AM/PM`);return[...new Set([`yyyy-MM-dd`,...t.dates,`h:mm:ss`,`h:mm`,...n,`${t.shortDate} ${n[0]}`])]}let J=()=>t.currencySymbols.map(e=>({label:e,value:e})),Y=e=>d.map(t=>({label:t.label(e),value:t.suffix(e),color:t.color})),X=(0,t.excelDateTimeSerial)(new Date(Date.UTC(1930,7,5,13,30,30)));e.AddDecimalCommand=C,e.CURRENCYFORMAT=d,e.DATEFMTLISG=l,e.NUMBERFORMAT=u,e.SHEETS_NUMFMT_PLUGIN_CONFIG_KEY=D,e.SetCurrencyCommand=w,e.SetNumfmtCommand=S,e.SetPercentCommand=T,Object.defineProperty(e,"SheetsNumfmtCellContentController",{enumerable:!0,get:function(){return I}}),e.SubtractDecimalCommand=E,Object.defineProperty(e,"UniverSheetsNumfmtPlugin",{enumerable:!0,get:function(){return z}}),e.getCurrencyFormat=c,e.getCurrencyFormatOptions=Y,e.getCurrencyOptions=J,e.getCurrencySymbolByLocale=s,e.getCurrencySymbolIconByLocale=o,e.getCurrencyType=B,e.getDateFormatOptions=(e,n)=>{if(e===void 0)return l.map(e=>({label:e.label,value:e.suffix}));let r=(0,t.getNumfmtLocaleTag)(e),i=q(e);return n&&!i.includes(n)&&i.unshift(n),i.map(e=>({label:t.numfmt.format(e,X,{locale:r}),value:e}))},e.getDecimalFromPattern=f,e.getDecimalString=p,e.getNumberFormatOptions=()=>u.map(e=>({label:e.label,value:e.suffix,color:e.color})),e.getPatternPreview=_,e.getPatternPreviewIgnoreGeneral=v,e.getPatternType=g,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": "1.0.3",
3
+ "version": "1.0.4",
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,12 +62,12 @@
62
62
  "rxjs": ">=7.0.0"
63
63
  },
64
64
  "dependencies": {
65
- "@univerjs/core": "1.0.3",
66
- "@univerjs/engine-formula": "1.0.3",
67
- "@univerjs/sheets": "1.0.3"
65
+ "@univerjs/core": "1.0.4",
66
+ "@univerjs/engine-formula": "1.0.4",
67
+ "@univerjs/sheets": "1.0.4"
68
68
  },
69
69
  "devDependencies": {
70
- "@univerjs-infra/shared": "1.0.3",
70
+ "@univerjs-infra/shared": "1.0.4",
71
71
  "rxjs": "^7.8.2",
72
72
  "typescript": "^6.0.3",
73
73
  "vitest": "^5.0.0"