infinity-forge
Version:
147 lines • 5.33 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getParams = getParams;
//@ts-nocheck
var utils_1 = require("./utils.js");
var params_list_1 = require("./params-list.js");
var defaults_1 = __importDefault(require("../core/defaults.js"));
var formatValue = function (val) {
if (parseFloat(val) === Number(val))
return Number(val);
if (val === 'true')
return true;
if (val === '')
return true;
if (val === 'false')
return false;
if (val === 'null')
return null;
if (val === 'undefined')
return undefined;
if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('"')) {
var v = void 0;
try {
v = JSON.parse(val);
}
catch (err) {
v = val;
}
return v;
}
return val;
};
var modulesParamsList = [
'a11y',
'autoplay',
'controller',
'cards-effect',
'coverflow-effect',
'creative-effect',
'cube-effect',
'fade-effect',
'flip-effect',
'free-mode',
'grid',
'hash-navigation',
'history',
'keyboard',
'mousewheel',
'navigation',
'pagination',
'parallax',
'scrollbar',
'thumbs',
'virtual',
'zoom',
];
function getParams(element, propName, propValue) {
var params = {};
var passedParams = {};
(0, utils_1.extend)(params, defaults_1.default);
var localParamsList = __spreadArray(__spreadArray([], params_list_1.paramsList, true), ['on'], false);
var allowedParams = localParamsList.map(function (key) { return key.replace(/_/, ''); });
// First check props
localParamsList.forEach(function (paramName) {
paramName = paramName.replace('_', '');
if (typeof element[paramName] !== 'undefined') {
passedParams[paramName] = element[paramName];
}
});
// Attributes
var attrsList = __spreadArray([], element.attributes, true);
if (typeof propName === 'string' && typeof propValue !== 'undefined') {
attrsList.push({ name: propName, value: (0, utils_1.isObject)(propValue) ? __assign({}, propValue) : propValue });
}
attrsList.forEach(function (attr) {
var moduleParam = modulesParamsList.filter(function (mParam) { return attr.name.indexOf("".concat(mParam, "-")) === 0; })[0];
if (moduleParam) {
var parentObjName = (0, utils_1.attrToProp)(moduleParam);
var subObjName = (0, utils_1.attrToProp)(attr.name.split("".concat(moduleParam, "-"))[1]);
if (typeof passedParams[parentObjName] === 'undefined')
passedParams[parentObjName] = {};
if (passedParams[parentObjName] === true) {
passedParams[parentObjName] = { enabled: true };
}
passedParams[parentObjName][subObjName] = formatValue(attr.value);
}
else {
var name_1 = (0, utils_1.attrToProp)(attr.name);
if (!allowedParams.includes(name_1))
return;
var value = formatValue(attr.value);
if (passedParams[name_1] && modulesParamsList.includes(attr.name) && !(0, utils_1.isObject)(value)) {
if (passedParams[name_1].constructor !== Object) {
passedParams[name_1] = {};
}
passedParams[name_1].enabled = !!value;
}
else {
passedParams[name_1] = value;
}
}
});
(0, utils_1.extend)(params, passedParams);
if (params.navigation) {
params.navigation = __assign({ prevEl: '.swiper-button-prev', nextEl: '.swiper-button-next' }, (params.navigation !== true ? params.navigation : {}));
}
else if (params.navigation === false) {
delete params.navigation;
}
if (params.scrollbar) {
params.scrollbar = __assign({ el: '.swiper-scrollbar' }, (params.scrollbar !== true ? params.scrollbar : {}));
}
else if (params.scrollbar === false) {
delete params.scrollbar;
}
if (params.pagination) {
params.pagination = __assign({ el: '.swiper-pagination' }, (params.pagination !== true ? params.pagination : {}));
}
else if (params.pagination === false) {
delete params.pagination;
}
return { params: params, passedParams: passedParams };
}
//# sourceMappingURL=get-element-params.js.map