You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1008 B
						
					
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1008 B
						
					
					
				"use strict"; | 
						|
 | 
						|
exports.__esModule = true; | 
						|
function _broadcast(componentName, eventName, params) { | 
						|
  this.$children.forEach(function (child) { | 
						|
    var name = child.$options.componentName; | 
						|
 | 
						|
    if (name === componentName) { | 
						|
      child.$emit.apply(child, [eventName].concat(params)); | 
						|
    } else { | 
						|
      _broadcast.apply(child, [componentName, eventName].concat([params])); | 
						|
    } | 
						|
  }); | 
						|
} | 
						|
exports.default = { | 
						|
  methods: { | 
						|
    dispatch: function dispatch(componentName, eventName, params) { | 
						|
      var parent = this.$parent || this.$root; | 
						|
      var name = parent.$options.componentName; | 
						|
 | 
						|
      while (parent && (!name || name !== componentName)) { | 
						|
        parent = parent.$parent; | 
						|
 | 
						|
        if (parent) { | 
						|
          name = parent.$options.componentName; | 
						|
        } | 
						|
      } | 
						|
      if (parent) { | 
						|
        parent.$emit.apply(parent, [eventName].concat(params)); | 
						|
      } | 
						|
    }, | 
						|
    broadcast: function broadcast(componentName, eventName, params) { | 
						|
      _broadcast.call(this, componentName, eventName, params); | 
						|
    } | 
						|
  } | 
						|
}; |