{{#if (has-block)}}
  {{#if this._truncate}}
    {{yield
      (hash
        target=(component "ember-truncate/truncation-target")
        button=(component "ember-truncate/button-toggle"
          _destination=this._buttonDestination
          _inPlace=this._buttonInPlace
          onClick=this._toggleTruncate)
        isTruncated=this.isTruncated
        neededTruncating=this.neededTruncating
      )
    }}
  {{else}}
    {{yield
      (hash
        target=(component "ember-truncate/truncation-noop")
        button=(component "ember-truncate/button-toggle"
          _destination=this._buttonDestination
          _inPlace=this._buttonInPlace
          onClick=this._toggleTruncate)
        isTruncated=this.isTruncated
        neededTruncating=this.neededTruncating
      )
    }}
  {{/if}}
{{else}}
  {{#if this._truncate}}
    <EmberTruncate::TruncationTarget>
      {{this.text}}
    </EmberTruncate::TruncationTarget>
    {{! only show the "see more" button if the text has been truncated }}
    {{#if this.neededTruncating}}
      <EmberTruncate::ButtonToggle @_destination={{this._buttonDestination}} @_inPlace={{this._buttonInPlace}} @onClick={{this._toggleTruncate}}>
        {{this.seeMoreText}}
      </EmberTruncate::ButtonToggle>
    {{/if}}
  {{else}}
    {{this.text}}
    {{! only show the "see less" button if the text has been truncated }}
    {{#if this.neededTruncating}}
      <EmberTruncate::ButtonToggle @_inPlace={{true}} @onClick={{this._toggleTruncate}}>
        {{this.seeLessText}}
      </EmberTruncate::ButtonToggle>
    {{/if}}
  {{/if}}
{{/if}}
