| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | import listToStyles from './listToStyles'export default function addStylesServer (parentId, list, isProduction, context) {  if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {    context = __VUE_SSR_CONTEXT__  }  if (context) {    if (!context.hasOwnProperty('styles')) {      Object.defineProperty(context, 'styles', {        enumerable: true,        get: function() {          return renderStyles(context._styles)        }      })      // expose renderStyles for vue-server-renderer (vuejs/#6353)      context._renderStyles = renderStyles    }    var styles = context._styles || (context._styles = {})    list = listToStyles(parentId, list)    if (isProduction) {      addStyleProd(styles, list)    } else {      addStyleDev(styles, list)    }  }}// In production, render as few style tags as possible.// (mostly because IE9 has a limit on number of style tags)function addStyleProd (styles, list) {  for (var i = 0; i < list.length; i++) {    var parts = list[i].parts    for (var j = 0; j < parts.length; j++) {      var part = parts[j]      // group style tags by media types.      var id = part.media || 'default'      var style = styles[id]      if (style) {        if (style.ids.indexOf(part.id) < 0) {          style.ids.push(part.id)          style.css += '\n' + part.css        }      } else {        styles[id] = {          ids: [part.id],          css: part.css,          media: part.media        }      }    }  }}// In dev we use individual style tag for each module for hot-reload// and source maps.function addStyleDev (styles, list) {  for (var i = 0; i < list.length; i++) {    var parts = list[i].parts    for (var j = 0; j < parts.length; j++) {      var part = parts[j]      styles[part.id] = {        ids: [part.id],        css: part.css,        media: part.media      }    }  }}function renderStyles (styles) {  var css = ''  for (var key in styles) {    var style = styles[key]    css += '<style data-vue-ssr-id="' + style.ids.join(' ') + '"' +        (style.media ? ( ' media="' + style.media + '"' ) : '') + '>' +        style.css + '</style>'  }  return css}
 |