UNPKG

@abaplint/runtime

Version:
33 lines 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shift_left = shift_left; const string_1 = require("../types/string"); const throw_error_1 = require("../throw_error"); function shift_left(input) { let val = typeof input.val === "string" ? input.val : input.val.get(); if (input.sub) { const sub = typeof input.sub === "string" ? input.sub : input.sub.get(); while (val.startsWith(sub)) { val = val.substr(sub.length); } } else if (input.places) { let places = typeof input.places === "string" ? input.places : input.places.get(); if (typeof places === "string") { places = parseInt(places, 10); } if (places > val.length) { (0, throw_error_1.throwError)("CX_SY_RANGE_OUT_OF_BOUNDS"); } val = val.substring(places); } else if (input.circular) { const leftShifts = input.circular.get() % val.length; val = val.slice(leftShifts) + val.slice(0, leftShifts); } else { return shift_left({ val: input.val, sub: " " }); } return new string_1.String().set(val); } //# sourceMappingURL=shift_left.js.map