#!/bin/bash

filterRow() {
    local LANG=C
    if [ "$1" = "help" ]; then
        echo "Usage: ${0##*/} [options]"
        echo '    text="text"          text to show inner input text'
        echo '    justify="Value"      Available: left, center, right'
        echo '    width="Value"        Available: 25, 50, 75, 100'
        echo '    bgColor="value"             Available: primary, secondary, success, danger, warning, info, light, dark, link'
        echo '    fontSize="number"           value: 1~6'
        echo '    border="number"             value: 1~5'
        echo '    borderSide="Value"          Available: border-top, border-end, border-bottom, border-start'
        echo '    borderRadius="Value"        Available: rounded, rounded-top, rounded-end, rounded-bottom, rounded-start, rounded-circle, rounded-pill'
        echo '    borderRadiusLevel="number"  Available: 0~5'
        echo '    margin="number"             value: 0~5, auto | for horizontal and vertical' 
        echo '    marginTop="number"          value: 0~5, auto'
        echo '    marginBotton="number"       value: 0~5, auto'
        echo '    marginLeft="number"         value: 0~5, auto'
        echo '    marginRight="number"        value: 0~5, auto'
        echo '    marginHorizontal="number"   value: 0~5, auto'
        echo '    marginVertical="number"     value: 0~5, auto'
        echo '    padding="number"            value: 0~5, auto | for horizontal and vertical'
        echo '    paddingTop="number"         value: 0~5, auto'
        echo '    paddingBotton="number"      value: 0~5, auto'
        echo '    paddingLeft="number"        value: 0~5, auto'
        echo '    paddingRight="number"       value: 0~5, auto'
        echo '    paddingHorizontal="number"  value: 0~5, auto'
        echo '    paddingVertical="number"    value: 0~5, auto'
        echo '    shadow="Value"              Available: shadow-none, shadow-sm, shadow, shadow-lg'
        echo ''
    fi
    
    
# Definir valor padrão para bgColor se não estiver definido
: ${bgColor:=secondary}

# Definir valor padrão para marginHorizontal se não estiver definido
: ${marginHorizontal:=0}

# Definir valor padrão para fontSize se não estiver definido
: ${fontSize:=6}

local border="${border:+border border-$border}"
local borderRadiusLevel="${borderRadiusLevel:+rounded-$borderRadiusLevel}"
local margin="${margin:+my-$margin mx-$margin}"
local marginTop="${marginTop:+mt-$marginTop}"
local marginBotton="${marginBotton:+mb-$marginBotton}"
local marginLeft="${marginLeft:+ms-$marginLeft}"
local marginRight="${marginRight:+me-$marginRight}"
local marginHorizontal="${marginHorizontal:+mx-$marginHorizontal}"
local marginVertical="${marginVertical:+my-$marginVertical}"
local padding="${padding:+py-$padding px-$padding}"
local paddingTop="${paddingTop:+pt-$paddingTop}"
local paddingBotton="${paddingBotton:+pb-$paddingBotton}"
local paddingLeft="${paddingLeft:+ps-$paddingLeft}"
local paddingRight="${paddingRight:+pe-$paddingRight}"
local paddingHorizontal="${paddingHorizontal:+px-$paddingHorizontal}"
local paddingVertical="${paddingVertical:+py-$paddingVertical}"


#It is only necessary to declare the variables that need changes in the content, the file that calls this script already creates the variable that will be used in the script
read -d $'' ShowText <<EOF

<script>
\$(document).ready(function(){
  \$("#filterRow").on("keyup", function() {
    var value = \$(this).val().toLowerCase();
    \$(".row").filter(function() {
      // ignore if inner .modal
      if (\$(this).parents(".modal").length === 0) {
        \$(this).toggle(\$(this).text().toLowerCase().indexOf(value) > -1);
      }
    });
  });
});
</script>

<div class="d-flex justify-content-$justify">
    <input class="form-control w-$width justify-content-$justify $border $borderSide $borderRadius $borderRadiusLevel bg-$bgColor $margin $marginTop $marginBotton $marginLeft $marginRight mx-$marginHorizontal $marginVertical $padding $paddingTop $paddingBotton $paddingLeft $paddingRight $paddingHorizontal $paddingVertical $shadow" id="filterRow" type="text" placeholder="$text">
</div>
EOF
echo "$ShowText"
}
