@shopify/polaris
Version:
Shopify’s product component library
65 lines (59 loc) • 2.02 kB
JavaScript
var MINUTE = 60;
var HOUR = MINUTE * 60;
function ensureTwoDigits(num) {
return num > 9 ? String(num) : "0".concat(num);
}
function secondsToTimeComponents(seconds) {
return {
hours: Math.floor(seconds / HOUR),
minutes: Math.floor(seconds % HOUR / MINUTE),
seconds: seconds % MINUTE
};
}
function secondsToTimestamp(numSeconds) {
var {
hours,
minutes,
seconds
} = secondsToTimeComponents(numSeconds);
var hasHours = numSeconds > HOUR;
var hoursText = hasHours ? "".concat(hours, ":") : '';
var minutesText = "".concat(hasHours ? ensureTwoDigits(minutes) : minutes, ":");
var secondsText = "".concat(ensureTwoDigits(seconds));
return "".concat(hoursText).concat(minutesText).concat(secondsText);
}
function secondsToDurationTranslationKey(numSeconds) {
var {
hours,
minutes,
seconds
} = secondsToTimeComponents(numSeconds);
var durationKey = 'Polaris.VideoThumbnail.playButtonA11yLabel.duration';
if (hours) {
durationKey += ".hours.".concat(hours > 1 ? 'other' : 'one');
if (seconds) {
if (minutes > 1) {
durationKey += "".concat(seconds > 1 ? '.minutesAndSeconds' : '.minutesAndSecond');
} else if (minutes === 1) {
durationKey += "".concat(seconds > 1 ? '.minuteAndSeconds' : '.minuteAndSecond');
} else {
durationKey += "".concat(seconds > 1 ? '.andSeconds' : '.andSecond');
}
} else if (minutes) {
durationKey += "".concat(minutes > 1 ? '.andMinutes' : '.andMinute');
} else {
durationKey += '.only';
}
} else if (minutes) {
durationKey += ".minutes.".concat(minutes > 1 ? 'other' : 'one');
if (seconds) {
durationKey += "".concat(seconds > 1 ? '.andSeconds' : '.andSecond');
} else {
durationKey += '.only';
}
} else if (seconds) {
durationKey += seconds > 1 ? '.seconds.other' : '.seconds.one';
}
return durationKey;
}
export { ensureTwoDigits, secondsToDurationTranslationKey, secondsToTimeComponents, secondsToTimestamp };