UNPKG

ngx-filters

Version:

This library was generated for all type of frameworks such as Angular Material, Prime Ng, etc. Providing Filters such as Number Box, TextBox, Date, Single Select, Multi Select And True/False Filters for grids or list.

62 lines 29.8 kB
import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewEncapsulation } from '@angular/core'; import { NgxFiltersService } from './ngx-filters.service'; import { FilterTypes } from "./ngx-types"; export class NgxFiltersComponent { constructor(injector, filtersService, el) { this.filtersService = filtersService; this.el = el; this.filters = []; this.loading = true; this.filterCount = 0; this.filterCountChange = new EventEmitter(); this.clear = new EventEmitter(); this.filtersService.conditionSource = this.filtersService.getConditionSource(); } ngOnInit() { } get filterTypes() { return FilterTypes; } onClear(filter) { this.filtersService.clearFilter(filter); this.filterCount -= 1; this.filterCountChange.emit(this.filterCount); this.clear.emit(); } ngAfterViewInit() { this._setClassToDialogContainer(this.el, 'ngx-mat-cdk-no-border-radius', 'mat-dialog-container'); this._setClassToDialogContainer(this.el, 'ngx-mat-cdk-filters-max-height', 'mat-dialog-content'); setTimeout(() => { this.loading = false; }, 500); } _setClassToDialogContainer(el, className, targetSelect) { var _a, _b; if ((_a = el === null || el === void 0 ? void 0 : el.nativeElement) === null || _a === void 0 ? void 0 : _a.parentElement) { const cls = (_b = el.nativeElement.parentElement.closest(targetSelect)) === null || _b === void 0 ? void 0 : _b.classList; if (cls && !cls.contains(className)) { cls.add(className); } } } } NgxFiltersComponent.decorators = [ { type: Component, args: [{ selector: 'ngx-filters', template: "<ng-container *ngFor=\"let filter of filters\">\n <ng-container *ngIf=\"!filter.hidden\">\n <ngx-conditions-selector-filter\n *ngIf=\"\n (filtersService.conditionSource | conditionFilter:filter).length > 0\n \"\n [filter]=\"filter\"\n [conditions]=\"filtersService.conditionSource | conditionFilter:filter\">\n </ngx-conditions-selector-filter>\n\n <ng-container [ngSwitch]=\"filter.type\">\n <ng-container *ngSwitchCase=\"filterTypes.DateTime\">\n <ngx-date-filter [filter]=\"filter\"></ngx-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filterTypes.TextBox\">\n <ngx-text-filter [filter]=\"filter\"></ngx-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filterTypes.Number\">\n <ngx-number-filter [filter]=\"filter\"></ngx-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filterTypes.SingleSelect\">\n <ngx-select-filter [filter]=\"filter\"></ngx-select-filter>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"filterTypes.MultiSelect\">\n <ngx-multi-select-filter [filter]=\"filter\"></ngx-multi-select-filter>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"filterTypes.TrueFalse\">\n <ngx-true-false-filter [filter]=\"filter\"></ngx-true-false-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<!--<ng-template #textBoxRef>-->\n\n<!--</ng-template>-->\n<!--<div class=\"ngx-mat-filters-wrapper\">-->\n<!-- <div [hidden]=\"loading\">-->\n<!-- <div class=\"ngx-mat-filter-items\" [class.xs]=\"isXs\">-->\n\n<!-- <ng-container *ngIf=\"filters && filters.length > 0\">-->\n<!--&lt;!&ndash; <mat-accordion>&ndash;&gt;-->\n<!-- <div *ngFor=\"let filter of filters\" class=\"ngx-mat-filter-item\">-->\n<!-- <ng-container *ngIf=\"!filter.hidden\">-->\n<!-- <ng-container *ngIf=\"filter.type == filterTypes.TrueFalse\">-->\n<!-- <div-->\n<!-- (click)=\"$event.stopPropagation();filter.value = !filter.value\"-->\n<!-- class=\"filter-true-false ngx-mat-filters-header mat-expansion-panel-header\"-->\n<!-- [style.padding]=\"isXs? 0: ''\">-->\n<!-- <div class=\"filter-header\">-->\n\n<!-- <button *ngIf=\"filter.hasFilter\" [color]=\"matColor\"-->\n<!-- (click)=\"$event.stopPropagation();filter.value=null;filter.hasFilter=false;clear.emit()\"-->\n<!-- type=\"button\"-->\n<!-- mat-icon-button>-->\n<!-- &lt;!&ndash; <i class=\"fal fa-eraser\"></i>&ndash;&gt;-->\n<!-- <ng-container [ngTemplateOutlet]=\"clearIconRef\">-->\n\n<!-- </ng-container>-->\n<!-- &lt;!&ndash; <ng-container *ngIf=\"filter.hasFilter\" [ngTemplateOutlet]=\"filterIconRef\">&ndash;&gt;-->\n\n<!-- &lt;!&ndash; </ng-container>&ndash;&gt;-->\n\n<!-- &lt;!&ndash; <mat-icon>cleaning_services</mat-icon>&ndash;&gt;-->\n<!-- </button>-->\n<!-- &lt;!&ndash; <i class=\"fal fa-filter text-success\"&ndash;&gt;-->\n<!-- &lt;!&ndash; *ngIf=\"filter | hasFilter\"&ndash;&gt;-->\n<!-- &lt;!&ndash; ></i>&ndash;&gt;-->\n<!-- &lt;!&ndash; <mat-icon class=\"filter-text-success\" *ngIf=\"filter.hasFilter\">filter_alt</mat-icon>&ndash;&gt;-->\n<!-- <div class=\"ngx-mat-filter-item-display-label\">-->\n<!-- {{filter?.label}}-->\n<!-- </div>-->\n<!-- </div>-->\n\n<!-- <div>-->\n<!-- <mat-true-false-filter-->\n<!-- [filter]=\"filter\"></mat-true-false-filter>-->\n<!-- </div>-->\n<!-- </div>-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngIf=\"filter.type != filterTypes.TrueFalse\">-->\n\n<!--&lt;!&ndash; <mat-expansion-panel [style.width]=\"'100%'\" [expanded]=\"false\">&ndash;&gt;-->\n<!--&lt;!&ndash; <mat-expansion-panel-header class=\"ngx-mat-filters-header\" [style.padding]=\"isXs? 0: ''\">&ndash;&gt;-->\n<!-- <div class=\"filter-header\">-->\n<!-- <button *ngIf=\"filter.hasFilter\" [color]=\"matColor\"-->\n<!-- (click)=\"$event.stopPropagation();onClear(filter)\"-->\n<!-- type=\"button\"-->\n<!-- mat-icon-button>-->\n<!-- &lt;!&ndash; <i class=\"fal fa-eraser\"></i>&ndash;&gt;-->\n<!-- <ng-container [ngTemplateOutlet]=\"clearIconRef\">-->\n\n<!-- </ng-container>-->\n<!-- &lt;!&ndash; <ng-container *ngIf=\"filter.hasFilter\" [ngTemplateOutlet]=\"filterIconRef\">&ndash;&gt;-->\n\n<!-- &lt;!&ndash; </ng-container>&ndash;&gt;-->\n\n<!-- </button>-->\n<!-- &lt;!&ndash; <i class=\"fal fa-filter text-success\"&ndash;&gt;-->\n<!-- &lt;!&ndash; *ngIf=\"filter | hasFilter\"></i>&ndash;&gt;-->\n\n<!-- &lt;!&ndash; <mat-icon class=\"filter-text-success\" *ngIf=\"filter.hasFilter\">filter_alt</mat-icon>&ndash;&gt;-->\n\n<!-- <div class=\"ngx-mat-filter-item-display-label\">-->\n\n<!-- {{filter?.label}}-->\n<!-- &lt;!&ndash; {{filtersService.getDisplayLabel(filter)}}&ndash;&gt;-->\n<!-- </div>-->\n<!-- </div>-->\n<!--&lt;!&ndash; </mat-expansion-panel-header>&ndash;&gt;-->\n<!-- <ng-container-->\n<!-- *ngIf=\"!filter.hiddenCondition\"-->\n<!-- >-->\n<!-- <ngx-filter-mat-conditions-selector-->\n<!-- *ngIf=\"-->\n\n<!-- (filtersService.conditionSource | conditionFilter:filter.type).length > 0-->\n<!-- \"-->\n<!-- [filter]=\"filter\"-->\n<!-- [conditions]=\"filtersService.conditionSource | conditionFilter:filter.type\">-->\n<!-- </ngx-filter-mat-conditions-selector>-->\n\n<!-- </ng-container>-->\n<!-- <ng-container [ngSwitch]=\"filter.type\">-->\n<!-- <ng-container *ngSwitchCase=\"filterTypes.DateTime\">-->\n<!-- <ng-container *ngIf=\"filtersService.useJalaliDate\">-->\n<!--&lt;!&ndash; <date-time-jalali-filter [filter]=\"filter\"></date-time-jalali-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngIf=\"!filtersService.useJalaliDate\">-->\n<!--&lt;!&ndash; <mat-date-time-filter [filter]=\"filter\"></mat-date-time-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n\n<!-- </ng-container>-->\n<!-- <ng-container *ngSwitchCase=\"filterTypes.Number\">-->\n<!--&lt;!&ndash; <mat-number-box-filter [filter]=\"filter\"></mat-number-box-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngSwitchCase=\"filterTypes.MultiSelect\">-->\n<!--&lt;!&ndash; <mat-select-box-filter [filter]=\"filter\"></mat-select-box-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngSwitchCase=\"filterTypes.SingleSelect\">-->\n<!--&lt;!&ndash; <mat-select-box-filter [filter]=\"filter\"></mat-select-box-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngSwitchCase=\"filterTypes.TextBox\">-->\n<!--&lt;!&ndash; <mat-text-box-filter [filter]=\"filter\"></mat-text-box-filter>&ndash;&gt;-->\n<!-- </ng-container>-->\n<!-- </ng-container>-->\n\n<!--&lt;!&ndash; </mat-expansion-panel>&ndash;&gt;-->\n<!-- </ng-container>-->\n\n<!-- </ng-container>-->\n\n<!-- </div>-->\n<!--&lt;!&ndash; </mat-accordion>&ndash;&gt;-->\n\n\n<!-- </ng-container>-->\n\n<!-- </div>-->\n<!-- <div class=\"ngx-mat-filters-actions\"></div>-->\n<!-- </div>-->\n<!-- <div *ngIf=\"loading\" class=\"filter-spinner-container\">-->\n<!--&lt;!&ndash; <mat-spinner [color]=\"matColor\" [strokeWidth]=\"4\" [diameter]=\"55\"></mat-spinner>&ndash;&gt;-->\n<!-- </div>-->\n\n<!--</div>-->\n\n<!--<ng-template #clearIconRef>-->\n<!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eraser-fill\"-->\n<!-- viewBox=\"0 0 16 16\">-->\n<!-- <path-->\n<!-- d=\"M8.086 2.207a2 2 0 0 1 2.828 0l3.879 3.879a2 2 0 0 1 0 2.828l-5.5 5.5A2 2 0 0 1 7.879 15H5.12a2 2 0 0 1-1.414-.586l-2.5-2.5a2 2 0 0 1 0-2.828l6.879-6.879zm.66 11.34L3.453 8.254 1.914 9.793a1 1 0 0 0 0 1.414l2.5 2.5a1 1 0 0 0 .707.293H7.88a1 1 0 0 0 .707-.293l.16-.16z\"/>-->\n<!-- </svg>-->\n<!--</ng-template>-->\n<!--<ng-template #filterIconRef>-->\n<!-- <svg class=\"filter-text-success\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"-->\n<!-- viewBox=\"0 0 16 16\">-->\n<!-- <path-->\n<!-- d=\"M1.5 1.5A.5.5 0 0 1 2 1h12a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.128.334L10 8.692V13.5a.5.5 0 0 1-.342.474l-3 1A.5.5 0 0 1 6 14.5V8.692L1.628 3.834A.5.5 0 0 1 1.5 3.5v-2z\"/>-->\n<!-- </svg>-->\n<!--</ng-template>-->\n\n\n<div class=\"ngx-filters\">\n\n</div>\n", encapsulation: ViewEncapsulation.None, styles: [".ngx-filters-component-wrapper{display:flex;flex-wrap:wrap;grid-gap:8px;width:100%}.ngx-filters-component-wrapper>div{box-sizing:border-box;flex:1 1 50%}.form-control{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#555;display:block;font-size:14px;height:34px;line-height:1.42857143;padding:6px 12px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.form-control:focus{border-color:#66afe9;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);outline:0}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:initial;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;margin-bottom:10px;margin-top:10px;position:relative}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{cursor:pointer;font-weight:400;margin-bottom:0;min-height:20px;padding-left:20px}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{margin-left:-20px;margin-top:4px\\9;position:absolute}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{cursor:pointer;display:inline-block;font-weight:400;margin-bottom:0;padding-left:20px;position:relative;vertical-align:middle}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-left:10px;margin-top:0}.form-control-static{margin-bottom:0;min-height:34px;padding-bottom:7px;padding-top:7px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{border-radius:3px;font-size:12px;height:30px;line-height:1.5;padding:5px 10px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{border-radius:3px;font-size:12px;height:30px;line-height:1.5;padding:5px 10px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{font-size:12px;height:30px;line-height:1.5;min-height:32px;padding:6px 10px}.input-lg{border-radius:6px;font-size:18px;height:46px;line-height:1.3333333;padding:10px 16px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{border-radius:6px;font-size:18px;height:46px;line-height:1.3333333;padding:10px 16px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{font-size:18px;height:46px;line-height:1.3333333;min-height:38px;padding:11px 16px}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{display:block;height:34px;line-height:34px;pointer-events:none;position:absolute;right:0;text-align:center;top:0;width:34px;z-index:2}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{height:46px;line-height:46px;width:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{height:30px;line-height:30px;width:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{background-color:#dff0d8;border-color:#3c763d;color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{background-color:#fcf8e3;border-color:#8a6d3b;color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{background-color:#f2dede;border-color:#a94442;color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{color:#737373;display:block;margin-bottom:10px;margin-top:5px}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;vertical-align:middle;width:auto}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-bottom:0;margin-top:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{margin-left:0;position:relative}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-bottom:0;margin-top:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{margin-bottom:0;padding-top:7px;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{font-size:18px;padding-top:11px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{font-size:12px;padding-top:6px}}.caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px dashed;border-top:4px solid\\9;display:inline-block;height:0;margin-left:2px;vertical-align:middle;width:0}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{-webkit-background-clip:padding-box;background-clip:padding-box;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);display:none;float:left;font-size:14px;left:0;list-style:none;margin:2px 0 0;min-width:160px;padding:5px 0;position:absolute;text-align:left;top:100%;z-index:1000}.dropdown-menu.pull-right{left:auto;right:0}.dropdown-menu .divider{background-color:#e5e5e5;height:1px;margin:9px 0;overflow:hidden}.dropdown-menu>li>a{clear:both;color:#333;display:block;font-weight:400;line-height:1.42857143;padding:3px 20px;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#f5f5f5;color:#262626;text-decoration:none}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#337ab7;color:#fff;outline:0;text-decoration:none}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{background-color:initial;background-image:none;cursor:not-allowed;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);text-decoration:none}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{color:#777;display:block;font-size:12px;line-height:1.42857143;padding:3px 20px;white-space:nowrap}.dropdown-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:990}.pull-right>.dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-bottom:4px dashed;border-bottom:4px solid\\9;border-top:0;content:\"\"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{bottom:100%;margin-bottom:2px;top:auto}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.clearfix:after,.clearfix:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:\" \";display:table}.clearfix:after,.form-horizontal .form-group:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{background-color:initial;border:0;color:transparent;font:0/0 a;text-shadow:none}.hidden{display:none!important}.affix{position:fixed}.ngx-filter-icon{position:relative}.ngx-filter-icon>div{padding:0 30px 0 15px}html[dir=rtl] .ngx-filter-icon>div{padding:0 15px 0 30px}.ngx-filter-icon:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAACJElEQVRoge3ZP4wMYRzG8c9yROSaa+RICAUJBQkNCadAIhoaKho6CjmVnEapozqVK0SnEoUoiESEgkZ1CQUhISTi/5/gVjHvmnGydzO7M7vvJvNNttrf+7zP8867s+9vhpq4uY3mgHzuZo03ZgVpdrsSPeav/6H5CiLlvwVf0KZwpGIj3ZDL2z1J2vsYrtROZwxLvDXxaK7CZZgOhbewpHJr+VmMGxJvT7B8vgEr8SwMuIZFVbrLyUJclXh6gdV5B67FqzDwiva/pV7QwFTw8gbriwpsxLsgMKU/d7IGLgYP77G5U6Gt+BSELpRirRjnwtxfsKNbsV34FgQnuhUrwJkw5w/sLUt0P34G4VNlic7BiTDXLxwsW/wwfmMGx8oWz3AkM8/RqiY5Ll2pQxXoH5Be+fEK9P9hQrp395Wouxvfg/bpEnXnpHU3+YqxEvS2Se+O50vQy00Dk2HiD9jShdYm6f/VZPfWitPApWDgLTZ0oLEOr0VwgsiegV5iTYGxq/BceqZr1xv1jOyp9ClW5BgT7Sl7qaSHLtp3PxBh3zOieJBoO9GWwbLqctPPPqNU6iCxUQeJjTpIbNRBYqMOEht1kNiog8RGVUG2V6TbM+5IGqYZXMZom7rSG6uyGcJJybOuJj7jrOQBRZbog7QYlVyRGYnhaezJfD8wQVqM4bHU+HXJO8qBC0Ky3cal2+2jAQ3SYvZ2G9ggLXbiIW7220hNlfwBBDfD337dOpoAAAAASUVORK5CYII=\");background-position:50%;background-size:contain;content:\"\";height:20px;position:absolute;right:0;top:50%;transform:translateY(-50%);width:20px}html[dir=rtl] .ngx-filter-icon:after{left:0;right:unset}"] },] } ]; NgxFiltersComponent.ctorParameters = () => [ { type: Injector }, { type: NgxFiltersService }, { type: ElementRef } ]; NgxFiltersComponent.propDecorators = { filters: [{ type: Input }], filterCount: [{ type: Input }], filterCountChange: [{ type: Output }], clear: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2EubW9oYW1tYWRpL3NvdXJjZS9yZXBvcy9NeWxpYnJhcnkvQW5ndWxhci5MaWJyYXJ5L2xpYnMvcHJvamVjdHMvbmd4LWZpbHRlcnMvc3JjLyIsInNvdXJjZXMiOlsibGliL25neC1maWx0ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFRaEQsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUNFLFFBQWtCLEVBQ1gsY0FBaUMsRUFDaEMsRUFBMkI7UUFENUIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2hDLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBVDVCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNOLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2Ysc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9uQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUdELGVBQWU7UUFFYixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSw4QkFBOEIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGdDQUFnQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFakcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsU0FBaUIsRUFBRSxZQUFvQjs7UUFDNUUsVUFBSSxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsYUFBYSwwQ0FBRSxhQUFhLEVBQUU7WUFDcEMsTUFBTSxHQUFHLFNBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQywwQ0FBRSxTQUFTLENBQUM7WUFDNUUsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Y7SUFDSCxDQUFDOzs7WUF0REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixnaVVBQTJDO2dCQUUzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQWRDLFFBQVE7WUFNRixpQkFBaUI7WUFSdkIsVUFBVTs7O3NCQW1CVCxLQUFLOzBCQUVMLEtBQUs7Z0NBQ0wsTUFBTTtvQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ3hGaWx0ZXJzU2VydmljZX0gZnJvbSAnLi9uZ3gtZmlsdGVycy5zZXJ2aWNlJztcbmltcG9ydCB7RmlsdGVyLCBGaWx0ZXJUeXBlc30gZnJvbSBcIi4vbmd4LXR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25neC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyQ291bnQgPSAwO1xuICBAT3V0cHV0KCkgZmlsdGVyQ291bnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgZmlsdGVyc1NlcnZpY2U6IE5neEZpbHRlcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICB0aGlzLmZpbHRlcnNTZXJ2aWNlLmNvbmRpdGlvblNvdXJjZSA9IHRoaXMuZmlsdGVyc1NlcnZpY2UuZ2V0Q29uZGl0aW9uU291cmNlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGdldCBmaWx0ZXJUeXBlcygpIHtcbiAgICByZXR1cm4gRmlsdGVyVHlwZXM7XG4gIH1cblxuICBvbkNsZWFyKGZpbHRlcjogRmlsdGVyKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzU2VydmljZS5jbGVhckZpbHRlcihmaWx0ZXIpO1xuICAgIHRoaXMuZmlsdGVyQ291bnQgLT0gMTtcbiAgICB0aGlzLmZpbHRlckNvdW50Q2hhbmdlLmVtaXQodGhpcy5maWx0ZXJDb3VudCk7XG4gICAgdGhpcy5jbGVhci5lbWl0KCk7XG4gIH1cblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuX3NldENsYXNzVG9EaWFsb2dDb250YWluZXIodGhpcy5lbCwgJ25neC1tYXQtY2RrLW5vLWJvcmRlci1yYWRpdXMnLCAnbWF0LWRpYWxvZy1jb250YWluZXInKTtcbiAgICB0aGlzLl9zZXRDbGFzc1RvRGlhbG9nQ29udGFpbmVyKHRoaXMuZWwsICduZ3gtbWF0LWNkay1maWx0ZXJzLW1heC1oZWlnaHQnLCAnbWF0LWRpYWxvZy1jb250ZW50Jyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRDbGFzc1RvRGlhbG9nQ29udGFpbmVyKGVsLCBjbGFzc05hbWU6IHN0cmluZywgdGFyZ2V0U2VsZWN0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZWw/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNscyA9IGVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbG9zZXN0KHRhcmdldFNlbGVjdCk/LmNsYXNzTGlzdDtcbiAgICAgIGlmIChjbHMgJiYgIWNscy5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICAgIGNscy5hZGQoY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==