// Popup component based on picoModal var Popup = { template: '
', data: function() { return { modal: null, result: null } }, methods: { show: function(options) { var vm = this; requirejs(['picoModal'], function(picoModal) { vm.modal = modal = picoModal(options) .afterShow(function(modal) { vm.$emit("after-show"); }) .afterClose(function(modal) { vm.$emit("after-close", vm.result); }) .show(); }); }, close: function(result) { if (this.modal) { this.result = result; this.modal.close(); } }, destroy: function() { if (this.modal) { this.modal.destroy(); } } } }