From b7d852da8496f2d5d0b57a776f28974f4d1e3b9b Mon Sep 17 00:00:00 2001 From: Shashank Agarwal <53386582+Corbe30@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:14:56 +0000 Subject: [PATCH] added: number format support - Volts, ampere, ohms --- packages/core/src/locale/en.ts | 7 +++- packages/core/src/locale/es.ts | 5 +++ packages/core/src/locale/hi.ts | 5 +++ packages/core/src/locale/zh.ts | 5 +++ packages/core/src/locale/zh_tw.ts | 5 +++ packages/core/src/modules/ssf.js | 2 +- .../src/components/FormatSearch/index.tsx | 41 +++++++++++-------- .../react/src/components/Toolbar/index.tsx | 12 ++++++ 8 files changed, 63 insertions(+), 19 deletions(-) diff --git a/packages/core/src/locale/en.ts b/packages/core/src/locale/en.ts index 04b1923a..e40de255 100644 --- a/packages/core/src/locale/en.ts +++ b/packages/core/src/locale/en.ts @@ -11217,7 +11217,7 @@ export default { { name: "Iraqi Dinar", pos: "before", value: "din" }, { name: "Iranian Rial", pos: "before", value: "Rial" }, { name: "New Israeli Shekel", pos: "before", value: "?" }, - { name: "Indian Rupee", pos: "before", value: "?" }, + { name: "Indian Rupee", pos: "before", value: "₹" }, { name: "Indonesian Rupiah", pos: "before", value: "Rp" }, { name: "Jordanian Dinar", pos: "before", value: "din" }, { name: "VND", pos: "after", value: "?" }, @@ -11226,6 +11226,11 @@ export default { { name: "Chilean Peso", pos: "before", value: "$" }, { name: "CFA Franc BEAC", pos: "before", value: "FCFA" }, ], + numberFmtList: [ + { name: "Volts", pos: "after", value: "V" }, + { name: "Ampere", pos: "after", value: "A" }, + { name: "Ohms", pos: "after", value: "Ω" }, + ], defaultFmt: (currency: string) => [ { text: "Automatic", value: "General", example: "" }, { text: "Plain text", value: "@", example: "" }, diff --git a/packages/core/src/locale/es.ts b/packages/core/src/locale/es.ts index 3481cf24..a14c2336 100644 --- a/packages/core/src/locale/es.ts +++ b/packages/core/src/locale/es.ts @@ -11199,6 +11199,11 @@ export default { ChileanPeso: "Chilean Peso", CFAFrancBEAC: "CFA Franc BEAC", }, + numberFmtList: [ + { name: "Volts", pos: "after", value: "V" }, + { name: "Ampere", pos: "after", value: "A" }, + { name: "Ohms", pos: "after", value: "Ω" }, + ], defaultFmt: (currency: string) => [ { text: "Automático", value: "General", example: "" }, { text: "Texto", value: "@", example: "" }, diff --git a/packages/core/src/locale/hi.ts b/packages/core/src/locale/hi.ts index 10fe1741..0bff0260 100644 --- a/packages/core/src/locale/hi.ts +++ b/packages/core/src/locale/hi.ts @@ -11232,6 +11232,11 @@ export default { { name: "चिली पेसो", pos: "before", value: "$" }, { name: "सीएफए फ्रैंक बीईएसी", pos: "before", value: "FCFA" }, ], + numberFmtList: [ + { name: "Volts", pos: "after", value: "V" }, + { name: "Ampere", pos: "after", value: "A" }, + { name: "Ohms", pos: "after", value: "Ω" }, + ], defaultFmt: (currency: string) => [ { text: "स्वचालित", value: "General", example: "" }, { text: "सादा टेक्स्ट", value: "@", example: "" }, diff --git a/packages/core/src/locale/zh.ts b/packages/core/src/locale/zh.ts index c06f5298..78ec20e5 100644 --- a/packages/core/src/locale/zh.ts +++ b/packages/core/src/locale/zh.ts @@ -11209,6 +11209,11 @@ export default { { name: "智利比索", pos: "before", value: "$" }, { name: "中非金融合作法郎", pos: "before", value: "FCFA" }, ], + numberFmtList: [ + { name: "Volts", pos: "after", value: "V" }, + { name: "Ampere", pos: "after", value: "A" }, + { name: "Ohms", pos: "after", value: "Ω" }, + ], defaultFmt: (currency: string) => [ { text: "自动", value: "General", example: "" }, { text: "纯文本", value: "@", example: "" }, diff --git a/packages/core/src/locale/zh_tw.ts b/packages/core/src/locale/zh_tw.ts index d5f92c4a..969217ba 100644 --- a/packages/core/src/locale/zh_tw.ts +++ b/packages/core/src/locale/zh_tw.ts @@ -11176,6 +11176,11 @@ export default { ChileanPeso: "智利比索", CFAFrancBEAC: "中非金融合作法郎", }, + numberFmtList: [ + { name: "Volts", pos: "after", value: "V" }, + { name: "Ampere", pos: "after", value: "A" }, + { name: "Ohms", pos: "after", value: "Ω" }, + ], defaultFmt: (currency: string) => [ { text: "自動", value: "General", example: "" }, { text: "純文字", value: "@", example: "" }, diff --git a/packages/core/src/modules/ssf.js b/packages/core/src/modules/ssf.js index 0d24b4c3..c7ea4597 100644 --- a/packages/core/src/modules/ssf.js +++ b/packages/core/src/modules/ssf.js @@ -1418,7 +1418,7 @@ const make_ssf = function make_ssf(SSF) { default: // if ("¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); if ( - "¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€₹$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP$¥LekdinAf$dhAflRial?£BirrKzMOPPGKRsGsB/R$ррlevkrKMzBsPNuFBuKPkrRD$NfkCFA?CVEGMDFrCDHTGNAfLFdjKGSFGGHSRielKCFknKshLSLL£LtRFRONArRfMWKRMMURsMROS/KMDLMTnRC$kr€GELCHFSLLSCRDbSZLSDGSOSSomFCFPTShT$VUVQUGXгрнsomWSTNT$FtDramRpZMWFCFA".indexOf( + "Ω¤฿BsBr₵₡₫ƒFtRs.₭kr£₤Lm₥₦₱PQRSkRp৲৳R$S/.〒₮₩¥NT¥zł₴₪៛руб€₹$,$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP$¥LekdinAf$dhAflRial?£BirrKzMOPPGKRsGsB/R$ррlevkrKMzBsPNuFBuKPkrRD$NfkCFA?CVEGMDFrCDHTGNAfLFdjKGSFGGHSRielKCFknKshLSLL£LtRFRONArRfMWKRMMURsMROS/KMDLMTnRC$kr€GELCHFSLLSCRDbSZLSDGSOSSomFCFPTShT$VUVQUGXгрнsomWSTNT$FtDramRpZMWFCFA".indexOf( c ) === -1 ) diff --git a/packages/react/src/components/FormatSearch/index.tsx b/packages/react/src/components/FormatSearch/index.tsx index b1eb8b32..ad454ede 100644 --- a/packages/react/src/components/FormatSearch/index.tsx +++ b/packages/react/src/components/FormatSearch/index.tsx @@ -21,15 +21,16 @@ export const FormatSearch: React.FC<{ } = useContext(WorkbookContext); const [decimalPlace, setDecimalPlace] = useState(2); const [selectedFormatIndex, setSelectedFormatIndex] = useState(0); - const { button, format, currencyDetail, dateFmtList } = locale(context); + const { button, format, currencyDetail, dateFmtList, numberFmtList } = + locale(context); const { showDialog } = useDialog(); const toolbarFormatAll = useMemo( () => ({ currency: currencyDetail, date: dateFmtList, - number: [], // has not been defined + number: numberFmtList, }), - [currencyDetail, dateFmtList] + [currencyDetail, dateFmtList, numberFmtList] ); const toolbarFormat = useMemo( () => toolbarFormatAll[type], @@ -46,7 +47,8 @@ export const FormatSearch: React.FC<{ setContext((ctx) => { const index = getSheetIndex(ctx, ctx.currentSheetId); if (_.isNil(index)) return; - const selectedFormat = toolbarFormat[selectedFormatIndex].value; + const selectedFormatVal = toolbarFormat[selectedFormatIndex].value; + const selectedFormatPos = toolbarFormat[selectedFormatIndex].pos; _.forEach(ctx.luckysheet_select_save, (selection) => { for (let r = selection.row[0]; r <= selection.row[1]; r += 1) { for (let c = selection.column[0]; c <= selection.column[1]; c += 1) { @@ -55,12 +57,22 @@ export const FormatSearch: React.FC<{ ctx.luckysheetfile[index].data?.[r][c]?.ct?.t === "n" ) { const zero = 0; - ctx.luckysheetfile[index].data![r][c]!.ct!.fa = - `${selectedFormat}`.concat(zero.toFixed(decimalPlace)); - ctx.luckysheetfile[index].data![r][c]!.m = update( - `${selectedFormat}`.concat(zero.toFixed(decimalPlace)), - ctx.luckysheetfile[index].data![r][c]!.v - ); + if (selectedFormatPos === "after") { + ctx.luckysheetfile[index].data![r][c]!.ct!.fa = zero + .toFixed(decimalPlace) + .concat(`${selectedFormatVal}`); + ctx.luckysheetfile[index].data![r][c]!.m = update( + zero.toFixed(decimalPlace).concat(`${selectedFormatVal}`), + ctx.luckysheetfile[index].data![r][c]!.v + ); + } else { + ctx.luckysheetfile[index].data![r][c]!.ct!.fa = + `${selectedFormatVal}`.concat(zero.toFixed(decimalPlace)); + ctx.luckysheetfile[index].data![r][c]!.m = update( + `${selectedFormatVal}`.concat(zero.toFixed(decimalPlace)), + ctx.luckysheetfile[index].data![r][c]!.v + ); + } } } } @@ -94,12 +106,7 @@ export const FormatSearch: React.FC<{ {tips} {format.format}: -
+
{format.decimalPlaces}:
{ + showDialog( + + ); + setOpen(false); + }, + }, ].map((v) => (