sp-combo
Version:
# Angular sp-combo - Multiselect, Multiline and Autocomplete
1 lines • 72.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("sp-combo",["exports","@angular/core","@angular/forms","@angular/common","rxjs","rxjs/operators"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["sp-combo"]={},e.ng.core,e.ng.forms,e.ng.common,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n,i,r,s){"use strict";var o=function(){};o.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],o.ctorParameters=function(){return[]};Object.create;function l(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}function c(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(a(arguments[t]));return e}Object.create;var p=function(){},u=p,d=function(){function e(){this.isDisabled=!1,this.isMultiSelect=!1,this.isLoading=!1,this.closeOnSelect=!0,this.isSelectByGroup=!1,this.isSelectByGroupAsModel=!1,this.selectedRow=new t.EventEmitter,this.changeFn=new t.EventEmitter,this.blurFn=new t.EventEmitter,this.focusFn=new t.EventEmitter,this.extraLbl=[],this.extraVal=[],this.searchFild=[],this.innerValue="",this.onTouchedCallback=p,this.onChangeCallback=p}return Object.defineProperty(e.prototype,"value",{get:function(){return this.innerValue},set:function(e){e!==this.innerValue&&(this.innerValue=e,this.onChangeCallback(e))},enumerable:!1,configurable:!0}),e.prototype.onBlur=function(){this.onTouchedCallback(),null!=this.blurFn&&this.blurFn.emit()},e.prototype.writeValue=function(e){e!==this.innerValue&&(this.innerValue=e)},e.prototype.registerOnChange=function(e){this.onChangeCallback=e},e.prototype.registerOnTouched=function(e){this.onTouchedCallback=e},e.prototype.onChange=function(e){this.selectedRow.emit(e),null!=this.changeFn&&this.changeFn.emit()},e.prototype.findExtra=function(e,t){this.searchFild.forEach((function(n){return t[n].toLowerCase().indexOf(e)>-1}))},e.prototype.onSearch=function(e,t,n){e.toLowerCase()},e.prototype.onFocus=function(e){null!=this.focusFn&&this.focusFn.emit()},e.prototype.selectAll=function(){var e=this;this.value=this.displayList.map((function(t){return t[e.selectedValue]}))},e.prototype.unselectAll=function(){this.value=[]},e.prototype.ngOnInit=function(){this.extraValues&&(this.extraVal=this.extraValues.split(",")),this.extraLables&&(this.extraLbl=this.extraLables.split(","))},e.prototype.ngOnChanges=function(e){this.placeHolder||(this.placeHolder=""),this.extraValues&&(this.extraVal=this.extraValues.split(",")),this.extraLables&&(this.extraLbl=this.extraLables.split(","))},e.prototype.getExtraValue=function(e,t){var n,i;if(!(this.extraVal.length>t))return e;var r=this.extraVal[t].split("."),s=e,o=0;try{for(var a=l(r),c=a.next();!c.done;c=a.next()){if(s=s[c.value],(o+=1)==r.length)return s}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}},e}();d.decorators=[{type:t.Component,args:[{selector:"sp-combo",template:'<sp-select [placeholder]="placeHolder" [items]="displayList" [bindLabel]="displayField" [bindValue]="selectedValue"\r\n [(ngModel)]="value" (change)="onChange($event)" (blur)="onBlur()" [multiple]="isMultiSelect" [loading]="isLoading"\r\n [groupBy]="groupBy" [closeOnSelect]="closeOnSelect" [selectableGroup]="isSelectByGroup" [disabled]="isDisabled"\r\n [selectableGroupAsModel]="isSelectByGroupAsModel" (focus)="onFocus($event)">\r\n\r\n <ng-template ng-optgroup-tmp let-item="item" *ngIf="groupBy!=null && groupBy!=undefined">\r\n {{item[groupBy] | uppercase}}\r\n \x3c!-- {{item[groupBy] }} --\x3e\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item="item">\r\n {{item[displayField]}} <br />\r\n\r\n <small *ngFor="let lbl of extraLbl; let i = index; let last = last;">\r\n\r\n {{lbl}} :{{ getExtraValue(item,i) }}\r\n\r\n <span *ngIf="!last">, </span>\r\n </small>\r\n\r\n <ng-template ng-header-tmp *ngIf="isMultiSelect==true">\r\n <button (click)="selectAll()" class="btn btn-sm btn-secondary">Select all</button>\r\n <button (click)="unselectAll()" class="btn btn-sm btn-secondary">Unselect all</button>\r\n </ng-template>\r\n\r\n <ng-template ng-footer-tmp *ngIf="isMultiSelect && value!=undefined">\r\n Selected Count: {{value.length}}\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n</sp-select>\r\n\r\n',providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return d})),multi:!0}]}]}],d.ctorParameters=function(){return[]},d.propDecorators={placeHolder:[{type:t.Input}],displayList:[{type:t.Input}],displayField:[{type:t.Input}],selectedValue:[{type:t.Input}],extraLables:[{type:t.Input}],extraValues:[{type:t.Input}],isDisabled:[{type:t.Input}],isMultiSelect:[{type:t.Input}],isLoading:[{type:t.Input}],groupBy:[{type:t.Input}],closeOnSelect:[{type:t.Input}],isSelectByGroup:[{type:t.Input}],isSelectByGroupAsModel:[{type:t.Input}],selectedRow:[{type:t.Output}],changeFn:[{type:t.Output}],blurFn:[{type:t.Output}],focusFn:[{type:t.Output}]};var h=function(){function e(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}return Object.defineProperty(e.prototype,"dimensions",{get:function(){return this._dimensions},enumerable:!1,configurable:!0}),e.prototype.calculateItems=function(e,t,n){var i=this._dimensions,r=i.itemHeight*t,s=Math.max(0,e)/r*t,o=Math.min(t,Math.ceil(s)+(i.itemsPerViewport+1)),l=o,a=Math.max(0,l-i.itemsPerViewport),c=Math.min(a,Math.floor(s)),p=i.itemHeight*Math.ceil(c)-i.itemHeight*Math.min(c,n);return p=isNaN(p)?0:p,c=isNaN(c)?-1:c,o=isNaN(o)?-1:o,c-=n,o+=n,{topPadding:p,scrollHeight:r,start:c=Math.max(0,c),end:o=Math.min(t,o)}},e.prototype.setDimensions=function(e,t){var n=Math.max(1,Math.floor(t/e));this._dimensions={itemHeight:e,panelHeight:t,itemsPerViewport:n}},e.prototype.getScrollTo=function(e,t,n){var i=this.dimensions.panelHeight,r=e+t,s=n+i;return i>=r&&n===e?null:r>s?n+r-s:e<=n?e:null},e}();h.decorators=[{type:t.Injectable}];var m=/[&<>"']/g,g=RegExp(m.source),f={"&":"&","<":"<",">":">",'"':""","'":"'"};function y(e){return null!=e}function v(e){return"object"==typeof e&&y(e)}function b(e){return e instanceof Function}var _="ng-select-top",I="ng-select-bottom",T="undefined"!=typeof requestAnimationFrame?r.animationFrameScheduler:r.asapScheduler,w=function(){function e(e,n,i,s,o){this._renderer=e,this._zone=n,this._panelService=i,this._document=o,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new t.EventEmitter,this.scroll=new t.EventEmitter,this.scrollToEnd=new t.EventEmitter,this.outsideClick=new t.EventEmitter,this._destroy$=new r.Subject,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=s.nativeElement}return Object.defineProperty(e.prototype,"currentPosition",{get:function(){return this._currentPosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"itemsLength",{get:function(){return this._itemsLength},set:function(e){e!==this._itemsLength&&(this._itemsLength=e,this._onItemsLengthChanged())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_startOffset",{get:function(){if(this.markedItem){var e=this._panelService.dimensions,t=e.itemHeight,n=e.panelHeight,i=this.markedItem.index*t;return n>i?0:i}return 0},enumerable:!1,configurable:!0}),e.prototype.handleMousedown=function(e){"INPUT"!==e.target.tagName&&e.preventDefault()},e.prototype.ngOnInit=function(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown()},e.prototype.ngOnChanges=function(e){if(e.items){var t=e.items;this._onItemsChange(t.currentValue,t.firstChange)}},e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)},e.prototype.scrollTo=function(e,t){if(void 0===t&&(t=!1),e){var n=this.items.indexOf(e);if(!(n<0||n>=this.itemsLength)){var i;if(this.virtualScroll){var r=this._panelService.dimensions.itemHeight;i=this._panelService.getScrollTo(n*r,r,this._lastScrollPosition)}else{var s=this._dropdown.querySelector("#"+e.htmlId),o=t?s.offsetTop:this._lastScrollPosition;i=this._panelService.getScrollTo(s.offsetTop,s.clientHeight,o)}y(i)&&(this._scrollablePanel.scrollTop=i)}}},e.prototype.scrollToTag=function(){var e=this._scrollablePanel;e.scrollTop=e.scrollHeight-e.clientHeight},e.prototype.adjustPosition=function(){var e=this._parent.getBoundingClientRect(),t=this._select.getBoundingClientRect();this._setOffset(e,t)},e.prototype._handleDropdownPosition=function(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),"top"===this._currentPosition?(this._renderer.addClass(this._dropdown,_),this._renderer.removeClass(this._dropdown,I),this._renderer.addClass(this._select,_),this._renderer.removeClass(this._select,I)):(this._renderer.addClass(this._dropdown,I),this._renderer.removeClass(this._dropdown,_),this._renderer.addClass(this._select,I),this._renderer.removeClass(this._select,_)),this.appendTo&&this._updatePosition(),this._dropdown.style.opacity="1"},e.prototype._handleScroll=function(){var e=this;this._zone.runOutsideAngular((function(){r.fromEvent(e.scrollElementRef.nativeElement,"scroll").pipe(s.takeUntil(e._destroy$),s.auditTime(0,T)).subscribe((function(t){return e._onContentScrolled(t.target.scrollTop)}))}))},e.prototype._handleOutsideClick=function(){var e=this;this._document&&this._zone.runOutsideAngular((function(){r.merge(r.fromEvent(e._document,"touchstart",{capture:!0}),r.fromEvent(e._document,"mousedown",{capture:!0})).pipe(s.takeUntil(e._destroy$)).subscribe((function(t){return e._checkToClose(t)}))}))},e.prototype._checkToClose=function(e){var t=this;if(!this._select.contains(e.target)&&!this._dropdown.contains(e.target)){var n=e.path||e.composedPath&&e.composedPath();e.target&&e.target.shadowRoot&&n&&n[0]&&this._select.contains(n[0])||this._zone.run((function(){return t.outsideClick.emit()}))}},e.prototype._onItemsChange=function(e,t){this.items=e||[],this._scrollToEndFired=!1,this.itemsLength=e.length,this.virtualScroll?this._updateItemsRange(t):this._updateItems(t)},e.prototype._updateItems=function(e){var t=this;this.update.emit(this.items),!1!==e&&this._zone.runOutsideAngular((function(){Promise.resolve().then((function(){var n=t._scrollablePanel.clientHeight;t._panelService.setDimensions(0,n),t._handleDropdownPosition(),t.scrollTo(t.markedItem,e)}))}))},e.prototype._updateItemsRange=function(e){var t=this;this._zone.runOutsideAngular((function(){t._measureDimensions().then((function(){e?(t._renderItemsRange(t._startOffset),t._handleDropdownPosition()):t._renderItemsRange()}))}))},e.prototype._onContentScrolled=function(e){this.virtualScroll&&this._renderItemsRange(e),this._lastScrollPosition=e,this._fireScrollToEnd(e)},e.prototype._updateVirtualHeight=function(e){this._updateScrollHeight&&(this._virtualPadding.style.height=e+"px",this._updateScrollHeight=!1)},e.prototype._onItemsLengthChanged=function(){this._updateScrollHeight=!0},e.prototype._renderItemsRange=function(e){var t=this;if(void 0===e&&(e=null),!e||this._lastScrollPosition!==e){e=e||this._scrollablePanel.scrollTop;var n=this._panelService.calculateItems(e,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(n.scrollHeight),this._contentPanel.style.transform="translateY("+n.topPadding+"px)",this._zone.run((function(){t.update.emit(t.items.slice(n.start,n.end)),t.scroll.emit({start:n.start,end:n.end})})),y(e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=e,this._lastScrollPosition=e)}},e.prototype._measureDimensions=function(){var e=this;if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);var t=a(this.items,1)[0];return this.update.emit([t]),Promise.resolve().then((function(){var n=e._dropdown.querySelector("#"+t.htmlId).clientHeight;e._virtualPadding.style.height=n*e.itemsLength+"px";var i=e._scrollablePanel.clientHeight;return e._panelService.setDimensions(n,i),e._panelService.dimensions}))},e.prototype._fireScrollToEnd=function(e){var t=this;if(!this._scrollToEndFired&&0!==e){var n=this.virtualScroll?this._virtualPadding:this._contentPanel;e+this._dropdown.clientHeight>=n.clientHeight&&(this._zone.run((function(){return t.scrollToEnd.emit()})),this._scrollToEndFired=!0)}},e.prototype._calculateCurrentPosition=function(e){if("auto"!==this.position)return this.position;var t=this._select.getBoundingClientRect(),n=document.documentElement.scrollTop||document.body.scrollTop;return t.top+window.pageYOffset+t.height+e.getBoundingClientRect().height>n+document.documentElement.clientHeight?"top":"bottom"},e.prototype._appendDropdown=function(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!parent)throw new Error("appendTo selector "+this.appendTo+" did not found any parent element");this._parent.appendChild(this._dropdown)}},e.prototype._updatePosition=function(){var e=this._select.getBoundingClientRect(),t=this._parent.getBoundingClientRect(),n=e.left-t.left;this._setOffset(t,e),this._dropdown.style.left=n+"px",this._dropdown.style.width=e.width+"px",this._dropdown.style.minWidth=e.width+"px"},e.prototype._setOffset=function(e,t){var n=t.height;if("top"===this._currentPosition){var i=e.bottom-t.bottom;this._dropdown.style.bottom=i+n+"px",this._dropdown.style.top="auto"}else if("bottom"===this._currentPosition){var r=t.top-e.top;this._dropdown.style.top=r+n+"px",this._dropdown.style.bottom="auto"}},e}();w.decorators=[{type:t.Component,args:[{changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,selector:"ng-dropdown-panel",template:'\n <div *ngIf="headerTemplate" class="ng-dropdown-header">\n <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>\n </div>\n <div #scroll class="ng-dropdown-panel-items scroll-host">\n <div #padding [class.total-padding]="virtualScroll"></div>\n <div #content [class.scrollable-content]="virtualScroll && items.length">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf="footerTemplate" class="ng-dropdown-footer">\n <ng-container [ngTemplateOutlet]="footerTemplate" [ngTemplateOutletContext]="{ searchTerm: filterValue }"></ng-container>\n </div>\n '}]}],w.ctorParameters=function(){return[{type:t.Renderer2},{type:t.NgZone},{type:h},{type:t.ElementRef},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[i.DOCUMENT]}]}]},w.propDecorators={items:[{type:t.Input}],markedItem:[{type:t.Input}],position:[{type:t.Input}],appendTo:[{type:t.Input}],bufferAmount:[{type:t.Input}],virtualScroll:[{type:t.Input}],headerTemplate:[{type:t.Input}],footerTemplate:[{type:t.Input}],filterValue:[{type:t.Input}],update:[{type:t.Output}],scroll:[{type:t.Output}],scrollToEnd:[{type:t.Output}],outsideClick:[{type:t.Output}],contentElementRef:[{type:t.ViewChild,args:["content",{read:t.ElementRef,static:!0}]}],scrollElementRef:[{type:t.ViewChild,args:["scroll",{read:t.ElementRef,static:!0}]}],paddingElementRef:[{type:t.ViewChild,args:["padding",{read:t.ElementRef,static:!0}]}],handleMousedown:[{type:t.HostListener,args:["mousedown",["$event"]]}]};var S=function(){function e(e){this.elementRef=e,this.stateChange$=new r.Subject,this._disabled=!1}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=this._isDisabled(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return(this.elementRef.nativeElement.textContent||"").trim()},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(e){e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})},e.prototype.ngAfterViewChecked=function(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))},e.prototype.ngOnDestroy=function(){this.stateChange$.complete()},e.prototype._isDisabled=function(e){return null!=e&&""+e!="false"},e}();S.decorators=[{type:t.Component,args:[{selector:"ng-option",changeDetection:t.ChangeDetectionStrategy.OnPush,template:"<ng-content></ng-content>"}]}],S.ctorParameters=function(){return[{type:t.ElementRef}]},S.propDecorators={value:[{type:t.Input}],disabled:[{type:t.Input}]};var x=function(){function e(e){this.element=e,this.escape=!0}return e.prototype.ngOnChanges=function(e){var t;this.element.nativeElement.innerHTML=this.escape?(t=this.ngItemLabel)&&g.test(t)?t.replace(m,(function(e){return f[e]})):t:this.ngItemLabel},e}();x.decorators=[{type:t.Directive,args:[{selector:"[ngItemLabel]"}]}],x.ctorParameters=function(){return[{type:t.ElementRef}]},x.propDecorators={ngItemLabel:[{type:t.Input}],escape:[{type:t.Input}]};var O=function(e){this.template=e};O.decorators=[{type:t.Directive,args:[{selector:"[ng-option-tmp]"}]}],O.ctorParameters=function(){return[{type:t.TemplateRef}]};var C=function(e){this.template=e};C.decorators=[{type:t.Directive,args:[{selector:"[ng-optgroup-tmp]"}]}],C.ctorParameters=function(){return[{type:t.TemplateRef}]};var L=function(e){this.template=e};L.decorators=[{type:t.Directive,args:[{selector:"[ng-label-tmp]"}]}],L.ctorParameters=function(){return[{type:t.TemplateRef}]};var E=function(e){this.template=e};E.decorators=[{type:t.Directive,args:[{selector:"[ng-multi-label-tmp]"}]}],E.ctorParameters=function(){return[{type:t.TemplateRef}]};var k=function(e){this.template=e};k.decorators=[{type:t.Directive,args:[{selector:"[ng-header-tmp]"}]}],k.ctorParameters=function(){return[{type:t.TemplateRef}]};var P=function(e){this.template=e};P.decorators=[{type:t.Directive,args:[{selector:"[ng-footer-tmp]"}]}],P.ctorParameters=function(){return[{type:t.TemplateRef}]};var A=function(e){this.template=e};A.decorators=[{type:t.Directive,args:[{selector:"[ng-notfound-tmp]"}]}],A.ctorParameters=function(){return[{type:t.TemplateRef}]};var V=function(e){this.template=e};V.decorators=[{type:t.Directive,args:[{selector:"[ng-typetosearch-tmp]"}]}],V.ctorParameters=function(){return[{type:t.TemplateRef}]};var F=function(e){this.template=e};F.decorators=[{type:t.Directive,args:[{selector:"[ng-loadingtext-tmp]"}]}],F.ctorParameters=function(){return[{type:t.TemplateRef}]};var D=function(e){this.template=e};D.decorators=[{type:t.Directive,args:[{selector:"[ng-tag-tmp]"}]}],D.ctorParameters=function(){return[{type:t.TemplateRef}]};var M=function(e){this.template=e};function R(){return new j}M.decorators=[{type:t.Directive,args:[{selector:"[ng-loadingspinner-tmp]"}]}],M.ctorParameters=function(){return[{type:t.TemplateRef}]};var j=function(){function e(){this._selected=[]}return Object.defineProperty(e.prototype,"value",{get:function(){return this._selected},enumerable:!1,configurable:!0}),e.prototype.select=function(e,t,n){if(e.selected=!0,(!e.children||!t&&n)&&this._selected.push(e),t)if(e.parent){var i=e.parent.children.length,r=e.parent.children.filter((function(e){return e.selected})).length;e.parent.selected=i===r}else e.children&&(this._setChildrenSelectedState(e.children,!0),this._removeChildren(e),n&&this._activeChildren(e)?this._selected=c(this._selected.filter((function(t){return t.parent!==e})),[e]):this._selected=c(this._selected,e.children.filter((function(e){return!e.disabled}))))},e.prototype.unselect=function(e,t){var n;if(this._selected=this._selected.filter((function(t){return t!==e})),e.selected=!1,t)if(e.parent&&e.parent.selected){var i=e.parent.children;this._removeParent(e.parent),this._removeChildren(e.parent),(n=this._selected).push.apply(n,c(i.filter((function(t){return t!==e&&!t.disabled})))),e.parent.selected=!1}else e.children&&(this._setChildrenSelectedState(e.children,!1),this._removeChildren(e))},e.prototype.clear=function(e){this._selected=e?this._selected.filter((function(e){return e.disabled})):[]},e.prototype._setChildrenSelectedState=function(e,t){var n,i;try{for(var r=l(e),s=r.next();!s.done;s=r.next()){var o=s.value;o.disabled||(o.selected=t)}}catch(e){n={error:e}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}},e.prototype._removeChildren=function(e){this._selected=c(this._selected.filter((function(t){return t.parent!==e})),e.children.filter((function(t){return t.parent===e&&t.disabled&&t.selected})))},e.prototype._removeParent=function(e){this._selected=this._selected.filter((function(t){return t!==e}))},e.prototype._activeChildren=function(e){return e.children.every((function(e){return!e.disabled||e.selected}))},e}(),B=function(){function e(){}return e.prototype.warn=function(e){console.warn(e)},e}();function H(){return"axxxxxxxxxxx".replace(/[x]/g,(function(e){return(16*Math.random()|0).toString(16)}))}B.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new B},token:B,providedIn:"root"}),B.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}];var N={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};function U(e){return e.replace(/[^\u0000-\u007E]/g,(function(e){return N[e]||e}))}var z,$=function(){function e(e,t){this._ngSelect=e,this._selectionModel=t,this._items=[],this._filteredItems=[],this._markedIndex=-1}return Object.defineProperty(e.prototype,"items",{get:function(){return this._items},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"filteredItems",{get:function(){return this._filteredItems},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"markedIndex",{get:function(){return this._markedIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selectedItems",{get:function(){return this._selectionModel.value},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"markedItem",{get:function(){return this._filteredItems[this._markedIndex]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"noItemsToSelect",{get:function(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxItemsSelected",{get:function(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSelectedItem",{get:function(){for(var e=this.selectedItems.length-1;e>=0;e--){var t=this.selectedItems[e];if(!t.disabled)return t}return null},enumerable:!1,configurable:!0}),e.prototype.setItems=function(e){var t=this;this._items=e.map((function(e,n){return t.mapItem(e,n)})),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=c(this._items)},e.prototype.select=function(e){if(!e.selected&&!this.maxItemsSelected){var t=this._ngSelect.multiple;t||this.clearSelected(),this._selectionModel.select(e,t,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(e)}},e.prototype.unselect=function(e){e.selected&&(this._selectionModel.unselect(e,this._ngSelect.multiple),this._ngSelect.hideSelected&&y(e.index)&&this._ngSelect.multiple&&this._showSelected(e))},e.prototype.findItem=function(e){var t,n=this;return t=this._ngSelect.compareWith?function(t){return n._ngSelect.compareWith(t.value,e)}:this._ngSelect.bindValue?function(t){return!t.children&&n.resolveNested(t.value,n._ngSelect.bindValue)===e}:function(t){return t.value===e||!t.children&&t.label&&t.label===n.resolveNested(e,n._ngSelect.bindLabel)},this._items.find((function(e){return t(e)}))},e.prototype.addItem=function(e){var t=this.mapItem(e,this._items.length);return this._items.push(t),this._filteredItems.push(t),t},e.prototype.clearSelected=function(e){void 0===e&&(e=!1),this._selectionModel.clear(e),this._items.forEach((function(t){t.selected=e&&t.selected&&t.disabled,t.marked=!1})),this._ngSelect.hideSelected&&this.resetFilteredItems()},e.prototype.findByLabel=function(e){return e=U(e).toLocaleLowerCase(),this.filteredItems.find((function(t){return U(t.label).toLocaleLowerCase().substr(0,e.length)===e}))},e.prototype.filter=function(e){var t,n;if(e){this._filteredItems=[],e=this._ngSelect.searchFn?e:U(e).toLocaleLowerCase();var i=this._ngSelect.searchFn||this._defaultSearchFn,r=this._ngSelect.hideSelected,s=function(t){var n,s,p,u=[];try{for(var d=(n=void 0,l(o._groups.get(t))),h=d.next();!h.done;h=d.next()){var m=h.value;if(!r||!(m.parent&&m.parent.selected||m.selected)){var g=o._ngSelect.searchFn?m.value:m;i(e,g)&&u.push(m)}}}catch(e){n={error:e}}finally{try{h&&!h.done&&(s=d.return)&&s.call(d)}finally{if(n)throw n.error}}if(u.length>0){var f=a(u.slice(-1),1)[0];if(f.parent){var y=o._items.find((function(e){return e===f.parent}));o._filteredItems.push(y)}(p=o._filteredItems).push.apply(p,c(u))}},o=this;try{for(var p=l(Array.from(this._groups.keys())),u=p.next();!u.done;u=p.next()){s(u.value)}}catch(e){t={error:e}}finally{try{u&&!u.done&&(n=p.return)&&n.call(p)}finally{if(t)throw t.error}}}else this.resetFilteredItems()},e.prototype.resetFilteredItems=function(){this._filteredItems.length!==this._items.length&&(this._ngSelect.hideSelected&&this.selectedItems.length>0?this._filteredItems=this._items.filter((function(e){return!e.selected})):this._filteredItems=this._items)},e.prototype.unmarkItem=function(){this._markedIndex=-1},e.prototype.markNextItem=function(){this._stepToItem(1)},e.prototype.markPreviousItem=function(){this._stepToItem(-1)},e.prototype.markItem=function(e){this._markedIndex=this._filteredItems.indexOf(e)},e.prototype.markSelectedOrDefault=function(e){if(0!==this._filteredItems.length){var t=this._getLastMarkedIndex();this._markedIndex=t>-1?t:e?this.filteredItems.findIndex((function(e){return!e.disabled})):-1}},e.prototype.resolveNested=function(e,t){if(!v(e))return e;if(-1===t.indexOf("."))return e[t];for(var n=t.split("."),i=e,r=0,s=n.length;r<s;++r){if(null==i)return null;i=i[n[r]]}return i},e.prototype.mapItem=function(e,t){var n=y(e.$SpOptionLabel)?e.$SpOptionLabel:this.resolveNested(e,this._ngSelect.bindLabel),i=y(e.$SpOptionValue)?e.$SpOptionValue:e;return{index:t,label:y(n)?n.toString():"",value:i,disabled:e.disabled,htmlId:this._ngSelect.dropdownId+"-"+t}},e.prototype.mapSelectedItems=function(){var e,t,n=this,i=this._ngSelect.multiple;try{for(var r=l(this.selectedItems),s=r.next();!s.done;s=r.next()){var o=s.value,a=this._ngSelect.bindValue?this.resolveNested(o.value,this._ngSelect.bindValue):o.value,c=y(a)?this.findItem(a):null;this._selectionModel.unselect(o,i),this._selectionModel.select(c||o,i,this._ngSelect.selectableGroupAsModel)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}this._ngSelect.hideSelected&&(this._filteredItems=this.filteredItems.filter((function(e){return-1===n.selectedItems.indexOf(e)})))},e.prototype._showSelected=function(e){var t,n;if(this._filteredItems.push(e),e.parent){var i=e.parent;this._filteredItems.find((function(e){return e===i}))||this._filteredItems.push(i)}else if(e.children)try{for(var r=l(e.children),s=r.next();!s.done;s=r.next()){var o=s.value;o.selected=!1,this._filteredItems.push(o)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}this._filteredItems=c(this._filteredItems.sort((function(e,t){return e.index-t.index})))},e.prototype._hideSelected=function(e){(this._filteredItems=this._filteredItems.filter((function(t){return t!==e})),e.parent)?e.parent.children.every((function(e){return e.selected}))&&(this._filteredItems=this._filteredItems.filter((function(t){return t!==e.parent}))):e.children&&(this._filteredItems=this.filteredItems.filter((function(t){return t.parent!==e})))},e.prototype._defaultSearchFn=function(e,t){return U(t.label).toLocaleLowerCase().indexOf(e)>-1},e.prototype._getNextItemIndex=function(e){return e>0?this._markedIndex===this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1},e.prototype._stepToItem=function(e){0===this._filteredItems.length||this._filteredItems.every((function(e){return e.disabled}))||(this._markedIndex=this._getNextItemIndex(e),this.markedItem.disabled&&this._stepToItem(e))},e.prototype._getLastMarkedIndex=function(){if(this._ngSelect.hideSelected)return-1;if(this._markedIndex>-1&&void 0===this.markedItem)return-1;var e=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&e<0?-1:Math.max(this.markedIndex,e)},e.prototype._groupBy=function(e,t){var n,i,r,s,o=this,a=new Map;if(0===e.length)return a;if(Array.isArray(e[0].value[t])){try{for(var c=l(e),p=c.next();!p.done;p=c.next()){var u=((f=p.value).value[t]||[]).map((function(e,t){return o.mapItem(e,t)}));a.set(f,u)}}catch(e){n={error:e}}finally{try{p&&!p.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}return a}var d=b(this._ngSelect.groupBy),h=function(e){var n=d?t(e.value):e.value[t];return y(n)?n:void 0};try{for(var m=l(e),g=m.next();!g.done;g=m.next()){var f,v=h(f=g.value),_=a.get(v);_?_.push(f):a.set(v,[f])}}catch(e){r={error:e}}finally{try{g&&!g.done&&(s=m.return)&&s.call(m)}finally{if(r)throw r.error}}return a},e.prototype._flatten=function(e){var t,n,i=b(this._ngSelect.groupBy),r=[],s=function(t){var n=r.length;if(void 0===t){var s=e.get(void 0)||[];return r.push.apply(r,c(s.map((function(e){return Object.assign(Object.assign({},e),{index:n++})})))),"continue"}var l=v(t),a={label:l?"":String(t),children:void 0,parent:null,index:n++,disabled:!o._ngSelect.selectableGroup,htmlId:H()},p=i?o._ngSelect.bindLabel:o._ngSelect.groupBy,u=o._ngSelect.groupValue||function(){var e;return l?t.value:((e={})[p]=t,e)},d=e.get(t).map((function(e){return e.parent=a,e.children=void 0,e.index=n++,e}));a.children=d,a.value=u(t,d.map((function(e){return e.value}))),r.push(a),r.push.apply(r,c(d))},o=this;try{for(var a=l(Array.from(e.keys())),p=a.next();!p.done;p=a.next()){s(p.value)}}catch(e){t={error:e}}finally{try{p&&!p.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}return r},e}();!function(e){e[e.Tab=9]="Tab",e[e.Enter=13]="Enter",e[e.Esc=27]="Esc",e[e.Space=32]="Space",e[e.ArrowUp=38]="ArrowUp",e[e.ArrowDown=40]="ArrowDown",e[e.Backspace=8]="Backspace"}(z||(z={}));var G=function(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"};G.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new G},token:G,providedIn:"root"}),G.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}];var W=new t.InjectionToken("ng-select-selection-model"),K=function(){function e(e,n,i,s,o,l,a){var c=this;this.classes=e,this.autoFocus=n,this._cd=l,this._console=a,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=function(e){return!0},this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new t.EventEmitter,this.focusEvent=new t.EventEmitter,this.changeEvent=new t.EventEmitter,this.openEvent=new t.EventEmitter,this.closeEvent=new t.EventEmitter,this.searchEvent=new t.EventEmitter,this.clearEvent=new t.EventEmitter,this.addEvent=new t.EventEmitter,this.removeEvent=new t.EventEmitter,this.scroll=new t.EventEmitter,this.scrollToEnd=new t.EventEmitter,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=H(),this.escapeHTML=!0,this.useDefaultClass=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new r.Subject,this._keyPress$=new r.Subject,this._onChange=function(e){},this._onTouched=function(){},this.extraLbl=[],this.extraVal=[],this.clearItem=function(e){var t=c.selectedItems.find((function(t){return t.value===e}));c.unselect(t)},this.trackByOption=function(e,t){return c.trackByFn?c.trackByFn(t.value):t},this._mergeGlobalConfig(i),this.itemsList=new $(this,s()),this.element=o.nativeElement}return Object.defineProperty(e.prototype,"items",{get:function(){return this._items},set:function(e){this._itemsAreUsed=!0,this._items=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"compareWith",{get:function(){return this._compareWith},set:function(e){if(!b(e))throw Error("`compareWith` must be a function.");this._compareWith=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"clearSearchOnAdd",{get:function(){return y(this._clearSearchOnAdd)?this._clearSearchOnAdd:this.closeOnSelect},set:function(e){this._clearSearchOnAdd=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.readonly||this._disabled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"filtered",{get:function(){return!!this.searchTerm&&this.searchable||this._isComposing},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_editableSearchTerm",{get:function(){return this.editableSearchTerm&&!this.multiple},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selectedItems",{get:function(){return this.itemsList.selectedItems},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selectedValues",{get:function(){return this.selectedItems.map((function(e){return e.value}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasValue",{get:function(){return this.selectedItems.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentPanelPosition",{get:function(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition},enumerable:!1,configurable:!0}),e.prototype.getExtraValue=function(e,t){var n,i;if(!(this.extraVal.length>t))return e;var r=this.extraVal[t].split("."),s=e,o=0;try{for(var a=l(r),c=a.next();!c.done;c=a.next()){if(s=s[c.value],(o+=1)==r.length)return s}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}},e.prototype.ngOnInit=function(){this._handleKeyPresses(),this._setInputAttributes(),this.extraValues&&(this.extraVal=this.extraValues.split(",")),this.extraLables&&(this.extraLbl=this.extraLables.split(","))},e.prototype.ngOnChanges=function(e){e.multiple&&this.itemsList.clearSelected(),e.items&&this._setItems(e.items.currentValue||[]),e.isOpen&&(this._manualOpen=y(e.isOpen.currentValue))},e.prototype.ngAfterViewInit=function(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),y(this.autoFocus)&&this.focus()},e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.handleKeyDown=function(e){if(z[e.which]){if(!1===this.keyDownFn(e))return;this.handleKeyCode(e)}else e.key&&1===e.key.length&&this._keyPress$.next(e.key.toLocaleLowerCase())},e.prototype.handleKeyCode=function(e){switch(e.which){case z.ArrowDown:this._handleArrowDown(e);break;case z.ArrowUp:this._handleArrowUp(e);break;case z.Space:this._handleSpace(e);break;case z.Enter:this._handleEnter(e);break;case z.Tab:this._handleTab(e);break;case z.Esc:this.close(),e.preventDefault();break;case z.Backspace:this._handleBackspace()}},e.prototype.handleMousedown=function(e){var t=e.target;"INPUT"!==t.tagName&&e.preventDefault(),t.classList.contains("ng-clear-wrapper")?this.handleClearClick():t.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():t.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())},e.prototype.handleArrowClick=function(){this.isOpen?this.close():this.open()},e.prototype.handleClearClick=function(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()},e.prototype.clearModel=function(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())},e.prototype.writeValue=function(e){this.itemsList.clearSelected(),this._handleWriteValue(e),this._cd.markForCheck()},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.setDisabledState=function(e){this._disabled=e,this._cd.markForCheck()},e.prototype.toggle=function(){this.isOpen?this.close():this.open()},e.prototype.open=function(){this.disabled||this.isOpen||this.itemsList.maxItemsSelected||this._manualOpen||(this._isTypeahead||this.addTag||!this.itemsList.noItemsToSelect)&&(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())},e.prototype.close=function(){this.isOpen&&!this._manualOpen&&(this.isOpen=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())},e.prototype.toggleItem=function(e){!e||e.disabled||this.disabled||(this.multiple&&e.selected?this.unselect(e):this.select(e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())},e.prototype.select=function(e){e.selected||(this.itemsList.select(e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit(e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()},e.prototype.focus=function(){this.searchInput.nativeElement.focus()},e.prototype.blur=function(){this.searchInput.nativeElement.blur()},e.prototype.unselect=function(e){e&&(this.itemsList.unselect(e),this.focus(),this._updateNgModel(),this.removeEvent.emit(e))},e.prototype.selectTag=function(){var e,t,n=this;t=b(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:((e={})[this.bindLabel]=this.searchTerm,e);var i=function(e){return n._isTypeahead||!n.isOpen?n.itemsList.mapItem(e,null):n.itemsList.addItem(e)};t instanceof Promise?t.then((function(e){return n.select(i(e))})).catch((function(){})):t&&this.select(i(t))},e.prototype.showClear=function(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled},Object.defineProperty(e.prototype,"showAddTag",{get:function(){if(!this._validTerm)return!1;var e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some((function(t){return t.label.toLowerCase()===e}))&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some((function(t){return t.label.toLowerCase()===e})))&&!this.loading},enumerable:!1,configurable:!0}),e.prototype.showNoItemsFound=function(){var e=0===this.itemsList.filteredItems.length;return(e&&!this._isTypeahead&&!this.loading||e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag},e.prototype.showTypeToSearch=function(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading},e.prototype.onCompositionStart=function(){this._isComposing=!0},e.prototype.onCompositionEnd=function(e){this._isComposing=!1,this.searchWhileComposing||this.filter(e)},e.prototype.filter=function(e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next(e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:e,items:this.itemsList.filteredItems.map((function(e){return e.value}))}),this.open())},e.prototype.onInputFocus=function(e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit(e),this.focused=!0)},e.prototype.onInputBlur=function(e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit(e),this.isOpen||this.disabled||this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1},e.prototype.onItemHover=function(e){e.disabled||this.itemsList.markItem(e)},e.prototype.detectChanges=function(){this._cd.destroyed||this._cd.detectChanges()},e.prototype._setSearchTermFromItems=function(){var e=this.selectedItems&&this.selectedItems[0];this.searchTerm=e&&e.label||null},e.prototype._setItems=function(e){var t=e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=y(t)?!v(t):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems(e),e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&y(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)},e.prototype._setItemsFromNgOptions=function(){var e=this;this.ngOptions.changes.pipe(s.startWith(this.ngOptions),s.takeUntil(this._destroy$)).subscribe((function(t){var n;e.bindLabel=e._defaultLabel,function(t){e.items=t.map((function(e){return{$ngOptionValue:e.value,$ngOptionLabel:e.elementRef.nativeElement.innerHTML,disabled:e.disabled}})),e.itemsList.setItems(e.items),e.hasValue&&e.itemsList.mapSelectedItems(),e.detectChanges()}(t),n=r.merge(e.ngOptions.changes,e._destroy$),r.merge.apply(void 0,c(e.ngOptions.map((function(e){return e.stateChange$})))).pipe(s.takeUntil(n)).subscribe((function(t){var n=e.itemsList.findItem(t.value);n.disabled=t.disabled,n.label=t.label||n.label,e._cd.detectChanges()}))}))},e.prototype._isValidWriteValue=function(e){var t=this;if(!y(e)||this.multiple&&""===e||Array.isArray(e)&&0===e.length)return!1;var n=function(e){return!(!y(t.compareWith)&&v(e)&&t.bindValue)||(t._console.warn("Binding object("+JSON.stringify(e)+") with bindValue is not allowed."),!1)};return this.multiple?Array.isArray(e)?e.every((function(e){return n(e)})):(this._console.warn("Multiple select ngModel should be array."),!1):n(e)},e.prototype._handleWriteValue=function(e){var t=this;if(this._isValidWriteValue(e)){var n=function(e){var n,i=t.itemsList.findItem(e);if(i)t.i