{"version":3,"file":"../../lizmap/www/assets/js/view.js","mappings":"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","sources":["webpack://assets/./src/legacy/view.js"],"sourcesContent":["/**\n * @module legacy/view.js\n * @name View\n * @copyright 2023 3Liz\n * @license MPL-2.0\n */\n\nvar searchProjects = function(){\n // Hide search if there are no projects\n if ($(\"#content.container li .liz-project-title\").length === 0) {\n $(\"#search\").hide();\n return;\n }\n\n // Activate tooltips\n $('#toggle-search, #search-project').tooltip();\n\n // Handle keywords/title toggle\n $('#toggle-search').click(function(){\n if ($(this).text() === '#'){\n $(this).text('T');\n\n $('.project-keyword').addClass('hide');\n $('#search-project-keywords-selected').text('');\n }else{\n $(this).text('#');\n\n $('.project-keyword').removeClass('hide');\n }\n\n // Relaunch search\n $(\"#content.container .liz-repository-project-item\").show();\n $(\"#content.container .liz-repository-title\").show();\n $(\"#search-project\").keyup();\n });\n\n var onlyUnique = function (value, index, self) {\n return self.indexOf(value) === index;\n }\n\n // Get unique keywords for visible projects\n var getVisibleProjectsKeywords = function() {\n var keywordList = [];\n var selector = '.liz-repository-project-item :visible .keywordList';\n\n $(selector).each(function () {\n if ($(this).text() !== '') {\n var keywordsSplitByComma = $(this).text().toUpperCase().split(', ');\n if (isGraph) {\n for (var index = 0; index < keywordsSplitByComma.length; index++) {\n keywordList = keywordList.concat(keywordsSplitByComma[index].split('/'));\n }\n }else{\n keywordList = keywordList.concat(keywordsSplitByComma);\n }\n }\n });\n\n return keywordList.filter(onlyUnique);\n }\n\n // For graph\n var getEdges = function () {\n var edgeList = [];\n\n $('.liz-repository-project-item :visible .keywordList').each(function () {\n if ($(this).text() !== '') {\n var keywordsSplitByComma = $(this).text().toUpperCase().split(', ');\n for (var index = 0; index < keywordsSplitByComma.length; index++) {\n var keywordsInGraph = keywordsSplitByComma[index].split('/');\n\n // Get edges\n for (var i = 0; i < keywordsInGraph.length - 1; i++) {\n edgeList.push([keywordsInGraph[i], keywordsInGraph[i + 1]]);\n }\n }\n }\n });\n return edgeList;\n }\n\n // Function to show only projects with selected keywords\n var filterProjectsBySelectedKeywords = function () {\n var selectedKeywords = getSelectedKeywords();\n\n if (selectedKeywords.length === 0) {\n $(\"#content.container .liz-repository-project-item\").show();\n $(\"#content.container .liz-repository-title\").show();\n } else {\n // Hide everything then show projects and titles corresponding to the selected keywords\n $(\"#content.container .liz-repository-project-item\").hide();\n $(\"#content.container .liz-repository-title\").hide();\n\n // Show project when its keywords match all keywords in selectedKeywords\n $('.keywordList').each(function () {\n var showProject = false;\n var keywordListSplitByComma = $(this).text().toUpperCase().split(', ');\n\n // Graph\n if (isGraph) {\n var path = selectedKeywords.join('/');\n for (var index = 0; index < keywordListSplitByComma.length; index++) {\n if (keywordListSplitByComma[index].indexOf(path) !== -1) {\n showProject = true;\n break;\n }\n }\n } else {\n showProject = selectedKeywords.every(function (currentValue) {\n return (keywordListSplitByComma.indexOf(currentValue) !== -1);\n });\n }\n\n if (showProject) {\n $(this).closest('.liz-repository-project-item').show();\n $(this).closest('.liz-repository-project-list').prev('.liz-repository-title').show();\n }\n });\n }\n }\n\n // Returns array of selected keywords\n var getSelectedKeywords = function () {\n var selectedKeywords = [];\n $('#search-project-keywords-selected .keyword-label').each(function () {\n selectedKeywords.push($(this).text().toUpperCase());\n });\n\n return selectedKeywords;\n }\n\n var unHighlightkeywords = function (){\n $('#search-project-result .project-keyword').each(function () {\n $(this).text($(this).text());\n });\n }\n\n // Display possible keywords to choose based on displayed projects and previous keywords selection\n var displayKeywordChoices = function () {\n var selectedKeywords = getSelectedKeywords();\n\n if (selectedKeywords.length === 0) {\n // Display all keywords\n $('#search-project-result .project-keyword').removeClass('hide');\n } else {\n // Hide all keywords\n $('#search-project-result .project-keyword').addClass('hide');\n\n var visibleProjectKeywords = getVisibleProjectsKeywords();\n\n for (var index = 0; index < visibleProjectKeywords.length; index++) {\n if (selectedKeywords.indexOf(visibleProjectKeywords[index]) === -1) {\n $('#search-project-result .project-keyword.hide').filter(function () {\n return ($(this).text().toUpperCase() === visibleProjectKeywords[index]);\n }).removeClass('hide');\n }\n }\n\n if (isGraph) {\n // Hide all keywords\n $('#search-project-result .project-keyword').addClass('hide');\n var visibleProjectEdges = getEdges();\n var selectedKeywords = getSelectedKeywords();\n var lastSelectedKeyword = selectedKeywords[selectedKeywords.length - 1];\n\n var hiddenKeywords = $('#search-project-result .project-keyword.hide');\n\n for (var index = 0; index < hiddenKeywords.length; index++) {\n var hiddenKeyword = hiddenKeywords.eq(index);\n\n for (var i = 0; i < visibleProjectEdges.length; i++) {\n if (visibleProjectEdges[i][0] === lastSelectedKeyword\n && visibleProjectEdges[i][1] === hiddenKeyword.text().toUpperCase()) {\n hiddenKeyword.removeClass('hide');\n }\n }\n }\n }\n }\n unHighlightkeywords();\n }\n\n // Search when user type in\n $(\"#search-project\").keyup(function () {\n // Scroll to projects\n $('html').animate({\n scrollTop: $(\"#anchor-top-projects\").offset().top - $('#header').height()\n }, 500);\n\n var searchedTerm = this.value.trim().toUpperCase();\n\n // Search by keywords\n if ($('#toggle-search').text() === '#') {\n displayKeywordChoices();\n if (searchedTerm === '' && getSelectedKeywords().length === 0) {\n $('#search-project-result .project-keyword').addClass('hide');\n } else {\n $('#search-project-result .project-keyword:visible').each(function () {\n var keyword = $(this).text().toUpperCase();\n // Set keyword visibility and bold on string part found\n if (keyword.indexOf(searchedTerm) !== -1) {\n var re = new RegExp(searchedTerm, \"g\");\n var keywordHighlighted = keyword.replace(re, '' + searchedTerm + '');\n $(this).html(keywordHighlighted.toLowerCase());\n } else {\n $(this).addClass('hide');\n }\n });\n }\n } else { // Search by title\n // If the search bar is empty, show everything\n if (searchedTerm === \"\") {\n $(\"#content.container .liz-repository-project-item\").show();\n $(\"#content.container .liz-repository-title\").show();\n }\n // Hide everything then show projects and titles corresponding to the search bar\n else {\n $(\"#content.container .liz-repository-project-item\").hide();\n $(\"#content.container .liz-repository-title\").hide();\n\n $(\"#content.container li .liz-project-title\").filter(function () {\n return -1 != $(this).text().toUpperCase().indexOf(searchedTerm);\n }).closest('.liz-repository-project-item').show();\n\n $(\"#content.container li .liz-project-title\").filter(function () {\n return -1 != $(this).text().toUpperCase().indexOf(searchedTerm);\n }).closest('.liz-repository-project-list').prev('.liz-repository-title').show();\n\n }\n }\n });\n\n // Init\n var isGraph = false;\n var uniqueKeywordList = getVisibleProjectsKeywords();\n\n // Activate keywords search if any\n if (uniqueKeywordList.length > 0){\n // If at least one keyword contains a slash, we toggle to graph search mode\n for (var index = 0; index < uniqueKeywordList.length; index++) {\n var keyword = uniqueKeywordList[index];\n if (keyword.indexOf('/') !== -1) {\n isGraph = true;\n // Get unique keywords in graph mode\n uniqueKeywordList = getVisibleProjectsKeywords();\n break;\n }\n }\n\n var keywordsHTML = '';\n for (var index = 0; index < uniqueKeywordList.length; index++) {\n keywordsHTML += '' + uniqueKeywordList[index].toLowerCase() + '';\n }\n $('#search-project-result').html(keywordsHTML);\n\n // Add click handler on project keywords\n $('.project-keyword').click(function () {\n // Move keyword in #search-project-keywords-selected\n $('#search-project-keywords-selected').append('' + $(this).text() + 'x');\n // Add close event\n $('#search-project-keywords-selected .remove-keyword').click(function () {\n $(this).parent().remove();\n filterProjectsBySelectedKeywords();\n if ($('#search-project-keywords-selected .remove-keyword').length === 0) {\n $('#search-project-result .project-keyword').addClass('hide');\n } else {\n displayKeywordChoices();\n }\n });\n // Hide projects then display projects with selected keyword\n filterProjectsBySelectedKeywords();\n // Empty search input\n $('#search-project').val('')\n // Display remaining keywords for visible projects not yet selected\n displayKeywordChoices();\n });\n }else{\n $('#toggle-search').hide().parent().removeClass('input-prepend');\n }\n}\n\nwindow.addEventListener('load', function () {\n searchProjects();\n});\n"],"names":["window","addEventListener","$","length","tooltip","click","this","text","addClass","removeClass","show","keyup","onlyUnique","value","index","self","indexOf","getVisibleProjectsKeywords","keywordList","each","keywordsSplitByComma","toUpperCase","split","isGraph","concat","filter","filterProjectsBySelectedKeywords","selectedKeywords","getSelectedKeywords","hide","showProject","keywordListSplitByComma","path","join","every","currentValue","closest","prev","push","displayKeywordChoices","edgeList","visibleProjectKeywords","visibleProjectEdges","keywordsInGraph","i","lastSelectedKeyword","hiddenKeywords","hiddenKeyword","eq","animate","scrollTop","offset","top","height","searchedTerm","trim","keyword","re","RegExp","keywordHighlighted","replace","html","toLowerCase","uniqueKeywordList","keywordsHTML","append","parent","remove","val","searchProjects"],"sourceRoot":""}