react-flexbox-layout
Version:
Simple flexible layouts for IE9+
69 lines (55 loc) • 2.45 kB
JavaScript
// Check if we have a DOM, to support server side rendering
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _update_engine_ie9 = require('./update_engine_ie9');
var hasFlexbox = typeof document !== 'undefined' ? require('./modernizr') : function () {
return true;
};
// don't use compatibility mode if we're in tests, since it'll slow tests down
// with unnecessary DOM calculations
var env = process.env.NODE_ENV;
var isTesting = env === 'test' || env === 'testing';
function createCustomClasses() {
var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var _ref$defaultGutter = _ref.defaultGutter;
var defaultGutter = _ref$defaultGutter === undefined ? 0 : _ref$defaultGutter;
var _ref$gutterMultiplier = _ref.gutterMultiplier;
var gutterMultiplier = _ref$gutterMultiplier === undefined ? 1 : _ref$gutterMultiplier;
var _ref$defaultGutterUnit = _ref.defaultGutterUnit;
var defaultGutterUnit = _ref$defaultGutterUnit === undefined ? 'px' : _ref$defaultGutterUnit;
var _ref$simulateFlexbox = _ref.simulateFlexbox;
var simulateFlexbox = _ref$simulateFlexbox === undefined ? !hasFlexbox() && !isTesting : _ref$simulateFlexbox;
var makeHLayout = undefined,
HLayoutItem = undefined,
makeVLayout = undefined,
VLayoutItem = undefined;
if (simulateFlexbox) {
makeHLayout = require('./horizontal_ie9');
HLayoutItem = require('./horizontal_item_ie9');
makeVLayout = require('./vertical_ie9');
VLayoutItem = require('./vertical_item_ie9');
// Update layout on window resize to simulate flexbox in the browser
if (typeof window !== 'undefined') {
(0, _update_engine_ie9.updateOnWindowResize)();
}
} else {
makeHLayout = require('./horizontal');
HLayoutItem = require('./horizontal_item');
makeVLayout = require('./vertical');
VLayoutItem = require('./vertical_item');
}
return {
HLayout: makeHLayout(defaultGutter, gutterMultiplier, defaultGutterUnit),
HLayoutItem: HLayoutItem,
VLayout: makeVLayout(defaultGutter, gutterMultiplier, defaultGutterUnit),
VLayoutItem: VLayoutItem
};
}
var toExport = createCustomClasses();
toExport.createCustomClasses = createCustomClasses;
toExport.EXPAND_CHILD = 'rflExpandChild';
toExport.requestNextLayoutMinDelay = _update_engine_ie9.requestNextLayoutMinDelay;
exports['default'] = toExport;
module.exports = exports['default'];