/node_modules/css-loader/lib/css-base.js

https://bitbucket.org/smartenergyteam/synfony-smartenergy · JavaScript · 50 lines · 37 code · 2 blank · 11 comment · 13 complexity · 5fcbea53b67c71c51f5a533ed5d23303 MD5 · raw file

  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. // css base code, injected by the css-loader
  6. module.exports = function() {
  7. var list = [];
  8. // return the list of modules as css string
  9. list.toString = function toString() {
  10. var result = [];
  11. for(var i = 0; i < this.length; i++) {
  12. var item = this[i];
  13. if(item[2]) {
  14. result.push("@media " + item[2] + "{" + item[1] + "}");
  15. } else {
  16. result.push(item[1]);
  17. }
  18. }
  19. return result.join("");
  20. };
  21. // import a list of modules into the list
  22. list.i = function(modules, mediaQuery) {
  23. if(typeof modules === "string")
  24. modules = [[null, modules, ""]];
  25. var alreadyImportedModules = {};
  26. for(var i = 0; i < this.length; i++) {
  27. var id = this[i][0];
  28. if(typeof id === "number")
  29. alreadyImportedModules[id] = true;
  30. }
  31. for(i = 0; i < modules.length; i++) {
  32. var item = modules[i];
  33. // skip already imported module
  34. // this implementation is not 100% perfect for weird media query combinations
  35. // when a module is imported multiple times with different media queries.
  36. // I hope this will never occur (Hey this way we have smaller bundles)
  37. if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
  38. if(mediaQuery && !item[2]) {
  39. item[2] = mediaQuery;
  40. } else if(mediaQuery) {
  41. item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
  42. }
  43. list.push(item);
  44. }
  45. }
  46. };
  47. return list;
  48. };