<ModalDialog :label :shown :closed background="var(--main-bg)" on:close="onClose()"> <form class="confirmation-dialog-form"> <p> {{text}} </p> <div class="confirmation-dialog-form-flex"> <button type="button" on:click="onPositive()"> {{positiveText || 'OK'}} </button> <button type="button" on:click="onNegative()"> {{negativeText || 'Cancel'}} </button> </div> </form> </ModalDialog> <style> .confirmation-dialog-form-flex { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 10px; padding: 10px 20px; } .confirmation-dialog-form-flex button { min-width: 125px; } .confirmation-dialog-form p { font-size: 1.3em; padding: 40px 20px; } </style> <script> import ModalDialog from './ModalDialog.html' export default { components: { ModalDialog }, methods: { show() { this.set({shown: true}) }, onClose() { if (this.get('positiveResult')) { if (this.get('onPositive')) { this.get('onPositive')() } } else { if (this.get('onNegative')) { this.get('onNegative')() } } }, onPositive() { this.set({positiveResult: true}) this.set({closed: true}) }, onNegative() { this.set({closed: true}) } } } </script>