import InfoIcon from "icons/info.svg";
import InfoIconV2 from "icons/infoV2.svg";
import InfoIconV3 from "icons/infoV3.svg";
import UserSaysIcon from "icons/user-says.svg";
import BotSaysIcon from "icons/bot-says.svg";
import EntitiesIcon from "icons/entities.svg";
import ConnectionsIcon from "icons/connections.svg";
import ApiIcon from "icons/api.svg";
import GearIcon from "icons/gear.svg";
import CloseIcon from "icons/close.svg";
import CloseIconV2 from "icons/close-v2.svg";
import InactiveIcon from "icons/inactive.svg";
import ActiveIcon from "icons/active.svg";
import EditIcon from "icons/edit.svg";
import InvisibleIcon from "icons/invisible.svg";
import VisibleIcon from "icons/visible.svg";
import SaveIcon from "icons/save.svg";
import HelpIcon from "icons/help.svg";
import AddIcon from "icons/add.svg";
import TrashIcon from "icons/trash.svg";
import HomeIcon from "icons/home.svg";
import SynonymHighlightIcon from "icons/synonym-highlight.svg";
import SynonymDuplicateIcon from "icons/synonym-duplicate.svg";
import PlusIcon from "icons/plus.svg";
import Plus2Icon from "icons/plus2.svg";
import MinusIcon from "icons/minus.svg";
import AddDelayIcon from "icons/add-delay.svg";
import AddEntityIcon from "icons/add-entity.svg";
import BotSaysColoredIcon from "icons/bot-says-colored.svg";
import DelayIcon from "icons/delay.svg";
import EntityIcon from "icons/entity.svg";
import EntityNumericRangeIcon from "icons/entity-numeric-range.svg";
import EntityRegexIcon from "icons/entity-regex.svg";
import BudgetIcon from "icons/budget.svg";
import DateIcon from "icons/date.svg";
import TimeIcon from "icons/time.svg";
import ReorderIcon from "icons/reorder.svg";
import MandatoryIcon from "icons/mandatory.svg";
import TickIcon from "icons/tick.svg";
import StarIcon from "icons/star.svg";
import AngleDownIcon from "icons/angle-down.svg";
import NodeIcon from "icons/node.svg";
import StoryIcon from "icons/story.svg";
import UploadIconIcon from "icons/upload-icon.svg";
import TaskIcon from "icons/task.svg";
import TaskGreyIcon from "icons/task-grey.svg";
import TaskboxIcon from "icons/taskbox.svg";
import OutlierIcon from "icons/outlier.svg";
import BusinessIcon from "icons/business.svg";
import BotbreakIcon from "icons/botbreak.svg";
import BotIcon from "icons/bot.svg";
import CheckmarkIcon from "icons/checkmark.svg";
import EntityEmailIcon from "icons/entity-email.svg";
import ClientIcon from "icons/client.svg";
import SearchIcon from "icons/search.svg";
import FilterIcon from "icons/filter.svg";
import FilterFilledIcon from "icons/filter_filled.svg";
import TransferIcon from "icons/transfer.svg";
import EmptyBusinessPlaceholderIcon from "icons/empty-business-placeholder.svg";
import RedExclamationIcon from "icons/red-exclamation.svg";
import TickGreenIcon from "icons/tick-green.svg";
import QuestionIcon from "icons/question.svg";
import QuestionBlueIcon from "icons/question-blue.svg";
import QuestionBookIcon from "icons/question-book.svg";
import ArrowIcon from "icons/arrow.svg";
import TestBotIcon from "icons/test-bot.svg";
import SubstoryEmptyIcon from "icons/substory-empty.svg";
import QuotesOpenIcon from "icons/quotes_open.svg";
import QuotesCloseIcon from "icons/quotes_close.svg";
import TemplateIcon from "icons/template.svg";
import TemplateGeneralIcon from "icons/template_general.svg";
import TemplateSubstoryIcon from "icons/template_substory.svg";
import TemplateSubstoryApiIcon from "icons/template_substory_api.svg";
import CircleMoreIcon from "icons/circle-more.svg";
import PasteIcon from "icons/paste.svg";
import HaptikIcon from "icons/haptik.svg";
import ProfileIcon from "icons/profile.svg";
import ImagePlaceholder from "icons/placeholder.svg";
import FilePlaceholder from "icons/file_placeholder.svg";
import BotTabIcon from "icons/botsTab.svg";
import BotTabColoredIcon from "icons/botsTabColored.svg";
import TemplateTabIcon from "icons/templatesTab.svg";
import TemplateTabColoredIcon from "icons/templatesTabColored.svg";
import BusinessTabIcon from "icons/businessTab.svg";
import BusinessTabColoredIcon from "icons/businessTabColored.svg";
import GridIcon from "icons/grid.svg";
import AnalyticsIcon from "icons/analytics.svg";
import ExpandIcon from "icons/expand.svg";
import ExpandThinIcon from "icons/expandThin.svg";
import ShrinkIcon from "icons/shrink.svg";
import DownloadIcon from "icons/download.svg";
import PlusCalendar from "icons/plusCalendar.svg";
import CaretUp from "icons/caretUp.svg";
import CaretDown from "icons/caretDown.svg";

