<PaperDialog
  @fullscreen={{this.options.fullscreen}}
  @escapeToClose={{this.options.escapeToClose}}
  @opaque={{this.options.opaque}}
  @focusOnOpen={{this.options.focusOnOpen}}
  @clickOutsideToClose={{this.options.clickOutsideToClose}}
  @closeTo={{this.options.closeTo}}
  @openFrom={{this.options.openFrom}}
  @origin={{this.options.origin}}
  @parent={{this.options.parent}}
  @onClose={{this.decline}}>
  {{#if this.options.titleComponent}}
    {{component
      this.options.titleComponent
      options=this.options
      confirm=this.confirm
      decline=this.decline
    }}
  {{/if}}
  <PaperDialogContent>

    {{#unless this.options.titleComponent}}
      <h2 class="md-title">{{this.options.title}}</h2>
    {{/unless}}

    {{#if this.options.bodyComponent}}
      {{component
        this.options.bodyComponent
        options=this.options
        progress=this.progress
        done=this.done
        overall=this.promisesCount
      }}
    {{else}}
      <p>{{this.options.body}}</p>
      <div class="layout-row layout-align-center">
        {{#if this.options.circular}}
          <PaperProgressCircular
            @value={{this.progress}}
            class={{this.options.circularClass}}
            @accent={{this.options.circularAccent}}
            @warn={{this.options.circularWarn}}
            @diameter={{this.options.circularDiameter}}
            @strokeRatio={{this.options.circularStrokeRatio}}/>
        {{else}}
          <PaperProgressLinear
            @value={{this.progress}}
            @accent={{this.options.linearAccent}}
            @warn={{this.options.linearWarn}}/>
        {{/if}}
      </div>
    {{/if}}
  </PaperDialogContent>
  <PaperDialogActions class="layout-row">
    <span class="flex"></span>
    {{#if this.options.footerComponent}}
      {{component
        this.options.footerComponent
        options=this.options
      }}
    {{else}}
      {{#if this.options.cancelable}}
        <PaperButton
          @primary={{this.options.declineButtonPrimary}}
          @fab={{this.options.declineButtonFab}}
          @mini={{this.options.declineButtonMini}}
          @noInk={{this.options.declineButtonNoInk}}
          @raised={{this.options.declineButtonRaised}}
          @iconButton={{this.options.declineButtonIcon}}
          @onClick={{this.cancel}}>
          {{#if this.options.declineButtonIcon}}
            <PaperIcon @icon={{this.options.declineButtonIcon}}/>
          {{/if}}
          {{this.options.cancel}}
        </PaperButton>
      {{/if}}
    {{/if}}
  </PaperDialogActions>
</PaperDialog>