Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

autoprefix.js 3.0 KiB

há 3 anos
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.autoprefix = undefined;
  6. var _forOwn2 = require('lodash/forOwn');
  7. var _forOwn3 = _interopRequireDefault(_forOwn2);
  8. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  9. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  10. var transforms = {
  11. borderRadius: function borderRadius(value) {
  12. return {
  13. msBorderRadius: value,
  14. MozBorderRadius: value,
  15. OBorderRadius: value,
  16. WebkitBorderRadius: value,
  17. borderRadius: value
  18. };
  19. },
  20. boxShadow: function boxShadow(value) {
  21. return {
  22. msBoxShadow: value,
  23. MozBoxShadow: value,
  24. OBoxShadow: value,
  25. WebkitBoxShadow: value,
  26. boxShadow: value
  27. };
  28. },
  29. userSelect: function userSelect(value) {
  30. return {
  31. WebkitTouchCallout: value,
  32. KhtmlUserSelect: value,
  33. MozUserSelect: value,
  34. msUserSelect: value,
  35. WebkitUserSelect: value,
  36. userSelect: value
  37. };
  38. },
  39. flex: function flex(value) {
  40. return {
  41. WebkitBoxFlex: value,
  42. MozBoxFlex: value,
  43. WebkitFlex: value,
  44. msFlex: value,
  45. flex: value
  46. };
  47. },
  48. flexBasis: function flexBasis(value) {
  49. return {
  50. WebkitFlexBasis: value,
  51. flexBasis: value
  52. };
  53. },
  54. justifyContent: function justifyContent(value) {
  55. return {
  56. WebkitJustifyContent: value,
  57. justifyContent: value
  58. };
  59. },
  60. transition: function transition(value) {
  61. return {
  62. msTransition: value,
  63. MozTransition: value,
  64. OTransition: value,
  65. WebkitTransition: value,
  66. transition: value
  67. };
  68. },
  69. transform: function transform(value) {
  70. return {
  71. msTransform: value,
  72. MozTransform: value,
  73. OTransform: value,
  74. WebkitTransform: value,
  75. transform: value
  76. };
  77. },
  78. absolute: function absolute(value) {
  79. var direction = value && value.split(' ');
  80. return {
  81. position: 'absolute',
  82. top: direction && direction[0],
  83. right: direction && direction[1],
  84. bottom: direction && direction[2],
  85. left: direction && direction[3]
  86. };
  87. },
  88. extend: function extend(name, otherElementStyles) {
  89. var otherStyle = otherElementStyles[name];
  90. if (otherStyle) {
  91. return otherStyle;
  92. }
  93. return {
  94. 'extend': name
  95. };
  96. }
  97. };
  98. var autoprefix = exports.autoprefix = function autoprefix(elements) {
  99. var prefixed = {};
  100. (0, _forOwn3.default)(elements, function (styles, element) {
  101. var expanded = {};
  102. (0, _forOwn3.default)(styles, function (value, key) {
  103. var transform = transforms[key];
  104. if (transform) {
  105. expanded = _extends({}, expanded, transform(value));
  106. } else {
  107. expanded[key] = value;
  108. }
  109. });
  110. prefixed[element] = expanded;
  111. });
  112. return prefixed;
  113. };
  114. exports.default = autoprefix;