UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

74 lines (65 loc) 1.64 kB
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