<template>
  <component :is="props.name" viewBox="0 0 24 24"></component>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import close from "@/assets/icons/actions/close.svg";
import copy from "@/assets/icons/actions/copy.svg";
import trash from "@/assets/icons/actions/delete.svg";
import edit from "@/assets/icons/actions/edit.svg";
import locked from "@/assets/icons/actions/locked.svg";
import logOut from "@/assets/icons/actions/log-out.svg";
import minus from "@/assets/icons/actions/minus.svg";
import other from "@/assets/icons/actions/other.svg";
import password from "@/assets/icons/actions/password.svg";
import refresh from "@/assets/icons/actions/refresh.svg";
import search from "@/assets/icons/actions/search.svg";
import signIn from "@/assets/icons/actions/sign-in.svg";

import opercent from "@/assets/icons/benefits/0percent.svg";
import clock from "@/assets/icons/benefits/clock.svg";
import money from "@/assets/icons/benefits/money.svg";
import skip from "@/assets/icons/benefits/skip.svg";

import calendar from "@/assets/icons/date/calendar.svg";
import schedule from "@/assets/icons/date/schedule.svg";
import timeChange from "@/assets/icons/date/time-change.svg";
import timeDelay from "@/assets/icons/date/time-delay.svg";
import time from "@/assets/icons/date/time.svg";

import contract from "@/assets/icons/document/contract.svg";
import img from "@/assets/icons/document/img.svg";
import pdf from "@/assets/icons/document/pdf.svg";
import reciept from "@/assets/icons/document/reciept.svg";

import bank from "@/assets/icons/finance/bank.svg";
import billMultiply from "@/assets/icons/finance/bill-multiply.svg";
import billOptions from "@/assets/icons/finance/bill-options.svg";
import billPayment from "@/assets/icons/finance/bill-payment.svg";
import billPercent from "@/assets/icons/finance/bill-percent.svg";
import bill from "@/assets/icons/finance/bill.svg";
import card from "@/assets/icons/finance/card.svg";
import cartBasket from "@/assets/icons/finance/cart-basket.svg";
import cart from "@/assets/icons/finance/cart.svg";
import chartPie from "@/assets/icons/finance/chart-pie.svg";
import currencyGel from "@/assets/icons/finance/currency-gel.svg";
import history from "@/assets/icons/finance/history.svg";
import payment from "@/assets/icons/finance/payment.svg";
import percent from "@/assets/icons/finance/percent.svg";
import transfers from "@/assets/icons/finance/transfers.svg";
import walletAlt from "@/assets/icons/finance/wallet-alt.svg";
import wallet from "@/assets/icons/finance/wallet.svg";

import alert from "@/assets/icons/general/alert.svg";
import billPayments from "@/assets/icons/general/bill_payments.svg";
import generalCard from "@/assets/icons/general/card.svg";
import generalClose from "@/assets/icons/general/close.svg";
import dropdown from "@/assets/icons/general/dropdown.svg";
import installment from "@/assets/icons/general/installment.svg";
import generalMinus from "@/assets/icons/general/minus.svg";
import generalMoney from "@/assets/icons/general/money.svg";
import generalPlus from "@/assets/icons/general/plus.svg";
import generalProfile from "@/assets/icons/general/profile.svg";
import generalTransfers from "@/assets/icons/general/transfers.svg";

import camera from "@/assets/icons/media/camera.svg";
import phone from "@/assets/icons/media/phone.svg";
import play from "@/assets/icons/media/play.svg";
import upload from "@/assets/icons/media/upload.svg";

import arrowLeft from "@/assets/icons/navigation/arrow-left.svg";
import arrowRight from "@/assets/icons/navigation/arrow-right.svg";
import arrowTopRight from "@/assets/icons/navigation/arrow-top-right.svg";
import chevronLeft from "@/assets/icons/navigation/chevron-left.svg";
import chevronRight from "@/assets/icons/navigation/chevron-right.svg";
import chevronUp from "@/assets/icons/navigation/chevron-up.svg";
import chevronDown from "@/assets/icons/navigation/chevron-down.svg";

