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.

56 lines
1.9 KiB

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