UNPKG

@wezom/toolkit-css-in-js

Version:
97 lines (92 loc) 2.58 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var toolkitMath = require('@wezom/toolkit-math'); /** * Low level converter * @param size * @param pixels * @param unit * @param joiner */ function jssConvertPixels(size, pixels, unit, joiner) { return pixels .map(function (px) { if (typeof px === 'string') { return px; } else if (px === 0) { return '0'; } return toolkitMath.mathRound(px / size, -5) + unit; }) .join(joiner); } /** * High level converter from px to em * @see jssConvertPixels * @example * jssEm(16, 16); // => '1em' * jssEm(16, 16, 'auto'); // => '1em auto' * jssEm(16, -8, 0); // => '-0.5em 0' * jssEm(16, 24, 32, 48); // => '1.5em 2em 3em' * jssEm(20, 30, 10, 45); // => '1.5em 0.5em 2.25em' */ function jssEm(emSize) { var pixels = []; for (var _i = 1; _i < arguments.length; _i++) { pixels[_i - 1] = arguments[_i]; } return jssConvertPixels(emSize, pixels, 'em', ' '); } var _remSize = 16; /** * High level converter from px to rem with pre-defined rem size * By default rem size used as 16px; * @see jssConvertPixels() * @see jssSetPreDefinedRemSize() * @example * jssRem(16); // => '1rem' * jssRem(16, 'auto'); // => '1rem auto' * jssRem(-8, 0); // => '-0.5rem 0' * jssRem(24, 32, 48); // => '1.5rem 2rem 3rem' * jssRem(30, 10, 45); // => '1.5rem 0.5rem 2.25rem' */ function jssRem() { var pixels = []; for (var _i = 0; _i < arguments.length; _i++) { pixels[_i] = arguments[_i]; } return jssConvertPixels(_remSize, pixels, 'rem', ' '); } /** * High level converter from px to rem, with custom rem size * @see jssConvertPixels() * @example * jssRemWithSize(16, 16); // => '1rem' * jssRemWithSize(16, 16, 'auto'); // => '1rem auto' * jssRemWithSize(16, -8, 0); // => '-0.5rem 0' * jssRemWithSize(16, 24, 32, 48); // => '1.5rem 2rem 3rem' * jssRemWithSize(20, 30, 10, 45); // => '1.5rem 0.5rem 2.25rem' */ function jssRemWithSize(remSize) { var pixels = []; for (var _i = 1; _i < arguments.length; _i++) { pixels[_i - 1] = arguments[_i]; } return jssConvertPixels(remSize, pixels, 'rem', ' '); } /** * Change pre-defined rem size. * @see jssRemDefined() * @example * jssRemDefined(20); // => '1.25rem' * jssSetPreDefinedRemSize(20); * jssRemDefined(20); // => '1rem' */ function jssSetPreDefinedRemSize(size) { _remSize = size; } exports.jssConvertPixels = jssConvertPixels; exports.jssEm = jssEm; exports.jssRem = jssRem; exports.jssRemWithSize = jssRemWithSize; exports.jssSetPreDefinedRemSize = jssSetPreDefinedRemSize;