@razorpay/blade
Version:
The Design System that powers Razorpay
10 lines (7 loc) • 5.38 kB
JavaScript
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
import { getPresets } from './presets.js';
var _excluded=["width","height","className","style","onLoad","onError","preset","assetsPath","gradientMapSrc","gradientMap2Src","gradientMapCanvas","imageSrc"];var DEFAULT_CDN_PATH='https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';var getDefaultAssets=function getDefaultAssets(assetsPath){return {videoSrc:`${assetsPath}/spark-base-video.mp4`,imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,centerGradientMapSrc:`${assetsPath}/colorama-center-gradient-map.jpg`};};function extractConfig(props){props.width;props.height;props.className;props.style;props.onLoad;props.onError;props.preset;props.assetsPath;props.gradientMapSrc;props.gradientMap2Src;props.gradientMapCanvas;props.imageSrc;var config=_objectWithoutProperties(props,_excluded);return Object.fromEntries(Object.entries(config).filter(function(_ref){var _ref2=_slicedToArray(_ref,2),v=_ref2[1];return v!==undefined;}));}var ASSET_KEYS=new Set(['videoSrc','imageSrc','gradientMapSrc','gradientMap2Src','centerGradientMapSrc']);function getPresetDefinition(preset,assetsPath){var presets=getPresets(assetsPath);if(preset&&preset in presets)return Object.assign({},presets[preset]);return {};}function getPresetConfig(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref3){var _ref4=_slicedToArray(_ref3,1),k=_ref4[0];return !ASSET_KEYS.has(k);}));}function getPresetAssets(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref5){var _ref6=_slicedToArray(_ref5,1),k=_ref6[0];return ASSET_KEYS.has(k);}));}function resolveConfig(props,assetsPath){return Object.assign({},getPresetConfig(props.preset,assetsPath),extractConfig(props));}function loadImage(src){return new Promise(function(resolve,reject){var img=new Image();img.crossOrigin='anonymous';img.onload=function(){return resolve(img);};img.onerror=function(){return reject(new Error(`Failed to load image: ${src}`));};img.src=src;});}function loadVideo(src){return new Promise(function(resolve,reject){var video=document.createElement('video');video.src=src;video.crossOrigin='anonymous';video.loop=true;video.muted=true;video.playsInline=true;video.preload='auto';video.oncanplaythrough=function(){return resolve(video);};video.onerror=function(){return reject(new Error(`Failed to load video: ${src}`));};video.load();});}function isSafari(){var ua=navigator.userAgent.toLowerCase();return ua.includes('safari')&&!ua.includes('chrome')&&!ua.includes('android');}function bestGuessBrowserZoom(){var _visualViewport$scale,_visualViewport,_visualViewport$width,_visualViewport2;var viewportScale=(_visualViewport$scale=(_visualViewport=visualViewport)==null?void 0:_visualViewport.scale)!=null?_visualViewport$scale:1;var viewportWidth=(_visualViewport$width=(_visualViewport2=visualViewport)==null?void 0:_visualViewport2.width)!=null?_visualViewport$width:window.innerWidth;var scrollbarWidth=window.innerWidth-document.documentElement.clientWidth;var innerWidth=viewportScale*viewportWidth+scrollbarWidth;var ratio=outerWidth/innerWidth;var zoomPercentageRounded=Math.round(100*ratio);if(zoomPercentageRounded%5===0){return zoomPercentageRounded/100;}if(zoomPercentageRounded===33)return 1/3;if(zoomPercentageRounded===67)return 2/3;if(zoomPercentageRounded===133)return 4/3;return ratio;}function preloadRazorSenseAssets(){return _preloadRazorSenseAssets.apply(this,arguments);}function _preloadRazorSenseAssets(){_preloadRazorSenseAssets=_asyncToGenerator(function*(){var _presetDef$videoSrc,_presetDef$gradientMa,_presetDef$gradientMa2,_presetDef$centerGrad;var preset=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'default';var assetsPath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_CDN_PATH;var presets=getPresets(assetsPath);var presetDef=presets[preset]||{};var defaultAssets=getDefaultAssets(assetsPath);var videoSrc=(_presetDef$videoSrc=presetDef.videoSrc)!=null?_presetDef$videoSrc:defaultAssets.videoSrc;var imageSrc=presetDef.imageSrc;var gradientMapSrc=(_presetDef$gradientMa=presetDef.gradientMapSrc)!=null?_presetDef$gradientMa:defaultAssets.gradientMapSrc;var gradientMap2Src=(_presetDef$gradientMa2=presetDef.gradientMap2Src)!=null?_presetDef$gradientMa2:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetDef$centerGrad=presetDef.centerGradientMapSrc)!=null?_presetDef$centerGrad:defaultAssets.centerGradientMapSrc;var loadPromises=[];if(imageSrc){loadPromises.push(loadImage(imageSrc));}else if(videoSrc){loadPromises.push(loadVideo(videoSrc));}loadPromises.push(loadImage(gradientMapSrc),loadImage(gradientMap2Src),loadImage(centerGradientMapSrc));yield Promise.all(loadPromises);});return _preloadRazorSenseAssets.apply(this,arguments);}
export { DEFAULT_CDN_PATH, bestGuessBrowserZoom, getDefaultAssets, getPresetAssets, isSafari, loadImage, loadVideo, preloadRazorSenseAssets, resolveConfig };
//# sourceMappingURL=utils.js.map