{{#if showUndo}}
  {{d-button
    action=(action "undoChanges")
    icon=undoIcon
    label=undoKey
    class="undo-changes"
  }}
{{/if}}

<div class="setting">
  <div class="setting-label">
    <label>{{i18n "admin.wizard.type"}}</label>
  </div>

  <div class="setting-value">
    {{wizard-subscription-selector
      value=action.type
      feature="action"
      attribute="type"
      onChange=(action "changeType")
      wizard=wizard
      options=(hash none="admin.wizard.select_type")
    }}
  </div>
</div>

<div class="setting">
  <div class="setting-label">
    <label>{{i18n "admin.wizard.action.run_after.label"}}</label>
  </div>

  <div class="setting-value">
    {{combo-box
      value=action.run_after
      content=runAfterContent
      onChange=(action (mut action.run_after))
    }}
  </div>
</div>

{{wizard-message key=messageKey url=messageUrl component="action"}}

{{#if basicTopicFields}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.title"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.title
        property="title"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.post"}}</label>
    </div>

    <div class="setting-value">
      {{combo-box
        value=action.post
        content=wizardFields
        nameProperty="label"
        onChange=(action (mut action.post))
        options=(hash
          none="admin.wizard.selector.placeholder.wizard_field"
          isDisabled=showPostBuilder
        )
      }}

      <div class="setting-gutter">
        <Input @type="checkbox" @checked={{this.action.post_builder}} />
        <span>{{i18n "admin.wizard.action.post_builder.checkbox"}}</span>
      </div>
    </div>
  </div>

  {{#if action.post_builder}}
    <div class="setting full">
      <div class="setting-label">
        <label>{{i18n "admin.wizard.action.post_builder.label"}}</label>
      </div>

      <div class="setting-value editor">
        {{wizard-text-editor
          value=action.post_template
          wizardFields=wizardFields
        }}
      </div>
    </div>
  {{/if}}
{{/if}}

{{#if publicTopicFields}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_topic.category"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.category
        property="category"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="key,value"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          categorySelection="output"
          wizardActionSelection="output"
          outputDefaultSelection="category"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_topic.tags"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.tags
        property="tags"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          tagSelection="output"
          outputDefaultSelection="tag"
          listSelection="output"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_topic.visible"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.visible
        property="visible"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          wizardFieldSelection=true userFieldSelection=true context="action"
        )
      }}
    </div>
  </div>

  {{#if hasEventField}}
    <div class="setting full">
      <div class="setting-label">
        <label>{{i18n "admin.wizard.action.create_topic.add_event"}}</label>
      </div>

      <div class="setting-value">
        {{wizard-mapper
          inputs=action.add_event
          property="add_event"
          onUpdate=(action "mappedFieldUpdated")
          options=(hash wizardFieldSelection=true context="action")
        }}
      </div>
    </div>
  {{/if}}

  {{#if hasLocationField}}
    <div class="setting full">
      <div class="setting-label">
        <label>{{i18n "admin.wizard.action.create_topic.add_location"}}</label>
      </div>

      <div class="setting-value">
        {{wizard-mapper
          inputs=action.add_location
          property="add_location"
          onUpdate=(action "mappedFieldUpdated")
          options=(hash wizardFieldSelection=true context="action")
        }}
      </div>
    </div>
  {{/if}}
{{/if}}

{{#if sendMessage}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_message.recipient"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.recipient
        property="recipient"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="value,output"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          groupSelection="key,value"
          userSelection="output"
          outputDefaultSelection="user"
          context="action"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if updateProfile}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.update_profile.setting"}}</label>
    </div>

    {{wizard-mapper
      inputs=action.profile_updates
      property="profile_updates"
      onUpdate=(action "mappedFieldUpdated")
      options=(hash
        inputTypes="association"
        textSelection="value"
        userFieldSelection="key"
        wizardFieldSelection="value"
        wizardActionSelection="value"
        keyDefaultSelection="userField"
        context="action"
      )
    }}
  </div>
{{/if}}

{{#if sendToApi}}
  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.api"}}</label>
    </div>

    <div class="setting-value">
      {{combo-box
        value=action.api
        content=availableApis
        onChange=(action (mut action.api))
        options=(hash
          isDisabled=action.custom_title_enabled
          none="admin.wizard.action.send_to_api.select_an_api"
        )
      }}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.endpoint"}}</label>
    </div>

    <div class="setting-value">
      {{combo-box
        value=action.api_endpoint
        content=availableEndpoints
        onChange=(action (mut action.api_endpoint))
        options=(hash
          isDisabled=apiEmpty
          none="admin.wizard.action.send_to_api.select_an_endpoint"
        )
      }}
    </div>
  </div>

  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.body"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-text-editor
        value=action.api_body
        previewEnabled=false
        barEnabled=false
        wizardFields=wizardFields
        placeholder="admin.wizard.action.send_to_api.body_placeholder"
      }}
    </div>
  </div>
{{/if}}

{{#if addToGroup}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.group"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.group
        property="group"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="value,output"
          wizardFieldSelection="key,value,assignment"
          userFieldSelection="key,value,assignment"
          wizardActionSelection=true
          groupSelection="value,output"
          outputDefaultSelection="group"
          context="action"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if routeTo}}
  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.route_to.url"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.url
        property="url"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          context="action"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          groupSelection="key,value"
          categorySelection="key,value"
          userSelection="key,value"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if watchCategories}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_categories.categories"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.categories
        property="categories"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="key,value"
          wizardFieldSelection=true
          wizardActionSelection=true
          userFieldSelection="key,value"
          categorySelection="output"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.watch_categories.mute_remainder"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.mute_remainder
        property="mute_remainder"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          context="action"
          wizardFieldSelection=true
          userFieldSelection="key,value"
        )
      }}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.watch_x.notification_level.label"
        }}</label>
    </div>

    <div class="setting-value">
      {{combo-box
        value=action.notification_level
        content=availableNotificationLevels
        onChange=(action (mut action.notification_level))
        options=(hash
          isDisabled=action.custom_title_enabled
          none="admin.wizard.action.watch_x.select_a_notification_level"
        )
      }}
    </div>
  </div>

  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_x.wizard_user"}}</label>
    </div>

    <div class="setting-value">
      <Input @type="checkbox" @checked={{this.action.wizard_user}} />
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_x.usernames"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.usernames
        property="usernames"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          context="action"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          userSelection="output"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if watchTags}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_tags.tags"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.tags
        property="tags"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="key,value"
          tagSelection="output"
          wizardFieldSelection=true
          wizardActionSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.watch_x.notification_level.label"
        }}</label>
    </div>

    <div class="setting-value">
      {{combo-box
        value=action.notification_level
        content=availableNotificationLevels
        onChange=(action (mut action.notification_level))
        options=(hash
          isDisabled=action.custom_title_enabled
          none="admin.wizard.action.watch_x.select_a_notification_level"
        )
      }}
    </div>
  </div>

  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_x.wizard_user"}}</label>
    </div>

    <div class="setting-value">
      <Input @type="checkbox" @checked={{this.action.wizard_user}} />
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_x.usernames"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.usernames
        property="usernames"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          context="action"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          userSelection="output"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if createGroup}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.name"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.name
        property="name"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.full_name"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.full_name
        property="full_name"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.title"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.title
        property="title"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.bio_raw"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.bio_raw
        property="bio_raw"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.owner_usernames"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.owner_usernames
        property="owner_usernames"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          userSelection="output"
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_group.usernames"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.usernames
        property="usernames"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          userSelection="output"
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_group.grant_trust_level"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.grant_trust_level
        property="grant_trust_level"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_group.mentionable_level"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.mentionable_level
        property="mentionable_level"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_group.messageable_level"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.messageable_level
        property="messageable_level"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_group.visibility_level"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.visibility_level
        property="visibility_level"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_group.members_visibility_level"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.members_visibility_level
        property="members_visibility_level"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection=true
          context="action"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if createCategory}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_category.name"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.name
        property="name"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="key,value,output"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_category.slug"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.slug
        property="slug"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_category.color"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.color
        property="color"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_category.text_color"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.text_color
        property="text_color"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection=true
          wizardFieldSelection=true
          userFieldSelection="key,value"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n
          "admin.wizard.action.create_category.parent_category"
        }}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.parent_category_id
        property="parent_category_id"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="key,value"
          wizardFieldSelection=true
          userFieldSelection="key,value"
          categorySelection="output"
          context="action"
        )
      }}
    </div>
  </div>

  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_category.permissions"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.permissions
        property="permissions"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          inputTypes="association"
          textSelection=true
          wizardFieldSelection=true
          wizardActionSelection="key"
          userFieldSelection=true
          groupSelection="key"
          context="action"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if hasCustomFields}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.custom_fields.label"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.custom_fields
        property="custom_fields"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          inputTypes="association"
          customFieldSelection="key"
          wizardFieldSelection="value"
          wizardActionSelection="value"
          userFieldSelection="value"
          keyPlaceholder="admin.wizard.action.custom_fields.key"
          context=customFieldsContext
        )
      }}
    </div>
  </div>
{{/if}}

{{#if sendMessage}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.required"}}</label>
    </div>

    <div class="setting-value">
      {{wizard-mapper
        inputs=action.required
        property="required"
        onUpdate=(action "mappedFieldUpdated")
        options=(hash
          textSelection="value"
          wizardFieldSelection=true
          userFieldSelection=true
          groupSelection=true
          context="action"
        )
      }}
    </div>
  </div>
{{/if}}

{{#if showPostAdvanced}}
  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.skip_redirect.label"}}</label>
    </div>

    <div class="setting-value">
      <Input @type="checkbox" @checked={{this.action.skip_redirect}} />

      <span>
        {{i18n "admin.wizard.action.skip_redirect.description" type="topic"}}
      </span>
    </div>
  </div>

  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.suppress_notifications.label"}}</label>
    </div>

    <div class="setting-value">
      <Input @type="checkbox" @checked={{this.action.suppress_notifications}} />

      <span>
        {{i18n
          "admin.wizard.action.suppress_notifications.description"
          type="topic"
        }}
      </span>
    </div>
  </div>
{{/if}}

{{#if routeTo}}
  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.route_to.code"}}</label>
    </div>

    <div class="setting-value">
      <Input @value={{this.action.code}} />
    </div>
  </div>
{{/if}}