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