n2words 1.16.2 → 1.16.3

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.
Files changed (61) hide show
  1. package/dist/n2words.d.ts +3 -0
  2. package/dist/n2words.js +2 -1
  3. package/dist/n2words.js.map +1 -0
  4. package/lib/classes/AbstractLanguage.d.ts +53 -0
  5. package/lib/classes/BaseLanguage.d.ts +59 -0
  6. package/lib/i18n/ar.d.ts +27 -0
  7. package/lib/i18n/ar.js +28 -13
  8. package/lib/i18n/az.d.ts +15 -0
  9. package/lib/i18n/az.js +4 -3
  10. package/lib/i18n/cz.d.ts +12 -0
  11. package/lib/i18n/cz.js +2 -2
  12. package/lib/i18n/de.d.ts +17 -0
  13. package/lib/i18n/de.js +3 -3
  14. package/lib/i18n/dk.d.ts +14 -0
  15. package/lib/i18n/dk.js +3 -3
  16. package/lib/i18n/en.d.ts +22 -0
  17. package/lib/i18n/en.js +1 -1
  18. package/lib/i18n/es.d.ts +16 -0
  19. package/lib/i18n/es.js +5 -5
  20. package/lib/i18n/fa.d.ts +54 -0
  21. package/lib/i18n/fa.js +1 -1
  22. package/lib/i18n/fr.d.ts +15 -0
  23. package/lib/i18n/fr.js +6 -6
  24. package/lib/i18n/he.d.ts +28 -0
  25. package/lib/i18n/he.js +2 -2
  26. package/lib/i18n/hr.d.ts +35 -0
  27. package/lib/i18n/hr.js +2 -2
  28. package/lib/i18n/hu.d.ts +17 -0
  29. package/lib/i18n/hu.js +1 -1
  30. package/lib/i18n/id.d.ts +43 -0
  31. package/lib/i18n/id.js +6 -6
  32. package/lib/i18n/it.d.ts +29 -0
  33. package/lib/i18n/it.js +24 -14
  34. package/lib/i18n/ko.d.ts +15 -0
  35. package/lib/i18n/ko.js +3 -3
  36. package/lib/i18n/lt.d.ts +12 -0
  37. package/lib/i18n/lt.js +2 -2
  38. package/lib/i18n/lv.d.ts +12 -0
  39. package/lib/i18n/lv.js +3 -3
  40. package/lib/i18n/nl.d.ts +20 -0
  41. package/lib/i18n/nl.js +5 -5
  42. package/lib/i18n/no.d.ts +15 -0
  43. package/lib/i18n/no.js +3 -3
  44. package/lib/i18n/pl.d.ts +11 -0
  45. package/lib/i18n/pl.js +2 -2
  46. package/lib/i18n/pt.d.ts +26 -0
  47. package/lib/i18n/pt.js +1 -1
  48. package/lib/i18n/ru.d.ts +84 -0
  49. package/lib/i18n/ru.js +1 -1
  50. package/lib/i18n/sr.d.ts +35 -0
  51. package/lib/i18n/sr.js +2 -2
  52. package/lib/i18n/tr.d.ts +15 -0
  53. package/lib/i18n/tr.js +3 -3
  54. package/lib/i18n/uk.d.ts +11 -0
  55. package/lib/i18n/uk.js +2 -2
  56. package/lib/i18n/vi.d.ts +70 -0
  57. package/lib/i18n/zh.d.ts +18 -0
  58. package/lib/i18n/zh.js +3 -3
  59. package/lib/n2words.d.ts +7 -0
  60. package/lib/n2words.js +1 -1
  61. package/package.json +15 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n2words.js","mappings":"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","sources":["webpack://n2words/webpack/universalModuleDefinition","webpack://n2words/./node_modules/core-js/internals/a-callable.js","webpack://n2words/./node_modules/core-js/internals/an-object.js","webpack://n2words/./node_modules/core-js/internals/array-includes.js","webpack://n2words/./node_modules/core-js/internals/array-set-length.js","webpack://n2words/./node_modules/core-js/internals/classof-raw.js","webpack://n2words/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://n2words/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://n2words/./node_modules/core-js/internals/create-property-descriptor.js","webpack://n2words/./node_modules/core-js/internals/define-built-in.js","webpack://n2words/./node_modules/core-js/internals/define-global-property.js","webpack://n2words/./node_modules/core-js/internals/descriptors.js","webpack://n2words/./node_modules/core-js/internals/document-all.js","webpack://n2words/./node_modules/core-js/internals/document-create-element.js","webpack://n2words/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://n2words/./node_modules/core-js/internals/engine-user-agent.js","webpack://n2words/./node_modules/core-js/internals/engine-v8-version.js","webpack://n2words/./node_modules/core-js/internals/enum-bug-keys.js","webpack://n2words/./node_modules/core-js/internals/export.js","webpack://n2words/./node_modules/core-js/internals/fails.js","webpack://n2words/./node_modules/core-js/internals/function-bind-native.js","webpack://n2words/./node_modules/core-js/internals/function-call.js","webpack://n2words/./node_modules/core-js/internals/function-name.js","webpack://n2words/./node_modules/core-js/internals/function-uncurry-this.js","webpack://n2words/./node_modules/core-js/internals/get-built-in.js","webpack://n2words/./node_modules/core-js/internals/get-method.js","webpack://n2words/./node_modules/core-js/internals/global.js","webpack://n2words/./node_modules/core-js/internals/has-own-property.js","webpack://n2words/./node_modules/core-js/internals/hidden-keys.js","webpack://n2words/./node_modules/core-js/internals/ie8-dom-define.js","webpack://n2words/./node_modules/core-js/internals/indexed-object.js","webpack://n2words/./node_modules/core-js/internals/inspect-source.js","webpack://n2words/./node_modules/core-js/internals/internal-state.js","webpack://n2words/./node_modules/core-js/internals/is-array.js","webpack://n2words/./node_modules/core-js/internals/is-callable.js","webpack://n2words/./node_modules/core-js/internals/is-forced.js","webpack://n2words/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://n2words/./node_modules/core-js/internals/is-object.js","webpack://n2words/./node_modules/core-js/internals/is-pure.js","webpack://n2words/./node_modules/core-js/internals/is-symbol.js","webpack://n2words/./node_modules/core-js/internals/length-of-array-like.js","webpack://n2words/./node_modules/core-js/internals/make-built-in.js","webpack://n2words/./node_modules/core-js/internals/math-trunc.js","webpack://n2words/./node_modules/core-js/internals/object-define-property.js","webpack://n2words/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://n2words/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://n2words/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://n2words/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://n2words/./node_modules/core-js/internals/object-keys-internal.js","webpack://n2words/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://n2words/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://n2words/./node_modules/core-js/internals/own-keys.js","webpack://n2words/./node_modules/core-js/internals/require-object-coercible.js","webpack://n2words/./node_modules/core-js/internals/shared-key.js","webpack://n2words/./node_modules/core-js/internals/shared-store.js","webpack://n2words/./node_modules/core-js/internals/shared.js","webpack://n2words/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://n2words/./node_modules/core-js/internals/to-absolute-index.js","webpack://n2words/./node_modules/core-js/internals/to-indexed-object.js","webpack://n2words/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://n2words/./node_modules/core-js/internals/to-length.js","webpack://n2words/./node_modules/core-js/internals/to-object.js","webpack://n2words/./node_modules/core-js/internals/to-primitive.js","webpack://n2words/./node_modules/core-js/internals/to-property-key.js","webpack://n2words/./node_modules/core-js/internals/try-to-string.js","webpack://n2words/./node_modules/core-js/internals/uid.js","webpack://n2words/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://n2words/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://n2words/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://n2words/./node_modules/core-js/internals/well-known-symbol.js","webpack://n2words/./node_modules/core-js/modules/es.array.push.js","webpack://n2words/webpack/bootstrap","webpack://n2words/webpack/runtime/define property getters","webpack://n2words/webpack/runtime/hasOwnProperty shorthand","webpack://n2words/./lib/classes/AbstractLanguage.js","webpack://n2words/./lib/i18n/ar.js","webpack://n2words/./lib/classes/BaseLanguage.js","webpack://n2words/./lib/i18n/az.js","webpack://n2words/./lib/i18n/ru.js","webpack://n2words/./lib/i18n/cz.js","webpack://n2words/./lib/i18n/de.js","webpack://n2words/./lib/i18n/dk.js","webpack://n2words/./lib/i18n/en.js","webpack://n2words/./lib/i18n/es.js","webpack://n2words/./lib/i18n/fa.js","webpack://n2words/./lib/i18n/fr.js","webpack://n2words/./lib/i18n/he.js","webpack://n2words/./lib/i18n/hr.js","webpack://n2words/./lib/i18n/hu.js","webpack://n2words/./lib/i18n/id.js","webpack://n2words/./lib/i18n/it.js","webpack://n2words/./lib/i18n/ko.js","webpack://n2words/./lib/i18n/lt.js","webpack://n2words/./lib/i18n/lv.js","webpack://n2words/./lib/i18n/nl.js","webpack://n2words/./lib/i18n/no.js","webpack://n2words/./lib/i18n/pl.js","webpack://n2words/./lib/i18n/pt.js","webpack://n2words/./lib/i18n/sr.js","webpack://n2words/./lib/i18n/tr.js","webpack://n2words/./lib/i18n/uk.js","webpack://n2words/./lib/i18n/vi.js","webpack://n2words/./lib/i18n/zh.js","webpack://n2words/./lib/n2words.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"n2words\"] = factory();\n\telse\n\t\troot[\"n2words\"] = factory();\n})(this, () => {\nreturn ","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Creates new language class that processes decimals separately.\n * Requires implementing `toCardinal`.\n */\nexport default class {\n #negativeWord;\n #separatorWord;\n #zero;\n #spaceSeparator;\n #wholeNumber;\n\n /**\n * @param {object} options Options for class.\n * @param {string} [options.negativeWord] Word that precedes a negative number (if any).\n * @param {string} options.separatorWord Word that separates cardinal numbers (i.e. \"and\").\n * @param {string} options.zero Word for 0 (i.e. \"zero\").\n * @param {string} [options.spaceSeparator] Character that separates words.\n */\n constructor(options) {\n // Merge supplied options with defaults\n options = Object.assign({\n negativeWord: '',\n separatorWord: undefined,\n zeroWord: undefined,\n spaceSeparator: ' '\n }, options);\n\n // Make options available to class\n this.#negativeWord = options.negativeWord;\n this.#separatorWord = options.separatorWord;\n this.#zero = options.zero;\n this.#spaceSeparator = options.spaceSeparator;\n }\n\n /**\n * @returns {string} Word that precedes a negative number (if any).\n */\n get negativeWord() {\n return this.#negativeWord;\n }\n\n /**\n * @returns {string} Word that separates cardinal numbers (i.e. \"and\").\n */\n get separatorWord() {\n return this.#separatorWord;\n }\n\n /**\n * @returns {string} Word for 0 (i.e. \"zero\").\n */\n get zero() {\n return this.#zero;\n }\n\n /**\n * @returns {string} Character that separates words.\n */\n get spaceSeparator() {\n return this.#spaceSeparator;\n }\n\n /**\n * @returns {number} Input value without decimal.\n */\n get wholeNumber() {\n return this.#wholeNumber;\n }\n\n /**\n * Convert decimal number to a string array of cardinal numbers.\n * @param {number} decimal Decimal number to convert.\n * @returns {string} Value in written format.\n */\n decimalToCardinal(decimal) {\n const words = [];\n\n // Split decimal portion into an array of characters in reverse\n const chars = decimal.split('').reverse();\n\n // Loop through array (from the end) adding words to output array\n while (chars.pop() == '0') {\n words.push(this.zero);\n }\n\n // Add decimal number to word array\n return words.concat(this.toCardinal(BigInt(decimal)));\n }\n\n /**\n * Converts a number to written form.\n * @param {number|string} value Number to be convert.\n * @throws {Error} Value must be a valid number.\n * @returns {string} Value in written format.\n */\n floatToCardinal(value) {\n // Validate user input value\n if (typeof value == 'number') {\n if (Number.isNaN(value)) {\n throw new Error('NaN is not an accepted number.');\n }\n value = value.toString();\n } else if (typeof value == 'string') {\n value = value.trim();\n if (value.length == 0 || Number.isNaN(Number(value))) {\n throw new Error('\"' + value + '\" is not a valid number.');\n }\n } else if (typeof value != 'bigint') {\n throw new TypeError('Invalid variable type: ' + typeof value);\n }\n\n let words = [];\n let wholeNumber;\n let decimalNumber;\n\n // If negative number add negative word\n if (value < 0) {\n words.push(this.negativeWord);\n }\n\n // Split value decimal (if any) (excluding BigInt)\n if (typeof value == 'bigint') {\n wholeNumber = value;\n } else {\n const splitValue = value.split('.');\n wholeNumber = BigInt(splitValue[0]);\n decimalNumber = splitValue[1];\n }\n\n // Convert whole number to positive (if negative)\n if (wholeNumber < 0) {\n wholeNumber = -wholeNumber;\n }\n\n // NOTE: Only needed for CZ\n this.#wholeNumber = wholeNumber;\n\n // Add whole number in written form\n words = words.concat(this.toCardinal(wholeNumber));\n\n // Add decimal number in written form (if any)\n if (decimalNumber) {\n words.push(this.separatorWord);\n\n words = words.concat(this.decimalToCardinal(decimalNumber));\n }\n\n // Join words with spaces\n return words.join(this.spaceSeparator);\n }\n}\n","import AbstractLanguage from '../classes/AbstractLanguage.js';\n\nexport class Arabic extends AbstractLanguage {\n integerValue = 0;\n\n decimalValue = 0;\n\n number = 0;\n\n arabicOnes = [\n '', 'واحد', 'اثنان', 'ثلاثة', 'أربعة', 'خمسة', 'ستة', 'سبعة', 'ثمانية',\n 'تسعة',\n 'عشرة', 'أحد عشر', 'اثنا عشر', 'ثلاثة عشر', 'أربعة عشر', 'خمسة عشر',\n 'ستة عشر', 'سبعة عشر', 'ثمانية عشر',\n 'تسعة عشر',\n ];\n\n arabicFeminineOnes = [\n '', 'إحدى', 'اثنتان', 'ثلاث', 'أربع', 'خمس', 'ست', 'سبع', 'ثمان',\n 'تسع',\n 'عشر', 'إحدى عشرة', 'اثنتا عشرة', 'ثلاث عشرة', 'أربع عشرة',\n 'خمس عشرة', 'ست عشرة', 'سبع عشرة', 'ثماني عشرة',\n 'تسع عشرة',\n ];\n\n arabicTens = ['عشرون', 'ثلاثون', 'أربعون', 'خمسون', 'ستون', 'سبعون', 'ثمانون', 'تسعون'];\n\n arabicHundreds = ['', 'مائة', 'مئتان', 'ثلاثمائة', 'أربعمائة', 'خمسمائة', 'ستمائة', 'سبعمائة', 'ثمانمائة', 'تسعمائة'];\n\n arabicAppendedTwos = ['مئتا', 'ألفا', 'مليونا', 'مليارا', 'تريليونا', 'كوادريليونا', 'كوينتليونا', 'سكستيليونا'];\n\n arabicTwos = ['مئتان', 'ألفان', 'مليونان', 'ملياران', 'تريليونان', 'كوادريليونان', 'كوينتليونان', 'سكستيليونان'];\n\n arabicGroup = ['مائة', 'ألف', 'مليون', 'مليار', 'تريليون', 'كوادريليون', 'كوينتليون', 'سكستيليون'];\n\n arabicAppendedGroup = ['', 'ألفاً', 'مليوناً', 'ملياراً', 'تريليوناً', 'كوادريليوناً', 'كوينتليوناً', 'سكستيليوناً'];\n\n arabicPluralGroups = ['', 'آلاف', 'ملايين', 'مليارات', 'تريليونات', 'كوادريليونات', 'كوينتليونات', 'سكستيليونات'];\n\n // isCurrencyPartNameFeminine = true\n\n // isCurrencyNameFeminine = false\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'ناقص',\n separatorWord: 'فاصلة',\n zero: 'صفر'\n }, options));\n }\n\n digitFeminineStatus(digit/* , groupLevel */) {\n // if ((groupLevel == -1 && this.isCurrencyPartNameFeminine) || (groupLevel == 0 && this.isCurrencyNameFeminine)) {\n // return this.arabicFeminineOnes[digit]\n // }\n return this.arabicOnes[digit];\n }\n\n processArabicGroup(groupNumber, groupLevel, remainingNumber) {\n let tens = groupNumber % 100;\n const hundreds = groupNumber / 100;\n let retVal = '';\n\n if (Math.trunc(hundreds) > 0) {\n retVal = (\n tens == 0 && Math.trunc(hundreds) == 2\n ) ? this.arabicAppendedTwos[0] : this.arabicHundreds[Math.trunc(hundreds)];\n }\n\n if (tens > 0) {\n if (tens < 20) {\n if (tens == 2 && Math.trunc(hundreds) == 0 && groupLevel > 0) {\n retVal = ([\n 2000, 2000000, 2000000000, 2000000000000, 2000000000000000, 2000000000000000000\n ].indexOf(this.integerValue) != -1) ? this.arabicAppendedTwos[\n Math.trunc(groupLevel)] : this.arabicTwos[Math.trunc(groupLevel)\n ];\n } else {\n if (retVal != '') {\n retVal += ' و ';\n }\n if (tens == 1 && groupLevel > 0 && hundreds == 0) {\n retVal += '';\n } else if (\n (tens == 1 || tens == 2) &&\n (groupLevel == 0 || groupLevel == -1) &&\n (hundreds == 0 && remainingNumber == 0)\n ) {\n retVal += '';\n } else {\n retVal += this.digitFeminineStatus(Math.trunc(tens), groupLevel);\n }\n }\n } else {\n const ones = tens % 10;\n tens = (tens / 10) - 2;\n\n if (ones > 0) {\n if (retVal != '' && tens < 4) {\n retVal += ' و ';\n }\n\n retVal += this.digitFeminineStatus(ones, groupLevel);\n }\n if (retVal != '' && ones != 0) {\n retVal += ' و ';\n }\n\n retVal += this.arabicTens[Math.trunc(tens)];\n }\n }\n\n return retVal;\n }\n\n toCardinal(number) {\n /** @todo Convert class to work with BigInt */\n number = Number(number);\n\n if (number == 0) {\n return this.zero;\n }\n\n let tempNumber = number;\n this.integerValue = number;\n let retVal = '';\n let group = 0;\n\n while (tempNumber > 0) {\n const numberToProcess = tempNumber % 1000;\n tempNumber = Math.trunc(tempNumber / 1000);\n\n const groupDescription = this.processArabicGroup(numberToProcess, group, Math.floor(tempNumber));\n\n if (groupDescription != '') {\n if (group > 0) {\n if (retVal != '') {\n retVal = ' و ' + retVal;\n }\n\n if (numberToProcess != 2) {\n if (numberToProcess % 100 != 1) {\n if (numberToProcess >= 3 && numberToProcess <= 10) {\n retVal = this.arabicPluralGroups[group] + ' ' + retVal;\n } else {\n if (retVal != '') {\n retVal = this.arabicAppendedGroup[group] + ' ' + retVal;\n } else {\n retVal = this.arabicGroup[group] + ' ' + retVal;\n }\n }\n } else {\n retVal = this.arabicGroup[group] + ' ' + retVal;\n }\n }\n }\n\n retVal = groupDescription + ' ' + retVal;\n }\n\n group += 1;\n }\n\n return retVal.trim();\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new Arabic(options).floatToCardinal(value);\n}\n","import AbstractLanguage from './AbstractLanguage.js';\n\n/**\n * Creates new common language class that uses a highest matching word value algorithm.\n * Number matching word {@link cards} must be provided for this to work.\n * See {@link AbstractLanguage} for further requirements.\n * @classdesc Common class for (mostly european) languages.\n */\nexport default class extends AbstractLanguage {\n #cards;\n\n /**\n * @param {object} options Options for class.\n * @param {string} [options.negativeWord] Word that precedes a negative number (if any).\n * @param {string} options.separatorWord Word that separates cardinal numbers (i.e. \"and\").\n * @param {string} options.zero Word for 0 (i.e. \"zero\").\n * @param {string} [options.spaceSeparator] Character that separates words.\n * @param {Array} cards Array of number matching \"cards\" from highest-to-lowest.\n */\n constructor(options, cards) {\n super(options);\n\n this.#cards = cards;\n }\n\n /**\n * Get array of number matching \"cards\" from highest-to-lowest.\n * First element in card array is the number to match while the second is the word to use.\n * @example\n * [\n * ...\n * [100, 'hundred'],\n * ...\n * [1, 'one'],\n * ]\n * @returns {Array} Array of number matching \"cards\" from highest-to-lowest.\n */\n get cards() {\n return this.#cards;\n }\n\n /**\n * Get word for number if it matches a language card.\n * @param {number} number Card number value.\n * @returns {string|undefined} Return card word or undefined if no card.\n */\n getCardWord(number) {\n // Get matching card from number\n const card = this.cards.find(_card => _card[0] == number);\n\n // Return card word or undefined if no card found\n return (Array.isArray(card) ? card[1] : undefined);\n }\n\n /**\n * Get array of card matches.\n * @param {number} value The number value to convert to cardinal form.\n * @returns {object} Word sets (and pairs) from value.\n * @todo Simplify return object.\n */\n toCardMatches(value) {\n const out = [];\n let remaining = value;\n\n do {\n // Find card with highest matching number\n const card = this.cards.find(card => {\n return remaining >= card[0];\n });\n\n let quantity; // Quantity of card set values\n\n // Calculate quantity and remaining value\n // Override variables for 0 as math will fail\n if (remaining == 0) {\n quantity = 1;\n remaining = 0;\n } else {\n quantity = remaining / card[0];\n remaining = remaining % card[0];\n }\n\n // Is value perfect match of card number?\n if (quantity == 1) {\n /** @todo Merge word set pairs together (if possible) to simplify return object */\n out.push({\n [this.getCardWord(1)]: 1,\n });\n } else {\n /** @todo Understand the logic for this */\n /*if (quantity == remaining) {\n return [(quantity * this.getCardWord(card[0]), quantity * card[0])];\n }*/\n\n /**\n * @todo Remove reciprocating calls.\n */\n out.push(this.toCardMatches(quantity));\n }\n\n // Add matching word set to output list\n out.push({\n [card[1]]: card[0],\n });\n }\n while (remaining > 0);\n\n return out;\n }\n\n scanNum(value) {\n return value.split('').map(v => this.getCardWord(Number(v)));\n }\n\n clean(words) {\n let out = words;\n\n // Loop through word sets while array size is greater or less than 1\n /** @todo Change logic to work in for loop to better understand loop intentions */\n while (words.length != 1) {\n out = [];\n const left = words[0];\n const right = words[1];\n\n // Are the first & second word sets arrays?\n if (!Array.isArray(left) && !Array.isArray(right)) {\n // Merge word set pair and add to output array\n out.push(this.merge(left, right));\n\n /** @todo Understand */\n if (words.slice(2).length > 0) {\n out.push(words.slice(2));\n }\n } else {\n // Loop through\n for (let i = 0; i < words.length; i++) {\n const elem = words[i];\n\n if (Array.isArray(elem)) {\n if (elem.length == 1) out.push(elem[0]);\n else out.push(this.clean(elem));\n } else {\n out.push(elem);\n }\n }\n }\n\n words = out;\n }\n\n return out[0];\n }\n\n postClean(out0) {\n return out0.trimRight();\n }\n\n /**\n * Convert a whole number to written format.\n * @param {number} value The number value to convert to cardinal form.\n * @returns {string} Value in written format.\n */\n toCardinal(value) {\n // Convert value to word sets\n const words = this.toCardMatches(value);\n\n // Process word sets\n const preWords = Object.keys(this.clean(words))[0];\n\n // Process word sets some more and return result\n /** @todo Look into language functions/events */\n return this.postClean(preWords);\n }\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsAZ extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'mənfi',\n separatorWord: 'nöqtə',\n zero: 'sıfır'\n }, options), [\n [1000000000000000000n, 'kentilyon'],\n [1000000000000000n, 'katrilyon'],\n [1000000000000n, 'trilyon'],\n [1000000000n, 'milyar'],\n [1000000n, 'milyon'],\n [1000n, 'min'],\n [100n, 'yüz'],\n [90n, 'doxsan'],\n [80n, 'səksən'],\n [70n, 'yetmiş'],\n [60n, 'altmış'],\n [50n, 'əlli'],\n [40n, 'qırx'],\n [30n, 'otuz'],\n [20n, 'iyirmi'],\n [10n, 'on'],\n [9n, 'doqquz'],\n [8n, 'səkkiz'],\n [7n, 'yeddi'],\n [6n, 'altı'],\n [5n, 'beş'],\n [4n, 'dörd'],\n [3n, 'üç'],\n [2n, 'iki'],\n [1n, 'bir'],\n [0n, 'sıfır']\n ]);\n }\n\n merge(lPair, rPair) {\n const lText = Object.keys(lPair)[0];\n const rText = Object.keys(rPair)[0];\n const lNum = BigInt(Object.values(lPair)[0]);\n const rNum = BigInt(Object.values(rPair)[0]);\n\n if (lNum == 1 && (rNum <= 100 || rNum == 1000)) {\n return { [rText]: rNum };\n } else if (rNum > lNum) {\n return { [`${lText}${this.spaceSeparator}${rText}`]: lNum * rNum };\n } else {\n return { [`${lText}${this.spaceSeparator}${rText}`]: lNum + rNum };\n }\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsAZ(options).floatToCardinal(value);\n}\n","import AbstractLanguage from '../classes/AbstractLanguage.js';\n\nexport class N2WordsRU extends AbstractLanguage {\n feminine;\n\n ones = {\n 1: 'один',\n 2: 'два',\n 3: 'три',\n 4: 'четыре',\n 5: 'пять',\n 6: 'шесть',\n 7: 'семь',\n 8: 'восемь',\n 9: 'девять'\n };\n\n onesFeminine = {\n 1: 'одна',\n 2: 'две',\n 3: 'три',\n 4: 'четыре',\n 5: 'пять',\n 6: 'шесть',\n 7: 'семь',\n 8: 'восемь',\n 9: 'девять'\n };\n\n tens = {\n 0: 'десять',\n 1: 'одиннадцать',\n 2: 'двенадцать',\n 3: 'тринадцать',\n 4: 'четырнадцать',\n 5: 'пятнадцать',\n 6: 'шестнадцать',\n 7: 'семнадцать',\n 8: 'восемнадцать',\n 9: 'девятнадцать'\n };\n\n twenties = {\n 2: 'двадцать',\n 3: 'тридцать',\n 4: 'сорок',\n 5: 'пятьдесят',\n 6: 'шестьдесят',\n 7: 'семьдесят',\n 8: 'восемьдесят',\n 9: 'девяносто'\n };\n\n hundreds = {\n 1: 'сто',\n 2: 'двести',\n 3: 'триста',\n 4: 'четыреста',\n 5: 'пятьсот',\n 6: 'шестьсот',\n 7: 'семьсот',\n 8: 'восемьсот',\n 9: 'девятьсот'\n };\n\n thousands = {\n 1: ['тысяча', 'тысячи', 'тысяч'], // 10^ 3\n 2: ['миллион', 'миллиона', 'миллионов'], // 10^ 6\n 3: ['миллиард', 'миллиарда', 'миллиардов'], // 10^ 9\n 4: ['триллион', 'триллиона', 'триллионов'], // 10^ 12\n 5: ['квадриллион', 'квадриллиона', 'квадриллионов'], // 10^ 15\n 6: ['квинтиллион', 'квинтиллиона', 'квинтиллионов'], // 10^ 18\n 7: ['секстиллион', 'секстиллиона', 'секстиллионов'], // 10^ 21\n 8: ['септиллион', 'септиллиона', 'септиллионов'], // 10^ 24\n 9: ['октиллион', 'октиллиона', 'октиллионов'], // 10^ 27\n 10: ['нониллион', 'нониллиона', 'нониллионов'], // 10^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'минус',\n separatorWord: 'запятая',\n zero: 'ноль'\n }, options));\n\n options = Object.assign({\n feminine: false,\n });\n\n this.feminine = options.feminine;\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n\n const words = [];\n\n const chunks = this.splitByX(number.toString(), 3);\n\n let i = chunks.length;\n\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n let ones = [];\n i = i - 1;\n\n if (x == 0) {\n continue;\n }\n\n const [n1, n2, n3] = this.getDigits(x);\n\n if (n3 > 0) {\n words.push(this.hundreds[n3]);\n }\n\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0) {\n ones = (i == 1 || this.feminine && i == 0) ? this.onesFeminine : this.ones;\n words.push(ones[n1]);\n }\n\n if (i > 0) {\n words.push(this.pluralize(x, this.thousands[i]));\n }\n }\n\n return words.join(' ');\n }\n\n splitByX(n, x, formatInt = true) {\n const results = [];\n const l = n.length;\n let result;\n\n if (l > x) {\n const start = l % x;\n\n if (start > 0) {\n result = n.slice(0, start);\n\n if (formatInt) {\n results.push(BigInt(result));\n } else {\n results.push(result);\n }\n }\n\n for (let i = start; i < l; i += x) {\n result = n.slice(i, i + x);\n\n if (formatInt) {\n results.push(BigInt(result));\n } else {\n results.push(result);\n }\n }\n } else {\n if (formatInt) {\n results.push(BigInt(n));\n } else {\n results.push(n);\n }\n }\n\n return results;\n }\n\n getDigits(value) {\n const a = Array.from(value.toString().padStart(3, '0').slice(-3)).reverse();\n return a.map(e => BigInt(e));\n }\n\n pluralize(n, forms) {\n let form = 2;\n if ((n % 100n < 10n) || (n % 100n > 20n)) {\n if (n % 10n == 1n) {\n form = 0;\n } else if ((n % 10n < 5n) && (n % 10n > 1n)) {\n form = 1;\n }\n }\n return forms[form];\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsRU(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsCZ extends N2WordsRU {\n ones = {\n 1: 'jedna',\n 2: 'dva',\n 3: 'tři',\n 4: 'čtyři',\n 5: 'pět',\n 6: 'šest',\n 7: 'sedm',\n 8: 'osm',\n 9: 'devět'\n };\n\n tens = {\n 0: 'deset',\n 1: 'jedenáct',\n 2: 'dvanáct',\n 3: 'třináct',\n 4: 'čtrnáct',\n 5: 'patnáct',\n 6: 'šestnáct',\n 7: 'sedmnáct',\n 8: 'osmnáct',\n 9: 'devatenáct'\n };\n\n twenties = {\n 2: 'dvacet',\n 3: 'třicet',\n 4: 'čtyřicet',\n 5: 'padesát',\n 6: 'šedesát',\n 7: 'sedmdesát',\n 8: 'osmdesát',\n 9: 'devadesát'\n };\n\n hundreds = {\n 1: 'sto',\n 2: 'dvě stě',\n 3: 'tři sta',\n 4: 'čtyři sta',\n 5: 'pět set',\n 6: 'šest set',\n 7: 'sedm set',\n 8: 'osm set',\n 9: 'devět set'\n };\n\n thousands = {\n 1: ['tisíc', 'tisíce', 'tisíc'], // 10^ 3\n 2: ['milion', 'miliony', 'milionů'], // 10^ 6\n 3: ['miliarda', 'miliardy', 'miliard'], // 10^ 9\n 4: ['bilion', 'biliony', 'bilionů'], // 10^ 12\n 5: ['biliarda', 'biliardy', 'biliard'], // 10^ 15\n 6: ['trilion', 'triliony', 'trilionů'], // 10^ 18\n 7: ['triliarda', 'triliardy', 'triliard'], // 10^ 21\n 8: ['kvadrilion', 'kvadriliony', 'kvadrilionů'], // 10^ 24\n 9: ['kvadriliarda', 'kvadriliardy', 'kvadriliard'], // 10^ 27\n 10: ['quintillion', 'quintilliony', 'quintillionů'], // 10^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'mínus',\n zero: 'nula'\n }, options));\n }\n\n get separatorWord() {\n if (this.wholeNumber == 0n || this.wholeNumber == 1n) {\n return 'celá';\n } else if (this.wholeNumber >= 2n && this.wholeNumber <= 4n) {\n return 'celé';\n } else {\n return 'celých';\n }\n }\n\n pluralize(n, forms) {\n let form = 2;\n if (n == 1) {\n form = 0;\n } else if (((n % 10n < 5n) && (n % 10n > 1n)) && (n % 100n < 10n || n % 100n > 20n)) {\n form = 1;\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n if (x == 0) {\n continue;\n }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n words.push(this.hundreds[n3]);\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0 && !(i > 0 && x == 1)) {\n words.push(this.ones[n1]);\n }\n if (i > 0) {\n words.push(this.pluralize(x, this.thousands[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsCZ(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsDE extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'komma',\n zero: 'null'\n }, options), [\n [1000000000000000000000000000n, 'Quadrilliarde'],\n [1000000000000000000000000n, 'Quadrillion'],\n [1000000000000000000000n, 'Trilliarde'],\n [1000000000000000000n, 'Trillion'],\n [1000000000000000n, 'Billiarde'],\n [1000000000000n, 'Billion'],\n [1000000000n, 'Milliarde'],\n [1000000n, 'Million'],\n [1000n, 'tausend'],\n [100n, 'hundert'],\n [90n, 'neunzig'],\n [80n, 'achtzig'],\n [70n, 'siebzig'],\n [60n, 'sechzig'],\n [50n, 'fünfzig'],\n [40n, 'vierzig'],\n [30n, 'dreißig'],\n [20n, 'zwanzig'],\n [19n, 'neunzehn'],\n [18n, 'achtzehn'],\n [17n, 'siebzehn'],\n [16n, 'sechzehn'],\n [15n, 'fünfzehn'],\n [14n, 'vierzehn'],\n [13n, 'dreizehn'],\n [12n, 'zwölf'],\n [11n, 'elf'],\n [10n, 'zehn'],\n [9n, 'neun'],\n [8n, 'acht'],\n [7n, 'sieben'],\n [6n, 'sechs'],\n [5n, 'fünf'],\n [4n, 'vier'],\n [3n, 'drei'],\n [2n, 'zwei'],\n [1n, 'eins'],\n [0n, 'null']\n ]);\n }\n\n merge(curr, next) {\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n if (cNum == 1) {\n if (nNum == 100 || nNum == 1000) {\n return { [`ein${nText}`]: nNum };\n } else if (nNum < 1000000) {\n return { [nText]: nNum };\n }\n cText = 'eine';\n }\n\n let val = 0;\n if (nNum > cNum) {\n if (nNum >= 1000000) {\n if (cNum > 1) {\n if (nText[nText.length - 1] == 'e') {\n nText += 'n';\n } else {\n nText += 'en';\n }\n }\n cText += ' ';\n }\n val = cNum * nNum;\n } else {\n if (nNum < 10 && cNum > 10 && cNum < 100) {\n if (nNum == 1) {\n nText = 'ein';\n }\n const temp = nText;\n nText = cText;\n cText = `${temp}und`;\n } else if (cNum >= 1000000) {\n cText += ' ';\n }\n val = cNum + nNum;\n }\n\n return { [`${cText}${nText}`]: val };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsDE(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsDK extends BaseLanguage {\n ordFlag;\n\n constructor(options) {\n options = Object.assign({\n negativeWord: 'minus',\n separatorWord: 'komma',\n zero: 'nul',\n ordFlag: false\n }, options);\n\n super(options, [\n [1000000000000000000000000000n, 'quadrillarder'],\n [1000000000000000000000000n, 'quadrillioner'],\n [1000000000000000000000n, 'trillarder'],\n [1000000000000000000n, 'trillioner'],\n [1000000000000000n, 'billarder'],\n [1000000000000n, 'billioner'],\n [1000000000n, 'millarder'],\n [1000000n, 'millioner'],\n [1000n, 'tusind'],\n [100n, 'hundrede'],\n [90n, 'halvfems'],\n [80n, 'firs'],\n [70n, 'halvfjerds'],\n [60n, 'treds'],\n [50n, 'halvtreds'],\n [40n, 'fyrre'],\n [30n, 'tredive'],\n [20n, 'tyve'],\n [19n, 'nitten'],\n [18n, 'atten'],\n [17n, 'sytten'],\n [16n, 'seksten'],\n [15n, 'femten'],\n [14n, 'fjorten'],\n [13n, 'tretten'],\n [12n, 'tolv'],\n [11n, 'elleve'],\n [10n, 'ti'],\n [9n, 'ni'],\n [8n, 'otte'],\n [7n, 'syv'],\n [6n, 'seks'],\n [5n, 'fem'],\n [4n, 'fire'],\n [3n, 'tre'],\n [2n, 'to'],\n [1n, 'et'],\n [0n, 'nul']\n ]);\n\n this.ordFlag = options.ordFlag;\n }\n\n merge(curr, next) {\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n let val = 1;\n if (nNum == 100 || nNum == 1000) {\n next = { [`et${nText}`]: nNum };\n }\n if (cNum == 1) {\n if (nNum < 1000000 || this.ordFlag) {\n return next;\n }\n cText = 'en';\n }\n if (nNum > cNum) {\n if (nNum >= 1000000) {\n cText += ' ';\n }\n val = cNum * nNum;\n } else {\n if (cNum >= 100 && cNum < 1000) {\n cText += ' og ';\n } else if (cNum >= 1000 && cNum <= 100000) {\n cText += 'e og ';\n }\n if ((nNum < 10) && (10 < cNum) && (cNum < 100)) {\n if (nNum == 1) {\n nText = 'en';\n }\n const temp = nText;\n nText = cText;\n cText = temp + 'og';\n } else if (cNum >= 1000000) {\n cText += ' ';\n }\n val = cNum + nNum;\n }\n const word = cText + nText;\n return { [`${word}`]: val };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsDK(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\n/**\n * This class is for converting numbers to english words.\n */\nexport class English extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'point',\n zero: 'zero'\n }, options), [\n [1000000000000000000000000000n, 'octillion'],\n [1000000000000000000000000n, 'septillion'],\n [1000000000000000000000n, 'sextillion'],\n [1000000000000000000n, 'quintillion'],\n [1000000000000000n, 'quadrillion'],\n [1000000000000n, 'trillion'],\n [1000000000n, 'billion'],\n [1000000n, 'million'],\n [1000n, 'thousand'],\n [100n, 'hundred'],\n [90n, 'ninety'],\n [80n, 'eighty'],\n [70n, 'seventy'],\n [60n, 'sixty'],\n [50n, 'fifty'],\n [40n, 'forty'],\n [30n, 'thirty'],\n [20n, 'twenty'],\n [19n, 'nineteen'],\n [18n, 'eighteen'],\n [17n, 'seventeen'],\n [16n, 'sixteen'],\n [15n, 'fifteen'],\n [14n, 'fourteen'],\n [13n, 'thirteen'],\n [12n, 'twelve'],\n [11n, 'eleven'],\n [10n, 'ten'],\n [9n, 'nine'],\n [8n, 'eight'],\n [7n, 'seven'],\n [6n, 'six'],\n [5n, 'five'],\n [4n, 'four'],\n [3n, 'three'],\n [2n, 'two'],\n [1n, 'one'],\n [0n, 'zero']\n ]);\n }\n\n /**\n * Merge word set pairs\n * @param {object} lPair {'one':1}\n * @param {object} rPair {'hundred':100}\n * @returns {object} {'one hundred': 100}\n */\n merge(lPair, rPair) {\n const lText = Object.keys(lPair)[0];\n const lNum = BigInt(Object.values(lPair)[0]);\n const rText = Object.keys(rPair)[0];\n const rNum = BigInt(Object.values(rPair)[0]);\n\n if (lNum == 1 && rNum < 100) return { [rText]: rNum };\n else if (100 > lNum && lNum > rNum) return { [`${lText}-${rText}`]: lNum + rNum };\n else if (lNum >= 100 && 100 > rNum) return { [`${lText} and ${rText}`]: lNum + rNum };\n else if (rNum > lNum) return { [`${lText} ${rText}`]: lNum * rNum };\n\n return { [`${lText} ${rText}`]: lNum + rNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new English(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsES extends BaseLanguage {\n genderStem;\n\n constructor(options) {\n options = Object.assign({\n negativeWord: 'menos',\n separatorWord: 'punto',\n zero: 'cero',\n genderStem: 'o'\n }, options);\n\n super(options, [\n [1000000000000000000000000n, 'cuatrillón'],\n [1000000000000000000n, 'trillón'],\n [1000000000000n, 'billón'],\n [1000000n, 'millón'],\n [1000n, 'mil'],\n [100n, 'cien'],\n [90n, 'noventa'],\n [80n, 'ochenta'],\n [70n, 'setenta'],\n [60n, 'sesenta'],\n [50n, 'cincuenta'],\n [40n, 'cuarenta'],\n [30n, 'treinta'],\n [29n, 'veintinueve'],\n [28n, 'veintiocho'],\n [27n, 'veintisiete'],\n [26n, 'veintiséis'],\n [25n, 'veinticinco'],\n [24n, 'veinticuatro'],\n [23n, 'veintitrés'],\n [22n, 'veintidós'],\n [21n, 'veintiuno'],\n [20n, 'veinte'],\n [19n, 'diecinueve'],\n [18n, 'dieciocho'],\n [17n, 'diecisiete'],\n [16n, 'dieciseis'],\n [15n, 'quince'],\n [14n, 'catorce'],\n [13n, 'trece'],\n [12n, 'doce'],\n [11n, 'once'],\n [10n, 'diez'],\n [9n, 'nueve'],\n [8n, 'ocho'],\n [7n, 'siete'],\n [6n, 'seis'],\n [5n, 'cinco'],\n [4n, 'cuatro'],\n [3n, 'tres'],\n [2n, 'dos'],\n [1n, 'uno'],\n [0n, 'cero']\n ]);\n\n this.genderStem = options.genderStem;\n }\n\n merge(curr, next) {\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n if (cNum == 1) {\n if (nNum < 1000000) return { [nText]: nNum };\n cText = 'un';\n } else if (cNum == 100 && nNum % 1000n != 0) {\n cText += 't' + this.genderStem;\n }\n\n if (nNum < cNum) {\n if (cNum < 100) {\n return { [`${cText} y ${nText}`]: cNum + nNum };\n }\n return { [`${cText} ${nText}`]: cNum + nNum };\n } else if (nNum % 1000000n == 0 && cNum > 1) {\n nText = nText.slice(0, -3) + 'lones';\n }\n\n if (nNum == 100) {\n if (cNum == 5) {\n cText = 'quinien';\n nText = '';\n } else if (cNum == 7) {\n cText = 'sete';\n } else if (cNum == 9) {\n cText = 'nove';\n }\n nText += 't' + this.genderStem + 's';\n } else {\n nText = ' ' + nText;\n }\n return { [`${cText}${nText}`]: cNum * nNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsES(options).floatToCardinal(value);\n}\n","import AbstractLanguage from '../classes/AbstractLanguage.js';\n\nexport class N2WordsFA extends AbstractLanguage {\n namedNumbers = {\n 0: 'صفر',\n 1: 'یک',\n 2: 'دو',\n 3: 'سه',\n 4: 'چهار',\n 5: 'پنج',\n 6: 'شش',\n 7: 'هفت',\n 8: 'هشت',\n 9: 'نه',\n 10: 'ده',\n 11: 'یازده',\n 12: 'دوازده',\n 13: 'سیزده',\n 14: 'چهارده',\n 15: 'پانزده',\n 16: 'شانزده',\n 17: 'هفده',\n 18: 'هجده',\n 19: 'نوزده',\n 20: 'بیست',\n 30: 'سی',\n 40: 'چهل',\n 50: 'پنجاه',\n 60: 'شصت',\n 70: 'هفتاد',\n 80: 'هشتاد',\n 90: 'نود',\n 100: 'صد',\n 200: 'دویست',\n 300: 'سيصد',\n 400: 'چهار صد',\n 500: 'پانصد',\n 600: 'ششصد',\n 700: 'هفتصد',\n 800: 'هشتصد',\n 900: 'نهصد',\n 1000: 'هزار',\n 1000000: 'میلیون',\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'منفى',\n separatorWord: 'ممیّز',\n zero: 'صفر'\n }, options));\n }\n\n toCardinal(number) {\n if (this.namedNumbers[number]) {\n return this.namedNumbers[number];\n }\n\n if (number > 20n && number < 100n) {\n let xone = number % 10n;\n let xten = number - xone;\n return `${this.namedNumbers[xten]} و ${this.namedNumbers[xone]}`;\n }\n\n if (number > 100n && number < 1000n) {\n let xhundred = 100n * (number / 100n);\n let tail = this.toCardinal(number - xhundred);\n return `${this.namedNumbers[xhundred]} و ${tail}`;\n }\n\n if (number > 1000n && number < 1000000n) {\n let thousandMultiplier = number / 1000n;\n let namedThousandMultiplier =\n (thousandMultiplier == 1n\n ? ''\n : this.toCardinal(thousandMultiplier)) +\n ' ' +\n this.namedNumbers[1000];\n let tailNumber = number - thousandMultiplier * 1000n;\n let tail = tailNumber == 0n ? '' : ' ' + this.toCardinal(tailNumber);\n return `${namedThousandMultiplier}${tail}`;\n }\n\n if (number > 1000000n) {\n let millionMultiplier = number / 1000000n;\n let namedMillion =\n this.toCardinal(millionMultiplier) + ' ' + this.namedNumbers[1000000];\n let tailNumber = number - millionMultiplier * 1000000n;\n let tail = tailNumber == 0n ? '' : ' و ' + this.toCardinal(tailNumber);\n return `${namedMillion}${tail}`;\n }\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsFA(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsFR extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'moins',\n separatorWord: 'virgule',\n zero: 'zéro'\n }, options), [\n [1000000000000000000000000000n, 'quadrilliard'],\n [1000000000000000000000000n, 'quadrillion'],\n [1000000000000000000000n, 'trilliard'],\n [1000000000000000000n, 'trillion'],\n [1000000000000000n, 'billiard'],\n [1000000000000n, 'billion'],\n [1000000000n, 'milliard'],\n [1000000n, 'million'],\n [1000n, 'mille'],\n [100n, 'cent'],\n [80n, 'quatre-vingts'],\n [60n, 'soixante'],\n [50n, 'cinquante'],\n [40n, 'quarante'],\n [30n, 'trente'],\n [20n, 'vingt'],\n [19n, 'dix-neuf'],\n [18n, 'dix-huit'],\n [17n, 'dix-sept'],\n [16n, 'seize'],\n [15n, 'quinze'],\n [14n, 'quatorze'],\n [13n, 'treize'],\n [12n, 'douze'],\n [11n, 'onze'],\n [10n, 'dix'],\n [9n, 'neuf'],\n [8n, 'huit'],\n [7n, 'sept'],\n [6n, 'six'],\n [5n, 'cinq'],\n [4n, 'quatre'],\n [3n, 'trois'],\n [2n, 'deux'],\n [1n, 'un'],\n [0n, 'zéro']\n ]);\n }\n\n merge(curr, next) { // {'cent':100}, {'vingt-cinq':25}\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n if (cNum == 1) {\n if (nNum < 1000000) {\n return { [nText]: nNum };\n }\n } else {\n if (\n ((cNum - 80n) % 100n == 0 || (cNum % 100n == 0 && cNum < 1000)) &&\n nNum < 1000000 &&\n cText[cText.length - 1] == 's'\n ) {\n cText = cText.slice(0, -1); // without last elem\n }\n if (\n cNum < 1000 && nNum != 1000 &&\n nText[nText.length - 1] != 's' &&\n nNum % 100n == 0\n ) {\n nText += 's';\n }\n }\n if (nNum < cNum && cNum < 100) {\n if (nNum % 10n == 1 && cNum != 80) return { [`${cText} et ${nText}`]: cNum + nNum };\n return { [`${cText}-${nText}`]: cNum + nNum };\n }\n if (nNum > cNum) return { [`${cText} ${nText}`]: cNum * nNum };\n return { [`${cText} ${nText}`]: cNum + nNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsFR(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsHE extends N2WordsRU {\n and;\n\n ones = {\n 1: 'אחת',\n 2: 'שתים',\n 3: 'שלש',\n 4: 'ארבע',\n 5: 'חמש',\n 6: 'שש',\n 7: 'שבע',\n 8: 'שמונה',\n 9: 'תשע'\n };\n\n tens = {\n 0: 'עשר',\n 1: 'אחת עשרה',\n 2: 'שתים עשרה',\n 3: 'שלש עשרה',\n 4: 'ארבע עשרה',\n 5: 'חמש עשרה',\n 6: 'שש עשרה',\n 7: 'שבע עשרה',\n 8: 'שמונה עשרה',\n 9: 'תשע עשרה'\n };\n\n twenties = {\n 2: 'עשרים',\n 3: 'שלשים',\n 4: 'ארבעים',\n 5: 'חמישים',\n 6: 'ששים',\n 7: 'שבעים',\n 8: 'שמונים',\n 9: 'תשעים'\n };\n\n hundreds = {\n 1: 'מאה',\n 2: 'מאתיים',\n 3: 'מאות'\n };\n\n thousands = {\n 1: 'אלף',\n 2: 'אלפיים',\n 3: 'שלשת אלפים',\n 4: 'ארבעת אלפים',\n 5: 'חמשת אלפים',\n 6: 'ששת אלפים',\n 7: 'שבעת אלפים',\n 8: 'שמונת אלפים',\n 9: 'תשעת אלפים'\n };\n\n constructor(options) {\n /**\n * @todo Confirm `negativeWord`\n * @todo Set `separatorWord`\n */\n options = Object.assign({\n negativeWord: 'מינוס',\n //separatorWord: ,\n zero: 'אפס',\n and: 'ו'\n }, options);\n\n super(options);\n\n this.and = options.and;\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n if (x == 0) {\n continue;\n }\n const [n1, n2, n3] = this.getDigits(x);\n if (i > 0) {\n words.push(this.thousands[n1]);\n continue;\n }\n if (n3 > 0) {\n if (n3 <= 2) {\n words.push(this.hundreds[n3]);\n } else {\n words.push(this.ones[n3] + ' ' + this.hundreds[3]);\n }\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0 && !(i > 0 && x == 1)) {\n words.push(this.ones[n1]);\n }\n if (i > 0) {\n words.push(this.thousands[i]);\n }\n }\n if (words.length > 1) {\n words[words.length - 1] = this.and + words[words.length - 1];\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsHE(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsHR extends N2WordsRU {\n ones = {\n 1: ['jedan', 'jedna'],\n 2: ['dva', 'dvije'],\n 3: ['tri', 'tri'],\n 4: ['četiri', 'četiri'],\n 5: ['pet', 'pet'],\n 6: ['šest', 'šest'],\n 7: ['sedam', 'sedam'],\n 8: ['osam', 'osam'],\n 9: ['devet', 'devet']\n };\n\n tens = {\n 0: 'deset',\n 1: 'jedanaest',\n 2: 'dvanaest',\n 3: 'trinaest',\n 4: 'četrnaest',\n 5: 'petnaest',\n 6: 'šesnaest',\n 7: 'sedamnaest',\n 8: 'osamnaest',\n 9: 'devetnaest'\n };\n\n twenties = {\n 2: 'dvadeset',\n 3: 'trideset',\n 4: 'četrdeset',\n 5: 'pedeset',\n 6: 'šezdeset',\n 7: 'sedamdeset',\n 8: 'osamdeset',\n 9: 'devedeset'\n };\n\n hundreds = {\n 1: 'sto',\n 2: 'dvjesto',\n 3: 'tristo',\n 4: 'četiristo',\n 5: 'petsto',\n 6: 'šesto',\n 7: 'sedamsto',\n 8: 'osamsto',\n 9: 'devetsto'\n };\n\n SCALE = {\n 0: ['', '', '', false],\n 1: ['tisuća', 'tisuće', 'tisuća', true], // 10 ^ 3\n 2: ['milijun', 'milijuna', 'milijuna', false], // 10 ^ 6\n 3: ['milijarda', 'milijarde', 'milijarda', false], // 10 ^ 9\n 4: ['bilijun', 'bilijuna', 'bilijuna', false], // 10 ^ 12\n 5: ['bilijarda', 'bilijarde', 'bilijarda', false], // 10 ^ 15\n 6: ['trilijun', 'trilijuna', 'trilijuna', false], // 10 ^ 18\n 7: ['trilijarda', 'trilijarde', 'trilijarda', false], // 10 ^ 21\n 8: ['kvadrilijun', 'kvadrilijuna', 'kvadrilijuna', false], // 10 ^ 24\n 9: ['kvadrilijarda', 'kvadrilijarde', 'kvadrilijarda', false], // 10 ^ 27\n 10: ['kvintilijun', 'kvintilijuna', 'kvintilijuna', false], // 10 ^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'zarez',\n zero: 'nula'\n }, options));\n }\n\n pluralize(n, forms) {\n let form = 2;\n if ((n % 100n < 10n) || (n % 100n > 20n)) {\n if (n % 10n == 1n) {\n form = 0;\n } else if ((n % 10n > 1n) && (n % 10n < 5n)) {\n form = 1;\n }\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n // if (x == 0) { continue; }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n words.push(this.hundreds[n3]);\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0) {\n const isFeminine = (this.feminine || this.SCALE[i][3]);\n const genderIdx = isFeminine ? 1 : 0;\n words.push(this.ones[n1][genderIdx]);\n }\n if ((i > 0) && (x != 0)) {\n words.push(this.pluralize(x, this.SCALE[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsHR(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsHU extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'mínusz',\n separatorWord: 'egész',\n zero: 'nulla'\n }, options), [\n [1000000000000000000000000000n, 'quadrilliárd'],\n [1000000000000000000000000n, 'quadrillió'],\n [1000000000000000000000n, 'trilliárd'],\n [1000000000000000000n, 'trillió'],\n [1000000000000000n, 'billiárd'],\n [1000000000000n, 'billió'],\n [1000000000n, 'milliárd'],\n [1000000n, 'millió'],\n [1000n, 'ezer'],\n [100n, 'száz'],\n [90n, 'kilencven'],\n [80n, 'nyolcvan'],\n [70n, 'hetven'],\n [60n, 'hatvan'],\n [50n, 'ötven'],\n [40n, 'negyven'],\n [30n, 'harminc'],\n [29n, 'huszonkilenc'],\n [28n, 'huszonnyolc'],\n [27n, 'huszonhét'],\n [26n, 'huszonhat'],\n [25n, 'huszonöt'],\n [24n, 'huszonnégy'],\n [23n, 'huszonhárom'],\n [22n, 'huszonkettő'],\n [21n, 'huszonegy'],\n [20n, 'húsz'],\n [19n, 'tizenkilenc'],\n [18n, 'tizennyolc'],\n [17n, 'tizenhét'],\n [16n, 'tizenhat'],\n [15n, 'tizenöt'],\n [14n, 'tizennégy'],\n [13n, 'tizenhárom'],\n [12n, 'tizenkettő'],\n [11n, 'tizenegy'],\n [10n, 'tíz'],\n [9n, 'kilenc'],\n [8n, 'nyolc'],\n [7n, 'hét'],\n [6n, 'hat'],\n [5n, 'öt'],\n [4n, 'négy'],\n [3n, 'három'],\n [2n, 'kettő'],\n [1n, 'egy'],\n [0n, 'nulla']\n ]);\n }\n\n tensToCardinal(number) {\n if (this.getCardWord(number)) {\n return this.getCardWord(number);\n } else {\n const tens = Math.floor(number / 10);\n const units = number % 10;\n return this.getCardWord(tens * 10) + this.toCardinal(units);\n }\n }\n\n hundredsToCardinal(number) {\n const hundreds = Math.floor(number / 100);\n let prefix = 'száz';\n if (hundreds != 1) {\n prefix = this.toCardinal(hundreds, '') + prefix;\n }\n const postfix = this.toCardinal(number % 100, '');\n return prefix + postfix;\n }\n\n thousandsToCardinal(number) {\n const thousands = Math.floor(number / 1000);\n let prefix = 'ezer';\n if (thousands != 1) {\n prefix = this.toCardinal(thousands, '') + prefix;\n }\n let postfix = this.toCardinal(number % 1000, '');\n let middle = (number <= 2000 || postfix == '') ? '' : '-';\n return prefix + middle + postfix;\n }\n\n bigNumberToCardinal(number) {\n const numberLength = number.toString().length;\n let digits = (numberLength % 3 !== 0) ? numberLength : numberLength - 2;\n let exp = 10 ** (Math.floor(digits / 3) * 3);\n let prefix = this.toCardinal(number / BigInt(exp), '');\n let rest = this.toCardinal(number % BigInt(exp), '');\n let postfix = (rest !== '') ? ('-' + rest) : '';\n return prefix + this.getCardWord(exp) + postfix;\n }\n\n toCardinal(number, zero = this.zero) {\n let words = '';\n\n if (number == 0n) {\n words = zero;\n } else if (zero == '' && number == 2) {\n words = 'két';\n } else if (number < 30n) {\n words = this.getCardWord(Number(number));\n } else if (number < 100n) {\n words = this.tensToCardinal(Number(number));\n } else if (number < 1000n) {\n words = this.hundredsToCardinal(Number(number));\n } else if (number < 1000000n) {\n words = this.thousandsToCardinal(Number(number));\n } else {\n words = this.bigNumberToCardinal(number);\n }\n\n return words;\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsHU(options).floatToCardinal(value);\n}\n","import AbstractLanguage from '../classes/AbstractLanguage.js';\n\nexport class N2WordsID extends AbstractLanguage {\n base = {\n 0: [],\n 1: ['satu'],\n 2: ['dua'],\n 3: ['tiga'],\n 4: ['empat'],\n 5: ['lima'],\n 6: ['enam'],\n 7: ['tujuh'],\n 8: ['delapan'],\n 9: ['sembilan'],\n };\n\n thousands = {\n 3: 'ribu', // 10^3\n 6: 'juta', // 10^6\n 9: 'miliar', // 10^9\n 12: 'triliun',\n 15: 'kuadriliun',\n 18: 'kuantiliun',\n 21: 'sekstiliun',\n 24: 'septiliun',\n 27: 'oktiliun',\n 30: 'noniliun',\n 33: 'desiliun',\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'min',\n separatorWord: 'koma',\n zero: 'nol'\n }, options));\n }\n\n splitBy3(number) {\n // Split to groups of 3 numbers: 1234567 -> [['1'], ['234'], ['567']]\n let blocks = [];\n let strNumber = number.toString();\n let length = strNumber.length;\n let firstBlock;\n\n if (length < 3) {\n blocks.push([strNumber]);\n } else {\n let firstBlockLength = length % 3;\n\n if (firstBlockLength > 0) {\n firstBlock = [strNumber.slice(0, firstBlockLength)];\n blocks.push(firstBlock);\n }\n\n for (let i = firstBlockLength; i < length; i += 3) {\n let nextBlock = [strNumber.slice(i, i + 3)];\n blocks.push(nextBlock);\n }\n }\n return blocks;\n }\n\n spell(blocks) {\n // Example:\n // blocks: [['1'], ['234']]\n // return: [['1', ['satu']], ['234', ['dua', 'ratus', 'tiga', 'puluh', ['empat']]]]\n let wordBlocks = [];\n let spelling;\n let firstBlock = blocks[0];\n if (firstBlock[0].length == 1) {\n if (firstBlock[0] == '0') {\n spelling = ['nol'];\n } else {\n spelling = this.base[Math.trunc(firstBlock[0])];\n }\n } else if (firstBlock[0].length == 2) {\n spelling = this.getTens(firstBlock[0]);\n } else {\n spelling = this.getHundreds(\n firstBlock[0][0]\n ).concat(this.getTens(firstBlock[0].slice(1, 3)));\n }\n wordBlocks = wordBlocks.concat([[firstBlock[0], spelling]]);\n for (let i = 1; i < blocks.length; i++) {\n let block = blocks[i];\n spelling = this.getHundreds(block[0][0]).concat(\n this.getTens(block[0].slice(1, 3))\n );\n block = block.concat([spelling]);\n wordBlocks = wordBlocks.concat([block]);\n }\n return wordBlocks;\n }\n\n getHundreds(number) { // 'ratus'\n if (number == '1') {\n return ['seratus'];\n } else if (number == '0') {\n return [];\n } else {\n return this.base[Math.trunc(number)].concat(['ratus']);\n }\n }\n\n getTens(number) { // 'puluh'\n if (number[0] == '1') {\n if (number[1] == '0') {\n return ['sepuluh'];\n } else if (number[1] == '1') {\n return ['sebelas'];\n } else {\n return this.base[Math.trunc(number[1])].concat(['belas']);\n }\n } else if (number[0] == '0') {\n return this.base[Math.trunc(number[1])];\n } else {\n return this.base[Math.trunc(number[0])].concat(['puluh']).concat(\n [this.base[Math.trunc(number[1])]]\n );\n }\n }\n\n join(wordBlocks) {\n let wordList = [];\n let length = wordBlocks.length - 1;\n let firstBlock = [wordBlocks[0]];\n let start = 0;\n if (length == 1 && firstBlock[0][0] == '1') {\n wordList.push('seribu');\n start = 1;\n }\n for (let i = start; i < length + 1; i++) {\n wordList = wordList.concat(wordBlocks[i][1]);\n if (!wordBlocks[i][1].length) {\n continue;\n }\n if (i == length) {\n break;\n }\n wordList = wordList.concat([this.thousands[(length - i) * 3]]);\n }\n return wordList.join(' ');\n }\n\n toCardinal(number) {\n return this.join(\n this.spell(\n this.splitBy3(number)\n )\n ).trim();\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsID(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsIT extends BaseLanguage {\n cardinalWords = [\n this.zero, 'uno', 'due', 'tre', 'quattro', 'cinque', 'sei', 'sette', 'otto',\n 'nove', 'dieci', 'undici', 'dodici', 'tredici', 'quattordici', 'quindici',\n 'sedici', 'diciassette', 'diciotto', 'diciannove',\n ];\n\n strTens = { '2': 'venti', '3': 'trenta', '4': 'quaranta', '6': 'sessanta' };\n\n exponentPrefixes = [this.zero, 'm', 'b', 'tr', 'quadr', 'quint', 'sest', 'sett', 'ott', 'nov', 'dec'];\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'meno',\n separatorWord: 'virgola',\n zero: 'zero'\n }, options), []);\n\n /** @todo Adapt language to work with {@link BaseLanguage} better */\n }\n\n accentuate(string) {\n const splittedString = string.split(' ');\n\n const result = splittedString.map(word => {\n if (word.slice(-3) == 'tre' && word.length > 3) return word.replace(/tré/g, 'tre').slice(0, -3) + 'tré';\n else return word.replace(/tré/g, 'tre');\n });\n return result.join(' ');\n }\n\n omitIfZero(numberToString) {\n if (numberToString == this.zero) {\n return '';\n } else {\n return numberToString;\n }\n }\n\n phoneticContraction(string) {\n return string.replace(/oo/g, 'o').replace(/ao/g, 'o').replace(/io/g, 'o').replace(/au/g, 'u').replace(/iu/g, 'u');\n }\n\n tensToCardinal(number) {\n const tens = Math.floor(number / 10);\n const units = number % 10;\n let prefix;\n if (Object.prototype.hasOwnProperty.call(this.strTens, tens)) {\n prefix = this.strTens[tens];\n } else {\n prefix = this.cardinalWords[tens].slice(0, -1) + 'anta';\n }\n const postfix = this.omitIfZero(this.cardinalWords[units]);\n return this.phoneticContraction(prefix + postfix);\n }\n\n hundredsToCardinal(number) {\n const hundreds = Math.floor(number / 100);\n let prefix = 'cento';\n if (hundreds != 1) {\n prefix = this.cardinalWords[hundreds] + prefix;\n }\n const postfix = this.omitIfZero(this.toCardinal(number % 100));\n return this.phoneticContraction(prefix + postfix);\n }\n\n thousandsToCardinal(number) {\n const thousands = Math.floor(number / 1000);\n let prefix;\n if (thousands == 1) {\n prefix = 'mille';\n } else {\n prefix = this.toCardinal(thousands) + 'mila';\n }\n const postfix = this.omitIfZero(this.toCardinal(number % 1000));\n return prefix + postfix;\n }\n\n exponentLengthToString(exponentLength) {\n const prefix = this.exponentPrefixes[Math.floor(exponentLength / 6)];\n if (exponentLength % 6 == 0) {\n return prefix + 'ilione';\n } else {\n return prefix + 'iliardo';\n }\n }\n\n bigNumberToCardinal(number) {\n const digits = number.toString().split('');\n\n let preDigits = digits.length % 3;\n if (preDigits == 0) {\n preDigits = 3;\n }\n\n const multiplier = digits.slice(0, preDigits); // first `preDigits` elements\n const exponent = digits.slice(preDigits); // without the first `preDigits` elements\n\n let prefix, postfix;\n let infix = this.exponentLengthToString(exponent.length);\n\n if (multiplier == '1') {\n prefix = 'un ';\n } else {\n prefix = this.toCardinal(Math.trunc(Number(multiplier.join(''))));\n infix = ' ' + infix.slice(0, -1) + 'i'; // without last element\n }\n\n const isSetsEqual = (a, b) => a.size == b.size && [...a].every(value => b.has(value));\n if (!isSetsEqual(new Set(exponent), new Set(['0']))) {\n postfix = this.toCardinal(Math.trunc(exponent.join('')));\n\n if (postfix.includes(' e ')) {\n infix += ', '; // for very large numbers\n } else {\n infix += ' e ';\n }\n } else {\n postfix = '';\n }\n\n return prefix + infix + postfix;\n }\n\n toCardinal(number) {\n let words = '';\n\n if (number < 20) {\n words = this.cardinalWords[number];\n } else if (number < 100) {\n words = this.tensToCardinal(Number(number));\n } else if (number < 1000) {\n words = this.hundredsToCardinal(Number(number));\n } else if (number < 1000000) {\n words = this.thousandsToCardinal(Number(number));\n } else {\n words = this.bigNumberToCardinal(number);\n }\n\n return this.accentuate(words);\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsIT(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsKO extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: '마이너스',\n separatorWord: '점',\n zero: '영'\n }, options), [\n [10000000000000000000000000000n, '양'],\n [1000000000000000000000000n, '자'],\n [100000000000000000000n, '해'],\n [10000000000000000n, '경'],\n [1000000000000n, '조'],\n [100000000n, '억'],\n [10000n, '만'],\n [1000n, '천'],\n [100n, '백'],\n [10n, '십'],\n [9n, '구'],\n [8n, '팔'],\n [7n, '칠'],\n [6n, '육'],\n [5n, '오'],\n [4n, '사'],\n [3n, '삼'],\n [2n, '이'],\n [1n, '일'],\n [0n, '영']\n ]);\n }\n\n merge(lPair, rPair) {\n const lText = Object.keys(lPair)[0];\n const rText = Object.keys(rPair)[0];\n const lNum = BigInt(Object.values(lPair)[0]);\n const rNum = BigInt(Object.values(rPair)[0]);\n if (lNum == 1 && rNum <= 10000) return { [rText]: rNum };\n else if (10000 > lNum && lNum > rNum) return { [`${lText}${rText}`]: lNum + rNum };\n else if (lNum >= 10000 && lNum > rNum) return { [`${lText} ${rText}`]: lNum + rNum };\n else return { [`${lText}${rText}`]: lNum * rNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsKO(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsLT extends N2WordsRU {\n ones = {\n 1: 'vienas',\n 2: 'du',\n 3: 'trys',\n 4: 'keturi',\n 5: 'penki',\n 6: 'šeši',\n 7: 'septyni',\n 8: 'aštuoni',\n 9: 'devyni'\n };\n\n onesFeminine = {\n 1: 'viena',\n 2: 'dvi',\n 3: 'trys',\n 4: 'keturios',\n 5: 'penkios',\n 6: 'šešios',\n 7: 'septynios',\n 8: 'aštuonios',\n 9: 'devynios'\n };\n\n tens = {\n 0: 'dešimt',\n 1: 'vienuolika',\n 2: 'dvylika',\n 3: 'trylika',\n 4: 'keturiolika',\n 5: 'penkiolika',\n 6: 'šešiolika',\n 7: 'septyniolika',\n 8: 'aštuoniolika',\n 9: 'devyniolika'\n };\n\n twenties = {\n 2: 'dvidešimt',\n 3: 'trisdešimt',\n 4: 'keturiasdešimt',\n 5: 'penkiasdešimt',\n 6: 'šešiasdešimt',\n 7: 'septyniasdešimt',\n 8: 'aštuoniasdešimt',\n 9: 'devyniasdešimt'\n };\n\n hundreds = ['šimtas', 'šimtai'];\n\n thousands = {\n 1: ['tūkstantis', 'tūkstančiai', 'tūkstančių'],\n 2: ['milijonas', 'milijonai', 'milijonų'],\n 3: ['milijardas', 'milijardai', 'milijardų'],\n 4: ['trilijonas', 'trilijonai', 'trilijonų'],\n 5: ['kvadrilijonas', 'kvadrilijonai', 'kvadrilijonų'],\n 6: ['kvintilijonas', 'kvintilijonai', 'kvintilijonų'],\n 7: ['sikstilijonas', 'sikstilijonai', 'sikstilijonų'],\n 8: ['septilijonas', 'septilijonai', 'septilijonų'],\n 9: ['oktilijonas', 'oktilijonai', 'oktilijonų'],\n 10: ['naintilijonas', 'naintilijonai', 'naintilijonų'],\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'kablelis',\n zero: 'nulis'\n }, options));\n }\n\n pluralize(n, forms) {\n let form = 1;\n const [n1, n2] = this.getDigits(n);\n if (n2 == 1 || n1 == 0 || n == 0) {\n form = 2;\n } else if (n1 == 1) {\n form = 0;\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n if (x == 0) {\n continue;\n }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n words.push(this.ones[n3]);\n if (n3 > 1) {\n words.push(this.hundreds[1]);\n } else {\n words.push(this.hundreds[0]);\n }\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0) {\n if ((i == 1 || this.feminine && i == 0) && number < 1000) {\n words.push(this.onesFeminine[n1]);\n } else {\n words.push(this.ones[n1]);\n }\n }\n if (i > 0) {\n words.push(this.pluralize(x, this.thousands[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsLT(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsLV extends N2WordsRU {\n ones = {\n 1: 'viens',\n 2: 'divi',\n 3: 'trīs',\n 4: 'četri',\n 5: 'pieci',\n 6: 'seši',\n 7: 'septiņi',\n 8: 'astoņi',\n 9: 'deviņi'\n };\n\n tens = {\n 0: 'desmit',\n 1: 'vienpadsmit',\n 2: 'divpadsmit',\n 3: 'trīspadsmit',\n 4: 'četrpadsmit',\n 5: 'piecpadsmit',\n 6: 'sešpadsmit',\n 7: 'septiņpadsmit',\n 8: 'astoņpadsmit',\n 9: 'deviņpadsmit'\n };\n\n twenties = {\n 2: 'divdesmit',\n 3: 'trīsdesmit',\n 4: 'četrdesmit',\n 5: 'piecdesmit',\n 6: 'sešdesmit',\n 7: 'septiņdesmit',\n 8: 'astoņdesmit',\n 9: 'deviņdesmit'\n };\n\n hundreds = ['simts', 'simti', 'simtu'];\n\n thousands = {\n 1: ['tūkstotis', 'tūkstoši', 'tūkstošu'],\n 2: ['miljons', 'miljoni', 'miljonu'],\n 3: ['miljards', 'miljardi', 'miljardu'],\n 4: ['triljons', 'triljoni', 'triljonu'],\n 5: ['kvadriljons', 'kvadriljoni', 'kvadriljonu'],\n 6: ['kvintiljons', 'kvintiljoni', 'kvintiljonu'],\n 7: ['sikstiljons', 'sikstiljoni', 'sikstiljonu'],\n 8: ['septiljons', 'septiljoni', 'septiljonu'],\n 9: ['oktiljons', 'oktiljoni', 'oktiljonu'],\n 10: ['nontiljons', 'nontiljoni', 'nontiljonu'],\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'mīnus',\n separatorWord: 'komats',\n zero: 'nulle'\n }, options));\n }\n\n pluralize(n, forms) {\n let form = 2;\n if (n != 0n) {\n if (n % 10n == 1n && n % 100n != 11n) {\n form = 0;\n } else {\n form = 1;\n }\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n if (x == 0) {\n continue;\n }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n if (n3 == 1 && n2 == 0 && n1 > 0) {\n words.push(this.hundreds[2]);\n } else if (n3 > 1) {\n words.push(this.ones[n3]);\n words.push(this.hundreds[1]);\n } else {\n words.push(this.hundreds[0]);\n }\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0 && !(i > 0 && x == 1)) {\n words.push(this.ones[n1]);\n }\n if (i > 0) {\n words.push(this.pluralize(x, this.thousands[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsLV(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsNL extends BaseLanguage {\n includeOptionalAnd;\n noHundredPairs;\n\n constructor(options) {\n options = Object.assign({\n negativeWord: 'min',\n separatorWord: 'komma',\n zero: 'nul',\n includeOptionalAnd: false,\n noHundredPairs: false\n }, options);\n\n super(options, [\n [1000000000000000000000000000n, 'quadriljard'],\n [1000000000000000000000000n, 'quadriljoen'],\n [1000000000000000000000n, 'triljard'],\n [1000000000000000000n, 'triljoen'],\n [1000000000000000n, 'biljard'],\n [1000000000000n, 'biljoen'],\n [1000000000n, 'miljard'],\n [1000000n, 'miljoen'],\n [1000n, 'duizend'],\n [100n, 'honderd'],\n [90n, 'negentig'],\n [80n, 'tachtig'],\n [70n, 'zeventig'],\n [60n, 'zestig'],\n [50n, 'vijftig'],\n [40n, 'veertig'],\n [30n, 'dertig'],\n [20n, 'twintig'],\n [19n, 'negentien'],\n [18n, 'achttien'],\n [17n, 'zeventien'],\n [16n, 'zestien'],\n [15n, 'vijftien'],\n [14n, 'veertien'],\n [13n, 'dertien'],\n [12n, 'twaalf'],\n [11n, 'elf'],\n [10n, 'tien'],\n [9n, 'negen'],\n [8n, 'acht'],\n [7n, 'zeven'],\n [6n, 'zes'],\n [5n, 'vijf'],\n [4n, 'vier'],\n [3n, 'drie'],\n [2n, 'twee'],\n [1n, 'een'],\n [0n, 'nul'],\n ]);\n\n this.includeOptionalAnd = options.includeOptionalAnd;\n this.noHundredPairs = options.noHundredPairs;\n }\n\n merge(curr, next) {\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n if (cNum == 1) {\n if (nNum < 1000000) {\n return { [nText]: nNum };\n }\n cText = 'een';\n }\n\n let val = 0;\n if (nNum > cNum) {\n if (nNum >= 1000000) {\n cText += ' ';\n } else if (nNum > 100) {\n nText += ' ';\n }\n val = cNum * nNum;\n } else {\n if (nNum < 10 && cNum > 10 && cNum < 100) {\n const temp = nText;\n nText = cText;\n const andTxt = temp.endsWith('e') ? 'ën' : 'en';\n cText = `${temp}${andTxt}`;\n } else if (nNum < 13 && cNum < 1000 && this.includeOptionalAnd) {\n cText = `${cText}en`;\n } else if (nNum < 13 && cNum >= 1000 && this.includeOptionalAnd) {\n nText = ` en ${nText}`;\n } else if (cNum >= 1000000) {\n cText += ' ';\n } else {\n if (cNum == 1000) {\n cText += ' ';\n }\n }\n val = cNum + nNum;\n }\n return { [`${cText}${nText}`]: val };\n }\n\n toCardinal(value) {\n if (value >= 1100n && value < 10000n && !this.noHundredPairs) {\n const high = value / 100n;\n const low = value % 100n;\n if (high % 10n !== 0n) {\n return super.toCardinal(high) + 'honderd' +\n (low ? (this.includeOptionalAnd ? ' en ' : ' ') + super.toCardinal(low) : '');\n }\n }\n return super.toCardinal(value);\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsNL(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsNO extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'komma',\n zero: 'null'\n }, options), [\n [1000000000000000000000000000000000n, 'quintillard'],\n [1000000000000000000000000000000n, 'quintillion'],\n [1000000000000000000000000000n, 'quadrillard'],\n [1000000000000000000000000n, 'quadrillion'],\n [1000000000000000000000n, 'trillard'],\n [1000000000000000000n, 'trillion'],\n [1000000000000000n, 'billard'],\n [1000000000000n, 'billion'],\n [1000000000n, 'millard'],\n [1000000n, 'million'],\n [1000n, 'tusen'],\n [100n, 'hundre'],\n [90n, 'nitti'],\n [80n, 'åtti'],\n [70n, 'sytti'],\n [60n, 'seksti'],\n [50n, 'femti'],\n [40n, 'førti'],\n [30n, 'tretti'],\n [20n, 'tjue'],\n [19n, 'nitten'],\n [18n, 'atten'],\n [17n, 'sytten'],\n [16n, 'seksten'],\n [15n, 'femten'],\n [14n, 'fjorten'],\n [13n, 'tretten'],\n [12n, 'tolv'],\n [11n, 'elleve'],\n [10n, 'ti'],\n [9n, 'ni'],\n [8n, 'åtte'],\n [7n, 'syv'],\n [6n, 'seks'],\n [5n, 'fem'],\n [4n, 'fire'],\n [3n, 'tre'],\n [2n, 'to'],\n [1n, 'en'],\n [0n, 'null']\n ]);\n }\n\n merge(lPair, rPair) { // {'one':1}, {'hundred':100}\n const lText = Object.keys(lPair)[0];\n const rText = Object.keys(rPair)[0];\n const lNum = BigInt(Object.values(lPair)[0]);\n const rNum = BigInt(Object.values(rPair)[0]);\n if (lNum == 1 && rNum < 100) return { [rText]: rNum };\n else if (lNum < 100 && lNum > rNum) return { [`${lText}-${rText}`]: lNum + rNum };\n else if (lNum >= 100 && rNum < 100) return { [`${lText} og ${rText}`]: lNum + rNum };\n else if (rNum > lNum) return { [`${lText} ${rText}`]: lNum * rNum };\n return { [`${lText}, ${rText}`]: lNum + rNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsNO(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsPL extends N2WordsRU {\n ones = {\n 1: 'jeden',\n 2: 'dwa',\n 3: 'trzy',\n 4: 'cztery',\n 5: 'pięć',\n 6: 'sześć',\n 7: 'siedem',\n 8: 'osiem',\n 9: 'dziewięć'\n };\n\n tens = {\n 0: 'dziesięć',\n 1: 'jedenaście',\n 2: 'dwanaście',\n 3: 'trzynaście',\n 4: 'czternaście',\n 5: 'piętnaście',\n 6: 'szesnaście',\n 7: 'siedemnaście',\n 8: 'osiemnaście',\n 9: 'dziewiętnaście'\n };\n\n twenties = {\n 2: 'dwadzieścia',\n 3: 'trzydzieści',\n 4: 'czterdzieści',\n 5: 'pięćdziesiąt',\n 6: 'sześćdziesiąt',\n 7: 'siedemdziesiąt',\n 8: 'osiemdziesiąt',\n 9: 'dziewięćdzisiąt'\n };\n\n hundreds = {\n 1: 'sto',\n 2: 'dwieście',\n 3: 'trzysta',\n 4: 'czterysta',\n 5: 'pięćset',\n 6: 'sześćset',\n 7: 'siedemset',\n 8: 'osiemset',\n 9: 'dziewięćset'\n };\n\n thousands = {\n 1: ['tysiąc', 'tysiące', 'tysięcy'], // 10^ 3\n 2: ['milion', 'miliony', 'milionów'], // 10^ 6\n 3: ['miliard', 'miliardy', 'miliardów'], // 10^ 9\n 4: ['bilion', 'biliony', 'bilionów'], // 10^ 12\n 5: ['biliard', 'biliardy', 'biliardów'], // 10^ 15\n 6: ['trylion', 'tryliony', 'trylionów'], // 10^ 18\n 7: ['tryliard', 'tryliardy', 'tryliardów'], // 10^ 21\n 8: ['kwadrylion', 'kwadryliony', 'kwadrylionów'], // 10^ 24\n 9: ['kwaryliard', 'kwadryliardy', 'kwadryliardów'], // 10^ 27\n 10: ['kwintylion', 'kwintyliony', 'kwintylionów'], // 10^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'przecinek',\n zero: 'zero'\n }, options));\n }\n\n pluralize(n, forms) {\n let form = 2;\n if (n == 1) {\n form = 0;\n } else if ((n % 10n < 5n) && (n % 10n > 1n) && ((n % 100n < 10n) || (n % 100n > 20n))) {\n form = 1;\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n if (x == 0) {\n continue;\n }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n words.push(this.hundreds[n3]);\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0 && !(i > 0 && x == 1)) {\n words.push(this.ones[n1]);\n }\n if (i > 0) {\n words.push(this.pluralize(x, this.thousands[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsPL(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsPT extends BaseLanguage {\n hundreds = {\n 1: 'cento',\n 2: 'duzentos',\n 3: 'trezentos',\n 4: 'quatrocentos',\n 5: 'quinhentos',\n 6: 'seiscentos',\n 7: 'setecentos',\n 8: 'oitocentos',\n 9: 'novecentos'\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'menos',\n separatorWord: 'vírgula',\n zero: 'zero'\n }, options), [\n [1000000000000000000000000n, 'quatrilião'],\n [1000000000000000000n, 'trilião'],\n [1000000000000n, 'bilião'],\n [1000000n, 'milião'],\n [1000n, 'mil'],\n [100n, 'cem'],\n [90n, 'noventa'],\n [80n, 'oitenta'],\n [70n, 'setenta'],\n [60n, 'sessenta'],\n [50n, 'cinquenta'],\n [40n, 'quarenta'],\n [30n, 'trinta'],\n [20n, 'vinte'],\n [19n, 'dezanove'],\n [18n, 'dezoito'],\n [17n, 'dezassete'],\n [16n, 'dezasseis'],\n [15n, 'quinze'],\n [14n, 'catorze'],\n [13n, 'treze'],\n [12n, 'doze'],\n [11n, 'onze'],\n [10n, 'dez'],\n [9n, 'nove'],\n [8n, 'oito'],\n [7n, 'sete'],\n [6n, 'seis'],\n [5n, 'cinco'],\n [4n, 'quatro'],\n [3n, 'três'],\n [2n, 'dois'],\n [1n, 'um'],\n [0n, 'zero']\n ]);\n }\n\n postClean(words) {\n const transforms = ['mil', 'milhão', 'milhões', 'mil milhões', 'bilião', 'biliões', 'mil biliões'];\n\n transforms.forEach(transform => {\n if (words.match(new RegExp(`.*${transform} e \\\\w*entos? (?=.*e)`))) {\n words = words.replace(new RegExp(`${transform} e`, 'g'), `${transform}`);\n }\n });\n\n return words;\n }\n\n merge(curr, next) {\n let cText = Object.keys(curr)[0];\n let nText = Object.keys(next)[0];\n const cNum = BigInt(Object.values(curr)[0]);\n const nNum = BigInt(Object.values(next)[0]);\n\n if (cNum == 1) {\n if (nNum < 1000000) return { [nText]: nNum };\n cText = 'um';\n } else if (cNum == 100 && nNum % 1000n != 0) {\n cText = 'cento';\n }\n\n if (nNum < cNum) {\n // if (cNum < 100) {\n // return { [`${cText} e ${nText}`]: cNum + nNum }\n // }\n return { [`${cText} e ${nText}`]: cNum + nNum };\n } else if (nNum % 1000000000n == 0 && cNum > 1) {\n nText = nText.slice(0, -4) + 'liões';\n } else if (nNum % 1000000n == 0 && cNum > 1) {\n nText = nText.slice(0, -4) + 'lhões';\n }\n\n if (nText == 'milião') nText = 'milhão';\n\n if (nNum == 100) {\n cText = this.hundreds[cNum];\n nText = '';\n } else {\n nText = ' ' + nText;\n }\n return { [`${cText}${nText}`]: cNum * nNum };\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsPT(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsSR extends N2WordsRU {\n ones = {\n 1: ['jedan', 'jedna'],\n 2: ['dva', 'dve'],\n 3: ['tri', 'tri'],\n 4: ['četiri', 'četiri'],\n 5: ['pet', 'pet'],\n 6: ['šest', 'šest'],\n 7: ['sedam', 'sedam'],\n 8: ['osam', 'osam'],\n 9: ['devet', 'devet']\n };\n\n tens = {\n 0: 'deset',\n 1: 'jedanaest',\n 2: 'dvanaest',\n 3: 'trinaest',\n 4: 'četrnaest',\n 5: 'petnaest',\n 6: 'šesnaest',\n 7: 'sedamnaest',\n 8: 'osamnaest',\n 9: 'devetnaest'\n };\n\n twenties = {\n 2: 'dvadeset',\n 3: 'trideset',\n 4: 'četrdeset',\n 5: 'pedeset',\n 6: 'šezdeset',\n 7: 'sedamdeset',\n 8: 'osamdeset',\n 9: 'devedeset'\n };\n\n hundreds = {\n 1: 'sto',\n 2: 'dvesta',\n 3: 'trista',\n 4: 'četiristo',\n 5: 'petsto',\n 6: 'šesto',\n 7: 'sedamsto',\n 8: 'osamsto',\n 9: 'devetsto'\n };\n\n SCALE = {\n 0: ['', '', '', false],\n 1: ['hiljada', 'hiljade', 'hiljada', true], // 10 ^ 3\n 2: ['milion', 'miliona', 'miliona', false], // 10 ^ 6\n 3: ['milijarda', 'milijarde', 'milijarda', false], // 10 ^ 9\n 4: ['bilion', 'biliona', 'biliona', false], // 10 ^ 12\n 5: ['bilijarda', 'bilijarde', 'bilijarda', false], // 10 ^ 15\n 6: ['trilion', 'triliona', 'triliona', false], // 10 ^ 18\n 7: ['trilijarda', 'trilijarde', 'trilijarda', false], // 10 ^ 21\n 8: ['kvadrilion', 'kvadriliona', 'kvadriliona', false], // 10 ^ 24\n 9: ['kvadrilijarda', 'kvadrilijarde', 'kvadrilijarda', false], // 10 ^ 27\n 10: ['kvintilion', 'kvintiliona', 'kvintiliona', false], // 10 ^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'minus',\n separatorWord: 'zapeta',\n zero: 'nula'\n }, options));\n }\n\n pluralize(n, forms) {\n let form = 2;\n if ((n % 100n < 10n) || (n % 100n > 20n)) {\n if (n % 10n == 1n) {\n form = 0;\n } else if ((n % 10n > 1n) && (n % 10n < 5n)) {\n form = 1;\n }\n }\n return forms[form];\n }\n\n toCardinal(number) {\n if (number == 0) {\n return this.zero;\n }\n const words = [];\n const chunks = this.splitByX(number.toString(), 3);\n let i = chunks.length;\n for (let j = 0; j < chunks.length; j++) {\n const x = chunks[j];\n i = i - 1;\n // if (x == 0) { continue; }\n const [n1, n2, n3] = this.getDigits(x);\n if (n3 > 0) {\n words.push(this.hundreds[n3]);\n }\n if (n2 > 1) {\n words.push(this.twenties[n2]);\n }\n if (n2 == 1) {\n words.push(this.tens[n1]);\n } else if (n1 > 0) {\n const isFeminine = (this.feminine || this.SCALE[i][3]);\n const genderIdx = isFeminine ? 1 : 0;\n words.push(this.ones[n1][genderIdx]);\n }\n if ((i > 0) && (x != 0)) {\n words.push(this.pluralize(x, this.SCALE[i]));\n }\n }\n return words.join(' ');\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsSR(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsTR extends BaseLanguage {\n constructor(options = {}) {\n super(Object.assign({\n negativeWord: 'eksi',\n separatorWord: 'virgül',\n zero: 'sıfır',\n spaceSeparator: (options.dropSpaces === true ? '' : ' '),\n }, options), [\n [1000000000000000000n, 'kentilyon'],\n [1000000000000000n, 'katrilyon'],\n [1000000000000n, 'trilyon'],\n [1000000000n, 'milyar'],\n [1000000n, 'milyon'],\n [1000n, 'bin'],\n [100n, 'yüz'],\n [90n, 'doksan'],\n [80n, 'seksen'],\n [70n, 'yetmiş'],\n [60n, 'altmış'],\n [50n, 'elli'],\n [40n, 'kırk'],\n [30n, 'otuz'],\n [20n, 'yirmi'],\n [10n, 'on'],\n [9n, 'dokuz'],\n [8n, 'sekiz'],\n [7n, 'yedi'],\n [6n, 'altı'],\n [5n, 'beş'],\n [4n, 'dört'],\n [3n, 'üç'],\n [2n, 'iki'],\n [1n, 'bir'],\n [0n, 'sıfır']\n ]);\n }\n\n merge(lPair, rPair) {\n const lText = Object.keys(lPair)[0];\n const rText = Object.keys(rPair)[0];\n const lNum = BigInt(Object.values(lPair)[0]);\n const rNum = BigInt(Object.values(rPair)[0]);\n if (lNum == 1 && (rNum <= 100 || rNum == 1000)) {\n return { [rText]: rNum };\n } else if (rNum > lNum) {\n return { [`${lText}${this.spaceSeparator}${rText}`]: lNum * rNum };\n } else {\n return { [`${lText}${this.spaceSeparator}${rText}`]: lNum + rNum };\n }\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsTR(options).floatToCardinal(value);\n}\n","import { N2WordsRU } from './ru.js';\n\nexport class N2WordsUK extends N2WordsRU {\n ones = {\n 1: 'один',\n 2: 'два',\n 3: 'три',\n 4: 'чотири',\n 5: 'п\\'ять',\n 6: 'шiсть',\n 7: 'сiм',\n 8: 'вiсiм',\n 9: 'дев\\'ять'\n };\n\n onesFeminine = {\n 1: 'одна',\n 2: 'двi',\n 3: 'три',\n 4: 'чотири',\n 5: 'п\\'ять',\n 6: 'шiсть',\n 7: 'сiм',\n 8: 'вiсiм',\n 9: 'дев\\'ять'\n };\n\n tens = {\n 0: 'десять',\n 1: 'одинадцять',\n 2: 'дванадцять',\n 3: 'тринадцять',\n 4: 'чотирнадцять',\n 5: 'п\\'ятнадцять',\n 6: 'шiстнадцять',\n 7: 'сiмнадцять',\n 8: 'вiсiмнадцять',\n 9: 'дев\\'ятнадцять'\n };\n\n twenties = {\n 2: 'двадцять',\n 3: 'тридцять',\n 4: 'сорок',\n 5: 'п\\'ятдесят',\n 6: 'шiстдесят',\n 7: 'сiмдесят',\n 8: 'вiсiмдесят',\n 9: 'дев\\'яносто'\n };\n\n hundreds = {\n 1: 'сто',\n 2: 'двiстi',\n 3: 'триста',\n 4: 'чотириста',\n 5: 'п\\'ятсот',\n 6: 'шiстсот',\n 7: 'сiмсот',\n 8: 'вiсiмсот',\n 9: 'дев\\'ятсот'\n };\n\n thousands = {\n 1: ['тисяча', 'тисячi', 'тисяч'], // 10^ 3\n 2: ['мiльйон', 'мiльйони', 'мiльйонiв'], // 10^ 6\n 3: ['мiльярд', 'мiльярди', 'мiльярдiв'], // 10^ 9\n 4: ['трильйон', 'трильйони', 'трильйонiв'], // 10^ 12\n 5: ['квадрильйон', 'квадрильйони', 'квадрильйонiв'], // 10^ 15\n 6: ['квiнтильйон', 'квiнтильйони', 'квiнтильйонiв'], // 10^ 18\n 7: ['секстильйон', 'секстильйони', 'секстильйонiв'], // 10^ 21\n 8: ['септильйон', 'септильйони', 'септильйонiв'], // 10^ 24\n 9: ['октильйон', 'октильйони', 'октильйонiв'], // 10^ 27\n 10: ['нонiльйон', 'нонiльйони', 'нонiльйонiв'], // 10^ 30\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'мiнус',\n separatorWord: 'кома',\n zero: 'нуль'\n }, options));\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsUK(options).floatToCardinal(value);\n}\n","import AbstractLanguage from '../classes/AbstractLanguage.js';\n\nexport class N2WordsID extends AbstractLanguage {\n base = {\n 0: 'không',\n 1: 'một',\n 2: 'hai',\n 3: 'ba',\n 4: 'bốn',\n 5: 'năm',\n 6: 'sáu',\n 7: 'bảy',\n 8: 'tám',\n 9: 'chín',\n 10: 'mười',\n 11: 'mười một',\n 12: 'mười hai',\n 13: 'mười ba',\n 14: 'mười bốn',\n 15: 'mười lăm',\n 16: 'mười sáu',\n 17: 'mười bảy',\n 18: 'mười tám',\n 19: 'mười chín',\n };\n\n tens = {\n 20: 'hai mươi',\n 30: 'ba mươi',\n 40: 'bốn mươi',\n 50: 'năm mươi',\n 60: 'sáu mươi',\n 70: 'bảy mươi',\n 80: 'tám mươi',\n 90: 'chín mươi',\n };\n\n thousands = {\n 1: 'nghìn', // 10^1\n 2: 'triệu', // 10^2\n 3: 'tỷ', // 10^3\n 4: 'nghìn tỷ',\n 5: 'trăm nghìn tỷ',\n 6: 'Quintillion',\n 7: 'Sextillion',\n 8: 'Septillion',\n 9: 'Octillion',\n 10: 'Nonillion',\n 11: 'Decillion',\n 12: 'Undecillion',\n 13: 'Duodecillion',\n 14: 'Tredecillion',\n 15: 'Quattuordecillion',\n 16: 'Sexdecillion',\n 17: 'Septendecillion',\n 18: 'Octodecillion',\n 19: 'Novemdecillion',\n 20: 'Vigintillion',\n };\n\n constructor(options) {\n super(Object.assign({\n negativeWord: 'âm',\n separatorWord: 'phẩy',\n zero: 'không'\n }, options));\n }\n\n convertLess100(number) {\n let unitsPart = number % 10;\n let tensPart = number - unitsPart;\n let tensPartText = this.tens[tensPart];\n if (unitsPart == 0) {\n return tensPartText;\n }\n let unitsPartText = this.base[unitsPart];\n let suffix = unitsPartText;\n if (unitsPart == 1) {\n suffix = 'mốt';\n }\n if (unitsPart == 5) {\n suffix = 'lăm';\n }\n return tensPartText + ' ' + suffix;\n }\n\n convertLess1000(number) {\n let words = [];\n let tensUnitsPart = number % 100;\n let hundredsPart = number - tensUnitsPart;\n if (hundredsPart > 0) {\n words.push(this.base[hundredsPart / 100], 'trăm');\n }\n if (0 < tensUnitsPart && tensUnitsPart < 10) {\n if (words.length > 0) {\n words.push('lẻ');\n }\n if (tensUnitsPart == 5) {\n words.push('năm');\n } else {\n words.push(this.base[tensUnitsPart]);\n }\n }\n if (tensUnitsPart >= 10) {\n words.push(this.toCardinal(tensUnitsPart));\n }\n return words.join(' ');\n }\n\n convertMore1000(number) {\n let words = [];\n let division = number / 1000n;\n let power = 1;\n while (division >= 1000n) {\n division = division / 1000n;\n power = power + 1;\n }\n let r = number - (division * BigInt(Math.pow(1000, power)));\n words.push(this.toCardinal(division), this.thousands[power]);\n if (r > 0n) {\n if (r <= 99n) {\n words.push('lẻ');\n }\n words.push(this.toCardinal(r));\n }\n return words.join(' ');\n }\n\n toCardinal(number) {\n if (number < 20n) {\n return this.base[Number(number)];\n } else {\n if (number < 100n) {\n return this.convertLess100(Number(number));\n } else {\n if (number < 1000n) {\n return this.convertLess1000(Number(number));\n } else { // number >= 1000\n return this.convertMore1000(number);\n }\n }\n }\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsID(options).floatToCardinal(value);\n}\n","import BaseLanguage from '../classes/BaseLanguage.js';\n\nexport class N2WordsZH extends BaseLanguage {\n constructor(options) {\n super(Object.assign({\n negativeWord: '负',\n separatorWord: '点',\n zero: '零',\n spaceSeparator: ''\n }, options), [\n [1000000000000n, '万'],\n [100000000n, '亿'],\n [10000n, '万'],\n [1000n, '仟'],\n [100n, '佰'],\n [10n, '拾'],\n [9n, '玖'],\n [8n, '捌'],\n [7n, '柒'],\n [6n, '陆'],\n [5n, '伍'],\n [4n, '肆'],\n [3n, '叁'],\n [2n, '贰'],\n [1n, '壹'],\n [0n, '零']\n ]);\n }\n\n merge(lPair, rPair) {\n // {'one':1}, {'hundred':100}\n const ltext = Object.keys(lPair)[0];\n const lnum = BigInt(Object.values(lPair)[0]);\n const rtext = Object.keys(rPair)[0];\n const rnum = BigInt(Object.values(rPair)[0]);\n\n let result = { [`${ltext}${rtext}`]: lnum + rnum };\n\n if (lnum == 1 && rnum < 10) {\n result = { [rtext]: rnum };\n } else if (rnum > lnum) {\n result = { [`${ltext}${rtext}`]: lnum * rnum };\n } else if (this.zeroDigit(lnum) > this.digit(rnum)) {\n result = { [`${ltext}${this.zero}${rtext}`]: lnum + rnum };\n }\n\n return result;\n }\n\n decimalToCardinal(decimal) {\n const decimalPartArray = decimal.split('');\n\n const decimalPartWordsArray = decimalPartArray.map(decimal =>\n this.getCardWord(decimal)\n );\n\n return decimalPartWordsArray.join(this.spaceSeparator);\n }\n\n digit(num) {\n return num.toString().length;\n }\n\n zeroDigit(num) {\n return Array.from(num.toString()).filter(c => c == '0').length;\n }\n}\n\n/**\n * Converts a value to cardinal (written) form.\n * @param {number|string} value Number to be convert.\n * @param {object} options Options for class.\n * @throws {Error} Value cannot be invalid.\n * @returns {string} Value in cardinal (written) format.\n */\nexport default function (value, options) {\n return new N2WordsZH(options).floatToCardinal(value);\n}\n","import n2wordsAR from './i18n/ar.js';\nimport n2wordsAZ from './i18n/az.js';\nimport n2wordsCZ from './i18n/cz.js';\nimport n2wordsDE from './i18n/de.js';\nimport n2wordsDK from './i18n/dk.js';\nimport n2wordsEN from './i18n/en.js';\nimport n2wordsES from './i18n/es.js';\nimport n2wordsFA from './i18n/fa.js';\nimport n2wordsFR from './i18n/fr.js';\nimport n2wordsHE from './i18n/he.js';\nimport n2wordsHR from './i18n/hr.js';\nimport n2wordsHU from './i18n/hu.js';\nimport n2wordsID from './i18n/id.js';\nimport n2wordsIT from './i18n/it.js';\nimport n2wordsKO from './i18n/ko.js';\nimport n2wordsLT from './i18n/lt.js';\nimport n2wordsLV from './i18n/lv.js';\nimport n2wordsNL from './i18n/nl.js';\nimport n2wordsNO from './i18n/no.js';\nimport n2wordsPL from './i18n/pl.js';\nimport n2wordsPT from './i18n/pt.js';\nimport n2wordsRU from './i18n/ru.js';\nimport n2wordsSR from './i18n/sr.js';\nimport n2wordsTR from './i18n/tr.js';\nimport n2wordsUK from './i18n/uk.js';\nimport n2wordsVI from './i18n/vi.js';\nimport n2wordsZH from './i18n/zh.js';\n\n/**\n * Converts a number to written form.\n * @param {number|string} value The number to convert.\n * @param {object} [options] User options.\n * @returns {string} Value in written format.\n */\nexport default function (value, options = { lang: 'en' }) {\n switch (options.lang) {\n case 'en': return n2wordsEN(value, options); // default\n case 'ar': return n2wordsAR(value, options);\n case 'az': return n2wordsAZ(value, options);\n case 'cz': return n2wordsCZ(value, options);\n case 'de': return n2wordsDE(value, options);\n case 'dk': return n2wordsDK(value, options);\n case 'es': return n2wordsES(value, options);\n case 'fa': return n2wordsFA(value, options);\n case 'fr': return n2wordsFR(value, options);\n case 'he': return n2wordsHE(value, options); // only for numbers <= 9999\n case 'hr': return n2wordsHR(value, options);\n case 'hu': return n2wordsHU(value, options);\n case 'id': return n2wordsID(value, options);\n case 'it': return n2wordsIT(value, options);\n case 'ko': return n2wordsKO(value, options);\n case 'lt': return n2wordsLT(value, options);\n case 'lv': return n2wordsLV(value, options);\n case 'nl': return n2wordsNL(value, options);\n case 'no': return n2wordsNO(value, options);\n case 'pl': return n2wordsPL(value, options);\n case 'pt': return n2wordsPT(value, options);\n case 'ru': return n2wordsRU(value, options);\n case 'sr': return n2wordsSR(value, options);\n case 'tr': return n2wordsTR(value, options);\n case 'uk': return n2wordsUK(value, options);\n case 'vi': return n2wordsVI(value, options);\n case 'zh': return n2wordsZH(value, options);\n default: throw Error('Unsupported language: ' + value + '.');\n }\n}\n"],"names":["root","factory","exports","module","define","amd","this","isCallable","tryToString","$TypeError","TypeError","argument","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","value","O","length","index","includes","indexOf","DESCRIPTORS","isArray","getOwnPropertyDescriptor","Object","SILENT_ON_NON_WRITABLE_LENGTH_SET","undefined","defineProperty","writable","error","uncurryThis","toString","stringSlice","slice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","i","key","createPropertyDescriptor","object","bitmap","enumerable","configurable","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","nonConfigurable","nonWritable","fails","get","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","navigator","userAgent","match","version","process","Deno","versions","v8","split","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","prototype","dontCallGetSet","forced","sham","exec","test","bind","hasOwnProperty","NATIVE_BIND","call","Function","apply","arguments","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","fn","namespace","method","aCallable","isNullOrUndefined","V","P","func","check","Math","globalThis","window","self","toObject","a","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","TYPE","type","Array","$documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","constructor","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","push","names","result","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","setArrayLength","doesNotExceedSafeInteger","proto","properErrorOnNonWritableLength","item","len","argCount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","prop","assign","negativeWord","separatorWord","zeroWord","spaceSeparator","zero","wholeNumber","decimalToCardinal","decimal","words","chars","reverse","pop","toCardinal","BigInt","floatToCardinal","Number","isNaN","Error","trim","decimalNumber","splitValue","Arabic","AbstractLanguage","integerValue","decimalValue","arabicOnes","arabicFeminineOnes","arabicTens","arabicHundreds","arabicAppendedTwos","arabicTwos","arabicGroup","arabicAppendedGroup","arabicPluralGroups","super","digitFeminineStatus","digit","processArabicGroup","groupNumber","groupLevel","remainingNumber","tens","hundreds","retVal","ones","tempNumber","group","numberToProcess","groupDescription","cards","getCardWord","card","find","_card","toCardMatches","out","remaining","quantity","scanNum","map","v","clean","left","right","elem","merge","postClean","out0","trimRight","preWords","N2WordsAZ","BaseLanguage","lPair","rPair","lText","rText","lNum","values","rNum","N2WordsRU","feminine","onesFeminine","twenties","thousands","chunks","splitByX","j","n1","n2","n3","getDigits","pluralize","formatInt","results","l","start","from","padStart","e","forms","form","N2WordsCZ","N2WordsDE","curr","next","cText","nText","cNum","nNum","temp","N2WordsDK","ordFlag","English","N2WordsES","genderStem","N2WordsFA","namedNumbers","xone","xten","xhundred","tail","thousandMultiplier","tailNumber","millionMultiplier","N2WordsFR","N2WordsHE","and","N2WordsHR","SCALE","genderIdx","N2WordsHU","tensToCardinal","units","hundredsToCardinal","prefix","thousandsToCardinal","bigNumberToCardinal","numberLength","digits","exp","rest","N2WordsID","base","splitBy3","firstBlock","blocks","strNumber","firstBlockLength","nextBlock","spell","spelling","wordBlocks","getTens","getHundreds","block","wordList","N2WordsIT","cardinalWords","strTens","exponentPrefixes","accentuate","word","omitIfZero","numberToString","phoneticContraction","exponentLengthToString","exponentLength","preDigits","multiplier","exponent","infix","isSetsEqual","b","Set","size","every","N2WordsKO","N2WordsLT","N2WordsLV","N2WordsNL","includeOptionalAnd","noHundredPairs","andTxt","endsWith","high","low","N2WordsNO","N2WordsPL","N2WordsPT","forEach","transform","RegExp","N2WordsSR","N2WordsTR","dropSpaces","N2WordsUK","convertLess100","unitsPart","tensPart","tensPartText","suffix","convertLess1000","tensUnitsPart","hundredsPart","convertMore1000","division","power","r","pow","N2WordsZH","ltext","lnum","rtext","rnum","zeroDigit","num","filter","c","lang","n2wordsEN","n2wordsAR","n2wordsAZ","n2wordsCZ","n2wordsDE","n2wordsDK","n2wordsES","n2wordsFA","n2wordsFR","n2wordsHE","n2wordsHR","n2wordsHU","n2wordsID","n2wordsIT","n2wordsKO","n2wordsLT","n2wordsLV","n2wordsNL","n2wordsNO","n2wordsPL","n2wordsPT","n2wordsRU","n2wordsSR","n2wordsTR","n2wordsUK","n2wordsVI","n2wordsZH"],"sourceRoot":""}