UNPKG

joywok-material-components

Version:

<h1 align="center"> Joywok Material Components </h1>

189 lines (158 loc) 6.79 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _reactDom2 = _interopRequireDefault(_reactDom); var _reactRedux = require('react-redux'); var _pubfun = require('./pubfun'); var _events = require('events'); var _events2 = _interopRequireDefault(_events); var _styles = require('@material-ui/core/styles'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // import dva from 'dva'; // import {connect} from 'dva'; // import { Router,hashHistory,browserHistory,Route} from 'dva/router'; var Container = function (_Component) { _inherits(Container, _Component); function Container(props) { _classCallCheck(this, Container); var _this = _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).call(this, props)); _this.state = props; return _this; } _createClass(Container, [{ key: 'render', value: function render() { var Template = this.state.Template; return _react2.default.createElement( 'div', { className: "dialog-w" }, _react2.default.createElement(Template, _extends({}, this.state.data, { events: this.state.events })) ); } }, { key: 'componentDidMount', value: function componentDidMount() { var self = this; this.state.events.on('changeState', function (data) { var newData = Object.assign({}, self.state.data, data); self.setState({ data: newData }); }); } }]); return Container; }(_react.Component); require('./style/dialog.css'); function removeCustomDialog(data) { if ($('.modal-' + data.data.containerId).length != 0) { $('.modal-' + data.data.containerId).remove(); } if (typeof data.nohidebody == 'undefined') { if ($('.dialog').length == 0) { $('body').removeClass('overflowhidden').css({ overflow: 'inherit' }); } } if (typeof data.stopPropagation != 'undefined') { $('body').undelegate('.' + data.rootClass, 'click'); } } var Dialog = function Dialog(props) { var div = document.createElement('div'); var id = (0, _pubfun.generateMixed)(16); var rootClass = 'dialog ' + (props.rootClass || ''); div.setAttribute("class", rootClass); div.setAttribute("id", 'root-' + id); document.body.appendChild(div); if (typeof props.nohidebody == 'undefined') { $('body') && $('body').addClass('overflowhidden'); } if (typeof props.style != 'undefined') { div.setAttribute("style", props.style); } var myEmitter = new _events2.default(); var close = function close() { $('#root-' + id) && $('#root-' + id).remove(); $('.dialog-child-' + id) && $('.dialog-child-' + id).remove(); div = null; myEmitter = null; removeCustomDialog(props); }; var object = { close: close }; object.events = myEmitter; myEmitter.on('cancel', function () { if (typeof props.manualCloase != 'undefined') {} else { setTimeout(function () { $('#root-' + id) && $('#root-' + id).remove(); $('.dialog-child-' + id) && $('.dialog-child-' + id).remove(); div = null; myEmitter = null; removeCustomDialog(props); }, 300); } }); myEmitter.on('close', function () { $('#root-' + id).remove(); removeCustomDialog(props); div = null; myEmitter = null; }); myEmitter.on('save', function () { if (typeof props.manualCloase != 'undefined') {} else { setTimeout(function () { $('#root-' + id) && $('#root-' + id).remove(); $('.dialog-child-' + id) && $('.dialog-child-' + id).remove(); removeCustomDialog(props); div = null; myEmitter = null; }, 300); } }); if (typeof props.duration != 'undefined') { setTimeout(function () { object.close(); }, props.duration); } var bbb = props.app || window.app; // console.log( props.app , window.app, 'xxxxx' ) var container = "#root-" + id; if (typeof props.data == 'undefined') { props.data = {}; } props.data.containerId = id; props.data.close = close; if (typeof props.autoremove != 'undefined') { setTimeout(function () { $('#root-' + id).remove(); $('.dialog-child-' + id).remove(); removeCustomDialog(props); }, 300); } if (typeof props.stopPropagation != 'undefined') { $('body').delegate('.' + props.rootClass, 'click', function (event) { event.stopPropagation(); }); } _reactDom2.default.render(_react2.default.createElement( _reactRedux.Provider, { store: bbb._store }, _react2.default.createElement( _styles.MuiThemeProvider, { theme: (0, _styles.createMuiTheme)(window.theme) }, _react2.default.createElement(Container, { data: props.data, Template: props.component, events: myEmitter }) ) ), document.getElementById('root-' + id)); return object; }; exports.default = Dialog;