{"version":3,"sources":["../../../js/src/dropdown.js"],"names":[],"mappings":"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","file":"mekari-ui-dropdown.js","sourcesContent":["import $ from 'jquery'\n\n// Create js for init dropdown\nconst dropdownInit = () => {\n // find dropdown with pill class\n const $wrapperDropdownPill = $('.dropdown-with-pill');\n\n // find dropdown with select class\n const $wrapperDropdownSelect = $('.dropdown-with-select');\n\n // find dropdown with search class\n const $dropdownWithSearch = $('.dropdown-action--search');\n\n // Init first load. If $wrapperDropdownPill exist, display all selected option in pill\n $wrapperDropdownPill.each(function(){\n let $selectedOptions = $(this).find('.dropdown-selected-list');\n const $menuList = $(this).find('.dropdown-menu-list');\n const $selectNameHidden = $menuList.attr('data-select-name');\n const $arrayListSelected = $(this).find('.dropdown-menu .is-selected').map(function(){return $(this).attr(\"data-val\");}).get();\n if (!$selectedOptions.length) {\n $(this).append(``);\n $selectedOptions = $(this).find('.dropdown-selected-list');\n }\n\n // insert all selected options to pill\n for(let item of $arrayListSelected) {\n const $itemId = $(this).find(\".dropdown-item[data-val='\"+item+\"']\").attr('data-id');\n $selectedOptions.append(`${item} `);\n }\n\n // find all dropdown pill and set listener for delete\n const $pillList = $('.dropdown-with-pill .badge .ic');\n removePill($pillList);\n\n // listen to DomInserted in dropdown-menu-list\n $menuList.bind(\"DOMNodeInserted\",function(e){\n if (e.target !== $menuList[0]) {\n e.target.addEventListener('click', activateThisItem);\n }\n }); \n });\n\n // Init first load. If $wrapperDropdownSelect exist, display selected option & append input hidden\n $wrapperDropdownSelect.each(function(){\n const $menuList = $(this).find('.dropdown-menu-list');\n const $selectNameHidden = $menuList.attr('data-select-name');\n\n const $optionSelected = $(this).find('.dropdown-menu .is-selected');\n const $itemId = $optionSelected.attr('data-id');\n const $itemVal = $optionSelected.text();\n\n // display selected option & append input hidden\n if ($itemVal){\n $(this).find('.dropdown-toggle').html($itemVal);\n $(this).append(``);\n } else {\n $(this).append(``);\n }\n });\n\n // find all options\n const $dropdownPillItems = $('.dropdown-with-pill .dropdown-item');\n const $dropdownSelectItems = $('.dropdown-with-select .dropdown-item');\n\n // Add 'is-selected' in dropdown menu when option is selected\n $dropdownPillItems.click(activateThisItem);\n $dropdownSelectItems.click(activateThisItem);\n\n // Init search dropdown. If $dropdownWithSearch exist, listen when keydown\n $dropdownWithSearch.each(function(){\n const $inputSearch = $(this).find(\"input[type='text']\");\n const $dropdownMenu = $inputSearch.closest('.dropdown-menu');\n \n $inputSearch.keyup(function(e) {\n const $arrayListOptions = $dropdownMenu.find('.dropdown-menu-list .dropdown-item').not('.text-link');\n const $searchText = e.currentTarget.value.toLocaleLowerCase();\n $arrayListOptions.each(function() {\n if(!$(this).text().toLocaleLowerCase().includes($searchText)) {\n $(this).addClass('d-none');\n } else {\n $(this).removeClass('d-none');\n }\n });\n\n // find all option with hiden ('d-none') class\n const $hiddenOpt = $dropdownMenu.find('.dropdown-menu-list .dropdown-item.d-none').not('.text-link');\n const $notFound = $dropdownMenu.find('span.dropdown-not-found');\n if ($hiddenOpt.length === $arrayListOptions.length) {\n if ($notFound.length) {\n $notFound.removeClass('d-none');\n } else {\n $dropdownMenu.append(`No data found`);\n }\n } else {\n $notFound.addClass('d-none');\n }\n });\n });\n}\n\nconst removePill = (item) => {\n // remove pill and class is-selected in dropdown menu when button 'x' is clicked\n item.click(function(){\n const $badge = $(this).closest('.badge');\n const $val = $badge.attr('data-val');\n const $itemId = $badge.attr('data-id');\n $badge.closest('.dropdown-selected-list').find(\"input[value='\"+$itemId+\"']\").remove();\n $badge.closest('.dropdown-with-pill')\n .find(\".is-selected[data-val='\"+$val+\"']\")\n .removeClass('is-selected');\n $badge.remove();\n });\n}\n\nconst activateThisItem = () => {\n const $this = $(event.currentTarget);\n let $dropdownType;\n if ($this.closest('.dropdown').hasClass('dropdown-with-select')){\n $dropdownType = '.dropdown-with-select';\n } else if ($this.closest('.dropdown').hasClass('dropdown-with-pill')) {\n $dropdownType = '.dropdown-with-pill';\n }\n if (!$this.hasClass('dropdown-action')){\n const $wrapperDropdown = $this.closest($dropdownType);\n let $selectedOptions = $wrapperDropdown.find('.dropdown-selected-list');\n\n // remove selected class in all options\n if($dropdownType == '.dropdown-with-select'){\n $wrapperDropdown.find('.dropdown-item').removeClass('is-selected');\n }\n\n // add selected class\n $this.addClass('is-selected');\n const $itemId = $this.attr('data-id');\n const $selectNameHidden = $wrapperDropdown.find('.dropdown-menu-list').attr('data-select-name');\n\n if($dropdownType == '.dropdown-with-pill'){\n // adding pill\n const $val = $this.attr('data-val');\n $selectedOptions.append(`${$val} `);\n \n const $pill = $selectedOptions.find(`.badge[data-val='${$val}'] .ic`);\n removePill($pill);\n } else if($dropdownType == '.dropdown-with-select'){\n // adding selected value & input hidden\n $wrapperDropdown.find('.dropdown-toggle').addClass('selected').html($this.text());\n $selectedOptions.html(``);\n }\n };\n}\n\n$(document).ready(function () {\n dropdownInit();\n})\n\nexport default dropdownInit"]}