{{#if this.includeBlank}}
  <option value=""
          disabled={{this.promptIsDisabled}}
          selected={{if this.nothingSelected "selected"}}>
    {{this.prompt}}
  </option>
{{/if}}
{{#if this.hasGrouping}}
  {{#each this.optionGroups as |optionGroup groupIndex|}}
    <optgroup label={{optionGroup.groupName}}>
      {{#each optionGroup.options as |option index|}}
        {{#if hasBlock}}
          <OneWaySelect::option
            @selected={{this.selectedValue}}
            @option={{option}}
            @optionValuePath={{this.computedOptionValuePath}}
            @optionTargetPath={{@optionTargetPath}}>
            {{yield option index groupIndex}}
          </OneWaySelect::option>
        {{else}}
          <OneWaySelect::option
            @selected={{this.selectedValue}}
            @option={{option}}
            @index={{index}}
            @groupIndex={{groupIndex}}
            @optionComponent={{@optionComponent}}
            @optionValuePath={{this.computedOptionValuePath}}
            @optionTargetPath={{@optionTargetPath}}
            @optionLabelPath={{@optionLabelPath}} />
        {{/if}}
      {{/each}}
    </optgroup>
  {{/each}}
{{else}}
  {{#each this.options as |option index|}}
    {{#if hasBlock}}
      <OneWaySelect::Option
          @selected={{this.selectedValue}}
          @option={{@option}}
          @optionValuePath={{this.computedOptionValuePath}}
          @optionTargetPath={{@optionTargetPath}}>
        {{yield option index}}
      </OneWaySelect::Option>
    {{else}}
      <OneWaySelect::Option
          @selected={{this.selectedValue}}
          @option={{option}}
          @index={{index}}
          @optionComponent={{@optionComponent}}
          @optionValuePath={{this.computedOptionValuePath}}
          @optionTargetPath={{@optionTargetPath}}
          @optionLabelPath={{@optionLabelPath}} />
    {{/if}}
  {{/each}}
{{/if}}
