UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

1 lines 1.89 kB
(function framework7ComponentLoader(o,p){void 0===p&&(p=!0);document,window;var l=o.$,s=(o.Template7,o.utils),a=(o.device,o.support,o.Class,o.Modal),e=(o.ConstructorMethods,o.ModalMethods),r=function(n){function o(o,p){var a=s.extend({on:{}},o.params.popup,p);n.call(this,o,a);var e,r,t=this;if(t.params=a,(e=t.params.el?l(t.params.el):l(t.params.content))&&0<e.length&&e[0].f7Modal)return e[0].f7Modal;if(0===e.length)return t.destroy();function c(o){var p=o.target;if(0===l(p).closest(t.el).length&&t.params&&t.params.closeByBackdropClick&&t.params.backdrop&&t.backdropEl&&t.backdropEl===p){var e=!0;t.$el.nextAll(".popup.modal-in").each(function(o,p){var a=p.f7Modal;a&&a.params.closeByBackdropClick&&a.params.backdrop&&a.backdropEl===t.backdropEl&&(e=!1)}),e&&t.close()}}return t.params.backdrop&&0===(r=o.root.children(".popup-backdrop")).length&&(r=l('<div class="popup-backdrop"></div>'),o.root.append(r)),s.extend(t,{app:o,$el:e,el:e[0],$backdropEl:r,backdropEl:r&&r[0],type:"popup"}),t.on("popupOpened",function(){t.params.closeByBackdropClick&&o.on("click",c)}),t.on("popupClose",function(){t.params.closeByBackdropClick&&o.off("click",c)}),e[0].f7Modal=t}return n&&(o.__proto__=n),(o.prototype=Object.create(n&&n.prototype)).constructor=o}(a),t={name:"popup",params:{popup:{backdrop:!0,closeByBackdropClick:!0}},static:{Popup:r},create:function(){this.popup=e({app:this,constructor:r,defaultSelector:".popup.modal-in"})},clicks:{".popup-open":function(o,p){void 0===p&&(p={});this.popup.open(p.popup,p.animate)},".popup-close":function(o,p){void 0===p&&(p={});this.popup.close(p.popup,p.animate)}}};if(p){if(o.prototype.modules&&o.prototype.modules[t.name])return;o.use(t),o.instance&&(o.instance.useModuleParams(t,o.instance.params),o.instance.useModule(t))}return t}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))