infinity-forge
Version:
50 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getChangedParams = getChangedParams;
var params_list_1 = require("./params-list.js");
var utils_1 = require("./utils.js");
function getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {
var keys = [];
if (!oldParams)
return keys;
var addKey = function (key) {
if (keys.indexOf(key) < 0)
keys.push(key);
};
if (children && oldChildren) {
var oldChildrenKeys = oldChildren.map(getKey);
var childrenKeys = children.map(getKey);
if (oldChildrenKeys.join('') !== childrenKeys.join(''))
addKey('children');
if (oldChildren.length !== children.length)
addKey('children');
}
var watchParams = params_list_1.paramsList.filter(function (key) { return key[0] === '_'; }).map(function (key) { return key.replace(/_/, ''); });
watchParams.forEach(function (key) {
if (key in swiperParams && key in oldParams) {
if ((0, utils_1.isObject)(swiperParams[key]) && (0, utils_1.isObject)(oldParams[key])) {
var newKeys = Object.keys(swiperParams[key]);
var oldKeys = Object.keys(oldParams[key]);
if (newKeys.length !== oldKeys.length) {
addKey(key);
}
else {
newKeys.forEach(function (newKey) {
if (swiperParams[key][newKey] !== oldParams[key][newKey]) {
addKey(key);
}
});
oldKeys.forEach(function (oldKey) {
if (swiperParams[key][oldKey] !== oldParams[key][oldKey])
addKey(key);
});
}
}
else if (swiperParams[key] !== oldParams[key]) {
addKey(key);
}
}
});
return keys;
}
//# sourceMappingURL=get-changed-params.js.map