diff --git a/webapp/packages/core-utils/src/declensionOfNumber.ts b/webapp/packages/core-utils/src/declensionOfNumber.ts new file mode 100644 index 0000000000..0ff755c7e3 --- /dev/null +++ b/webapp/packages/core-utils/src/declensionOfNumber.ts @@ -0,0 +1,25 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2021 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ + +export function declensionOfNumber(value: number, words: string[]) { + value = Math.abs(value) % 100; + const num = value % 10; + if (value > 10 && value < 20) { + return words[2]; + } + + if (num > 1 && num < 5) { + return words[1]; + } + + if (num === 1) { + return words[0]; + } + + return words[2]; +} diff --git a/webapp/packages/core-utils/src/index.ts b/webapp/packages/core-utils/src/index.ts index 337dd0750e..a7307525ed 100644 --- a/webapp/packages/core-utils/src/index.ts +++ b/webapp/packages/core-utils/src/index.ts @@ -7,6 +7,7 @@ export * from './generateFileName'; export * from './md5'; export * from './TextTools'; export * from './copyToClipboard'; +export * from './declensionOfNumber'; export * from './Promises/CancellablePromise'; export * from './Promises/Deferred';