import { isObjEmpty } from "@web3r/flowerkit/obj"; import { presets } from "../../../plugins/maskedInput/config"; import type { IMaskedInput, TDefaultMasks, TMaskOptions } from "../config/types"; /** * Получает маску на основе данных * @param mask{unknown} * @returns {IMaskedInput["mask"]} */ const getCurrentMask = (mask: unknown): IMaskedInput["mask"] => { switch (true) { case typeof mask === "string" && mask.length > 0: { const defaultMask: TMaskOptions = presets[mask as TDefaultMasks]; if (defaultMask) { return defaultMask; } else { if (typeof window !== "undefined") { console.error(`[MaskedInput] Can't find mask "${mask}" in default presets`, mask); } return undefined; } } case typeof mask === "object" && !!mask && !isObjEmpty(mask): return mask; default: if (mask) { console.error(`[MaskedInput] Can't pass mask to input`, mask); } return undefined; } }; /** * Получает значение на основе данных * @param value{unknown} * @returns {IMaskedInput["value"]} */ const getCurrentValue = (value: unknown): IMaskedInput["value"] => { switch (true) { case typeof value === "string": return value; case typeof value === "number" && isFinite(value): return value.toString(); default: return ""; } }; export { getCurrentMask, getCurrentValue, };