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.

65 lines
2.2 KiB

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