97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* globals __VUE_SSR_CONTEXT__ */
 | 
						|
 | 
						|
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
 | 
						|
// This module is a runtime utility for cleaner component module output and will
 | 
						|
// be included in the final webpack user bundle.
 | 
						|
 | 
						|
export default function normalizeComponent(
 | 
						|
  scriptExports,
 | 
						|
  render,
 | 
						|
  staticRenderFns,
 | 
						|
  functionalTemplate,
 | 
						|
  injectStyles,
 | 
						|
  scopeId,
 | 
						|
  moduleIdentifier /* server only */,
 | 
						|
  shadowMode /* vue-cli only */
 | 
						|
) {
 | 
						|
  // Vue.extend constructor export interop
 | 
						|
  var options =
 | 
						|
    typeof scriptExports === 'function' ? scriptExports.options : scriptExports
 | 
						|
 | 
						|
  // render functions
 | 
						|
  if (render) {
 | 
						|
    options.render = render
 | 
						|
    options.staticRenderFns = staticRenderFns
 | 
						|
    options._compiled = true
 | 
						|
  }
 | 
						|
 | 
						|
  // functional template
 | 
						|
  if (functionalTemplate) {
 | 
						|
    options.functional = true
 | 
						|
  }
 | 
						|
 | 
						|
  // scopedId
 | 
						|
  if (scopeId) {
 | 
						|
    options._scopeId = 'data-v-' + scopeId
 | 
						|
  }
 | 
						|
 | 
						|
  var hook
 | 
						|
  if (moduleIdentifier) {
 | 
						|
    // server build
 | 
						|
    hook = function (context) {
 | 
						|
      // 2.3 injection
 | 
						|
      context =
 | 
						|
        context || // cached call
 | 
						|
        (this.$vnode && this.$vnode.ssrContext) || // stateful
 | 
						|
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
 | 
						|
      // 2.2 with runInNewContext: true
 | 
						|
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
 | 
						|
        context = __VUE_SSR_CONTEXT__
 | 
						|
      }
 | 
						|
      // inject component styles
 | 
						|
      if (injectStyles) {
 | 
						|
        injectStyles.call(this, context)
 | 
						|
      }
 | 
						|
      // register component module identifier for async chunk inferrence
 | 
						|
      if (context && context._registeredComponents) {
 | 
						|
        context._registeredComponents.add(moduleIdentifier)
 | 
						|
      }
 | 
						|
    }
 | 
						|
    // used by ssr in case component is cached and beforeCreate
 | 
						|
    // never gets called
 | 
						|
    options._ssrRegister = hook
 | 
						|
  } else if (injectStyles) {
 | 
						|
    hook = shadowMode
 | 
						|
      ? function () {
 | 
						|
          injectStyles.call(
 | 
						|
            this,
 | 
						|
            (options.functional ? this.parent : this).$root.$options.shadowRoot
 | 
						|
          )
 | 
						|
        }
 | 
						|
      : injectStyles
 | 
						|
  }
 | 
						|
 | 
						|
  if (hook) {
 | 
						|
    if (options.functional) {
 | 
						|
      // for template-only hot-reload because in that case the render fn doesn't
 | 
						|
      // go through the normalizer
 | 
						|
      options._injectStyles = hook
 | 
						|
      // register for functional component in vue file
 | 
						|
      var originalRender = options.render
 | 
						|
      options.render = function renderWithStyleInjection(h, context) {
 | 
						|
        hook.call(context)
 | 
						|
        return originalRender(h, context)
 | 
						|
      }
 | 
						|
    } else {
 | 
						|
      // inject component registration as beforeCreate hook
 | 
						|
      var existing = options.beforeCreate
 | 
						|
      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return {
 | 
						|
    exports: scriptExports,
 | 
						|
    options: options
 | 
						|
  }
 | 
						|
}
 |