UNPKG

60.5 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/dropdown/dropdown.ts"],"names":["DROPDOWN_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","Dropdown","multi","DropdownItem","this","onClick","EventEmitter","prototype","onOptionClick","event","emit","originalEvent","option","__decorate","Input","Output","Component","selector","template","el","renderer","cd","zone","scrollHeight","filterBy","resetFilterOnHide","dropdownIcon","autoDisplayFirst","emptyFilterMessage","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions","filterMatchMode","tooltip","tooltipPosition","tooltipPositionStyle","autofocusFilter","onChange","onFocus","onBlur","onShow","onHide","onModelChange","onModelTouched","viewPortOffsetTop","Object","defineProperty","_disabled","focused","destroyed","detectChanges","ngAfterContentInit","_this","templates","forEach","item","getType","itemTemplate","selectedItemTemplate","groupTemplate","ngOnInit","optionsToDisplay","options","updateSelectedOption","_options","val","opts","optionLabel","ObjectUtils","generateSelectItems","value","optionsChanged","updateFilledState","filterValue","length","activateFilter","ngAfterViewInit","editable","updateEditableLabel","selectedOption","label","editableInputViewChild","nativeElement","onItemClick","itemClick","disabled","selectItem","focusViewChild","focus","setTimeout","hide","filled","virtualScroll","viewPort","measureScrollOffset","ngAfterViewChecked","overlayVisible","updateVirtualScrollSelectedIndex","runOutsideAngular","alignOverlay","selectedOptionUpdated","itemsWrapper","range","getRenderedRange","start","virtualScrollSelectedIndex","end","scrollToIndex","DomHandler","findSingle","overlay","scrollInView","writeValue","filter","resetFilter","markForCheck","filterViewChild","findOption","placeholder","registerOnChange","fn","registerOnTouched","setDisabledState","onMouseclick","readonly","selfClick","clearClick","hasClass","target","show","onEditableInputClick","bindDocumentClickListener","onEditableInputFocus","onEditableInputChange","onOverlayAnimationStart","toState","element","itemsWrapperSelector","appendOverlay","style","zIndex","String","zindex","bindDocumentResizeListener","selectedListItem","preventModelTouched","onOverlayHide","scrollToSelectedVirtualScrollElement","virtualAutoScrolled","scrollToOffset","resetOffset","findOptionIndex","appendTo","document","body","appendChild","minWidth","getWidth","containerViewChild","restoreOverlayAppend","absolutePosition","relativePosition","onInputFocus","onInputBlur","findPrevEnabledOption","index","prevEnabledOption","i","findNextEnabledOption","nextEnabledOption","onKeydown","search","which","altKey","group","selectedItemIndex","findOptionGroupIndex","nextItemIndex","itemIndex","groupIndex","items","preventDefault","prevItemIndex","prevGroup","searchTimeout","clearTimeout","newOption","char","key","previousSearchChar","currentSearchChar","searchValue","searchIndex","searchOptionWithinGroup","searchOption","searchOptionInRange","opt","toLocaleLowerCase","filterLocale","startsWith","j","equals","dataKey","inGroup","opts_1","__values","opts_1_1","next","done","optgroup","onFilter","inputValue","searchFields","split","filteredGroups","_b","_c","filteredSubOptions","FilterUtils","push","applyFocus","documentClickListener","listen","unbindDocumentClickListener","clearClickState","documentResizeListener","onWindowResize","bind","window","addEventListener","unbindDocumentResizeListener","removeEventListener","isAndroid","clear","ngOnDestroy","ElementRef","Renderer2","ChangeDetectorRef","NgZone","ViewChild","CdkVirtualScrollViewport","ContentChildren","PrimeTemplate","animations","trigger","state","transform","opacity","transition","animate","host","[class.ui-inputwrapper-filled]","[class.ui-inputwrapper-focus]","providers","changeDetection","ChangeDetectionStrategy","Default","DropdownModule","NgModule","imports","CommonModule","SharedModule","ScrollingModule","TooltipModule","exports","declarations"],"mappings":"k8CAaaA,EAA+B,CAC1CC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAW,WAAM,OAAAC,KAC9BC,OAAO,GAkBTC,EAAA,WAAA,SAAAA,IAccC,KAAAC,QAA6B,IAAIC,EAAAA,aAQ/C,OANIH,EAAAI,UAAAC,cAAA,SAAcC,GACVL,KAAKC,QAAQK,KAAK,CACdC,cAAeF,EACfG,OAAQR,KAAKQ,UAjBZC,EAAA,CAARC,EAAAA,sCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,uCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAESD,EAAA,CAATE,EAAAA,wCAdQZ,EAAYU,EAAA,CAfxBG,EAAAA,UAAU,CACPC,SAAU,iBACVC,SAAU,mvBAaDf,GAAb,gBAsTI,SAAAF,EAAmBkB,EAAuBC,EAA6BC,EAA8BC,GAAlFlB,KAAAe,GAAAA,EAAuBf,KAAAgB,SAAAA,EAA6BhB,KAAAiB,GAAAA,EAA8BjB,KAAAkB,KAAAA,EAlM5FlB,KAAAmB,aAAuB,QAoCvBnB,KAAAoB,SAAmB,QAInBpB,KAAAqB,mBAA6B,EAE7BrB,KAAAsB,aAAuB,qBAIvBtB,KAAAuB,kBAA4B,EAM5BvB,KAAAwB,mBAA6B,mBAM7BxB,KAAAyB,YAAsB,EAEtBzB,KAAA0B,WAAqB,EAErB1B,KAAA2B,sBAAgC,iBAEhC3B,KAAA4B,sBAAgC,gBAMhC5B,KAAA6B,gBAA0B,WAI1B7B,KAAA8B,QAAkB,GAElB9B,KAAA+B,gBAA0B,QAE1B/B,KAAAgC,qBAA+B,WAI/BhC,KAAAiC,iBAA2B,EAE1BjC,KAAAkC,SAA8B,IAAIhC,EAAAA,aAElCF,KAAAmC,QAA6B,IAAIjC,EAAAA,aAEjCF,KAAAoC,OAA4B,IAAIlC,EAAAA,aAEhCF,KAAAC,QAA6B,IAAIC,EAAAA,aAEjCF,KAAAqC,OAA4B,IAAInC,EAAAA,aAEhCF,KAAAsC,OAA4B,IAAIpC,EAAAA,aA8C1CF,KAAAuC,cAA0B,aAE1BvC,KAAAwC,eAA2B,aAgD3BxC,KAAAyC,kBAA4B,EA+wBhC,OA/1BaC,OAAAC,eAAI9C,EAAAM,UAAA,WAAQ,KAAZ,WACL,OAAOH,KAAK4C,eAGhB,SAAaA,GACLA,IACA5C,KAAK6C,SAAU,GAEnB7C,KAAK4C,UAAYA,EACX5C,KAAKiB,GAAe6B,WACtB9C,KAAKiB,GAAG8B,iDA4EhBlD,EAAAM,UAAA6C,mBAAA,WAAA,IAAAC,EAAAjD,KACIA,KAAKkD,UAAUC,SAAQ,SAACC,GACpB,OAAOA,EAAKC,WACR,IAAK,OACDJ,EAAKK,aAAeF,EAAKtC,SAC7B,MAEA,IAAK,eACDmC,EAAKM,qBAAuBH,EAAKtC,SACrC,MAEA,IAAK,QACDmC,EAAKO,cAAgBJ,EAAKtC,SAC9B,MAEA,QACImC,EAAKK,aAAeF,EAAKtC,cAMzCjB,EAAAM,UAAAsD,SAAA,WACIzD,KAAK0D,iBAAmB1D,KAAK2D,QAC7B3D,KAAK4D,qBAAqB,OAGrBlB,OAAAC,eAAI9C,EAAAM,UAAA,UAAO,KAAX,WACL,OAAOH,KAAK6D,cAGhB,SAAYC,GACR,IAAIC,EAAO/D,KAAKgE,YAAcC,EAAAA,YAAYC,oBAAoBJ,EAAK9D,KAAKgE,aAAeF,EACvF9D,KAAK6D,SAAWE,EAChB/D,KAAK0D,iBAAmB1D,KAAK6D,SAC7B7D,KAAK4D,qBAAqB5D,KAAKmE,OAC/BnE,KAAKoE,gBAAiB,EACtBpE,KAAKqE,oBAEDrE,KAAKsE,aAAetE,KAAKsE,YAAYC,QACrCvE,KAAKwE,kDAIb3E,EAAAM,UAAAsE,gBAAA,WACQzE,KAAK0E,UACL1E,KAAK2E,uBAIbjC,OAAAC,eAAI9C,EAAAM,UAAA,QAAK,KAAT,WACI,OAAQH,KAAK4E,eAAiB5E,KAAK4E,eAAeC,MAAQ,sCAG9DhF,EAAAM,UAAAwE,oBAAA,WACQ3E,KAAK8E,wBAA0B9E,KAAK8E,uBAAuBC,gBAC3D/E,KAAK8E,uBAAuBC,cAAcZ,MAASnE,KAAK4E,eAAiB5E,KAAK4E,eAAeC,MAAQ7E,KAAKmE,OAAO,KAIzHtE,EAAAM,UAAA6E,YAAA,SAAY3E,GAAZ,IAAA4C,EAAAjD,KACUQ,EAASH,EAAMG,OACrBR,KAAKiF,WAAY,EAEZzE,EAAO0E,WACRlF,KAAKmF,WAAW9E,EAAOG,GACvBR,KAAKoF,eAAeL,cAAcM,SAGtCC,YAAW,WACPrC,EAAKsC,KAAKlF,KACX,MAGPR,EAAAM,UAAAgF,WAAA,SAAW9E,EAAOG,GAAlB,IAAAyC,EAAAjD,KACQA,KAAK4E,gBAAkBpE,IACvBR,KAAK4E,eAAiBpE,EACtBR,KAAKmE,MAAQ3D,EAAO2D,MACpBnE,KAAKwF,QAAS,EAEdxF,KAAKuC,cAAcvC,KAAKmE,OACxBnE,KAAK2E,sBACL3E,KAAKkC,SAAS5B,KAAK,CACfC,cAAeF,EAAME,cACrB4D,MAAOnE,KAAKmE,QAGZnE,KAAKyF,eACLH,YAAW,WACPrC,EAAKR,kBAAoBQ,EAAKyC,SAAWzC,EAAKyC,SAASC,sBAAwB,IAChF,KAKf9F,EAAAM,UAAAyF,mBAAA,WAAA,IAAA3C,EAAAjD,KAeI,GAdIA,KAAKoE,gBAAkBpE,KAAK6F,iBAC5B7F,KAAKoE,gBAAiB,EAElBpE,KAAKyF,eACLzF,KAAK8F,kCAAiC,GAG1C9F,KAAKkB,KAAK6E,mBAAkB,WACxBT,YAAW,WACPrC,EAAK+C,iBACN,OAIPhG,KAAKiG,uBAAyBjG,KAAKkG,aAAc,CACjD,GAAIlG,KAAKyF,eAAiBzF,KAAK0F,SAAU,CACrC,IAAIS,EAAQnG,KAAK0F,SAASU,mBAC1BpG,KAAK8F,kCAAiC,IAElCK,EAAME,MAAQrG,KAAKsG,4BAA8BH,EAAMI,IAAMvG,KAAKsG,6BAClEtG,KAAK0F,SAASc,cAAcxG,KAAKsG,4BAItBG,EAAAA,WAAWC,WAAW1G,KAAK2G,QAAS,0BAEnDF,EAAAA,WAAWG,aAAa5G,KAAKkG,aAAcO,EAAAA,WAAWC,WAAW1G,KAAK2G,QAAS,0BAEnF3G,KAAKiG,uBAAwB,IAIrCpG,EAAAM,UAAA0G,WAAA,SAAW1C,GACHnE,KAAK8G,QACL9G,KAAK+G,cAGT/G,KAAKmE,MAAQA,EACbnE,KAAK4D,qBAAqBO,GAC1BnE,KAAK2E,sBACL3E,KAAKqE,oBACLrE,KAAKiB,GAAG+F,gBAGZnH,EAAAM,UAAA4G,YAAA,WACI/G,KAAKsE,YAAc,KAEftE,KAAKiH,iBAAmBjH,KAAKiH,gBAAgBlC,gBAC7C/E,KAAKiH,gBAAgBlC,cAAcZ,MAAQ,IAG/CnE,KAAK0D,iBAAmB1D,KAAK2D,SAGjC9D,EAAAM,UAAAyD,qBAAA,SAAqBE,GACjB9D,KAAK4E,eAAiB5E,KAAKkH,WAAWpD,EAAK9D,KAAK0D,kBAC5C1D,KAAKuB,mBAAqBvB,KAAKmH,cAAgBnH,KAAK4E,gBAAkB5E,KAAK0D,kBAAoB1D,KAAK0D,iBAAiBa,SAAWvE,KAAK0E,WACrI1E,KAAK4E,eAAiB5E,KAAK0D,iBAAiB,IAEhD1D,KAAKiG,uBAAwB,GAGjCpG,EAAAM,UAAAiH,iBAAA,SAAiBC,GACbrH,KAAKuC,cAAgB8E,GAGzBxH,EAAAM,UAAAmH,kBAAA,SAAkBD,GACdrH,KAAKwC,eAAiB6E,GAG1BxH,EAAAM,UAAAoH,iBAAA,SAAiBzD,GACb9D,KAAKkF,SAAWpB,GAGpBjE,EAAAM,UAAAqH,aAAA,SAAanH,GACLL,KAAKkF,UAAUlF,KAAKyH,WAIxBzH,KAAKC,QAAQK,KAAKD,GAElBL,KAAK0H,WAAY,EACjB1H,KAAK2H,WAAalB,EAAAA,WAAWmB,SAASvH,EAAMwH,OAAQ,0BAE/C7H,KAAKiF,WAAcjF,KAAK2H,aACzB3H,KAAKoF,eAAeL,cAAcM,QAE9BrF,KAAK6F,eACL7F,KAAKuF,KAAKlF,GAEVL,KAAK8H,OAET9H,KAAKiB,GAAG8B,mBAIhBlD,EAAAM,UAAA4H,qBAAA,SAAqB1H,GACjBL,KAAKiF,WAAY,EACjBjF,KAAKgI,6BAGTnI,EAAAM,UAAA8H,qBAAA,SAAqB5H,GACjBL,KAAK6C,SAAU,EACf7C,KAAKuF,KAAKlF,GACVL,KAAKmC,QAAQ7B,KAAKD,IAGtBR,EAAAM,UAAA+H,sBAAA,SAAsB7H,GAClBL,KAAKmE,MAAQ9D,EAAMwH,OAAO1D,MAC1BnE,KAAK4D,qBAAqB5D,KAAKmE,OAC/BnE,KAAKuC,cAAcvC,KAAKmE,OACxBnE,KAAKkC,SAAS5B,KAAK,CACfC,cAAeF,EACf8D,MAAOnE,KAAKmE,SAIpBtE,EAAAM,UAAA2H,KAAA,WACI9H,KAAK6F,gBAAiB,GAG1BhG,EAAAM,UAAAgI,wBAAA,SAAwB9H,GACpB,OAAQA,EAAM+H,SACV,IAAK,UACDpI,KAAK2G,QAAUtG,EAAMgI,QACrB,IAAIC,EAAuBtI,KAAKyF,cAAgB,+BAAiC,6BAUjF,GATAzF,KAAKkG,aAAeO,EAAAA,WAAWC,WAAW1G,KAAK2G,QAAS2B,GACxDtI,KAAKuI,gBACDvI,KAAKyB,aACLzB,KAAK2G,QAAQ6B,MAAMC,OAASC,OAAO1I,KAAK0B,cAAgB+E,EAAAA,WAAWkC,SAEvE3I,KAAKgG,eACLhG,KAAKgI,4BACLhI,KAAK4I,6BAED5I,KAAK2D,SAAW3D,KAAK2D,QAAQY,SACxBvE,KAAKyF,cAAe,CACrB,IAAIoD,EAAmBpC,EAAAA,WAAWC,WAAW1G,KAAKkG,aAAc,wCAC5D2C,GACApC,EAAAA,WAAWG,aAAa5G,KAAKkG,aAAc2C,GAKnD7I,KAAKiH,iBAAmBjH,KAAKiH,gBAAgBlC,gBAC7C/E,KAAK8I,qBAAsB,EAEvB9I,KAAKiC,iBACLjC,KAAKiH,gBAAgBlC,cAAcM,SAI3CrF,KAAKqC,OAAO/B,KAAKD,GACrB,MAEA,IAAK,OACDL,KAAK+I,kBAKjBlJ,EAAAM,UAAA6I,qCAAA,WACShJ,KAAKiJ,sBACFjJ,KAAKyC,kBACLzC,KAAK0F,SAASwD,eAAelJ,KAAKyC,mBAE7BzC,KAAKsG,4BAA8B,GACxCtG,KAAK0F,SAASc,cAAcxG,KAAKsG,6BAIzCtG,KAAKiJ,qBAAsB,GAG/BpJ,EAAAM,UAAA2F,iCAAA,SAAiCqD,GACzBnJ,KAAK4E,gBAAkB5E,KAAK0D,kBAAoB1D,KAAK0D,iBAAiBa,SAClE4E,IACAnJ,KAAKyC,kBAAoB,GAG7BzC,KAAKsG,2BAA6BtG,KAAKoJ,gBAAgBpJ,KAAK4E,eAAeT,MAAOnE,KAAK0D,oBAI/F7D,EAAAM,UAAAoI,cAAA,WACQvI,KAAKqJ,WACiB,SAAlBrJ,KAAKqJ,SACLC,SAASC,KAAKC,YAAYxJ,KAAK2G,SAE/BF,EAAAA,WAAW+C,YAAYxJ,KAAK2G,QAAS3G,KAAKqJ,UAEzCrJ,KAAK2G,QAAQ6B,MAAMiB,WACpBzJ,KAAK2G,QAAQ6B,MAAMiB,SAAWhD,EAAAA,WAAWiD,SAAS1J,KAAK2J,mBAAmB5E,eAAiB,QAKvGlF,EAAAM,UAAAyJ,qBAAA,WACQ5J,KAAK2G,SAAW3G,KAAKqJ,UACrBrJ,KAAKe,GAAGgE,cAAcyE,YAAYxJ,KAAK2G,UAI/C9G,EAAAM,UAAAoF,KAAA,SAAKlF,GACDL,KAAK6F,gBAAiB,EAElB7F,KAAK8G,QAAU9G,KAAKqB,mBACpBrB,KAAK+G,cAGL/G,KAAKyF,gBACLzF,KAAKiJ,qBAAsB,GAG/BjJ,KAAKiB,GAAG+F,eACRhH,KAAKsC,OAAOhC,KAAKD,IAGrBR,EAAAM,UAAA6F,aAAA,WACQhG,KAAK2G,UACD3G,KAAKqJ,SACL5C,EAAAA,WAAWoD,iBAAiB7J,KAAK2G,QAAS3G,KAAK2J,mBAAmB5E,eAElE0B,EAAAA,WAAWqD,iBAAiB9J,KAAK2G,QAAS3G,KAAK2J,mBAAmB5E,iBAI9ElF,EAAAM,UAAA4J,aAAA,SAAa1J,GACTL,KAAK6C,SAAU,EACf7C,KAAKmC,QAAQ7B,KAAKD,IAGtBR,EAAAM,UAAA6J,YAAA,SAAY3J,GACRL,KAAK6C,SAAU,EACf7C,KAAKoC,OAAO9B,KAAKD,GAEZL,KAAK8I,qBACN9I,KAAKwC,iBAETxC,KAAK8I,qBAAsB,GAG/BjJ,EAAAM,UAAA8J,sBAAA,SAAsBC,GAClB,IAAIC,EAEJ,GAAInK,KAAK0D,kBAAoB1D,KAAK0D,iBAAiBa,OAAQ,CACvD,IAAK,IAAI6F,EAAKF,EAAQ,EAAI,GAAKE,EAAGA,IAAK,CAEnC,KADI5J,EAASR,KAAK0D,iBAAiB0G,IACxBlF,SAAX,CAIIiF,EAAoB3J,EACpB,OAIR,IAAK2J,EACD,IAASC,EAAIpK,KAAK0D,iBAAiBa,OAAS,EAAG6F,GAAKF,EAAQE,IAAK,CAC7D,IAAI5J,EACJ,KADIA,EAASR,KAAK0D,iBAAiB0G,IACxBlF,SAAX,CAIIiF,EAAoB3J,EACpB,QAMhB,OAAO2J,GAGXtK,EAAAM,UAAAkK,sBAAA,SAAsBH,GAClB,IAAII,EAEJ,GAAItK,KAAK0D,kBAAoB1D,KAAK0D,iBAAiBa,OAAQ,CACvD,IAAK,IAAI6F,EAAKF,EAAQ,EAAIA,EAASlK,KAAK0D,iBAAiBa,OAAS,EAAI6F,IAAK,CAEvE,KADI5J,EAASR,KAAK0D,iBAAiB0G,IACxBlF,SAAX,CAIIoF,EAAoB9J,EACpB,OAIR,IAAK8J,EACD,IAASF,EAAI,EAAGA,EAAIF,EAAOE,IAAK,CAC5B,IAAI5J,EACJ,KADIA,EAASR,KAAK0D,iBAAiB0G,IACxBlF,SAAX,CAIIoF,EAAoB9J,EACpB,QAMhB,OAAO8J,GAGXzK,EAAAM,UAAAoK,UAAA,SAAUlK,EAAsBmK,GAC5B,IAAIxK,KAAKyH,UAAazH,KAAK0D,kBAAqD,OAAjC1D,KAAK0D,iBAAiBa,OAIrE,OAAOlE,EAAMoK,OAET,KAAK,GACD,IAAKzK,KAAK6F,gBAAkBxF,EAAMqK,OAC9B1K,KAAK8H,YAGL,GAAI9H,KAAK2K,MAAO,CAGZ,IAA2B,KAFvBC,EAAoB5K,KAAK4E,eAAiB5E,KAAK6K,qBAAqB7K,KAAK4E,eAAeT,MAAOnE,KAAK0D,mBAAqB,GAE/F,CAC1B,IAAIoH,EAAgBF,EAAkBG,UAAY,EAC9CD,EAAiB9K,KAAK0D,iBAAiBkH,EAAkBI,YAAYC,MAAY,QACjFjL,KAAKmF,WAAW9E,EAAOL,KAAK0D,iBAAiBkH,EAAkBI,YAAYC,MAAMH,IACjF9K,KAAKiG,uBAAwB,GAExBjG,KAAK0D,iBAAiBkH,EAAkBI,WAAa,KAC1DhL,KAAKmF,WAAW9E,EAAOL,KAAK0D,iBAAiBkH,EAAkBI,WAAa,GAAGC,MAAM,IACrFjL,KAAKiG,uBAAwB,QAIjCjG,KAAKmF,WAAW9E,EAAOL,KAAK0D,iBAAiB,GAAGuH,MAAM,QAGzD,CACD,IAAIL,EAAoB5K,KAAK4E,eAAiB5E,KAAKoJ,gBAAgBpJ,KAAK4E,eAAeT,MAAOnE,KAAK0D,mBAAqB,EACpH4G,EAAoBtK,KAAKqK,sBAAsBO,GAC/CN,IACAtK,KAAKmF,WAAW9E,EAAOiK,GACvBtK,KAAKiG,uBAAwB,GAKzC5F,EAAM6K,iBAEV,MAGA,KAAK,GACD,GAAIlL,KAAK2K,MAAO,CAEZ,IAA2B,KADvBC,EAAoB5K,KAAK4E,eAAiB5E,KAAK6K,qBAAqB7K,KAAK4E,eAAeT,MAAOnE,KAAK0D,mBAAqB,GAC/F,CAC1B,IAAIyH,EAAgBP,EAAkBG,UAAY,EAClD,GAAII,GAAiB,EACjBnL,KAAKmF,WAAW9E,EAAOL,KAAK0D,iBAAiBkH,EAAkBI,YAAYC,MAAME,IACjFnL,KAAKiG,uBAAwB,OAE5B,GAAIkF,EAAgB,EAAG,CACxB,IAAIC,EAAYpL,KAAK0D,iBAAiBkH,EAAkBI,WAAa,GACjEI,IACApL,KAAKmF,WAAW9E,EAAO+K,EAAUH,MAAMG,EAAUH,MAAM1G,OAAS,IAChEvE,KAAKiG,uBAAwB,SAKxC,CACG2E,EAAoB5K,KAAK4E,eAAiB5E,KAAKoJ,gBAAgBpJ,KAAK4E,eAAeT,MAAOnE,KAAK0D,mBAAqB,EAAxH,IACIyG,EAAoBnK,KAAKiK,sBAAsBW,GAC/CT,IACAnK,KAAKmF,WAAW9E,EAAO8J,GACvBnK,KAAKiG,uBAAwB,GAIrC5F,EAAM6K,iBACV,MAGA,KAAK,GACL,KAAK,GACIlL,KAAK6F,iBACN7F,KAAK8H,OACLzH,EAAM6K,kBAEd,MAGA,KAAK,KACIlL,KAAK8G,QAAW9G,KAAK0D,kBAAoB1D,KAAK0D,iBAAiBa,OAAS,IACzEvE,KAAKuF,KAAKlF,GAGdA,EAAM6K,iBACV,MAGA,KAAK,GACL,KAAK,EACDlL,KAAKuF,KAAKlF,GACd,MAGA,QACQmK,GACAxK,KAAKwK,OAAOnK,KAM5BR,EAAAM,UAAAqK,OAAA,SAAOnK,GAAP,IAAA4C,EAAAjD,KACQA,KAAKqL,eACLC,aAAatL,KAAKqL,eAGtB,IASIE,EATEC,EAAOnL,EAAMoL,IAUnB,GATAzL,KAAK0L,mBAAqB1L,KAAK2L,kBAC/B3L,KAAK2L,kBAAoBH,EAErBxL,KAAK0L,qBAAuB1L,KAAK2L,kBACjC3L,KAAK4L,YAAc5L,KAAK2L,kBAExB3L,KAAK4L,YAAc5L,KAAK4L,YAAc5L,KAAK4L,YAAcJ,EAAOA,EAGhExL,KAAK2K,MAAO,CACZ,IAAIkB,EAAc7L,KAAK4E,eAAiB5E,KAAK6K,qBAAqB7K,KAAK4E,eAAeT,MAAOnE,KAAK0D,kBAAoB,CAACsH,WAAY,EAAGD,UAAW,GACjJQ,EAAYvL,KAAK8L,wBAAwBD,OAExC,CACGA,EAAc7L,KAAK4E,eAAiB5E,KAAKoJ,gBAAgBpJ,KAAK4E,eAAeT,MAAOnE,KAAK0D,mBAAqB,EAClH6H,EAAYvL,KAAK+L,eAAeF,GAGhCN,IAAcA,EAAUrG,WACxBlF,KAAKmF,WAAW9E,EAAOkL,GACvBvL,KAAKiG,uBAAwB,GAGjCjG,KAAKqL,cAAgB/F,YAAW,WAC5BrC,EAAK2I,YAAc,OACpB,MAGP/L,EAAAM,UAAA4L,aAAA,SAAa7B,GACT,IAAI1J,EAUJ,OARIR,KAAK4L,eACLpL,EAASR,KAAKgM,oBAAoB9B,EAAOlK,KAAK0D,iBAAiBa,WAG3D/D,EAASR,KAAKgM,oBAAoB,EAAG9B,KAItC1J,GAGXX,EAAAM,UAAA6L,oBAAA,SAAoB3F,EAAOE,GACvB,IAAK,IAAI6D,EAAI/D,EAAO+D,EAAI7D,EAAK6D,IAAK,CAC9B,IAAI6B,EAAMjM,KAAK0D,iBAAiB0G,GAChC,GAAI6B,EAAIpH,MAAMqH,kBAAkBlM,KAAKmM,cAAcC,WAAYpM,KAAK4L,YAAoBM,kBAAkBlM,KAAKmM,iBAAmBF,EAAI/G,SAClI,OAAO+G,EAIf,OAAO,MAGXpM,EAAAM,UAAA2L,wBAAA,SAAwB5B,GAGpB,GAAIlK,KAAK4L,YAAa,CAClB,IAAK,IAAIxB,EAAIF,EAAMc,WAAYZ,EAAIpK,KAAK0D,iBAAiBa,OAAQ6F,IAC7D,IAAK,IAAIiC,EAAKnC,EAAMc,aAAeZ,EAAMF,EAAMa,UAAY,EAAK,EAAGsB,EAAIrM,KAAK0D,iBAAiB0G,GAAGa,MAAM1G,OAAQ8H,IAAK,CAE/G,IADIJ,EAAMjM,KAAK0D,iBAAiB0G,GAAGa,MAAMoB,IACjCxH,MAAMqH,kBAAkBlM,KAAKmM,cAAcC,WAAYpM,KAAK4L,YAAoBM,kBAAkBlM,KAAKmM,iBAAmBF,EAAI/G,SAClI,OAAO+G,EAMf,IAAS7B,EAAI,EAAGA,GAAKF,EAAMc,WAAYZ,IACnC,IAASiC,EAAI,EAAGA,GAAMnC,EAAMc,aAAeZ,EAAKF,EAAMa,UAAY/K,KAAK0D,iBAAiB0G,GAAGa,MAAM1G,QAAS8H,IAAK,CAC3G,IAAIJ,EACJ,IADIA,EAAMjM,KAAK0D,iBAAiB0G,GAAGa,MAAMoB,IACjCxH,MAAMqH,kBAAkBlM,KAAKmM,cAAcC,WAAYpM,KAAK4L,YAAoBM,kBAAkBlM,KAAKmM,iBAAmBF,EAAI/G,SAClI,OAAO+G,GAO3B,OAAO,MAGXpM,EAAAM,UAAAiJ,gBAAA,SAAgBtF,EAAUC,GACtB,IAAImG,GAAiB,EACrB,GAAInG,EACA,IAAK,IAAIqG,EAAI,EAAGA,EAAIrG,EAAKQ,OAAQ6F,IAC7B,GAAY,MAAPtG,GAAgC,MAAjBC,EAAKqG,GAAGjG,OAAkBF,EAAAA,YAAYqI,OAAOxI,EAAKC,EAAKqG,GAAGjG,MAAOnE,KAAKuM,SAAU,CAChGrC,EAAQE,EACR,MAKZ,OAAOF,GAGXrK,EAAAM,UAAA0K,qBAAA,SAAqB/G,EAAUC,GAC3B,IAAIiH,EAAYD,EAEhB,GAAIhH,EACA,IAAK,IAAIqG,EAAI,EAAGA,EAAIrG,EAAKQ,SACrByG,EAAaZ,GAGM,KAFnBW,EAAY/K,KAAKoJ,gBAAgBtF,EAAKC,EAAKqG,GAAGa,SAFjBb,KAUrC,OAAmB,IAAfW,EACO,CAACC,WAAYA,EAAYD,UAAWA,IAGnC,GAIhBlL,EAAAM,UAAA+G,WAAA,SAAWpD,EAAUC,EAAayI,WAC9B,GAAIxM,KAAK2K,QAAU6B,EAAS,CACxB,IAAIP,OAAG,EACP,GAAIlI,GAAQA,EAAKQ,WACb,IAAqB,IAAAkI,EAAAC,EAAA3I,GAAI4I,EAAAF,EAAAG,QAAAD,EAAAE,KAAAF,EAAAF,EAAAG,OAAE,CAAtB,IAAIE,EAAQH,EAAAxI,MAEb,GADA8H,EAAMjM,KAAKkH,WAAWpD,EAAKgJ,EAAS7B,OAAO,GAEvC,wGAIZ,OAAOgB,EAGP,IAAI/B,EAAgBlK,KAAKoJ,gBAAgBtF,EAAKC,GAC9C,OAAkB,GAAVmG,EAAenG,EAAKmG,GAAS,MAI7CrK,EAAAM,UAAA4M,SAAA,SAAS1M,GACL,IAAI2M,EAAa3M,EAAMwH,OAAO1D,MAC1B6I,GAAcA,EAAWzI,QACzBvE,KAAKsE,YAAc0I,EACnBhN,KAAKwE,mBAGLxE,KAAKsE,YAAc,KACnBtE,KAAK0D,iBAAmB1D,KAAK2D,SAGjC3D,KAAKoE,gBAAiB,GAG1BvE,EAAAM,UAAAqE,eAAA,mBACQyI,EAAyBjN,KAAKoB,SAAS8L,MAAM,KAEjD,GAAIlN,KAAK2D,SAAW3D,KAAK2D,QAAQY,OAAQ,CACrC,GAAIvE,KAAK2K,MAAO,CACZ,IAAIwC,EAAiB,OACrB,IAAqB,IAAAC,EAAAV,EAAA1M,KAAK2D,SAAO0J,EAAAD,EAAAR,QAAAS,EAAAR,KAAAQ,EAAAD,EAAAR,OAAE,CAA9B,IAAIE,EAAQO,EAAAlJ,MACTmJ,EAAqBC,EAAAA,YAAYzG,OAAOgG,EAAS7B,MAAOgC,EAAcjN,KAAKsE,YAAatE,KAAK6B,gBAAiB7B,KAAKmM,cACnHmB,GAAsBA,EAAmB/I,QACzC4I,EAAeK,KAAK,CAChB3I,MAAOiI,EAASjI,MAChBV,MAAO2I,EAAS3I,MAChB8G,MAAOqC,sGAKnBtN,KAAK0D,iBAAmByJ,OAGxBnN,KAAK0D,iBAAmB6J,EAAAA,YAAYzG,OAAO9G,KAAK2D,QAASsJ,EAAcjN,KAAKsE,YAAatE,KAAK6B,gBAAiB7B,KAAKmM,cAGxHnM,KAAKoE,gBAAiB,IAI9BvE,EAAAM,UAAAsN,WAAA,WACQzN,KAAK0E,SACL+B,EAAAA,WAAWC,WAAW1G,KAAKe,GAAGgE,cAAe,mCAAmCM,QAEhFoB,EAAAA,WAAWC,WAAW1G,KAAKe,GAAGgE,cAAe,mBAAmBM,SAGxExF,EAAAM,UAAAkF,MAAA,WACIrF,KAAKyN,cAGT5N,EAAAM,UAAA6H,0BAAA,WAAA,IAAA/E,EAAAjD,KACSA,KAAK0N,wBACN1N,KAAK0N,sBAAwB1N,KAAKgB,SAAS2M,OAAO,WAAY,SAAS,SAACtN,GAC/D4C,EAAKyE,WAAczE,EAAKgC,YACzBhC,EAAKsC,KAAKlF,GACV4C,EAAK2K,+BAGT3K,EAAK4K,kBACL5K,EAAKhC,GAAG+F,oBAKpBnH,EAAAM,UAAA0N,gBAAA,WACI7N,KAAK0H,WAAY,EACjB1H,KAAKiF,WAAY,GAGrBpF,EAAAM,UAAAyN,4BAAA,WACQ5N,KAAK0N,wBACL1N,KAAK0N,wBACL1N,KAAK0N,sBAAwB,OAIrC7N,EAAAM,UAAAyI,2BAAA,WACI5I,KAAK8N,uBAAyB9N,KAAK+N,eAAeC,KAAKhO,MACvDiO,OAAOC,iBAAiB,SAAUlO,KAAK8N,yBAG3CjO,EAAAM,UAAAgO,6BAAA,WACQnO,KAAK8N,yBACLG,OAAOG,oBAAoB,SAAUpO,KAAK8N,wBAC1C9N,KAAK8N,uBAAyB,OAItCjO,EAAAM,UAAA4N,eAAA,WACStH,EAAAA,WAAW4H,aACZrO,KAAKuF,KAAKlF,QAIlBR,EAAAM,UAAAkE,kBAAA,WACIrE,KAAKwF,OAAiC,MAAvBxF,KAAK4E,gBAGxB/E,EAAAM,UAAAmO,MAAA,SAAMjO,GACFL,KAAK2H,YAAa,EAClB3H,KAAKmE,MAAQ,KACbnE,KAAKuC,cAAcvC,KAAKmE,OACxBnE,KAAKkC,SAAS5B,KAAK,CACfC,cAAeF,EACf8D,MAAOnE,KAAKmE,QAEhBnE,KAAK4D,qBAAqB5D,KAAKmE,OAC/BnE,KAAK2E,sBACL3E,KAAKqE,qBAGTxE,EAAAM,UAAA4I,cAAA,WACI/I,KAAK4N,8BACL5N,KAAKmO,+BACLnO,KAAK2G,QAAU,KACf3G,KAAKkG,aAAe,KACpBlG,KAAKwC,kBAGT3C,EAAAM,UAAAoO,YAAA,WACIvO,KAAK4J,uBACL5J,KAAK+I,0DAzwBcyF,EAAAA,kBAA6BC,EAAAA,iBAAuBC,EAAAA,yBAAgCC,EAAAA,UAlMlGlO,EAAA,CAARC,EAAAA,4CAEQD,EAAA,CAARC,EAAAA,sCAEQD,EAAA,CAARC,EAAAA,oCAEQD,EAAA,CAARC,EAAAA,qCAEQD,EAAA,CAARC,EAAAA,0CAEQD,EAAA,CAARC,EAAAA,0CAEQD,EAAA,CAARC,EAAAA,+CAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,2CAEQD,EAAA,CAARC,EAAAA,iDAEQD,EAAA,CAARC,EAAAA,4CAEQD,EAAA,CAARC,EAAAA,uCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,uCAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,yCAEQD,EAAA,CAARC,EAAAA,iDAEQD,EAAA,CAARC,EAAAA,4CAEQD,EAAA,CAARC,EAAAA,2CAEQD,EAAA,CAARC,EAAAA,gDAEQD,EAAA,CAARC,EAAAA,qCAEQD,EAAA,CAARC,EAAAA,yCAEQD,EAAA,CAARC,EAAAA,kDAEQD,EAAA,CAARC,EAAAA,6CAEQD,EAAA,CAARC,EAAAA,wCAEQD,EAAA,CAARC,EAAAA,0CAEQD,EAAA,CAARC,EAAAA,0CAEQD,EAAA,CAARC,EAAAA,qDAEQD,EAAA,CAARC,EAAAA,qDAEQD,EAAA,CAARC,EAAAA,+CAEQD,EAAA,CAARC,EAAAA,8CAEQD,EAAA,CAARC,EAAAA,+CAEQD,EAAA,CAARC,EAAAA,yCAEQD,EAAA,CAARC,EAAAA,uCAEQD,EAAA,CAARC,EAAAA,+CAEQD,EAAA,CAARC,EAAAA,oDAEQD,EAAA,CAARC,EAAAA,iDAEQD,EAAA,CAARC,EAAAA,+CAESD,EAAA,CAATE,EAAAA,yCAESF,EAAA,CAATE,EAAAA,wCAESF,EAAA,CAATE,EAAAA,uCAESF,EAAA,CAATE,EAAAA,wCAESF,EAAA,CAATE,EAAAA,uCAESF,EAAA,CAATE,EAAAA,uCAEuBF,EAAA,CAAvBmO,EAAAA,UAAU,uDAEUnO,EAAA,CAApBmO,EAAAA,UAAU,iDAEMnO,EAAA,CAAhBmO,EAAAA,UAAU,4CAE0BnO,EAAA,CAApCmO,EAAAA,UAAUC,EAAAA,0DAEiBpO,EAAA,CAA3BmO,EAAAA,UAAU,+DAEqBnO,EAAA,CAA/BqO,EAAAA,gBAAgBC,EAAAA,gDAIRtO,EAAA,CAARC,EAAAA,sCAiHQD,EAAA,CAARC,EAAAA,qCAjOQb,EAAQY,EAAA,CA1FpBG,EAAAA,UAAU,CACPC,SAAU,aACVC,SAAU,q0NAmEVkO,WAAY,CACRC,EAAAA,QAAQ,mBAAoB,CACxBC,EAAAA,MAAM,OAAQ1G,EAAAA,MAAM,CAChB2G,UAAW,iBACXC,QAAS,KAEbF,EAAAA,MAAM,UAAW1G,EAAAA,MAAM,CACnB2G,UAAW,gBACXC,QAAS,KAEbC,EAAAA,WAAW,kBAAmBC,EAAAA,QAAQ,6BACtCD,EAAAA,WAAW,kBAAmBC,EAAAA,QAAQ,gCAG9CC,KAAM,CACFC,iCAAkC,SAClCC,gCAAiC,WAErCC,UAAW,CAAClQ,GACZmQ,gBAAiBC,EAAAA,wBAAwBC,WAEhChQ,mBAs9Bb,SAAAiQ,KAA8B,OAAjBA,EAAcrP,EAAA,CAL1BsP,EAAAA,SAAS,CACNC,QAAS,CAACC,EAAAA,aAAaC,EAAAA,aAAaC,EAAAA,gBAAgBC,EAAAA,eACpDC,QAAS,CAACxQ,EAASqQ,EAAAA,aAAaC,EAAAA,iBAChCG,aAAc,CAACzQ,EAASE,MAEf+P","sourcesContent":["import {ScrollingModule, CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {NgModule,Component,ElementRef,OnInit,AfterViewInit,AfterContentInit,AfterViewChecked,OnDestroy,Input,Output,Renderer2,EventEmitter,ContentChildren,\n QueryList,ViewChild,TemplateRef,forwardRef,ChangeDetectorRef,NgZone,ViewRef,ChangeDetectionStrategy} from '@angular/core';\nimport {trigger,state,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\nimport {SelectItem} from 'primeng/api';\nimport {SharedModule,PrimeTemplate} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {ObjectUtils} from 'primeng/utils';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport { FilterUtils } from 'primeng/utils';\nimport {TooltipModule} from 'primeng/tooltip';\n\nexport const DROPDOWN_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Dropdown),\n multi: true\n};\n\n@Component({\n selector: 'p-dropdownItem',\n template: `\n <li (click)=\"onOptionClick($event)\" role=\"option\"\n [attr.aria-label]=\"option.label\" [attr.aria-selected]=\"selected\"\n [ngStyle]=\"{'height': itemSize + 'px'}\"\n [ngClass]=\"{'ui-dropdown-item ui-corner-all':true,\n 'ui-state-highlight': selected,\n 'ui-state-disabled':(option.disabled),\n 'ui-dropdown-item-empty': !option.label||option.label.length === 0}\">\n <span *ngIf=\"!template\">{{option.label||'empty'}}</span>\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: option}\"></ng-container>\n </li>\n `\n})\nexport class DropdownItem {\n\n @Input() option: SelectItem;\n\n @Input() selected: boolean;\n\n @Input() disabled: boolean;\n\n @Input() visible: boolean;\n\n @Input() itemSize: number;\n\n @Input() template: TemplateRef<any>;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n onOptionClick(event: Event) {\n this.onClick.emit({\n originalEvent: event,\n option: this.option\n });\n }\n}\n\n@Component({\n selector: 'p-dropdown',\n template: `\n <div #container [ngClass]=\"{'ui-dropdown ui-widget ui-state-default ui-corner-all':true,\n 'ui-state-disabled':disabled, 'ui-dropdown-open':overlayVisible, 'ui-state-focus':focused, 'ui-dropdown-clearable': showClear && !disabled}\"\n (click)=\"onMouseclick($event)\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"ui-helper-hidden-accessible\">\n <input #in [attr.id]=\"inputId\" type=\"text\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" readonly (focus)=\"onInputFocus($event)\" aria-haspopup=\"listbox\"\n aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\" [attr.aria-labelledby]=\"ariaLabelledBy\" (blur)=\"onInputBlur($event)\" (keydown)=\"onKeydown($event, true)\"\n [disabled]=\"disabled\" [attr.tabindex]=\"tabindex\" [attr.autofocus]=\"autofocus\" role=\"listbox\">\n </div>\n <div class=\"ui-dropdown-label-container\" [pTooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [positionStyle]=\"tooltipPositionStyle\" [tooltipStyleClass]=\"tooltipStyleClass\">\n <label [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all':true,'ui-dropdown-label-empty':(label == null || label.length === 0)}\" *ngIf=\"!editable && (label != null)\">\n <ng-container *ngIf=\"!selectedItemTemplate\">{{label||'empty'}}</ng-container>\n <ng-container *ngTemplateOutlet=\"selectedItemTemplate; context: {$implicit: selectedOption}\"></ng-container>\n </label>\n <label [ngClass]=\"{'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder':true,'ui-dropdown-label-empty': (placeholder == null || placeholder.length === 0)}\" *ngIf=\"!editable && (label == null)\">{{placeholder||'empty'}}</label>\n <input #editableInput type=\"text\" [attr.maxlength]=\"maxlength\" [attr.aria-label]=\"selectedOption ? selectedOption.label : ' '\" class=\"ui-dropdown-label ui-inputtext ui-corner-all\" *ngIf=\"editable\" [disabled]=\"disabled\" [attr.placeholder]=\"placeholder\"\n aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\" (click)=\"onEditableInputClick($event)\" (input)=\"onEditableInputChange($event)\" (focus)=\"onEditableInputFocus($event)\" (blur)=\"onInputBlur($event)\">\n <i class=\"ui-dropdown-clear-icon pi pi-times\" (click)=\"clear($event)\" *ngIf=\"value != null && showClear && !disabled\"></i>\n </div>\n <div class=\"ui-dropdown-trigger ui-state-default ui-corner-right\" role=\"button\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\">\n <span class=\"ui-dropdown-trigger-icon ui-clickable\" [ngClass]=\"dropdownIcon\"></span>\n </div>\n <div *ngIf=\"overlayVisible\" [ngClass]=\"'ui-dropdown-panel ui-widget ui-widget-content ui-corner-all ui-shadow'\" [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" [ngStyle]=\"panelStyle\" [class]=\"panelStyleClass\">\n <div *ngIf=\"filter\" class=\"ui-dropdown-filter-container\" (click)=\"$event.stopPropagation()\">\n <input #filter type=\"text\" autocomplete=\"off\" [value]=\"filterValue||''\" class=\"ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" [attr.placeholder]=\"filterPlaceholder\"\n (keydown.enter)=\"$event.preventDefault()\" (keydown)=\"onKeydown($event, false)\" (input)=\"onFilter($event)\" [attr.aria-label]=\"ariaFilterLabel\">\n <span class=\"ui-dropdown-filter-icon pi pi-search\"></span>\n </div>\n <div class=\"ui-dropdown-items-wrapper\" [style.max-height]=\"virtualScroll ? 'auto' : (scrollHeight||'auto')\">\n <ul class=\"ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset\" role=\"listbox\">\n <ng-container *ngIf=\"group\">\n <ng-template ngFor let-optgroup [ngForOf]=\"optionsToDisplay\">\n <li class=\"ui-dropdown-item-group\">\n <span *ngIf=\"!groupTemplate\">{{optgroup.label||'empty'}}</span>\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: {$implicit: optgroup}\"></ng-container>\n </li>\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: optgroup.items, selectedOption: selectedOption}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!group\">\n <ng-container *ngTemplateOutlet=\"itemslist; context: {$implicit: optionsToDisplay, selectedOption: selectedOption}\"></ng-container>\n </ng-container>\n <ng-template #itemslist let-options let-selectedOption=\"selectedOption\">\n\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <ng-template ngFor let-option let-i=\"index\" [ngForOf]=\"options\">\n <p-dropdownItem [option]=\"option\" [selected]=\"selectedOption == option\"\n (onClick)=\"onItemClick($event)\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-template>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport (scrolledIndexChange)=\"scrollToSelectedVirtualScrollElement()\" #viewport [ngStyle]=\"{'height': scrollHeight}\" [itemSize]=\"itemSize\" *ngIf=\"virtualScroll && optionsToDisplay && optionsToDisplay.length\">\n <ng-container *cdkVirtualFor=\"let option of options; let i = index; let c = count; let f = first; let l = last; let e = even; let o = odd\">\n <p-dropdownItem [option]=\"option\" [selected]=\"selectedOption == option\"\n (onClick)=\"onItemClick($event)\"\n [template]=\"itemTemplate\"></p-dropdownItem>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </ng-template>\n <li *ngIf=\"filter && (!optionsToDisplay || (optionsToDisplay && optionsToDisplay.length === 0))\" class=\"ui-dropdown-empty-message\">{{emptyFilterMessage}}</li>\n </ul>\n </div>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n state('void', style({\n transform: 'translateY(5%)',\n opacity: 0\n })),\n state('visible', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => visible', animate('{{showTransitionParams}}')),\n transition('visible => void', animate('{{hideTransitionParams}}'))\n ])\n ],\n host: {\n '[class.ui-inputwrapper-filled]': 'filled',\n '[class.ui-inputwrapper-focus]': 'focused'\n },\n providers: [DROPDOWN_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class Dropdown implements OnInit,AfterViewInit,AfterContentInit,AfterViewChecked,OnDestroy,ControlValueAccessor {\n\n @Input() scrollHeight: string = '200px';\n\n @Input() filter: boolean;\n\n @Input() name: string;\n\n @Input() style: any;\n\n @Input() panelStyle: any;\n\n @Input() styleClass: string;\n\n @Input() panelStyleClass: string;\n\n @Input() readonly: boolean;\n\n @Input() required: boolean;\n\n @Input() editable: boolean;\n\n @Input() appendTo: any;\n\n @Input() tabindex: number;\n\n @Input() placeholder: string;\n\n @Input() filterPlaceholder: string;\n\n @Input() filterLocale: string;\n\n @Input() inputId: string;\n\n @Input() selectId: string;\n\n @Input() dataKey: string;\n\n @Input() filterBy: string = 'label';\n\n @Input() autofocus: boolean;\n\n @Input() resetFilterOnHide: boolean = false;\n\n @Input() dropdownIcon: string = 'pi pi-chevron-down';\n\n @Input() optionLabel: string;\n\n @Input() autoDisplayFirst: boolean = true;\n\n @Input() group: boolean;\n\n @Input() showClear: boolean;\n\n @Input() emptyFilterMessage: string = 'No results found';\n\n @Input() virtualScroll: boolean;\n\n @Input() itemSize: number;\n\n @Input() autoZIndex: boolean = true;\n\n @Input() baseZIndex: number = 0;\n\n @Input() showTransitionOptions: string = '225ms ease-out';\n\n @Input() hideTransitionOptions: string = '195ms ease-in';\n\n @Input() ariaFilterLabel: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() maxlength: number;\n\n @Input() tooltip: string = '';\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipPositionStyle: string = 'absolute';\n\n @Input() tooltipStyleClass: string;\n\n @Input() autofocusFilter: boolean = true;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('filter') filterViewChild: ElementRef;\n\n @ViewChild('in') focusViewChild: ElementRef;\n\n @ViewChild(CdkVirtualScrollViewport) viewPort: CdkVirtualScrollViewport;\n\n @ViewChild('editableInput') editableInputViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n private _disabled: boolean;\n\n @Input() get disabled(): boolean {\n return this._disabled;\n };\n\n set disabled(_disabled: boolean) {\n if (_disabled)\n this.focused = false;\n\n this._disabled = _disabled;\n if (!(this.cd as ViewRef).destroyed) {\n this.cd.detectChanges();\n }\n }\n\n overlay: HTMLDivElement;\n\n itemsWrapper: HTMLDivElement;\n\n itemTemplate: TemplateRef<any>;\n\n groupTemplate: TemplateRef<any>;\n\n selectedItemTemplate: TemplateRef<any>;\n\n selectedOption: any;\n\n _options: any[];\n\n value: any;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n optionsToDisplay: any[];\n\n hover: boolean;\n\n focused: boolean;\n\n filled: boolean;\n\n overlayVisible: boolean;\n\n documentClickListener: any;\n\n optionsChanged: boolean;\n\n panel: HTMLDivElement;\n\n dimensionsUpdated: boolean;\n\n selfClick: boolean;\n\n itemClick: boolean;\n\n clearClick: boolean;\n\n hoveredItem: any;\n\n selectedOptionUpdated: boolean;\n\n filterValue: string;\n\n searchValue: string;\n\n searchIndex: number;\n\n searchTimeout: any;\n\n previousSearchChar: string;\n\n currentSearchChar: string;\n\n documentResizeListener: any;\n\n virtualAutoScrolled: boolean;\n\n virtualScrollSelectedIndex: number;\n\n viewPortOffsetTop: number = 0;\n\n preventModelTouched: boolean;\n\n constructor(public el: ElementRef, public renderer: Renderer2, private cd: ChangeDetectorRef, public zone: NgZone) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'selectedItem':\n this.selectedItemTemplate = item.template;\n break;\n\n case 'group':\n this.groupTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.optionsToDisplay = this.options;\n this.updateSelectedOption(null);\n }\n\n @Input() get options(): any[] {\n return this._options;\n }\n\n set options(val: any[]) {\n let opts = this.optionLabel ? ObjectUtils.generateSelectItems(val, this.optionLabel) : val;\n this._options = opts;\n this.optionsToDisplay = this._options;\n this.updateSelectedOption(this.value);\n this.optionsChanged = true;\n this.updateFilledState();\n\n if (this.filterValue && this.filterValue.length) {\n this.activateFilter();\n }\n }\n\n ngAfterViewInit() {\n if (this.editable) {\n this.updateEditableLabel();\n }\n }\n\n get label(): string {\n return (this.selectedOption ? this.selectedOption.label : null);\n }\n\n updateEditableLabel(): void {\n if (this.editableInputViewChild && this.editableInputViewChild.nativeElement) {\n this.editableInputViewChild.nativeElement.value = (this.selectedOption ? this.selectedOption.label : this.value||'');\n }\n }\n\n onItemClick(event) {\n const option = event.option;\n this.itemClick = true;\n\n if (!option.disabled) {\n this.selectItem(event, option);\n this.focusViewChild.nativeElement.focus();\n }\n\n setTimeout(() => {\n this.hide(event);\n }, 150);\n }\n\n selectItem(event, option) {\n if (this.selectedOption != option) {\n this.selectedOption = option;\n this.value = option.value;\n this.filled = true;\n\n this.onModelChange(this.value);\n this.updateEditableLabel();\n this.onChange.emit({\n originalEvent: event.originalEvent,\n value: this.value\n });\n\n if (this.virtualScroll) {\n setTimeout(() => {\n this.viewPortOffsetTop = this.viewPort ? this.viewPort.measureScrollOffset() : 0;\n }, 1);\n }\n }\n }\n\n ngAfterViewChecked() {\n if (this.optionsChanged && this.overlayVisible) {\n this.optionsChanged = false;\n\n if (this.virtualScroll) {\n this.updateVirtualScrollSelectedIndex(true);\n }\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.alignOverlay();\n }, 1);\n });\n }\n\n if (this.selectedOptionUpdated && this.itemsWrapper) {\n if (this.virtualScroll && this.viewPort) {\n let range = this.viewPort.getRenderedRange();\n this.updateVirtualScrollSelectedIndex(false);\n\n if (range.start > this.virtualScrollSelectedIndex || range.end < this.virtualScrollSelectedIndex) {\n this.viewPort.scrollToIndex(this.virtualScrollSelectedIndex);\n }\n }\n\n let selectedItem = DomHandler.findSingle(this.overlay, 'li.ui-state-highlight');\n if (selectedItem) {\n DomHandler.scrollInView(this.itemsWrapper, DomHandler.findSingle(this.overlay, 'li.ui-state-highlight'));\n }\n this.selectedOptionUpdated = false;\n }\n }\n\n writeValue(value: any): void {\n if (this.filter) {\n this.resetFilter();\n }\n\n this.value = value;\n this.updateSelectedOption(value);\n this.updateEditableLabel();\n this.updateFilledState();\n this.cd.markForCheck();\n }\n\n resetFilter(): void {\n this.filterValue = null;\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n\n this.optionsToDisplay = this.options;\n }\n\n updateSelectedOption(val: any): void {\n this.selectedOption = this.findOption(val, this.optionsToDisplay);\n if (this.autoDisplayFirst && !this.placeholder && !this.selectedOption && this.optionsToDisplay && this.optionsToDisplay.length && !this.editable) {\n this.selectedOption = this.optionsToDisplay[0];\n }\n this.selectedOptionUpdated = true;\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n onMouseclick(event) {\n if (this.disabled||this.readonly) {\n return;\n }\n\n this.onClick.emit(event);\n\n this.selfClick = true;\n this.clearClick = DomHandler.hasClass(event.target, 'ui-dropdown-clear-icon');\n\n if (!this.itemClick && !this.clearClick) {\n this.focusViewChild.nativeElement.focus();\n\n if (this.overlayVisible)\n this.hide(event);\n else\n this.show();\n\n this.cd.detectChanges();\n }\n }\n\n onEditableInputClick(event) {\n this.itemClick = true;\n this.bindDocumentClickListener();\n }\n\n onEditableInputFocus(event) {\n this.focused = true;\n this.hide(event);\n this.onFocus.emit(event);\n }\n\n onEditableInputChange(event) {\n this.value = event.target.value;\n this.updateSelectedOption(this.value);\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n show() {\n this.overlayVisible = true;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n let itemsWrapperSelector = this.virtualScroll ? '.cdk-virtual-scroll-viewport' : '.ui-dropdown-items-wrapper';\n this.itemsWrapper = DomHandler.findSingle(this.overlay, itemsWrapperSelector);\n this.appendOverlay();\n if (this.autoZIndex) {\n this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n this.alignOverlay();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n\n if (this.options && this.options.length) {\n if (!this.virtualScroll) {\n let selectedListItem = DomHandler.findSingle(this.itemsWrapper, '.ui-dropdown-item.ui-state-highlight');\n if (selectedListItem) {\n DomHandler.scrollInView(this.itemsWrapper, selectedListItem);\n }\n }\n }\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.preventModelTouched = true;\n\n if (this.autofocusFilter) {\n this.filterViewChild.nativeElement.focus();\n }\n }\n\n this.onShow.emit(event);\n break;\n\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n\n scrollToSelectedVirtualScrollElement() {\n if (!this.virtualAutoScrolled) {\n if (this.viewPortOffsetTop) {\n this.viewPort.scrollToOffset(this.viewPortOffsetTop);\n }\n else if (this.virtualScrollSelectedIndex > -1) {\n this.viewPort.scrollToIndex(this.virtualScrollSelectedIndex);\n }\n }\n\n this.virtualAutoScrolled = true;\n }\n\n updateVirtualScrollSelectedIndex(resetOffset) {\n if (this.selectedOption && this.optionsToDisplay && this.optionsToDisplay.length) {\n if (resetOffset) {\n this.viewPortOffsetTop = 0;\n }\n\n this.virtualScrollSelectedIndex = this.findOptionIndex(this.selectedOption.value, this.optionsToDisplay);\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n DomHandler.appendChild(this.overlay, this.appendTo);\n\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = DomHandler.getWidth(this.containerViewChild.nativeElement) + 'px';\n }\n }\n }\n\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n\n hide(event) {\n this.overlayVisible = false;\n\n if (this.filter && this.resetFilterOnHide) {\n this.resetFilter();\n }\n\n if (this.virtualScroll) {\n this.virtualAutoScrolled = false;\n }\n\n this.cd.markForCheck();\n this.onHide.emit(event);\n }\n\n alignOverlay() {\n if (this.overlay) {\n if (this.appendTo)\n DomHandler.absolutePosition(this.overlay, this.containerViewChild.nativeElement);\n else\n DomHandler.relativePosition(this.overlay, this.containerViewChild.nativeElement);\n }\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n this.onBlur.emit(event);\n\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n\n findPrevEnabledOption(index) {\n let prevEnabledOption;\n\n if (this.optionsToDisplay && this.optionsToDisplay.length) {\n for (let i = (index - 1); 0 <= i; i--) {\n let option = this.optionsToDisplay[i];\n if (option.disabled) {\n continue;\n }\n else {\n prevEnabledOption = option;\n break;\n }\n }\n\n if (!prevEnabledOption) {\n for (let i = this.optionsToDisplay.length - 1; i >= index ; i--) {\n let option = this.optionsToDisplay[i];\n if (option.disabled) {\n continue;\n }\n else {\n prevEnabledOption = option;\n break;\n }\n }\n }\n }\n\n return prevEnabledOption;\n }\n\n findNextEnabledOption(index) {\n let nextEnabledOption;\n\n if (this.optionsToDisplay && this.optionsToDisplay.length) {\n for (let i = (index + 1); index < (this.optionsToDisplay.length - 1); i++) {\n let option = this.optionsToDisplay[i];\n if (option.disabled) {\n continue;\n }\n else {\n nextEnabledOption = option;\n break;\n }\n }\n\n if (!nextEnabledOption) {\n for (let i = 0; i < index; i++) {\n let option = this.optionsToDisplay[i];\n if (option.disabled) {\n continue;\n }\n else {\n nextEnabledOption = option;\n break;\n }\n }\n }\n }\n\n return nextEnabledOption;\n }\n\n onKeydown(event: KeyboardEvent, search: boolean) {\n if (this.readonly || !this.optionsToDisplay || this.optionsToDisplay.length === null) {\n return;\n }\n\n switch(event.which) {\n //down\n case 40:\n if (!this.overlayVisible && event.altKey) {\n this.show();\n }\n else {\n if (this.group) {\n let selectedItemIndex = this.selectedOption ? this.findOptionGroupIndex(this.selectedOption.value, this.optionsToDisplay) : -1;\n\n if (selectedItemIndex !== -1) {\n let nextItemIndex = selectedItemIndex.itemIndex + 1;\n if (nextItemIndex < (this.optionsToDisplay[selectedItemIndex.groupIndex].items.length)) {\n this.selectItem(event, this.optionsToDisplay[selectedItemIndex.groupIndex].items[nextItemIndex]);\n this.selectedOptionUpdated = true;\n }\n else if (this.optionsToDisplay[selectedItemIndex.groupIndex + 1]) {\n this.selectItem(event, this.optionsToDisplay[selectedItemIndex.groupIndex + 1].items[0]);\n this.selectedOptionUpdated = true;\n }\n }\n else {\n this.selectItem(event, this.optionsToDisplay[0].items[0]);\n }\n }\n else {\n let selectedItemIndex = this.selectedOption ? this.findOptionIndex(this.selectedOption.value, this.optionsToDisplay) : -1;\n let nextEnabledOption = this.findNextEnabledOption(selectedItemIndex);\n if (nextEnabledOption) {\n this.selectItem(event, nextEnabledOption);\n this.selectedOptionUpdated = true;\n }\n }\n }\n\n event.preventDefault();\n\n break;\n\n //up\n case 38:\n if (this.group) {\n let selectedItemIndex = this.selectedOption ? this.findOptionGroupIndex(this.selectedOption.value, this.optionsToDisplay) : -1;\n if (selectedItemIndex !== -1) {\n let prevItemIndex = selectedItemIndex.itemIndex - 1;\n if (prevItemIndex >= 0) {\n this.selectItem(event, this.optionsToDisplay[selectedItemIndex.groupIndex].items[prevItemIndex]);\n this.selectedOptionUpdated = true;\n }\n else if (prevItemIndex < 0) {\n let prevGroup = this.optionsToDisplay[selectedItemIndex.groupIndex - 1];\n if (prevGroup) {\n this.selectItem(event, prevGroup.items[prevGroup.items.length - 1]);\n this.selectedOptionUpdated = true;\n }\n }\n }\n }\n else {\n let selectedItemIndex = this.selectedOption ? this.findOptionIndex(this.selectedOption.value, this.optionsToDisplay) : -1;\n let prevEnabledOption = this.findPrevEnabledOption(selectedItemIndex);\n if (prevEnabledOption) {\n this.selectItem(event, prevEnabledOption);\n this.selectedOptionUpdated = true;\n }\n }\n\n event.preventDefault();\n break;\n\n //space\n case 32:\n case 32:\n if (!this.overlayVisible){\n this.show();\n event.preventDefault();\n }\n break;\n\n //enter\n case 13:\n if (!this.filter || (this.optionsToDisplay && this.optionsToDisplay.length > 0)) {\n this.hide(event);\n }\n\n event.preventDefault();\n break;\n\n //escape and tab\n case 27:\n case 9:\n this.hide(event);\n break;\n\n //search item based on keyboard input\n default:\n if (search) {\n this.search(event);\n }\n break;\n }\n }\n\n search(event) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n const char = event.key;\n this.previousSearchChar = this.currentSearchChar;\n this.currentSearchChar = char;\n\n if (this.previousSearchChar === this.currentSearchChar)\n this.searchValue = this.currentSearchChar;\n else\n this.searchValue = this.searchValue ? this.searchValue + char : char;\n\n let newOption;\n if (this.group) {\n let searchIndex = this.selectedOption ? this.findOptionGroupIndex(this.selectedOption.value, this.optionsToDisplay) : {groupIndex: 0, itemIndex: 0};\n newOption = this.searchOptionWithinGroup(searchIndex);\n }\n else {\n let searchIndex = this.selectedOption ? this.findOptionIndex(this.selectedOption.value, this.optionsToDisplay) : -1;\n newOption = this.searchOption(++searchIndex);\n }\n\n if (newOption && !newOption.disabled) {\n this.selectItem(event, newOption);\n this.selectedOptionUpdated = true;\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = null;\n }, 250);\n }\n\n searchOption(index) {\n let option;\n\n if (this.searchValue) {\n option = this.searchOptionInRange(index, this.optionsToDisplay.length);\n\n if (!option) {\n option = this.searchOptionInRange(0, index);\n }\n }\n\n return option;\n }\n\n searchOptionInRange(start, end) {\n for (let i = start; i < end; i++) {\n let opt = this.optionsToDisplay[i];\n if (opt.label.toLocaleLowerCase(this.filterLocale).startsWith((this.searchValue as any).toLocaleLowerCase(this.filterLocale)) && !opt.disabled) {\n return opt;\n }\n }\n\n return null;\n }\n\n searchOptionWithinGroup(index) {\n let option;\n\n if (this.searchValue) {\n for (let i = index.groupIndex; i < this.optionsToDisplay.length; i++) {\n for (let j = (index.groupIndex === i) ? (index.itemIndex + 1) : 0; j < this.optionsToDisplay[i].items.length; j++) {\n let opt = this.optionsToDisplay[i].items[j];\n if (opt.label.toLocaleLowerCase(this.filterLocale).startsWith((this.searchValue as any).toLocaleLowerCase(this.filterLocale)) && !opt.disabled) {\n return opt;\n }\n }\n }\n\n if (!option) {\n for (let i = 0; i <= index.groupIndex; i++) {\n for (let j = 0; j < ((index.groupIndex === i) ? index.itemIndex : this.optionsToDisplay[i].items.length); j++) {\n let opt = this.optionsToDisplay[i].items[j];\n if (opt.label.toLocaleLowerCase(this.filterLocale).startsWith((this.searchValue as any).toLocaleLowerCase(this.filterLocale)) && !opt.disabled) {\n return opt;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n findOptionIndex(val: any, opts: any[]): number {\n let index: number = -1;\n if (opts) {\n for (let i = 0; i < opts.length; i++) {\n if ((val == null && opts[i].value == null) || ObjectUtils.equals(val, opts[i].value, this.dataKey)) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n findOptionGroupIndex(val: any, opts: any[]): any {\n let groupIndex, itemIndex;\n\n if (opts) {\n for (let i = 0; i < opts.length; i++) {\n groupIndex = i;\n itemIndex = this.findOptionIndex(val, opts[i].items);\n\n if (itemIndex !== -1) {\n break;\n }\n }\n }\n\n if (itemIndex !== -1) {\n return {groupIndex: groupIndex, itemIndex: itemIndex};\n }\n else {\n return -1;\n }\n }\n\n findOption(val: any, opts: any[], inGroup?: boolean): SelectItem {\n if (this.group && !inGroup) {\n let opt: SelectItem;\n if (opts && opts.length) {\n for (let optgroup of opts) {\n opt = this.findOption(val, optgroup.items, true);\n if (opt) {\n break;\n }\n }\n }\n return opt;\n }\n else {\n let index: number = this.findOptionIndex(val, opts);\n return (index != -1) ? opts[index] : null;\n }\n }\n\n onFilter(event): void {\n let inputValue = event.target.value;\n if (inputValue && inputValue.length) {\n this.filterValue = inputValue;\n this.activateFilter();\n }\n else {\n this.filterValue = null;\n this.optionsToDisplay = this.options;\n }\n\n this.optionsChanged = true;\n }\n\n activateFilter() {\n let searchFields: string[] = this.filterBy.split(',');\n\n if (this.options && this.options.length) {\n if (this.group) {\n let filteredGroups = [];\n for (let optgroup of this.options) {\n let filteredSubOptions = FilterUtils.filter(optgroup.items, searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push({\n label: optgroup.label,\n value: optgroup.value,\n items: filteredSubOptions\n });\n }\n }\n\n this.optionsToDisplay = filteredGroups;\n }\n else {\n this.optionsToDisplay = FilterUtils.filter(this.options, searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n }\n\n this.optionsChanged = true;\n }\n }\n\n applyFocus(): void {\n if (this.editable)\n DomHandler.findSingle(this.el.nativeElement, '.ui-dropdown-label.ui-inputtext').focus();\n else\n DomHandler.findSingle(this.el.nativeElement, 'input[readonly]').focus();\n }\n\n focus(): void {\n this.applyFocus();\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen('document', 'click', (event) => {\n if (!this.selfClick && !this.itemClick) {\n this.hide(event);\n this.unbindDocumentClickListener();\n }\n\n this.clearClickState();\n this.cd.markForCheck();\n });\n }\n }\n\n clearClickState() {\n this.selfClick = false;\n this.itemClick = false;\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (!DomHandler.isAndroid()) {\n this.hide(event);\n }\n }\n\n updateFilledState() {\n this.filled = (this.selectedOption != null);\n }\n\n clear(event: Event) {\n this.clearClick = true;\n this.value = null;\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n this.updateSelectedOption(this.value);\n this.updateEditableLabel();\n this.updateFilledState();\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.overlay = null;\n this.itemsWrapper = null;\n this.onModelTouched();\n }\n\n ngOnDestroy() {\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n}\n\n@NgModule({\n imports: [CommonModule,SharedModule,ScrollingModule,TooltipModule],\n exports: [Dropdown,SharedModule,ScrollingModule],\n declarations: [Dropdown,DropdownItem]\n})\nexport class DropdownModule { }\n"]}
\No newline at end of file