PrimeFaces.widget.AutoComplete=PrimeFaces.widget.BaseWidget.extend({init:function(a){this._super(a);this.panelId=this.jqId+"_panel";this.input=$(this.jqId+"_input");this.hinput=$(this.jqId+"_hinput");this.panel=this.jq.children(this.panelId);this.dropdown=this.jq.children(".ui-button");this.active=!0;this.cfg.pojo=1==this.hinput.length;this.cfg.minLength=void 0!=this.cfg.minLength?this.cfg.minLength:1;this.cfg.cache=this.cfg.cache||!1;this.cfg.resultsMessage=this.cfg.resultsMessage||" results are available, use up and down arrow keys to navigate";
this.cfg.ariaEmptyMessage=this.cfg.emptyMessage||"No search results are available.";this.cfg.dropdownMode=this.cfg.dropdownMode||"blank";this.cfg.autoHighlight=void 0===this.cfg.autoHighlight?!0:this.cfg.autoHighlight;this.cfg.myPos=this.cfg.myPos||"left top";this.cfg.atPos=this.cfg.atPos||"left bottom";this.cfg.active=!1===this.cfg.active?!1:!0;this.cfg.dynamic=!0===this.cfg.dynamic?!0:!1;this.cfg.autoSelection=!1===this.cfg.autoSelection?!1:!0;this.suppressInput=!0;this.isDynamicLoaded=this.isTabPressed=
this.touchToDropdownButton=!1;this.cfg.cache&&this.initCache();"server"!==this.cfg.queryMode&&this.fetchItems();this.input.data(PrimeFaces.CLIENT_ID_DATA,this.id);this.hinput.data(PrimeFaces.CLIENT_ID_DATA,this.id);this.placeholder=this.input.attr("placeholder");this.cfg.multiple?(this.setupMultipleMode(),this.multiItemContainer.data("primefaces-overlay-target",!0).find("*").data("primefaces-overlay-target",!0),0<=this.cfg.selectLimit&&this.multiItemContainer.children("li.ui-autocomplete-token").length===
this.cfg.selectLimit&&(this.input.hide(),this.disableDropdown())):(PrimeFaces.skinInput(this.input),this.input.data("primefaces-overlay-target",!0).find("*").data("primefaces-overlay-target",!0),this.dropdown.data("primefaces-overlay-target",!0).find("*").data("primefaces-overlay-target",!0));this.bindStaticEvents();this.cfg.behaviors&&PrimeFaces.attachBehaviors(this.input,this.cfg.behaviors);this.cfg.forceSelection&&this.setupForceSelection();this.panel.length&&this.appendPanel();this.cfg.itemtip&&
(this.itemtip=$('\x3cdiv id\x3d"'+this.id+'_itemtip" class\x3d"ui-autocomplete-itemtip ui-state-highlight ui-widget ui-corner-all ui-shadow"\x3e\x3c/div\x3e').appendTo(document.body),this.cfg.itemtipMyPosition=this.cfg.itemtipMyPosition||"left top",this.cfg.itemtipAtPosition=this.cfg.itemtipAtPosition||"right bottom",this.cfg.checkForScrollbar=-1!==this.cfg.itemtipAtPosition.indexOf("right"));this.input.attr("aria-autocomplete","list");this.jq.attr("role","application");this.jq.append('\x3cspan role\x3d"status" aria-live\x3d"polite" class\x3d"ui-autocomplete-status ui-helper-hidden-accessible"\x3e\x3c/span\x3e');
this.status=this.jq.children(".ui-autocomplete-status")},refresh:function(a){this._super(a)},appendPanel:function(){PrimeFaces.utils.registerDynamicOverlay(this,this.panel,this.id+"_panel")},initCache:function(){this.cache={};var a=this;this.cacheTimeout=setInterval(function(){a.clearCache()},this.cfg.cacheTimeout)},clearCache:function(){this.cache={}},setupMultipleMode:function(){var a=this;this.multiItemContainer=this.jq.children("ul");this.inputContainer=this.multiItemContainer.children(".ui-autocomplete-input-token");
this.multiItemContainer.hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}).click(function(){a.input.focus()});this.input.focus(function(){a.multiItemContainer.addClass("ui-state-focus")}).blur(function(b){a.multiItemContainer.removeClass("ui-state-focus")});this.multiItemContainer.off("click","\x3e li.ui-autocomplete-token \x3e .ui-autocomplete-token-icon").on("click","\x3e li.ui-autocomplete-token \x3e .ui-autocomplete-token-icon",null,function(b){a.multiItemContainer.children("li.ui-autocomplete-token").length===
a.cfg.selectLimit&&(a.input.css("display","inline"),a.enableDropdown());a.removeItem(b,$(this).parent())})},bindStaticEvents:function(){var a=this;this.bindKeyEvents();this.bindDropdownEvents();PrimeFaces.env.browser.mobile&&this.dropdown.bind("touchstart",function(){a.touchToDropdownButton=!0});PrimeFaces.utils.registerHideOverlayHandler(this,"mousedown."+this.id+"_hide",a.panel,function(){return a.itemtip},function(b,c){a.panel.is(c)||0<a.panel.has(c).length||a.hide()});PrimeFaces.utils.registerResizeHandler(this,
"resize."+this.id+"_align",a.panel,function(){a.alignPanel()})},bindDropdownEvents:function(){var a=this;PrimeFaces.skinButton(this.dropdown);this.dropdown.mouseup(function(){a.active&&(a.searchWithDropdown(),a.input.focus())}).keyup(function(b){var c=$.ui.keyCode,d=b.which;if(d===c.SPACE||d===c.ENTER)a.searchWithDropdown(),a.input.focus(),b.preventDefault(),b.stopPropagation()})},disableDropdown:function(){this.dropdown.length&&this.dropdown.off().prop("disabled",!0).addClass("ui-state-disabled")},
enableDropdown:function(){this.dropdown.length&&this.dropdown.prop("disabled")&&(this.bindDropdownEvents(),this.dropdown.prop("disabled",!1).removeClass("ui-state-disabled"))},bindKeyEvents:function(){var a=this;if("enter"!==this.cfg.queryEvent)this.input.on("input propertychange",function(b){a.processKeyEvent(b)});this.input.on("keyup.autoComplete",function(b){var c=$.ui.keyCode,d=b.which;!PrimeFaces.env.isIE(9)||d!==c.BACKSPACE&&d!==c.DELETE||a.processKeyEvent(b);"enter"===a.cfg.queryEvent&&d===
c.ENTER&&(a.itemSelectedWithEnter?a.itemSelectedWithEnter=!1:a.search(a.input.val()));if(a.panel.is(":visible"))if(d===c.ESCAPE)a.hide();else if(d===c.UP||d===c.DOWN)b=a.items.filter(".ui-state-highlight"),b.length&&a.displayAriaStatus(b.data("item-label"));a.checkMatchedItem=!0;a.isTabPressed=!1}).on("keydown.autoComplete",function(b){var c=$.ui.keyCode;a.suppressInput=!1;if(a.panel.is(":visible")){var d=a.items.filter(".ui-state-highlight");switch(b.which){case c.UP:c=0==d.length?a.items.eq(0):
d.prevAll(".ui-autocomplete-item:first");1==c.length&&(d.removeClass("ui-state-highlight"),c.addClass("ui-state-highlight"),a.cfg.scrollHeight&&PrimeFaces.scrollInView(a.panel,c),a.cfg.itemtip&&a.showItemtip(c));b.preventDefault();break;case c.DOWN:c=0==d.length?a.items.eq(0):d.nextAll(".ui-autocomplete-item:first");1==c.length&&(d.removeClass("ui-state-highlight"),c.addClass("ui-state-highlight"),a.cfg.scrollHeight&&PrimeFaces.scrollInView(a.panel,c),a.cfg.itemtip&&a.showItemtip(c));b.preventDefault();
break;case c.ENTER:a.timeout&&a.deleteTimeout();0<d.length&&(d.click(),a.itemSelectedWithEnter=!0);!a.cfg.forceSelection&&0<a.input.val().length&&(this.currentText=a.input.val(),this.previousText=a.input.val(),a.cfg.pojo&&a.hinput.val(this.currentText),$(this).trigger("change"),a.hide());break;case c.TAB:0<d.length&&d.trigger("click"),0<a.input.val().length&&(this.currentText=a.input.val(),this.previousText=a.input.val(),a.cfg.pojo&&a.hinput.val(this.currentText),$(this).trigger("change")),a.hide(),
a.isTabPressed=!0}}else switch(b.which){case c.TAB:a.timeout&&a.deleteTimeout();0<a.input.val().length&&(this.currentText=a.input.val(),this.previousText=a.input.val(),a.cfg.pojo&&a.hinput.val(this.currentText),$(this).trigger("change"),a.hide());a.isTabPressed=!0;break;case c.ENTER:("enter"===a.cfg.queryEvent||0<a.timeout||a.querying)&&b.preventDefault();"enter"!==a.cfg.queryEvent&&a.isValid($(this).val());break;case c.BACKSPACE:a.cfg.multiple&&!a.input.val().length&&(a.removeItem(b,$(this).parent().prev()),
b.preventDefault())}}).on("paste.autoComplete",function(){a.suppressInput=!1;a.checkMatchedItem=!0})},bindDynamicEvents:function(){var a=this;this.items.on("mouseover",function(){var b=$(this);b.hasClass("ui-state-highlight")||(a.items.filter(".ui-state-highlight").removeClass("ui-state-highlight"),b.addClass("ui-state-highlight"),a.cfg.itemtip&&a.showItemtip(b))}).on("click",function(b){var c=$(this);if(c.hasClass("ui-autocomplete-moretext"))a.input.focus(),a.invokeMoreTextBehavior();else{var d=
c.attr("data-item-value");if(a.cfg.multiple){var e=!1;a.cfg.unique&&(e=0!=a.multiItemContainer.children("li[data-token-value\x3d'"+$.escapeSelector(d)+"']").length);if(!e){e=c.attr("data-item-class");var f='\x3cli data-token-value\x3d"'+PrimeFaces.escapeHTML(d);f=f+'"class\x3d"ui-autocomplete-token ui-state-active ui-corner-all ui-helper-hidden'+((""===e?"":" "+e)+'"\x3e')+'\x3cspan class\x3d"ui-autocomplete-token-icon ui-icon ui-icon-close"\x3e\x3c/span\x3e'+('\x3cspan class\x3d"ui-autocomplete-token-label"\x3e'+
PrimeFaces.escapeHTML(c.attr("data-item-label"))+"\x3c/span\x3e\x3c/li\x3e");a.inputContainer.before(f);a.multiItemContainer.children(".ui-helper-hidden").fadeIn();a.input.val("");a.input.removeAttr("placeholder");a.hinput.append('\x3coption value\x3d"'+PrimeFaces.escapeHTML(d)+'" selected\x3d"selected"\x3e\x3c/option\x3e');a.multiItemContainer.children("li.ui-autocomplete-token").length>=a.cfg.selectLimit&&(a.input.css("display","none").blur(),a.disableDropdown());a.invokeItemSelectBehavior(b,d)}}else a.input.val(c.attr("data-item-label")),
this.currentText=a.input.val(),this.previousText=a.input.val(),a.cfg.pojo&&a.hinput.val(d),PrimeFaces.env.isLtIE(10)&&(c=a.input.val().length,a.input.setSelection(c,c)),a.invokeItemSelectBehavior(b,d);a.isTabPressed||a.input.focus()}a.hide()}).on("mousedown",function(){a.checkMatchedItem=!1});PrimeFaces.env.browser.mobile&&this.items.bind("touchstart",function(){a.touchToDropdownButton||(a.itemClick=!0)})},processKeyEvent:function(a){var b=this;if(b.suppressInput)a.preventDefault();else{if(PrimeFaces.env.browser.mobile&&
(b.touchToDropdownButton=!1,b.itemClick)){b.itemClick=!1;return}var c=b.input.val();b.cfg.pojo&&!b.cfg.multiple&&b.hinput.val(c);c.length||(b.hide(),b.deleteTimeout());c.length>=b.cfg.minLength?(b.timeout&&b.deleteTimeout(),b.timeout=setTimeout(function(){b.timeout=null;b.search(c)},b.cfg.delay)):0===c.length&&(b.timeout&&b.deleteTimeout(),b.fireClearEvent())}},showItemtip:function(a){if(a.hasClass("ui-autocomplete-moretext"))this.itemtip.hide();else{if(a.is("li"))var b=a.next(".ui-autocomplete-itemtip-content");
else if(a.children("td:last").hasClass("ui-autocomplete-itemtip-content"))b=a.children("td:last");else{this.itemtip.hide();return}this.itemtip.html(b.html()).css({left:"",top:"","z-index":++PrimeFaces.zindex,width:b.outerWidth()}).position({my:this.cfg.itemtipMyPosition,at:this.cfg.itemtipAtPosition,of:a});this.cfg.checkForScrollbar&&this.panel.innerHeight()<this.panel.children(".ui-autocomplete-items").outerHeight(!0)&&(a=this.panel.offset(),this.itemtip.css("left",a.left+this.panel.outerWidth()));
this.itemtip.show()}},showSuggestions:function(a){this.items=this.panel.find(".ui-autocomplete-item");this.items.attr("role","option");this.cfg.grouping&&this.groupItems();this.bindDynamicEvents();var b=this;this.panel.is(":hidden")?this.show():this.alignPanel();if(0<this.items.length){var c=this.items.eq(0);this.cfg.autoHighlight&&c.length&&c.addClass("ui-state-highlight");1===this.items.length&&b.cfg.forceSelection?(b.items.filter(".ui-state-highlight").click(),this.panel.hide()):(this.panel.children().is("ul")&&
0<a.length&&this.items.filter(":not(.ui-autocomplete-moretext)").each(function(){var b=$(this),c=b.html(),f=new RegExp(PrimeFaces.escapeRegExp(a),"gi");c=c.replace(f,'\x3cspan class\x3d"ui-autocomplete-query"\x3e$\x26\x3c/span\x3e');b.html(c)}),this.cfg.forceSelection&&(this.currentItems=[],this.items.each(function(a,c){b.currentItems.push($(c).attr("data-item-label"))})),this.cfg.autoHighlight&&this.cfg.itemtip&&1===c.length&&this.showItemtip(c),this.displayAriaStatus(this.items.length+this.cfg.resultsMessage))}else this.cfg.emptyMessage?
(c='\x3cdiv class\x3d"ui-autocomplete-emptyMessage ui-widget"\x3e'+PrimeFaces.escapeHTML(this.cfg.emptyMessage)+"\x3c/div\x3e",this.panel.html(c)):this.panel.hide(),this.displayAriaStatus(this.cfg.ariaEmptyMessage)},searchWithDropdown:function(){this.isSearchWithDropdown=!0;"current"===this.cfg.dropdownMode?this.search(this.input.val()):this.search("")},search:function(a){if(this.cfg.active&&void 0!==a&&null!==a){if(this.cfg.cache&&(!this.cfg.dynamic||this.isDynamicLoaded)){if(this.cache[a]){this.panel.html(this.cache[a]);
this.showSuggestions(a);return}if("client"===this.cfg.queryMode){if(this.isSearchWithDropdown){var b=this.wrapperStartTag,c=new RegExp(this.wrapperStartTag+"|"+this.wrapperEndTag,"g");Object.entries(this.cache).map(function(a){b+=a[1].replace(c,"")});b+=this.wrapperEndTag;this.panel.html(b);this.isSearchWithDropdown=!1}else this.panel.empty();this.showSuggestions(a);return}}if(this.active){this.querying=!0;var d=this;this.cfg.itemtip&&this.itemtip.hide();var e={source:this.id,process:this.id,update:this.id,
formId:this.cfg.formId,onsuccess:function(b,c,e){PrimeFaces.ajax.Response.handle(b,c,e,{widget:d,handle:function(b){this.cfg.dynamic&&!this.isDynamicLoaded?(this.panel=$(b),this.appendPanel(),b=this.panel.get(0).innerHTML):this.panel.html(b);this.cfg.cache&&("server"!==this.cfg.queryMode&&!this.isDynamicLoaded&&this.cache[a]?this.panel.html(this.cache[a]):this.cache[a]=b);this.showSuggestions(a)}});return!0},oncomplete:function(){d.querying=!1;d.isDynamicLoaded=!0}};e.params=[{name:this.id+"_query",
value:a}];"hybrid"===this.cfg.queryMode&&e.params.push({name:this.id+"_clientCache",value:!0});this.cfg.dynamic&&!this.isDynamicLoaded&&e.params.push({name:this.id+"_dynamicload",value:!0});this.hasBehavior("query")?this.callBehavior("query",e):PrimeFaces.ajax.Request.handle(e)}}},show:function(){this.alignPanel();this.cfg.effect?this.panel.show(this.cfg.effect,{},this.cfg.effectDuration):this.panel.show()},hide:function(){this.panel.hide();this.panel.css("height","auto");this.cfg.itemtip&&this.itemtip.hide()},
invokeItemSelectBehavior:function(a,b){this.hasBehavior("itemSelect")&&this.callBehavior("itemSelect",{params:[{name:this.id+"_itemSelect",value:b}]})},invokeItemUnselectBehavior:function(a,b){this.hasBehavior("itemUnselect")&&this.callBehavior("itemUnselect",{params:[{name:this.id+"_itemUnselect",value:b}]})},invokeMoreTextBehavior:function(){this.hasBehavior("moreText")&&this.callBehavior("moreText",{params:[{name:this.id+"_moreText",value:!0}]})},removeItem:function(a,b){var c=b.attr("data-token-value"),
d=this.multiItemContainer.children("li.ui-autocomplete-token").index(b),e=this;this.hinput.children("option").eq(d).remove();b.fadeOut("fast",function(){$(this).remove();e.invokeItemUnselectBehavior(a,c)});this.placeholder&&0===this.hinput.children("option").length&&this.input.attr("placeholder",this.placeholder)},setupForceSelection:function(){this.currentItems=[this.input.val()];var a=this;this.input.blur(function(){var b=$(this).val(),c=a.isValid(b);a.cfg.autoSelection&&c&&a.checkMatchedItem&&
a.items&&!a.isTabPressed&&!a.itemSelectedWithEnter&&(b=a.items.filter('[data-item-label\x3d"'+$.escapeSelector(b)+'"]'),b.length&&b.click());a.checkMatchedItem=!1})},disable:function(){this.input.addClass("ui-state-disabled").prop("disabled",!0);this.dropdown.length&&this.dropdown.addClass("ui-state-disabled").prop("disabled",!0)},enable:function(){this.input.removeClass("ui-state-disabled").prop("disabled",!1);this.dropdown.length&&this.dropdown.removeClass("ui-state-disabled").prop("disabled",!1)},
close:function(){this.hide()},deactivate:function(){this.active=!1},activate:function(){this.active=!0},alignPanel:function(){if(this.cfg.multiple)var a=this.multiItemContainer.outerWidth();else{this.panel.is(":visible")?a=this.panel.children(".ui-autocomplete-items").outerWidth():(this.panel.css({visibility:"hidden",display:"block"}),a=this.panel.children(".ui-autocomplete-items").outerWidth(),this.panel.css({visibility:"visible",display:"none"}));var b=this.input.outerWidth();a<b&&(a=b)}this.cfg.scrollHeight&&
((this.panel.is(":hidden")?this.panel.height():this.panel.children().height())>this.cfg.scrollHeight?this.panel.height(this.cfg.scrollHeight):this.panel.css("height","auto"));this.panel.css({left:"",top:"",width:a,"z-index":++PrimeFaces.zindex});this.panel.parent().is(this.jq)?this.panel.css({left:0,top:this.jq.innerHeight()}):this.panel.position({my:this.cfg.myPos,at:this.cfg.atPos,of:this.cfg.multiple?this.jq:this.input,collision:"flipfit"})},displayAriaStatus:function(a){this.status.html("\x3cdiv\x3e"+
PrimeFaces.escapeHTML(a)+"\x3c/div\x3e")},groupItems:function(){var a=this;if(this.items.length){this.itemContainer=this.panel.children(".ui-autocomplete-items");var b=this.items.eq(0);if(!b.hasClass("ui-autocomplete-moretext")){this.currentGroup=b.data("item-group");var c=b.data("item-group-tooltip");b.before(this.getGroupItem(a.currentGroup,a.itemContainer,c))}this.items.filter(":not(.ui-autocomplete-moretext)").each(function(b){b=a.items.eq(b);var c=b.data("item-group"),d=b.data("item-group-tooltip");
a.currentGroup!==c&&(a.currentGroup=c,b.before(a.getGroupItem(c,a.itemContainer,d)))})}},getGroupItem:function(a,b,c){b.is(".ui-autocomplete-table")?(this.colspan||(this.colspan=this.items.eq(0).children("td").length),a=$('\x3ctr class\x3d"ui-autocomplete-group ui-widget-header"\x3e\x3ctd colspan\x3d"'+this.colspan+'"\x3e'+a+"\x3c/td\x3e\x3c/tr\x3e")):a=$('\x3cli class\x3d"ui-autocomplete-group ui-autocomplete-list-item ui-widget-header"\x3e'+a+"\x3c/li\x3e");a&&a.attr("title",c);return a},deleteTimeout:function(){clearTimeout(this.timeout);
this.timeout=null},fireClearEvent:function(){this.callBehavior("clear")},isValid:function(a){if(this.cfg.forceSelection){for(var b=!1,c=0;c<this.currentItems.length;c++){var d=this.currentItems[c];d&&(d=d.replace(/\r?\n/g,""));if(d===a){b=!0;break}}b||(this.input.val(""),this.cfg.multiple||this.hinput.val(""),this.fireClearEvent());return b}},fetchItems:function(){var a=this;PrimeFaces.ajax.Request.handle({source:this.id,process:this.id,update:this.id,formId:this.cfg.formId,global:!1,params:[{name:this.id+
"_clientCache",value:!0}],onsuccess:function(b,c,d){PrimeFaces.ajax.Response.handle(b,c,d,{widget:a,handle:function(b){a.setCache($(b))}});return!0}})},setCache:function(a){var b=a.find(".ui-autocomplete-item"),c=null;this.wrapperStartTag&&this.wrapperEndTag||this.findWrapperTag(a);for(a=0;a<b.length;a++){var d=b.eq(a),e=d.data("item-key");this.cache[e]=(this.cache[e]||this.wrapperStartTag)+d.get(0).outerHTML;if(null!==c&&c!==e||a===b.length-1)this.cache[c]+=this.wrapperEndTag;c=e}},findWrapperTag:function(a){a.is("ul")?
(this.wrapperStartTag='\x3cul class\x3d"ui-autocomplete-items ui-autocomplete-list ui-widget-content ui-widget ui-corner-all ui-helper-reset"\x3e',this.wrapperEndTag="\x3c/ul\x3e"):(a=a.find("\x3e table \x3e thead"),this.wrapperStartTag='\x3ctable class\x3d"ui-autocomplete-items ui-autocomplete-table ui-widget-content ui-widget ui-corner-all ui-helper-reset"\x3e'+(a.length?a.eq(0).outherHTML:"")+"\x3ctbody\x3e",this.wrapperEndTag="\x3c/tbody\x3e\x3c/table\x3e")}});