moduleExtendParams.js 1.01 KB
Newer Older
xhw committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
import {
	extend
} from '../shared/utils.js';
export default function moduleExtendParams(params, allModulesParams) {
	return function extendParams(obj = {}) {
		const moduleParamName = Object.keys(obj)[0];
		const moduleParams = obj[moduleParamName];

		if (typeof moduleParams !== 'object' || moduleParams === null) {
			extend(allModulesParams, obj);
			return;
		}

		if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] ===
			true) {
			params[moduleParamName] = {
				auto: true
			};
		}

		if (!(moduleParamName in params && 'enabled' in moduleParams)) {
			extend(allModulesParams, obj);
			return;
		}

		if (params[moduleParamName] === true) {
			params[moduleParamName] = {
				enabled: true
			};
		}

		if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
			params[moduleParamName].enabled = true;
		}

		if (!params[moduleParamName]) params[moduleParamName] = {
			enabled: false
		};
		extend(allModulesParams, obj);
	};
}