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