mini.css-inferno
Version:
Mini.css components built with Inferno.
64 lines (55 loc) • 2.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DrawerToggle = DrawerToggle;
exports.Drawer = Drawer;
var _infernoCreateElement = require('inferno-create-element');
var _infernoCreateElement2 = _interopRequireDefault(_infernoCreateElement);
var _idGenerator = require('./util/idGenerator');
var _idGenerator2 = _interopRequireDefault(_idGenerator);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Module constants (change according to your flavor file)
var drawerToggleClassName = 'drawer-toggle';
var drawerClassName = 'drawer';
var drawerRightClassName = 'right';
var drawerPersistenClassName = 'persistent';
var drawerCloseName = 'close';
// DrawerToggle component.
function DrawerToggle(props) {
var outProps = Object.assign({}, props);
if (typeof outProps['htmlFor'] === 'undefined') throw 'Error: A \'DrawerToggle\' component must have an \'htmlFor\' attribute.';
if (typeof outProps.className === 'undefined') outProps.className = drawerToggleClassName;else outProps.className += ' ' + drawerToggleClassName;
if (typeof outProps.persistent === 'undefined') outProps.persistent = false;
if (outProps.persistent) outProps.className += ' ' + drawerPersistenClassName;
delete outProps.persistent;
return (0, _infernoCreateElement2.default)('label', outProps);
}
// Drawer component.
function Drawer(props) {
var outProps = Object.assign({}, props);
if (typeof outProps.id === 'undefined') throw 'Error: A \'Drawer\' component must have an \'id\' attribute.';
if (typeof outProps.className === 'undefined') outProps.className = drawerClassName;else outProps.className += ' ' + drawerClassName;
if (typeof outProps.right === 'undefined') outProps.right = false;
if (typeof outProps.persistent === 'undefined') outProps.persistent = false;
if (outProps.right) outProps.className += ' ' + drawerRightClassName;
if (outProps.persistent) outProps.className += ' ' + drawerPersistenClassName;
var childrenToRender = [];
childrenToRender.push((0, _infernoCreateElement2.default)('input', {
id: outProps.id,
type: 'checkbox',
key: outProps.id + (0, _idGenerator2.default)() + '_checkbox'
}));
var children = Array.isArray(outProps.children) ? outProps.children : [outProps.children];
children.push((0, _infernoCreateElement2.default)('label', {
'htmlFor': outProps.id,
className: drawerCloseName,
key: outProps.id + (0, _idGenerator2.default)() + '_close'
}));
delete outProps.id;
delete outProps.right;
delete outProps.persistent;
outProps.key = outProps.id + (0, _idGenerator2.default)() + '_drawer';
childrenToRender.push((0, _infernoCreateElement2.default)('div', outProps, children));
return (0, _infernoCreateElement2.default)('div', {}, childrenToRender);
}