primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 23.6 kB
JavaScript
import*as e from"react";import t,{PrimeReactContext as n,localeOption as o}from"primereact/api";import{Button as r}from"primereact/button";import{ComponentBase as l,useHandleStyle as i}from"primereact/componentbase";import{useMergeProps as a,useOverlayListener as u,useMountEffect as p,useUpdateEffect as c,useUnmountEffect as s}from"primereact/hooks";import{ChevronDownIcon as d}from"primereact/icons/chevrondown";import{SpinnerIcon as m}from"primereact/icons/spinner";import{TimesCircleIcon as f}from"primereact/icons/timescircle";import{InputText as g}from"primereact/inputtext";import{OverlayService as v}from"primereact/overlayservice";import{Tooltip as y}from"primereact/tooltip";import{classNames as b,ObjectUtils as h,DomHandler as w,UniqueComponentId as x,ZIndexUtils as E,IconUtils as O}from"primereact/utils";import{CSSTransition as C}from"primereact/csstransition";import{Portal as S}from"primereact/portal";import{Ripple as k}from"primereact/ripple";import{VirtualScroller as I}from"primereact/virtualscroller";function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function N(e,t){if("object"!=D(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=D(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function P(e){var t=N(e,"string");return"symbol"==D(t)?t:t+""}function T(e,t,n){return(t=P(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},A.apply(null,arguments)}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function L(e){if(Array.isArray(e))return j(e)}function M(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function G(e,t){if(e){if("string"==typeof e)return j(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(e,t):void 0}}function F(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function R(e){return L(e)||M(e)||G(e)||F()}function _(e){if(Array.isArray(e))return e}function K(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,l,i,a=[],u=!0,p=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(o=l.call(n)).done)&&(a.push(o.value),a.length!==t);u=!0);}catch(e){p=!0,r=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(p)throw r}}return a}}function H(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function U(e,t){return _(e)||K(e,t)||G(e,t)||H()}var q=l.extend({defaultProps:{__TYPE:"AutoComplete",id:null,appendTo:null,autoFocus:!1,autoHighlight:!1,className:null,completeMethod:null,delay:300,disabled:!1,dropdown:!1,dropdownAriaLabel:null,dropdownAutoFocus:!0,dropdownIcon:null,dropdownMode:"blank",emptyMessage:null,field:null,forceSelection:!1,inputClassName:null,inputId:null,inputRef:null,inputStyle:null,variant:null,invalid:!1,itemTemplate:null,loadingIcon:null,maxLength:null,minLength:1,multiple:!1,name:null,onBlur:null,onChange:null,onClear:null,onClick:null,onContextMenu:null,onDblClick:null,onDropdownClick:null,onFocus:null,onHide:null,onKeyPress:null,onKeyUp:null,onMouseDown:null,onSelect:null,onShow:null,onUnselect:null,optionGroupChildren:null,optionGroupLabel:null,optionGroupTemplate:null,panelClassName:null,panelFooterTemplate:null,panelStyle:null,placeholder:null,readOnly:!1,removeTokenIcon:null,scrollHeight:"200px",selectedItemTemplate:null,selectionLimit:null,showEmptyMessage:!1,size:null,style:null,suggestions:null,tabIndex:null,tooltip:null,tooltipOptions:null,transitionOptions:null,type:"text",value:null,virtualScrollerOptions:null,children:void 0},css:{classes:{root:function(e){var t=e.props;return b("p-autocomplete p-component p-inputwrapper",{"p-autocomplete-dd":t.dropdown,"p-autocomplete-multiple":t.multiple,"p-inputwrapper-filled":t.value,"p-invalid":t.invalid,"p-inputwrapper-focus":e.focusedState})},container:function(e){var t=e.props,n=e.context;return b("p-autocomplete-multiple-container p-component p-inputtext",{"p-disabled":t.disabled,"p-variant-filled":t.variant?"filled"===t.variant:n&&"filled"===n.inputStyle})},loadingIcon:"p-autocomplete-loader",dropdownButton:"p-autocomplete-dropdown",removeTokenIcon:"p-autocomplete-token-icon",token:"p-autocomplete-token p-highlight",tokenLabel:"p-autocomplete-token-label",inputToken:"p-autocomplete-input-token",input:function(e){var t=e.props,n=e.context;return b("p-autocomplete-input",{"p-autocomplete-dd-input":t.dropdown,"p-variant-filled":t.variant?"filled"===t.variant:n&&"filled"===n.inputStyle})},panel:function(e){var n=e.context;return b("p-autocomplete-panel p-component",{"p-ripple-disabled":n&&!1===n.ripple||!1===t.ripple})},listWrapper:"p-autocomplete-items-wrapper",list:function(e){return e.virtualScrollerOptions?b("p-autocomplete-items",e.options.className):"p-autocomplete-items"},emptyMessage:"p-autocomplete-item",item:function(e){var t=e.suggestion,n=e.selected;return b("p-autocomplete-item",{"p-disabled":t.disabled},e.optionGroupLabel?{selected:n}:{"p-highlight":n})},itemGroup:"p-autocomplete-item-group",footer:"p-autocomplete-footer",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-autocomplete {\n display: inline-flex;\n position: relative;\n }\n \n .p-autocomplete-loader {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-autocomplete-dd .p-autocomplete-input {\n flex: 1 1 auto;\n width: 1%;\n }\n \n .p-autocomplete-dd .p-autocomplete-input,\n .p-autocomplete-dd .p-autocomplete-multiple-container {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n \n .p-autocomplete-dd .p-autocomplete-dropdown {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0px;\n }\n \n .p-autocomplete .p-autocomplete-panel {\n min-width: 100%;\n }\n \n .p-autocomplete-panel {\n position: absolute;\n top: 0;\n left: 0;\n }\n \n .p-autocomplete-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n \n .p-autocomplete-item {\n cursor: pointer;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n }\n \n .p-autocomplete-multiple-container {\n margin: 0;\n padding: 0;\n list-style-type: none;\n cursor: text;\n overflow: hidden;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n \n .p-autocomplete-token {\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n }\n \n .p-autocomplete-token-icon {\n cursor: pointer;\n }\n \n .p-autocomplete-input-token {\n flex: 1 1 auto;\n display: inline-flex;\n }\n \n .p-autocomplete-input-token input {\n border: 0 none;\n outline: 0 none;\n background-color: transparent;\n margin: 0;\n padding: 0;\n box-shadow: none;\n border-radius: 0;\n width: 100%;\n }\n \n .p-fluid .p-autocomplete {\n display: flex;\n }\n \n .p-fluid .p-autocomplete-dd .p-autocomplete-input {\n width: 1%;\n }\n \n .p-autocomplete-items-wrapper {\n overflow: auto;\n } \n}\n"}});function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=e.memo(e.forwardRef((function(t,r){var l,i,u,p,c,s=a(),d=t.ptm,m=t.cx,f=e.useContext(n),g=function(e,n){return d(e,z({hostName:t.hostName},n))},v=function(e,n){return g(n,{context:{selected:t.selectedItem.current===e,disabled:e.disabled}})},y=function(e){return h.resolveFieldData(e,t.optionGroupLabel)},w=function(){if(t.panelFooterTemplate){var n=h.getJSXElement(t.panelFooterTemplate,t,t.onOverlayHide),o=s({className:m("footer")},g("footer"));return e.createElement("div",o,n)}return null},x=function(e,t,n){return e.findIndex((function(e){return e[t]===n}))},E=e.useRef({key:null,index:0,keyIndex:0}),O=function(n,o,r,l){var i=t.optionGroupTemplate?h.getJSXElement(t.optionGroupTemplate,n,r):t.getOptionGroupLabel(n)||n,a=s(z({index:r,className:m("itemGroup"),"data-p-highlight":!1},l),g("itemGroup"));return e.createElement("li",A({},a,{key:o||null}),i)},D=function(e){return t.selectedItem&&t.selectedItem.current&&Array.isArray(t.selectedItem.current)?t.selectedItem.current.some((function(t){return h.deepEquals(t,e)})):h.deepEquals(t.selectedItem.current,e)},N=function(n,o,r,l){var i=D(n),a=t.itemTemplate?h.getJSXElement(t.itemTemplate,n,r):t.field?h.resolveFieldData(n,t.field):n,u=s(z({index:r,role:"option",className:m("item",{optionGroupLabel:t.optionGroupLabel,suggestion:n,selected:i}),onClick:function(e){return t.onItemClick(e,n)},"aria-selected":i},l),v(n,"item"));return e.createElement("li",A({key:o},u),a,e.createElement(k,null))},P=function(n,o){var r,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={height:l.props?l.props.itemSize:void 0};if(t.optionGroupLabel){if(t.virtualScrollerOptions){var a=x(t.suggestions,t.optionGroupLabel,n);if(-1!==a){E.current={key:n,index:o,keyIndex:a};var u=o+"_"+y(n);return O(n,u,o,{style:i})}var p=o+"_"+E.current.keyIndex,c=s({style:i,"data-group":E.current.keyIndex,"data-index":o-E.current.index-1,"data-p-disabled":n.disabled});return N(n,p,o,c)}var d=(r=o,t.getOptionGroupChildren(n).map((function(e,t){var n=r+"_"+t,o=s({"data-group":r,"data-index":t,"data-p-disabled":e.disabled});return N(e,n,t,o)}))),m=o+"_"+y(n);return e.createElement(e.Fragment,{key:m},O(n,void 0,o,{style:i}),d)}var f="".concat(o,"_").concat(h.isObject(n)?h.resolveFieldData(n,t.field):n),g=s({style:i,"data-p-disabled":n.disabled},v(n,"item"));return N(n,f,o,g)},T=function(e){try{return null==e?void 0:e.map((function(e){return[null==e?void 0:e[null==t?void 0:t.optionGroupLabel]].concat(R(null==e?void 0:e[null==t?void 0:t.optionGroupChildren]))})).flat()}catch(e){}},j=function(){if(t.showEmptyMessage&&h.isEmpty(t.suggestions)){var n=t.emptyMessage||o("emptyMessage"),r=s({className:m("emptyMessage")},g("emptyMessage")),l=s({className:m("list")},g("list"));return e.createElement("ul",l,e.createElement("li",r,n))}if(t.virtualScrollerOptions){var i=t.suggestions?t.optionGroupLabel?T(null==t?void 0:t.suggestions):t.suggestions:null,a=z(z({},t.virtualScrollerOptions),{style:z(z({},t.virtualScrollerOptions.style),{height:t.scrollHeight}),autoSize:!0,items:i,itemTemplate:function(e,t){return e&&P(e,t.index,t)},contentTemplate:function(n){var o=s({id:t.listId,ref:n.contentRef,style:n.style,className:m("list",{virtualScrollerProps:a,options:n}),role:"listbox"},g("list"));return e.createElement("ul",o,n.children)}});return e.createElement(I,A({ref:t.virtualScrollerRef},a,{pt:g("virtualScroller"),__parentMetadata:{parent:t.metaData}}))}var u=t.suggestions?t.suggestions.map(P):null,p=s({id:t.listId,className:m("list"),role:"listbox"},g("list")),c=s({className:m("listWrapper"),style:{maxHeight:t.scrollHeight||"auto"}},g("listWrapper"));return e.createElement("div",c,e.createElement("ul",p,u))},L=(l=z({},t.panelStyle||{}),i=j(),u=w(),p=s({className:b(t.panelClassName,m("panel",{context:f})),style:l,onClick:function(e){return t.onClick(e)}},g("panel")),c=s({classNames:m("transition"),in:t.in,timeout:{enter:120,exit:100},options:t.transitionOptions,unmountOnExit:!0,onEnter:t.onEnter,onEntering:t.onEntering,onEntered:t.onEntered,onExit:t.onExit,onExited:t.onExited},g("transition")),e.createElement(C,A({nodeRef:r},c),e.createElement("div",A({ref:r},p),i,u)));return e.createElement(S,{element:L,appendTo:t.appendTo})})));function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}J.displayName="AutoCompletePanel";var W=e.memo(e.forwardRef((function(l,C){var S=a(),k=e.useContext(n),I=q.getProps(l,k),D=U(e.useState(I.id),2),N=D[0],P=D[1],T=U(e.useState(!1),2),j=T[0],L=T[1],M=U(e.useState(!1),2),G=M[0],F=M[1],_=U(e.useState(!1),2),K=_[0],H=_[1],B={props:I,state:{id:N,searching:j,focused:G,overlayVisible:K}},z=q.setMetaData(B),X=z.ptm,W=z.cx,Z=z.sx,Y=z.isUnstyled;i(q.css.styles,Y,{name:"autocomplete"});var $=e.useRef(null),Q=e.useRef(null),ee=e.useRef(I.inputRef),te=e.useRef(null),ne=e.useRef(null),oe=e.useRef(null),re=e.useRef(null),le=U(u({target:$,overlay:Q,listener:function(e,t){t.valid&&("outside"===t.type?ue(e)||ve():k.hideOverlaysOnDocumentScrolling?ve():w.isDocument(e.target)||be())},when:K}),2),ie=le[0],ae=le[1],ue=function(e){return I.multiple?e.target===te.current||te.current.contains(e.target):e.target===ee.current},pe=function(e){oe.current&&clearTimeout(oe.current);var t=e.target.value;I.multiple||de(e,t),h.isEmpty(t)?(ve(),I.onClear&&I.onClear(e)):t.length>=I.minLength?oe.current=setTimeout((function(){ce(e,t,"input")}),I.delay):ve()},ce=function(e,t,n){null!=t&&("input"===n&&0===t.trim().length||I.completeMethod&&(L(!0),I.completeMethod({originalEvent:e,query:t})))},se=function(e,t,n){if(I.multiple){if(ee.current.value="",!Te(t)&&Le()){var o=I.value?[].concat(R(I.value),[t]):[t];de(e,o)}}else fe(t),de(e,t);I.onSelect&&I.onSelect({originalEvent:e,value:t}),n||(w.focus(ee.current),ve())},de=function(e,t){I.onChange&&I.onChange({originalEvent:e,value:t,stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},target:{name:I.name,id:N,value:t}}),re.current=h.isNotEmpty(t)?t:null},me=function(e){if(h.isEmpty(e))return"";if("string"==typeof e)return e;if(I.selectedItemTemplate){var t=h.getJSXElement(I.selectedItemTemplate,e);return I.multiple||"string"==typeof t?t:e}var n;return I.field&&null!==(n=h.resolveFieldData(e,I.field))&&void 0!==n?n:e},fe=function(e){ee.current.value=me(e)},ge=function(){H(!0)},ve=function(){H(!1),L(!1)},ye=function(){var e,t=null===(e=Ae())||void 0===e||null===(e=e.firstChild)||void 0===e?void 0:e.firstChild;t&&(!Y()&&w.addClass(t,"p-highlight"),t.setAttribute("data-p-highlight",!0))},be=function(){w.alignOverlay(Q.current,I.multiple?te.current:ee.current,I.appendTo||k&&k.appendTo||t.appendTo)},he=function(e){I.dropdownAutoFocus&&w.focus(ee.current,I.dropdownAutoFocus),"blank"===I.dropdownMode?ce(e,"","dropdown"):"current"===I.dropdownMode&&ce(e,ee.current.value,"dropdown"),I.onDropdownClick&&I.onDropdownClick({originalEvent:e,query:ee.current.value})},we=function(e,t){if(!I.disabled&&!I.readOnly){var n=I.value[t],o=I.value.filter((function(e,n){return t!==n}));de(e,o),I.onUnselect&&I.onUnselect({originalEvent:e,value:n})}},xe=function(e){if(K){var t=w.findSingle(Q.current,'li[data-p-highlight="true"]');switch(e.which){case 40:if(t){var n=Oe(t);n&&(!Y()&&w.addClass(n,"p-highlight"),n.setAttribute("data-p-highlight",!0),!Y()&&w.removeClass(t,"p-highlight"),t.setAttribute("data-p-highlight",!1),w.scrollInView(Ae(),n))}else t=w.findSingle(Q.current,"li"),"itemgroup"===w.getAttribute(t,"data-pc-section")&&(t=Oe(t)),t&&(!Y()&&w.addClass(t,"p-highlight"),t.setAttribute("data-p-highlight",!0));e.preventDefault();break;case 38:if(t){var o=Ce(t);o&&(!Y()&&w.addClass(o,"p-highlight"),o.setAttribute("data-p-highlight",!0),!Y()&&w.removeClass(t,"p-highlight"),t.setAttribute("data-p-highlight",!1),w.scrollInView(Ae(),o))}e.preventDefault();break;case 13:t&&(Ee(e,t),ve(),e.preventDefault());break;case 27:ve(),e.preventDefault();break;case 9:t&&Ee(e,t),ve()}}if(I.multiple&&8===e.which)if(I.value&&I.value.length&&!ee.current.value){var r=I.value[I.value.length-1],l=I.value.slice(0,-1);de(e,l),I.onUnselect&&I.onUnselect({originalEvent:e,value:r})}},Ee=function(e,t){I.optionGroupLabel?se(e,je(I.suggestions[t.dataset.group])[t.dataset.index]):se(e,I.suggestions[t.getAttribute("index")])},Oe=function(e){var t=e.nextElementSibling;return t?"itemgroup"===w.getAttribute(t,"data-pc-section")?Oe(t):t:null},Ce=function(e){var t=e.previousElementSibling;return t?"itemgroup"===w.getAttribute(t,"data-pc-section")?Ce(t):t:null},Se=function(e){F(!0),I.onFocus&&I.onFocus(e)},ke=function(e){if(I.multiple)ee.current.value="";else{var t=h.trim(e.target.value).toLowerCase(),n=(I.suggestions||[]).flatMap((function(e){return e.items?e.items:[e]})).find((function(e){var n=I.field?h.resolveFieldData(e,I.field):e,o=n?h.trim(n).toLowerCase():"";return o&&t===o}));n?se(e,n,!0):(ee.current.value="",de(e,null),I.onClear&&I.onClear(e))}},Ie=function(e){F(!1),I.forceSelection&&ke(e),I.onBlur&&I.onBlur(e)},De=function(e){w.focus(ee.current),I.onClick&&I.onClick(e)},Ne=function(e){Se(e),!Y()&&w.addClass(te.current,"p-focus"),te.current.setAttribute("data-p-focus",!0)},Pe=function(e){Ie(e),!Y()&&w.removeClass(te.current,"p-focus"),te.current.setAttribute("data-p-focus",!1)},Te=function(e){return!!I.value&&I.value.some((function(t){return h.equals(t,e)}))},Ae=function(){var e;return null==Q||null===(e=Q.current)||void 0===e?void 0:e.firstChild},je=function(e){return h.resolveFieldData(e,I.optionGroupChildren)},Le=function(){return!I.value||!I.selectionLimit||I.value.length<I.selectionLimit};e.useEffect((function(){h.combinedRefs(ee,I.inputRef)}),[ee,I.inputRef]),e.useEffect((function(){h.isNotEmpty(I.value)&&(re.current=I.value)}),[I.value]),p((function(){N||P(x()),I.autoFocus&&w.focus(ee.current,I.autoFocus),be()})),c((function(){j&&I.autoHighlight&&I.suggestions&&I.suggestions.length&&ye()}),[j]),c((function(){j&&(h.isNotEmpty(I.suggestions)||I.showEmptyMessage?ge():ve(),L(!1))}),[I.suggestions]),c((function(){ee.current&&!I.multiple&&fe(I.value),K&&be()})),s((function(){oe.current&&clearTimeout(oe.current),E.clear(Q.current)})),e.useImperativeHandle(C,(function(){return{props:I,search:ce,show:ge,hide:ve,focus:function(){return w.focus(ee.current)},getElement:function(){return $.current},getOverlay:function(){return Q.current},getInput:function(){return ee.current},getVirtualScroller:function(){return ne.current}}}));var Me,Ge=function(e,t){switch(e.code){case"Space":case"NumpadEnter":case"Enter":we(e,t),e.preventDefault(),e.stopPropagation()}},Fe=function(t){var n=K?N+"_list":null,o=S({className:W("inputToken")},X("inputToken")),r=S(V({id:I.inputId,ref:ee,"aria-autocomplete":"list","aria-controls":n,"aria-expanded":K,"aria-haspopup":"listbox",autoComplete:"off",className:I.inputClassName,disabled:I.disabled,maxLength:I.maxLength,name:I.name,onBlur:Pe,onChange:t?pe:void 0,onFocus:Ne,onKeyDown:t?xe:void 0,onKeyPress:I.onKeyPress,onKeyUp:I.onKeyUp,placeholder:t?I.placeholder:void 0,readOnly:I.readOnly||!t,required:I.required,role:"combobox",style:I.inputStyle,tabIndex:I.tabIndex,type:I.type},Ue),X("input"));return e.createElement("li",o,e.createElement("input",r))},Re=function(){var t=Le(),n=h.isNotEmpty(I.value)?I.value.map((function(t,n){var r=n+"multi-item",l=S({className:W("removeTokenIcon"),onClick:function(e){return we(e,n)},tabIndex:I.tabIndex||"0","aria-label":o("clear"),onKeyDown:function(e){return Ge(e,n)}},X("removeTokenIcon")),i=!I.disabled&&O.getJSXIcon(I.removeTokenIcon||e.createElement(f,l),V({},l),{props:I}),a=S({className:W("token")},X("token")),u=S({className:W("tokenLabel")},X("tokenLabel"));return e.createElement("li",A({key:r},a),e.createElement("span",u,me(t)),i)})):(re.current=null,null),r=Fe(t),l=S({ref:te,className:W("container",{context:k}),onClick:t?De:void 0,onContextMenu:I.onContextMenu,onMouseDown:I.onMouseDown,onDoubleClick:I.onDblClick,"data-p-focus":G,"data-p-disabled":I.disabled},X("container"));return e.createElement("ul",l,n,r)},_e=N+"_list",Ke=h.isNotEmpty(I.tooltip),He=q.getOtherProps(I),Ue=h.reduceKeys(He,w.ARIA_PROPS),qe=function(){if(j){var t=S({className:W("loadingIcon")},X("loadingIcon")),n=I.loadingIcon||e.createElement(m,A({},t,{spin:!0}));return O.getJSXIcon(n,V({},t),{props:I})}return null}(),Be=I.multiple?Re():(Me=me(I.value),e.createElement(g,A({ref:ee,id:I.inputId,type:I.type,name:I.name,defaultValue:Me,role:"combobox","aria-autocomplete":"list","aria-controls":K?N+"_list":null,"aria-haspopup":"listbox","aria-expanded":K,className:b(I.inputClassName,W("input",{context:k})),style:I.inputStyle,autoComplete:"off",readOnly:I.readOnly,required:I.required,disabled:I.disabled,placeholder:I.placeholder,size:I.size,maxLength:I.maxLength,tabIndex:I.tabIndex,onBlur:Ie,onFocus:Se,onChange:pe,onMouseDown:I.onMouseDown,onKeyUp:I.onKeyUp,onKeyDown:xe,onKeyPress:I.onKeyPress,onContextMenu:I.onContextMenu,onClick:I.onClick,onDoubleClick:I.onDblClick,pt:X("input"),unstyled:I.unstyled},Ue,{__parentMetadata:{parent:B}}))),ze=function(){if(I.dropdown){var t=I.dropdownAriaLabel||I.placeholder||o("choose");return e.createElement(r,{type:"button",icon:I.dropdownIcon||e.createElement(d,null),className:W("dropdownButton"),disabled:I.disabled,onClick:he,"aria-label":t,pt:X("dropdownButton"),__parentMetadata:{parent:B}})}return null}(),Je=S({id:N,ref:$,style:I.style,className:b(I.className,W("root",{focusedState:G}))},He,X("root"));return e.createElement(e.Fragment,null,e.createElement("span",Je,Be,qe,ze,e.createElement(J,A({hostName:"AutoComplete",ref:Q,virtualScrollerRef:ne},I,{listId:_e,onItemClick:se,selectedItem:re,onOverlayHide:ve,onClick:function(e){v.emit("overlay-click",{originalEvent:e,target:$.current})},getOptionGroupLabel:function(e){return I.optionGroupLabel?h.resolveFieldData(e,I.optionGroupLabel):e},getOptionGroupChildren:je,in:K,onEnter:function(){E.set("overlay",Q.current,k&&k.autoZIndex||t.autoZIndex,k&&k.zIndex.overlay||t.zIndex.overlay),w.addStyles(Q.current,{position:"absolute",top:"0",left:"0"}),be()},onEntering:function(){I.autoHighlight&&I.suggestions&&I.suggestions.length&&ye()},onEntered:function(){ie(),I.onShow&&I.onShow()},onExit:function(){ae()},onExited:function(){E.clear(Q.current),I.onHide&&I.onHide()},ptm:X,cx:W,sx:Z}))),Ke&&e.createElement(y,A({target:$,content:I.tooltip,pt:X("tooltip")},I.tooltipOptions)))})));W.displayName="AutoComplete";export{W as AutoComplete};