mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { paramsList } from './params-list.js';
 | 
						|
import { isObject } from './utils.js';
 | 
						|
 | 
						|
function getChangedParams(swiperParams, oldParams, children, oldChildren) {
 | 
						|
  const keys = [];
 | 
						|
  if (!oldParams) return keys;
 | 
						|
 | 
						|
  const addKey = key => {
 | 
						|
    if (keys.indexOf(key) < 0) keys.push(key);
 | 
						|
  };
 | 
						|
 | 
						|
  const oldChildrenKeys = oldChildren.map(child => child.key);
 | 
						|
  const childrenKeys = children.map(child => child.key);
 | 
						|
  if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');
 | 
						|
  if (oldChildren.length !== children.length) addKey('children');
 | 
						|
  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 }; |