react-burger-menu
Version:
An off-canvas sidebar component with a collection of effects and styles using CSS transitions and SVG path animations
98 lines (82 loc) • 3.41 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');
var _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);
var _menuFactory = require('../menuFactory');
var _menuFactory2 = _interopRequireDefault(_menuFactory);
var _helpersUtils = require('../helpers/utils');
var MORPH_SHAPE_WIDTH = 120;
var styles = {
svg: {
lib: _helpersSnapsvgImporter2['default'],
pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',
pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',
animate: function animate(path) {
path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);
}
},
morphShape: function morphShape(isOpen, width, right) {
return {
position: 'absolute',
width: MORPH_SHAPE_WIDTH,
height: '100%',
right: right ? 'inherit' : 0,
left: right ? 0 : 'inherit',
MozTransform: right ? 'rotateY(180deg)' : '',
MsTransform: right ? 'rotateY(180deg)' : '',
OTransform: right ? 'rotateY(180deg)' : '',
WebkitTransform: right ? 'rotateY(180deg)' : '',
transform: right ? 'rotateY(180deg)' : ''
};
},
menuWrap: function menuWrap(isOpen, width, right) {
return {
MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',
transition: 'all 0.3s'
};
},
menu: function menu(isOpen, width, right) {
return {
position: 'fixed',
right: right ? 0 : 'inherit',
width: (0, _helpersUtils.pxToNum)(width) - MORPH_SHAPE_WIDTH,
whiteSpace: 'nowrap',
boxSizing: 'border-box',
overflow: 'visible'
};
},
itemList: function itemList(isOpen, width, right) {
if (right) {
return {
position: 'relative',
left: '-110px',
width: '170%',
overflow: 'auto'
};
}
},
pageWrap: function pageWrap(isOpen, width, right) {
return {
MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',
transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'
};
},
outerContainer: function outerContainer(isOpen) {
return {
overflow: isOpen ? '' : 'hidden'
};
}
};
exports['default'] = (0, _menuFactory2['default'])(styles);
module.exports = exports['default'];