export const ICON_MAP = {
  info: InfoIcon,
  infoV2: InfoIconV2,
  infoV3: InfoIconV3,
  "user-says": UserSaysIcon,
  "bot-says": BotSaysIcon,
  entities: EntitiesIcon,
  connections: ConnectionsIcon,
  api: ApiIcon,
  gear: GearIcon,
  close: CloseIcon,
  closeV2: CloseIconV2,
  inactive: InactiveIcon,
  active: ActiveIcon,
  edit: EditIcon,
  invisible: InvisibleIcon,
  visible: VisibleIcon,
  save: SaveIcon,
  help: HelpIcon,
  add: AddIcon,
  trash: TrashIcon,
  home: HomeIcon,
  synonym_highlight: SynonymHighlightIcon,
  synonym_duplicate: SynonymDuplicateIcon,
  plus: PlusIcon,
  plus2: Plus2Icon,
  minus: MinusIcon,
  "add-delay": AddDelayIcon,
  "add-entity": AddEntityIcon,
  "bot-says-colored": BotSaysColoredIcon,
  delay: DelayIcon,
  entity: EntityIcon,
  "entity-numeric-range": EntityNumericRangeIcon,
  "entity-regex": EntityRegexIcon,
  budget: BudgetIcon,
  date: DateIcon,
  time: TimeIcon,
  reorder: ReorderIcon,
  mandatory: MandatoryIcon,
  tick: TickIcon,
  star: StarIcon,
  "angle-down": AngleDownIcon,
  node: NodeIcon,
  story: StoryIcon,
  upload_icon: UploadIconIcon,
  task: TaskIcon,
  task_gray: TaskGreyIcon,
  taskbox: TaskboxIcon,
  outlier: OutlierIcon,
  business: BusinessIcon,
  botbreak: BotbreakIcon,
  bot: BotIcon,
  checkmark: CheckmarkIcon,
  "entity-email": EntityEmailIcon,
  client: ClientIcon,
  search: SearchIcon,
  filter: FilterIcon,
  filter_filled: FilterFilledIcon,
  transfer: TransferIcon,
  "empty-business-placeholder": EmptyBusinessPlaceholderIcon,
  error_response: RedExclamationIcon,
  success_response: TickGreenIcon,
  "tick-green": TickGreenIcon,
  question: QuestionIcon,
  "question-blue": QuestionBlueIcon,
  "question-book": QuestionBookIcon,
  arrow: ArrowIcon,
  "test-bot": TestBotIcon,
  "substory-empty": SubstoryEmptyIcon,
  quotes_open: QuotesOpenIcon,
  quotes_close: QuotesCloseIcon,
  template: TemplateIcon,
  template_general: TemplateGeneralIcon,
  template_substory: TemplateSubstoryIcon,
  template_substory_api: TemplateSubstoryApiIcon,
  "circle-more": CircleMoreIcon,
  paste: PasteIcon,
  haptik: HaptikIcon,
  profile: ProfileIcon,
  botTab: BotTabIcon,
  botTabColored: BotTabColoredIcon,
  templateTab: TemplateTabIcon,
  templateTabColored: TemplateTabColoredIcon,
  businessTab: BusinessTabIcon,
  businessTabColored: BusinessTabColoredIcon,
  grid: GridIcon,
  imagePlaceholder: ImagePlaceholder,
  filePlaceholder: FilePlaceholder,
  analytics: AnalyticsIcon,
  expand: ExpandIcon,
  expandThin: ExpandThinIcon,
  shrink: ShrinkIcon,
  download: DownloadIcon,
  plusCalendar: PlusCalendar,
  caretUp: CaretUp,
  caretDown: CaretDown,
};

/**
 * Based on the icon identifier (string), it returns the
 * icon component.
 * @export
 * @param {string} iconType icon identifier
 * @returns {Object} the react component corresponding to the iconType
 */
export function getIcon(iconType) {
  return ICON_MAP[iconType] || (() => null);
}
