@techmely/utils
Version:
Collection of helpful JavaScript / TypeScript utils
72 lines (66 loc) • 2.15 kB
JavaScript
/*!
* @techmely/utils
* Copyright(c) 2021-2024 Techmely <techmely.creation@gmail.com>
* MIT Licensed
*/
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/colors.ts
var colors_exports = {};
__export(colors_exports, {
alphaHex: () => alphaHex,
isHex: () => isHex,
percentToHex: () => percentToHex
});
module.exports = __toCommonJS(colors_exports);
// src/regex.ts
var emailRegex = new RegExp(
/^(([^\s"(),.:;<>@[\\\]]+(\.[^\s"(),.:;<>@[\\\]]+)*)|(".+"))@((\[(?:\d{1,3}\.){3}\d{1,3}])|(([\dA-Za-z-]+\.)+[A-Za-z]{2,}))$/
);
var vietnamPhoneRegex = new RegExp(/^0(\d{9})$/);
var hexColor = /^#(([\da-f]{2}){3,4})$/;
// src/colors.ts
function isHex(hex) {
return hexColor.test(hex);
}
function percentToHex(percent) {
if (percent < 0 || percent > 100) {
throw new Error("Value must in range [0, 100]");
}
const intValue = Math.round(percent / 100 * 255);
const hexValue = intValue.toString(16);
return hexValue.padStart(2, "0").toUpperCase();
}
var HEX_LENGTH = 6;
var HEX_OPACITY_LENGTH = 8;
function alphaHex(hex, alpha) {
if (!hex) {
throw new Error("Hex value is required");
}
if (hex.length === HEX_OPACITY_LENGTH) {
return `${hex.slice(0, HEX_LENGTH)}${percentToHex(alpha)}`;
}
return `${hex}${percentToHex(alpha)}`;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
alphaHex,
isHex,
percentToHex
});