@cognitive-class/jupyterlab-cde-plugin
Version:
Drop-in Cognos Dashboard Embedded plugin for Jupyterlab
170 lines (120 loc) • 11.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _nanoid = require('nanoid');
var _nanoid2 = _interopRequireDefault(_nanoid);
var _modal = require('antd/lib/modal');
var _modal2 = _interopRequireDefault(_modal);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
require('antd/lib/modal/style/index.css');
var Dialog = function (_PureComponent) {
(0, _inherits3.default)(Dialog, _PureComponent);
function Dialog() {
(0, _classCallCheck3.default)(this, Dialog);
var _this = (0, _possibleConstructorReturn3.default)(this, (Dialog.__proto__ || (0, _getPrototypeOf2.default)(Dialog)).call(this));
_this.handleRootRef = function (node) {
_this.root = node;
};
_this.handleFormRef = function (node) {
_this.form = node;
};
_this.handleOverlayClick = function (e) {
var onCancel = _this.props.onCancel;
// Ignore propogated clicks from inside the dialog
if (onCancel && !_this.root.contains(e.target)) {
onCancel();
}
};
_this.handleEsc = function (e) {
var onCancel = _this.props.onCancel;
// Esc key
if (onCancel && e.keyCode === 27) {
onCancel();
}
};
_this.titleId = (0, _nanoid2.default)();
_this.container = document.createElement('div');
_this.container.setAttribute('data-consent-manager-dialog', '');
document.body.appendChild(_this.container);
return _this;
}
(0, _createClass3.default)(Dialog, [{
key: 'componentDidMount',
value: function componentDidMount() {
var innerRef = this.props.innerRef;
// this.form.querySelector('input,button').focus()
// document.body.addEventListener('keydown', this.handleEsc, false)
// document.body.style.overflow = 'hidden'
// innerRef(this.container)
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
var innerRef = this.props.innerRef;
document.body.removeEventListener('keydown', this.handleEsc, false);
document.body.style.overflow = '';
document.body.removeChild(this.container);
innerRef(null);
}
}, {
key: 'render',
value: function render() {
var _props = this.props,
onCancel = _props.onCancel,
onSubmit = _props.onSubmit,
title = _props.title,
children = _props.children,
okText = _props.okText,
props = (0, _objectWithoutProperties3.default)(_props, ['onCancel', 'onSubmit', 'title', 'children', 'okText']);
var dialog = _react2.default.createElement(
_modal2.default,
(0, _extends3.default)({
title: title,
visible: true,
onOk: onSubmit,
onCancel: onCancel,
okText: okText
}, props),
children
);
return _reactDom2.default.createPortal(dialog, this.container);
}
}]);
return Dialog;
}(_react.PureComponent);
Dialog.displayName = 'Dialog';
Dialog.propTypes = {
innerRef: _propTypes2.default.func.isRequired,
onCancel: _propTypes2.default.func,
onSubmit: _propTypes2.default.func.isRequired,
title: _propTypes2.default.node.isRequired,
children: _propTypes2.default.node.isRequired,
okText: _propTypes2.default.string
};
Dialog.defaultProps = {
onCancel: undefined,
okText: 'Ok'
};
exports.default = Dialog;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb3VyY2UtbWFuYWdlci9kaWFsb2cuanMiXSwibmFtZXMiOlsicmVxdWlyZSIsIkRpYWxvZyIsImhhbmRsZVJvb3RSZWYiLCJub2RlIiwicm9vdCIsImhhbmRsZUZvcm1SZWYiLCJmb3JtIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiZSIsIm9uQ2FuY2VsIiwicHJvcHMiLCJjb250YWlucyIsInRhcmdldCIsImhhbmRsZUVzYyIsImtleUNvZGUiLCJ0aXRsZUlkIiwiY29udGFpbmVyIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwiaW5uZXJSZWYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic3R5bGUiLCJvdmVyZmxvdyIsInJlbW92ZUNoaWxkIiwib25TdWJtaXQiLCJ0aXRsZSIsImNoaWxkcmVuIiwib2tUZXh0IiwiZGlhbG9nIiwiUmVhY3RET00iLCJjcmVhdGVQb3J0YWwiLCJQdXJlQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBQSxRQUFRLGdDQUFSOztJQUVxQkMsTTs7O0FBaUJuQixvQkFBYztBQUFBOztBQUFBOztBQUFBLFVBOEJkQyxhQTlCYyxHQThCRSxVQUFDQyxJQUFELEVBQVU7QUFDeEIsWUFBS0MsSUFBTCxHQUFZRCxJQUFaO0FBQ0QsS0FoQ2E7O0FBQUEsVUFrQ2RFLGFBbENjLEdBa0NFLFVBQUNGLElBQUQsRUFBVTtBQUN4QixZQUFLRyxJQUFMLEdBQVlILElBQVo7QUFDRCxLQXBDYTs7QUFBQSxVQXNDZEksa0JBdENjLEdBc0NPLFVBQUNDLENBQUQsRUFBTztBQUFBLFVBQ2xCQyxRQURrQixHQUNMLE1BQUtDLEtBREEsQ0FDbEJELFFBRGtCOztBQUcxQjs7QUFDQSxVQUFJQSxZQUFZLENBQUMsTUFBS0wsSUFBTCxDQUFVTyxRQUFWLENBQW1CSCxFQUFFSSxNQUFyQixDQUFqQixFQUErQztBQUM3Q0g7QUFDRDtBQUNGLEtBN0NhOztBQUFBLFVBK0NkSSxTQS9DYyxHQStDRixVQUFDTCxDQUFELEVBQU87QUFBQSxVQUNUQyxRQURTLEdBQ0ksTUFBS0MsS0FEVCxDQUNURCxRQURTOztBQUdqQjs7QUFDQSxVQUFJQSxZQUFZRCxFQUFFTSxPQUFGLEtBQWMsRUFBOUIsRUFBa0M7QUFDaENMO0FBQ0Q7QUFDRixLQXREYTs7QUFHWixVQUFLTSxPQUFMLEdBQWUsdUJBQWY7O0FBRUEsVUFBS0MsU0FBTCxHQUFpQkMsU0FBU0MsYUFBVCxDQUF1QixLQUF2QixDQUFqQjtBQUNBLFVBQUtGLFNBQUwsQ0FBZUcsWUFBZixDQUE0Qiw2QkFBNUIsRUFBMkQsRUFBM0Q7QUFDQUYsYUFBU0csSUFBVCxDQUFjQyxXQUFkLENBQTBCLE1BQUtMLFNBQS9CO0FBUFk7QUFRYjs7Ozt3Q0FFbUI7QUFBQSxVQUNWTSxRQURVLEdBQ0csS0FBS1osS0FEUixDQUNWWSxRQURVOztBQUdsQjtBQUNBO0FBQ0E7O0FBRUE7QUFDRDs7OzJDQUVzQjtBQUFBLFVBQ2JBLFFBRGEsR0FDQSxLQUFLWixLQURMLENBQ2JZLFFBRGE7OztBQUdyQkwsZUFBU0csSUFBVCxDQUFjRyxtQkFBZCxDQUFrQyxTQUFsQyxFQUE2QyxLQUFLVixTQUFsRCxFQUE2RCxLQUE3RDtBQUNBSSxlQUFTRyxJQUFULENBQWNJLEtBQWQsQ0FBb0JDLFFBQXBCLEdBQStCLEVBQS9COztBQUVBUixlQUFTRyxJQUFULENBQWNNLFdBQWQsQ0FBMEIsS0FBS1YsU0FBL0I7QUFDQU0sZUFBUyxJQUFUO0FBQ0Q7Ozs2QkE0QlE7QUFBQSxtQkFHSCxLQUFLWixLQUhGO0FBQUEsVUFFTEQsUUFGSyxVQUVMQSxRQUZLO0FBQUEsVUFFS2tCLFFBRkwsVUFFS0EsUUFGTDtBQUFBLFVBRWVDLEtBRmYsVUFFZUEsS0FGZjtBQUFBLFVBRXNCQyxRQUZ0QixVQUVzQkEsUUFGdEI7QUFBQSxVQUVnQ0MsTUFGaEMsVUFFZ0NBLE1BRmhDO0FBQUEsVUFFMkNwQixLQUYzQzs7O0FBS1AsVUFBTXFCLFNBQ0o7QUFBQyx1QkFBRDtBQUFBO0FBQ0UsaUJBQU9ILEtBRFQ7QUFFRSx1QkFGRjtBQUdFLGdCQUFNRCxRQUhSO0FBSUUsb0JBQVVsQixRQUpaO0FBS0Usa0JBQVFxQjtBQUxWLFdBTU1wQixLQU5OO0FBUUdtQjtBQVJILE9BREY7O0FBYUEsYUFBT0csbUJBQVNDLFlBQVQsQ0FBc0JGLE1BQXRCLEVBQThCLEtBQUtmLFNBQW5DLENBQVA7QUFDRDs7O0VBNUZpQ2tCLG9COztBQUFmakMsTSxDQUNaa0MsVyxHQUFjLFE7QUFERmxDLE0sQ0FHWm1DLFMsR0FBWTtBQUNqQmQsWUFBVWUsb0JBQVVDLElBQVYsQ0FBZUMsVUFEUjtBQUVqQjlCLFlBQVU0QixvQkFBVUMsSUFGSDtBQUdqQlgsWUFBVVUsb0JBQVVDLElBQVYsQ0FBZUMsVUFIUjtBQUlqQlgsU0FBT1Msb0JBQVVsQyxJQUFWLENBQWVvQyxVQUpMO0FBS2pCVixZQUFVUSxvQkFBVWxDLElBQVYsQ0FBZW9DLFVBTFI7QUFNakJULFVBQVFPLG9CQUFVRztBQU5ELEM7QUFIQXZDLE0sQ0FZWndDLFksR0FBZTtBQUNwQmhDLFlBQVVpQyxTQURVO0FBRXBCWixVQUFRO0FBRlksQztrQkFaSDdCLE0iLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgbmFub2lkIGZyb20gJ25hbm9pZCdcbmltcG9ydCBNb2RhbCBmcm9tICdhbnRkL2xpYi9tb2RhbCdcblxucmVxdWlyZSgnYW50ZC9saWIvbW9kYWwvc3R5bGUvaW5kZXguY3NzJylcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlhbG9nIGV4dGVuZHMgUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkaXNwbGF5TmFtZSA9ICdEaWFsb2cnXG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpbm5lclJlZjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNhbmNlbDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25TdWJtaXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdGl0bGU6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgb2tUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvbkNhbmNlbDogdW5kZWZpbmVkLFxuICAgIG9rVGV4dDogJ09rJyxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXMudGl0bGVJZCA9IG5hbm9pZCgpXG5cbiAgICB0aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCdkYXRhLWNvbnNlbnQtbWFuYWdlci1kaWFsb2cnLCAnJylcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBpbm5lclJlZiB9ID0gdGhpcy5wcm9wc1xuXG4gICAgLy8gdGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LGJ1dHRvbicpLmZvY3VzKClcbiAgICAvLyBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUVzYywgZmFsc2UpXG4gICAgLy8gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nXG5cbiAgICAvLyBpbm5lclJlZih0aGlzLmNvbnRhaW5lcilcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgaW5uZXJSZWYgfSA9IHRoaXMucHJvcHNcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlRXNjLCBmYWxzZSlcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJydcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpXG4gICAgaW5uZXJSZWYobnVsbClcbiAgfVxuXG4gIGhhbmRsZVJvb3RSZWYgPSAobm9kZSkgPT4ge1xuICAgIHRoaXMucm9vdCA9IG5vZGVcbiAgfVxuXG4gIGhhbmRsZUZvcm1SZWYgPSAobm9kZSkgPT4ge1xuICAgIHRoaXMuZm9ybSA9IG5vZGVcbiAgfVxuXG4gIGhhbmRsZU92ZXJsYXlDbGljayA9IChlKSA9PiB7XG4gICAgY29uc3QgeyBvbkNhbmNlbCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgLy8gSWdub3JlIHByb3BvZ2F0ZWQgY2xpY2tzIGZyb20gaW5zaWRlIHRoZSBkaWFsb2dcbiAgICBpZiAob25DYW5jZWwgJiYgIXRoaXMucm9vdC5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgIG9uQ2FuY2VsKClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVFc2MgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHsgb25DYW5jZWwgfSA9IHRoaXMucHJvcHNcblxuICAgIC8vIEVzYyBrZXlcbiAgICBpZiAob25DYW5jZWwgJiYgZS5rZXlDb2RlID09PSAyNykge1xuICAgICAgb25DYW5jZWwoKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBvbkNhbmNlbCwgb25TdWJtaXQsIHRpdGxlLCBjaGlsZHJlbiwgb2tUZXh0LCAuLi5wcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBkaWFsb2cgPSAoXG4gICAgICA8TW9kYWxcbiAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICB2aXNpYmxlXG4gICAgICAgIG9uT2s9e29uU3VibWl0fVxuICAgICAgICBvbkNhbmNlbD17b25DYW5jZWx9XG4gICAgICAgIG9rVGV4dD17b2tUZXh0fVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTW9kYWw+XG4gICAgKVxuXG4gICAgcmV0dXJuIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChkaWFsb2csIHRoaXMuY29udGFpbmVyKVxuICB9XG59XG4iXX0=