@vnmfify/core
Version:
```shell npm i @vnmfify/core -S ```
74 lines (65 loc) • 1.64 kB
JavaScript
import _get from "lodash/get";
import _replace from "lodash/replace";
import _toString from "lodash/toString";
import _padStart from "lodash/padStart";
var REGEX_FORMAT = /\[([^\]]+)]|D{1,2}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|S{1,3}/g;
function padZero(num) {
var targetLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
return _padStart(_toString(num), targetLength, "0");
}
function rightCurrentTime(format, currentTime) {
var {
total,
days
} = currentTime;
var {
hours,
minutes,
seconds,
milliseconds
} = currentTime;
if (!format.includes("D")) {
hours += days * 24;
}
if (!format.includes("H") && !format.includes("h")) {
minutes += hours * 60;
}
if (!format.includes("m")) {
seconds += minutes * 60;
}
if (!format.includes("s")) {
milliseconds += seconds * 1000;
}
return {
total,
days,
hours,
minutes,
seconds,
milliseconds
};
}
export function parseFormat(format, currentTime) {
var {
days,
hours,
minutes,
seconds,
milliseconds
} = rightCurrentTime(format, currentTime);
var matches = {
D: days,
DD: padZero(days),
H: hours,
HH: padZero(hours),
m: minutes,
mm: padZero(minutes),
s: seconds,
ss: padZero(seconds),
S: padZero(milliseconds, 3).charAt(0),
SS: padZero(milliseconds, 3).slice(0, 2),
SSS: padZero(milliseconds, 3)
};
return _replace(format, REGEX_FORMAT, (match, $1) => $1 || _get(matches, match));
}
//# sourceMappingURL=countdown.shared.js.map