UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

99 lines (73 loc) 3.05 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _dom = _interopRequireDefault(require("../../shared/dom7")); var _utils = require("../../shared/utils"); var _modalClass = _interopRequireDefault(require("./modal-class")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } var CustomModal = /*#__PURE__*/function (_Modal) { _inheritsLoose(CustomModal, _Modal); function CustomModal(app, params) { var _this; var extendedParams = (0, _utils.extend)({ backdrop: true, closeByBackdropClick: true, on: {} }, params); // Extends with open/close Modal methods; _this = _Modal.call(this, app, extendedParams) || this; var customModal = _assertThisInitialized(_this); customModal.params = extendedParams; // Find Element var $el; if (!customModal.params.el) { $el = (0, _dom.default)(customModal.params.content); } else { $el = (0, _dom.default)(customModal.params.el); } if ($el && $el.length > 0 && $el[0].f7Modal) { return $el[0].f7Modal || _assertThisInitialized(_this); } if ($el.length === 0) { return customModal.destroy() || _assertThisInitialized(_this); } var $backdropEl; if (customModal.params.backdrop) { $backdropEl = app.$el.children('.custom-modal-backdrop'); if ($backdropEl.length === 0) { $backdropEl = (0, _dom.default)('<div class="custom-modal-backdrop"></div>'); app.$el.append($backdropEl); } } function handleClick(e) { if (!customModal || customModal.destroyed) return; if ($backdropEl && e.target === $backdropEl[0]) { customModal.close(); } } customModal.on('customModalOpened', function () { if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { app.on('click', handleClick); } }); customModal.on('customModalClose', function () { if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { app.off('click', handleClick); } }); (0, _utils.extend)(customModal, { app: app, $el: $el, el: $el[0], $backdropEl: $backdropEl, backdropEl: $backdropEl && $backdropEl[0], type: 'customModal' }); $el[0].f7Modal = customModal; return customModal || _assertThisInitialized(_this); } return CustomModal; }(_modalClass.default); var _default = CustomModal; exports.default = _default;