82 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<ModalDialog
 | 
						|
  {id}
 | 
						|
  {label}
 | 
						|
  background="var(--main-bg)"
 | 
						|
>
 | 
						|
  <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'
 | 
						|
  import { show } from '../helpers/showDialog'
 | 
						|
  import { close } from '../helpers/closeDialog'
 | 
						|
  import { on } from '../../../_utils/eventBus'
 | 
						|
  import { oncreate as onCreateDialog } from '../helpers/onCreateDialog'
 | 
						|
 | 
						|
  export default {
 | 
						|
    oncreate () {
 | 
						|
      on('destroyDialog', this, this.onDestroyDialog)
 | 
						|
      onCreateDialog.call(this)
 | 
						|
    },
 | 
						|
    methods: {
 | 
						|
      show,
 | 
						|
      close,
 | 
						|
      onDestroyDialog (thisId) {
 | 
						|
        let {
 | 
						|
          id,
 | 
						|
          positiveResult,
 | 
						|
          onPositive,
 | 
						|
          onNegative
 | 
						|
        } = this.get()
 | 
						|
        if (thisId !== id) {
 | 
						|
          return
 | 
						|
        }
 | 
						|
        if (positiveResult) {
 | 
						|
          if (onPositive) {
 | 
						|
            onPositive()
 | 
						|
          }
 | 
						|
        } else {
 | 
						|
          if (onNegative) {
 | 
						|
            onNegative()
 | 
						|
          }
 | 
						|
        }
 | 
						|
      },
 | 
						|
      onPositive () {
 | 
						|
        this.set({positiveResult: true})
 | 
						|
        this.close()
 | 
						|
      },
 | 
						|
      onNegative () {
 | 
						|
        this.close()
 | 
						|
      }
 | 
						|
    },
 | 
						|
    components: {
 | 
						|
      ModalDialog
 | 
						|
    }
 | 
						|
  }
 | 
						|
</script> |