UNPKG

@firestitch/filter

Version:
1 lines 60.9 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/forms"),require("@angular/material"),require("@angular/flex-layout"),require("@firestitch/datepicker"),require("@firestitch/chip"),require("@firestitch/label"),require("@firestitch/autocomplete"),require("@firestitch/autocomplete-chips"),require("@angular/common"),require("@angular/router"),require("@firestitch/store"),require("tsmodels"),require("rxjs/internal/util/isObservable"),require("date-fns"),require("lodash-es"),require("@firestitch/scroll"),require("@angular/cdk/portal"),require("@angular/cdk/overlay"),require("rxjs"),require("rxjs/operators"),require("@firestitch/common"),require("@firestitch/date"),require("@angular/core")):"function"==typeof define&&define.amd?define("@firestitch/filter",["exports","@angular/forms","@angular/material","@angular/flex-layout","@firestitch/datepicker","@firestitch/chip","@firestitch/label","@firestitch/autocomplete","@firestitch/autocomplete-chips","@angular/common","@angular/router","@firestitch/store","tsmodels","rxjs/internal/util/isObservable","date-fns","lodash-es","@firestitch/scroll","@angular/cdk/portal","@angular/cdk/overlay","rxjs","rxjs/operators","@firestitch/common","@firestitch/date","@angular/core"],t):t((e.firestitch=e.firestitch||{},e.firestitch.filter={}),e.ng.forms,e.ng.material,e.ng["flex-layout"],e.datepicker,e.chip,e.label,e.autocomplete,e.autocompleteChips,e.ng.common,e.ng.router,e.store,e.tsmodels,e.rxjs["internal/util/isObservable"],e.dateFns,e.lodashEs,e.scroll,e.ng.cdk.portal,e.ng.cdk.overlay,e.rxjs,e.rxjs.operators,e.common$1,e.date,e.ng.core)}(this,function(e,t,i,n,r,o,s,a,l,c,p,f,h,u,m,d,y,g,v,b,C,x,_,k){"use strict";var w=function(e,t){return(w=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function I(e,t){function i(){this.constructor=e}w(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var D=function(){return(D=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function A(e,t,i,n){var r,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;0<=a;a--)(r=e[a])&&(s=(o<3?r(s):3<o?r(t,i,s):r(t,i))||s);return 3<o&&s&&Object.defineProperty(t,i,s),s}function S(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function O(e){var t="function"==typeof Symbol&&e[Symbol.iterator],i=0;return t?t.call(e):{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}}}function T(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,r,o=i.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(n=o.next()).done;)s.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(i=o["return"])&&i.call(o)}finally{if(r)throw r.error}}return s}var j={Text:"text",Select:"select",Range:"range",Date:"date",DateTime:"datetime",DateRange:"daterange",DateTimeRange:"datetimerange",AutoComplete:"autocomplete",AutoCompleteChips:"autocompletechips",Checkbox:"checkbox",Chips:"chips",Keyword:"keyword"},F=function(o){function e(e,t,i,n){void 0===e&&(e={});var r=o.call(this)||this;return r._configItem=e,r._config=t,r._route=i,r._persists=n,r.initialLoading=!1,r.valueChanged=!1,r._pendingValues=!1,r._fromJSON(e),r}return I(e,o),Object.defineProperty(e.prototype,"hasPendingValues",{get:function(){return this._pendingValues},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"model",{get:function(){return this._model},set:function(e){this._model=e,this.checkIfValueChanged()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){return this._values},set:function(e){this._values=e,this.sanitize()},enumerable:!0,configurable:!0}),e.prototype._fromJSON=function(e){if(o.prototype._fromJSON.call(this,e),this.name&&d.isObject(this.name)&&(this.names=this.name,this.name=Object.keys(this.names).join("-")),this._config.persist){var t=this._persists[this._config.persist.name].data;t[this.name]&&this.parseAndSetValue(t[this.name])}this.sanitize()},e.prototype.initValues=function(){if(!d.isFunction(this._configItem.values)||this.isTypeAutocomplete()||this.isTypeAutocompleteChips())this.values=this._configItem.values;else{var e=this._configItem.values();this.values=e,u.isObservable(e)&&(this._pendingValues=!0)}},e.prototype.updateValue=function(t){var e,i=this;switch(this.type){case j.Select:if("__all"===t||null===t)return void(this.model=t);var n=null;if(this.multiple?(n=this.isolate&&Array.isArray(t)&&t[0]===this.isolate.value,!!Array.isArray(this.values)&&(t.every(function(t){return i.values.find(function(e){return e.value===t})})||n)):!!Array.isArray(this.values)&&this.values.some(function(e){return e.value===t}))return this.model=t,void(this.isolate&&(this.isolate.enabled=n));break;case j.Range:this.model=d.isObject(t)?D({},this.model,t):{};break;case j.Chips:this.model=[];break;case j.Date:case j.DateTime:this.model=t;break;case j.AutoCompleteChips:Array.isArray(t)?(e=this.model).push.apply(e,function r(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(T(arguments[t]));return e}(t)):d.isObject(t)?this.model.push(t):this.model=[];break;default:this.model=t}},e.prototype.loadValues=function(e){var t=this;if(void 0===e&&(e=!0),(e||!this.initialLoading&&this.hasPendingValues)&&(this.initialLoading=!0,d.isFunction(this._configItem.values)&&!this.isTypeAutocomplete()&&!this.isTypeAutocompleteChips())){var i=this._configItem.values();u.isObservable(i)?(this.values=[],i.pipe(C.take(1),C.takeUntil(this._config.destroy$)).subscribe(function(e){t.values=e,t._pendingValues=!1,t.initialLoading=!1,t.validateModel()})):this.values=i}},e.prototype.clear=function(){switch(this.valueChanged=!1,this.model=undefined,this.selectedValue="",this.type){case j.AutoComplete:this.model=null,this.search="";break;case j.AutoCompleteChips:case j.Chips:this.model=[],this.search="";break;case j.Checkbox:this.model=!1;break;case j.Select:this.multiple?this.model=[]:this.model=Array.isArray(this.values)&&this.values.some(function(e){return"__all"===e.value})?"__all":null,this.isolate&&(this.isolate.enabled=!1);break;case j.Range:this.model={};break;case j.Text:case j.Keyword:this.model="";break;case j.Date:case j.DateTime:this.model=null}},e.prototype.checkIfValueChanged=function(){switch(this.type){case j.AutoCompleteChips:this.valueChanged=this.model&&this.model.length;break;case j.Checkbox:this.valueChanged=this.model&&!1!==this.model;break;case j.Select:if(this.multiple)this.valueChanged=this.model&&this.model.length;else Array.isArray(this.values)&&this.values.some(function(e){return"__all"===e.value})&&this.model&&"__all"!==this.model?this.valueChanged=!0:this.valueChanged=!!this.model;break;case j.Range:this.model&&0<Object.keys(this.model).length&&(this.valueChanged=!0);break;case j.Text:case j.Keyword:this.valueChanged=this.model&&""!==this.model;break;case j.AutoComplete:case j.Date:case j.DateTime:this.valueChanged=!!this.model;break;default:this.valueChanged=!1}},e.prototype.parseAndSetValue=function(e){e&&(this.isTypeDateRange()||this.isTypeDateTimeRange()?(e.from=e.from?_.toUTC(e.from):null,e.to=e.to?_.toUTC(e.to):null):this.isTypeDate()||this.isTypeDateTime()?m.isDate(e)&&m.isValid(e)||(e=m.parse(e,"yyyy-MM-dd'T'HH:mm:ssxxxxx",new Date)):this.isTypeCheckbox()&&this.checked!==undefined?e=e==this.checked:this.isTypeSelect()&&this.multiple?e=d.clone(e):(this.isTypeSelect()||this.isTypeAutocomplete())&&(e=+e)),this.model=e},e.prototype.isTypeAutocomplete=function(){return this.type===j.AutoComplete},e.prototype.isTypeAutocompleteChips=function(){return this.type===j.AutoCompleteChips},e.prototype.isTypeChips=function(){return this.type===j.Chips},e.prototype.isTypeCheckbox=function(){return this.type===j.Checkbox},e.prototype.isTypeSelect=function(){return this.type===j.Select},e.prototype.isTypeDate=function(){return this.type===j.Date},e.prototype.isTypeDateRange=function(){return this.type===j.DateRange},e.prototype.isTypeDateTimeRange=function(){return this.type===j.DateTimeRange},e.prototype.isTypeDateTime=function(){return this.type===j.DateTime},e.prototype.sanitize=function(){switch(this.type){case j.Text:case j.Keyword:break;case j.Select:this.sanitizeSelect();break;case j.Chips:this.sanitizeChips();break;case j.Range:this.sanitizeRange();break;case j.Checkbox:this.sanitizeCheckbox()}this.model===undefined&&(this.isTypeCheckbox()?this.model=this.checked==this.defaultValue:this.model=this.defaultValue),this.model===undefined&&(this.isTypeCheckbox()?this.model=!1:this.isTypeSelect()?this.multiple?Array.isArray(this.defaultValue)||(this.model=[]):this.defaultValue===undefined&&(this.model="__all"):(this.isTypeAutocompleteChips()||this.isTypeChips())&&(this.model=[]))},e.prototype.validateModel=function(){var e=this;this.isTypeSelect()&&(this.multiple?this.model=d.filter(this.model||[],function(t){return e.values.find(function(e){return e.value===t})}):this.modelValueExists(this.values)||(this.model="__all"))},e.prototype.modelValueExists=function(e){for(var t=0;t<e.length;t++){if(e[t].value===this.model)return!0;if(e[t][this.children])if(this.modelValueExists(e[t][this.children]))return!0}return!1},e.prototype.sanitizeSelect=function(){if(Array.isArray(this.values)||(this.values=[]),this.isolate){for(var e in this.values)if(this.values.hasOwnProperty(e)){if(!this.values[e])continue;this.values[e].value==this.isolate.value&&this.values.splice(e,1)}Array.isArray(this.model)&&(this.model.length==this.values.length?(this.model=null,this.isolate.enabled=!1):this.model[0]==this.isolate.value&&(this.isolate.enabled=!0))}},e.prototype.sanitizeChips=function(){var e=this;Array.isArray(this.values)||(this.values=[]),this.model&&Array.isArray(this.model)&&this.values.length&&Number.isInteger(this.model[0])&&(this.model=this.model.map(function(t){return e.values.find(function(e){return e.value===t})}))},e.prototype.sanitizeCheckbox=function(){this.checked=!this.checked||d.toString(this.checked),this.unchecked=!!this.unchecked&&d.toString(this.unchecked),this.defaultValue=this.defaultValue===undefined?this.unchecked:d.toString(this.defaultValue)},e.prototype.sanitizeRange=function(){this.placeholder||(this.placeholder=["Min","Max"]),this.model||(this.model={})},A([h.Alias(),S("design:type",String)],e.prototype,"name",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"type",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"label",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"chipLabel",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"children",void 0),A([h.Alias(),S("design:type",Boolean)],e.prototype,"multiple",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"groups",void 0),A([h.Alias(),S("design:type",Boolean)],e.prototype,"wait",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"query",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"values$",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"selectedValue",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"isolate",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"names",void 0),A([h.Alias(),S("design:type",Boolean)],e.prototype,"primary",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"search",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"unchecked",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"checked",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"alias",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"placeholder",void 0),A([h.Alias(),S("design:type",Function)],e.prototype,"change",void 0),A([h.Alias(),S("design:type",String)],e.prototype,"prefix",void 0),A([h.Alias("default"),S("design:type",Object)],e.prototype,"defaultValue",void 0),e}(h.Model),V=function(i){function e(e){void 0===e&&(e={});var t=i.call(this)||this;return t.load=!0,t.persist=!1,t.inline=!1,t.autofocus=!1,t.chips=!1,t.sortValues=null,t.sort=null,t.sortDirection=null,t.queryParam=!1,t.namespace="filter",t.items=[],t.sortByItem=null,t.sortDirectionItem=null,t.keywordFilter=!1,t.nonKeywordFilters=!1,t._filtersNames=[],t._destroy$=new b.Subject,t._fromJSON(e),t}return I(e,i),Object.defineProperty(e.prototype,"destroy$",{get:function(){return this._destroy$.asObservable()},enumerable:!0,configurable:!0}),e.prototype.initItems=function(e,i,n){var r=this;e&&Array.isArray(e)&&(this.items=e.map(function(e,t){if(0===t&&e.type===j.Text&&(e.type=j.Keyword),e&&e.name&&-1===r._filtersNames.indexOf(e.name))return r._filtersNames.push(e.name),new F(e,r,i,n);throw Error("Filter init error. Items name must be unique.")}),this.items.map(function(e){return e.initValues(),e})),this.initSorting(i,n),this.keywordFilter=!!this.items.find(function(e){return j.Keyword===e.type}),this.nonKeywordFilters=!!this.items.find(function(e){return j.Keyword!==e.type})},e.prototype.getItem=function(t){return this.items.find(function(e){return e.name===t})},e.prototype.initSorting=function(e,t){if(this.sortValues){var i={name:"system_sort_by",type:j.Select,label:"Sort By",values:this.sortValues};this.sort&&this.sort.value&&(i["default"]=this.sort.value),this.sortByItem=new F(i,this,e,t);var n={name:"system_sort_direction",type:j.Select,label:"Sort Direction",values:[{name:"Ascending",value:"asc"},{name:"Descending",value:"desc"}]};this.sort&&this.sort.direction&&(n["default"]=this.sort.direction),this.sortDirectionItem=new F(n,this,e,t)}},e.prototype.updateModelValues=function(){this.items.forEach(function(e){e.model=d.clone(e.model)}),this.sortByItem&&(this.sortByItem.model=d.clone(this.sortByItem.model)),this.sortDirectionItem&&(this.sortDirectionItem.model=d.clone(this.sortDirectionItem.model))},e.prototype.gets=function(e){var t,i;void 0===e&&(e={});var n={};try{for(var r=O(this.items),o=r.next();!o.done;o=r.next()){var s=o.value,a=d.clone(s.model);if(s.type==j.Select?s.multiple?(s.isolate&&(Array.isArray(s.model)&&s.model.length||(a=x.list(s.values,"value"))),s.model&&-1<s.model.indexOf("__all")&&(a=null)):s.isolate?"__all"==s.model&&(a=x.list(s.values,"value")):"__all"==s.model&&(a=null):s.type==j.AutoCompleteChips||s.type===j.Chips?Array.isArray(s.model)&&s.model.length&&!e.expand&&(a=x.list(s.model,"value")):s.type==j.Checkbox&&(a=s.model?s.checked:s.unchecked),!x.isEmpty(a,{zero:!0})){if(s.type==j.Date||s.type==j.DateTime)a&&m.isValid(a)&&m.isDate(a)&&(a=_.simpleFormat(a));else if(s.type==j.DateRange||s.type==j.DateTimeRange){var l=a.from,c=a.to;a={},l&&(a.from=m.format(l,"yyyy-MM-ddTHH:mm:ssxxxxx")),c&&(a.to=m.format(c,"yyyy-MM-ddTHH:mm:ssxxxxx"))}else if(s.type==j.AutoComplete){if(x.isEmpty(s.model.value,{zero:!0}))continue;a=e.expand?s.model:s.model.value}if(d.isObject(s.names)&&!1!==e.names)for(var p in s.names)a[s.names[p]]&&(n[p]=a[s.names[p]]);else n[s.name]=a}}}catch(h){t={error:h}}finally{try{o&&!o.done&&(i=r["return"])&&i.call(r)}finally{if(t)throw t.error}}if(e.flatten)for(var f in n)Array.isArray(n[f])&&(n[f]=n[f].join(","));return n},e.prototype.getSort=function(){var e=this.getSortByValue();e="__all"===e?null:e;var t=this.getSortDirectionValue();return{value:e,direction:t="__all"===t?null:t}},e.prototype.getSortByValue=function(){return this.sortByItem?this.sortByItem.model:null},e.prototype.getSortDirectionValue=function(){return this.sortDirectionItem?this.sortDirectionItem.model:null},e.prototype.updateSort=function(e){e.sortBy&&(this.sortByItem.model=e.sortBy),e.sortDirection&&(this.sortDirectionItem.model=e.sortDirection)},e.prototype.getFilledItems=function(){return this.items.reduce(function(e,t){switch(t.type){case j.Select:var i=t.multiple&&t.isolate&&Array.isArray(t.model)&&t.model.length&&-1===t.model.indexOf("__all"),n=t.multiple&&Array.isArray(t.model)&&t.model.length&&-1===t.model.indexOf("__all"),r=!t.multiple&&t.model&&"__all"!==t.model;(i||n||r)&&e.push(t);break;case j.AutoCompleteChips:Array.isArray(t.model)&&t.model.length&&e.push(t);break;case j.Checkbox:t.model&&e.push(t);break;case j.DateRange:case j.DateTimeRange:(t.model.from||t.model.to)&&e.push(t);break;case j.Keyword:break;default:!t.model||x.isEmpty(t.model,{zero:!0})&&x.isEmpty(t.model.value,{zero:!0})||e.push(t)}return e},[])},e.prototype.filtersClear=function(){var e,t;try{for(var i=O(this.items),n=i.next();!n.done;n=i.next()){n.value.clear()}}catch(r){e={error:r}}finally{try{n&&!n.done&&(t=i["return"])&&t.call(i)}finally{if(e)throw e.error}}this.sortByItem&&(this.sort?this.sortByItem.model=this.sort.value:this.sortByItem.clear()),this.sortDirectionItem&&(this.sort?this.sortDirectionItem.model=this.sort.direction:this.sortDirectionItem.clear())},e.prototype.loadValuesForPendingItems=function(){this.items.filter(function(e){return e.hasPendingValues}).forEach(function(e){return e.loadValues(!1)})},e.prototype.destroy=function(){this._destroy$.next(),this._destroy$.complete()},A([h.Alias(),S("design:type",Object)],e.prototype,"load",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"persist",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"inline",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"autofocus",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"chips",void 0),A([h.Alias("sorts"),S("design:type",Array)],e.prototype,"sortValues",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"sort",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"sortDirection",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"queryParam",void 0),A([h.Alias(),S("design:type",Object)],e.prototype,"namespace",void 0),A([h.Alias(),S("design:type",Function)],e.prototype,"init",void 0),A([h.Alias(),S("design:type",Function)],e.prototype,"change",void 0),A([h.Alias(),S("design:type",Function)],e.prototype,"reload",void 0),A([h.Alias(),S("design:type",Function)],e.prototype,"sortChange",void 0),e}(h.Model);function P(e,t){var i,n;if(e.length!==t.length)return!1;try{for(var r=O(e),o=r.next();!o.done;o=r.next()){var s=o.value;if(-1===t.indexOf(s))return!1}}catch(a){i={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(i)throw i.error}}return!0}var M=function(){function e(e,t,i){this._router=e,this._route=t,this._filterItems=i,this._queryKeys=[],this._queryParamsToFilter(this._route.snapshot.queryParams,this._filterItems)}return e.prototype.updateQueryParams=function(e){var t=this._filterToQueryParams(e,this._filterItems);this._clearKeys(t),this._queryKeys=Object.keys(t),this._router.navigate([],{relativeTo:this._route,queryParams:t,queryParamsHandling:"merge"}).then(function(){})},e.prototype._filterToQueryParams=function(n,r){return Object.keys(n).reduce(function(e,t){var i=r.find(function(e){return e.name===t});return i&&(i.type===j.Range?e[t]=[n[t].min,n[t].max].join(","):i.isTypeSelect()&&i.multiple&&i.model&&0<i.model.length?e[t]=i.model.join(","):i.isTypeAutocomplete()?e[t]=[i.model.value,i.model.name].join(","):i.type===j.AutoCompleteChips?e[t]=i.model.map(function(e){return[e.value,e.name].join(",")}).join(";"):e[t]=n[t]),e},{})},e.prototype._queryParamsToFilter=function(o,s){return this._queryKeys=Object.keys(o),this._queryKeys.forEach(function(t){var e=s.find(function(e){return e.name===t});if(e)if(e.type===j.Select&&e.multiple){var i=o[t].split(",");e.parseAndSetValue(i)}else if(e.type===j.Range){if(o[t]&&d.isString(o[t])){var n=o[t].split(",");e.model={min:n[0],max:n[1]}}}else if(e.type===j.Chips){var r=o[t].split(",").map(function(e){return+e});e.parseAndSetValue(r)}else if(e.type===j.Checkbox)e.parseAndSetValue("true"===o[t]);else if(e.type===j.AutoComplete){n=o[t].split(",");e.model={name:n[1],value:+n[0]}}else if(e.type===j.AutoCompleteChips){n=o[t].split(";");e.model=n.reduce(function(e,t){var i=t.split(",");return e.push({name:i[1],value:+i[0]}),e},[])}else e.parseAndSetValue(o[t])})},e.prototype._clearKeys=function(t){this._queryKeys.forEach(function(e){t[e]||(t[e]=null)})},e}(),$=new k.InjectionToken("fs.filter-drawer-data"),R=new k.InjectionToken("fs.filter-drawer-overlay"),q=function(){function e(e,t,i,n){this._differs=e,this._cd=t,this.overlayRef=i,this.data=n,this.items=[],this.sortBy=null,this.sortDirection=null,this.inline=!1,this.windowDesktop=!1,this.items=n.items,this.showSortBy=n.showSortBy,this.sortBy=n.sortBy,this.sortDirection=n.sortDirection,this._clear=n.clear,this._done=n.done,this._search=n.search,this._filterChanged=n.filterChanged,this._click=n.click,this._differ=this._differs.find(this.items).create(function(e,t){return t.model}),this.updateWindowWidth()}return e.prototype.updateWindowWidth=function(){this.windowDesktop=1200<window.innerWidth},e.prototype.ngDoCheck=function(){this._differ&&(this._differ.diff(this.items)&&this._cd.detectChanges())},e.prototype.clear=function(){this._clear(),this.overlayRef.detach()},e.prototype.done=function(){this._done(),this.overlayRef.detach()},e.prototype.filterChanged=function(e){this._filterChanged(e)},e.prototype.backdropClick=function(){this.done()},e.decorators=[{type:k.Component,args:[{template:'<div class="filters">\n <div class="filters-wrap">\n\n <div class="filter-by">\n <mat-icon>filter_list</mat-icon>\n <span class="text">Filter By</span>\n </div>\n\n <div class="filter-items">\n <filter-item *ngFor="let filterItem of items"\n class="filter-group"\n [item]="filterItem"\n (itemChanged)="filterChanged($event)">\n </filter-item>\n\n <ng-container *ngIf="sortBy && sortBy.values && sortBy.values.length > 0 && showSortBy">\n <filter-item class="filter-group sort"\n [item]="sortBy"\n (itemChanged)="filterChanged($event)">\n </filter-item>\n <filter-item class="filter-group sort"\n [item]="sortDirection"\n (itemChanged)="filterChanged($event)">\n </filter-item>\n </ng-container>\n </div>\n\n <div class="filter-actions">\n <button type="button" mat-button color="primary" (click)="done()">Done</button>\n <button type="button" mat-button (click)="clear()">Clear</button>\n </div>\n </div>\n</div>\n<div class="backdrop" *ngIf="!windowDesktop" (click)="backdropClick()"></div>\n',styles:[":host ::ng-deep mat-form-field{width:100%}.filter-by{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:30px 30px 10px}.filter-by mat-icon{margin-right:8px}.filter-by .text{font-weight:400;font-size:19px}.filter-actions{box-sizing:border-box;padding:18px 13px}.filter-actions button{margin-right:6px}.filter-actions button:last-child{margin-right:0}.filters{position:fixed;display:block;top:0;right:0;z-index:1002;bottom:0}.filters .filters-wrap{background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:85vw;max-width:350px;display:flex;flex-direction:column;height:100%}.filters .filters-wrap .filter-items{overflow-y:auto;padding:10px 30px 0;box-sizing:border-box}.filters .filter-group{margin:10px 0 0}.filters .filter-group:first-child{margin:0}.filters .filter label{white-space:nowrap;color:rgba(0,0,0,.54)}.filters .filter .interface.interface-range,.filters .filter .interface.interface-range .mat-input-wrapper,.filters .filter .interface.interface-range input{text-align:center}.filters .filter .interface.interface-datetime fs-datetime.has-time .md-input{width:100%}.filters .filter .interface fs-datetime-range input{text-align:center}.filters .filter .filter-label{width:1%;white-space:nowrap;vertical-align:middle;padding-right:15px}.filters md-autocomplete-container md-input-container{margin:0}.filters .isolate{margin-top:-12px}.filters .isolate .interface{line-height:20px;padding-bottom:1.25em}.filters .isolate md-checkbox{margin:0 0 0 2px}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:900;outline:0}"]}]}],e.ctorParameters=function(){return[{type:k.IterableDiffers},{type:k.ChangeDetectorRef},{type:v.OverlayRef,decorators:[{type:k.Inject,args:[R]}]},{type:undefined,decorators:[{type:k.Inject,args:[$]}]}]},e.propDecorators={updateWindowWidth:[{type:k.HostListener,args:["window:resize"]}],items:[{type:k.Input}],showSortBy:[{type:k.Input}],sortBy:[{type:k.Input}],sortDirection:[{type:k.Input}],inline:[{type:k.Input}]},e}(),B=function(){function e(e){this._overlay=e,this.detach$=new b.Subject,this.attach$=new b.Subject,this._destroy$=new b.Subject,this.detach$.pipe(C.takeUntil(this._destroy$)).subscribe(this.detach.bind(this)),this.attach$.pipe(C.takeUntil(this._destroy$)).subscribe(this.attach.bind(this))}return e.prototype.detach=function(){window.document.body.classList.remove("fs-filter-open")},e.prototype.attach=function(){window.document.body.classList.add("fs-filter-open")},e.prototype.close=function(){this.detach(),this._overlayRef&&(this._overlayRef.detach(),this._overlayRef=null)},e.prototype.open=function(e,t){var i=this;return this._overlayRef=this._createOverlay(),this._overlayRef.backdropClick().pipe(C.takeUntil(this._destroy$)).subscribe(function(){i._overlayRef.detach()}),this._overlayRef.detachments().pipe(C.takeUntil(this._destroy$)).subscribe(function(){i.detach$.next()}),this._overlayRef.attachments().pipe(C.takeUntil(this._destroy$)).subscribe(function(){i.attach$.next()}),this.openPortalPreview(e,this._overlayRef,t)},e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype._createOverlay=function(){var e=new v.OverlayConfig({hasBackdrop:!0,backdropClass:"fs-filter-backdrop"});return this._overlay.create(e)},e.prototype.openPortalPreview=function(e,t,i){var n=this._createInjector(e,i,t),r=new g.ComponentPortal(q,undefined,n);return t.attach(r).instance},e.prototype._createInjector=function(e,t,i){var n=new WeakMap([[$,t],[R,i]]);return new g.PortalInjector(e,n)},e.decorators=[{type:k.Injectable}],e.ctorParameters=function(){return[{type:v.Overlay}]},e}(),E=function(){function e(e,t,i,n,r,o,s,a){var l=this;this._store=e,this._location=t,this._route=i,this._router=n,this._appRef=r,this._injector=o,this._documentScrollService=s,this._filterOverlay=a,this._config=null,this.sortUpdate=null,this.showSortBy=!0,this.showFilterInput=!0,this.changedFilters=[],this.searchText="",this.persists=null,this.activeFiltersCount=0,this.activeFiltersWithInputCount=0,this.showFilterMenu=!1,this.modelChanged=new k.EventEmitter,this.windowDesktop=!1,this._searchTextInput=null,this._firstOpen=!0,this._query={},this._sort={},this._destroy$=new b.Subject,this.updateWindowWidth(),this._filterOverlay.attach$.pipe(C.takeUntil(this._destroy$)).subscribe(function(){l.showFilterMenu=!0}),this._filterOverlay.detach$.pipe(C.takeUntil(this._destroy$)).subscribe(function(){l.updateFilledCounter(),l.showFilterMenu=!1})}return Object.defineProperty(e.prototype,"setConfig",{set:function(e){this.config=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"setFilter",{set:function(e){this.config=e},enumerable:!0,configurable:!0}),e.prototype.keyEvent=function(e){"Escape"===e.code&&this.showFilterMenu&&this.changeVisibility(!1)},e.prototype.updateWindowWidth=function(){this.windowDesktop=1200<window.innerWidth},Object.defineProperty(e.prototype,"searchTextInput",{set:function(e){this._searchTextInput=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"config",{get:function(){return this._config},set:function(e){this._config=new V(e),this.restorePersistValues(),this.config.initItems(e.items,this._route,this.persists),this._searchTextItem=this.config.items.find(function(e){return e.type===j.Keyword}),this.searchText=this._searchTextItem.model,this.config.queryParam&&(this._queryParams=new M(this._router,this._route,this.config.items)),this.updateFilledCounter(),this.storePersistValues()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;setTimeout(function(){t.focus()}),this.watchSearchInput(),this.sortUpdate&&this.sortUpdate.pipe(C.takeUntil(this.config.destroy$)).subscribe(function(e){t.config.updateSort(e)}),this.config.init&&this.init()},e.prototype.focus=function(){this._searchTextInput&&this.config.autofocus&&this._searchTextInput.nativeElement.focus()},e.prototype.ngOnDestroy=function(){this.destroyFilterDrawer(),this._destroy$.next(),this._destroy$.complete(),this.config&&this.config.destroy()},e.prototype.updateValues=function(i,e){var n=this;void 0===e&&(e=!0),Object.keys(i).forEach(function(t){var e=n.config.items.find(function(e){return e.name===t});e&&e.updateValue(i[t])}),this.updateFilledCounter(),e&&this.filterChange()},e.prototype.modelChange=function(e){this.modelChanged.next(e)},e.prototype.hide=function(){this.changeVisibility(!1)},e.prototype.show=function(){this.changeVisibility(!0)},e.prototype.changeVisibilityClick=function(e,t){void 0===t&&(t=null),t&&t.stopPropagation(),this.changeVisibility(e)},e.prototype.filterInputEvent=function(e){this.windowDesktop&&(0<=["Enter","NumpadEnter","Escape"].indexOf(e.code)?(this.changeVisibility(!1),this._searchTextInput&&this._searchTextInput.nativeElement.blur()):this.changeVisibility(!0))},e.prototype.changeVisibility=function(e){if(e!==this.showFilterMenu){if(!e)return this.destroyFilterDrawer();this.config.items.find(function(e,t){return e.type!==j.Keyword})&&(this._filterOverlay.open(this._injector,{items:this.config.items,showSortBy:"showSortBy",sortBy:this.config.sortByItem,sortDirection:this.config.sortDirectionItem,filterChanged:this.filterChange.bind(this),search:this.search.bind(this),done:this.hide.bind(this),clear:this.clear.bind(this)}),this._firstOpen&&(this.config.loadValuesForPendingItems(),this._firstOpen=!1))}},e.prototype.clearSearchText=function(e){e.stopPropagation(),this.searchText="",this.modelChanged.next("")},e.prototype.init=function(){this._query=this.config.gets({flatten:!0}),this._sort=this.config.getSort(),this.config.init(this._query,this.config.getSort())},e.prototype.clear=function(e){void 0===e&&(e=null),e&&e.stopPropagation(),this.searchText="",this.changedFilters=[],this.config.filtersClear(),this.activeFiltersCount=0,this.activeFiltersWithInputCount=0,this.filterChange(),this.changeVisibility(!1)},e.prototype.search=function(e){this.changeVisibilityClick(!1,e),this.filterChange()},e.prototype.reload=function(e){void 0===e&&(e=null),e&&e.stopPropagation();var t=this.config.gets({flatten:!0});this.config.reload&&this.config.reload(d.cloneDeep(t),this.config.getSort())},e.prototype.resetFilter=function(e){var t=this.changedFilters.indexOf(e);-1<t&&(this.changedFilters.splice(t,1),e.clear()),this.change()},e.prototype.change=function(){this.config.updateModelValues();var e=this.config.gets({flatten:!0}),t=this.config.getSort();((!t||!this._sort)&&t!==this._sort||t&&this._sort&&!function c(e,t){var i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r],s=t[r],a=Array.isArray(o)&&Array.isArray(s),l=d.isObject(o)&&d.isObject(s);if(a&&!P(o,s))return!1;if(l&&!c(o,s))return!1;if(!a&&!l&&o!==s)return!1}return!0}(this._sort,t))&&(this._sort=t,this.config.sortChange&&this.config.sortChange(d.cloneDeep(e),t)),this._query=e,this.storePersistValues(),this.updateFilledCounter(),this.config.change&&this.config.change(d.cloneDeep(e),t),this.config.queryParam&&this._queryParams.updateQueryParams(e)},e.prototype.updateFilledCounter=function(){this.changedFilters=this.config.getFilledItems(),this.changedFilters.filter(function(e){return e.hasPendingValues}).forEach(function(e){return e.loadValues(!1)}),this.activeFiltersWithInputCount=this.changedFilters.filter(function(e){return e.type!==j.Keyword}).length},e.prototype.filterChange=function(e){void 0===e&&(e=null),e&&e.checkIfValueChanged(),this.storePersistValues(),this.change()},e.prototype.destroyFilterDrawer=function(){this._filterOverlay.close()},e.prototype.watchSearchInput=function(){var t=this;this.modelChanged.pipe(C.distinctUntilChanged(),C.debounceTime(500),C.takeUntil(this.config.destroy$)).subscribe(function(e){t._searchTextItem&&(t._searchTextItem.model=e),t.filterChange()})},e.prototype.restorePersistValues=function(){if(this.persists=this._store.get(this.config.namespace+"-persist",{}),this.persists===undefined&&(this.persists={}),this.config.persist&&("object"!=typeof this.config.persist.persist&&(this.config.persist={name:this.config.persist}),this.config.persist.name||(this.config.persist.name=this._location.path()),this.persists[this.config.persist.name]&&this.persists[this.config.persist.name].data||(this.persists[this.config.persist.name]={data:{},date:new Date}),this.config.persist.timeout)){var e=new Date(this.persists[this.config.persist.name].date);m.isAfter(m.subMinutes(e,this.config.persist.timeout),new Date)&&(this.persists[this.config.persist.name]={data:{},date:new Date})}},e.prototype.storePersistValues=function(){this.config.persist&&(this.persists[this.config.persist.name]={data:this.config.gets({expand:!0,names:!1}),date:new Date},this._store.set(this.config.namespace+"-persist",this.persists,{}))},e.decorators=[{type:k.Component,args:[{selector:"fs-filter",template:'<div class="fs-filter"\n *ngIf="config?.items?.length"\n [ngClass]="{\n \'filters-open\': showFilterMenu,\n \'no-input\': !showFilterInput,\n \'window-desktop\': windowDesktop,\n \'keyword-filter\': config.keywordFilter\n }">\n <div fxLayou="row" fxLayoutAlign="start center" class="menu-filter" fxFlex="1 1 0">\n <div class="menu-filter-input" fxFlex="grow">\n <div class="main-filter-bar" fxLayout="row" fxLayoutAlign="start center">\n <form autocomplete="off" role="presentation">\n <mat-form-field\n class="filter-input-field"\n (click)="($event)"\n floatLabel="never">\n <span matPrefix>\n <mat-icon\n matPrefix\n (click)="changeVisibilityClick(true, $event)">search</mat-icon>\n </span>\n\n <input matInput\n [(ngModel)]="searchText"\n name="filter-input"\n #searchTextInput\n (keydown)="filterInputEvent($event)"\n (click)="filterInputEvent($event)"\n class="filter-input"\n (ngModelChange)="modelChange(searchText)">\n\n <mat-placeholder>Search</mat-placeholder>\n <a matSuffix\n *ngIf="searchText && showFilterInput"\n (click)="clearSearchText($event)"\n href="javascript:void(0)"\n class="clear">\n <mat-icon>clear</mat-icon>\n </a>\n <a matSuffix\n (click)="reload($event)"\n href="javascript:void(0)"\n class="reload"\n *ngIf="config.reload">\n <mat-icon>refresh</mat-icon>\n </a>\n <a (click)="changeVisibilityClick(true, $event)"\n matSuffix\n href="javascript:void(0)"\n class="filter"\n *ngIf="config.nonKeywordFilters">\n <mat-icon>filter_list</mat-icon>\n </a>\n <span class="active-filters-counter"\n matSuffix\n (click)="changeVisibilityClick(true,$event)"\n *ngIf="!config.chips && activeFiltersCount > 0">\n {{ activeFiltersCount }}\n </span>\n <span class="active-filters-counter"\n matSuffix\n (click)="changeVisibilityClick(true,$event)"\n *ngIf="!config.chips && activeFiltersWithInputCount > 0">\n {{ activeFiltersWithInputCount }}\n </span>\n </mat-form-field>\n </form>\n </div>\n </div>\n </div>\n <fs-filter-chips\n class="filter-chips"\n *ngIf="config.chips"\n [filters]="changedFilters"\n (remove)="resetFilter($event)"\n [ngClass]="{ \'has-filter-chips\': activeFiltersWithInputCount }">\n </fs-filter-chips>\n</div>\n',encapsulation:k.ViewEncapsulation.None,providers:[B],styles:[".fs-filter{flex-direction:column;box-sizing:border-box;place-content:stretch flex-start;align-items:stretch;max-width:100%;position:relative;margin-bottom:20px}.fs-filter .title{display:none}.fs-filter.no-input .filter-input-field .mat-input-infix,.fs-filter.no-input .filter-input-field .mat-input-prefix,.fs-filter.no-input .filter-input-field .mat-input-underline{display:none!important}.fs-filter .results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}.fs-filter .status{position:relative}.fs-filter .status .progress-infinite{position:absolute;top:0;width:100%}.fs-filter .filter-chips{display:block}.fs-filter .menu-filter{position:relative}.fs-filter .menu-filter .search{top:8px;position:absolute;margin-left:1px;left:0}.fs-filter .menu-filter .search mat-icon{-webkit-transform:scale(.9);transform:scale(.9)}.fs-filter .menu-filter .menu-filter-input{width:100%}.fs-filter .menu-filter .menu-filter-input .main-filter-bar{height:40px}.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-input-infix{padding-bottom:.3em}.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-prefix,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-suffix{align-self:flex-end;display:flex;align-items:center;white-space:nowrap}.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-prefix a,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-prefix mat-icon,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-suffix a,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-suffix mat-icon{cursor:pointer;color:initial}.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-prefix a:hover,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-prefix mat-icon:hover,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-suffix a:hover,.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-suffix mat-icon:hover{color:inherit}.fs-filter .menu-filter .menu-filter-input .main-filter-bar .mat-form-field-infix{width:auto}.fs-filter .infinite-records{color:#999;font-size:13px;margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.fs-filter .infinite-records .order-toggle{cursor:pointer;padding-left:4px}.fs-filter.keyword-filter .filter-input-field .filter{display:none}.fs-filter.keyword-filter .filter-input-field .mat-form-field-infix,.fs-filter.keyword-filter .filter-input-field .mat-form-field-prefix,.fs-filter.keyword-filter .filter-input-field .mat-form-field-underline{visibility:visible}.main-filter-bar{overflow:hidden}.main-filter-bar .filter-input-field,.main-filter-bar form{width:100%}.main-filter-bar .filter-input-field .mat-form-field-infix,.main-filter-bar .filter-input-field .mat-form-field-prefix,.main-filter-bar .filter-input-field .mat-form-field-underline{visibility:hidden}.main-filter-bar .filter-input-field .mat-form-field-underline{bottom:auto}.main-filter-bar .filter-input-field .mat-form-field-infix{border-top:0}.main-filter-bar .filter-input-field .mat-form-field-wrapper{padding-bottom:0}.main-filter-bar .filter-input-field .mat-form-field-flex{align-items:center}.active-filters-counter{min-width:22px;line-height:22px;height:22px;-webkit-transform:scale(.65);transform:scale(.65);font-size:116%;margin-left:-2px;background:#ccc;border-radius:50%;text-align:center;padding:3px;color:#fff;cursor:pointer}.active-filters-counter.with-input{display:none}@media screen and (max-width:1199px){.main-filter-bar .filter-input-field .filter{display:block!important}}@media screen and (min-width:1200px){body.fs-filter-open{margin-right:350px}.fs-filter-backdrop{display:none}}body.fs-filter-open::-webkit-scrollbar{width:0;background:0 0}"]}]}],e.ctorParameters=function(){return[{type:f.FsStore},{type:c.Location},{type:p.ActivatedRoute},{type:p.Router},{type:k.ApplicationRef},{type:k.Injector},{type:y.FsDocumentScrollService},{type:B}]},e.propDecorators={setConfig:[{type:k.Input,args:["config"]}],setFilter:[{type:k.Input,args:["filter"]}],sortUpdate:[{type:k.Input}],showSortBy:[{type:k.Input}],showFilterInput:[{type:k.Input}],keyEvent:[{type:k.HostListener,args:["window:keyup",["$event"]]}],updateWindowWidth:[{type:k.HostListener,args:["window:resize"]}],searchTextInput:[{type:k.ViewChild,args:["searchTextInput"]}]},e}(),L=function(){function e(){this.itemChanged=new k.EventEmitter,this.itemType=j}return e.prototype.itemChange=function(e){this.itemChanged.next(e)},e.decorators=[{type:k.Component,args:[{selector:"filter-item",template:'<ng-template ngIf="!item.disabled">\n <div class="filter filter-{{ item.type }}">\n\n <ng-container [ngSwitch]="item.type">\n <filter-item-text class="interface"\n *ngSwitchCase="itemType.Text"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-text>\n\n <filter-item-select class="interface"\n *ngSwitchCase="itemType.Select"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-select>\n\n <filter-item-chips class="interface"\n *ngSwitchCase="itemType.Chips"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-chips>\n\n <filter-item-range class="interface interface-range"\n *ngSwitchCase="itemType.Range"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-range>\n\n <filter-item-autocomplete class="interface"\n *ngSwitchCase="itemType.AutoComplete"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-autocomplete>\n\n <filter-item-autocompletechips class="interface"\n *ngSwitchCase="itemType.AutoCompleteChips"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-autocompletechips>\n\n <filter-item-date class="interface interface-date"\n *ngSwitchCase="itemType.Date"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-date>\n\n <filter-item-checkbox class="interface interface-checkbox"\n *ngSwitchCase="itemType.Checkbox"\n [item]="item"\n (itemChanged)="itemChange($event)">\n </filter-item-checkbox>\n </ng-container>\n\n </div>\n</ng-template>\n'}]}],e.propDecorators={item:[{type:k.Input}],itemChanged:[{type:k.Output}]},e}(),K=function(){function e(e,t){this._kvDiffers=e,this._cd=t,this.inline=!1,this.itemChanged=new k.EventEmitter,this._debouncer$=new b.Subject,this._destroy$=new b.Subject,this._kvDiffer=this._kvDiffers.find(this.item||{}).create(),this.listenWithDebounce()}return Object.defineProperty(e.prototype,"item",{get:function(){return this._item},set:function(e){this._item=e},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){this._kvDiffer&&(this._kvDiffer.diff(this.item)&&this._cd.detectChanges())},e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.listenWithDebounce=function(){var e=this;this._debouncer$.pipe(C.takeUntil(this._destroy$),C.debounceTime(300)).subscribe(function(){e.item.change&&e.item.change(e.item),e.itemChanged.next(e.item)})},e.prototype.itemChange=function(){this._debouncer$.next()},e.decorators=[{type:k.Component,args:[{selector:"base-item",template:"",changeDetection:k.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:k.KeyValueDiffers},{type:k.ChangeDetectorRef}]},e.propDecorators={item:[{type:k.Input}],inline:[{type:k.Input}],itemChanged:[{type:k.Output}]},e}(),z=function(n){function e(e,t){var i=n.call(this,e,t)||this;return i._kvDiffers=e,i._cd=t,i.allItemsOptionSelected=!1,i}return I(e,n),e.prototype.selectChange=function(){this.itemChange()},e.prototype.ngDoCheck=function(){this._kvDiffer&&(this._kvDiffer.diff(this.item)&&(this._cd.detectChanges(),this.selectedItem&&this.selectedItem.cd.markForCheck()))},e.decorators=[{type:k.Component,args:[{selector:"filter-item-select",template:'<ng-template [ngIf]="item.values?.length">\n <ng-container *ngIf="item.multiple && !item.children">\n <filter-item-select-multiple\n [item]="item"\n (change)="selectChange()"\n #selectItem>\n </filter-item-select-multiple>\n </ng-container>\n\n <ng-container *ngIf="!item.multiple && !item.children">\n <filter-item-select-simple\n [item]="item"\n (change)="selectChange()"\n #selectItem>\n </filter-item-select-simple>\n </ng-container>\n\n <ng-container *ngIf="item.children">\n <filter-item-select-groups [item]="item" (change)="selectChange()" #selectItem>\n </filter-item-select-groups>\n </ng-container>\n</ng-template>\n\n<ng-template [ngIf]="item.initialLoading">\n <mat-form-field floatLabel="auto">\n <mat-label>{{item.label}}</mat-label>\n <mat-select disabled></mat-select>\n </mat-form-field>\n</ng-template>',changeDetection:k.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:k.KeyValueDiffers},{type:k.ChangeDetectorRef}]},e.propDecorators={selectedItem:[{type:k.ViewChild,args:["selectItem"]}]},e}(K),W=function(){function e(e){this.cd=e,this.change=new k.EventEmitter}return e.prototype.changed=function(e){this.change.emit(e)},e.decorators=[{type:k.Component,args:[{selector:"filter-item-select-groups",template:'<mat-form-field floatLabel="auto">\n <mat-label>{{item.label}}</mat-label>\n <mat-select #select [(ngModel)]="item.model" (ngModelChange)="changed($event)">\n <ng-container *ngFor="let selectItem of item.values">\n <ng-container *ngIf="selectItem[item.children]; else simpleOption">\n <mat-optgroup [label]="selectItem.name">\n <mat-option *ngFor="let subItem of selectItem[item.children]"\n [value]="subItem.value"\n [ngStyle]="selectItem.style">\n {{ subItem.name }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n\n <ng-template #simpleOption>\n <mat-option [value]="selectItem.value" [ngStyle]="selectItem.style">\n {{ selectItem.name }}\n </mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n</mat-form-field>\n<filter-item-select-backdrop *ngIf="select.panelOpen" (click)="select.close()"></filter-item-select-backdrop>',changeDetection:k.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:k.ChangeDetectorRef}]},e.propDecorators={select:[{type:k.ViewChild,args:["select"]}],item:[{type:k.Input}],change:[{type:k.Output}]},e}(),U=function(){function e(e){this.cd=e,this.change=new k.EventEmitter}return e.prototype.changed=function(e){this.change.emit(e)},e.decorators=[{type:k.Component,args:[{selector:"filter-item-select-simple",template:'<mat-form-field floatLabel="auto">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [(ngModel)]="item.model"\n (ngModelChange)="changed($event)">\n <mat-option *ngFor="let item of item.values" [value]="item.value" [ngStyle]="item.style">\n {{ item.name }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n\n<filter-item-select-backdrop *ngIf="select.panelOpen" (click)="select.close()"></filter-item-select-backdrop>',changeDetection:k.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:k.ChangeDetectorRef}]},e.propDecorators={select:[{type:k.ViewChild,args:["select"]}],item:[{type:k.Input}],change:[{type:k.Output}]},e}(),H=function(){function e(e){this.cd=e,this.change=new k.EventEmitter}return e.prototype.changed=function(){if(this.item.isolate&&(this.item.isolate.enabled=!1,this.item.multiple&&Array.isArray(this.item.model))){var e=this.item.model.indexOf(this.item.isolate.value);-1<e&&this.item.model.splice(e,1)}this.change.emit(this.item.model)},e.prototype.close=function(){this.select.close()},e.prototype.isolateChange=function(e){e.isolate.enabled?e.model=e.multiple?[e.isolate.value]:e.isolate.value:e.model=e.multiple?[]:null,this.change.next(e)},e.decorators=[{type:k.Component,args:[{selector:"filter-item-select-multiple",template:'<mat-form-field floatLabel="auto" [ngClass]="{ isolate: item.isolate }">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [(ngModel)]="item.model"\n (ngModelChange)="changed()"\n [multiple]="item.multiple">\n <mat-option\n *ngFor="let item of item.values"\n [value]="item.value"\n [ngStyle]="item.style">\n {{ item.name }}\n </mat-option>\n </mat-select>\n\n <mat-hint>\n <div *ngIf="item.isolate">\n <mat-checkbox (change)="isolateChange(item)" [(ngModel)]="item.isolate.enabled">\n <span class="checkbox-label">{{ item.isolate.label }}</span>\n </mat-checkbox>\n </div>\n </mat-hint>\n</mat-form-field>\n<filter-item-select-backdrop *ngIf="select.panelOpen" (click)="close()"></filter-item-select-backdrop>\n',changeDetection:k.ChangeDetectionStrategy.OnPush,styles:[".isolate{margin-bottom:25px}"]}]}],e.ctorParameters=function(){return[{type:k.ChangeDetectorRef}]},e.propD