UNPKG

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