UNPKG

@shopgate/pwa-common

Version:

Common library for the Shopgate Connect PWA.

16 lines 1.86 kB
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{logger}from'@shopgate/pwa-core/helpers';import{isNumber}from"../validation";/** * Calculates a rem value for a passed pixel value. The calculation is based on the root * font size that is defined inside the template's font styles. * @param {number} pixels The source value * @returns {string} The result value */export var rem=function rem(pixels){var result='';if(isNumber(pixels)&&pixels>=0){result="".concat(1/16*pixels,"rem");}else{result='1rem';logger.error("rem(): Invalid value (".concat(pixels,")"));}return result;};/** * Returns an object ready to use with glamor with one pixel size property. * For example physicalPixelSize('height', 1) would result in: * - height: 1px for screen density 1, * - height: 0.5px for screen density 2, * * @param {string} property Css property name. * @param {number} [size=1] Requested physical pixel size. * @returns {Object} */export var physicalPixelSize=function physicalPixelSize(property){var size=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;// Android doesn't accept decimals. if(navigator&&navigator.userAgent&&navigator.userAgent.includes('Android')){return _defineProperty({},property,size);}var _double=Math.round(size/2*100)/100;var triple=Math.round(size/3*100)/100;return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},property,size),'@media (min-device-pixel-ratio: 2)',_defineProperty({},property,_double)),'@media (-webkit-min-device-pixel-ratio: 2)',_defineProperty({},property,_double)),'@media (min-device-pixel-ratio: 3)',_defineProperty({},property,triple)),'@media (-webkit-min-device-pixel-ratio: 3)',_defineProperty({},property,triple));};