@maplander/components 0.21.42 → 0.21.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/_theming.scss CHANGED
@@ -5538,7 +5538,6 @@ $mat-form-field-dedupe: 0;
5538
5538
  .marker {
5539
5539
  max-width: max-content;
5540
5540
  cursor: pointer;
5541
- position: relative;
5542
5541
  border-radius: 16px;
5543
5542
  padding: 8px 12px;
5544
5543
  font-size: 12px;
@@ -2590,7 +2590,7 @@
2590
2590
  FabFiltersComponent.decorators = [
2591
2591
  { type: core.Component, args: [{
2592
2592
  selector: 'lib-fab-filters',
2593
- template: "<div class=\"fab-filters\">\r\n <button mat-flat-button=\"\" color=\"primary\" class=\"btn_filters\" (click)=\"openFilters()\">\r\n Filtros\r\n </button>\r\n <!--div class=\"filters-container\">\r\n <ng-template [ngIf]=\"chips.length > 0\">\r\n <mat-chip-list aria-orientation=\"horizontal\">\r\n <ng-container *ngFor=\"let chip of chips\">\r\n <mat-chip (click)=\"onClickChip(chip.type)\">\r\n <ng-container [ngSwitch]=\"chip.type\">\r\n <ng-container *ngSwitchCase=\"'PROPERTY_TYPE'\">\r\n <span class=\"icon property-icon ic-property-{{chip.icon}}\"\r\n [ngStyle]=\"{'background': 'var(--' + chip.icon + ')'}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'LISTING'\">\r\n <ng-template [ngIf]=\"chip.icon[0] !== 'mlm'\" [ngIfElse]=\"mlm\">\r\n <mat-icon class=\"listing-icon\">\r\n list\r\n </mat-icon>\r\n </ng-template>\r\n <ng-template #mlm>\r\n <mat-icon class=\"listing-icon\" svgIcon=\"opi:mlm\"></mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'AMENITIES'\">\r\n <span class=\"icon ic-amenities-{{chip.icon[0]}}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of chip.icon\">\r\n <span class=\"icon ic-features-{{i}}\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n {{chip.text}}\r\n </mat-chip>\r\n </ng-container>\r\n </mat-chip-list>\r\n </ng-template>\r\n </div -->\r\n</div>\r\n",
2593
+ template: "<div class=\"fab-filters\">\r\n <button mat-flat-button=\"\" color=\"primary\" class=\"btn_filters\" (click)=\"openFilters()\">\r\n Filtros\r\n </button>\r\n <div class=\"filters-container\">\r\n <ng-template [ngIf]=\"chips.length > 0\">\r\n <mat-chip-list aria-orientation=\"horizontal\">\r\n <ng-container *ngFor=\"let chip of chips\">\r\n <mat-chip (click)=\"onClickChip(chip.type)\">\r\n <ng-container [ngSwitch]=\"chip.type\">\r\n <ng-container *ngSwitchCase=\"'PROPERTY_TYPE'\">\r\n <span class=\"icon property-icon ic-property-{{chip.icon}}\"\r\n [ngStyle]=\"{'background': 'var(--' + chip.icon + ')'}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'LISTING'\">\r\n <ng-template [ngIf]=\"chip.icon[0] !== 'mlm'\" [ngIfElse]=\"mlm\">\r\n <mat-icon class=\"listing-icon\">\r\n list\r\n </mat-icon>\r\n </ng-template>\r\n <ng-template #mlm>\r\n <mat-icon class=\"listing-icon\" svgIcon=\"opi:mlm\"></mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'AMENITIES'\">\r\n <span class=\"icon ic-amenities-{{chip.icon[0]}}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of chip.icon\">\r\n <span class=\"icon ic-features-{{i}}\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n {{chip.text}}\r\n </mat-chip>\r\n </ng-container>\r\n </mat-chip-list>\r\n </ng-template>\r\n </div>\r\n</div>\r\n",
2594
2594
  styles: [":host{display:block;position:inherit;top:inherit;bottom:inherit;left:inherit;right:inherit;z-index:inherit;width:inherit}.fab-filters{display:flex;width:100%;border-radius:8px 0 0 8px}.fab-filters .filters-container{width:calc(100% - 64px);height:40px;padding-right:8px;box-sizing:border-box;border-radius:4px 4px 4px 0;display:flex;align-items:center;transition:150ms}.fab-filters .filters-container mat-chip-list{width:100%;height:100%;overflow:hidden}.fab-filters .filters-container mat-chip-list mat-chip{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content}.fab-filters ::ng-deep .filters-container mat-chip-list .mat-chip-list-wrapper{width:100%;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:16px;margin:0}.fab-filters .filters-container mat-chip-list mat-chip .icon{width:24px;height:24px;font-size:16px;border-radius:50%;margin-right:8px;display:flex;align-items:center;justify-content:center}"]
2595
2595
  }] }
2596
2596
  ];
@@ -2838,8 +2838,6 @@
2838
2838
  this._formBuilder = _formBuilder;
2839
2839
  this._converter = _converter;
2840
2840
  this.METERS_TO_SQ = 10.76391042;
2841
- this._lastState = null;
2842
- this.changeFilter = new core.EventEmitter();
2843
2841
  this.isOPI = this._config || false;
2844
2842
  this._subscription = new rxjs.Subscription();
2845
2843
  this.propertyTypeList = ConstantsComponents.PropertyTypeList.map((/**
@@ -2888,35 +2886,10 @@
2888
2886
  * @return {?}
2889
2887
  */
2890
2888
  function (changes) {
2891
- var e_1, _a;
2892
2889
  if (changes['utils'] && changes['utils'].currentValue) {
2893
2890
  console.log('[FiltersComponent] utils ready');
2894
2891
  this.initComponent();
2895
2892
  }
2896
- if (changes['stateOptions'] && changes['stateOptions'].currentValue) {
2897
- if (this._lastState !== null) {
2898
- try {
2899
- for (var _b = __values(this.stateOptions), _c = _b.next(); !_c.done; _c = _b.next()) {
2900
- var stateOption = _c.value;
2901
- if (stateOption.name === this._lastState) {
2902
- this.propertyTotal = stateOption.total;
2903
- this.filter.state = this._lastState;
2904
- this.filtersForm.patchValue({
2905
- state: this._lastState
2906
- });
2907
- break;
2908
- }
2909
- }
2910
- }
2911
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
2912
- finally {
2913
- try {
2914
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2915
- }
2916
- finally { if (e_1) throw e_1.error; }
2917
- }
2918
- }
2919
- }
2920
2893
  };
2921
2894
  /**
2922
2895
  * @return {?}
@@ -2955,7 +2928,6 @@
2955
2928
  * @return {?}
2956
2929
  */
2957
2930
  function (index) {
2958
- this._lastState = this.filter.state;
2959
2931
  this.resetFilters(index);
2960
2932
  this.applyAmenities();
2961
2933
  this.filter.type = this.propertyTypeSelected.value;
@@ -2967,11 +2939,6 @@
2967
2939
  this.filtersForm.controls['offering'].setValue(types.OfferingTypeEnum.SALE);
2968
2940
  break;
2969
2941
  }
2970
- this.filter.locationType = 'STATE';
2971
- this.filter.state = null;
2972
- this.filter.municipality = null;
2973
- this.filter.colony = null;
2974
- this.changeFilter.emit({ type: 'propertyType', payload: { filter: this.filter, value: this.filtersForm.value } });
2975
2942
  };
2976
2943
  /**
2977
2944
  * @param {?} ev
@@ -2982,13 +2949,7 @@
2982
2949
  * @return {?}
2983
2950
  */
2984
2951
  function (ev) {
2985
- this._lastState = this.filter.state;
2986
- this.filter.locationType = 'STATE';
2987
- this.filter.state = null;
2988
- this.filter.municipality = null;
2989
- this.filter.colony = null;
2990
2952
  this.filter.offering = (/** @type {?} */ (ev));
2991
- this.changeFilter.emit({ type: 'offer', payload: { filter: this.filter, value: this.filtersForm.value } });
2992
2953
  };
2993
2954
  /**
2994
2955
  * @param {?} ev
@@ -3000,19 +2961,6 @@
3000
2961
  */
3001
2962
  function (ev) {
3002
2963
  this.filter.currency = ev;
3003
- this.changeFilterStatus();
3004
- };
3005
- /**
3006
- * @param {?} ev
3007
- * @return {?}
3008
- */
3009
- FiltersComponent.prototype.changeState = /**
3010
- * @param {?} ev
3011
- * @return {?}
3012
- */
3013
- function (ev) {
3014
- this.filter.state = ev;
3015
- this.changeFilterStatus();
3016
2964
  };
3017
2965
  /**
3018
2966
  * @param {?} amenity
@@ -3034,7 +2982,6 @@
3034
2982
  this.filter.extras.push(amenity.value);
3035
2983
  }
3036
2984
  amenity.checked = !amenity.checked;
3037
- this.changeFilterStatus();
3038
2985
  };
3039
2986
  /**
3040
2987
  * @return {?}
@@ -3084,7 +3031,6 @@
3084
3031
  this.filter = propertyTypeItemIndex ? Utils.getFilterByPropertyType(this.filter) : Utils.getInitialFilter(this.isOPI, this.filter);
3085
3032
  this.updateFormByFilters();
3086
3033
  this.setPrices();
3087
- this.propertyTotal = 0;
3088
3034
  };
3089
3035
  /**
3090
3036
  * @private
@@ -3096,7 +3042,6 @@
3096
3042
  */
3097
3043
  function () {
3098
3044
  this.filtersForm = this._formBuilder.group({
3099
- state: ['', [forms.Validators.required]],
3100
3045
  offering: [],
3101
3046
  currency: [],
3102
3047
  minPrice: ['', [forms.Validators.required, forms.Validators.pattern(new RegExp('(^[0-9]+)'))]],
@@ -3111,33 +3056,6 @@
3111
3056
  validator: CurrencyFilterValidator('minPrice', 'maxPrice')
3112
3057
  });
3113
3058
  };
3114
- /**
3115
- * @return {?}
3116
- */
3117
- FiltersComponent.prototype.changeFilterStatus = /**
3118
- * @return {?}
3119
- */
3120
- function () {
3121
- this.getFilterByForm();
3122
- /** @type {?} */
3123
- var filterToSearch = Object.assign({}, this.filter);
3124
- if (this.surfaceUnitSelected === 1) {
3125
- filterToSearch.mainArea = filterToSearch.mainArea * this.METERS_TO_SQ;
3126
- }
3127
- if (!this.filtersForm.controls['minPrice'].value) {
3128
- this.filtersForm.controls['minPrice'].reset(0);
3129
- this.filtersForm.patchValue({
3130
- minPrice: 0
3131
- });
3132
- }
3133
- if (!this.filtersForm.controls['minPrice'].value) {
3134
- this.filtersForm.controls['minPrice'].reset(0);
3135
- this.filtersForm.patchValue({
3136
- maxPrice: 0
3137
- });
3138
- }
3139
- this.changeFilter.emit({ type: 'filter', payload: { filter: this.filter, value: filterToSearch } });
3140
- };
3141
3059
  /**
3142
3060
  * @private
3143
3061
  * @return {?}
@@ -3148,7 +3066,6 @@
3148
3066
  */
3149
3067
  function () {
3150
3068
  this.filtersForm.patchValue({
3151
- state: this.filter.state,
3152
3069
  offering: this.filter.offering,
3153
3070
  currency: this.filter.currency,
3154
3071
  minPrice: this.filter.downLimitPrice,
@@ -3172,7 +3089,6 @@
3172
3089
  function () {
3173
3090
  /** @type {?} */
3174
3091
  var data = this.filtersForm.value;
3175
- this.filter.state = data.state;
3176
3092
  this.filter.offering = data.offering;
3177
3093
  this.filter.currency = data.currency;
3178
3094
  this.filter.downLimitPrice = Number(data.minPrice);
@@ -3381,7 +3297,6 @@
3381
3297
  */
3382
3298
  function (open) {
3383
3299
  if (open) {
3384
- this.changeFilter.emit({ type: 'init', payload: { filter: null, value: null } });
3385
3300
  this._render.setStyle(this._ref.nativeElement, 'visibility', 'visible');
3386
3301
  this._render.setStyle(this._ref.nativeElement, 'opacity', '1');
3387
3302
  }
@@ -3452,7 +3367,7 @@
3452
3367
  FiltersComponent.decorators = [
3453
3368
  { type: core.Component, args: [{
3454
3369
  selector: 'lib-filters',
3455
- template: "<!-- Todo: [FiltersComponent] Refactor code -->\r\n<form class=\"filters\" [formGroup]=\"filtersForm\" [ngClass]=\"{'filters--opened': propertyTypeSelected.value !== 'NONE'}\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <div class=\"float-button-close\">\r\n <button mat-icon-button type=\"button\" class=\"float-button-close__button\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"body\">\r\n <div class=\"--padding\">\r\n <div class=\"header\">\r\n <mat-form-field class=\"currency\" appearance=\"outline\">\r\n <mat-label>Divisa</mat-label>\r\n <mat-select formControlName=\"currency\">\r\n <ng-container *ngFor=\"let currency of currencyList\">\r\n <mat-option [value]=\"currency.type\" (click)=\"changeCurrency(currency.type)\">\r\n {{currency.type}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group class=\"offering-type-list\" name=\"offering-type\" formControlName=\"offering\"\r\n aria-label=\"Offering type\">\r\n <mat-button-toggle (click)=\"changeOffering('SALE')\" [value]=\"'SALE'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'ROOM'\">\r\n Venta\r\n </mat-button-toggle>\r\n <mat-button-toggle (click)=\"changeOffering('RENT')\" [value]=\"'RENT'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'INVESTMENT'\">\r\n Renta\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"mat-elevation-z2\" [ngClass]=\"{'property-type-list': !newFilters, 'new-property-type-list': newFilters}\">\r\n <ng-container *ngFor=\"let type of propertyTypeList; let i = index\">\r\n <ng-template [ngIf]=\"type.value !== 'NONE' && (type.value !== 'ROOM' && newFilters)\">\r\n <div class=\"property-type-list__button\">\r\n <div\r\n class=\"property-type-list__border\"\r\n [ngClass]=\"{'property-type-list__border--active': (type.value === propertyTypeSelected.value) || (propertyTypeSelected.value === 'NONE') || ((type.value === 'HOUSE' || type.value === 'APARTMENT') && propertyTypeSelected.value === 'RESIDENTIAL')}\"\r\n [ngStyle]=\"{'border-color': 'var(--' + type.iconName + ')'}\">\r\n <button mat-mini-fab=\"\" type=\"button\" (click)=\"changePropertyType(i)\"\r\n [ngStyle]=\"{'background-color': 'var(--' + type.iconName + ')'}\">\r\n <span class=\"property-type-list__icon ic-property-{{type.iconName}}\"></span>\r\n </button>\r\n </div>\r\n <span class=\"property-type-list__label\">{{type.shortName}}</span>\r\n <ng-template [ngIf]=\"type.value === 'RESIDENTIAL' && propertyTypeSelected.value === 'RESIDENTIAL'\">\r\n <div class=\"property-type-list__divider property-type-list__divider--left\"></div>\r\n <div class=\"property-type-list__divider property-type-list__divider--right\"></div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n <ng-template [ngIf]=\"isOPI\">\r\n <div class=\"all\">\r\n <button mat-raised-button=\"\" type=\"button\" class=\"all__button\"\r\n [ngClass]=\"{'all__button--active': propertyTypeSelected.value === 'NONE'}\"\r\n (click)=\"changePropertyType(9)\">Todo\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template [ngIf]=\"newFilters && propertyTypeSelected.value !== 'NONE'\">\r\n <div class=\"--padding\">\r\n <h4 class=\"--title\">\r\n Estado\r\n </h4>\r\n <div class=\"budget\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Estado</mat-label>\r\n <mat-select formControlName=\"state\">\r\n <ng-container *ngFor=\"let state of stateOptions\">\r\n <mat-option [value]=\"state.name\" (click)=\"changeState(state.name)\">\r\n {{state.name}} ({{state.total}})\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"filtersForm.controls['state'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'NONE'\">\r\n <mat-divider></mat-divider>\r\n <div class=\"--padding\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-price\"></span>\r\n Presupuesto\r\n </h4>\r\n <div class=\"budget\">\r\n <!-- Min price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00EDnimo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"Min price\" formControlName=\"minPrice\" min=\"1\" (focusout)=\"changeFilterStatus()\">\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('pattern')\">\r\n Debe ingresar solo n\u00FAmeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Min price [END] -->\r\n <!-- Max price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00E1ximo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"max price\" formControlName=\"maxPrice\" (focusout)=\"changeFilterStatus()\">\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('pattern')\">\r\n Debe ingresar solo n\u00FAmeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('currency')\">\r\n Valor m\u00EDnimo excedido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Max price [END] -->\r\n </div>\r\n <div class=\"features\">\r\n <ng-template\r\n [ngIf]=\"propertyTypeSelected.value === 'RESIDENTIAL' || propertyTypeSelected.value === 'HOUSE' || propertyTypeSelected.value === 'APARTMENT'\">\r\n <div class=\"features__bedrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bedroom\"></span>\r\n Habitaciones\r\n </h4>\r\n <mat-button-toggle-group name=\"bedrooms\" aria-label=\"Bedrooms\" formControlName=\"bedrooms\">\r\n <ng-container *ngFor=\"let bedroom of bedroomsList\">\r\n <ng-template [ngIf]=\"bedroom === 0\" [ngIfElse]=\"bedroomNumber\">\r\n <mat-button-toggle [value]=\"bedroom\" (click)=\"changeFilterStatus()\" class=\"features__bedrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bedroomNumber>\r\n <mat-button-toggle [value]=\"bedroom\" (click)=\"changeFilterStatus()\">{{bedroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"features__bathrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bathroom\"></span>\r\n Ba\u00F1os\r\n </h4>\r\n <mat-button-toggle-group name=\"bathrooms\" aria-label=\"Bathrooms\" formControlName=\"bathrooms\">\r\n <ng-container *ngFor=\"let bathroom of bathroomsList\">\r\n <ng-template [ngIf]=\"bathroom === 0\" [ngIfElse]=\"bathroomNumber\">\r\n <mat-button-toggle [value]=\"bathroom\" (click)=\"changeFilterStatus()\"\r\n class=\"features__bathrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bathroomNumber>\r\n <mat-button-toggle [value]=\"bathroom\" (click)=\"changeFilterStatus()\">{{bathroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'LAND' && propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__parking-places\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-parking\"></span>\r\n Estacionamientos\r\n </h4>\r\n <mat-button-toggle-group name=\"parking_places\" aria-label=\"Parking Places\"\r\n formControlName=\"parkingPlaces\">\r\n <ng-container *ngFor=\"let parking of parkingPlacesList\">\r\n <ng-template [ngIf]=\"parking === 0\" [ngIfElse]=\"parkingNumber\">\r\n <mat-button-toggle [value]=\"parking\" (click)=\"changeFilterStatus()\"\r\n class=\"features__parking-places--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #parkingNumber>\r\n <mat-button-toggle [value]=\"parking\" (click)=\"changeFilterStatus()\">{{parking}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__surface\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-surface\"></span>\r\n Superficie\r\n </h4>\r\n <div class=\"--row\">\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>\u00C1rea</mat-label>\r\n <mat-select formControlName=\"surface\" (selectionChange)=\"changeFilterStatus()\">\r\n <mat-option [value]=\"0\" (click)=\"changeFilterStatus()\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let surface of surfaceList\">\r\n <mat-option [value]=\"surface\" (click)=\"changeFilterStatus()\">\r\n {{surface}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group name=\"unit_surface\" aria-label=\"Unit surface\" formControlName=\"surfaceUnit\">\r\n <mat-button-toggle (click)=\"changeFilterStatus()\" [value]=\"0\">m2</mat-button-toggle>\r\n <mat-button-toggle (click)=\"changeFilterStatus()\" [value]=\"1\">sq ft</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value === 'INVESTMENT'\">\r\n <div class=\"feature investment\">\r\n <h4 class=\"--title\">Retorno de inversi\u00F3n</h4>\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>Porcentaje</mat-label>\r\n <mat-select formControlName=\"roi\">\r\n <mat-option [value]=\"0\" (click)=\"changeFilterStatus()\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let roi of roiList\">\r\n <mat-option [value]=\"roi\" (click)=\"changeFilterStatus()\">\r\n {{roi}}%\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n <div class=\"amenities-container\">\r\n <ng-template [ngIf]=\"propertyTypeSelected.amenities.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Amenidades\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let amenity of propertyTypeSelected.amenities\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(amenity)\">\r\n <span class=\"amenity__icon ic-amenities-{{amenity.iconName}}\"\r\n [ngClass]=\"{'amenity--active': amenity.checked}\"></span>\r\n <span class=\"amenity__label\">{{amenity.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.features.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Caracteristicas de la ubicaci\u00F3n\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let feature of propertyTypeSelected.features\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(feature)\">\r\n <span class=\"amenity__icon ic-amenities-{{feature.iconName}}\"\r\n [ngClass]=\"{'amenity--active': feature.checked}\"></span>\r\n <span class=\"amenity__label\">{{feature.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <button mat-flat-button type=\"submit\" class=\"apply-button\" color=\"primary\" [disabled]=\"(propertyTotal === 0 || filtersForm.invalid) && newFilters\"\r\n (click)=\"applyFilters()\">\r\n VER <span *ngIf=\"propertyTotal > 0 && newFilters\">{{propertyTotal}}</span> {{(propertyTotal === 1 ? 'PROPIEDAD' : 'PROPIEDADES')}}\r\n </button>\r\n </div>\r\n <!--div class=\"actions\">\r\n <ng-template [ngIf]=\"!isOPI\" [ngIfElse]=\"closeButtonTemplate\">\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"saveSearchByFilters()\">\r\n GUARDAR\r\n </button>\r\n </ng-template>\r\n <ng-template #closeButtonTemplate>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"close()\">CERRAR</button>\r\n </ng-template>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\"\r\n (click)=\"resetFilters()\">LIMPIAR\r\n </button>\r\n </div-->\r\n</form>\r\n",
3370
+ template: "<!-- Todo: [FiltersComponent] Refactor code -->\r\n<form class=\"filters\" [formGroup]=\"filtersForm\" [ngClass]=\"{'filters--opened': propertyTypeSelected.value !== 'NONE'}\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <div class=\"float-button-close\">\r\n <button mat-icon-button type=\"button\" class=\"float-button-close__button\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"body\">\r\n <div class=\"--padding\">\r\n <div class=\"header\">\r\n <mat-form-field class=\"currency\" appearance=\"outline\">\r\n <mat-label>Divisa</mat-label>\r\n <mat-select formControlName=\"currency\">\r\n <ng-container *ngFor=\"let currency of currencyList\">\r\n <mat-option [value]=\"currency.type\" (click)=\"changeCurrency(currency.type)\">\r\n {{currency.type}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group class=\"offering-type-list\" name=\"offering-type\" formControlName=\"offering\"\r\n aria-label=\"Offering type\">\r\n <mat-button-toggle (click)=\"changeOffering('SALE')\" [value]=\"'SALE'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'ROOM'\">\r\n Venta\r\n </mat-button-toggle>\r\n <mat-button-toggle (click)=\"changeOffering('RENT')\" [value]=\"'RENT'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'INVESTMENT'\">\r\n Renta\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"mat-elevation-z2\" [ngClass]=\"{'property-type-list': !newFilters, 'new-property-type-list': newFilters}\">\r\n <ng-container *ngFor=\"let type of propertyTypeList; let i = index\">\r\n <ng-template [ngIf]=\"type.value !== 'NONE' && (type.value !== 'ROOM' && newFilters)\">\r\n <div class=\"property-type-list__button\">\r\n <div\r\n class=\"property-type-list__border\"\r\n [ngClass]=\"{'property-type-list__border--active': (type.value === propertyTypeSelected.value) || (propertyTypeSelected.value === 'NONE') || ((type.value === 'HOUSE' || type.value === 'APARTMENT') && propertyTypeSelected.value === 'RESIDENTIAL')}\"\r\n [ngStyle]=\"{'border-color': 'var(--' + type.iconName + ')'}\">\r\n <button mat-mini-fab=\"\" type=\"button\" (click)=\"changePropertyType(i)\"\r\n [ngStyle]=\"{'background-color': 'var(--' + type.iconName + ')'}\">\r\n <span class=\"property-type-list__icon ic-property-{{type.iconName}}\"></span>\r\n </button>\r\n </div>\r\n <span class=\"property-type-list__label\">{{type.shortName}}</span>\r\n <ng-template [ngIf]=\"type.value === 'RESIDENTIAL' && propertyTypeSelected.value === 'RESIDENTIAL'\">\r\n <div class=\"property-type-list__divider property-type-list__divider--left\"></div>\r\n <div class=\"property-type-list__divider property-type-list__divider--right\"></div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n <ng-template [ngIf]=\"isOPI\">\r\n <div class=\"all\">\r\n <button mat-raised-button=\"\" type=\"button\" class=\"all__button\"\r\n [ngClass]=\"{'all__button--active': propertyTypeSelected.value === 'NONE'}\"\r\n (click)=\"changePropertyType(9)\">Todo\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'NONE'\">\r\n <mat-divider></mat-divider>\r\n <div class=\"--padding\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-price\"></span>\r\n Presupuesto\r\n </h4>\r\n <div class=\"budget\">\r\n <!-- Min price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00EDnimo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"Min price\" formControlName=\"minPrice\" min=\"1\" >\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('pattern')\">\r\n Debe ingresar solo n\u00FAmeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Min price [END] -->\r\n <!-- Max price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00E1ximo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"max price\" formControlName=\"maxPrice\">\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('pattern')\">\r\n Debe ingresar solo n\u00FAmeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('currency')\">\r\n Valor m\u00EDnimo excedido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Max price [END] -->\r\n </div>\r\n <div class=\"features\">\r\n <ng-template\r\n [ngIf]=\"propertyTypeSelected.value === 'RESIDENTIAL' || propertyTypeSelected.value === 'HOUSE' || propertyTypeSelected.value === 'APARTMENT'\">\r\n <div class=\"features__bedrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bedroom\"></span>\r\n Habitaciones\r\n </h4>\r\n <mat-button-toggle-group name=\"bedrooms\" aria-label=\"Bedrooms\" formControlName=\"bedrooms\">\r\n <ng-container *ngFor=\"let bedroom of bedroomsList\">\r\n <ng-template [ngIf]=\"bedroom === 0\" [ngIfElse]=\"bedroomNumber\">\r\n <mat-button-toggle [value]=\"bedroom\" class=\"features__bedrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bedroomNumber>\r\n <mat-button-toggle [value]=\"bedroom\">{{bedroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"features__bathrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bathroom\"></span>\r\n Ba\u00F1os\r\n </h4>\r\n <mat-button-toggle-group name=\"bathrooms\" aria-label=\"Bathrooms\" formControlName=\"bathrooms\">\r\n <ng-container *ngFor=\"let bathroom of bathroomsList\">\r\n <ng-template [ngIf]=\"bathroom === 0\" [ngIfElse]=\"bathroomNumber\">\r\n <mat-button-toggle [value]=\"bathroom\"\r\n class=\"features__bathrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bathroomNumber>\r\n <mat-button-toggle [value]=\"bathroom\">{{bathroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'LAND' && propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__parking-places\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-parking\"></span>\r\n Estacionamientos\r\n </h4>\r\n <mat-button-toggle-group name=\"parking_places\" aria-label=\"Parking Places\"\r\n formControlName=\"parkingPlaces\">\r\n <ng-container *ngFor=\"let parking of parkingPlacesList\">\r\n <ng-template [ngIf]=\"parking === 0\" [ngIfElse]=\"parkingNumber\">\r\n <mat-button-toggle [value]=\"parking\"\r\n class=\"features__parking-places--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #parkingNumber>\r\n <mat-button-toggle [value]=\"parking\">{{parking}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__surface\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-surface\"></span>\r\n Superficie\r\n </h4>\r\n <div class=\"--row\">\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>\u00C1rea</mat-label>\r\n <mat-select formControlName=\"surface\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let surface of surfaceList\">\r\n <mat-option [value]=\"surface\">\r\n {{surface}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group name=\"unit_surface\" aria-label=\"Unit surface\" formControlName=\"surfaceUnit\">\r\n <mat-button-toggle [value]=\"0\">m2</mat-button-toggle>\r\n <mat-button-toggle [value]=\"1\">sq ft</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value === 'INVESTMENT'\">\r\n <div class=\"feature investment\">\r\n <h4 class=\"--title\">Retorno de inversi\u00F3n</h4>\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>Porcentaje</mat-label>\r\n <mat-select formControlName=\"roi\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let roi of roiList\">\r\n <mat-option [value]=\"roi\">\r\n {{roi}}%\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n <div class=\"amenities-container\">\r\n <ng-template [ngIf]=\"propertyTypeSelected.amenities.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Amenidades\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let amenity of propertyTypeSelected.amenities\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(amenity)\">\r\n <span class=\"amenity__icon ic-amenities-{{amenity.iconName}}\"\r\n [ngClass]=\"{'amenity--active': amenity.checked}\"></span>\r\n <span class=\"amenity__label\">{{amenity.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.features.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Caracteristicas de la ubicaci\u00F3n\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let feature of propertyTypeSelected.features\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(feature)\">\r\n <span class=\"amenity__icon ic-amenities-{{feature.iconName}}\"\r\n [ngClass]=\"{'amenity--active': feature.checked}\"></span>\r\n <span class=\"amenity__label\">{{feature.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <button mat-flat-button type=\"submit\" class=\"apply-button\" color=\"primary\" (click)=\"applyFilters()\">\r\n VER PROPIEDADES\r\n </button>\r\n </div>\r\n <!--div class=\"actions\">\r\n <ng-template [ngIf]=\"!isOPI\" [ngIfElse]=\"closeButtonTemplate\">\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"saveSearchByFilters()\">\r\n GUARDAR\r\n </button>\r\n </ng-template>\r\n <ng-template #closeButtonTemplate>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"close()\">CERRAR</button>\r\n </ng-template>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\"\r\n (click)=\"resetFilters()\">LIMPIAR\r\n </button>\r\n </div-->\r\n</form>\r\n",
3456
3371
  styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;display:flex;background:var(--overlay);transition:250ms}.filters--opened{height:90%!important}@media screen and (max-width:600px){.filters--opened{width:100%!important;height:100%!important;top:0!important}}.filters{width:700px;height:auto;margin:auto;border-radius:16px;position:relative;overflow:hidden;transition:150ms}.filters .--padding{padding:16px 48px;box-sizing:border-box}.filters .--row{display:flex;justify-content:space-between;align-items:flex-start}.filters .--col{width:45%}.filters .--title{margin:16px 0;color:#707070}.filters .float-button-close{position:absolute;top:16px;right:16px;height:16px;border-radius:50%}.filters .apply-button{width:100%;position:absolute;bottom:0}.filters .body{height:calc(100% - 36px);overflow-x:hidden;overflow-y:auto}.filters .header{display:flex;align-items:center;justify-content:space-around;margin-bottom:8px}.filters .listing-types{width:100%;border-radius:16px}.filters .listing-types mat-button-toggle{width:50%;height:36px}.filters ::ng-deep .listing-types mat-button-toggle button{height:36px}.filters ::ng-deep .listing-types mat-button-toggle button .mat-button-toggle-label-content{line-height:36px}.filters .currency ::ng-deep .mat-form-field-wrapper{padding:0}@media screen and (max-width:600px){.filters{width:100%;position:absolute;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;top:initial;bottom:0;left:0}.filters .--padding{padding:16px 24px}.filters .header{flex-direction:column}.filters .currency{width:70%;margin-bottom:8px}}.filters .offering-type-list{width:40%;border-radius:16px}.filters .offering-type-list mat-button-toggle{width:50%;height:36px}.filters ::ng-deep .offering-type-list mat-button-toggle button{height:36px}.filters ::ng-deep .offering-type-list mat-button-toggle button .mat-button-toggle-label-content{line-height:36px}.filters .property-type-list{display:-ms-grid;display:grid;-ms-grid-columns:(calc(100% / 9))[9];grid-template-columns:repeat(9,calc(100% / 9));-ms-grid-rows:(80px)[1];grid-template-rows:repeat(1,80px);border-radius:40px;padding:8px;box-sizing:border-box}@media screen and (max-width:600px){.filters .offering-type-list{width:70%}.filters .property-type-list{-ms-grid-columns:(calc(100% / 3))[3];grid-template-columns:repeat(3,calc(100% / 3));-ms-grid-rows:(80px)[3];grid-template-rows:repeat(3,80px)}}.filters .new-property-type-list{display:-ms-grid;display:grid;-ms-grid-columns:(calc(100% / 8))[8];grid-template-columns:repeat(8,calc(100% / 8));-ms-grid-rows:(80px)[1];grid-template-rows:repeat(1,80px);border-radius:40px;padding:8px;box-sizing:border-box}.filters .property-type-list .property-type-list__button{margin:auto;position:relative}.filters .property-type-list .property-type-list__button button{box-shadow:none}.filters .property-type-list .property-type-list__icon{width:24px;height:24px;font-size:24px}.filters .property-type-list .property-type-list__border{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;opacity:.7;border-radius:50%;box-sizing:border-box}.filters .property-type-list .property-type-list__border--active{padding:4px;border:2px solid;opacity:1!important}.filters .property-type-list .property-type-list__label{font-size:12px;display:block;margin:8px 0;text-align:center}.filters .property-type-list .property-type-list__divider{width:14%;height:2px;background:#707070;top:30%;position:absolute}.filters .property-type-list .property-type-list__divider--left{left:-9px}.filters .property-type-list .property-type-list__divider--right{right:-9px}@media screen and (max-width:600px){.filters .new-property-type-list{-ms-grid-columns:(calc(100% / 3))[3];grid-template-columns:repeat(3,calc(100% / 3));-ms-grid-rows:(80px)[3];grid-template-rows:repeat(3,80px)}.filters .property-type-list .property-type-list__divider{width:60%}.filters .property-type-list .property-type-list__divider--left{left:-38px}.filters .property-type-list .property-type-list__divider--right{right:-38px}}.filters .new-property-type-list .property-type-list__button{margin:auto;position:relative}.filters .new-property-type-list .property-type-list__button button{box-shadow:none}.filters .new-property-type-list .property-type-list__icon{width:24px;height:24px;font-size:24px}.filters .new-property-type-list .property-type-list__border{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;opacity:.7;border-radius:50%;box-sizing:border-box}.filters .new-property-type-list .property-type-list__border--active{padding:4px;border:2px solid;opacity:1!important}.filters .new-property-type-list .property-type-list__label{font-size:12px;display:block;margin:8px 0;text-align:center}.filters .new-property-type-list .property-type-list__divider{width:14%;height:2px;background:#707070;top:30%;position:absolute}.filters .new-property-type-list .property-type-list__divider--left{left:-9px}.filters .new-property-type-list .property-type-list__divider--right{right:-9px}@media screen and (max-width:600px){.filters .new-property-type-list .property-type-list__divider{width:60%}.filters .new-property-type-list .property-type-list__divider--left{left:-38px}.filters .new-property-type-list .property-type-list__divider--right{right:-38px}}.filters .all{width:100%;margin:8px 0}.filters .all .all__button{margin:0 40%;width:20%;border-radius:16px;background:0 0}.filters .budget{display:flex}.filters .budget mat-form-field{margin-right:8px;width:calc(100% / 2 - 8px)}.filters .features{display:-ms-grid;display:grid;-ms-grid-columns:(50%)[2];grid-template-columns:repeat(2,50%);-ms-grid-rows:(auto)[2];grid-template-rows:repeat(2,auto)}@media screen and (max-width:600px){.filters .all .all__button{width:50%;margin:0 25%}.filters .features{display:block}.filters .amenities-container{flex-direction:column}}.filters .features .features__bathrooms mat-button-toggle-group,.filters .features .features__bedrooms mat-button-toggle-group,.filters .features .features__parking-places mat-button-toggle-group{width:calc(100% - 16px)}.filters .features .features__bathrooms mat-button-toggle-group mat-button-toggle,.filters .features .features__bedrooms mat-button-toggle-group mat-button-toggle,.filters .features .features__parking-places mat-button-toggle-group mat-button-toggle{width:calc(100% / 5)}.filters .features .features__bedrooms--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__bathrooms--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__parking-places--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__surface mat-button-toggle-group{margin-top:6px;margin-right:16px}.filters .amenities-container{width:100%;-ms-grid-column:1;grid-column-start:1;-ms-grid-column-span:2;grid-column-end:3;display:flex}.filters .amenities{width:50%}@media screen and (max-width:600px){.filters .amenities{width:100%}}.filters .amenities__amenity{width:calc(100% / 3 - 24px);height:120px;border-radius:8px;padding:8px;display:inline-flex;flex-direction:column;align-items:center;box-sizing:border-box;margin:0 8px 8px 0;cursor:pointer}.filters .amenity__icon{display:block;width:24px;height:24px;margin:8px auto;font-size:24px;padding:8px;border-radius:50%}.filters .amenity__label{width:100%;display:block;text-align:center;font-size:12px;margin:auto}.filters .actions{display:flex}.filters .actions .action__button{width:50%;border-radius:0}"]
3457
3372
  }] }
3458
3373
  ];
@@ -3467,10 +3382,7 @@
3467
3382
  ]; };
3468
3383
  FiltersComponent.propDecorators = {
3469
3384
  utils: [{ type: core.Input }],
3470
- newFilters: [{ type: core.Input }],
3471
- stateOptions: [{ type: core.Input }],
3472
- propertyTotal: [{ type: core.Input }],
3473
- changeFilter: [{ type: core.Output }]
3385
+ newFilters: [{ type: core.Input }]
3474
3386
  };
3475
3387
  return FiltersComponent;
3476
3388
  }());
@@ -7796,88 +7708,6 @@
7796
7708
  response.markers = list;
7797
7709
  return response;
7798
7710
  };
7799
- /**
7800
- * @param {?} list
7801
- * @return {?}
7802
- */
7803
- MarkersService.prototype.buildNewSpider = /**
7804
- * @param {?} list
7805
- * @return {?}
7806
- */
7807
- function (list) {
7808
- var e_1, _a;
7809
- /** @type {?} */
7810
- var response = { markers: [], polyLines: [] };
7811
- /** @type {?} */
7812
- var newList = [];
7813
- try {
7814
- for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
7815
- var listElement = list_1_1.value;
7816
- newList.push({
7817
- id: listElement.id,
7818
- location: listElement.location,
7819
- price: listElement.price,
7820
- currency: listElement.currency,
7821
- url: listElement.url,
7822
- type: listElement.type,
7823
- extras: {}
7824
- });
7825
- }
7826
- }
7827
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
7828
- finally {
7829
- try {
7830
- if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
7831
- }
7832
- finally { if (e_1) throw e_1.error; }
7833
- }
7834
- newList.map((/**
7835
- * @param {?} el
7836
- * @return {?}
7837
- */
7838
- function (el) {
7839
- el.extras['repeat'] = false;
7840
- /** @type {?} */
7841
- var size = newList.filter((/**
7842
- * @param {?} item
7843
- * @return {?}
7844
- */
7845
- function (item) {
7846
- return el.location.latitude === item.location.latitude && el.location.longitude === item.location.longitude;
7847
- }));
7848
- /** @type {?} */
7849
- var distance = 30 * size.length / 2.0;
7850
- /** @type {?} */
7851
- var radiansBetweenAnnotations = (Math.PI * 2) / size.length;
7852
- if (!el.extras['repeat'] && size.length > 1) {
7853
- /** @type {?} */
7854
- var locationShare = Object.assign({}, el.location);
7855
- for (var i = 0; i < size.length; i++) {
7856
- /** @type {?} */
7857
- var heading = radiansBetweenAnnotations * i;
7858
- size[i]['repeat'] = true;
7859
- /** @type {?} */
7860
- var newLocation = MarkersService.calculateLocationFrom(locationShare, heading, distance);
7861
- response.polyLines.push({
7862
- path: [
7863
- {
7864
- latitude: Number(locationShare.latitude),
7865
- longitude: Number(locationShare.longitude)
7866
- },
7867
- {
7868
- latitude: Number(newLocation.latitude),
7869
- longitude: Number(newLocation.longitude)
7870
- }
7871
- ]
7872
- });
7873
- size[i].location = newLocation;
7874
- }
7875
- }
7876
- return el;
7877
- }));
7878
- response.markers = newList;
7879
- return response;
7880
- };
7881
7711
  /**
7882
7712
  * @private
7883
7713
  * @param {?} entity