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) 14 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/overlayservice"),l=require("primereact/ripple"),o=require("primereact/tree"),a=require("primereact/utils"),i=require("primereact/csstransition"),c=require("primereact/portal");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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 p=s(e),f=u(t);function d(){return d=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},d.apply(this,arguments)}function m(e){return m="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},m(e)}function y(e,t){if("object"!==m(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==m(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function v(e){var t=y(e,"string");return"symbol"===m(t)?t:String(t)}function b(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){if(Array.isArray(e))return e}function g(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,o,a,i=[],c=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){u=!0,l=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw l}}return i}}function E(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 O(e,t){if(e){if("string"==typeof e)return E(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)?E(e,t):void 0}}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 N(e,t){return h(e)||g(e,t)||O(e,t)||S()}var j={defaultProps:{__TYPE:"TreeSelect",appendTo:null,ariaLabel:null,ariaLabelledBy:null,className:null,disabled:!1,display:"comma",dropdownIcon:"pi pi-chevron-down",emptyMessage:null,expandedKeys:null,filter:!1,filterBy:"label",filterInputAutoFocus:!0,filterLocale:void 0,filterMode:"lenient",filterPlaceholder:null,filterTemplate:null,filterValue:null,inputId:null,inputRef:null,metaKeySelection:!0,name:null,onChange:null,onFilterValueChange:null,onHide:null,onNodeCollapse:null,onNodeExpand:null,onNodeSelect:null,onNodeUnselect:null,onShow:null,options:null,panelClassName:null,panelFooterTemplate:null,panelHeaderTemplate:null,panelStyle:null,placeholder:null,resetFilterOnHide:!1,scrollHeight:"400px",selectionMode:"single",style:null,tabIndex:null,transitionOptions:null,value:null,valueTemplate:null,children:void 0},getProps:function(e){return a.ObjectUtils.getMergedProps(e,j.defaultProps)},getOtherProps:function(e){return a.ObjectUtils.getDiffProps(e,j.defaultProps)}},w=p.forwardRef((function(e,t){var n,r,l=(n={maxHeight:e.scrollHeight||"auto"},r=a.classNames("p-treeselect-panel p-component",e.panelClassName,{"p-input-filled":"filled"===f.default.inputStyle,"p-ripple-disabled":!1===f.default.ripple}),p.createElement(i.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},p.createElement("div",{ref:t,className:r,style:e.panelStyle,onClick:e.onClick},e.header,p.createElement("div",{className:"p-treeselect-items-wrapper",style:n},e.children),e.footer)));return p.createElement(c.Portal,{element:l,appendTo:e.appendTo})}));function x(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 P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=T(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,l=function(){};return{s:l,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){i=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(i)throw o}}}}function T(e,t){if(e){if("string"==typeof e)return k(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)?k(e,t):void 0}}function k(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}w.displayName="TreeSelectPanel";var I=p.memo(p.forwardRef((function(e,i){var c=j.getProps(e),u=N(p.useState(!1),2),s=u[0],m=u[1],y=N(p.useState(!1),2),v=y[0],h=y[1],g=N(p.useState(c.expandedKeys),2),E=g[0],O=g[1],S=N(p.useState(""),2),x=S[0],T=S[1],k=p.useRef(null),I=p.useRef(null),U=p.useRef(null),H=p.useRef(c.inputRef),D=p.useRef(null),A=p.useRef(null),M=c.onToggle?c.expandedKeys:E,R=c.onFilterValueChange?c.filterValue:x,F=a.ObjectUtils.isEmpty(c.value),K=a.ObjectUtils.isEmpty(c.options),V="single"===c.selectionMode,q="checkbox"===c.selectionMode,_={filter:function(e){return le(e)},reset:function(){return oe()}},L=N(n.useOverlayListener({target:k,overlay:I,listener:function(e,t){t.valid&&z()},when:v}),2),B=L[0],J=L[1],X=function(){return ye.length?ye.map((function(e){return e.label})).join(", "):c.placeholder},Z=function(){h(!0)},z=function(){h(!1)},$=function(){m(!0)},Y=function(){m(!1)},G=function(e){c.onChange&&(A.current=!0,c.onChange({originalEvent:e.originalEvent,value:e.value,stopPropagation:function(){},preventDefault:function(){},target:{name:c.name,id:c.id,value:e.value}}))},Q=function(e){c.onNodeSelect&&c.onNodeSelect(e),V&&z()},W=function(e){c.onNodeUnselect&&c.onNodeUnselect(e)},ee=function(e){c.onToggle?c.onToggle(e):O(e.value)},te=function(e){T(e.value)},ne=function(e){switch(e.which){case 40:!v&&e.altKey&&Z();break;case 32:v||(Z(),e.preventDefault());break;case 13:case 27:v&&(z(),e.preventDefault());break;case 9:z()}},re=function(e){13===e.which&&e.preventDefault()},le=function(e){var t=e.target.value;c.onFilterValueChange?c.onFilterValueChange({originalEvent:e,value:t}):T(t)},oe=function(){T("")},ae=function(){a.DomHandler.alignOverlay(I.current,D.current.parentElement,c.appendTo||f.default.appendTo)},ie=function(){var e=a.DomHandler.findSingle(I.current,".p-treenode-content.p-highlight");e&&e.scrollIntoView&&e.scrollIntoView({block:"nearest",inline:"start"})},ce=function e(t,n,r){if(t){if(ue(t,n)&&(r.push(t),delete n[t.key]),Object.keys(n).length&&t.children){var l,o=C(t.children);try{for(o.s();!(l=o.n()).done;){e(l.value,n,r)}}catch(e){o.e(e)}finally{o.f()}}}else{var a,i=C(c.options);try{for(i.s();!(a=i.n()).done;){e(a.value,n,r)}}catch(e){i.e(e)}finally{i.f()}}},ue=function(e,t){return q?t[e.key]&&t[e.key].checked:t[e.key]},se=function(){var e=V?b({},"".concat(c.value),!0):P({},c.value);O({}),e&&c.options&&pe(null,null,e)},pe=function e(t,n,r){if(t){if(ue(t,r)&&(fe(n),delete r[t.key]),Object.keys(r).length&&t.children){var l,o=C(t.children);try{for(o.s();!(l=o.n()).done;){var a=l.value;n.push(t.key),e(a,n,r)}}catch(e){o.e(e)}finally{o.f()}}}else{var i,u=C(c.options);try{for(u.s();!(i=u.n()).done;){e(i.value,[],r)}}catch(e){u.e(e)}finally{u.f()}}},fe=function(e){if(e.length>0){var t,n=P({},E||{}),r=C(e);try{for(r.s();!(t=r.n()).done;){n[t.value]=!0}}catch(e){r.e(e)}finally{r.f()}O(n)}};p.useImperativeHandle(i,(function(){return{props:c,focus:function(){return a.DomHandler.focus(H.current)},getElement:function(){return k.current}}})),p.useEffect((function(){a.ObjectUtils.combinedRefs(H,c.inputRef)}),[H,c.inputRef]),n.useMountEffect((function(){se()})),n.useUpdateEffect((function(){v&&c.filter&&ae()})),n.useUpdateEffect((function(){se()}),[c.options]),n.useUpdateEffect((function(){v&&E&&ae()}),[E]),n.useUpdateEffect((function(){v&&(A.current||se(),A.current=!1)}),[c.value]),n.useUnmountEffect((function(){a.ZIndexUtils.clear(I.current)}));var de,me=function(){if(c.filter){var e=a.ObjectUtils.isNotEmpty(R)?R:"",t=p.createElement("div",{className:"p-treeselect-filter-container"},p.createElement("input",{ref:U,type:"text",value:e,autoComplete:"off",className:"p-treeselect-filter p-inputtext p-component",placeholder:c.filterPlaceholder,onKeyDown:re,onChange:le,disabled:c.disabled}),p.createElement("span",{className:"p-treeselect-filter-icon pi pi-search"}));if(c.filterTemplate)t=a.ObjectUtils.getJSXElement(c.filterTemplate,{className:"p-treeselect-filter-container",element:t,filterOptions:_,filterInputKeyDown:re,filterInputChange:le,filterIconClassName:"p-dropdown-filter-icon pi pi-search",props:c});return p.createElement(p.Fragment,null,t)}},ye=function(){var e=[];if(a.ObjectUtils.isNotEmpty(c.value)&&c.options){var t=V?b({},"".concat(c.value),!0):P({},c.value);ce(null,t,e)}return e}(),ve=j.getOtherProps(c),be=a.ObjectUtils.reduceKeys(ve,a.DomHandler.ARIA_PROPS),he=a.classNames("p-treeselect p-component p-inputwrapper",{"p-treeselect-chip":"chip"===c.display,"p-disabled":c.disabled,"p-focus":s,"p-inputwrapper-filled":!F,"p-inputwrapper-focus":s||v},c.className),ge=p.createElement("div",{className:"p-hidden-accessible"},p.createElement("input",d({ref:H,role:"listbox",id:c.inputId,type:"text",readOnly:!0,"aria-expanded":v,onFocus:$,onBlur:Y,onKeyDown:ne,disabled:c.disabled,tabIndex:c.tabIndex},be))),Ee=function(){var e=a.classNames("p-treeselect-label",{"p-placeholder":X()===c.placeholder,"p-treeselect-label-empty":!c.placeholder&&F}),t=null;return c.valueTemplate?t=a.ObjectUtils.getJSXElement(c.valueTemplate,ye,c):"comma"===c.display?t=X()||"empty":"chip"===c.display&&(t=p.createElement(p.Fragment,null,ye&&ye.map((function(e,t){return p.createElement("div",{className:"p-treeselect-token",key:"".concat(e.key,"_").concat(t)},p.createElement("span",{className:"p-treeselect-token-label"},e.label))})),F&&(c.placeholder||"empty"))),p.createElement("div",{className:"p-treeselect-label-container"},p.createElement("div",{className:e},t))}(),Oe=(de=a.classNames("p-treeselect-trigger-icon p-clickable",c.dropdownIcon),p.createElement("div",{ref:D,className:"p-treeselect-trigger",role:"button","aria-haspopup":"listbox","aria-expanded":v},p.createElement("span",{className:de}))),Se=p.createElement(p.Fragment,null,p.createElement(o.Tree,{value:c.options,selectionMode:c.selectionMode,selectionKeys:c.value,metaKeySelection:c.metaKeySelection,onSelectionChange:G,onSelect:Q,onUnselect:W,expandedKeys:M,onToggle:ee,onExpand:c.onNodeExpand,onCollapse:c.onNodeCollapse,filter:c.filter,filterValue:R,filterBy:c.filterBy,filterMode:c.filterMode,filterPlaceholder:c.filterPlaceholder,filterLocale:c.filterLocale,showHeader:!1,onFilterValueChange:te}),K&&p.createElement("div",{className:"p-treeselect-empty-message"},c.emptyMessage||t.localeOption("emptyMessage"))),Ne=function(){var e=me(),n=p.createElement("button",{type:"button",className:"p-treeselect-close p-link",onClick:z,"aria-label":t.localeOption("close")},p.createElement("span",{className:"p-treeselect-close-icon pi pi-times","aria-hidden":"true"}),p.createElement(l.Ripple,null)),r=p.createElement("div",{className:"p-treeselect-header"},e,n);return c.panelHeaderTemplate?a.ObjectUtils.getJSXElement(c.panelHeaderTemplate,{className:"p-treeselect-header",filterElement:e,closeElement:n,closeElementClassName:"p-treeselect-close p-link",closeIconClassName:"p-treeselect-close-icon pi pi-times",onCloseClick:z,element:r,props:c}):r}(),je=a.ObjectUtils.getJSXElement(c.panelFooterTemplate,c);return p.createElement("div",d({ref:k,className:he,style:c.style},ve,{onClick:function(e){c.disabled||I.current&&I.current.contains(e.target)||a.DomHandler.hasClass(e.target,"p-treeselect-close")||(a.DomHandler.focus(H.current),v?z():Z())}}),ge,Ee,Oe,p.createElement(w,{ref:I,appendTo:c.appendTo,panelStyle:c.panelStyle,panelClassName:c.panelClassName,scrollHeight:c.scrollHeight,onClick:function(e){r.OverlayService.emit("overlay-click",{originalEvent:e,target:k.current})},header:Ne,footer:je,transitionOptions:c.transitionOptions,in:v,onEnter:function(){a.ZIndexUtils.set("overlay",I.current,f.default.autoZIndex,f.default.zIndex.overlay),ae(),ie()},onEntered:function(){B(),c.filter&&c.filterInputAutoFocus&&a.DomHandler.focus(U.current,c.filterInputAutoFocus),c.onShow&&c.onShow()},onExit:function(){J()},onExited:function(){c.filter&&c.resetFilterOnHide&&oe(),a.ZIndexUtils.clear(I.current),c.onHide&&c.onHide()}},Se))})));I.displayName="TreeSelect",exports.TreeSelect=I;