@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
16 lines • 1.86 kB
JavaScript
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));};