UNPKG

d2-ui

Version:
89 lines (58 loc) 2.92 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = prefixAll; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _prefixProps = require('./prefixProps'); var _prefixProps2 = _interopRequireDefault(_prefixProps); var _utilsCapitalizeString = require('./utils/capitalizeString'); var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString); var _utilsAssign = require('./utils/assign'); var _utilsAssign2 = _interopRequireDefault(_utilsAssign); var _pluginsCalc = require('./plugins/calc'); var _pluginsCalc2 = _interopRequireDefault(_pluginsCalc); var _pluginsCursor = require('./plugins/cursor'); var _pluginsCursor2 = _interopRequireDefault(_pluginsCursor); var _pluginsFlex = require('./plugins/flex'); var _pluginsFlex2 = _interopRequireDefault(_pluginsFlex); var _pluginsSizing = require('./plugins/sizing'); var _pluginsSizing2 = _interopRequireDefault(_pluginsSizing); var _pluginsGradient = require('./plugins/gradient'); var _pluginsGradient2 = _interopRequireDefault(_pluginsGradient); var _pluginsTransition = require('./plugins/transition'); var _pluginsTransition2 = _interopRequireDefault(_pluginsTransition); // special flexbox specifications var _pluginsFlexboxIE = require('./plugins/flexboxIE'); var _pluginsFlexboxIE2 = _interopRequireDefault(_pluginsFlexboxIE); var _pluginsFlexboxOld = require('./plugins/flexboxOld'); var _pluginsFlexboxOld2 = _interopRequireDefault(_pluginsFlexboxOld); var plugins = [_pluginsCalc2['default'], _pluginsCursor2['default'], _pluginsSizing2['default'], _pluginsGradient2['default'], _pluginsTransition2['default'], _pluginsFlexboxIE2['default'], _pluginsFlexboxOld2['default'], _pluginsFlex2['default']]; /** * Returns a prefixed version of the style object using all vendor prefixes * @param {Object} styles - Style object that gets prefixed properties added * @returns {Object} - Style object with prefixed properties and values */ function prefixAll(styles) { return Object.keys(styles).reduce(function (prefixedStyles, property) { var value = styles[property]; if (value instanceof Object && !Array.isArray(value)) { // recurse through nested style objects prefixedStyles[property] = prefixAll(value); } else { Object.keys(_prefixProps2['default']).forEach(function (prefix) { var properties = _prefixProps2['default'][prefix]; // add prefixes if needed if (properties[property]) { prefixedStyles[prefix + (0, _utilsCapitalizeString2['default'])(property)] = value; } }); // resolve every special plugins plugins.forEach(function (plugin) { return (0, _utilsAssign2['default'])(prefixedStyles, plugin(property, value)); }); } return prefixedStyles; }, styles); } module.exports = exports['default'];