You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.1 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. function counterDecode(inputId, outputId) {
  4. var custom_indent = document.getElementById(inputId).value;
  5. var result = descriptiveCounter(custom_indent);
  6. document.getElementById(outputId).innerHTML = result;
  7. }
  8. function descriptiveCounter(input) {
  9. input = input.replace(/\\t/g, " ");
  10. input = input.replace(/\\r/g, "\r");
  11. input = input.replace(/\\n/g, "\n");
  12. var tokens = input.split("");
  13. var result = "";
  14. var repeatedCharCount = 0;
  15. for (var i = 0; i < tokens.length; i++) {
  16. var char = input.substr(i, 1);
  17. if (char == input.substr(i + 1, 1)) {
  18. repeatedCharCount++;
  19. }
  20. else {
  21. switch (char) {
  22. case " ":
  23. char = "blankspace";
  24. break;
  25. case "\t":
  26. char = "tab";
  27. break;
  28. case "\n":
  29. char = "\\n";
  30. break;
  31. case "\r":
  32. char = "\\r";
  33. break;
  34. default:
  35. char = "'" + char + "'";
  36. }
  37. repeatedCharCount = repeatedCharCount > 8 ? 8 : repeatedCharCount;
  38. if (repeatedCharCount > 0) {
  39. char += "s";
  40. }
  41. result += getCountText(repeatedCharCount, char);
  42. repeatedCharCount = 0;
  43. }
  44. }
  45. if (result.length < 0) {
  46. switch (char) {
  47. case " ":
  48. char = "blankspace";
  49. break;
  50. case "\t":
  51. char = "tab";
  52. }
  53. repeatedCharCount = repeatedCharCount > 8 ? 8 : repeatedCharCount;
  54. result = getCountText(repeatedCharCount, char);
  55. }
  56. result = result.replace(/^ & /, "");
  57. return result;
  58. }
  59. exports.descriptiveCounter = descriptiveCounter;
  60. function getCountText(count, char) {
  61. const dict = ["one", "two", "three", "four", "five", "six", "seven", "eight", "many"];
  62. const ampersand = " & ";
  63. return ampersand + dict[count] + " " + char;
  64. }
  65. //# sourceMappingURL=descriptiveCounter.js.map