//-/////////////////////////////////////////////////////////////////////////////
//-                                                                           //
//-               This file is part of the Buildbotics firmware.              //
//-                                                                           //
//-      Copyright (c) 2015 - 2021, Buildbotics LLC, All rights reserved.     //
//-                                                                           //
//-       This Source describes Open Hardware and is licensed under the       //
//-                               CERN-OHL-S v2.                              //
//-                                                                           //
//-       You may redistribute and modify this Source and make products       //
//-  using it under the terms of the CERN-OHL-S v2 (https:/cern.ch/cern-ohl). //
//-         This Source is distributed WITHOUT ANY EXPRESS OR IMPLIED         //
//-  WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS //
//-   FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-S v2 for applicable   //
//-                                conditions.                                //
//-                                                                           //
//-              Source location: https://github.com/buildbotics              //
//-                                                                           //
//-    As per CERN-OHL-S v2 section 4, should You produce hardware based on   //
//-  these sources, You must maintain the Source Location clearly visible on  //
//-  the external case of the CNC Controller or other product you make using  //
//-                                this Source.                               //
//-                                                                           //
//-              For more information, email info@buildbotics.com             //
//-                                                                           //
//-/////////////////////////////////////////////////////////////////////////////

script#settings-io-template(type="text/x-template")
  #settings-io
    h1 I/O Configuration

    h2 Remappable Pins
    table.pure-table.pure-table-striped
      thead
        tr
          th Pin
          th Type
          th Function
          th Mode
          th State

      tbody
        tr(v-for="pin in io")
          td {{pin.id}}
          td {{pin.type}}
          td
            templated-select.function(:model.sync="pin.config.function",
              :values="pin.functions")
          td
            templated-select.mode(
              v-if="pin.modes.length && pin.config.function != 'disabled'",
              :model.sync="pin.config.mode", :values="pin.modes")
          td.state
            io-indicator(:state="pin.state", :mode="pin.config.mode",
              :type="pin.type", :func="pin.config.function")


    h2 Input
    .pure-form.pure-form-aligned
      fieldset
        templated-input(v-for="templ in template.input", :name="$key",
          :model.sync="config.input[$key]", :template="templ")
