{"version":3,"sources":["webpack:///webpack/bootstrap 82a5075b492f9a2b1004","webpack:///external \"jQuery\"","webpack:///./scripts/main.js","webpack:///./scripts/util/Router.js","webpack:///./scripts/util/camelCase.js","webpack:///./scripts/routes/common.js","webpack:///./scripts/routes/home.js","webpack:///./scripts/routes/about.js","webpack:///./scripts/routes/templateProductList.js","webpack:///./scripts/routes/blog.js","webpack:///./scripts/routes/templateFavorite.js","webpack:///./scripts/routes/templateDestaque.js","webpack:///./scripts/routes/templateProductListSearch.js","webpack:///./styles/main.scss?46a3"],"names":["const","this","let"],"mappings":"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","file":"scripts/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/wp-content/themes/qrtl-decisao-imoveis/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 82a5075b492f9a2b1004","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0 1","// import external dependencies\nimport 'jquery';\n\n// Import everything from autoload\n\n\n// import local dependencies\nimport Router from './util/Router';\nimport common from './routes/common';\nimport home from './routes/home';\nimport aboutUs from './routes/about';\nimport pageTemplateTemplateProductList from './routes/templateProductList';\nimport blog from './routes/blog';\nimport pageTemplateTemplateFavorite from './routes/templateFavorite';\nimport pageTemplateTemplateDestaque from './routes/templateDestaque';\nimport RemoveSelect from './routes/removeSelect';\nimport pageTemplateTemplateProductListSearch from './routes/templateProductListSearch';\n\n/** Populate Router instance with DOM routes */\nconst routes = new Router({\n  // All pages\n  common,\n  // Home page\n  home,\n  // About Us page, note the change from about-us to aboutUs.\n  aboutUs,\n  // \n  pageTemplateTemplateProductList,\n  //\n  blog,\n  //\n  pageTemplateTemplateFavorite,\n  //\n  pageTemplateTemplateDestaque,\n  //\n  RemoveSelect,\n  //\n  pageTemplateTemplateProductListSearch,\n\n});\n\n// Load Events\njQuery(document).ready(() => routes.loadEvents());\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/main.js","import camelCase from './camelCase';\n\n/**\n * DOM-based Routing\n *\n * Based on {@link http://goo.gl/EUTi53|Markup-based Unobtrusive Comprehensive DOM-ready Execution} by Paul Irish\n *\n * The routing fires all common scripts, followed by the page specific scripts.\n * Add additional events for more control over timing e.g. a finalize event\n */\nclass Router {\n\n  /**\n   * Create a new Router\n   * @param {Object} routes\n   */\n  constructor(routes) {\n    this.routes = routes;\n  }\n\n  /**\n   * Fire Router events\n   * @param {string} route DOM-based route derived from body classes (`<body class=\"...\">`)\n   * @param {string} [event] Events on the route. By default, `init` and `finalize` events are called.\n   * @param {string} [arg] Any custom argument to be passed to the event.\n   */\n  fire(route, event = 'init', arg) {\n    document.dispatchEvent(new CustomEvent('routed', {\n      bubbles: true,\n      detail: {\n        route,\n        fn: event,\n      },\n    }));\n    \n    const fire = route !== '' && this.routes[route] && typeof this.routes[route][event] === 'function';\n    if (fire) {\n      this.routes[route][event](arg);\n    }\n  }\n\n  /**\n   * Automatically load and fire Router events\n   *\n   * Events are fired in the following order:\n   *  * common init\n   *  * page-specific init\n   *  * page-specific finalize\n   *  * common finalize\n   */\n  loadEvents() {\n    // Fire common init JS\n    this.fire('common');\n\n    // Fire page-specific init JS, and then finalize JS\n    document.body.className\n      .toLowerCase()\n      .replace(/-/g, '_')\n      .split(/\\s+/)\n      .map(camelCase)\n      .forEach((className) => {\n        this.fire(className);\n        this.fire(className, 'finalize');\n      });\n\n    // Fire common finalize JS\n    this.fire('common', 'finalize');\n  }\n}\n\nexport default Router;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/Router.js","/**\n * the most terrible camelizer on the internet, guaranteed!\n * @param {string} str String that isn't camel-case, e.g., CAMeL_CaSEiS-harD\n * @return {string} String converted to camel-case, e.g., camelCaseIsHard\n */\nexport default str => `${str.charAt(0).toLowerCase()}${str.replace(/[\\W_]/g, '|').split('|')\n  .map(part => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)\n  .join('')\n  .slice(1)}`;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/camelCase.js","export default {\n  init() {\n    \n    var domainHost = window.location.origin;\n    var currentPage = '';\n    var parametroDistrict = 'todos';\n    var parametroTipo = 'todos';\n\n    console.log('DOMAIN 5',domainHost);\n\n    if (window.location.pathname.includes('decisaoimoveis')) {\n      currentPage = (window.location.pathname).split('/')[2];\n    } else {\n      currentPage = (window.location.pathname).split('/')[1];\n    }\n\n    if (currentPage == 'encontre-um-imovel') { \n      currentPage = '';\n    }\n\n    // Definindo o campo finalidade do formulario de busca de imóvel\n    setFilterFinalidade();\n\n    // Definindo os campos de filtro do formulário de busca de imóvel\n    setFilterOptionsByPage(currentPage)\n\n    // Define e reinderizando os selects de filtro de bairros e tipos de imovies\n    function setFilterOptionsByPage(page=''){\n      // Filtros de páginas comuns\n      if(page == '' || page == 'busca'){\n        setFilterOptionsLocal(domainHost+'/bairros-compra.json', '#district-compra', 'Bairro');\n        setFilterOptionsLocal(domainHost+'/tipos-imoveis-compra.json', '#propertie_type_buy', 'Tipo imóvel');\n        setFilterOptionsLocal(domainHost+'/bairros-aluguel.json', '#district-aluguel', 'Bairro');\n        setFilterOptionsLocal(domainHost+'/tipos-imoveis-aluguel.json', '#propertie_type_rent', 'Tipo imóvel');\n      }\n      // Filtros página Compra\n      if(page == 'compra' || page == 'lancamentos'){\n        setFilterOptionsLocal(domainHost+'/bairros-compra.json', '#district', 'Bairro', setSelectedOptionsByRoute('bairro',page));\n        setFilterOptionsLocal(domainHost+'/tipos-imoveis-compra.json', '#propertie_type', 'Tipo imóvel', setSelectedOptionsByRoute('tipoImovel',page));\n      }\n      // Filtros página Aluguel\n      if(page == 'aluguel'){\n        setFilterOptionsLocal(domainHost+'/bairros-aluguel.json', '#district', 'Bairro', setSelectedOptionsByRoute('bairro',page));\n        setFilterOptionsLocal(domainHost+'/tipos-imoveis-aluguel.json', '#propertie_type', 'Tipo imóvel', setSelectedOptionsByRoute('tipoImovel',page));\n      }\n    }\n\n    // Define e rederiza o select de tipos de finalidade compra/aluguel\n    function setFilterFinalidade(){\n      var tipoNegocio = [\n        {label:'Compra', value:'compra'},\n        {label:'Aluguel', value:'aluguel'},\n      ]\n      VirtualSelect.init({ \n        ele: '#bussines_model',\n        options: tipoNegocio,\n        selectedValue: 'compra',\n        multiple: false, \n        search: false,\n        showDropboxAsPopup: false,\n      });\n    }\n\n    // Obtem os valores de bairros e tipos de imoveis e reinderiza os campos de fitro\n    function setFilterOptionsLocal(\n      url = '',\n      fieldId='#district-compra',\n      fieldLabel='Bairro',\n      selectedValue=[]\n    ){\n      fetch(url)\n        .then(response => {\n          // Verificar se a resposta da requisição foi bem-sucedida (status 200)\n          if (!response.ok) {\n            throw new Error(`Erro na requisição: ${response.statusText}`);\n          }\n          // Parse do JSON e retorno da promise\n          return response.json();\n        })\n        .then(response => {\n          // O JSON foi recebido com sucesso, faça o que precisar com os dados\n          let fieldOptions = [];\n          response.lista.forEach(function (item) {\n            fieldOptions.push({label: item.nome, value: toSlug(item.nome)});\n          })\n          // Renderizando o campo dropdown\n          VirtualSelect.init({ \n            ele: fieldId,\n            options: fieldOptions,\n            selectedValue: selectedValue,\n            placeholder: fieldLabel,\n            multiple: true, \n            search: true,\n            selectAllText: 'Selecionar todos',\n            optionsSelectedText: 'opções selecionadas',\n            optionSelectedText: 'opção selecionada',\n            searchPlaceholderText: 'Buscar...',\n            noOptionsText: 'Nenhum resultado',\n            noSearchResultsTex: 'Nenhum resultado',\n            allOptionsSelectedText: 'Todos',\n            showDropboxAsPopup: false,\n          });\n        })\n        .catch(error => {\n          // Lidar com erros durante a requisição\n          console.error('Erro durante a requisição:', error);\n        });\n    }\n\n    // Lidando com os filtros recebidos na URL para remarcar este itens nos campos de seleção\n    function setSelectedOptionsByRoute(field='bairro',page='compra'){\n      let result = []\n      if(page != ''){\n        const imovelUrlRouteParams = routeParamsSelect(window.location.pathname);\n        // Tipo imóvel selecionados - Segundo parametro da URL (Ex: compra/casa)\n        if(field == 'tipoImovel'){\n          if(imovelUrlRouteParams.length > 1){\n            if(imovelUrlRouteParams[1].includes('+')){\n              result = imovelUrlRouteParams[1].split('+');\n            }else{\n              result.push(imovelUrlRouteParams[1]);\n            }\n          }\n        }\n        // Bairro slecionados - Terceiro parametro da URL (Ex: compra/casa/funcionarios)\n        if(field == 'bairro'){\n          if(imovelUrlRouteParams.length > 2){\n            if(imovelUrlRouteParams[2].includes('+')){\n              result = imovelUrlRouteParams[2].split('+');\n            }else{\n              result.push(imovelUrlRouteParams[2]);\n            }\n          }\n        }\n      }\n      return result;\n    }\n    \n    // Montando os parametros de bairro para rota de busca\n    $('#district,#district-compra,#district-aluguel').on('change', function(){\n      parametroDistrict  = '';\n      $(this).val().forEach(district=>{\n        parametroDistrict += toSlug(district) + '+'\n      })\n      parametroDistrict = parametroDistrict.replace(/[+]+$/, '');\n      setSearchFormAction();\n    });\n\n    // Montando os parametros de tipo de imovel para rota de busca\n    $('#propertie_type,#propertie_type_buy,#propertie_type_rent').on('change', function(){\n      parametroTipo = '';\n      $(this).val().forEach(tipo=>{\n        parametroTipo += tipo + '+'\n      })\n      parametroTipo = parametroTipo.replace(/[+]+$/, '');\n      setSearchFormAction();\n    });\n\n    // Alterna entre os campos de compra ou aluguel\n    $('#bussines_model').on('change', function(){\n      let value = $(this).val();\n      if (value == 'compra') {\n        $('.district_compra').removeClass('disable').addClass('active');\n        $('.district_aluguel').removeClass('active').addClass('disable');\n        $('.propertie_type_buy').removeClass('disable').addClass('active');\n        $('.propertie_type_rent').removeClass('active').addClass('disable');\n      } else if (value == 'aluguel') {\n        $('.district_aluguel').removeClass('disable').addClass('active');\n        $('.district_compra').removeClass('active').addClass('disable');\n        $('.propertie_type_buy').removeClass('active').addClass('disable');\n        $('.propertie_type_rent').removeClass('disable').addClass('active');\n      }\n      setSearchFormAction()\n    });\n\n    // Monta e define o action do form de busca\n    function setSearchFormAction(){\n      let newAction = '';\n      if(!parametroTipo){parametroTipo = 'todos'}\n      if(!parametroDistrict){parametroDistrict = 'todos'}\n      if(parametroTipo || parametroDistrict) {\n        if($('#bussines_model').val()){\n          newAction = window.location.origin + '/' + $('#bussines_model').val() + '/' + parametroTipo + '/' + parametroDistrict + '/';\n        }else{\n          newAction = window.location.origin + '/' + currentPage + '/' + parametroTipo + '/' + parametroDistrict + '/';\n        }\n      }else{\n        newAction = $('#searchform').attr('action');\n      }\n      $('#searchform').attr('action',newAction);\n      console.log('ACTION FORM', newAction)\n      return newAction;\n    }\n\n    $(window).load(function () {\n\n      function setCookie(cname, cvalue, exdays) {\n        const d = new Date();\n        d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n        let expires = 'expires=' + d.toUTCString();\n        document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n      }\n\n      function getCookie(name) {\n        var nameEQ = name + '=';\n        var ca = document.cookie.split(';');\n        for (var i = 0; i < ca.length; i++) {\n          var c = ca[i];\n          while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n          if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n        }\n        return null;\n      }\n\n      var fav_cookie = getCookie('cookie-fav');\n\n      var favs = [];\n      if (fav_cookie !== null) {\n        var fav_cookie_data = fav_cookie.replace('[', '').replace(']', '');\n        favs = fav_cookie_data.split(',');\n      }\n\n      if ($('button.fav').length != 0) {\n        for (var itens in favs) {\n          $(favs[itens].replace('\"', '').replace('\"', '')).toggleClass('fav-selected');\n        }\n      }\n\n      $('.fav').on('click', function () {\n        $(this).toggleClass('fav-selected')\n        var index = favs.indexOf('#' + this.id);\n        if (index !== -1) {\n          // Valor encontrado no array, remover\n          favs.splice(index, 1);\n          $('.notification-remove').addClass('active');\n          $('.notification-add').removeClass('active');\n          setTimeout(function () {\n            $('.notification-remove').removeClass('active');\n          }, 5000);\n        } else {\n          // Valor não encontrado no array, adicionar\n          favs.push('#' + this.id);\n          $('.notification-remove').removeClass('active');\n          $('.notification-add').addClass('active');\n          setTimeout(function () {\n            $('.notification-add').removeClass('active');\n          }, 5000);\n        }\n        setCookie('cookie-fav', favs, 10);\n      })\n\n      $('#overlay').fadeOut();\n    });\n\n    $('.sidebar form').toggleClass('active-sidebar');\n    $('.slider-depoimento').slick({\n      infinite: true,\n      slidesToShow: 2,\n      slidesToScroll: 1,\n    });\n\n    $('.sidebar form input#code').on('input', function () {\n      var originalAction = $(this).closest('form').attr('data-original-action');\n      var currentAction = $(this).closest('form').attr('action');\n      var newValue = $(this).val().toLowerCase();\n      if (newValue !== '') {\n        var newAction = originalAction.replace(/compra|aluguel|lançamento/gi, 'busca');\n        $(this).closest('form').attr('action', newAction);\n      } else if (currentAction !== originalAction) {\n        $(this).closest('form').attr('action', originalAction);\n      }\n    });\n\n    $('.sidebar form').each(function () {\n      var originalAction = $(this).attr('action');\n      $(this).attr('data-original-action', originalAction);\n    });\n\n    $('.slider-item_single, .propertie-play').on('click tap', function () {\n      $('.slider_modal_init').slick('unslick');\n      $('#slider_modal').toggleClass('active');\n      $('.slider_modal_init').slick({\n        settings: {\n          arrows: true,\n        },\n        asNavFor: '.slider_single',\n        infinite: true,\n        centerMode: true,\n        variableWidth: true,\n        centerPadding: '60px',\n        slidesToShow: 1,\n      });\n\n      $('.slider_modal_init').slick('slickGoTo', $(this).attr('data-slick-index'));\n        \n      $('.slider_modal_init').on('swipe', function(){\n        $('.youtube-video')[0].contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n      });\n        \n      $('.slick-arrow, #close1').on('click', function(){\n        $('.youtube-video')[0].contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n      });\n    });\n\n    $('.slider-item_single').each(function(){\n      this.onclick = function() {}\n    });\n    \n    // JavaScript to be fired on the Product List\n    if ($(window).width() > 600) {\n      $('.slider_single').slick({\n        settings: {\n          arrows: true,\n        },\n        infinite: true,\n        adaptiveHeight: true,\n        asNavFor: '.slider_modal_init',\n        slidesToShow: 3,\n        slidesToScroll: 1,\n        responsive: [{\n          breakpoint: 480,\n          settings: {\n            slidesToShow: 1,\n          },\n        }],\n      });\n      $('.slider_modal_init').slick();\n    } else {\n      $('.slider_single').slick({\n        settings: {\n          arrows: true,\n        },\n        infinite: true,\n        adaptiveHeight: true,\n        slidesToShow: 3,\n        slidesToScroll: 1,\n        responsive: [{\n          breakpoint: 480,\n          settings: {\n            slidesToShow: 1,\n          },\n        }],\n      });\n      $('.slider_modal_init').slick();\n    }\n\n    function getUrlParameter(sParam) {\n      var sPageURL = decodeURIComponent(window.location.search.substring(1));\n      var array = []\n      var sURLVariables = sPageURL.split('&');\n      for (var i = 0; i < sURLVariables.length; i++) {\n        var sParameterName = sURLVariables[i].split('=');\n        if (sParameterName[0] == sParam) {\n          array.push(sParameterName[1]);\n        }\n      }\n      return array;\n    }\n\n    var cod = getUrlParameter('cod'); // Código \n\n    if (cod.length >= 1 && cod[0] !== '') {\n      var numItems = $('.list-item').length;\n      $('span.results').html(numItems + ' imóvel encontrado')\n    }\n\n    //sort select atual\n    const sort = getUrlParameter('order');\n    if (sort.length > 0) {\n      $('#sort').val(sort);\n    }\n\n\n  },\n  finalize() {\n    $('#bussines_model').on('change', function () {\n      var selected_value = $(this).val();\n      var url = window.location.href + selected_value;\n      $('#searchform').attr('action', url);\n    });\n\n    $('#valor-min').on('change', function () {\n      var selected_value = $(this).val();\n      if (selected_value != '0,00') {\n        $(this).attr('name', 'valor-min');\n      }\n    });\n\n    $('#valor-max').on('change', function () {\n      var selected_value = $(this).val();\n      if (selected_value != '0,00') {\n        $(this).attr('name', 'valor-max');\n      }\n    });\n\n\n\n    $('.display-code').on('click', function () {\n      $('form#codform').toggleClass('active');\n    });\n\n    $('#close1').on('click', function () {\n      $('#slider_modal').toggleClass('active');\n    });\n\n\n\n    $('#bussines_model').on('select2:select', function () {\n      var data = $(this).val();\n      if (data == 'compra') {\n        $('#compra').addClass('active');\n        $('#aluguel').removeClass('active')\n      } else if (data == 'aluguel') {\n        $('#aluguel').addClass('active');\n        $('#compra').removeClass('active')\n      }\n    });\n    // Sidebar last button\n    var quartosLength = $('.button-quartos').length;\n    $('label.quartos:last-child .button-quartos').html(quartosLength + '+')\n\n    var banheirosLength = $('.button-banheiros').length;\n    $('label.banheiros:last-child .button-banheiros').html(banheirosLength + '+')\n    var suitesLength = $('.button-suites').length;\n    $('label.suites:last-child .button-suites').html(suitesLength + '+')\n    var vagasLength = $('.button-vagas').length;\n    $('label.vagas:last-child .button-vagas').html(vagasLength + '+')\n    var elevadoresLength = $('.button-elevadores').length;\n    $('label.elevadores:last-child .button-elevadores').html(elevadoresLength + '+')\n\n\n\n    $('.quartos button').click(function () {\n      var $button = $(this);\n      var $radio = $button.siblings('input[type=\"radio\"]');\n\n      if ($button.hasClass('active')) {\n        $button.removeClass('active');\n        $radio.prop('checked', false);\n      } else {\n        $('.quartos button').removeClass('active'); // Remove a classe \"active\" de todos os botões\n        $('.quartos input[type=\"radio\"]').prop('checked', false); // Deseleciona todos os radio buttons\n        $button.addClass('active'); // Adiciona a classe \"active\" apenas ao botão atual\n        $radio.prop('checked', true); // Marca o radio button apenas na div atual\n      }\n    });\n\n    $('.suites button').click(function () {\n      var $button = $(this);\n      var $radio = $button.siblings('input[type=\"radio\"]');\n\n      if ($button.hasClass('active')) {\n        $button.removeClass('active');\n        $radio.prop('checked', false);\n      } else {\n        $('.suites button').removeClass('active'); // Remove a classe \"active\" de todos os botões\n        $('.suites input[type=\"radio\"]').prop('checked', false); // Deseleciona todos os radio buttons\n        $button.addClass('active'); // Adiciona a classe \"active\" apenas ao botão atual\n        $radio.prop('checked', true); // Marca o radio button apenas na div atual\n      }\n    });\n\n    $('.banheiros button').click(function () {\n      var $button = $(this);\n      var $radio = $button.siblings('input[type=\"radio\"]');\n\n      if ($button.hasClass('active')) {\n        $button.removeClass('active');\n        $radio.prop('checked', false);\n      } else {\n        $('.banheiros button').removeClass('active'); // Remove a classe \"active\" de todos os botões\n        $('.banheiros input[type=\"radio\"]').prop('checked', false); // Deseleciona todos os radio buttons\n        $button.addClass('active'); // Adiciona a classe \"active\" apenas ao botão atual\n        $radio.prop('checked', true); // Marca o radio button apenas na div atual\n      }\n    });\n\n    $('.vagas button').click(function () {\n      var $button = $(this);\n      var $radio = $button.siblings('input[type=\"radio\"]');\n\n      if ($button.hasClass('active')) {\n        $button.removeClass('active');\n        $radio.prop('checked', false);\n      } else {\n        $('.vagas button').removeClass('active');\n        $('.vagas input[type=\"radio\"]').prop('checked', false);\n        $button.addClass('active');\n        $radio.prop('checked', true);\n      }\n    });\n\n    $('.elevadores button').click(function () {\n      var $button = $(this);\n      var $radio = $button.siblings('input[type=\"radio\"]');\n\n      if ($button.hasClass('active')) {\n        $button.removeClass('active');\n        $radio.prop('checked', false);\n      } else {\n        $('.elevadores button').removeClass('active'); // Remove a classe \"active\" de todos os botões\n        $('.elevadores input[type=\"radio\"]').prop('checked', false); // Deseleciona todos os radio buttons\n        $button.addClass('active'); // Adiciona a classe \"active\" apenas ao botão atual\n        $radio.prop('checked', true); // Marca o radio button apenas na div atual\n      }\n    });\n\n\n    $('#valor-min').maskMoney({\n      thousands: '.',\n      decimal: ',',\n      allowZero: true,\n      suffix: '',\n    });\n    $('#valor-max').maskMoney({\n      thousands: '.',\n      decimal: ',',\n      allowZero: true,\n      suffix: '',\n    });\n\n    const queryString = window.location.search;\n    const urlParams = new URLSearchParams(queryString);\n    const currentPagination = urlParams.get('pagination')\n\n    if (currentPagination != null) {\n      $('button.pagination[value=' + currentPagination + ']').toggleClass('active');\n    } else {\n      $('button.pagination[value=1]').toggleClass('active');\n    }\n\n    $('button.pagination').on('click', function () {\n      const value = $(this).val();\n      const queryString = window.location.search;\n      const urlParams = new URLSearchParams(queryString);\n      const currentPagination = urlParams.get('pagination')\n\n\n      if (currentPagination != null) {\n        if (queryString != null) {\n          const finalQuery = queryString.replace('pagination=' + currentPagination, 'pagination=' + value);\n          window.location.href = finalQuery;\n        } else {\n          window.location.href = '?pagination=' + value;\n        }\n      } else {\n        if (queryString != '') {\n          window.location.href = queryString + '&pagination=' + value;\n        } else {\n          window.location.href = queryString + '?pagination=' + value;\n        }\n\n      }\n\n\n    });\n\n    $('.big_image').on('click', function () {\n      $(this).toggleClass('active');\n    });\n\n    // Função para aplicar o zoom in na imagem\n    $('.zoom-in').on('click', function () {\n      var currentSlide = document.querySelector('.slick-current'); // Obtém a div slick-current\n      var img = currentSlide.querySelector('img'); // Obtém a imagem dentro da div slick-current\n      var currentScale = parseFloat(img.style.transform.replace('scale(', '').replace(')', ''));\n      var newScale = currentScale + 0.2;\n      if (currentScale < 2.0) {\n        img.style.transform = 'scale(' + newScale + ')';\n      }\n    });\n\n    // Função para aplicar o zoom out na imagem\n    $('.zoom-out').on('click', function () {\n      var currentSlide = document.querySelector('.slick-current'); // Obtém a div slick-current\n      var img = currentSlide.querySelector('img'); // Obtém a imagem dentro da div slick-current\n      var currentScale = parseFloat(img.style.transform.replace('scale(', '').replace(')', ''));\n      var newScale = currentScale - 0.2;\n      if (currentScale > 1.0) {\n        img.style.transform = 'scale(' + newScale + ')';\n      }\n    });\n\n    // Exibe formulario de filtros de imoveis\n\n    $('.label #type').on('click', function () {\n      $(this).addClass('active');\n      $('.label #cod').removeClass('active');\n      $('.search-bar-container').css('display', 'flex');\n      $('form.cod').css('display', 'none');\n    });\n\n    // Exibe formulario de imóvel por códido\n\n    $('.label #cod').on('click', function () {\n      $(this).toggleClass('active');\n      $('.label #type').toggleClass('active');\n      $('.search-bar-container').css('display', 'none');\n      $('form.cod').css('display', 'flex');\n    })\n\n    $('.share-call').hover(function () {\n      $(this).children('.label-inner').toggleClass('active');\n    })\n\n    $('.fav').hover(function () {\n      $(this).children('.label-inner').toggleClass('active');\n    })\n  },\n};\n\n/**\n * Obtem um array com os parâmetros da URL criados com rewrite rules do WordPress\n * @param {*} url \n * @returns \n */\nconst routeParamsSelect = (url) => {\n  var params = url.split('/');\n  return params.filter((element) => element !== '');\n}\n\n// A partir do parametro recebido retorna uma string com ID ou IDs ,encontrados no jsonOptions, do parametro separado por ,\n// jsonOptions é um objeto que contem o nome e id dos itens, usados para distritos e tipo de imoveis\nconst getPropertiesSelect = (parametro, jsonOptions) => {\n  let proprerties = '';\n  // Caso o valor tenha o caractere + entao vamos converter em um array\n  if(parametro.includes('+')){\n    // Mais de um valor\n    parametro.split('+').forEach(parametro=>{\n      let district = jsonOptions.filter(item=>{\n        return item.nome === parametro\n      })\n      if(district.length > 0){\n        proprerties += district[0].codigo + ',';\n      }\n    })\n  }else{\n    // Somente um valor\n    let district = jsonOptions.filter(item=>{\n      return item.nome === parametro\n    })\n    if(district.length > 0){\n      proprerties = district[0].codigo;\n    }\n  }\n  return proprerties;\n}\n\nconst toSlug = (str) => {\n  return str\n  .replace(/^\\s+|\\s+$/g, '')\n  .replace('-', ' ')\n  .replace('/', '')\n  .replace(/ /g, '-')\n  .replace('--', '-')\n  .toLowerCase()\n  .normalize('NFD')\n  .replace(/[\\u0300-\\u036F]/g, '')\n  .replace(/[^a-z0-9-]/g, '');\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/common.js","export default {\n  init() {\n  },\n  finalize() {\n    // JavaScript to be fired on the home page, after the init JS\n  },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/home.js","export default {\n  init() {\n    // JavaScript to be fired on the about us page\n  },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/about.js","export default {\n  init() {\n\n    var domainHost = window.location.origin;\n    var currentPage = '';\n    if (window.location.pathname.includes('decisaoimoveis')) {\n      currentPage = (window.location.pathname).split('/')[2];\n    } else {\n      currentPage = (window.location.pathname).split('/')[1];\n    }\n    \n    if (currentPage == 'encontre-um-imovel') { \n      currentPage = ''; \n    }\n\n    function setCookie(cname, cvalue, exdays) {\n      const d = new Date();\n      d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n      let expires = 'expires=' + d.toUTCString();\n      document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n    }\n\n    function getCookie(name) {\n      var nameEQ = name + '=';\n      var ca = document.cookie.split(';');\n      for (var i = 0; i < ca.length; i++) {\n        var c = ca[i];\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n      }\n      return null;\n    }\n\n    /**\n     * Obtem um array com os parâmetros da URL criados com rewrite rules do WordPress\n     * @param {*} url \n     * @returns \n     */\n    function routeParams(url){\n      var params = url.split('/');\n      return params.filter((element) => element !== '');\n    }\n\n    /**\n     * Chamada Ajax para carregar a lista de imóveis\n     */\n    function callAjaxPropertiesWithCallback() {\n      const urlParams = new URLSearchParams(window.location.search);\n      const imovelUrlRouteParams = routeParams(window.location.pathname);\n\n      // Recuperando o objeto com os bairros e tipos de imoveis armazenados no Session Storage\n      const bairrosImoveis = JSON.parse(sessionStorage.getItem('bairrosImoveis')) ;\n      const tiposImoveis = JSON.parse(sessionStorage.getItem('tiposImoveis'));\n\n      // Código imóvel\n      const propertieCode = urlParams.get('cod');\n\n      // Tipo imóvel - Segundo parametro da URL (Ex: compra/casa)\n      let propertieTypes = ''\n      if(imovelUrlRouteParams.length > 1){\n        propertieTypes = getProperties(imovelUrlRouteParams[1],tiposImoveis)\n      }\n\n      // Bairro - Terceiro parametro da URL (Ex: compra/casa/funcionarios)\n      let propertieDistricts = ''\n      if(imovelUrlRouteParams.length > 2){\n        propertieDistricts = getProperties(imovelUrlRouteParams[2],bairrosImoveis)\n      }\n\n      // Elevadores\n      const propertieElevator = urlParams.get('elevadores');\n      // Banheiros\n      const propertieBath = urlParams.get('banheiros');\n      // Suites\n      const propertieSuit = urlParams.get('suites');\n      // Quartos\n      const propertieRoom = urlParams.get('quartos');\n      // Area max\n      const propertieAreaMax = urlParams.get('area-max');\n      // Area min\n      const propertieAreaMin = urlParams.get('area-min');\n      // Valor max\n      const propertieValueMax = urlParams.get('valor-max');\n      // Valor min\n      const propertieValueMin = urlParams.get('valor-min');\n      // Vagas garagem\n      const propertieVacancy = urlParams.get('vagas');\n      // Número página\n      const paginationNum = urlParams.get('pagination');\n      var currentPage = '';\n\n      if (window.location.pathname.includes('decisaoimoveis')) {\n        currentPage = (window.location.pathname).split('/')[2];\n      } else {\n        currentPage = (window.location.pathname).split('/')[1];\n      }\n\n      // Construir a URL do endpoint da API\n      var originUrl = window.location.origin;\n      var apiEndpoint = '/wp-content/themes/qrtl-decisao-imoveis/app/ajax-api';\n      if (window.location.href.includes('homologacao')) {\n        apiEndpoint = '/decisaoimoveis' + apiEndpoint;\n      }\n      var apiPath = '/propertiesList.php';\n      var ajaxUrl = originUrl + apiEndpoint + apiPath;\n\n      console.log('AJAX URL',ajaxUrl)\n\n      // Configurar a requisição AJAX\n      const xhttp = new XMLHttpRequest();\n      xhttp.onreadystatechange = function () {\n\n        if (this.readyState === 4 && this.status === 200) {\n          // Armazenar a resposta da requisição em uma variável\n\n          const resposta = this.responseText;\n\n          // Executar a função de callback com a resposta JSON como argumento\n          // Por exemplo, para exibir uma mensagem na tela:\n          $('.product-list').append(resposta);\n          $('.slider-image').slick({\n            settings: {\n              arrows: true,\n            },\n          });\n          var count = $('.list-item').length; // Conta o número de classes \"x\"\n          $('span.results').text(function (index, text) {\n            return text.replace('0', count); // Substitui o \"0\" pelo número de classes \"x\"\n          });\n          $('.share-call').on('click', function () {\n            $(this).siblings().toggleClass('active');\n            $(this).toggleClass('open');\n          })\n          $('.share-call').hover(function () {\n            $(this).children('.share-label').toggleClass('active');\n          })\n          $('.loader-wrap').addClass('hide');\n          var fav_cookie = getCookie('cookie-fav');\n\n          var favs = [];\n          if (fav_cookie !== null) {\n            var fav_cookie_data = fav_cookie.replace('[', '').replace(']', '');\n            favs = fav_cookie_data.split(',');\n          }\n\n          if ($('button.fav').length != 0) {\n            //you can loop through an array like this:\n\n            for (var itens in favs) {\n              $(favs[itens].replace('\"', '').replace('\"', '')).toggleClass('fav-selected');\n            }\n\n          }\n\n          $('.fav').on('click', function () {\n            $(this).toggleClass('fav-selected') // or alert($(this).attr('id'));\n            var index = favs.indexOf('#' + this.id);\n            if (index !== -1) {\n              // Valor encontrado no array, remover\n              favs.splice(index, 1);\n              $('.notification-remove').addClass('active');\n              $('.notification-add').removeClass('active');\n              setTimeout(function () {\n                $('.notification-remove').removeClass('active');\n              }, 5000);\n            } else {\n              // Valor não encontrado no array, adicionar\n              favs.push('#' + this.id);\n              $('.notification-remove').removeClass('active');\n              $('.notification-add').addClass('active');\n              setTimeout(function () {\n                $('.notification-add').removeClass('active');\n              }, 5000);\n            }\n            setCookie('cookie-fav', favs, 10);\n          })\n\n        } else if (this.readyState === 4 && this.status !== 200) {\n          // Callback de erro\n          console.error('4 Erro na requisição AJAX');\n        }\n      };\n\n      xhttp.open('POST', ajaxUrl, true);\n      xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n      // Enviar a requisição com o parâmetro 'propertie_code'\n      xhttp.send(`propertie_type=${propertieTypes}&propertie_district=${propertieDistricts}&propertie_vacancy=${propertieVacancy}&pagination_num=${paginationNum}&page=${currentPage}&propertie_code=${propertieCode}&propertie_elevator=${propertieElevator}&propertie_bath=${propertieBath}&propertie_suite=${propertieSuit}&propertie_room=${propertieRoom}&propertie_maxArea=${propertieAreaMax}&propertie_minArea=${propertieAreaMin}&propertie_maxValue=${propertieValueMax}&propertie_minValue=${propertieValueMin}`);\n      xhttp.addEventListener('readystatechange', function () {\n        if (this.readyState === 4) {\n          paginationLogic();\n          $('.results').html($('#imoQntd').text() + ' imóveis encontrados');\n        }\n      });\n    }\n\n    // Obtendo a lista de bairros e salvando no localStorage\n    function getBairrosFromJson(finalidade='compra') {\n      let urlJson = ''\n      if(finalidade === 'aluguel'){\n        urlJson = domainHost+'/bairros-aluguel.json'\n      }else{\n        urlJson = domainHost+'/bairros-compra.json'\n      }\n      \n      // Obtendo o resultado do JSON\n      fetch(urlJson)\n        .then(response => {\n          // Verificar se a resposta da requisição foi bem-sucedida (status 200)\n          if (!response.ok) {\n            throw new Error(`Erro na requisição: ${response.statusText}`);\n          }\n          // Parse do JSON e retorno da promise\n          return response.json();\n        })\n        .then(response => {\n          // O JSON foi recebido com sucesso, faça o que precisar com os dados\n          response.lista.forEach(function (item) {\n            item.nome = toSlug(item.nome);\n            item.cidade = toSlug(item.cidade);\n            item.estado = toSlug(item.estado);\n          })\n          // Salvando a lista de bairros no localStorage\n          console.log('BAIRROS', response.lista)\n          sessionStorage.removeItem('bairrosImoveis')\n          sessionStorage.setItem('bairrosImoveis', JSON.stringify(response.lista))\n\n          // Obtendo e salvando os tipos e imoveis no localStorage\n          getTiposImoveisFromJson(finalidade)\n        })\n        .catch(error => {\n          // Lidar com erros durante a requisição\n          console.error('Erro durante a requisição:', error);\n        });\n    }\n\n    // Obtendo a lista de tipos de imóveis e salvando no localStorage\n    function getTiposImoveisFromJson(finalidade='compra') {\n      let urlJson = ''\n      if(finalidade === 'aluguel'){\n        urlJson = domainHost+'/tipos-imoveis-aluguel.json'\n      }else{\n        urlJson = domainHost+'/tipos-imoveis-compra.json'\n      }\n      \n      // Obtendo o resultado do JSON\n      fetch(urlJson)\n        .then(response => {\n          // Verificar se a resposta da requisição foi bem-sucedida (status 200)\n          if (!response.ok) {\n            throw new Error(`Erro na requisição: ${response.statusText}`);\n          }\n          // Parse do JSON e retorno da promise\n          return response.json();\n        })\n        .then(response => {\n          // O JSON foi recebido com sucesso, faça o que precisar com os dados\n          response.lista.forEach(function (item) {\n            item.nome = toSlug(item.nome);\n          })\n          // Salvando a lista de tipos de imóveis no localStorage\n          console.log('TIPOS IMOVEIS', response.lista)\n          sessionStorage.removeItem('tiposImoveis')\n          sessionStorage.setItem('tiposImoveis', JSON.stringify(response.lista))\n\n          // Obtendo os imóveis depois que os bairros e os tipos foram obtidos e salvos no localStorage\n          callAjaxPropertiesWithCallback()\n        })\n        .catch(error => {\n          // Lidar com erros durante a requisição\n          console.error('Erro durante a requisição:', error);\n        });\n    }\n\n    function paginationLogic() {\n      const queryString = window.location.search;\n      const urlParams = new URLSearchParams(queryString);\n      const currentPagination = urlParams.get('pagination')\n\n      if (currentPagination != null) {\n        $('button.pagination[value=' + currentPagination + ']').toggleClass('active');\n      } else {\n        $('button.pagination[value=1]').toggleClass('active');\n      }\n\n      $('button.pagination').on('click', function () {\n        const value = $(this).val();\n        const queryString = window.location.search;\n        const urlParams = new URLSearchParams(queryString);\n        const currentPagination = urlParams.get('pagination')\n\n\n        if (currentPagination != null) {\n          if (queryString != null) {\n            const finalQuery = queryString.replace('pagination=' + currentPagination, 'pagination=' + value);\n            window.location.href = finalQuery;\n          } else {\n            window.location.href = '?pagination=' + value;\n          }\n        } else {\n          if (queryString != '') {\n            window.location.href = queryString + '&pagination=' + value;\n          } else {\n            window.location.href = queryString + '?pagination=' + value;\n          }\n\n        }\n      });\n    }\n\n    // Chamar a função assim que a página for carregada\n    window.onload = function () {\n      const imovelUrlRouteParams = routeParams(window.location.pathname);\n      if(imovelUrlRouteParams.length > 1){\n        // Rota Compra ou Aluguel com parametros de filtro\n        getBairrosFromJson(currentPage)\n      }else{\n        // Rota Compra ou Aluguel sem parametros\n        callAjaxPropertiesWithCallback();\n      }\n    };\n\n    // JavaScript to be fired on the Product List\n    $('.slider-image').slick({\n      settings: {\n        arrows: true,\n      },\n    });\n    $('#bussines_model_code').on('select2:select', function (e) {\n      var action = $('#searchform').attr('action');\n      var data = e.params.data.id.toLowerCase();\n      var replace_action = action.replace('compra', data).replace('busca', data).replace('aluguel', data).replace('lancamentos', data);\n      $('#searchform').attr('action', replace_action);\n    });\n\n    // Pagination Button \n    if ($('.list-item').length < 10) {\n      $('.pagination-overlay').css('display', 'none')\n    }\n\n    // select form\n    $('.select2').select2();\n\n\n    $('.filter-button').on('click', function () {\n      $('.sidebar').toggleClass('active-sidebar');\n      $(this).toggleClass('active-filter-button');\n    });\n\n    function updateURLParameter(url, param, paramVal) {\n      var newAdditionalURL = '';\n      var tempArray = url.split('?');\n      var baseURL = tempArray[0];\n      var additionalURL = tempArray[1];\n      var temp = '';\n      if (additionalURL) {\n        tempArray = additionalURL.split('&');\n        for (var i = 0; i < tempArray.length; i++) {\n          if (tempArray[i].split('=')[0] != param) {\n            newAdditionalURL += temp + tempArray[i];\n            temp = '&';\n          }\n        }\n      }\n\n      var rows_txt = temp + '' + param + '=' + paramVal;\n      return baseURL + '?' + newAdditionalURL + rows_txt;\n    }\n\n    $('#sort').on('change', function () {\n      var selected_value = $(this).val();\n\n      var url = updateURLParameter(window.location.href, 'order', selected_value);\n\n      $('#ordenation').attr('action', url);\n    });\n\n    $('#sort').on('change', function () {\n      $('.select-button').click();\n    })\n\n\n\n    function getUrlParameter(sParam) {\n      var sPageURL = decodeURIComponent(window.location.search.substring(1));\n      var array = []\n      var sURLVariables = sPageURL.split('&');\n      for (var i = 0; i < sURLVariables.length; i++) {\n        var sParameterName = sURLVariables[i].split('=');\n        if (sParameterName[0] == sParam) {\n          array.push(sParameterName[1]);\n        }\n      }\n      return array;\n    }\n\n    // Definição dos valores da busca\n\n    // Parametro que define as labels do select \n    const newFirstElement = '00';\n    \n    // Listagem de bairros ativos\n    var paramDistrict = getUrlParameter('district[]');\n    const newDistrictArray = [newFirstElement].concat(paramDistrict) // Adição do valor da label\n    \n    // listagem de tipos ativos\n    var paramType = getUrlParameter('propertie_type[]');\n    const newTypeArray = [newFirstElement].concat(paramType) // Adição do valor da label\n    var paramValueMin = getUrlParameter('valor-min'); // Valor minimo\n    var paramValueMax = getUrlParameter('valor-max'); // Valor maximo \n    var paramAreaMin = getUrlParameter('area-min'); // Area minima \n    var paramAreaMax = getUrlParameter('area-max'); // Area maxima\n    var paramRooms = getUrlParameter('quartos'); // Quartos \n    var paramMasterRooms = getUrlParameter('suites'); // Suites\n    var paramBath = getUrlParameter('banheiros'); // Banheiros\n    var paramGarage = getUrlParameter('vagas'); // Vagas  \n    var paramEle = getUrlParameter('elevadores'); // Elevadores  \n    var cod = getUrlParameter('cod'); // Código \n\n\n    // Inserção de valores no formulario de busca\n    // Bairro\n    if (paramDistrict.length != 0) {\n      $('#district').val(newDistrictArray);\n      $('#district').trigger('change');\n    }\n    //Tipo de imovel \n    if (paramType.length != 0) {\n      $('#propertie_type').val(newTypeArray);\n      $('#propertie_type').trigger('change');\n    }\n    // Valor minimo\n    if (paramValueMin.length != 0) {\n      $('#valor-min').val(paramValueMin[0]);\n    }\n    // Valor maximo \n    if (paramValueMax.length != 0) {\n      $('#valor-max').val(paramValueMax[0]);\n    }\n    // Area Minima \n    if (paramAreaMin.length != 0) {\n      $('#area-min').val(paramAreaMin[0]);\n    }\n    // Area Maxima \n    if (paramAreaMax.length != 0) {\n      $('#area-max').val(paramAreaMax[0]);\n    }\n    // Quartos \n    if (paramRooms.length != 0) {\n      const roomSanitize = paramRooms.toString().replace('-', '');\n      $('.number[value=\"quartos-' + roomSanitize + '\"]').toggleClass('active');\n      $('#quartos-' + roomSanitize).prop('checked', true);\n    }\n    // Suites \n    if (paramMasterRooms.length != 0) {\n      const masterRoomSanitize = paramMasterRooms.toString().replace('-', '');\n      $('.number[value=\"suites-' + masterRoomSanitize + '\"]').toggleClass('active');\n      $('#suites-' + masterRoomSanitize).prop('checked', true);\n    }\n    // Banheiros\n    if (paramBath.length != 0) {\n      const bathSanitize = paramBath.toString().replace('-', '');\n      $('.number[value=\"banheiros-' + bathSanitize + '\"]').toggleClass('active');\n      $('#banheiros-' + bathSanitize).prop('checked', true);\n    }\n    // Vagas\n    if (paramGarage.length != 0) {\n      const garageSanitize = paramGarage.toString().replace('-', '');\n      $('.number[value=\"vagas-' + garageSanitize + '\"]').toggleClass('active');\n      $('#vagas-' + garageSanitize).prop('checked', true);\n    }\n    // Elevadores\n    if (paramEle.length != 0) {\n      const eleSanitize = paramEle.toString().replace('-', '');\n      $('.number[value=\"elevadores-' + eleSanitize + '\"]').toggleClass('active');\n      $('#elevadores-' + eleSanitize).prop('checked', true);\n    }\n    // Codigo\n    if (cod.length != 0) {\n      $('#code').val(cod[0]);\n    }\n\n    $('.share-call').hover(function () {\n      $(this).children('.share-label').toggleClass('active');\n    })\n\n    $('.fav').hover(function () {\n      $(this).children('.fav-label').toggleClass('active');\n    })\n\n    $('.share-call').on('click', function () {\n      $(this).siblings().toggleClass('active');\n      $(this).toggleClass('open');\n    })\n\n    // Legenda para resultados da busca\n    //Variaveis para substituição de valores \n    const roomsText = paramRooms.toString().replace('-', '');\n    const garageText = paramGarage.toString().replace('-', '');\n    const masterRoomsText = paramMasterRooms.toString().replace('-', '');\n    const bathText = paramBath.toString().replace('-', '');\n\n    /* var districtsString = '';\n    const lastDistrict = paramDistrict.length - 1;\n    paramDistrict.forEach(function (value, index) {\n\n      const districtString = $('#district option[value=\"' + value + '\"]').text();\n      districtsString += (lastDistrict != index ? (districtString + ', ') : (districtString));\n    }); */\n\n    const resultsNumber = $('.filter-results .results').text();\n\n    const resultsText = resultsNumber + (paramRooms.length != 0 ? (' | ' + roomsText + ' Quartos ') : '') + (paramGarage.length != 0 ? (' | ' + garageText + ' Vagas ') : '') + (paramMasterRooms.length != 0 ? (' | ' + masterRoomsText + ' Suítes ') : '') + (paramBath.length != 0 ? (' | ' + bathText + ' Banheiros ') : '') /* + (districtsString != '' ? (' | ' + districtsString) : '') */ ;\n    $('.filter-results .results').text(resultsText);\n\n  },\n  finalize() {\n\n  },\n};\n\n// Formata uma string para o formato de slug Ex: \"Rio de Janeiro\" = \"rio-de-janeiro\"\nconst toSlug = (str) => {\n  return str\n  .replace(/^\\s+|\\s+$/g, '')\n  .replace('-', '')\n  .replace('/', '')\n  .replace(/ /g, '-')\n  .replace('--', '-')\n  .toLowerCase()\n  .normalize('NFD')\n  .replace(/[\\u0300-\\u036F]/g, '')\n  .replace(/[^a-z0-9-]/g, '');\n};\n\n// A partir do parametro recebido retorna uma string com ID ou IDs ,encontrados no jsonOptions, do parametro separado por ,\n// jsonOptions é um objeto que contem o nome e id dos itens, usados para distritos e tipo de imoveis\nconst getProperties = (parametro, jsonOptions) => {\n  let proprerties = '';\n  // Caso o valor tenha o caractere + entao vamos converter em um array\n  if(parametro.includes('+')){\n    // Mais de um valor\n    parametro.split('+').forEach(parametro=>{\n      let district = jsonOptions.filter(item=>{\n        return item.nome === parametro\n      })\n      if(district.length > 0){\n        proprerties += district[0].codigo + ',';\n      }\n    })\n  }else{\n    // Somente um valor\n    let district = jsonOptions.filter(item=>{\n      return item.nome === parametro\n    })\n    if(district.length > 0){\n      proprerties = district[0].codigo;\n    }\n  }\n  return proprerties;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/templateProductList.js","export default {\n  init() {\n    var code_id = $('#cod').text();\n    $('#code-input').val(code_id);\n    var bussines_model = $('#finalidade').text();\n    $('#bussines-model').val(bussines_model);\n    var properyName_input = $('#nomePropriedade').text();\n    $('#propertyName-input').val(properyName_input);\n\n    $('.share-call').on('click', function () {\n      $(this).siblings().toggleClass('active');\n      $(this).toggleClass('open');\n    })\n\n    console.log('productPage');\n  },\n  finalize() {\n    // JavaScript to be fired on the home page, after the init JS\n  },\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/blog.js","export default {\n  init() {\n\n    function setCookie(cname, cvalue, exdays) {\n      const d = new Date();\n      d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n      let expires = 'expires=' + d.toUTCString();\n      document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n    }\n\n    function getCookie(name) {\n      var nameEQ = name + '=';\n      var ca = document.cookie.split(';');\n      for (var i = 0; i < ca.length; i++) {\n        var c = ca[i];\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n      }\n      return null;\n    }\n\n    function callAjaxPropertiesWithCallback() {\n      // Construir a URL do endpoint da API\n      var originUrl = window.location.origin;\n      var apiEndpoint = '/wp-content/themes/qrtl-decisao-imoveis/app/ajax-api/propertiesSearch.php';\n      if (window.location.href.includes('homologacao')) {\n        apiEndpoint = '/decisaoimoveis' + apiEndpoint;\n      }\n      apiEndpoint = originUrl + apiEndpoint;\n\n      var fav_cookie = getCookie('cookie-fav');\n      var fav_array;\n      if (fav_cookie !== null) {\n        fav_array = fav_cookie.split(',');\n      } else {\n        fav_array = [];\n      }\n      fav_array.forEach(function (elem, i = 0) {\n        fav_array[i] = elem.split('#fav')[1]\n      })\n      console.log(fav_array)\n      // Configurar a requisição AJAX\n      const xhttp = new XMLHttpRequest();\n      xhttp.onreadystatechange = function () {\n        if (this.readyState === 4 && this.status === 200) {\n          // Armazenar a resposta da requisição em uma variável\n          const resposta = this.responseText;\n          console.log(resposta);\n          // Executar a função de callback com a resposta JSON como argumento\n          // Por exemplo, para exibir uma mensagem na tela:\n          $('.product-list').append(resposta);\n          $('.slider-image').slick({\n            settings: {\n              arrows: true,\n            },\n          });\n          var count = $('.list-item').length; // Conta o número de classes \"x\"\n          $('span.results').text(function (index, text) {\n            return text.replace('0', count); // Substitui o \"0\" pelo número de classes \"x\"\n          });\n          $('.share-call').on('click', function () {\n            $(this).siblings().toggleClass('active');\n            $(this).toggleClass('open');\n          })\n          $('.share-call').hover(function () {\n            $(this).children('.share-label').toggleClass('active');\n          })\n          $('.loader-wrap').addClass('hide');\n          var fav_cookie = getCookie('cookie-fav');\n\n          var favs = [];\n          if (fav_cookie !== null) {\n            var fav_cookie_data = fav_cookie.replace('[', '').replace(']', '');\n            favs = fav_cookie_data.split(',');\n          }\n\n\n          if ($('button.fav').length != 0) {\n            for (var itens in favs) {\n              $(favs[itens].replace('\"', '').replace('\"', '')).toggleClass('fav-selected');\n              console.log(favs[itens].replace('\"', '').replace('\"', ''))\n            }\n\n          }\n\n          $('.fav').on('click', function () {\n            console.log('favorito clicado', this.id);\n            $(this).toggleClass('fav-selected')\n            var index = favs.indexOf('#' + this.id);\n            if (index !== -1) {\n              // Valor encontrado no array, remover\n              favs.splice(index, 1);\n              $('.notification-remove').addClass('active');\n              $('.notification-add').removeClass('active');\n              setTimeout(function () {\n                $('.notification-remove').removeClass('active');\n              }, 5000);\n            } else {\n              // Valor não encontrado no array, adicionar\n              favs.push('#' + this.id);\n              $('.notification-remove').removeClass('active');\n              $('.notification-add').addClass('active');\n              setTimeout(function () {\n                $('.notification-add').removeClass('active');\n              }, 5000);\n            }\n            console.log('array fav', favs);\n\n\n            setCookie('cookie-fav', favs, 10);\n\n          })\n        } else if (this.readyState === 4 && this.status !== 200) {\n          // Callback de erro\n          console.log('3 Erro na requisição AJAX');\n        }\n      };\n      xhttp.open('POST', apiEndpoint, true);\n      xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n      // Enviar a requisição com o parâmetro 'propertie_code'\n      xhttp.send(`propertie_code=${fav_array}`);\n      xhttp.addEventListener('readystatechange', function () {\n        console.log(this.readyState);\n        if (this.readyState === 4) {\n          paginationLogic();\n          $('.results').html($('#imoQntd').text() + ' imóveis encontrados');\n        }\n      });\n    }\n\n    function paginationLogic() {\n      const queryString = window.location.search;\n      const urlParams = new URLSearchParams(queryString);\n      const currentPagination = urlParams.get('pagination')\n\n      if (currentPagination != null) {\n        $('button.pagination[value=' + currentPagination + ']').toggleClass('active');\n      } else {\n        $('button.pagination[value=1]').toggleClass('active');\n      }\n\n      $('button.pagination').on('click', function () {\n        const value = $(this).val();\n        const queryString = window.location.search;\n        const urlParams = new URLSearchParams(queryString);\n        const currentPagination = urlParams.get('pagination')\n\n\n        if (currentPagination != null) {\n          if (queryString != null) {\n            const finalQuery = queryString.replace('pagination=' + currentPagination, 'pagination=' + value);\n            window.location.href = finalQuery;\n          } else {\n            window.location.href = '?pagination=' + value;\n          }\n        } else {\n          if (queryString != '') {\n            window.location.href = queryString + '&pagination=' + value;\n          } else {\n            window.location.href = queryString + '?pagination=' + value;\n          }\n\n        }\n\n\n      });\n    }\n\n    // Chamar a função assim que a página for carregada\n    window.onload = function () {\n      callAjaxPropertiesWithCallback();\n    };\n    // JavaScript to be fired on the Product List\n    $('.slider-image').slick({\n      settings: {\n        arrows: true,\n      },\n    });\n    console.log('passou da função slick');\n    $('#bussines_model_code').on('select2:select', function (e) {\n      var action = $('#searchform').attr('action');\n      var data = e.params.data.id.toLowerCase();\n      console.log(data);\n      var replace_action = action.replace('compra', data).replace('busca', data).replace('aluguel', data).replace('lancamentos', data);\n      console.log(replace_action);\n      $('#searchform').attr('action', replace_action);\n    });\n\n    // Pagination Button \n    if ($('.list-item').length < 10) {\n      $('.pagination-overlay').css('display', 'none')\n    }\n\n    // select form\n    $('.select2').select2();\n\n\n    $('.filter-button').on('click', function () {\n      $('.sidebar').toggleClass('active-sidebar');\n      $(this).toggleClass('active-filter-button');\n    });\n\n    function updateURLParameter(url, param, paramVal) {\n      var newAdditionalURL = '';\n      var tempArray = url.split('?');\n      var baseURL = tempArray[0];\n      var additionalURL = tempArray[1];\n      var temp = '';\n      if (additionalURL) {\n        tempArray = additionalURL.split('&');\n        for (var i = 0; i < tempArray.length; i++) {\n          if (tempArray[i].split('=')[0] != param) {\n            newAdditionalURL += temp + tempArray[i];\n            temp = '&';\n          }\n        }\n      }\n\n      var rows_txt = temp + '' + param + '=' + paramVal;\n      return baseURL + '?' + newAdditionalURL + rows_txt;\n    }\n\n    $('#sort').on('change', function () {\n      var selected_value = $(this).val();\n\n      var url = updateURLParameter(window.location.href, 'order', selected_value);\n\n      $('#ordenation').attr('action', url);\n    });\n\n    $('#sort').on('change', function () {\n      $('.select-button').click();\n    })\n\n\n\n    function getUrlParameter(sParam) {\n      var sPageURL = decodeURIComponent(window.location.search.substring(1));\n      var array = []\n      var sURLVariables = sPageURL.split('&');\n      for (var i = 0; i < sURLVariables.length; i++) {\n        var sParameterName = sURLVariables[i].split('=');\n        if (sParameterName[0] == sParam) {\n          array.push(sParameterName[1]);\n        }\n      }\n      return array;\n    }\n\n    // Definição dos valores da busca\n\n    // Parametro que define as labels do select \n    const newFirstElement = '00';\n    // Listagem de bairros ativos\n    var paramDistrict = getUrlParameter('district[]');\n    const newDistrictArray = [newFirstElement].concat(paramDistrict) // Adição do valor da label\n    // listagem de tipos ativos\n    var paramType = getUrlParameter('propertie_type[]');\n    const newTypeArray = [newFirstElement].concat(paramType) // Adição do valor da label\n    var paramValueMin = getUrlParameter('valor-min'); // Valor minimo\n    var paramValueMax = getUrlParameter('valor-max'); // Valor maximo \n    var paramAreaMin = getUrlParameter('area-min'); // Area minima \n    var paramAreaMax = getUrlParameter('area-max'); // Area maxima\n    var paramRooms = getUrlParameter('quartos'); // Quartos \n    var paramMasterRooms = getUrlParameter('suites'); // Suites\n    var paramBath = getUrlParameter('banheiros'); // Banheiros\n    var paramGarage = getUrlParameter('vagas'); // Vagas  \n    var cod = getUrlParameter('cod'); // Código \n\n\n    // Inserção de valores no formulario de busca\n    // Bairro\n    if (paramDistrict.length != 0) {\n      $('#district').val(newDistrictArray);\n      $('#district').trigger('change');\n    }\n    //Tipo de imovel \n    if (paramType.length != 0) {\n      $('#propertie_type').val(newTypeArray);\n      $('#propertie_type').trigger('change');\n    }\n    // Valor minimo\n    if (paramValueMin.length != 0) {\n      $('#valor-min').val(paramValueMin[0]);\n    }\n    // Valor maximo \n    if (paramValueMax.length != 0) {\n      $('#valor-max').val(paramValueMax[0]);\n    }\n    // Area Minima \n    if (paramAreaMin.length != 0) {\n      $('#area-min').val(paramAreaMin[0]);\n    }\n    // Area Maxima \n    if (paramAreaMax.length != 0) {\n      $('#area-max').val(paramAreaMax[0]);\n    }\n    // Quartos \n    if (paramRooms.length != 0) {\n      const roomSanitize = paramRooms.toString().replace('-', '');\n      $('.number[value=\"quartos-' + roomSanitize + '\"]').toggleClass('active');\n      $('#quartos-' + roomSanitize).prop('checked', true);\n    }\n    // Suites \n    if (paramMasterRooms.length != 0) {\n      const masterRoomSanitize = paramMasterRooms.toString().replace('-', '');\n      $('.number[value=\"suites-' + masterRoomSanitize + '\"]').toggleClass('active');\n      $('#suites-' + masterRoomSanitize).prop('checked', true);\n    }\n    // Banheiros\n    if (paramBath.length != 0) {\n      const bathSanitize = paramBath.toString().replace('-', '');\n      $('.number[value=\"banheiros-' + bathSanitize + '\"]').toggleClass('active');\n      $('#banheiros-' + bathSanitize).prop('checked', true);\n    }\n    // Vagas\n    if (paramGarage.length != 0) {\n      const garageSanitize = paramGarage.toString().replace('-', '');\n      $('.number[value=\"vagas-' + garageSanitize + '\"]').toggleClass('active');\n      $('#vagas-' + garageSanitize).prop('checked', true);\n    }\n    // Codigo\n    if (cod.length != 0) {\n      $('#code').val(cod[0]);\n    }\n\n    $('.share-call').hover(function () {\n      $(this).children('.share-label').toggleClass('active');\n    })\n\n    $('.fav').hover(function () {\n      $(this).children('.fav-label').toggleClass('active');\n    })\n\n    $('.share-call').on('click', function () {\n      $(this).siblings().toggleClass('active');\n      $(this).toggleClass('open');\n    })\n\n    // Legenda para resultados da busca\n    //Variaveis para substituição de valores \n    const roomsText = paramRooms.toString().replace('-', '');\n    const garageText = paramGarage.toString().replace('-', '');\n    const masterRoomsText = paramMasterRooms.toString().replace('-', '');\n    const bathText = paramBath.toString().replace('-', '');\n\n\n    /* var districtsString = '';\n    const lastDistrict = paramDistrict.length - 1;\n    paramDistrict.forEach(function (value, index) {\n\n      const districtString = $('#district option[value=\"' + value + '\"]').text();\n      districtsString += (lastDistrict != index ? (districtString + ', ') : (districtString));\n    }); */\n\n\n    const resultsNumber = $('.filter-results .results').text();\n\n    const resultsText = resultsNumber + (paramRooms.length != 0 ? (' | ' + roomsText + ' Quartos ') : '') + (paramGarage.length != 0 ? (' | ' + garageText + ' Vagas ') : '') + (paramMasterRooms.length != 0 ? (' | ' + masterRoomsText + ' Suítes ') : '') + (paramBath.length != 0 ? (' | ' + bathText + ' Banheiros ') : '') /* + (districtsString != '' ? (' | ' + districtsString) : '') */ ;\n    $('.filter-results .results').text(resultsText);\n\n    console.log('productPage');\n  },\n  finalize() {\n\n  },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/templateFavorite.js","export default {\n  init() {\n\n    function setCookie(cname, cvalue, exdays) {\n      const d = new Date();\n      d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n      let expires = 'expires=' + d.toUTCString();\n      document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n    }\n\n    function getCookie(name) {\n      var nameEQ = name + '=';\n      var ca = document.cookie.split(';');\n      for (var i = 0; i < ca.length; i++) {\n        var c = ca[i];\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n      }\n      return null;\n    }\n\n    function callAjaxPropertiesWithCallback() {\n      // Construir a URL do endpoint da API\n      var apiEndpoint = '/wp-content/themes/qrtl-decisao-imoveis/app/ajax-api/propertiesSearch.php/';\n\n      if (window.location.href.includes('homologacao')) {\n        apiEndpoint = '/decisaoimoveis' + apiEndpoint;\n      }\n\n      // Configurar a requisição AJAX\n      const xhttp = new XMLHttpRequest();\n      xhttp.onreadystatechange = function () {\n        if (this.readyState === 4 && this.status === 200) {\n          // Armazenar a resposta da requisição em uma variável\n          const resposta = this.responseText;\n          console.log(resposta);\n          // Executar a função de callback com a resposta JSON como argumento\n          // Por exemplo, para exibir uma mensagem na tela:\n          $('.product-list').append(resposta);\n          $('.slider-image').slick({\n            settings: {\n              arrows: true,\n            },\n          });\n          var count = $('.list-item').length; // Conta o número de classes \"x\"\n          $('span.results').text(function (index, text) {\n            return text.replace('0', count); // Substitui o \"0\" pelo número de classes \"x\"\n          });\n          $('.share-call').on('click', function () {\n            $(this).siblings().toggleClass('active');\n            $(this).toggleClass('open');\n          })\n          $('.share-call').hover(function () {\n            $(this).children('.share-label').toggleClass('active');\n          })\n          $('.loader-wrap').addClass('hide');\n          var fav_cookie = getCookie('cookie-fav');\n\n          var favs = [];\n          if (fav_cookie !== null) {\n            var fav_cookie_data = fav_cookie.replace('[', '').replace(']', '');\n            favs = fav_cookie_data.split(',');\n          }\n\n\n          if ($('button.fav').length != 0) {\n            for (var itens in favs) {\n              $(favs[itens].replace('\"', '').replace('\"', '')).toggleClass('fav-selected');\n              console.log(favs[itens].replace('\"', '').replace('\"', ''))\n            }\n\n          }\n\n          $('.fav').on('click', function () {\n            console.log('favorito clicado', this.id);\n            $(this).toggleClass('fav-selected')\n            var index = favs.indexOf('#' + this.id);\n            if (index !== -1) {\n              // Valor encontrado no array, remover\n              favs.splice(index, 1);\n              $('.notification-remove').addClass('active');\n              $('.notification-add').removeClass('active');\n              setTimeout(function () {\n                $('.notification-remove').removeClass('active');\n              }, 5000);\n            } else {\n              // Valor não encontrado no array, adicionar\n              favs.push('#' + this.id);\n              $('.notification-remove').removeClass('active');\n              $('.notification-add').addClass('active');\n              setTimeout(function () {\n                $('.notification-add').removeClass('active');\n              }, 5000);\n            }\n            console.log('array fav', favs);\n\n\n            setCookie('cookie-fav', favs, 10);\n\n          })\n        } else if (this.readyState === 4 && this.status !== 200) {\n          // Callback de erro\n          console.log('2 Erro na requisição AJAX');\n        }\n      };\n      xhttp.open('POST', apiEndpoint, true);\n      xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n      xhttp.send('feature=3');\n      xhttp.addEventListener('readystatechange', function () {\n        console.log(this.readyState);\n        if (this.readyState === 4) {\n          paginationLogic();\n          $('.results').html($('#imoQntd').text() + ' imóveis encontrados');\n        }\n      });\n    }\n\n    function paginationLogic() {\n      const queryString = window.location.search;\n      const urlParams = new URLSearchParams(queryString);\n      const currentPagination = urlParams.get('pagination')\n\n      if (currentPagination != null) {\n        $('button.pagination[value=' + currentPagination + ']').toggleClass('active');\n      } else {\n        $('button.pagination[value=1]').toggleClass('active');\n      }\n\n      $('button.pagination').on('click', function () {\n        const value = $(this).val();\n        const queryString = window.location.search;\n        const urlParams = new URLSearchParams(queryString);\n        const currentPagination = urlParams.get('pagination')\n\n\n        if (currentPagination != null) {\n          if (queryString != null) {\n            const finalQuery = queryString.replace('pagination=' + currentPagination, 'pagination=' + value);\n            window.location.href = finalQuery;\n          } else {\n            window.location.href = '?pagination=' + value;\n          }\n        } else {\n          if (queryString != '') {\n            window.location.href = queryString + '&pagination=' + value;\n          } else {\n            window.location.href = queryString + '?pagination=' + value;\n          }\n\n        }\n\n\n      });\n    }\n\n    // Chamar a função assim que a página for carregada\n    window.onload = function () {\n      callAjaxPropertiesWithCallback();\n    };\n    // JavaScript to be fired on the Product List\n    $('.slider-image').slick({\n      settings: {\n        arrows: true,\n      },\n    });\n    console.log('passou da função slick');\n    $('#bussines_model_code').on('select2:select', function (e) {\n      var action = $('#searchform').attr('action');\n      var data = e.params.data.id.toLowerCase();\n      console.log(data);\n      var replace_action = action.replace('compra', data).replace('busca', data).replace('aluguel', data).replace('lancamentos', data);\n      console.log(replace_action);\n      $('#searchform').attr('action', replace_action);\n    });\n\n    // Pagination Button \n    if ($('.list-item').length < 10) {\n      $('.pagination-overlay').css('display', 'none')\n    }\n\n    // select form\n    $('.select2').select2();\n\n\n    $('.filter-button').on('click', function () {\n      $('.sidebar').toggleClass('active-sidebar');\n      $(this).toggleClass('active-filter-button');\n    });\n\n    function updateURLParameter(url, param, paramVal) {\n      var newAdditionalURL = '';\n      var tempArray = url.split('?');\n      var baseURL = tempArray[0];\n      var additionalURL = tempArray[1];\n      var temp = '';\n      if (additionalURL) {\n        tempArray = additionalURL.split('&');\n        for (var i = 0; i < tempArray.length; i++) {\n          if (tempArray[i].split('=')[0] != param) {\n            newAdditionalURL += temp + tempArray[i];\n            temp = '&';\n          }\n        }\n      }\n\n      var rows_txt = temp + '' + param + '=' + paramVal;\n      return baseURL + '?' + newAdditionalURL + rows_txt;\n    }\n\n    $('#sort').on('change', function () {\n      var selected_value = $(this).val();\n\n      var url = updateURLParameter(window.location.href, 'order', selected_value);\n\n      $('#ordenation').attr('action', url);\n    });\n\n    $('#sort').on('change', function () {\n      $('.select-button').click();\n    })\n\n\n\n    function getUrlParameter(sParam) {\n      var sPageURL = decodeURIComponent(window.location.search.substring(1));\n      var array = []\n      var sURLVariables = sPageURL.split('&');\n      for (var i = 0; i < sURLVariables.length; i++) {\n        var sParameterName = sURLVariables[i].split('=');\n        if (sParameterName[0] == sParam) {\n          array.push(sParameterName[1]);\n        }\n      }\n      return array;\n    }\n\n    // Definição dos valores da busca\n\n    // Parametro que define as labels do select \n    const newFirstElement = '00';\n    // Listagem de bairros ativos\n    var paramDistrict = getUrlParameter('district[]');\n    const newDistrictArray = [newFirstElement].concat(paramDistrict) // Adição do valor da label\n    // listagem de tipos ativos\n    var paramType = getUrlParameter('propertie_type[]');\n    const newTypeArray = [newFirstElement].concat(paramType) // Adição do valor da label\n    var paramValueMin = getUrlParameter('valor-min'); // Valor minimo\n    var paramValueMax = getUrlParameter('valor-max'); // Valor maximo \n    var paramAreaMin = getUrlParameter('area-min'); // Area minima \n    var paramAreaMax = getUrlParameter('area-max'); // Area maxima\n    var paramRooms = getUrlParameter('quartos'); // Quartos \n    var paramMasterRooms = getUrlParameter('suites'); // Suites\n    var paramBath = getUrlParameter('banheiros'); // Banheiros\n    var paramGarage = getUrlParameter('vagas'); // Vagas  \n    var cod = getUrlParameter('cod'); // Código \n\n\n    // Inserção de valores no formulario de busca\n    // Bairro\n    if (paramDistrict.length != 0) {\n      $('#district').val(newDistrictArray);\n      $('#district').trigger('change');\n    }\n    //Tipo de imovel \n    if (paramType.length != 0) {\n      $('#propertie_type').val(newTypeArray);\n      $('#propertie_type').trigger('change');\n    }\n    // Valor minimo\n    if (paramValueMin.length != 0) {\n      $('#valor-min').val(paramValueMin[0]);\n    }\n    // Valor maximo \n    if (paramValueMax.length != 0) {\n      $('#valor-max').val(paramValueMax[0]);\n    }\n    // Area Minima \n    if (paramAreaMin.length != 0) {\n      $('#area-min').val(paramAreaMin[0]);\n    }\n    // Area Maxima \n    if (paramAreaMax.length != 0) {\n      $('#area-max').val(paramAreaMax[0]);\n    }\n    // Quartos \n    if (paramRooms.length != 0) {\n      const roomSanitize = paramRooms.toString().replace('-', '');\n      $('.number[value=\"quartos-' + roomSanitize + '\"]').toggleClass('active');\n      $('#quartos-' + roomSanitize).prop('checked', true);\n    }\n    // Suites \n    if (paramMasterRooms.length != 0) {\n      const masterRoomSanitize = paramMasterRooms.toString().replace('-', '');\n      $('.number[value=\"suites-' + masterRoomSanitize + '\"]').toggleClass('active');\n      $('#suites-' + masterRoomSanitize).prop('checked', true);\n    }\n    // Banheiros\n    if (paramBath.length != 0) {\n      const bathSanitize = paramBath.toString().replace('-', '');\n      $('.number[value=\"banheiros-' + bathSanitize + '\"]').toggleClass('active');\n      $('#banheiros-' + bathSanitize).prop('checked', true);\n    }\n    // Vagas\n    if (paramGarage.length != 0) {\n      const garageSanitize = paramGarage.toString().replace('-', '');\n      $('.number[value=\"vagas-' + garageSanitize + '\"]').toggleClass('active');\n      $('#vagas-' + garageSanitize).prop('checked', true);\n    }\n    // Codigo\n    if (cod.length != 0) {\n      $('#code').val(cod[0]);\n    }\n\n    $('.share-call').hover(function () {\n      $(this).children('.share-label').toggleClass('active');\n    })\n\n    $('.fav').hover(function () {\n      $(this).children('.fav-label').toggleClass('active');\n    })\n\n    $('.share-call').on('click', function () {\n      $(this).siblings().toggleClass('active');\n      $(this).toggleClass('open');\n    })\n\n    // Legenda para resultados da busca\n    //Variaveis para substituição de valores \n    const roomsText = paramRooms.toString().replace('-', '');\n    const garageText = paramGarage.toString().replace('-', '');\n    const masterRoomsText = paramMasterRooms.toString().replace('-', '');\n    const bathText = paramBath.toString().replace('-', '');\n\n\n    /* var districtsString = '';\n    const lastDistrict = paramDistrict.length - 1;\n    paramDistrict.forEach(function (value, index) {\n\n      const districtString = $('#district option[value=\"' + value + '\"]').text();\n      districtsString += (lastDistrict != index ? (districtString + ', ') : (districtString));\n    }); */\n\n\n    const resultsNumber = $('.filter-results .results').text();\n\n    const resultsText = resultsNumber + (paramRooms.length != 0 ? (' | ' + roomsText + ' Quartos ') : '') + (paramGarage.length != 0 ? (' | ' + garageText + ' Vagas ') : '') + (paramMasterRooms.length != 0 ? (' | ' + masterRoomsText + ' Suítes ') : '') + (paramBath.length != 0 ? (' | ' + bathText + ' Banheiros ') : '') /* + (districtsString != '' ? (' | ' + districtsString) : '') */ ;\n    $('.filter-results .results').text(resultsText);\n\n    console.log('productPage');\n  },\n  finalize() {\n\n  },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/templateDestaque.js","export default {\n  init() {\n\n    var domainHost = window.location.origin;\n    var currentPage = '';\n    if (window.location.pathname.includes('decisaoimoveis')) {\n      currentPage = (window.location.pathname).split('/')[2];\n    } else {\n      currentPage = (window.location.pathname).split('/')[1];\n    }\n    \n    if (currentPage == 'encontre-um-imovel') { \n      currentPage = ''; \n    }\n\n    function setCookie(cname, cvalue, exdays) {\n      const d = new Date();\n      d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n      let expires = 'expires=' + d.toUTCString();\n      document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n    }\n\n    function getCookie(name) {\n      var nameEQ = name + '=';\n      var ca = document.cookie.split(';');\n      for (var i = 0; i < ca.length; i++) {\n        var c = ca[i];\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n      }\n      return null;\n    }\n\n    /**\n     * Obtem um array com os parâmetros da URL criados com rewrite rules do WordPress\n     * @param {*} url \n     * @returns \n     */\n    function routeParams(url){\n      var params = url.split('/');\n      return params.filter((element) => element !== '');\n    }\n\n    /**\n     * Chamada Ajax para carregar a lista de imóveis\n     */\n    function callAjaxPropertiesWithCallback() {\n      const urlParams = new URLSearchParams(window.location.search);\n      const imovelUrlRouteParams = routeParams(window.location.pathname);\n\n      // Recuperando o objeto com os bairros e tipos de imoveis armazenados no Session Storage\n      const bairrosImoveis = JSON.parse(sessionStorage.getItem('bairrosImoveis')) ;\n      const tiposImoveis = JSON.parse(sessionStorage.getItem('tiposImoveis'));\n\n      // Código imóvel\n      const propertieCode = urlParams.get('cod');\n\n      // Tipo imóvel - Segundo parametro da URL (Ex: compra/casa)\n      let propertieTypes = ''\n      if(imovelUrlRouteParams.length > 1){\n        propertieTypes = getProperties(imovelUrlRouteParams[1],tiposImoveis)\n      }\n\n      // Bairro - Terceiro parametro da URL (Ex: compra/casa/funcionarios)\n      let propertieDistricts = ''\n      if(imovelUrlRouteParams.length > 2){\n        propertieDistricts = getProperties(imovelUrlRouteParams[2],bairrosImoveis)\n      }\n\n      // Elevadores\n      const propertieElevator = urlParams.get('elevadores');\n      // Banheiros\n      const propertieBath = urlParams.get('banheiros');\n      // Suites\n      const propertieSuit = urlParams.get('suites');\n      // Quartos\n      const propertieRoom = urlParams.get('quartos');\n      // Area max\n      const propertieAreaMax = urlParams.get('area-max');\n      // Area min\n      const propertieAreaMin = urlParams.get('area-min');\n      // Valor max\n      const propertieValueMax = urlParams.get('valor-max');\n      // Valor min\n      const propertieValueMin = urlParams.get('valor-min');\n      // Vagas garagem\n      const propertieVacancy = urlParams.get('vagas');\n      // Número página\n      const paginationNum = urlParams.get('pagination');\n      var currentPage = '';\n\n      if (window.location.pathname.includes('decisaoimoveis')) {\n        currentPage = (window.location.pathname).split('/')[2];\n      } else {\n        currentPage = (window.location.pathname).split('/')[1];\n      }\n\n      // Construir a URL do endpoint da API\n      var originUrl = window.location.origin;\n      var apiEndpoint = '/wp-content/themes/qrtl-decisao-imoveis/app/ajax-api';\n      if (window.location.href.includes('homologacao')) {\n        apiEndpoint = '/decisaoimoveis' + apiEndpoint;\n      }\n      var apiPath = '/propertiesSearch.php';\n      var ajaxUrl = originUrl + apiEndpoint + apiPath;\n\n      console.log('AJAX URL',ajaxUrl)\n\n      // Configurar a requisição AJAX\n      const xhttp = new XMLHttpRequest();\n      xhttp.onreadystatechange = function () {\n\n        if (this.readyState === 4 && this.status === 200) {\n          // Armazenar a resposta da requisição em uma variável\n\n          const resposta = this.responseText;\n\n          // Executar a função de callback com a resposta JSON como argumento\n          // Por exemplo, para exibir uma mensagem na tela:\n          $('.product-list').append(resposta);\n          $('.slider-image').slick({\n            settings: {\n              arrows: true,\n            },\n          });\n          var count = $('.list-item').length; // Conta o número de classes \"x\"\n          $('span.results').text(function (index, text) {\n            return text.replace('0', count); // Substitui o \"0\" pelo número de classes \"x\"\n          });\n          $('.share-call').on('click', function () {\n            $(this).siblings().toggleClass('active');\n            $(this).toggleClass('open');\n          })\n          $('.share-call').hover(function () {\n            $(this).children('.share-label').toggleClass('active');\n          })\n          $('.loader-wrap').addClass('hide');\n          var fav_cookie = getCookie('cookie-fav');\n\n          var favs = [];\n          if (fav_cookie !== null) {\n            var fav_cookie_data = fav_cookie.replace('[', '').replace(']', '');\n            favs = fav_cookie_data.split(',');\n          }\n\n          if ($('button.fav').length != 0) {\n            //you can loop through an array like this:\n\n            for (var itens in favs) {\n              $(favs[itens].replace('\"', '').replace('\"', '')).toggleClass('fav-selected');\n            }\n\n          }\n\n          $('.fav').on('click', function () {\n            $(this).toggleClass('fav-selected') // or alert($(this).attr('id'));\n            var index = favs.indexOf('#' + this.id);\n            if (index !== -1) {\n              // Valor encontrado no array, remover\n              favs.splice(index, 1);\n              $('.notification-remove').addClass('active');\n              $('.notification-add').removeClass('active');\n              setTimeout(function () {\n                $('.notification-remove').removeClass('active');\n              }, 5000);\n            } else {\n              // Valor não encontrado no array, adicionar\n              favs.push('#' + this.id);\n              $('.notification-remove').removeClass('active');\n              $('.notification-add').addClass('active');\n              setTimeout(function () {\n                $('.notification-add').removeClass('active');\n              }, 5000);\n            }\n            setCookie('cookie-fav', favs, 10);\n          })\n\n        } else if (this.readyState === 4 && this.status !== 200) {\n          // Callback de erro\n          console.error('4 Erro na requisição AJAX');\n        }\n      };\n\n      xhttp.open('POST', ajaxUrl, true);\n      xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n      // Enviar a requisição com o parâmetro 'propertie_code'\n      xhttp.send(`propertie_type=${propertieTypes}&propertie_district=${propertieDistricts}&propertie_vacancy=${propertieVacancy}&pagination_num=${paginationNum}&page=${currentPage}&propertie_code=${propertieCode}&propertie_elevator=${propertieElevator}&propertie_bath=${propertieBath}&propertie_suite=${propertieSuit}&propertie_room=${propertieRoom}&propertie_maxArea=${propertieAreaMax}&propertie_minArea=${propertieAreaMin}&propertie_maxValue=${propertieValueMax}&propertie_minValue=${propertieValueMin}`);\n      xhttp.addEventListener('readystatechange', function () {\n        if (this.readyState === 4) {\n          paginationLogic();\n          $('.results').html($('#imoQntd').text() + ' imóveis encontrados');\n        }\n      });\n    }\n\n    // Obtendo a lista de bairros e salvando no localStorage\n    function getBairrosFromJson(finalidade='compra') {\n      let urlJson = ''\n      if(finalidade === 'aluguel'){\n        urlJson = domainHost+'/bairros-aluguel.json'\n      }else{\n        urlJson = domainHost+'/bairros-compra.json'\n      }\n      \n      // Obtendo o resultado do JSON\n      fetch(urlJson)\n        .then(response => {\n          // Verificar se a resposta da requisição foi bem-sucedida (status 200)\n          if (!response.ok) {\n            throw new Error(`Erro na requisição: ${response.statusText}`);\n          }\n          // Parse do JSON e retorno da promise\n          return response.json();\n        })\n        .then(response => {\n          // O JSON foi recebido com sucesso, faça o que precisar com os dados\n          response.lista.forEach(function (item) {\n            item.nome = toSlug(item.nome);\n            item.cidade = toSlug(item.cidade);\n            item.estado = toSlug(item.estado);\n          })\n          // Salvando a lista de bairros no localStorage\n          console.log('BAIRROS', response.lista)\n          sessionStorage.removeItem('bairrosImoveis')\n          sessionStorage.setItem('bairrosImoveis', JSON.stringify(response.lista))\n\n          // Obtendo e salvando os tipos e imoveis no localStorage\n          getTiposImoveisFromJson(finalidade)\n        })\n        .catch(error => {\n          // Lidar com erros durante a requisição\n          console.error('Erro durante a requisição:', error);\n        });\n    }\n\n    // Obtendo a lista de tipos de imóveis e salvando no localStorage\n    function getTiposImoveisFromJson(finalidade='compra') {\n      let urlJson = ''\n      if(finalidade === 'aluguel'){\n        urlJson = domainHost+'/tipos-imoveis-aluguel.json'\n      }else{\n        urlJson = domainHost+'/tipos-imoveis-compra.json'\n      }\n      \n      // Obtendo o resultado do JSON\n      fetch(urlJson)\n        .then(response => {\n          // Verificar se a resposta da requisição foi bem-sucedida (status 200)\n          if (!response.ok) {\n            throw new Error(`Erro na requisição: ${response.statusText}`);\n          }\n          // Parse do JSON e retorno da promise\n          return response.json();\n        })\n        .then(response => {\n          // O JSON foi recebido com sucesso, faça o que precisar com os dados\n          response.lista.forEach(function (item) {\n            item.nome = toSlug(item.nome);\n          })\n          // Salvando a lista de tipos de imóveis no localStorage\n          console.log('TIPOS IMOVEIS', response.lista)\n          sessionStorage.removeItem('tiposImoveis')\n          sessionStorage.setItem('tiposImoveis', JSON.stringify(response.lista))\n\n          // Obtendo os imóveis depois que os bairros e os tipos foram obtidos e salvos no localStorage\n          callAjaxPropertiesWithCallback()\n        })\n        .catch(error => {\n          // Lidar com erros durante a requisição\n          console.error('Erro durante a requisição:', error);\n        });\n    }\n\n    function paginationLogic() {\n      const queryString = window.location.search;\n      const urlParams = new URLSearchParams(queryString);\n      const currentPagination = urlParams.get('pagination')\n\n      if (currentPagination != null) {\n        $('button.pagination[value=' + currentPagination + ']').toggleClass('active');\n      } else {\n        $('button.pagination[value=1]').toggleClass('active');\n      }\n\n      $('button.pagination').on('click', function () {\n        const value = $(this).val();\n        const queryString = window.location.search;\n        const urlParams = new URLSearchParams(queryString);\n        const currentPagination = urlParams.get('pagination')\n\n\n        if (currentPagination != null) {\n          if (queryString != null) {\n            const finalQuery = queryString.replace('pagination=' + currentPagination, 'pagination=' + value);\n            window.location.href = finalQuery;\n          } else {\n            window.location.href = '?pagination=' + value;\n          }\n        } else {\n          if (queryString != '') {\n            window.location.href = queryString + '&pagination=' + value;\n          } else {\n            window.location.href = queryString + '?pagination=' + value;\n          }\n\n        }\n      });\n    }\n\n    // Chamar a função assim que a página for carregada\n    window.onload = function () {\n      console.log('aqui');\n      const imovelUrlRouteParams = routeParams(window.location.pathname);\n      if(imovelUrlRouteParams.length > 1){\n        // Rota Compra ou Aluguel com parametros de filtro\n        getBairrosFromJson(currentPage)\n      }else{\n        // Rota Compra ou Aluguel sem parametros\n        callAjaxPropertiesWithCallback();\n      }\n    };\n\n    // JavaScript to be fired on the Product List\n    $('.slider-image').slick({\n      settings: {\n        arrows: true,\n      },\n    });\n    $('#bussines_model_code').on('select2:select', function (e) {\n      var action = $('#searchform').attr('action');\n      var data = e.params.data.id.toLowerCase();\n      var replace_action = action.replace('compra', data).replace('busca', data).replace('aluguel', data).replace('lancamentos', data);\n      $('#searchform').attr('action', replace_action);\n    });\n\n    // Pagination Button \n    if ($('.list-item').length < 10) {\n      $('.pagination-overlay').css('display', 'none')\n    }\n\n    // select form\n    $('.select2').select2();\n\n\n    $('.filter-button').on('click', function () {\n      $('.sidebar').toggleClass('active-sidebar');\n      $(this).toggleClass('active-filter-button');\n    });\n\n    function updateURLParameter(url, param, paramVal) {\n      var newAdditionalURL = '';\n      var tempArray = url.split('?');\n      var baseURL = tempArray[0];\n      var additionalURL = tempArray[1];\n      var temp = '';\n      if (additionalURL) {\n        tempArray = additionalURL.split('&');\n        for (var i = 0; i < tempArray.length; i++) {\n          if (tempArray[i].split('=')[0] != param) {\n            newAdditionalURL += temp + tempArray[i];\n            temp = '&';\n          }\n        }\n      }\n\n      var rows_txt = temp + '' + param + '=' + paramVal;\n      return baseURL + '?' + newAdditionalURL + rows_txt;\n    }\n\n    $('#sort').on('change', function () {\n      var selected_value = $(this).val();\n\n      var url = updateURLParameter(window.location.href, 'order', selected_value);\n\n      $('#ordenation').attr('action', url);\n    });\n\n    $('#sort').on('change', function () {\n      $('.select-button').click();\n    })\n\n\n\n    function getUrlParameter(sParam) {\n      var sPageURL = decodeURIComponent(window.location.search.substring(1));\n      var array = []\n      var sURLVariables = sPageURL.split('&');\n      for (var i = 0; i < sURLVariables.length; i++) {\n        var sParameterName = sURLVariables[i].split('=');\n        if (sParameterName[0] == sParam) {\n          array.push(sParameterName[1]);\n        }\n      }\n      return array;\n    }\n\n    // Definição dos valores da busca\n\n    // Parametro que define as labels do select \n    const newFirstElement = '00';\n    \n    // Listagem de bairros ativos\n    var paramDistrict = getUrlParameter('district[]');\n    const newDistrictArray = [newFirstElement].concat(paramDistrict) // Adição do valor da label\n    \n    // listagem de tipos ativos\n    var paramType = getUrlParameter('propertie_type[]');\n    const newTypeArray = [newFirstElement].concat(paramType) // Adição do valor da label\n    var paramValueMin = getUrlParameter('valor-min'); // Valor minimo\n    var paramValueMax = getUrlParameter('valor-max'); // Valor maximo \n    var paramAreaMin = getUrlParameter('area-min'); // Area minima \n    var paramAreaMax = getUrlParameter('area-max'); // Area maxima\n    var paramRooms = getUrlParameter('quartos'); // Quartos \n    var paramMasterRooms = getUrlParameter('suites'); // Suites\n    var paramBath = getUrlParameter('banheiros'); // Banheiros\n    var paramGarage = getUrlParameter('vagas'); // Vagas  \n    var paramEle = getUrlParameter('elevadores'); // Elevadores  \n    var cod = getUrlParameter('cod'); // Código \n\n\n    // Inserção de valores no formulario de busca\n    // Bairro\n    if (paramDistrict.length != 0) {\n      $('#district').val(newDistrictArray);\n      $('#district').trigger('change');\n    }\n    //Tipo de imovel \n    if (paramType.length != 0) {\n      $('#propertie_type').val(newTypeArray);\n      $('#propertie_type').trigger('change');\n    }\n    // Valor minimo\n    if (paramValueMin.length != 0) {\n      $('#valor-min').val(paramValueMin[0]);\n    }\n    // Valor maximo \n    if (paramValueMax.length != 0) {\n      $('#valor-max').val(paramValueMax[0]);\n    }\n    // Area Minima \n    if (paramAreaMin.length != 0) {\n      $('#area-min').val(paramAreaMin[0]);\n    }\n    // Area Maxima \n    if (paramAreaMax.length != 0) {\n      $('#area-max').val(paramAreaMax[0]);\n    }\n    // Quartos \n    if (paramRooms.length != 0) {\n      const roomSanitize = paramRooms.toString().replace('-', '');\n      $('.number[value=\"quartos-' + roomSanitize + '\"]').toggleClass('active');\n      $('#quartos-' + roomSanitize).prop('checked', true);\n    }\n    // Suites \n    if (paramMasterRooms.length != 0) {\n      const masterRoomSanitize = paramMasterRooms.toString().replace('-', '');\n      $('.number[value=\"suites-' + masterRoomSanitize + '\"]').toggleClass('active');\n      $('#suites-' + masterRoomSanitize).prop('checked', true);\n    }\n    // Banheiros\n    if (paramBath.length != 0) {\n      const bathSanitize = paramBath.toString().replace('-', '');\n      $('.number[value=\"banheiros-' + bathSanitize + '\"]').toggleClass('active');\n      $('#banheiros-' + bathSanitize).prop('checked', true);\n    }\n    // Vagas\n    if (paramGarage.length != 0) {\n      const garageSanitize = paramGarage.toString().replace('-', '');\n      $('.number[value=\"vagas-' + garageSanitize + '\"]').toggleClass('active');\n      $('#vagas-' + garageSanitize).prop('checked', true);\n    }\n    // Elevadores\n    if (paramEle.length != 0) {\n      const eleSanitize = paramEle.toString().replace('-', '');\n      $('.number[value=\"elevadores-' + eleSanitize + '\"]').toggleClass('active');\n      $('#elevadores-' + eleSanitize).prop('checked', true);\n    }\n    // Codigo\n    // if (cod.length != 0) {\n    //   $('#code').val(cod[0]);\n    // }\n\n    $('.share-call').hover(function () {\n      $(this).children('.share-label').toggleClass('active');\n    })\n\n    $('.fav').hover(function () {\n      $(this).children('.fav-label').toggleClass('active');\n    })\n\n    $('.share-call').on('click', function () {\n      $(this).siblings().toggleClass('active');\n      $(this).toggleClass('open');\n    })\n\n    // Legenda para resultados da busca\n    //Variaveis para substituição de valores \n    const roomsText = paramRooms.toString().replace('-', '');\n    const garageText = paramGarage.toString().replace('-', '');\n    const masterRoomsText = paramMasterRooms.toString().replace('-', '');\n    const bathText = paramBath.toString().replace('-', '');\n\n    /* var districtsString = '';\n    const lastDistrict = paramDistrict.length - 1;\n    paramDistrict.forEach(function (value, index) {\n\n      const districtString = $('#district option[value=\"' + value + '\"]').text();\n      districtsString += (lastDistrict != index ? (districtString + ', ') : (districtString));\n    }); */\n\n    const resultsNumber = $('.filter-results .results').text();\n\n    const resultsText = resultsNumber + (paramRooms.length != 0 ? (' | ' + roomsText + ' Quartos ') : '') + (paramGarage.length != 0 ? (' | ' + garageText + ' Vagas ') : '') + (paramMasterRooms.length != 0 ? (' | ' + masterRoomsText + ' Suítes ') : '') + (paramBath.length != 0 ? (' | ' + bathText + ' Banheiros ') : '') /* + (districtsString != '' ? (' | ' + districtsString) : '') */ ;\n    $('.filter-results .results').text(resultsText);\n\n  },\n  finalize() {\n\n  },\n};\n\n// Formata uma string para o formato de slug Ex: \"Rio de Janeiro\" = \"rio-de-janeiro\"\nconst toSlug = (str) => {\n  return str\n  .replace(/^\\s+|\\s+$/g, '')\n  .replace('-', '')\n  .replace('/', '')\n  .replace(/ /g, '-')\n  .replace('--', '-')\n  .toLowerCase()\n  .normalize('NFD')\n  .replace(/[\\u0300-\\u036F]/g, '')\n  .replace(/[^a-z0-9-]/g, '');\n};\n\n// A partir do parametro recebido retorna uma string com ID ou IDs ,encontrados no jsonOptions, do parametro separado por ,\n// jsonOptions é um objeto que contem o nome e id dos itens, usados para distritos e tipo de imoveis\nconst getProperties = (parametro, jsonOptions) => {\n  let proprerties = '';\n  // Caso o valor tenha o caractere + entao vamos converter em um array\n  if(parametro.includes('+')){\n    // Mais de um valor\n    parametro.split('+').forEach(parametro=>{\n      let district = jsonOptions.filter(item=>{\n        return item.nome === parametro\n      })\n      if(district.length > 0){\n        proprerties += district[0].codigo + ',';\n      }\n    })\n  }else{\n    // Somente um valor\n    let district = jsonOptions.filter(item=>{\n      return item.nome === parametro\n    })\n    if(district.length > 0){\n      proprerties = district[0].codigo;\n    }\n  }\n  return proprerties;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/templateProductListSearch.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./styles/main.scss\n// module id = 14\n// module chunks = 0"],"sourceRoot":""}