import*as e from"react";import t,{PrimeReactContext as n}from"primereact/api";import{ComponentBase as r,useHandleStyle as i}from"primereact/componentbase";import{CSSTransition as o}from"primereact/csstransition";import{useMergeProps as l,useOverlayListener as a,useUpdateEffect as u,useUnmountEffect as s}from"primereact/hooks";import{KeyFilter as c}from"primereact/keyfilter";import{Tooltip as p}from"primereact/tooltip";import{classNames as f,ObjectUtils as m,DomHandler as d,ZIndexUtils as y}from"primereact/utils";import{OverlayService as g}from"primereact/overlayservice";import{Portal as v}from"primereact/portal";import{Ripple as h}from"primereact/ripple";function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n=parseFloat(t.style.maxHeight)?(t.style.overflowY="scroll",t.style.height=t.style.maxHeight):t.style.overflow="hidden",y.current=t.scrollHeight))},O=function(){if(d.isVisible(s.current)){var e=s.current.getBoundingClientRect();return e.width>0&&e.height>0}return!1};e.useEffect((function(){m.combinedRefs(s,r)}),[s,r]),e.useEffect((function(){u.autoResize&&x(!0)}),[u.autoResize,u.value]);var w=e.useMemo((function(){return m.isNotEmpty(u.value)||m.isNotEmpty(u.defaultValue)}),[u.value,u.defaultValue]),S=m.isNotEmpty(u.tooltip),E=o({ref:s,className:f(u.className,h("root",{context:a,isFilled:w})),onFocus:function(e){u.autoResize&&x(),u.onFocus&&u.onFocus(e)},onBlur:function(e){u.autoResize&&x(),u.onBlur&&u.onBlur(e)},onKeyUp:function(e){u.autoResize&&x(),u.onKeyUp&&u.onKeyUp(e)},onKeyDown:function(e){u.onKeyDown&&u.onKeyDown(e),u.keyfilter&&c.onKeyPress(e,u.keyfilter,u.validateOnly)},onBeforeInput:function(e){u.onBeforeInput&&u.onBeforeInput(e),u.keyfilter&&c.onBeforeInput(e,u.keyfilter,u.validateOnly)},onInput:function(e){var t=e.target;u.autoResize&&x(m.isEmpty(t.value)),u.onInput&&u.onInput(e),m.isNotEmpty(t.value)?d.addClass(t,"p-filled"):d.removeClass(t,"p-filled")},onPaste:function(e){u.onPaste&&u.onPaste(e),u.keyfilter&&c.onPaste(e,u.keyfilter,u.validateOnly)}},T.getOtherProps(u),v("root"));return e.createElement(e.Fragment,null,e.createElement("textarea",E),S&&e.createElement(p,b({target:s,content:u.tooltip,pt:v("tooltip")},u.tooltipOptions)))})));H.displayName="InputTextarea";var B=r.extend({defaultProps:{__TYPE:"Mention",autoHighlight:!0,autoResize:!1,className:null,delay:0,field:null,footerTemplate:null,headerTemplate:null,id:null,inputClassName:null,inputId:null,inputRef:null,inputStyle:null,itemTemplate:null,onBlur:null,onChange:null,onFocus:null,onHide:null,onInput:null,onSearch:null,onSelect:null,onShow:null,panelClassName:null,panelStyle:null,scrollHeight:"200px",style:null,suggestions:null,transitionOptions:null,trigger:"@",variant:null,children:void 0},css:{classes:{item:function(e){return f("p-mention-item",{"p-highlight":e.isSelected})},items:"p-mention-items",panel:function(e){return f("p-mention-panel p-component",e.props.panelClassName)},input:function(e){return f("p-mention-input",e.props.inputClassName)},root:function(e){return f("p-mention p-component p-inputwrapper",{"p-inputwrapper-filled":e.isFilled,"p-inputwrapper-focus":e.focusedState})},transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-mention {\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-mention .p-mention-panel {\n min-width: 100%;\n }\n \n .p-mention-panel {\n position: absolute;\n top: 0;\n left: 0;\n overflow: auto;\n }\n \n .p-mention-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n \n .p-mention-item {\n cursor: pointer;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n }\n \n .p-fluid .p-mention {\n display: flex;\n }\n}\n"}});function K(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 _(e){for(var t=1;ti)return o}return T},fe=function(e,t){if(Array.isArray(O.trigger)){var n={};return O.trigger.forEach((function(r){var i=e.substring(0,t).lastIndexOf(r);-1!==i&&(i>n.index||!n.index)&&(n={key:r,index:-1!==i?i+1:-1})})),n}var r=e.substring(0,t).lastIndexOf(O.trigger);return{key:O.trigger,index:-1!==r?r+1:-1}},me=function(e){Y.current&&clearTimeout(Y.current);var t=e.target,n=t.value,r=t.selectionStart,i=n.substring(r-1,r);if(" "!==i){var o=pe(n,i,r);if(o&&o.index>-1){var l=n.substring(o.index,r);Y.current=setTimeout((function(){de(e,l,o)}),O.delay)}}else re()},de=function(e,t,n){O.onSearch&&(C(!0),z(n),O.onSearch({originalEvent:e,trigger:n.key,query:t}))},ye=function(e,t){var n=J.current,r=n.value,i=n.selectionStart,o=r.indexOf(" ",T.index),l=r.substring(T.index,o>-1?o:i),a=ge(t).replace(/\s+/g,"");if(l.trim()!==a){var u=r.substring(0,T.index),s=r.substring(o>-1?i:T.index+l.length);J.current.value=" "===s[0]?"".concat(u).concat(a).concat(s):"".concat(u).concat(a," ").concat(s),e.target=J.current,O.onChange&&O.onChange(e)}var c=T.index+a.length+1;J.current.setSelectionRange(c,c),re(),O.onSelect&&O.onSelect({originalEvent:e,suggestion:t})},ge=function(e){if(e){var t=Array.isArray(O.field)?O.field[O.trigger.findIndex((function(e){return e===T.key}))]:O.field;return t?m.resolveFieldData(e,t):e}return""},ve=function(e,t){d.focus(J.current),ye(e,t)},he=J.current&&J.current.value,be=e.useMemo((function(){return m.isNotEmpty(O.value)||m.isNotEmpty(O.defaultValue)||m.isNotEmpty(he)}),[O.value,O.defaultValue,he]);e.useImperativeHandle(c,(function(){return{props:O,show:ne,hide:re,focus:function(){return d.focus(J.current)},getElement:function(){return U.current},getOverlay:function(){return V.current},getInput:function(){return J.current}}})),e.useEffect((function(){m.combinedRefs(J,O.inputRef)}),[J,O.inputRef]),u((function(){var e=O.suggestions&&O.suggestions.length;if(e){var t=O.suggestions.map((function(){return!1}));M(t)}N&&(e?ne():re(),S&&se(),C(!1))}),[O.suggestions]),u((function(){var e=L(),t=e?d.isAttributeEquals(U.current,"data-p-inputwrapper-filled",!0):d.hasClass(U.current,"p-inputwrapper-filled");!be&&t&&(e?d.setAttributes(U.current,{"data-p-inputwrapper-filled":!1}):d.removeClass(U.current,"p-inputwrapper-filled"))}),[be]),s((function(){y.clear(V.current)}));var xe=function(t,n){var r=n+"_item",i=O.itemTemplate?m.getJSXElement(O.itemTemplate,t,{trigger:T?T.key:"",index:n}):ge(t),o=K[n],l=p({className:G("item",{isSelected:o}),onClick:function(e){return ve(e,t)},"data-p-highlight":o},Q(0,"item",{selected:o}));return e.createElement("li",b({},l,{key:r}),i,e.createElement(h,null))},Oe=function(){var t=p({ref:X,className:G("items")},$("items"));if(O.suggestions){var n=O.suggestions.map(xe);return e.createElement("ul",t,n)}return null},we=B.getOtherProps(O),Se=function(){var t=m.getJSXElement(O.headerTemplate,O),n=m.getJSXElement(O.footerTemplate,O),r=Oe(),i=p({ref:V,className:G("panel"),style:_({maxHeight:O.scrollHeight},O.panelStyle),onClick:ce},$("panel")),l=p({classNames:G("transition"),in:S,timeout:{enter:120,exit:100},options:O.transitionOptions,unmountOnExit:!0,onEnter:ie,onEntering:oe,onEntered:le,onExit:ae,onExited:ue},$("transition")),a=e.createElement(o,b({nodeRef:V},l),e.createElement("div",i,t,r,n));return e.createElement(v,{element:a,appendTo:"self"})}(),Ee=p(_(_({ref:J,id:O.inputId,className:G("input"),style:O.inputStyle},we),{},{unstyled:O.unstyled,variant:O.variant,autoResize:O.autoResize,onFocus:function(e){R(!0),O.onFocus&&O.onFocus(e)},onBlur:function(e){R(!1),O.onBlur&&O.onBlur(e)},onKeyDown:function(e){if(S){var t=d.findSingle(V.current,'li[data-p-highlight="true"]');switch(e.which){case 40:if(t){var n=t.nextElementSibling;if(n){var r=d.index(n),i=d.index(t);M((function(e){var t=P(e);return t[r]=!0,t[i]=!1,t})),d.scrollInView(V.current,n)}}else if(t=d.findSingle(V.current,"li")){var o=d.index(t);M((function(e){var t=P(e);return t[o]=!0,t}))}e.preventDefault();break;case 38:if(t){var l=t.previousElementSibling;if(l){var a=d.index(l),u=d.index(t);M((function(e){var t=P(e);return t[a]=!0,t[u]=!1,t})),d.scrollInView(V.current,l)}}e.preventDefault();break;case 8:var s=e.target,c=s.selectionStart;s.value.substring(c-1,c)===T.key&&re();break;case 13:t&&ye(e,O.suggestions[d.index(t)]),e.preventDefault();break;case 27:re(),e.preventDefault()}}},onInput:function(e){O.onInput&&O.onInput(e);var t=e.target.value.length>0;L()?d.setAttributes(U.current,{"data-p-inputwrapper-filled":t}):t?d.addClass(U.current,"p-inputwrapper-filled"):d.removeClass(U.current,"p-inputwrapper-filled")},onKeyUp:function(e){37!==e.which&&39!==e.which||me(e)},onChange:function(e){O.onChange&&O.onChange(e),me(e)},__parentMetadata:{parent:q}}),$("input")),Pe=p({ref:U,id:O.id,className:f(O.className,G("root",{focusedState:j,isFilled:be})),style:O.style},B.getOtherProps(O),$("root"));return e.createElement("div",Pe,e.createElement(H,Ee),Se)})));M.displayName="Mention";export{M as Mention};