UNPKG

icetool

Version:
100 lines (99 loc) 6.84 kB
"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; };