@ciri/ngx-countdown
Version:
An angular countdown component.
104 lines • 8.65 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/utils.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} num
* @param {?=} n
* @return {?}
*/
function padZero(num, n = 2) {
/** @type {?} */
const str = num + '';
if (str.length >= n) {
return str;
}
return (Array(n).join('0') + str).slice(-n);
}
/** @type {?} */
const SECOND = 1000;
/** @type {?} */
const MINUTE = 60 * SECOND;
/** @type {?} */
const HOUR = 60 * MINUTE;
/** @type {?} */
const DAY = 24 * HOUR;
/**
* @param {?} time
* @return {?}
*/
export function parseTimeData(time) {
/** @type {?} */
const days = Math.floor(time / DAY);
/** @type {?} */
const hours = Math.floor((time % DAY) / HOUR);
/** @type {?} */
const minutes = Math.floor((time % HOUR) / MINUTE);
/** @type {?} */
const seconds = Math.floor((time % MINUTE) / SECOND);
/** @type {?} */
const milliseconds = Math.floor(time % SECOND);
return {
days,
hours,
minutes,
seconds,
milliseconds
};
}
/**
* @param {?} format
* @param {?} timeData
* @return {?}
*/
export function parseFormat(format, timeData) {
let { days, hours, minutes, seconds, milliseconds } = timeData;
if (format.indexOf('DD') === -1) {
hours += days * 24;
}
else {
format = format.replace('DD', padZero(days));
}
if (format.indexOf('HH') === -1) {
minutes += hours * 60;
}
else {
format = format.replace('HH', padZero(hours));
}
if (format.indexOf('mm') === -1) {
seconds += minutes * 60;
}
else {
format = format.replace('mm', padZero(minutes));
}
if (format.indexOf('ss') === -1) {
milliseconds += seconds * 1000;
}
else {
format = format.replace('ss', padZero(seconds));
}
if (format.indexOf('S') !== -1) {
/** @type {?} */
const ms = padZero(milliseconds, 3);
if (format.indexOf('SSS') !== -1) {
format = format.replace('SSS', ms);
}
else if (format.indexOf('SS') !== -1) {
format = format.replace('SS', ms.slice(0, 2));
}
else {
format = format.replace('S', ms.charAt(0));
}
}
return format;
}
/**
* @param {?} time1
* @param {?} time2
* @return {?}
*/
export function isSameSecond(time1, time2) {
return Math.floor(time1 / 1000) === Math.floor(time2 / 1000);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2lyaS9uZ3gtY291bnRkb3duLyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxTQUFTLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7O1VBQ25CLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRTtJQUNwQixJQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sR0FBRyxDQUFBO0tBQ1g7SUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM3QyxDQUFDOztNQVVLLE1BQU0sR0FBRyxJQUFJOztNQUNiLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTTs7TUFDcEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxNQUFNOztNQUNsQixHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUk7Ozs7O0FBRXJCLE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWTs7VUFDbEMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzs7VUFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDOztVQUN2QyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7O1VBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQzs7VUFDOUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUU5QyxPQUFPO1FBQ0wsSUFBSTtRQUNKLEtBQUs7UUFDTCxPQUFPO1FBQ1AsT0FBTztRQUNQLFlBQVk7S0FDYixDQUFBO0FBQ0gsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjLEVBQUUsUUFBa0I7UUFDeEQsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsUUFBUTtJQUU5RCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDL0IsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUE7S0FDbkI7U0FBTTtRQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtLQUM3QztJQUVELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUMvQixPQUFPLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtLQUN0QjtTQUFNO1FBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0tBQzlDO0lBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFBO0tBQ3hCO1NBQU07UUFDTCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7S0FDaEQ7SUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDL0IsWUFBWSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUE7S0FDL0I7U0FBTTtRQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtLQUNoRDtJQUVELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs7Y0FDeEIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDbkM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDOUM7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDM0M7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhLEVBQUUsS0FBYTtJQUN2RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFBO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBwYWRaZXJvKG51bSwgbiA9IDIpIHtcbiAgY29uc3Qgc3RyID0gbnVtICsgJydcbiAgaWYoc3RyLmxlbmd0aCA+PSBuKSB7XG4gICAgcmV0dXJuIHN0clxuICB9XG4gIHJldHVybiAoQXJyYXkobikuam9pbignMCcpICsgc3RyKS5zbGljZSgtbilcbn1cblxuZXhwb3J0IHR5cGUgVGltZURhdGEgPSB7XG4gIGRheXM6IG51bWJlclxuICBob3VyczogbnVtYmVyXG4gIG1pbnV0ZXM6IG51bWJlclxuICBzZWNvbmRzOiBudW1iZXJcbiAgbWlsbGlzZWNvbmRzOiBudW1iZXJcbn1cblxuY29uc3QgU0VDT05EID0gMTAwMFxuY29uc3QgTUlOVVRFID0gNjAgKiBTRUNPTkRcbmNvbnN0IEhPVVIgPSA2MCAqIE1JTlVURVxuY29uc3QgREFZID0gMjQgKiBIT1VSXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRpbWVEYXRhKHRpbWU6IG51bWJlcik6IFRpbWVEYXRhIHtcbiAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IodGltZSAvIERBWSlcbiAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKCh0aW1lICUgREFZKSAvIEhPVVIpXG4gIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lICUgSE9VUikgLyBNSU5VVEUpXG4gIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKCh0aW1lICUgTUlOVVRFKSAvIFNFQ09ORClcbiAgY29uc3QgbWlsbGlzZWNvbmRzID0gTWF0aC5mbG9vcih0aW1lICUgU0VDT05EKVxuXG4gIHJldHVybiB7XG4gICAgZGF5cyxcbiAgICBob3VycyxcbiAgICBtaW51dGVzLFxuICAgIHNlY29uZHMsXG4gICAgbWlsbGlzZWNvbmRzXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRm9ybWF0KGZvcm1hdDogc3RyaW5nLCB0aW1lRGF0YTogVGltZURhdGEpOiBzdHJpbmcge1xuICBsZXQgeyBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcywgbWlsbGlzZWNvbmRzIH0gPSB0aW1lRGF0YVxuXG4gIGlmIChmb3JtYXQuaW5kZXhPZignREQnKSA9PT0gLTEpIHtcbiAgICBob3VycyArPSBkYXlzICogMjRcbiAgfSBlbHNlIHtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnREQnLCBwYWRaZXJvKGRheXMpKVxuICB9XG5cbiAgaWYgKGZvcm1hdC5pbmRleE9mKCdISCcpID09PSAtMSkge1xuICAgIG1pbnV0ZXMgKz0gaG91cnMgKiA2MFxuICB9IGVsc2Uge1xuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCdISCcsIHBhZFplcm8oaG91cnMpKVxuICB9XG5cbiAgaWYgKGZvcm1hdC5pbmRleE9mKCdtbScpID09PSAtMSkge1xuICAgIHNlY29uZHMgKz0gbWludXRlcyAqIDYwXG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ21tJywgcGFkWmVybyhtaW51dGVzKSlcbiAgfVxuXG4gIGlmIChmb3JtYXQuaW5kZXhPZignc3MnKSA9PT0gLTEpIHtcbiAgICBtaWxsaXNlY29uZHMgKz0gc2Vjb25kcyAqIDEwMDBcbiAgfSBlbHNlIHtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnc3MnLCBwYWRaZXJvKHNlY29uZHMpKVxuICB9XG5cbiAgaWYgKGZvcm1hdC5pbmRleE9mKCdTJykgIT09IC0xKSB7XG4gICAgY29uc3QgbXMgPSBwYWRaZXJvKG1pbGxpc2Vjb25kcywgMylcblxuICAgIGlmIChmb3JtYXQuaW5kZXhPZignU1NTJykgIT09IC0xKSB7XG4gICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnU1NTJywgbXMpXG4gICAgfSBlbHNlIGlmIChmb3JtYXQuaW5kZXhPZignU1MnKSAhPT0gLTEpIHtcbiAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCdTUycsIG1zLnNsaWNlKDAsIDIpKVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnUycsIG1zLmNoYXJBdCgwKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVTZWNvbmQodGltZTE6IG51bWJlciwgdGltZTI6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gTWF0aC5mbG9vcih0aW1lMSAvIDEwMDApID09PSBNYXRoLmZsb29yKHRpbWUyIC8gMTAwMClcbn1cbiJdfQ==