UNPKG

mopinion-react-native-sdk

Version:

Collect in-app feedback with Mopinion for React Native. Built fully in React Native for optimal integration with your React Native app.

1 lines 7.13 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.createId=createId;exports.createRandomId=createRandomId;exports.deepMerge=deepMerge;exports.getContrastColor=getContrastColor;exports.getCookie=void 0;exports.getElementsHandleExtra=getElementsHandleExtra;exports.getImageUri=getImageUri;exports.getVersion=getVersion;exports.isNestedStateProp=isNestedStateProp;exports.objectKeys=objectKeys;exports.setCookie=void 0;exports.shuffleArray=shuffleArray;exports.tryParse=tryParse;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _asyncStorage=_interopRequireDefault(require("@react-native-async-storage/async-storage"));var _logger=require("../api/logger");var packageJson={};try{packageJson=require('../../package.json');}catch(e){}function isNestedStateProp(){var str=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'';return['dom','selector'].indexOf(str)>-1||!isNaN(Number(str));}function createRandomId(){var len=arguments.length>0&&arguments[0]!==undefined?arguments[0]:35;var bits=arguments.length>1&&arguments[1]!==undefined?arguments[1]:36;var outStr='',newStr;while(outStr.length<len){newStr=Math.random().toString(bits).slice(2);outStr+=newStr.slice(0,Math.min(newStr.length,len-outStr.length));}return outStr;}function createId(len){var time=new Date().getTime();return`${time}${createRandomId(len)}`;}function shuffleArray(array,keepLastIndex){return array.map(function(a,index){return{sort:keepLastIndex&&index===array.length-1?1:Math.random(),value:a};}).sort(function(a,b){return a.sort-b.sort;}).map(function(a){return a.value;});}function getElementsHandleExtra(_ref){var _ref$elements=_ref.elements,elements=_ref$elements===void 0?{}:_ref$elements,_ref$elements_extra=_ref.elements_extra,elements_extra=_ref$elements_extra===void 0?{}:_ref$elements_extra;var elementKeys=objectKeys(elements);var extraKeys=objectKeys(elements_extra);if(elementKeys.length>0){if(extraKeys.length>0){return[].concat((0,_toConsumableArray2.default)(elementKeys),(0,_toConsumableArray2.default)(extraKeys)).reduce(function(all,currentKey,index){var _elements_extra$curre;if(elementKeys.length>index){all[index]=elements[currentKey];}else if(!((_elements_extra$curre=elements_extra[currentKey])!=null&&_elements_extra$curre.linkedLabel)){all[index]=elements_extra[currentKey];}return all;},{});}return elements;}return{};}function objectKeys(obj){try{if(typeof obj==='object'){return Object.keys(obj);}if(typeof obj==='string'){return obj.split('').map(function(_,i){return String(i);});}return[];}catch(e){return[];}}function getVersion(){var _packageJson$version,_packageJson;return(_packageJson$version=(_packageJson=packageJson)==null?void 0:_packageJson.version)!=null?_packageJson$version:null;}function getImageUri(uri){if(uri.startsWith('data:image')){return uri;}return`https://cacheorcheck.mopinion.com/survey/public/image?file=${uri}`;}var setCookie=exports.setCookie=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(cookieKey,value,days){var expiryDate='';if(days){var date=new Date();date.setTime(date.getTime()+days*24*60*60*1000);expiryDate=date;}var cookieobject={value:value,expires:expiryDate};try{var jsonValue=JSON.stringify(cookieobject);yield _asyncStorage.default.setItem(cookieKey,jsonValue);}catch(e){_logger.logger.log('Form Metrics: Error setting cookie: '+e);}});return function setCookie(_x,_x2,_x3){return _ref2.apply(this,arguments);};}();var getCookie=exports.getCookie=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(cookieKey){return _asyncStorage.default.getItem(cookieKey).then(function(value){try{if(value!=null){var cookieobject=JSON.parse(value);var nowDate=new Date();var expiryDate=new Date(cookieobject.expires);if(cookieobject&&expiryDate>nowDate){return Promise.resolve(cookieobject.value);}else{}}return Promise.resolve(null);}catch(e){return Promise.reject(e);}});});return function getCookie(_x4){return _ref3.apply(this,arguments);};}();function tryParse(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'';var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};try{return JSON.parse(string);}catch(e){return defaultValue;}}function deepMerge(){var result={};for(var _len=arguments.length,objects=new Array(_len),_key=0;_key<_len;_key++){objects[_key]=arguments[_key];}for(var obj of objects){if(!obj||typeof obj!=='object'||Array.isArray(obj)){continue;}for(var key in obj){if(obj.hasOwnProperty(key)){if(typeof obj[key]==='object'&&!Array.isArray(obj[key])&&obj[key]!==null&&result[key]&&typeof result[key]==='object'&&!Array.isArray(result[key])){result[key]=deepMerge(result[key],obj[key]);}else{result[key]=obj[key];}}}}return result;}function isValidHex(colorString){if(!colorString||typeof colorString!=='string'){return false;}var cleanColorString=colorString.trim().toLowerCase().replace('#','');return /^[0-9a-f]{6}$/.test(cleanColorString);}function hexToRgb(hex){var cleanHex=hex.replace('#','');var r=parseInt(cleanHex.substring(0,2),16);var g=parseInt(cleanHex.substring(2,4),16);var b=parseInt(cleanHex.substring(4,6),16);return{r:r,g:g,b:b};}function getRelativeLuminance(r,g,b){var _map=[r,g,b].map(function(val){val=val/255;return val<=0.03928?val/12.92:Math.pow((val+0.055)/1.055,2.4);}),_map2=(0,_slicedToArray2.default)(_map,3),rs=_map2[0],gs=_map2[1],bs=_map2[2];return 0.2126*rs+0.7152*gs+0.0722*bs;}function getContrastRatio(lum1,lum2){var lighter=Math.max(lum1,lum2);var darker=Math.min(lum1,lum2);return(lighter+0.05)/(darker+0.05);}function getContrastColor(_ref4){var backgroundColor=_ref4.backgroundColor,_ref4$darkColor=_ref4.darkColor,darkColor=_ref4$darkColor===void 0?'#212121':_ref4$darkColor,_ref4$lightColor=_ref4.lightColor,lightColor=_ref4$lightColor===void 0?'#ffffff':_ref4$lightColor,_ref4$preferredColor=_ref4.preferredColor,preferredColor=_ref4$preferredColor===void 0?'light':_ref4$preferredColor;try{if(!isValidHex(backgroundColor)||!isValidHex(darkColor)||!isValidHex(lightColor)){return preferredColor==='dark'?darkColor:lightColor;}var bgRgb=hexToRgb(backgroundColor);var bgLuminance=getRelativeLuminance(bgRgb.r,bgRgb.g,bgRgb.b);var lightRgb=hexToRgb(lightColor);var lightLuminance=getRelativeLuminance(lightRgb.r,lightRgb.g,lightRgb.b);var darkRgb=hexToRgb(darkColor);var darkLuminance=getRelativeLuminance(darkRgb.r,darkRgb.g,darkRgb.b);var lightContrast=getContrastRatio(bgLuminance,lightLuminance);var darkContrast=getContrastRatio(bgLuminance,darkLuminance);var WCAG_AA_MINIMUM=4.5;if(preferredColor==='dark'){if(darkContrast>=WCAG_AA_MINIMUM){return darkColor;}return darkContrast*1.1>=lightContrast?darkColor:lightColor;}else{if(lightContrast>=WCAG_AA_MINIMUM){return lightColor;}return lightContrast*1.1>=darkContrast?lightColor:darkColor;}}catch(e){return preferredColor==='dark'?darkColor:lightColor;}}