locale_nemeth.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.nemeth = nemeth;
  4. const locale_js_1 = require("../locale.js");
  5. const numbers_nemeth_js_1 = require("../numbers/numbers_nemeth.js");
  6. const transformers_js_1 = require("../transformers.js");
  7. const simpleEnglish = function (letter) {
  8. return letter.match(RegExp('^' + locale.ALPHABETS.languagePrefix.english))
  9. ? letter.slice(1)
  10. : letter;
  11. };
  12. const postfixCombiner = function (letter, font, _number) {
  13. letter = simpleEnglish(letter);
  14. return font ? letter + font : letter;
  15. };
  16. const germanCombiner = function (letter, font, _cap) {
  17. return font + simpleEnglish(letter);
  18. };
  19. const embellishCombiner = function (letter, font, num) {
  20. letter = simpleEnglish(letter);
  21. return font + (num ? num : '') + letter + '⠻';
  22. };
  23. const doubleEmbellishCombiner = function (letter, font, num) {
  24. letter = simpleEnglish(letter);
  25. return font + (num ? num : '') + letter + '⠻⠻';
  26. };
  27. const parensCombiner = function (letter, font, _number) {
  28. letter = simpleEnglish(letter);
  29. return font + letter + '⠾';
  30. };
  31. let locale = null;
  32. function nemeth() {
  33. if (!locale) {
  34. locale = create();
  35. }
  36. return locale;
  37. }
  38. function create() {
  39. const loc = (0, locale_js_1.createLocale)();
  40. loc.NUMBERS = numbers_nemeth_js_1.NUMBERS;
  41. loc.COMBINERS = {
  42. postfixCombiner: postfixCombiner,
  43. germanCombiner: germanCombiner,
  44. embellishCombiner: embellishCombiner,
  45. doubleEmbellishCombiner: doubleEmbellishCombiner,
  46. parensCombiner: parensCombiner
  47. };
  48. loc.FUNCTIONS.fracNestDepth = (_node) => false;
  49. loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font);
  50. loc.FUNCTIONS.si = transformers_js_1.identityTransformer;
  51. loc.ALPHABETS.combiner = (letter, font, num) => {
  52. return font ? font + num + letter : simpleEnglish(letter);
  53. };
  54. loc.ALPHABETS.digitTrans = { default: numbers_nemeth_js_1.NUMBERS.numberToWords };
  55. return loc;
  56. }