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,useDebounce as c}from"primereact/hooks";import{SearchIcon as u}from"primereact/icons/search";import{SpinnerIcon as d}from"primereact/icons/spinner";import{classNames as s,DomHandler as p,ObjectUtils as f,IconUtils as g}from"primereact/utils";import{CheckIcon as m}from"primereact/icons/check";import{Tooltip as v}from"primereact/tooltip";import{ChevronDownIcon as h}from"primereact/icons/chevrondown";import{ChevronRightIcon as y}from"primereact/icons/chevronright";import{MinusIcon as b}from"primereact/icons/minus";import{Ripple as x}from"primereact/ripple";function S(){return S=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);t=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 X(e,n){if(e){if("string"==typeof e)return B(e,n);var t={}.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)?B(e,n):void 0}}function B(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t1&&void 0!==arguments[1]&&arguments[1],r=n.expandedKeys?H({},n.expandedKeys):{};r[n.node.key]=!0,n.onToggle({originalEvent:e,value:r,navigateFocusToChild:t}),K(e,!0)},P=function(e){var t=H({},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},F=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?H({},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=H({},n.selectionKeys))[n.node.key],n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):(ce()?r=n.node.key:ue()&&((r=a&&n.selectionKeys?H({},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=H({},n.selectionKeys))[n.node.key],n.onUnselect&&n.onUnselect({originalEvent:e,node:n.node})):((r=n.selectionKeys?H({},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}},R=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":_(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)}},_=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),F(e),e.preventDefault()},W=function(){Z()},Z=function(){var e=p.find(d.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(v.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=J(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=f.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;rt.left+t.width||e.nativeEvent.x=Math.floor(t.top+t.height)||e.nativeEvent.y=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 Y(e,n){if(e){if("string"==typeof e)return z(e,n);var t={}.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)?z(e,n):void 0}}function z(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);te.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);h.onDragDrop&&h.onDragDrop({originalEvent:e.originalEvent,value:n,dragNode:a,dropNode:l,dropIndex:e.index})}},Z=function(e,n){return!!e&&(e!==n&&0!==n.indexOf(e))},ee=function(e,n){return!!Z(e,n)&&!(e.indexOf("-")>0&&e.substring(0,e.lastIndexOf("-"))===n)},ne=function(e){var n;return!!Z(null===(n=w.current)||void 0===n?void 0:n.path,e.path)&&(-1!==e.position||!te(w.current.path,e.path)||w.current.index+1!==e.index)},te=function(e,n){return 1===e.length&&1===n.length||e.substring(0,e.lastIndexOf("-"))===n.substring(0,n.lastIndexOf("-"))},re=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(),re(r,n))},oe=function(e){return!1!==e.leaf&&!(e.children&&e.children.length)},le=function(e){13===e.which&&e.preventDefault()},ae=function(e){T.current=!0;var n=e.target.value;h.onFilterValueChange?h.onFilterValueChange({originalEvent:e,value:n}):k(n)},ie=function(e){k(f.isNotEmpty(e)?e:"")},ce=function(){if(T.current){if(f.isEmpty(P))N.current=h.value;else{N.current=[];var e,n=h.filterBy.split(","),t=P.toLocaleLowerCase(h.filterLocale),r="strict"===h.filterMode,o=$(h.value);try{for(o.s();!(e=o.n()).done;){var l=Q({},e.value),a={searchFields:n,filterText:t,isStrictMode:r};(r&&(ue(l,a)||de(l,a))||!r&&(de(l,a)||ue(l,a)))&&N.current.push(l)}}catch(e){o.e(e)}finally{o.f()}}_({originalEvent:null,value:j.current,navigateFocusToChild:!1}),j.current={},T.current=!1}},ue=function(e,n){if(e){var t=!1;if(e.children){var r=O(e.children);e.children=[];var o,l=$(r);try{for(l.s();!(o=l.n()).done;){var a=Q({},o.value);de(a,n)&&(t=!0,e.children.push(a))}}catch(e){l.e(e)}finally{l.f()}}if(t)return j.current[e.key]=!0,!0}},de=function(e,n){var t,r=n.searchFields,o=n.filterText,l=n.isStrictMode,a=!1,i=$(r);try{for(i.s();!(t=i.n()).done;){String(f.resolveFieldData(e,t.value)).toLocaleLowerCase(h.filterLocale).indexOf(o)>-1&&(a=!0)}}catch(e){i.e(e)}finally{i.f()}return(!a||l&&!oe(e))&&(a=ue(e,{searchFields:r,filterText:o,isStrictMode:l})||a),a},se=function(){k("")};e.useImperativeHandle(i,(function(){return{props:h,filter:ie,getElement:function(){return D.current}}}));var pe=function(n,t,r){return e.createElement(q,{hostName:"Tree",key:n.key||n.label,node:n,level:h.level+1,originalOptions:h.value,index:t,last:r,path:String(t),checkboxIcon:h.checkboxIcon,collapseIcon:h.collapseIcon,contextMenuSelectionKey:h.contextMenuSelectionKey,cx:V,disabled:h.disabled,dragdropScope:h.dragdropScope,expandIcon:h.expandIcon,expandedKeys:K,isFiltering:M,isNodeLeaf:oe,metaKeySelection:h.metaKeySelection,nodeTemplate:h.nodeTemplate,onClick:h.onNodeClick,onCollapse:h.onCollapse,onContextMenu:h.onContextMenu,onContextMenuSelectionChange:h.onContextMenuSelectionChange,onDoubleClick:h.onNodeDoubleClick,onDragEnd:Y,onDragStart:H,onDrop:G,onDropPoint:W,onExpand:h.onExpand,onSelect:h.onSelect,onSelectionChange:h.onSelectionChange,onToggle:_,onUnselect:h.onUnselect,propagateSelectionDown:h.propagateSelectionDown,propagateSelectionUp:h.propagateSelectionUp,ptm:R,selectionKeys:h.selectionKeys,selectionMode:h.selectionMode,togglerTemplate:h.togglerTemplate,isUnstyled:J})},fe=function(n){var t=m(Q({className:s(h.contentClassName,V("container")),role:"tree","aria-label":h.ariaLabel,"aria-labelledby":h.ariaLabelledBy,style:h.contentStyle},he),R("container"));return e.createElement("ul",t,n)},ge=function(e){return e.map((function(n,t){return pe(n,t,t===e.length-1)}))},me=function(){if(h.filter){var n=h.onFilterValueChange?h.filterValue:b;n=f.isNotEmpty(n)?n:"";var t=m({className:V("searchIcon")},R("searchIcon")),r=g.getJSXIcon(h.filterIcon||e.createElement(u,t),Q({},t),{props:h}),o=m({className:V("filterContainer")},R("filterContainer")),l=m({type:"text",value:n,autoComplete:"off",className:V("input"),placeholder:h.filterPlaceholder,"aria-label":h.filterPlaceholder,onKeyDown:le,onChange:ae,disabled:h.disabled},R("input")),a=e.createElement("div",o,e.createElement("input",l),r);if(h.filterTemplate)a=f.getJSXElement(h.filterTemplate,{className:"p-tree-filter-container",element:a,filterOptions:X,filterInputKeyDown:le,filterInputChange:ae,filterIconClassName:"p-dropdown-filter-icon",props:h});return e.createElement(e.Fragment,null,a)}return null},ve=A.getOtherProps(h),he=f.reduceKeys(ve,p.ARIA_PROPS),ye=function(){if(h.loading){var n=m({className:V("loadingIcon")},R("loadingIcon")),t=h.loadingIcon||e.createElement(d,S({},n,{spin:!0})),r=g.getJSXIcon(t,Q({},n),{props:h}),o=m({className:V("loadingOverlay")},R("loadingOverlay"));return e.createElement("div",o,r)}return null}(),be=function(){if(h.value){h.filter&&(T.current=!0);var n=B();if(n.length>0){var r=ge(n);return fe(r)}var o=(l=m({className:s(h.contentClassName,V("emptyMessage")),role:"treeitem"},R("emptyMessage")),a=f.getJSXElement(h.emptyMessage,h)||t("emptyMessage"),e.createElement("li",l,e.createElement("span",{className:"p-treenode-content"},a)));return fe(o)}var l,a;return null}(),xe=function(){if(h.showHeader){var n=me(),t=n;if(h.header)t=f.getJSXElement(h.header,{filterContainerClassName:"p-tree-filter-container",filterIconClassName:"p-tree-filter-icon",filterInput:{className:"p-tree-filter p-inputtext p-component",onKeyDown:le,onChange:ae},filterElement:n,element:t,props:h});var r=m({className:V("header")},R("header"));return e.createElement("div",r,t)}return null}(),Se=function(){var n=f.getJSXElement(h.footer,h),t=m({className:V("footer")},R("footer"));return e.createElement("div",t,n)}(),ke=m({ref:D,className:s(h.className,V("root")),style:h.style,id:h.id},A.getOtherProps(h),R("root"));return e.createElement("div",ke,ye,xe,be,Se)})));W.displayName="Tree";export{W as Tree};