$(document).ready(function () { InitTooltips(); }); function InitTooltips() { let tooltipContainerSelector: string = ".tooltip__container"; let tooltipContentSelector: string = ".tooltip__content"; $.each($(tooltipContainerSelector).parent(), function (index, value) { $(value).focusin(showTooltip); $(value).focusout(hideTooltip); $(value).on('click', event => hideTooltipDebounce(event)); }); //select tooltip init $("select.select-input").each((index, item) => { let container = $(item).next(".styledSelect"); let options = $(container).next(".options"); let li = $(options).find("li"); $(container).click(showSelectTooltip); $(li).click(hideSelectTooltip); }); //file tooltip init $(".custom-file-input").each((index, item) => { $(item).hover(showFileTooltip); $(item).mouseleave(hideFileTooltip); }); function showTooltip(event) { let tooltip: any = $(this).find(tooltipContainerSelector).find(tooltipContentSelector); let tooltipText: string = $(tooltip).text(); if ($.trim(tooltipText)) { $(this).children(tooltipContainerSelector).show(); } } function hideTooltipDebounce(event) { setTimeout(function () { $(event.currentTarget).children(tooltipContainerSelector).hide(); }, 10000); } function hideTooltip(event) { $(event.currentTarget).children(tooltipContainerSelector).hide(); } function showSelectTooltip(event) { let parentDiv = $(this).closest(".custom-select"); let tooltip = $(parentDiv).next(tooltipContainerSelector).find(tooltipContentSelector); let tooltipText: string = $(tooltip).text(); if ($.trim(tooltipText)) { let element = this; $(element).closest(".custom-select").next(tooltipContainerSelector).show(); setTimeout(function() { $(element).closest(".custom-select").next(tooltipContainerSelector).hide(); }, 7000); } } function hideSelectTooltip(event) { let parentDiv = $(event.currentTarget).closest(".custom-select"); $(parentDiv).next(tooltipContainerSelector).hide(); } function showFileTooltip(event) { let tooltip: any = $(this).next(tooltipContainerSelector).find(tooltipContentSelector); let tooltipText: string = $(tooltip).text(); if ($.trim(tooltipText)) { $(this).next(tooltipContainerSelector).show(); } } function hideFileTooltip(event) { $(event.currentTarget).next(tooltipContainerSelector).hide(); } }