Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

toCssValue.js 1.3 KiB

3 lat temu
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports['default'] = toCssValue;
  6. var join = function join(value, by) {
  7. var result = '';
  8. for (var i = 0; i < value.length; i++) {
  9. // Remove !important from the value, it will be readded later.
  10. if (value[i] === '!important') break;
  11. if (result) result += by;
  12. result += value[i];
  13. }
  14. return result;
  15. };
  16. /**
  17. * Converts array values to string.
  18. *
  19. * `margin: [['5px', '10px']]` > `margin: 5px 10px;`
  20. * `border: ['1px', '2px']` > `border: 1px, 2px;`
  21. * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`
  22. * `color: ['red', !important]` > `color: red !important;`
  23. */
  24. function toCssValue(value) {
  25. var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  26. if (!Array.isArray(value)) return value;
  27. var cssValue = '';
  28. // Support space separated values via `[['5px', '10px']]`.
  29. if (Array.isArray(value[0])) {
  30. for (var i = 0; i < value.length; i++) {
  31. if (value[i] === '!important') break;
  32. if (cssValue) cssValue += ', ';
  33. cssValue += join(value[i], ' ');
  34. }
  35. } else cssValue = join(value, ', ');
  36. // Add !important, because it was ignored.
  37. if (!ignoreImportant && value[value.length - 1] === '!important') {
  38. cssValue += ' !important';
  39. }
  40. return cssValue;
  41. }