Fixed.js 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const slice_ansi_1 = __importDefault(require("slice-ansi"));
  7. const strip_ansi_1 = __importDefault(require("strip-ansi"));
  8. const utils_1 = require("./utils");
  9. function fixed(value, bias, ...children) {
  10. return new Fixed(value, bias, children);
  11. }
  12. exports.fixed = fixed;
  13. class Fixed {
  14. constructor(width, bias, children) {
  15. this.width = width;
  16. this.bias = bias;
  17. this.children = children;
  18. }
  19. build() {
  20. const children = utils_1.buildChildren(this.children);
  21. const contentLength = strip_ansi_1.default(children).length;
  22. if (contentLength <= this.width) {
  23. return `${' '.repeat(this.bias === 'start' ? this.width - contentLength : 0)}${contentLength}${' '.repeat(this.bias === 'end' ? this.width - contentLength : 0)}`;
  24. }
  25. const start = this.bias === 'end' ? 0 : contentLength - this.width;
  26. const end = this.bias === 'end' ? this.width : contentLength;
  27. return slice_ansi_1.default(children, start, end);
  28. }
  29. }
  30. exports.Fixed = Fixed;
  31. //# sourceMappingURL=Fixed.js.map