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) • 32.1 kB
JavaScript
import*as e from"react";import{PrimeReactContext as n,localeOption as t}from"primereact/api";import{ComponentBase as r,useHandleStyle as o}from"primereact/componentbase";import{useMergeProps as l,useUpdateEffect as a,useMountEffect as i}from"primereact/hooks";import{SearchIcon as c}from"primereact/icons/search";import{SpinnerIcon as u}from"primereact/icons/spinner";import{classNames as d,DomHandler as p,ObjectUtils as s,IconUtils as f}from"primereact/utils";import{CheckIcon as g}from"primereact/icons/check";import{ChevronDownIcon as m}from"primereact/icons/chevrondown";import{ChevronRightIcon as v}from"primereact/icons/chevronright";import{MinusIcon as h}from"primereact/icons/minus";import{Ripple as y}from"primereact/ripple";import{Tooltip as b}from"primereact/tooltip";function x(){return x=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},x.apply(this,arguments)}function S(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function k(e){if(Array.isArray(e))return S(e)}function E(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function C(e,n){if(e){if("string"==typeof e)return S(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?S(e,n):void 0}}function I(){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 O(e){return k(e)||E(e)||C(e)||I()}function D(e){return D="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},D(e)}function w(e,n){if("object"!==D(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function N(e){var n=w(e,"string");return"symbol"===D(n)?n:String(n)}function T(e,n,t){return(n=N(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function P(e){if(Array.isArray(e))return e}function M(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,l,a,i=[],c=!0,u=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return i}}function K(){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 j(e,n){return P(e)||M(e,n)||C(e,n)||K()}var U=r.extend({defaultProps:{__TYPE:"Tree",__parentMetadata:null,id:null,value:null,ariaLabel:null,ariaLabelledBy:null,checkboxIcon:null,className:null,collapseIcon:null,contentClassName:null,contentStyle:null,contextMenuSelectionKey:null,disabled:!1,dragdropScope:null,emptyMessage:null,expandIcon:null,expandedKeys:null,filter:!1,filterBy:"label",filterIcon:null,filterLocale:void 0,filterMode:"lenient",filterPlaceholder:null,filterTemplate:null,filterValue:null,footer:null,header:null,level:0,loading:!1,loadingIcon:null,metaKeySelection:!1,nodeTemplate:null,onCollapse:null,onContextMenu:null,onContextMenuSelectionChange:null,onDragDrop:null,onExpand:null,onFilterValueChange:null,onNodeClick:null,onNodeDoubleClick:null,onSelect:null,onSelectionChange:null,onToggle:null,onUnselect:null,propagateSelectionDown:!0,propagateSelectionUp:!0,selectionKeys:null,selectionMode:null,showHeader:!0,style:null,togglerTemplate:null,children:void 0},css:{classes:{root:function(e){var n=e.props;return d("p-tree p-component",{"p-tree-selectable":n.selectionMode,"p-tree-loading":n.loading,"p-disabled":n.disabled})},loadingOverlay:"p-tree-loading-overlay p-component-overlay",loadingIcon:"p-tree-loading-icon",filterContainer:"p-tree-filter-container",input:"p-tree-filter p-inputtext p-component",searchIcon:"p-tree-filter-icon",container:"p-tree-container",node:function(e){return d("p-treenode",{"p-treenode-leaf":e.isLeaf})},content:function(e){var n=e.nodeProps,t=e.checked,r=e.selected;return d("p-treenode-content",{"p-treenode-selectable":n.selectionMode&&!1!==n.node.selectable,"p-highlight":(0,e.isCheckboxSelectionMode)()?t:r,"p-highlight-contextmenu":n.contextMenuSelectionKey&&n.contextMenuSelectionKey===n.node.key,"p-disabled":n.disabled})},toggler:"p-tree-toggler p-link",togglerIcon:"p-tree-toggler-icon",nodeCheckbox:function(e){return d({"p-indeterminate":e.partialChecked})},nodeIcon:"p-treenode-icon",label:"p-treenode-label",subgroup:"p-treenode-children",checkIcon:"p-checkbox-icon",emptyMessage:"p-treenode p-tree-empty-message",droppoint:"p-treenode-droppoint",header:"p-tree-header",footer:"p-tree-footer"}}}),A=r.extend({defaultProps:{__TYPE:"Checkbox",autoFocus:!1,checked:!1,className:null,disabled:!1,falseValue:!1,icon:null,id:null,inputId:null,inputRef:null,invalid:!1,variant:null,name:null,onChange:null,onContextMenu:null,onMouseDown:null,readOnly:!1,required:!1,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,trueValue:!0,value:null,children:void 0},css:{classes:{box:"p-checkbox-box",input:"p-checkbox-input",icon:"p-checkbox-icon",root:function(e){var n=e.props,t=e.context;return d("p-checkbox p-component",{"p-highlight":e.checked,"p-disabled":n.disabled,"p-invalid":n.invalid,"p-variant-filled":n.variant?"filled"===n.variant:t&&"filled"===t.inputStyle})}}}});function L(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function R(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?L(Object(t),!0).forEach((function(n){T(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var F=e.memo(e.forwardRef((function(t,r){var c=l(),u=e.useContext(n),m=A.getProps(t,u),v=j(e.useState(!1),2),h=v[1],y=A.setMetaData({props:m,state:{focused:v[0]},context:{checked:m.checked===m.trueValue,disabled:m.disabled}}),S=y.ptm,k=y.cx;o(A.css.styles,y.isUnstyled,{name:"checkbox"});var E=e.useRef(null),C=e.useRef(m.inputRef),I=function(){return m.checked===m.trueValue},O=function(e){if(!m.disabled&&!m.readonly&&m.onChange){var n,t=I()?m.falseValue:m.trueValue;if(null==m||null===(n=m.onChange)||void 0===n||n.call(m,{originalEvent:e,value:m.value,checked:t,stopPropagation:function(){null==e||e.stopPropagation()},preventDefault:function(){null==e||e.preventDefault()},target:{type:"checkbox",name:m.name,id:m.id,value:m.value,checked:t}}),e.defaultPrevented)return;p.focus(C.current)}};e.useImperativeHandle(r,(function(){return{props:m,focus:function(){return p.focus(C.current)},getElement:function(){return E.current},getInput:function(){return C.current}}})),e.useEffect((function(){s.combinedRefs(C,m.inputRef)}),[C,m.inputRef]),a((function(){C.current.checked=I()}),[m.checked,m.trueValue]),i((function(){m.autoFocus&&p.focus(C.current,m.autoFocus)}));var D,w,N,T,P,M=I(),K=s.isNotEmpty(m.tooltip),U=A.getOtherProps(m),L=c({id:m.id,className:d(m.className,k("root",{checked:M,context:u})),style:m.style,"data-p-highlight":M,"data-p-disabled":m.disabled,onContextMenu:m.onContextMenu,onMouseDown:m.onMouseDown},U,S("root"));return e.createElement(e.Fragment,null,e.createElement("div",x({ref:E},L),(T=s.reduceKeys(U,p.ARIA_PROPS),P=c(R({id:m.inputId,type:"checkbox",className:k("input"),name:m.name,tabIndex:m.tabIndex,onFocus:function(e){return h(!0),void(null==m||null===(n=m.onFocus)||void 0===n||n.call(m));var n},onBlur:function(e){return h(!1),void(null==m||null===(n=m.onBlur)||void 0===n||n.call(m));var n},onChange:function(e){return O(e)},disabled:m.disabled,readOnly:m.readOnly,required:m.required,"aria-invalid":m.invalid,checked:M},T),S("input")),e.createElement("input",x({ref:C},P))),(D=c({className:k("icon")},S("icon")),w=c({className:k("box",{checked:M}),"data-p-highlight":M,"data-p-disabled":m.disabled},S("box")),N=f.getJSXIcon(M?m.icon||e.createElement(g,D):null,R({},D),{props:m,checked:M}),e.createElement("div",w,N))),K&&e.createElement(b,x({target:E,content:m.tooltip,pt:S("tooltip")},m.tooltipOptions)))})));function V(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=J(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 l,a=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){i=!0,l=e},f:function(){try{a||null==t.return||t.return()}finally{if(i)throw l}}}}function J(e,n){if(e){if("string"==typeof e)return X(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?X(e,n):void 0}}function X(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function B(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function _(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?B(Object(t),!0).forEach((function(n){T(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):B(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}F.displayName="Checkbox";var H=e.memo((function(n){var t,r,o,a,i,c,u,b=e.useRef(null),x=e.useRef(null),S=e.useRef(!1),k=l(),E=n.isNodeLeaf(n.node),C=n.node.label,I=!!n.expandedKeys&&void 0!==n.expandedKeys[n.node.key]||n.node.expanded,D=n.ptm,w=n.cx,N=function(e){return D(e,{hostName:n.hostName,context:{selected:!de()&&le(),expanded:I||!1,checked:!!de()&&ae(),isLeaf:E}})},T=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=n.expandedKeys?_({},n.expandedKeys):{};r[n.node.key]=!0,n.onToggle({originalEvent:e,value:r,navigateFocusToChild:t}),K(e,!0)},P=function(e){var t=_({},n.expandedKeys);delete t[n.node.key],n.onToggle({originalEvent:e,value:t}),K(e,!1)},M=function(e){n.disabled||(I?P(e):T(e,!1),e.preventDefault(),e.stopPropagation())},K=function(e,t){t?n.onExpand&&n.onExpand({originalEvent:e,node:n.node}):n.onCollapse&&n.onCollapse({originalEvent:e,node:n.node})},j=function(e){var n=e.nextSibling;return n?"droppoint"===n.getAttribute("data-pc-section")?n.nextElementSibling?n.nextElementSibling:null:n:null},U=function(e){var n=L(e);return n?j(n)||U(n):null},A=function(e){var t=e.children[1];return t?A(t.children[t.children.length-(n.dragdropScope?2:1)]):e},L=function(e){var n=e.parentElement.parentElement;return p.hasClass(n,"p-treenode")?n:null},R=function(e){n.onClick&&n.onClick({originalEvent:e,node:n.node});var t=e.target.nodeName;if(!n.disabled&&"INPUT"!==t&&"BUTTON"!==t&&"A"!==t&&!p.hasClass(e.target,"p-clickable")){if(n.selectionMode&&!1!==n.node.selectable){var r;if(de()){var o=ae();r=n.selectionKeys?_({},n.selectionKeys):{},o?(n.propagateSelectionDown?oe(n.node,!1,r):delete r[n.node.key],n.propagateSelectionUp&&n.onPropagateUp&&n.onPropagateUp({originalEvent:e,check:!1,selectionKeys:r}),n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):(n.propagateSelectionDown?oe(n.node,!0,r):r[n.node.key]={checked:!0},n.propagateSelectionUp&&n.onPropagateUp&&n.onPropagateUp({originalEvent:e,check:!0,selectionKeys:r}),n.onSelect&&n.onSelect({originalEvent:e,node:n.node}))}else{var l=le();if(!S.current&&n.metaKeySelection){var a=e.metaKey||e.ctrlKey;l&&a?(ce()?r=null:delete(r=_({},n.selectionKeys))[n.node.key],n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):(ce()?r=n.node.key:ue()&&((r=a&&n.selectionKeys?_({},n.selectionKeys):{})[n.node.key]=!0),n.onSelect&&n.onSelect({originalEvent:e,node:n.node}))}else ce()?l?(r=null,n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):(r=n.node.key,n.onSelect&&n.onSelect({originalEvent:e,node:n.node})):l?(delete(r=_({},n.selectionKeys))[n.node.key],n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):((r=n.selectionKeys?_({},n.selectionKeys):{})[n.node.key]=!0,n.onSelect&&n.onSelect({originalEvent:e,node:n.node}))}n.onSelectionChange&&n.onSelectionChange({originalEvent:e,value:r})}S.current=!1}},J=function(e){n.onDoubleClick&&n.onDoubleClick({originalEvent:e,node:n.node})},X=function(e){n.disabled||(p.clearSelection(),n.onContextMenuSelectionChange&&n.onContextMenuSelectionChange({originalEvent:e,value:n.node.key}),n.onContextMenu&&n.onContextMenu({originalEvent:e,node:n.node}))},B=function(e){if(ie(e))switch(e.code){case"Tab":W();break;case"ArrowDown":q(e);break;case"ArrowUp":Y(e);break;case"ArrowRight":z(e);break;case"ArrowLeft":G(e);break;case"Enter":case"NumpadEnter":Q(e);break;case"Space":["INPUT"].includes(e.target.nodeName)||Q(e)}},q=function(e){var t="toggler"===e.target.getAttribute("data-pc-section")?e.target.closest('[role="treeitem"]'):e.target,r=t.children[1],o=$(t);if(r)ne(t,n.dragdropScope?r.children[1]:r.children[0]);else if(o)ne(t,o);else{var l=U(t);l&&ne(t,l)}e.preventDefault()},$=function(e){var t=e.nextElementSibling;return t?n.dragdropScope?t.nextElementSibling:t:null},Y=function(e){var t,r=e.target,o=(t=r.previousElementSibling)?n.dragdropScope?t.previousElementSibling:t:null;if(o)ne(r,o,A(o));else{var l=L(r);l&&ne(r,l)}e.preventDefault()},z=function(e){E||I||(e.currentTarget.tabIndex=-1,T(e,!0))},G=function(e){var t=p.findSingle(e.currentTarget,'[data-pc-section="toggler"]');if(0===n.level&&!I)return!1;if(I&&!E)return t.click(),!1;var r=te(e.currentTarget);r&&ne(e.currentTarget,r)},Q=function(e){ee(e,S.current),R(e),e.preventDefault()},W=function(){Z()},Z=function(){var e=p.find(b.current.closest('[data-pc-section="container"]'),'[role="treeitem"]'),n=O(e).some((function(e){return"true"===e.getAttribute("aria-selected")||"true"===e.getAttribute("aria-checked")}));if(O(e).forEach((function(e){e.tabIndex=-1})),n){var t=O(e).filter((function(e){return"true"===e.getAttribute("aria-selected")||"true"===e.getAttribute("aria-checked")}));t[0].tabIndex=0}else O(e)[0].tabIndex=0},ee=function(e,t){if(null!==n.selectionMode){var r=O(p.find(x.current.parentElement,'[role="treeitem"]'));e.currentTarget.tabIndex=!1===t?-1:0,r.every((function(e){return-1===e.tabIndex}))&&(r[0].tabIndex=0)}},ne=function(e,n,t){var r;e.tabIndex="-1",n.tabIndex="0",(r=t||n)&&r.focus()},te=function(e){var n=e.closest("ul").closest("li");if(n){var t=p.findSingle(n,"button");return t&&"hidden"!==t.style.visibility?n:te(e.previousElementSibling)}return null},re=function(e){var t,r=e.check,o=e.selectionKeys,l=V(n.node.children);try{for(l.s();!(t=l.n()).done;){var a=t.value;o[a.key]&&o[a.key].checked&&0}}catch(e){l.e(e)}finally{l.f()}var i=n.node.key,c=s.findChildrenByKey(n.originalOptions,i),u=c.some((function(e){return e.key in o})),d=c.every((function(e){return e.key in o&&o[e.key].checked}));u&&!d?o[i]={checked:!1,partialChecked:!0}:d?o[i]={checked:!0,partialChecked:!1}:r?o[i]={checked:!1,partialChecked:!1}:delete o[i],n.propagateSelectionUp&&n.onPropagateUp&&n.onPropagateUp(e)},oe=function(e,n,t){if(n?t[e.key]={checked:!0,partialChecked:!1}:delete t[e.key],e.children&&e.children.length)for(var r=0;r<e.children.length;r++)oe(e.children[r],n,t)},le=function(){return!(!n.selectionMode||!n.selectionKeys)&&(ce()?n.selectionKeys===n.node.key:void 0!==n.selectionKeys[n.node.key])},ae=function(){return!!n.selectionKeys&&(n.selectionKeys[n.node.key]&&n.selectionKeys[n.node.key].checked)||!1},ie=function(e){return e.currentTarget&&(e.currentTarget.isSameNode(e.target)||e.currentTarget.isSameNode(e.target.closest('[role="treeitem"]')))},ce=function(){return n.selectionMode&&"single"===n.selectionMode},ue=function(){return n.selectionMode&&"multiple"===n.selectionMode},de=function(){return n.selectionMode&&"checkbox"===n.selectionMode},pe=function(){S.current=!0},se=function(e,t){(e.preventDefault(),p.removeClass(e.target,"p-treenode-droppoint-active"),n.onDropPoint)&&n.onDropPoint({originalEvent:e,path:n.path,index:-1===t?n.index:n.index+1,position:t})},fe=function(e){n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&(e.dataTransfer.dropEffect="move",e.preventDefault())},ge=function(e){n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&p.addClass(e.target,"p-treenode-droppoint-active")},me=function(e){n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&p.removeClass(e.target,"p-treenode-droppoint-active")},ve=function(e){n.dragdropScope&&!1!==n.node.droppable&&(p.removeClass(b.current,"p-treenode-dragover"),e.preventDefault(),e.stopPropagation(),n.onDrop&&n.onDrop({originalEvent:e,path:n.path,index:n.index}))},he=function(e){n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&!1!==n.node.droppable&&(e.dataTransfer.dropEffect="move",e.preventDefault(),e.stopPropagation())},ye=function(e){n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&!1!==n.node.droppable&&p.addClass(b.current,"p-treenode-dragover")},be=function(e){if(n.dragdropScope&&e.dataTransfer.types[1]===n.dragdropScope.toLocaleLowerCase()&&!1!==n.node.droppable){var t=e.currentTarget.getBoundingClientRect();(e.nativeEvent.x>t.left+t.width||e.nativeEvent.x<t.left||e.nativeEvent.y>=Math.floor(t.top+t.height)||e.nativeEvent.y<t.top)&&p.removeClass(b.current,"p-treenode-dragover")}},xe=function(e){e.dataTransfer.setData("text",n.dragdropScope),e.dataTransfer.setData(n.dragdropScope,n.dragdropScope),n.onDragStart&&n.onDragStart({originalEvent:e,path:n.path,index:n.index})},Se=function(e){n.onDragEnd&&n.onDragEnd({originalEvent:e})},ke=function(){var t=k({className:w("label")},N("label")),r=e.createElement("span",t,C);n.nodeTemplate&&(r=s.getJSXElement(n.nodeTemplate,n.node,{onTogglerClick:M,className:"p-treenode-label",element:r,props:n,expanded:I}));return r},Ee=function(){if(de()&&!1!==n.node.selectable){var t,r=ae(),o=!!n.selectionKeys&&n.selectionKeys[n.node.key]&&n.selectionKeys[n.node.key].partialChecked,l=k({className:w("checkIcon")}),a=f.getJSXIcon(r?n.checkboxIcon||e.createElement(g,l):o?n.checkboxIcon||e.createElement(h,l):null,_({},l),n),i=k({className:w("nodeCheckbox",{partialChecked:o}),checked:r||o,icon:a,tabIndex:-1,unstyled:null==n||null===(t=n.isUnstyled)||void 0===t?void 0:t.call(n),"data-p-checked":r,"data-p-partialchecked":o,onChange:R},N("nodeCheckbox"));return e.createElement(F,i)}return null},Ce=function(){var e=n.node.icon||(I?n.node.expandedIcon:n.node.collapsedIcon);if(e){var t=k({className:d(e,w("nodeIcon"))},N("nodeIcon"));return f.getJSXIcon(e,_({},t),{props:n})}return null},Ie=function(){var t=k({className:w("togglerIcon"),"aria-hidden":!0},N("togglerIcon")),r=f.getJSXIcon(I?n.collapseIcon||e.createElement(m,t):n.expandIcon||e.createElement(v,t),_({},t),{props:n,expanded:I}),o=k({type:"button",className:w("toggler"),tabIndex:-1,"aria-hidden":!0,onClick:M},N("toggler")),l=e.createElement("button",o,r,e.createElement(y,null));n.togglerTemplate&&(l=s.getJSXElement(n.togglerTemplate,n.node,{onClick:M,containerClassName:"p-tree-toggler p-link",iconClassName:"p-tree-toggler-icon",element:l,props:n,expanded:I}));return l},Oe=function(t){if(n.dragdropScope){var r=k({className:w("droppoint"),role:"treeitem",onDrop:function(e){return se(e,t)},onDragOver:fe,onDragEnter:ge,onDragLeave:me},N("droppoint"));return e.createElement("li",r)}return null},De=function(){var t=le(),r=ae(),o=Ie(),l=Ee(),a=Ce(),i=ke(),c=k({ref:b,className:d(n.node.className,w("content",{checked:r,selected:t,nodeProps:n,isCheckboxSelectionMode:de})),style:n.node.style,onClick:R,onDoubleClick:J,onContextMenu:X,onTouchEnd:pe,draggable:n.dragdropScope&&!1!==n.node.draggable&&!n.disabled,onDrop:ve,onDragOver:he,onDragEnter:ye,onDragLeave:be,onDragStart:xe,onDragEnd:Se,"data-p-highlight":de()?r:t},N("content"));return e.createElement("div",c,o,l,a,i)},we=(r=n.disabled||0!==n.index?-1:0,o=le(),a=ae(),i=De(),t=k({className:w("subgroup"),role:"group"},N("subgroup")),c=s.isNotEmpty(n.node.children)&&I?e.createElement("ul",t,n.node.children.map((function(t,r){return e.createElement(H,{key:t.key||t.label,node:t,checkboxIcon:n.checkboxIcon,collapseIcon:n.collapseIcon,contextMenuSelectionKey:n.contextMenuSelectionKey,cx:w,disabled:n.disabled,dragdropScope:n.dragdropScope,expandIcon:n.expandIcon,expandedKeys:n.expandedKeys,index:r,isNodeLeaf:n.isNodeLeaf,last:r===n.node.children.length-1,metaKeySelection:n.metaKeySelection,nodeTemplate:n.nodeTemplate,onClick:n.onClick,onCollapse:n.onCollapse,onContextMenu:n.onContextMenu,onContextMenuSelectionChange:n.onContextMenuSelectionChange,onDoubleClick:n.onDoubleClick,onDragEnd:n.onDragEnd,onDragStart:n.onDragStart,onDrop:n.onDrop,onDropPoint:n.onDropPoint,onExpand:n.onExpand,onPropagateUp:re,onSelect:n.onSelect,onSelectionChange:n.onSelectionChange,onToggle:n.onToggle,onUnselect:n.onUnselect,originalOptions:n.originalOptions,parent:n.node,path:n.path+"-"+r,propagateSelectionDown:n.propagateSelectionDown,propagateSelectionUp:n.propagateSelectionUp,ptm:D,selectionKeys:n.selectionKeys,selectionMode:n.selectionMode,togglerTemplate:n.togglerTemplate})}))):null,u=k({ref:x,className:d(n.node.className,w("node",{isLeaf:E})),style:n.node.style,tabIndex:r,role:"treeitem","aria-label":C,"aria-level":n.level,"aria-expanded":I,"aria-checked":a,"aria-setsize":n.node.children?n.node.children.length:0,"aria-posinset":n.index+1,onKeyDown:B,"aria-selected":a||o},N("node")),e.createElement("li",u,i,c));if(n.dragdropScope&&!n.disabled&&(!n.parent||!1!==n.parent.droppable)){var Ne=Oe(-1),Te=n.last?Oe(1):null;return e.createElement(e.Fragment,null,Ne,we,Te)}return we}));function q(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function $(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?q(Object(t),!0).forEach((function(n){T(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):q(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function Y(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=z(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 l,a=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){i=!0,l=e},f:function(){try{a||null==t.return||t.return()}finally{if(i)throw l}}}}function z(e,n){if(e){if("string"==typeof e)return G(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?G(e,n):void 0}}function G(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}H.displayName="UITreeNode";var Q=e.memo(e.forwardRef((function(r,a){var i=l(),g=e.useContext(n),m=U.getProps(r,g),v=j(e.useState(""),2),h=v[0],y=v[1],b=j(e.useState(m.expandedKeys),2),S=b[0],k=b[1],E=e.useRef(null),C=e.useRef([]),I=e.useRef(null),D=e.useRef(!1),w=m.onFilterValueChange?m.filterValue:h,N=m.onToggle?m.expandedKeys:S,T=e.useRef(null),P=U.setMetaData({props:m,state:{filterValue:w,expandedKeys:N}}),M=P.ptm,K=P.cx,A=P.isUnstyled;o(U.css.styles,A,{name:"tree"});var L,R,F,V={filter:function(e){return re(e)},reset:function(){return ce()}},J=function(e){var n=e.originalEvent,t=e.value,r=e.navigateFocusToChild;m.onToggle?m.onToggle({originalEvent:n,value:t}):(r&&(T.current=n),k(t))};L=function(){if(T.current){var e=T.current,n="toggler"===e.target.getAttribute("data-pc-section")?e.target.closest('[role="treeitem"]'):e.target,t=n.children[1];if(t){n&&(n.tabIndex="-1");var r=m.dragdropScope?t.children[1]:t.children[0];r&&(r.tabIndex="0",r.focus())}T.current=null}},R=[N],F=e.useRef(!1),e.useEffect((function(){if(F.current)return L&&L();F.current=!0}),R);var X=function(e){I.current={path:e.path,index:e.index}},B=function(){I.current=null},_=function(e){if(Array.isArray(e))return e.map(_);if(e&&Object.getPrototypeOf(e)===Object.prototype){var n={};for(var t in e)n[t]="data"!==t?_(e[t]):e[t];return n}return e},q=function(e){var n;if(Q(null===(n=I.current)||void 0===n?void 0:n.path,e.path)){var t=_(m.value),r=I.current.path.split("-");r.pop();var o=ee(t,r),l=o?o.children[I.current.index]:t[I.current.index],a=ee(t,e.path.split("-"));a.children?a.children.push(l):a.children=[l],o?o.children.splice(I.current.index,1):t.splice(I.current.index,1),m.onDragDrop&&m.onDragDrop({originalEvent:e.originalEvent,value:t,dragNode:l,dropNode:a,dropIndex:e.index})}},z=function(e){if(W(e)){var n=_(m.value),t=I.current.path.split("-");t.pop();var r=e.path.split("-");r.pop();var o=ee(n,t),l=ee(n,r),a=o?o.children[I.current.index]:n[I.current.index],i=Z(I.current.path,e.path);if(o?o.children.splice(I.current.index,1):n.splice(I.current.index,1),e.position<0){var c=i?I.current.index>e.index?e.index:e.index-1:e.index;l?l.children.splice(c,0,a):n.splice(c,0,a)}else l?l.children.push(a):n.push(a);m.onDragDrop&&m.onDragDrop({originalEvent:e.originalEvent,value:n,dragNode:a,dropNode:l,dropIndex:e.index})}},G=function(e,n){return!!e&&(e!==n&&0!==n.indexOf(e))},Q=function(e,n){return!!G(e,n)&&!(e.indexOf("-")>0&&e.substring(0,e.lastIndexOf("-"))===n)},W=function(e){var n;return!!G(null===(n=I.current)||void 0===n?void 0:n.path,e.path)&&(-1!==e.position||!Z(I.current.path,e.path)||I.current.index+1!==e.index)},Z=function(e,n){return 1===e.length&&1===n.length||e.substring(0,e.lastIndexOf("-"))===n.substring(0,n.lastIndexOf("-"))},ee=function(e,n){if(0===n.length)return null;var t=parseInt(n[0],10),r=e.children?e.children[t]:e[t];return 1===n.length?r:(n.shift(),ee(r,n))},ne=function(e){return!1!==e.leaf&&!(e.children&&e.children.length)},te=function(e){13===e.which&&e.preventDefault()},re=function(e){D.current=!0;var n=e.target.value;m.onFilterValueChange?m.onFilterValueChange({originalEvent:e,value:n}):y(n)},oe=function(e){y(s.isNotEmpty(e)?e:""),le()},le=function(){if(D.current){if(s.isEmpty(w))C.current=m.value;else{C.current=[];var e,n=m.filterBy.split(","),t=w.toLocaleLowerCase(m.filterLocale),r="strict"===m.filterMode,o=Y(m.value);try{for(o.s();!(e=o.n()).done;){var l=$({},e.value),a={searchFields:n,filterText:t,isStrictMode:r};(r&&(ae(l,a)||ie(l,a))||!r&&(ie(l,a)||ae(l,a)))&&C.current.push(l)}}catch(e){o.e(e)}finally{o.f()}}D.current=!1}},ae=function(e,n){if(e){var t=!1;if(e.children){var r=O(e.children);e.children=[];var o,l=Y(r);try{for(l.s();!(o=l.n()).done;){var a=$({},o.value);ie(a,n)&&(t=!0,e.children.push(a))}}catch(e){l.e(e)}finally{l.f()}}if(t)return e.expanded=!0,!0}},ie=function(e,n){var t,r=n.searchFields,o=n.filterText,l=n.isStrictMode,a=!1,i=Y(r);try{for(i.s();!(t=i.n()).done;){String(s.resolveFieldData(e,t.value)).toLocaleLowerCase(m.filterLocale).indexOf(o)>-1&&(a=!0)}}catch(e){i.e(e)}finally{i.f()}return(!a||l&&!ne(e))&&(a=ae(e,{searchFields:r,filterText:o,isStrictMode:l})||a),a},ce=function(){y("")};e.useImperativeHandle(a,(function(){return{props:m,filter:oe,getElement:function(){return E.current}}}));var ue=function(n,t,r){return e.createElement(H,{hostName:"Tree",key:n.key||n.label,node:n,level:m.level+1,originalOptions:m.value,index:t,last:r,path:String(t),checkboxIcon:m.checkboxIcon,collapseIcon:m.collapseIcon,contextMenuSelectionKey:m.contextMenuSelectionKey,cx:K,disabled:m.disabled,dragdropScope:m.dragdropScope,expandIcon:m.expandIcon,expandedKeys:N,isNodeLeaf:ne,metaKeySelection:m.metaKeySelection,nodeTemplate:m.nodeTemplate,onClick:m.onNodeClick,onCollapse:m.onCollapse,onContextMenu:m.onContextMenu,onContextMenuSelectionChange:m.onContextMenuSelectionChange,onDoubleClick:m.onNodeDoubleClick,onDragEnd:B,onDragStart:X,onDrop:q,onDropPoint:z,onExpand:m.onExpand,onSelect:m.onSelect,onSelectionChange:m.onSelectionChange,onToggle:J,onUnselect:m.onUnselect,propagateSelectionDown:m.propagateSelectionDown,propagateSelectionUp:m.propagateSelectionUp,ptm:M,selectionKeys:m.selectionKeys,selectionMode:m.selectionMode,togglerTemplate:m.togglerTemplate,isUnstyled:A})},de=function(n){var t=i($({className:d(m.contentClassName,K("container")),role:"tree","aria-label":m.ariaLabel,"aria-labelledby":m.ariaLabelledBy,style:m.contentStyle},ge),M("container"));return e.createElement("ul",t,n)},pe=function(e){return e.map((function(n,t){return ue(n,t,t===e.length-1)}))},se=function(){if(m.filter){var n=s.isNotEmpty(w)?w:"",t=i({className:K("searchIcon")},M("searchIcon")),r=f.getJSXIcon(m.filterIcon||e.createElement(c,t),$({},t),{props:m}),o=i({className:K("filterContainer")},M("filterContainer")),l=i({type:"text",value:n,autoComplete:"off",className:K("input"),placeholder:m.filterPlaceholder,"aria-label":m.filterPlaceholder,onKeyDown:te,onChange:re,disabled:m.disabled},M("input")),a=e.createElement("div",o,e.createElement("input",l),r);if(m.filterTemplate)a=s.getJSXElement(m.filterTemplate,{className:"p-tree-filter-container",element:a,filterOptions:V,filterInputKeyDown:te,filterInputChange:re,filterIconClassName:"p-dropdown-filter-icon",props:m});return e.createElement(e.Fragment,null,a)}return null},fe=U.getOtherProps(m),ge=s.reduceKeys(fe,p.ARIA_PROPS),me=function(){if(m.loading){var n=i({className:K("loadingIcon")},M("loadingIcon")),t=m.loadingIcon||e.createElement(u,x({},n,{spin:!0})),r=f.getJSXIcon(t,$({},n),{props:m}),o=i({className:K("loadingOverlay")},M("loadingOverlay"));return e.createElement("div",o,r)}return null}(),ve=function(){if(m.value){m.filter&&(D.current=!0,le());var n=m.filter&&C.current?C.current:m.value;if(n.length>0){var r=pe(n);return de(r)}var o=(l=i({className:d(m.contentClassName,K("emptyMessage")),role:"treeitem"},M("emptyMessage")),a=s.getJSXElement(m.emptyMessage,m)||t("emptyMessage"),e.createElement("li",l,e.createElement("span",{className:"p-treenode-content"},a)));return de(o)}var l,a;return null}(),he=function(){if(m.showHeader){var n=se(),t=n;if(m.header)t=s.getJSXElement(m.header,{filterContainerClassName:"p-tree-filter-container",filterIconClassName:"p-tree-filter-icon",filterInput:{className:"p-tree-filter p-inputtext p-component",onKeyDown:te,onChange:re},filterElement:n,element:t,props:m});var r=i({className:K("header")},M("header"));return e.createElement("div",r,t)}return null}(),ye=function(){var n=s.getJSXElement(m.footer,m),t=i({className:K("footer")},M("footer"));return e.createElement("div",t,n)}(),be=i({ref:E,className:d(m.className,K("root")),style:m.style,id:m.id},U.getOtherProps(m),M("root"));return e.createElement("div",be,me,he,ve,ye)})));Q.displayName="Tree";export{Q as Tree};