UNPKG

vevet

Version:

Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.

56 lines 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toPixels = toPixels; var initVevet_1 = require("../../global/initVevet"); var env_1 = require("../../internal/env"); var isNumber_1 = require("../../internal/isNumber"); /** * Transform value to pixels. Supported units: `px` | 'rem' | 'vw' | 'vh' | 'svh'. * * @group Utils * * @example * toPixels('100px'); // => 100 * toPixels('1vw'); // => 19.20 */ function toPixels(value) { if (!env_1.isBrowser) { return 0; } var app = (0, initVevet_1.initVevet)(); if (!window.vevet5_toPixelsCache) { window.vevet5_toPixelsCache = new Map(); app.onResize('any', function () { window.vevet5_toPixelsCache.clear(); }, { name: 'toPixels' }); } if (window.vevet5_toPixelsCache.has(value)) { return window.vevet5_toPixelsCache.get(value); } var finalValue = 0; var num = parseFloat("".concat(value)); if ((0, isNumber_1.isNumber)(value)) { finalValue = value; } else if (Number.isNaN(num)) { finalValue = 0; } else if (value.includes('rem')) { finalValue = num * app.rem; } else if (value.includes('vw')) { finalValue = num * app.vw; } else if (value.includes('vh')) { finalValue = num * app.vh; } else if (value.includes('svh')) { finalValue = num * app.svh; } else if (value.includes('px')) { finalValue = num; } window.vevet5_toPixelsCache.set(value, finalValue); return finalValue; } //# sourceMappingURL=toPixels.js.map