text: /*
   * Copyright 2018 Asknow Solutions B.V.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  
  'use strict';
  
  const path = require('path');
  const config = require('../config/index');
  const ExtractTextPlugin = require('extract-text-webpack-plugin');
  
  exports.assetsPath = function (_path) {
    const assetsSubDirectory = process.env.NODE_ENV === 'production'
      ? config.build.assetsSubDirectory
      : config.dev.assetsSubDirectory;
    return path.posix.join(assetsSubDirectory, _path);
  };
  
  exports.cssLoaders = function (options) {
    options = options || {};
  
    // generate loader string to be used with extract text plugin
    function generateLoaders(loaders) {
      const sourceLoader = loaders.map(function (loader) {
        let extraParamChar;
        if (/\?/.test(loader)) {
          loader = loader.replace(/\?/, '-loader?');
          extraParamChar = '&';
        } else {
          loader = loader + '-loader';
          extraParamChar = '?';
        }
        return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '');
      })
        .join('!');
  
      return ['style-loader?singleton=true', sourceLoader].join('!');
    }
  
    // If its a release version, minimize the css
    const cssLoader = config.build.minify ? 'css?minimize=true' : 'css';
  
    // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
    return {
      css: generateLoaders([cssLoader]),
      // postcss: generateLoaders({plugins:['css','postcss-modules'],options:{scopeBehaviour: 'global'}}),
      postcss: generateLoaders([cssLoader]),
      less: generateLoaders([cssLoader, 'less']),
      sass: generateLoaders([cssLoader, 'sass?indentedSyntax']),
      scss: generateLoaders([cssLoader, 'sass']),
      stylus: generateLoaders([cssLoader, 'stylus']),
      styl: generateLoaders([cssLoader, 'stylus'])
    };
  };
  
  // Generate loaders for standalone style files (outside of .vue)
  exports.styleLoaders = function (options) {
    const output = [];
    const loaders = exports.cssLoaders(options);
    for (const extension in loaders) {
      const loader = loaders[extension];
      output.push({
        test: new RegExp('\\.' + extension + '$'),
        loader: loader
      });
    }
    return output;
  };
  