1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3029],{63029:function(e,t,n){n.d(t,{Jl:function(){return generatePriceSlug},e3:function(){return extractProgrammaticFiltersFromSlug},pV:function(){return generateConditionSlug},tB:function(){return generateBedroomSlug}});var r=n(49642);let isBedroomFilterSegment=e=>{if(!e)return null;let t=e.match(/^(\d+)-(dormitorios?|habitaciones?)$/);if(t){let n=parseInt(t[1]);return n>=1&&n<=4?{max:n,min:n,slug:e,type:"bedrooms"}:null}return"5-mas-dormitorios"===e||"5-mas-habitaciones"===e?{max:null,min:5,slug:e,type:"bedrooms"}:null},isInvalidProgrammaticFilterSegment=e=>{if(!e)return!1;let t=e.match(/^(\d+)-(dormitorios?|habitaciones?)$/);if(t){let e=parseInt(t[1]);if(0===e||e>4)return!0}let n=e.match(/^(\d+)-mas-(dormitorios?|habitaciones?)$/);if(n&&"5-mas-dormitorios"!==e&&"5-mas-habitaciones"!==e)return!0;for(let t of[/^hasta-(uf|clp|usd|eur)-(\d+)$/,/^(uf|clp|usd|eur)-(\d+)-a-(\d+)$/,/^sobre-(uf|clp|usd|eur)-(\d+)$/])if(t.test(e))return!0;return!!["usada","usado","segunda-mano","no-proyecto","nuevas","nueva"].includes(e)},isPriceFilterSegment=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"CL";if(!e)return null;let n=e.match(/^hasta-(uf|clp|usd|eur)-(\d+)$/);if(n){let l=n[1].toUpperCase(),i=parseInt(n[2]);return(0,r.mP)(t,l)&&(0,r.Rh)(i,t,l)?{currencyId:l,max:i,min:null,slug:e,type:"price"}:null}let l=e.match(/^(uf|clp|usd|eur)-(\d+)-a-(\d+)$/);if(l){let n=l[1].toUpperCase(),i=parseInt(l[2]),u=parseInt(l[3]);return(0,r.mP)(t,n)&&i>0&&u>i?{currencyId:n,max:u,min:i,slug:e,type:"price"}:null}let i=e.match(/^sobre-(uf|clp|usd|eur)-(\d+)$/);if(i){let n=i[1].toUpperCase(),l=parseInt(i[2]);return(0,r.mP)(t,n)&&l>0?{currencyId:n,max:null,min:l,slug:e,type:"price"}:null}return null},isConditionFilterSegment=e=>"usadas"===e||"usados"===e?{slug:e,type:"condition",value:"used"}:null,isProgrammaticFilterSegment=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"CL",n=isBedroomFilterSegment(e);if(n)return n;let r=isPriceFilterSegment(e,t);if(r)return r;let l=isConditionFilterSegment(e);return l||null},extractProgrammaticFiltersFromSlug=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"CL";if(!Array.isArray(e)||0===e.length)return{cleanedSlug:e||[]};let n={cleanedSlug:[...e].filter(Boolean)},r=3;for(;r>0&&n.cleanedSlug.length>0;){let e=n.cleanedSlug[n.cleanedSlug.length-1],l=isProgrammaticFilterSegment(e,t);if(l)n.cleanedSlug=n.cleanedSlug.slice(0,-1),"bedrooms"===l.type?n.bedroomsFilter={max:l.max,min:l.min,slug:l.slug}:"price"===l.type?n.priceFilter={currencyId:l.currencyId,max:l.max,min:l.min,slug:l.slug}:"condition"===l.type&&(n.conditionFilter={slug:l.slug,value:l.value}),r--;else{if(isInvalidProgrammaticFilterSegment(e)){n.cleanedSlug=n.cleanedSlug.slice(0,-1),r--;continue}break}}return n},generateBedroomSlug=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"CL";if(!e||e<=0)return null;let r=(null==n?void 0:n.toUpperCase())==="ES",l=r?"habitaciones":"dormitorios";return e>=5&&null==t?"5-mas-".concat(l):e===t&&e>=1&&e<=4?"".concat(e,"-").concat(1===e?r?"habitacion":"dormitorio":l):null},generatePriceSlug=function(e,t,n){let l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"CL";if(!n||!(0,r.mP)(l,n))return null;let i=n.toLowerCase();return!e&&t&&(0,r.Rh)(t,l,n)?"hasta-".concat(i,"-").concat(t):null},generateConditionSlug=e=>"used"===e?"usadas":null}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.