icetool
Version:
Your fonctions friends
100 lines (99 loc) • 6.84 kB
JavaScript
"use strict";
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _NumberTimeFormat_instances, _NumberTimeFormat_language, _NumberTimeFormat_data, _NumberTimeFormat_values, _NumberTimeFormat_stringifyTime, _NumberTimeFormat_parseTime;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NumberTimeFormat = void 0;
const types_1 = require("../../interface/types");
const Error_1 = require("../Error");
const Translate_1 = require("../Translate");
const translateTimeUs = new Translate_1.Translate("us-US");
const keyUs = translateTimeUs.get("time.times");
class NumberTimeFormat {
constructor(lang, data) {
_NumberTimeFormat_instances.add(this);
_NumberTimeFormat_language.set(this, void 0);
_NumberTimeFormat_data.set(this, {});
_NumberTimeFormat_values.set(this, {
"Y": { time: 31556926000, format: keyUs[0] },
"MM": { time: 2629743000, format: keyUs[1] },
"W": { time: 604800000, format: keyUs[2] },
"D": { time: 86400000, format: keyUs[3] },
"H": { time: 3600000, format: keyUs[4] },
"M": { time: 60000, format: keyUs[5] },
"S": { time: 1000, format: keyUs[6] },
"N5": { time: 1, format: keyUs[7] }
});
__classPrivateFieldSet(this, _NumberTimeFormat_language, lang, "f");
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").format = data?.format ?? "Y-MM-W-D-H-M-S-N5";
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").compactDisplay = data?.compactDisplay ?? "short";
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").suppressTag = data?.suppressTag ?? false;
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").valueNull = data?.valueNull ?? false;
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").prefix = data?.prefix ?? "";
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").suffix = data?.suffix ?? "";
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").separator = data?.separator ?? "";
if (!types_1.language.includes(__classPrivateFieldGet(this, _NumberTimeFormat_language, "f")))
throw new Error_1.Errors("us-US", "languageNotValid");
__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").format = __classPrivateFieldGet(this, _NumberTimeFormat_data, "f").format.replace(/MS/g, "N5");
const translateTime = new Translate_1.Translate(__classPrivateFieldGet(this, _NumberTimeFormat_language, "f"));
const key = translateTime.get("time.times");
__classPrivateFieldSet(this, _NumberTimeFormat_values, {
"Y": { time: 31556926000, format: key[0] },
"MM": { time: 2629743000, format: key[1] },
"W": { time: 604800000, format: key[2] },
"D": { time: 86400000, format: key[3] },
"H": { time: 3600000, format: key[4] },
"M": { time: 60000, format: key[5] },
"S": { time: 1000, format: key[6] },
"N5": { time: 1, format: key[7] }
}, "f");
}
format(value) {
if (typeof (value) === "string")
return __classPrivateFieldGet(this, _NumberTimeFormat_instances, "m", _NumberTimeFormat_parseTime).call(this, value);
else if (typeof (value) === "number")
return __classPrivateFieldGet(this, _NumberTimeFormat_instances, "m", _NumberTimeFormat_stringifyTime).call(this, value);
else
throw new Error_1.Errors("us-US", "notType");
}
}
exports.NumberTimeFormat = NumberTimeFormat;
_NumberTimeFormat_language = new WeakMap(), _NumberTimeFormat_data = new WeakMap(), _NumberTimeFormat_values = new WeakMap(), _NumberTimeFormat_instances = new WeakSet(), _NumberTimeFormat_stringifyTime = function _NumberTimeFormat_stringifyTime(value) {
let format = __classPrivateFieldGet(this, _NumberTimeFormat_data, "f").format;
let time = value;
for (const [update, v] of Object.entries(__classPrivateFieldGet(this, _NumberTimeFormat_values, "f"))) {
const reg = new RegExp(update, "g");
if (format.includes(update)) {
const x = Math.floor(time / v.time);
time -= x * v.time;
if ((!__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").valueNull && x > 0) || __classPrivateFieldGet(this, _NumberTimeFormat_data, "f").valueNull) {
format = format.replace("sseeppaarraattoorr", `${__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").separator}`);
format = format.replace(reg, `${__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").prefix}${__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").suppressTag ? `${x}` : `${x}${__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").compactDisplay === "short" ? `${v.format[2]}` : ` ${v.format[x > 1 ? 1 : 0]}`}`}${__classPrivateFieldGet(this, _NumberTimeFormat_data, "f").suffix}sseeppaarraattoorr`);
}
else
format = format.replace(reg, "");
}
}
format = format.replace("sseeppaarraattoorr", ``);
return format;
}, _NumberTimeFormat_parseTime = function _NumberTimeFormat_parseTime(value) {
let time = 0;
for (const [_, v] of Object.entries(__classPrivateFieldGet(this, _NumberTimeFormat_values, "f"))) {
const reg = new RegExp(`([0-9]{1,})( ${v.format[1]}{0,1}|${v.format[2]})`, "g");
const match = value.match(reg);
if (match) {
const x = Number(match[0]?.replace(reg, "$1"));
time += x * v.time;
}
}
return __classPrivateFieldGet(this, _NumberTimeFormat_data, "f").compactDisplay === "short" ? Number(time / 1000) : time;
};