UNPKG

@glowlamp/control-sequences

Version:
71 lines (55 loc) 1.89 kB
"use strict"; var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); _Object$defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; exports.moveCursorAt = moveCursorAt; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass")); var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat")); var _control_sequence_introducer = _interopRequireDefault(require("./control_sequence_introducer")); /** * * @param {int} x * @param {int} y * @returns {CursorPosition} */ function moveCursorAt(x, y) { var _context, _context2; return (0, _concat["default"])(_context = (0, _concat["default"])(_context2 = "".concat(_control_sequence_introducer["default"])).call(_context2, x, ";")).call(_context, y, "H"); } function atLeast1(i) { return i < 1 ? 1 : i; } /** * @class */ var MoveCursorAt = /*#__PURE__*/function () { /** * @constructor * @param {int} x * @param {int} y */ function MoveCursorAt(x, y) { (0, _classCallCheck2["default"])(this, MoveCursorAt); this.x = x; this.y = y; this.sequence = moveCursorAt(atLeast1(this.x), atLeast1(this.y)); } /** * To apply adjustment to the this cursor position. Move the cursor to the relative * @method * @param {MoveCursorAt} sequence * @returns {MoveCursorAt} */ (0, _createClass2["default"])(MoveCursorAt, [{ key: "merge", value: function merge(sequence) { return new MoveCursorAt(this.x + sequence.x, this.y + sequence.y); } }]); return MoveCursorAt; }(); exports["default"] = MoveCursorAt;