import dotsHorizontal from "@/assets/icons/navigation/dots-horizontal.svg";
import navDropdown from "@/assets/icons/navigation/dropdown.svg";
import home from "@/assets/icons/navigation/home.svg";
import settings from "@/assets/icons/navigation/settings.svg";

import call from "@/assets/icons/social/call.svg";
import cinema from "@/assets/icons/social/cinema.svg";
import drinks from "@/assets/icons/social/drinks.svg";
import family from "@/assets/icons/social/family.svg";
import food from "@/assets/icons/social/food.svg";
import fun from "@/assets/icons/social/fun.svg";
import hotel from "@/assets/icons/social/hotel.svg";
import internet from "@/assets/icons/social/internet.svg";
import shopping from "@/assets/icons/social/shopping.svg";
import travel from "@/assets/icons/social/travel.svg";
import userAdd from "@/assets/icons/social/user-add.svg";
import userMultiply from "@/assets/icons/social/user-multiply.svg";
import socialUser from "@/assets/icons/social/user.svg";

import specialCard from "@/assets/icons/special/card.svg";
import specialLoan from "@/assets/icons/special/loan.svg";
import specialQna from "@/assets/icons/special/qna.svg";

import statusAlert from "@/assets/icons/status/alert.svg";
import statusBell from "@/assets/icons/status/bell.svg";
import statusCheck from "@/assets/icons/status/check.svg";
import statusError from "@/assets/icons/status/error.svg";
import statusInfo from "@/assets/icons/status/info.svg";
import statusLoader from "@/assets/icons/status/loader.svg";
import statusSuccess from "@/assets/icons/status/success.svg";

import checkboxChecked from "@/assets/icons/toggles/checkbox-checked.svg";
import checkboxUnchecked from "@/assets/icons/toggles/checkbox-unchecked.svg";
import hide from "@/assets/icons/toggles/hide.svg";
import radiobuttonChecked from "@/assets/icons/toggles/radiobutton-checked.svg";
import radiobuttonUnchecked from "@/assets/icons/toggles/radiobutton-unchecked.svg";
import unhide from "@/assets/icons/toggles/unhide.svg";

export default defineComponent({
  props: {
    name: {
      default: "",
      type: String,
      required: true,
    },
  },
  components: {
    close,
    copy,
    trash,
    edit,
    locked,
    logOut,
    minus,
    other,
    password,
    refresh,
    search,
    signIn,

    opercent,
    clock,
    money,
    skip,

    calendar,
    schedule,
    timeChange,
    timeDelay,
    time,

    contract,
    img,
    pdf,
    reciept,

    bank,
    billMultiply,
    billOptions,
    billPayment,
    billPercent,
    bill,
    card,
    cartBasket,
    cart,
    chartPie,
    currencyGel,
    history,
    payment,
    percent,
    transfers,
    walletAlt,
    wallet,

    alert,
    billPayments,
    generalCard,
    generalClose,
    dropdown,
    installment,
    generalMinus,
    generalMoney,
    generalPlus,
    generalProfile,
    generalTransfers,

    camera,
    phone,
    play,
    upload,

    arrowLeft,
    arrowRight,
    arrowTopRight,
    chevronLeft,
    chevronRight,
    chevronUp,
    chevronDown,
    dotsHorizontal,
    navDropdown,
    home,
    settings,

    call,
    cinema,
    drinks,
    family,
    food,
    fun,
    hotel,
    internet,
    shopping,
    travel,
    userAdd,
    userMultiply,
    socialUser,

    specialCard,
    specialLoan,
    specialQna,

    statusAlert,
    statusBell,
    statusCheck,
    statusError,
    statusInfo,
    statusLoader,
    statusSuccess,

    checkboxChecked,
    checkboxUnchecked,
    hide,
    radiobuttonChecked,
    radiobuttonUnchecked,
    unhide,
  },
  setup(props) {
    return {
      props,
    };
  },
});
</script>
