primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ 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) • 15.4 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.autocomplete=function(e,t,n,l,o,r,a,i,u,c,s,p,m){"use strict";function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var g=f(t),v=d(n);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},y.apply(this,arguments)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function h(e){if(Array.isArray(e))return b(e)}function O(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function E(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.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)?b(e,t):void 0}}function C(){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 w(e){if(Array.isArray(e))return e}function D(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,o,r=[],a=!0,i=!1;try{for(n=n.call(e);!(a=(l=n.next()).done)&&(r.push(l.value),!t||r.length!==t);a=!0);}catch(e){i=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(i)throw o}}return r}}function S(){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 x(e,t){return w(e)||D(e,t)||E(e,t)||S()}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){j(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var U=g.memo(g.forwardRef((function(e,t){var l,o,r,a=function(t){return u.ObjectUtils.resolveFieldData(t,e.optionGroupLabel)},i=function(t,n,l){return e.getOptionGroupChildren(t).map((function(t,o){var r=n+"_"+o,a=e.selectedItem===t,i=e.itemTemplate?u.ObjectUtils.getJSXElement(e.itemTemplate,t,o):e.field?u.ObjectUtils.resolveFieldData(t,e.field):t;return g.createElement("li",{key:r,role:"option","aria-selected":a,className:"p-autocomplete-item",style:l,onClick:function(n){return e.onItemClick(n,t)},"data-group":n,"data-index":o},i,g.createElement(p.Ripple,null))}))},d=function(t,n){var l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={height:l.props?l.props.itemSize:void 0};if(e.optionGroupLabel){var r=e.optionGroupTemplate?u.ObjectUtils.getJSXElement(e.optionGroupTemplate,t,n):e.getOptionGroupLabel(t),c=i(t,n,o),s=n+"_"+a(t);return g.createElement(g.Fragment,{key:s},g.createElement("li",{className:"p-autocomplete-item-group",style:o},r),c)}var m=e.itemTemplate?u.ObjectUtils.getJSXElement(e.itemTemplate,t,n):e.field?u.ObjectUtils.resolveFieldData(t,e.field):t;return g.createElement("li",{key:n,role:"option","aria-selected":e.selectedItem===t,className:"p-autocomplete-item",style:o,onClick:function(n){return e.onItemClick(n,t)}},m,g.createElement(p.Ripple,null))},f=function(){if(e.showEmptyMessage&&u.ObjectUtils.isEmpty(e.suggestions)){var t=e.emptyMessage||n.localeOption("emptyMessage");return g.createElement("ul",{className:"p-autocomplete-items"},g.createElement("li",{className:"p-autocomplete-item"},t))}if(e.virtualScrollerOptions){var l=k(k({},e.virtualScrollerOptions),{style:k(k({},e.virtualScrollerOptions.style),{height:e.scrollHeight}),autoSize:!0,items:e.suggestions,itemTemplate:function(e,t){return e&&d(e,t.index,t)},contentTemplate:function(t){var n=u.classNames("p-autocomplete-items",t.className);return g.createElement("ul",{ref:t.contentRef,className:n,role:"listbox",id:e.listId},t.children)}});return g.createElement(m.VirtualScroller,y({ref:e.virtualScrollerRef},l))}var o=e.suggestions?e.suggestions.map(d):null;return g.createElement("ul",{className:"p-autocomplete-items",role:"listbox",id:e.listId},o)},v=(l=u.classNames("p-autocomplete-panel p-component",e.panelClassName),o=k({maxHeight:e.scrollHeight},e.panelStyle||{}),r=f(),g.createElement(c.CSSTransition,{nodeRef:t,classNames:"p-connected-overlay",in:e.in,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:e.onEnter,onEntering:e.onEntering,onEntered:e.onEntered,onExit:e.onExit,onExited:e.onExited},g.createElement("div",{ref:t,className:l,style:o,onClick:e.onClick},r)));return g.createElement(s.Portal,{element:v,appendTo:e.appendTo})})));U.displayName="AutoCompletePanel";var N=g.memo(g.forwardRef((function(e,t){var c=x(g.useState(e.id),2),s=c[0],p=c[1],m=x(g.useState(!1),2),d=m[0],f=m[1],b=x(g.useState(!1),2),w=b[0],D=b[1],S=x(g.useState(!1),2),j=S[0],I=S[1],k=g.useRef(null),H=g.useRef(null),T=g.useRef(e.inputRef),M=g.useRef(null),P=g.useRef(null),R=g.useRef(null),A=g.useRef(null),F=x(o.useOverlayListener({target:k,overlay:H,listener:function(e,t){t.valid&&("outside"===t.type?!K(e)&&Z():Z())},when:j}),2),L=F[0],G=F[1],K=function(t){return e.multiple?t.target===M.current||M.current.contains(t.target):t.target===T.current},_=function(t){R.current&&clearTimeout(R.current);var n=t.target.value;e.multiple||J(t,n),u.ObjectUtils.isEmpty(n)?(Z(),e.onClear&&e.onClear(t)):n.length>=e.minLength?R.current=setTimeout((function(){z(t,n,"input")}),e.delay):Z()},z=function(t,n,l){null!=n&&("input"===l&&0===n.trim().length||e.completeMethod&&(f(!0),e.completeMethod({originalEvent:t,query:n})))},B=function(t,n,l){if(e.multiple){if(T.current.value="",!ce(n)){var o=e.value?[].concat(h(r=e.value)||O(r)||E(r)||C(),[n]):[n];J(t,o)}}else X(n),J(t,n);var r;e.onSelect&&e.onSelect({originalEvent:t,value:n}),l||(u.DomHandler.focus(T.current),Z())},J=function(t,n){A&&A.current===n||(e.onChange&&e.onChange({originalEvent:t,value:n,stopPropagation:function(){},preventDefault:function(){},target:{name:e.name,id:s,value:n}}),A.current=n)},V=function(t){if(t){if("string"==typeof t)return t;if(e.selectedItemTemplate){var n=u.ObjectUtils.getJSXElement(e.selectedItemTemplate,t);return n||t}if(e.field){var l=u.ObjectUtils.resolveFieldData(t,e.field);return null!=l?l:t}return t}return""},X=function(e){T.current.value=V(e)},q=function(){I(!0)},Z=function(){I(!1),f(!1)},Y=function(){u.DomHandler.alignOverlay(H.current,e.multiple?M.current:T.current,e.appendTo||v.default.appendTo)},$=function(t){e.dropdownAutoFocus&&u.DomHandler.focus(T.current,e.dropdownAutoFocus),"blank"===e.dropdownMode?z(t,"","dropdown"):"current"===e.dropdownMode&&z(t,T.current.value,"dropdown"),e.onDropdownClick&&e.onDropdownClick({originalEvent:t,query:T.current.value})},Q=function(t,n){var l=e.value[n],o=e.value.filter((function(e,t){return n!==t}));J(t,o),e.onUnselect&&e.onUnselect({originalEvent:t,value:l})},W=function(t){if(j){var n=u.DomHandler.findSingle(H.current,"li.p-highlight");switch(t.which){case 40:if(n){var l=te(n);l&&(u.DomHandler.addClass(l,"p-highlight"),u.DomHandler.removeClass(n,"p-highlight"),u.DomHandler.scrollInView(se(),l))}else n=u.DomHandler.findSingle(H.current,"li"),u.DomHandler.hasClass(n,"p-autocomplete-item-group")&&(n=te(n)),n&&u.DomHandler.addClass(n,"p-highlight");t.preventDefault();break;case 38:if(n){var o=ne(n);o&&(u.DomHandler.addClass(o,"p-highlight"),u.DomHandler.removeClass(n,"p-highlight"),u.DomHandler.scrollInView(se(),o))}t.preventDefault();break;case 13:n&&(ee(t,n),Z(),t.preventDefault());break;case 27:Z(),t.preventDefault();break;case 9:n&&ee(t,n),Z()}}if(e.multiple&&8===t.which)if(e.value&&e.value.length&&!T.current.value){var r=e.value[e.value.length-1],a=e.value.slice(0,-1);J(t,a),e.onUnselect&&e.onUnselect({originalEvent:t,value:r})}},ee=function(t,n){e.optionGroupLabel?B(t,pe(e.suggestions[n.dataset.group])[n.dataset.index]):B(t,e.suggestions[u.DomHandler.index(n)])},te=function e(t){var n=t.nextElementSibling;return n?u.DomHandler.hasClass(n,"p-autocomplete-item-group")?e(n):n:null},ne=function e(t){var n=t.previousElementSibling;return n?u.DomHandler.hasClass(n,"p-autocomplete-item-group")?e(n):n:null},le=function(t){D(!0),e.onFocus&&e.onFocus(t)},oe=function(t){var n=t.target.value.trim(),l=(e.suggestions||[]).find((function(t){var l=e.field?u.ObjectUtils.resolveFieldData(t,e.field):t;return l&&n===l.trim()}));l?B(t,l,!0):(T.current.value="",J(t,null),e.onClear&&e.onClear(t))},re=function(t){D(!1),e.forceSelection&&oe(t),e.onBlur&&e.onBlur(t)},ae=function(t){u.DomHandler.focus(T.current),e.onClick&&e.onClick(t)},ie=function(e){le(e),u.DomHandler.addClass(M.current,"p-focus")},ue=function(e){re(e),u.DomHandler.removeClass(M.current,"p-focus")},ce=function(t){return!!e.value&&e.value.some((function(e){return u.ObjectUtils.equals(e,t)}))},se=function(){return P.current?H.current.firstChild:H.current},pe=function(t){return u.ObjectUtils.resolveFieldData(t,e.optionGroupChildren)};g.useEffect((function(){u.ObjectUtils.combinedRefs(T,e.inputRef)}),[T,e.inputRef]),o.useMountEffect((function(){s||p(u.UniqueComponentId()),e.autoFocus&&u.DomHandler.focus(T.current,e.autoFocus)})),o.useUpdateEffect((function(){d&&(u.ObjectUtils.isNotEmpty(e.suggestions)||e.showEmptyMessage?q():Z(),f(!1))}),[e.suggestions]),o.useUpdateEffect((function(){T.current&&!e.multiple&&X(e.value)})),o.useUnmountEffect((function(){R.current&&clearTimeout(R.current),u.ZIndexUtils.clear(H.current)})),g.useImperativeHandle(t,(function(){return{props:e,search:z,show:q,hide:Z,getElement:function(){return k.current},getOverlay:function(){return H.current},getInput:function(){return T.current},getVirtualScroller:function(){return P.current}}}));var me=function(){var t=V(e.value),n=j?s+"_list":null,l=u.classNames("p-autocomplete-input",e.inputClassName,{"p-autocomplete-dd-input":e.dropdown});return g.createElement(r.InputText,y({ref:T,id:e.inputId,type:e.type,name:e.name,defaultValue:t,role:"combobox","aria-autocomplete":"list","aria-controls":n,"aria-haspopup":"listbox","aria-expanded":j,className:l,style:e.inputStyle,autoComplete:"off",readOnly:e.readOnly,disabled:e.disabled,placeholder:e.placeholder,size:e.size,maxLength:e.maxLength,tabIndex:e.tabIndex,onBlur:re,onFocus:le,onChange:_,onMouseDown:e.onMouseDown,onKeyUp:e.onKeyUp,onKeyDown:W,onKeyPress:e.onKeyPress,onContextMenu:e.onContextMenu,onClick:e.onClick,onDoubleClick:e.onDblClick},ye))},de=function(){var t=u.classNames("p-autocomplete-multiple-container p-component p-inputtext",{"p-disabled":e.disabled}),n=u.ObjectUtils.isNotEmpty(e.value)?e.value.map((function(t,n){return g.createElement("li",{key:n+"multi-item",className:"p-autocomplete-token p-highlight"},g.createElement("span",{className:"p-autocomplete-token-label"},V(t)),!e.disabled&&u.IconUtils.getJSXIcon(e.removeIcon,{className:"p-autocomplete-token-icon",onClick:function(e){return Q(e,n)}},{props:e}))})):null,l=g.createElement("li",{className:"p-autocomplete-input-token"},g.createElement("input",y({ref:T,type:e.type,disabled:e.disabled,placeholder:e.placeholder,role:"combobox","aria-autocomplete":"list","aria-controls":j?s+"_list":null,"aria-haspopup":"listbox","aria-expanded":j,autoComplete:"off",readOnly:e.readOnly,tabIndex:e.tabIndex,onChange:_,id:e.inputId,name:e.name,style:e.inputStyle,className:e.inputClassName,maxLength:e.maxLength,onKeyUp:e.onKeyUp,onKeyDown:W,onKeyPress:e.onKeyPress,onFocus:ie,onBlur:ue},ye)));return g.createElement("ul",{ref:M,className:t,onContextMenu:e.onContextMenu,onMouseDown:e.onMouseDown,onClick:ae,onDoubleClick:e.onDblClick},n,l)},fe=s+"_list",ge=u.ObjectUtils.isNotEmpty(e.tooltip),ve=u.ObjectUtils.findDiffKeys(e,N.defaultProps),ye=u.ObjectUtils.reduceKeys(ve,u.DomHandler.ARIA_PROPS),be=u.classNames("p-autocomplete p-component p-inputwrapper",{"p-autocomplete-dd":e.dropdown,"p-autocomplete-multiple":e.multiple,"p-inputwrapper-filled":e.value,"p-inputwrapper-focus":w},e.className),he=d?g.createElement("i",{className:"p-autocomplete-loader pi pi-spinner pi-spin"}):null,Oe=e.multiple?de():me(),Ee=function(){if(e.dropdown){var t=e.dropdownAriaLabel||e.placeholder||n.localeOption("choose");return g.createElement(l.Button,{type:"button",icon:e.dropdownIcon,className:"p-autocomplete-dropdown",disabled:e.disabled,onClick:$,"aria-label":t})}return null}();return g.createElement(g.Fragment,null,g.createElement("span",y({ref:k,id:s,style:e.style,className:be},ve),Oe,he,Ee,g.createElement(U,y({ref:H,virtualScrollerRef:P},e,{listId:fe,onItemClick:B,selectedItem:A,onClick:function(e){a.OverlayService.emit("overlay-click",{originalEvent:e,target:k.current})},getOptionGroupLabel:function(t){return e.optionGroupLabel?u.ObjectUtils.resolveFieldData(t,e.optionGroupLabel):t},getOptionGroupChildren:pe,in:j,onEnter:function(){u.ZIndexUtils.set("overlay",H.current,v.default.autoZIndex,v.default.zIndex.overlay),Y()},onEntering:function(){if(e.autoHighlight&&e.suggestions&&e.suggestions.length){var t=se().firstChild.firstChild;u.DomHandler.addClass(t,"p-highlight")}},onEntered:function(){L(),e.onShow&&e.onShow()},onExit:function(){G()},onExited:function(){u.ZIndexUtils.clear(H.current),e.onHide&&e.onHide()}}))),ge&&g.createElement(i.Tooltip,y({target:k,content:e.tooltip},e.tooltipOptions)))})));return N.displayName="AutoComplete",N.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:"pi pi-chevron-down",dropdownMode:"blank",emptyMessage:null,field:null,forceSelection:!1,inputClassName:null,inputId:null,inputRef:null,inputStyle:null,itemTemplate: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,panelStyle:null,placeholder:null,readOnly:!1,removeIcon:"pi pi-times-circle",scrollHeight:"200px",selectedItemTemplate:null,showEmptyMessage:!1,size:null,style:null,suggestions:null,tabIndex:null,tooltip:null,tooltipOptions:null,transitionOptions:null,type:"text",value:null,virtualScrollerOptions:null},e.AutoComplete=N,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.button,primereact.hooks,primereact.inputtext,primereact.overlayservice,primereact.tooltip,primereact.utils,primereact.csstransition,primereact.portal,primereact.ripple,primereact.virtualscroller);