maycur-business
Version:
maycur business react components of web
37 lines (28 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = getIndividualSettings;
var _globals = require("./globals");
/**
* Returns an object of settings to override global settings
* @param {Element} el - the tooltipped element
* @param {Object} instanceSettings
* @return {Object} - individual settings
*/
function getIndividualSettings(el, instanceSettings) {
var settings = _globals.DefaultsKeys.reduce(function (acc, key) {
var val = el.getAttribute("data-".concat(key.toLowerCase())) || instanceSettings[key]; // Convert strings to booleans
if (val === 'false') val = false;
if (val === 'true') val = true; // Convert number strings to true numbers
if (isFinite(val) && !isNaN(parseFloat(val))) {
val = parseFloat(val);
} // Convert array strings to actual arrays
if (typeof val === 'string' && val.trim().charAt(0) === '[') {
val = JSON.parse(val);
}
acc[key] = val;
return acc;
}, {});
return Object.assign({}, instanceSettings, settings);
}