39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
|
import { isObject } from './utils.js';
|
||
|
import { paramsList } from './params-list.js';
|
||
|
|
||
|
function getChangedParams(swiperParams, oldParams) {
|
||
|
const keys = [];
|
||
|
if (!oldParams) return keys;
|
||
|
|
||
|
const addKey = key => {
|
||
|
if (keys.indexOf(key) < 0) keys.push(key);
|
||
|
};
|
||
|
|
||
|
const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));
|
||
|
watchParams.forEach(key => {
|
||
|
if (key in swiperParams && key in oldParams) {
|
||
|
if (isObject(swiperParams[key]) && isObject(oldParams[key])) {
|
||
|
const newKeys = Object.keys(swiperParams[key]);
|
||
|
const oldKeys = Object.keys(oldParams[key]);
|
||
|
|
||
|
if (newKeys.length !== oldKeys.length) {
|
||
|
addKey(key);
|
||
|
} else {
|
||
|
newKeys.forEach(newKey => {
|
||
|
if (swiperParams[key][newKey] !== oldParams[key][newKey]) {
|
||
|
addKey(key);
|
||
|
}
|
||
|
});
|
||
|
oldKeys.forEach(oldKey => {
|
||
|
if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);
|
||
|
});
|
||
|
}
|
||
|
} else if (swiperParams[key] !== oldParams[key]) {
|
||
|
addKey(key);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
return keys;
|
||
|
}
|
||
|
|
||
|
export { getChangedParams };
|