{{#if showUndo}}
  {{d-button
    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">
    {{combo-box
      value=action.type
      content=actionTypes
      onChange=(action "changeType")
      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=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}}

{{#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_categories.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_categories.select_a_notification_level'
        )}}
    </div>
  </div>
  
  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_categories.wizard_user"}}</label>
    </div>

    <div class="setting-value">
      {{input type="checkbox" checked=action.wizard_user}}
    </div>
  </div>
  
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.watch_categories.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'
          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 showAdvanced}}
  {{wizard-advanced-toggle showAdvanced=action.showAdvanced}}

  {{#if action.showAdvanced}}
    <div class="advanced-settings">
      
      {{#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='action'
              )}}
          </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=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=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=action.code}}
          </div>
        </div>
      {{/if}}
    </div>
  {{/if}}
{{/if}}