{"version":3,"sources":["common/components/favorites.js"],"names":["define","el","onlyFavoritsPagination","moduleElement","document","querySelector","moduleElementMobile","containerFavorits","initializeCheckFavorits","renderFavorits","initMenu","window","addEventListener","updateComponent","_event","data","_data","JSON","parse","indexInStorage","indexOfStorageFavorits","Id","arrData","getStorageFavorits","_removed","itemCheck","classList","remove","splice","push","localStorage","setItem","stringify","btnFavoritos","querySelectorAll","i","length","e","preventDefault","sendUpdateFavoritesEventData","getAttribute","sentEvent","createNewEvent","dispatchEvent","eventName","event","Event","createEvent","initEvent","containerFavoritsItens","_listaFavoritos","convertObjectToDom","add","_renderNumber","innerHTML","defaultPlaceHolderElement","setEvents","favorites","size","html","removeButtons","target","_obj","Imagem","ValorVenda","Title","Quartos","Banheiros","Garagem","Area","_index","_anunciosFavorits","t","getItem","favoriteIcon","iconCloses","tooglePanel","j","iconClose","_selfPanel","toggle"],"mappings":"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","sourcesContent":["define([\r\n 'common/util.element'\r\n], function (el) {\r\n return function (onlyFavoritsPagination = false) {\r\n var moduleElement = document.querySelector(\".favorites\");\r\n\r\n if (moduleElement != null) { \r\n var moduleElementMobile = moduleElement.querySelector(\".favorites-icon-mobile\");\r\n\r\n var containerFavorits = moduleElement.querySelector(\".favorites-second\");\r\n\r\n /* ==== initilização e alteração do conteudo de favoritos ===== */\r\n initializeCheckFavorits();\r\n\r\n if (onlyFavoritsPagination === true) {\r\n\r\n // inicializa a área de favoritos\r\n renderFavorits();\r\n\r\n } else {\r\n\r\n // inicializa a área de favoritos\r\n renderFavorits(); //Verificar\r\n\r\n // inicializa os eventos de toggle favoritos\r\n initMenu();\r\n\r\n // Evento e função que podem ser disparados por qualquer elemento da tela para adicionar um favorito.\r\n window.addEventListener(\"UpdateFavorits\", updateComponent);\r\n }\r\n }\r\n // função de callback do evento de atualização de favoritos\r\n // recebe um evento\r\n // let sentEvent = new window.Event(\"UpdateFavorits\");\r\n // sentEvent.data = { \"Id\": \"1\", \"Quartos\": \"2\", \"ValorVenda\": \"1000\", \"AdvertisementRealEstateType\": \"RealEstateType\", \"Banheiros\": \"2\", \"Garagem\": \"4\", \"Area\": \"800\" }\r\n // window.dispatchEvent(sentEvent);\r\n\r\n function updateComponent(_event) {\r\n if (_event.data) {\r\n let _data = JSON.parse(_event.data);\r\n let indexInStorage = indexOfStorageFavorits(_data.Id);\r\n\r\n let arrData = getStorageFavorits();\r\n\r\n if (indexInStorage !== -1) {\r\n\r\n var _removed = arrData[indexInStorage];\r\n if (_removed != null) {\r\n var itemCheck = document.querySelector(\"#f_\" + _removed.Id);\r\n if (itemCheck) {\r\n itemCheck.classList.remove(\"active\");\r\n }\r\n }\r\n arrData.splice(indexInStorage, 1);\r\n\r\n } else {\r\n if (arrData === null) arrData = [];\r\n arrData.push(_data);\r\n }\r\n\r\n window.localStorage.setItem(\"anuncios-favoritos\", JSON.stringify(arrData));\r\n renderFavorits();\r\n }\r\n }\r\n\r\n // procura por botões com a classe e adiciona neles o evento de adicionar ou remover itens dos favoritos\r\n // Ex. de como deve estar o código do link que favorita/retira o favorito.\r\n // \r\n function initializeCheckFavorits() {\r\n var btnFavoritos = document.querySelectorAll(\".btn-favoritar-call\");\r\n if (btnFavoritos) {\r\n for (var i = 0; i < btnFavoritos.length; i++) {\r\n\r\n btnFavoritos[i].addEventListener(\"click\", function (e) {\r\n e.preventDefault();\r\n sendUpdateFavoritesEventData(this.getAttribute(\"data-info\"));\r\n return false;\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function sendUpdateFavoritesEventData(data) {\r\n let sentEvent = createNewEvent(\"UpdateFavorits\");\r\n sentEvent.data = data;\r\n window.dispatchEvent(sentEvent);\r\n }\r\n\r\n // criar evento para cross\r\n function createNewEvent(eventName) {\r\n var event\r\n if (typeof (Event) === 'function') {\r\n event = new window.Event(eventName);\r\n } else {\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, true);\r\n }\r\n return event;\r\n }\r\n\r\n // renderiza o componente de favoritos e os corações de favoritar que estejam disponiveis\r\n function renderFavorits() {\r\n\r\n var containerFavoritsItens = \"\";\r\n var _listaFavoritos = getStorageFavorits();\r\n\r\n if (_listaFavoritos !== null) {\r\n for (let i = 0; i < _listaFavoritos.length; i++) {\r\n let _data = _listaFavoritos[i];\r\n containerFavoritsItens += convertObjectToDom(_data);\r\n var itemCheck = document.querySelector(\"#f_\" + _data.Id);\r\n if (itemCheck != null) {\r\n itemCheck.classList.add(\"btn-favoritar-call\");\r\n itemCheck.classList.add(\"active\");\r\n }\r\n }\r\n }\r\n\r\n _renderNumber(_listaFavoritos);\r\n\r\n if (containerFavoritsItens) {\r\n containerFavorits.innerHTML = containerFavoritsItens;\r\n } else {\r\n containerFavorits.innerHTML = defaultPlaceHolderElement();\r\n }\r\n setEvents();\r\n }\r\n\r\n function _renderNumber(favorites) {\r\n let size = favorites == null ? 0 : favorites.length;\r\n let html = size > 0 ? `(${size})` : '';\r\n moduleElementMobile.querySelector('.number').innerHTML = html;\r\n }\r\n\r\n function defaultPlaceHolderElement() {\r\n return `
\r\n
\r\n

Adicione aqui seus imóveis favoritos.
\r\n Basta clicar no que
\r\n automaticamente ele estará
\r\n disponível aqui.

\r\n
\r\n
`;\r\n }\r\n\r\n function setEvents() {\r\n const removeButtons = moduleElement.querySelectorAll(\".remove-favorite\");\r\n\r\n for (var i = 0; i < removeButtons.length; i++) {\r\n removeButtons[i].addEventListener('click', function (e) {\r\n sendUpdateFavoritesEventData(e.target.getAttribute(\"data-info\"))\r\n });\r\n }\r\n }\r\n\r\n // convert o objeto em nó fisico e retorna ele\r\n function convertObjectToDom(_obj) {\r\n\r\n return `\r\n
\r\n X\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n `;\r\n }\r\n\r\n // verifica o index do anúncio no array do local storage de favoritos\r\n function indexOfStorageFavorits(_index) {\r\n var _anunciosFavorits = getStorageFavorits();\r\n if (_anunciosFavorits != null) {\r\n for (var t = 0; t < _anunciosFavorits.length; t++) {\r\n if (_anunciosFavorits[t].Id === _index) {\r\n return t;\r\n }\r\n }\r\n\r\n }\r\n return -1;\r\n }\r\n\r\n // recupera um objeto array do local storage, caso não exista retorna null;\r\n function getStorageFavorits() {\r\n return window.localStorage.getItem(\"anuncios-favoritos\") ? JSON.parse(window.localStorage.getItem(\"anuncios-favoritos\")) : null;\r\n }\r\n /* ==== initilização e alteração do conteudo de favoritos ===== */\r\n\r\n function initMenu() {\r\n let favoriteIcon = moduleElement.querySelector(\".favorites-icon-mobile\");\r\n let iconCloses = moduleElement.querySelectorAll(\".icon-close\");\r\n\r\n /* Menu Favoritos */\r\n document.querySelector(\".show-favorites\").addEventListener(\"click\", function () {\r\n tooglePanel();\r\n });\r\n\r\n /* Ícone Coração */\r\n favoriteIcon.addEventListener(\"click\", function () {\r\n tooglePanel();\r\n });\r\n\r\n for (var j = 0; j < iconCloses.length; j++) {\r\n let iconClose = iconCloses[j];\r\n iconClose.addEventListener(\"click\", function () {\r\n tooglePanel();\r\n })\r\n\r\n }\r\n\r\n function tooglePanel() {\r\n var _selfPanel = document.querySelector(\".favorites\");\r\n _selfPanel.classList.toggle(\"favorites-mobile-full\");\r\n _selfPanel.classList.toggle(\"favorites-mobile-hide\");\r\n }\r\n }\r\n\r\n }\r\n})\r\n"],"file":"favorites.js"}