UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

64 lines (60 loc) 1.65 kB
/** * Converts number to roman number * */ var romanize = function romanize(number) { var romanKeys = { m: 1000, cm: 900, d: 500, cd: 400, c: 100, xc: 90, l: 50, xl: 40, x: 10, ix: 9, v: 5, iv: 4, i: 1 }; var result = ''; Object.keys(romanKeys).forEach(function (key) { result += key.repeat(Math.floor(number / romanKeys[key])); number %= romanKeys[key]; }); return result; }; /** * Converts number to alphabet. After 26 letters, the output will contain 2 alphabets eg) aa, ab, ac,... * */ var alphabetize = function alphabetize(number) { // Decrement the input number since array starts with 0. Eg) 'a' will be at 0th position and not 1st position in the array. var indexedNumber = --number; var alphabets = 'abcdefghijklmnopqrstuvwxyz'; var firstAlphabets = indexedNumber >= 26 ? alphabetize(Math.floor(indexedNumber / 26) - 1) : ''; var lastAlphabet = alphabets[indexedNumber % 26]; return "".concat(firstAlphabets).concat(lastAlphabet); }; /** * Get the list item bullet number/roman number/alphabet for the passed level and list item number * */ var getOrderedListItemBullet = function getOrderedListItemBullet(_ref) { var itemNumber = _ref.itemNumber, level = _ref.level; if (isNaN(itemNumber)) return ''; switch (level) { case 1: return "".concat(itemNumber); case 2: return "".concat(alphabetize(itemNumber)); case 3: return "".concat(romanize(itemNumber)); default: return "".concat(itemNumber); } }; export { getOrderedListItemBullet }; //# sourceMappingURL=getOrderedListItemBullet.js.map