UNPKG

vue-slim-modal

Version:
77 lines (67 loc) 1.7 kB
/*! * vue-slim-modal v1.0.4 * (c) 2017-present EGOIST <0x142857@gmail.com> (github.com/egoist) * Released under the MIT License. */ 'use strict'; function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var _mergeJSXProps = _interopDefault(require('babel-helper-vue-jsx-merge-props')); var index = { name: 'slim-modal', functional: true, props: { isOpen: { type: Boolean, required: true }, clickOutside: { type: Function, default: function _default() { return function () { return null; }; } }, isCenter: { type: Boolean, default: false }, overlayClass: { type: String } }, render: function render(h, ctx) { var _ctx$props = ctx.props, isOpen = _ctx$props.isOpen, isCenter = _ctx$props.isCenter, clickOutside = _ctx$props.clickOutside, overlayClass = _ctx$props.overlayClass; if (!isOpen) return; var contentClassNames = 'modal' + (isCenter ? ' modal__center' : ''); var overlayClassNames = 'modal-overlay' + (overlayClass ? ' ' + overlayClass : ''); return h( 'div', { 'class': 'modal-wrapper' }, [h( 'div', { 'class': overlayClassNames, on: { 'click': clickOutside } }, [] ), h( 'div', _mergeJSXProps([{ 'class': contentClassNames, on: { 'click': function click(e) { return e.stopPropagation(); } } }, ctx.data]), [ctx.children] )] ); } }; module.exports = index;