<template>
    <a class="underline decoration-base-content text-sm" v-if="field_type === 'related'"  alt="data_value" :href="`/module/${module_name}/view/${props.data_value}`">
        {{ display_value }}
    </a>
    <span class="grid grid-auto place-items-center" v-else-if="field_type == 'image'">
        <img width="50" height="50" class="mt-7" :src="`${display_value}.jpg`" />
    </span>
    <span v-else-if="field_type == 'file'">
        <a class="text-sm" href="">Link to file</a>
    </span>
    <span v-else-if="field_type == 'video'">
        <video width="100" height="100" controls>
          <source :src="`${display_value}.mp4`" type="video/mp4">
          Your browser does not support the video tag.
        </video>
    </span>
    <span v-else-if="field_type == 'color'">
        <div class="w-10 h-1" :style="`background-color:${display_value}`"></div>
    </span>
    <span v-else-if="field_type == 'email'">
        <a class="text-sm" :href="`mailto:${display_value}`">{{ display_value }}</a>
    </span>
    <span class="text-sm" v-else-if="field_type == 'currency'">
        ${{ display_value }}
    </span>
    <span class="text-sm" v-else-if="field_type == 'url'">
        <a class="text-xs" :href="`//${display_value}`">{{ display_value }}</a>
    </span>
    <span class="text-sm" v-else-if="field_type == 'tel'">
        <a :href="`tel:${display_value}`">{{ display_value }}</a>
    </span>
    <span class="text-sm" v-else-if="field_type == 'date'">
        {{ new Date(display_value).toLocaleDateString('en-us', { weekday:"short", year:"numeric", month:"short", day:"numeric"})  }}
    </span>
    <span class="text-sm" v-else-if="field_type == 'password'">
        {{ display_value }}
        <input type="checkbox" :checked="display_value" class="checkbox">
    </span>
    <span class="text-sm" v-else-if="field_type == 'textarea'">
        {{ dispay_value ? display_value.length > 30 ? display_value.substring(0,30) + '...' : display_value : '' }}
    </span>
    <span class="text-sm" v-else-if="field_type == 'checkbox'">
        <input type="checkbox" :checked="display_value" class="checkbox checkbox-sm" @click.prevent>
    </span>
    <span class="text-sm" v-else-if="field_type === 'number'">
       {{ display_value }}
    </span>
    <a class="underline decoration-base-content text-sm"  v-else-if="props.remove_links != 1 && data_link_id !== undefined"  alt="data_value" :href="`/module/${module_name}/view/${data_link_id}`">
      {{ display_value }}
    </a>
    <span class="text-sm" v-else>
       {{ display_value }}
    </span>
</template>
<script setup>
import { ref } from 'vue';
const props = defineProps({
    data_value: [String, Number, null],
    record: [Object, null],
    field: [Object, null],
    remove_links: [String, Number, null],
    field_data: [Object, Array, null]
});
const field_type = ref('unknown');
const module_name = ref('unknown');
const data_link_id = ref(null);
const related_id = ref(null);
const display_value = ref(null);
if(props.data_value !==  null) {
    display_value.value = props.data_value;
}
if(props.field !==  null && props.field !== undefined) {
    field_type.value = props.field.input_type;
    module_name.value = props.field.module.name;
    data_link_id.value = props.record[props.field.module.name + '_row_id'];
    if(field_type.value === 'related') {
        if(props.field.related_module !== undefined) {
            const related_field_record=props.field_data.filter((item) => item.id === props.data_value);
            if(related_field_record[0]) display_value.value=related_field_record[0][props.field.related_value_id];
            else display_value.value='Unknown';
        }
    }
}
</script>
 
  |