UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

93 lines (77 loc) 2.44 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _dom = _interopRequireDefault(require("../../shared/dom7")); var _utils = require("../../shared/utils"); var _popoverClass = _interopRequireDefault(require("./popover-class")); var _modalMethods = _interopRequireDefault(require("../../shared/modal-methods")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _default = { name: 'popover', params: { popover: { backdrop: true, backdropEl: undefined, closeByBackdropClick: true, closeByOutsideClick: true, closeOnEscape: false, containerEl: null } }, static: { Popover: _popoverClass.default }, create: function create() { var app = this; app.popover = (0, _utils.extend)((0, _modalMethods.default)({ app: app, constructor: _popoverClass.default, defaultSelector: '.popover.modal-in' }), { open: function open(popoverEl, targetEl, animate) { var $popoverEl = (0, _dom.default)(popoverEl); if ($popoverEl.length > 1) { // check if same popover in other page var $targetPage = (0, _dom.default)(targetEl).parents('.page'); if ($targetPage.length) { $popoverEl.each(function (el) { var $el = (0, _dom.default)(el); if ($el.parents($targetPage)[0] === $targetPage[0]) { $popoverEl = $el; } }); } } if ($popoverEl.length > 1) { $popoverEl = $popoverEl.eq($popoverEl.length - 1); } var popover = $popoverEl[0].f7Modal; var data = $popoverEl.dataset(); if (!popover) { popover = new _popoverClass.default(app, Object.assign({ el: $popoverEl, targetEl: targetEl }, data)); } return popover.open(targetEl, animate); } }); }, clicks: { '.popover-open': function openPopover($clickedEl, data) { if (data === void 0) { data = {}; } var app = this; app.popover.open(data.popover, $clickedEl, data.animate); }, '.popover-close': function closePopover($clickedEl, data) { if (data === void 0) { data = {}; } var app = this; app.popover.close(data.popover, data.animate, $clickedEl); } } }; exports.default = _default;