| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | /* 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  }}
 |