@razorpay/blade
Version:
The Design System that powers Razorpay
64 lines (60 loc) • 1.65 kB
JavaScript
/**
* 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