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) • 12.3 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.mention=function(e,t,n,r,l,i,o,u,a,s,c){"use strict";function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function p(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var g=p(t),d=f(n);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function y(e){return y="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},y(e)}function v(e,t){if("object"!==y(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function h(e){var t=v(e,"string");return"symbol"===y(t)?t:String(t)}function b(e,t,n){return(t=h(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){if(Array.isArray(e))return e}function E(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,i,o,u=[],a=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);a=!0);}catch(e){s=!0,l=e}finally{try{if(!a&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw l}}return u}}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t){if(e){if("string"==typeof e)return j(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)?j(e,t):void 0}}function x(){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 w(e,t){return O(e)||E(e,t)||S(e,t)||x()}var P={defaultProps:{__TYPE:"InputTextarea",autoResize:!1,keyfilter:null,onBlur:null,onFocus:null,onInput:null,onKeyDown:null,onKeyUp:null,onPaste:null,tooltip:null,tooltipOptions:null,validateOnly:!1,children:void 0},getProps:function(e){return u.ObjectUtils.getMergedProps(e,P.defaultProps)},getOtherProps:function(e){return u.ObjectUtils.getDiffProps(e,P.defaultProps)}},D=g.memo(g.forwardRef((function(e,t){var n=P.getProps(e),r=g.useRef(t),l=g.useRef(0),a=function(e){var t=r.current;t&&u.DomHandler.isVisible(t)&&(l.current||(l.current=t.scrollHeight,t.style.overflow="hidden"),(l.current!==t.scrollHeight||e)&&(t.style.height="",t.style.height=t.scrollHeight+"px",parseFloat(t.style.height)>=parseFloat(t.style.maxHeight)?(t.style.overflowY="scroll",t.style.height=t.style.maxHeight):t.style.overflow="hidden",l.current=t.scrollHeight))},s=r.current&&r.current.value,c=g.useMemo((function(){return u.ObjectUtils.isNotEmpty(n.value)||u.ObjectUtils.isNotEmpty(n.defaultValue)||u.ObjectUtils.isNotEmpty(s)}),[n.value,n.defaultValue,s]);g.useEffect((function(){u.ObjectUtils.combinedRefs(r,t)}),[r,t]),g.useEffect((function(){n.autoResize&&a(!0)}),[n.autoResize]);var f=u.ObjectUtils.isNotEmpty(n.tooltip),p=P.getOtherProps(n),d=u.classNames("p-inputtextarea p-inputtext p-component",{"p-disabled":n.disabled,"p-filled":c,"p-inputtextarea-resizable":n.autoResize},n.className);return g.createElement(g.Fragment,null,g.createElement("textarea",m({ref:r},p,{className:d,onFocus:function(e){n.autoResize&&a(),n.onFocus&&n.onFocus(e)},onBlur:function(e){n.autoResize&&a(),n.onBlur&&n.onBlur(e)},onKeyUp:function(e){n.autoResize&&a(),n.onKeyUp&&n.onKeyUp(e)},onKeyDown:function(e){n.onKeyDown&&n.onKeyDown(e),n.keyfilter&&i.KeyFilter.onKeyPress(e,n.keyfilter,n.validateOnly)},onInput:function(e){n.autoResize&&a(),n.onInput&&n.onInput(e);var t=e.target;u.ObjectUtils.isNotEmpty(t.value)?u.DomHandler.addClass(t,"p-filled"):u.DomHandler.removeClass(t,"p-filled")},onPaste:function(e){n.onPaste&&n.onPaste(e),n.keyfilter&&i.KeyFilter.onPaste(e,n.keyfilter,n.validateOnly)}})),f&&g.createElement(o.Tooltip,m({target:r,content:n.tooltip},n.tooltipOptions)))})));D.displayName="InputTextarea";var H={defaultProps:{__TYPE:"Mention",autoHighlight:!0,className:null,delay:0,field:null,footerTemplate:null,headerTemplate:null,id:null,inputClassName:null,inputId:null,inputRef:null,inputStyle:null,itemTemplate:null,panelClassName:null,panelStyle:null,scrollHeight:"200px",style:null,suggestions:null,transitionOptions:null,trigger:"@",onBlur:null,onChange:null,onFocus:null,onHide:null,onInput:null,onSearch:null,onSelect:null,onShow:null,children:void 0},getProps:function(e){return u.ObjectUtils.getMergedProps(e,H.defaultProps)},getOtherProps:function(e){return u.ObjectUtils.getDiffProps(e,H.defaultProps)}};function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var C=g.memo(g.forwardRef((function(e,t){var n=H.getProps(e),i=w(g.useState(!1),2),o=i[0],f=i[1],p=w(g.useState(!1),2),y=p[0],v=p[1],h=w(g.useState(!1),2),b=h[0],O=h[1],E=w(g.useState(null),2),j=E[0],S=E[1],x=g.useRef(null),P=g.useRef(null),U=g.useRef(n.inputRef),C=g.useRef(null),I=g.useRef(null),R=w(l.useOverlayListener({target:x,overlay:P,listener:function(e,t){t.valid&&F()},when:o}),2),k=R[0],T=R[1],A=function(){f(!0)},F=function(){f(!1),O(!1),S(null)},K=function(){u.ZIndexUtils.set("overlay",P.current,d.default.autoZIndex,d.default.zIndex.overlay),V()},z=function(){n.autoHighlight&&n.suggestions&&n.suggestions.length&&u.DomHandler.addClass(C.current.firstChild,"p-highlight")},M=function(){k(),n.onShow&&n.onShow()},_=function(){T()},B=function(){u.ZIndexUtils.clear(P.current),n.onHide&&n.onHide()},V=function(){var e=j.key,t=j.index,n=U.current.value,r=u.DomHandler.getCursorOffset(U.current,n.substring(0,t-1),n.substring(t),e);P.current.style.transformOrigin="top",P.current.style.left="calc(".concat(r.left,"px + 1rem)"),P.current.style.top="calc(".concat(r.top,"px + 1.2rem)")},Z=function(e){a.OverlayService.emit("overlay-click",{originalEvent:e,target:x.current})},J=function(e,t,r){if(!j){var l=Array.isArray(n.trigger)?n.trigger.find((function(e){return e===t})):n.trigger===t?n.trigger:null;if(l)return{key:l,index:r};var i=e.substring(0,r).lastIndexOf(" "),o=X(e,r);if(o.index>i)return o}return j},X=function(e,t){if(Array.isArray(n.trigger)){var r={};return n.trigger.forEach((function(n){var l=e.substring(0,t).lastIndexOf(n);-1!==l&&(l>r.index||!r.index)&&(r={key:n,index:-1!==l?l+1:-1})})),r}var l=e.substring(0,t).lastIndexOf(n.trigger);return{key:n.trigger,index:-1!==l?l+1:-1}},Y=function(e){I.current&&clearTimeout(I.current);var t=e.target,r=t.value,l=t.selectionStart,i=r.substring(l-1,l);if(" "!==i){var o=J(r,i,l);if(o&&o.index>-1){var u=r.substring(o.index,l);I.current=setTimeout((function(){q(e,u,o)}),n.delay)}}else F()},q=function(e,t,r){n.onSearch&&(O(!0),S(r),n.onSearch({originalEvent:e,trigger:r.key,query:t}))},L=function(e,t){var r=U.current.value,l=e.target.selectionStart,i=r.indexOf(" ",j.index),o=r.substring(j.index,i>-1?i:l),u=$(t).replace(/\s+/g,"");if(o.trim()!==u){for(var a=0;a<u.length;){var s=u.charAt(a),c=o.charAt(a);if(s!==c&&" "!==c)break;a++}var f=r.substring(0,j.index),p=r.substring(j.index+a);U.current.value="".concat(f).concat(u," ").concat(p),n.onChange&&n.onChange(e)}var g=j.index+u.length+1;U.current.setSelectionRange(g,g),F(),n.onSelect&&n.onSelect({originalEvent:e,suggestion:t})},$=function(e){if(e){var t=Array.isArray(n.field)?n.field[n.trigger.findIndex((function(e){return e===j.key}))]:n.field;return t?u.ObjectUtils.resolveFieldData(e,t):e}return""},G=function(e,t){u.DomHandler.focus(U.current),L(e,t)},Q=U.current&&U.current.value,W=g.useMemo((function(){return u.ObjectUtils.isNotEmpty(n.value)||u.ObjectUtils.isNotEmpty(n.defaultValue)||u.ObjectUtils.isNotEmpty(Q)}),[n.value,n.defaultValue,Q]);g.useImperativeHandle(t,(function(){return{props:n,show:A,hide:F,focus:function(){return u.DomHandler.focus(U.current)},getElement:function(){return x.current},getOverlay:function(){return P.current},getInput:function(){return U.current}}})),g.useEffect((function(){u.ObjectUtils.combinedRefs(U,n.inputRef)}),[U,n.inputRef]),l.useUpdateEffect((function(){b&&(n.suggestions&&n.suggestions.length?A():F(),o&&V(),O(!1))}),[n.suggestions]),l.useUpdateEffect((function(){!W&&u.DomHandler.hasClass(x.current,"p-inputwrapper-filled")&&u.DomHandler.removeClass(x.current,"p-inputwrapper-filled")}),[W]),l.useUnmountEffect((function(){u.ZIndexUtils.clear(P.current)}));var ee,te,ne,re,le,ie=function(e,t){var r=t+"_item",l=n.itemTemplate?u.ObjectUtils.getJSXElement(n.itemTemplate,e,{trigger:j?j.key:"",index:t}):$(e);return g.createElement("li",{key:r,className:"p-mention-item",onClick:function(t){return G(t,e)}},l,g.createElement(c.Ripple,null))},oe=function(){if(n.suggestions){var e=n.suggestions.map(ie);return g.createElement("ul",{ref:C,className:"p-mention-items"},e)}return null},ue=u.classNames("p-mention p-component p-inputwrapper",{"p-inputwrapper-filled":W,"p-inputwrapper-focus":y},n.className),ae=u.classNames("p-mention-input",n.inputClassName),se=H.getOtherProps(n),ce=(ee=u.classNames("p-mention-panel p-component",n.panelClassName),te=N({maxHeight:n.scrollHeight},n.panelStyle),ne=u.ObjectUtils.getJSXElement(n.headerTemplate,n),re=u.ObjectUtils.getJSXElement(n.footerTemplate,n),le=oe(),g.createElement(s.Portal,{element:g.createElement(r.CSSTransition,{nodeRef:P,classNames:"p-connected-overlay",in:o,timeout:{enter:120,exit:100},options:n.transitionOptions,unmountOnExit:!0,onEnter:K,onEntering:z,onEntered:M,onExit:_,onExited:B},g.createElement("div",{ref:P,className:ee,style:te,onClick:Z},ne,le,re)),appendTo:"self"}));return g.createElement("div",{ref:x,id:n.id,className:ue,style:n.style},g.createElement(D,m({ref:U,id:n.inputId,className:ae,style:n.inputStyle},se,{onFocus:function(e){v(!0),n.onFocus&&n.onFocus(e)},onBlur:function(e){v(!1),n.onBlur&&n.onBlur(e)},onKeyDown:function(e){if(o){var t=u.DomHandler.findSingle(P.current,"li.p-highlight");switch(e.which){case 40:if(t){var r=t.nextElementSibling;r&&(u.DomHandler.addClass(r,"p-highlight"),u.DomHandler.removeClass(t,"p-highlight"),u.DomHandler.scrollInView(P.current,r))}else(t=u.DomHandler.findSingle(P.current,"li"))&&u.DomHandler.addClass(t,"p-highlight");e.preventDefault();break;case 38:if(t){var l=t.previousElementSibling;l&&(u.DomHandler.addClass(l,"p-highlight"),u.DomHandler.removeClass(t,"p-highlight"),u.DomHandler.scrollInView(P.current,l))}e.preventDefault();break;case 8:var i=e.target,a=i.selectionStart;i.value.substring(a-1,a)===j.key&&F();break;case 13:t&&L(e,n.suggestions[u.DomHandler.index(t)]),e.preventDefault();break;case 27:F(),e.preventDefault()}}},onInput:function(e){n.onInput&&n.onInput(e),e.target.value.length>0?u.DomHandler.addClass(x.current,"p-inputwrapper-filled"):u.DomHandler.removeClass(x.current,"p-inputwrapper-filled")},onKeyUp:function(e){37!==e.which&&39!==e.which||Y(e)},onChange:function(e){n.onChange&&n.onChange(e),Y(e)}})),ce)})));return C.displayName="Mention",e.Mention=C,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.csstransition,primereact.hooks,primereact.keyfilter,primereact.tooltip,primereact.utils,primereact.overlayservice,primereact.portal,primereact.ripple);