import*as e from"react";import t,{PrimeReactContext as n,localeOption as r,ariaLabel as l}from"primereact/api";import{ComponentBase as o,useHandleStyle as a}from"primereact/componentbase";import{useMergeProps as i,useDebounce as c,useOverlayListener as u,useMountEffect as s,useUpdateEffect as p,useUnmountEffect as f}from"primereact/hooks";import{ChevronDownIcon as d}from"primereact/icons/chevrondown";import{SearchIcon as m}from"primereact/icons/search";import{TimesIcon as y}from"primereact/icons/times";import{OverlayService as v}from"primereact/overlayservice";import{Ripple as b}from"primereact/ripple";import{Tooltip as g}from"primereact/tooltip";import{Tree as h}from"primereact/tree";import{classNames as E,ObjectUtils as w,DomHandler as O,UniqueComponentId as S,ZIndexUtils as x,IconUtils as I}from"primereact/utils";import{CSSTransition as N}from"primereact/csstransition";import{Portal as k}from"primereact/portal";function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n=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 q(e,t){if(e){if("string"==typeof e)return W(e,t);var n={}.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)?W(e,t):void 0}}function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]&&arguments[1]||L&&Je()&&(O.focus(ie.current),e.preventDefault())},Je=function(){return O.getFocusableElements(te.current,':not([data-p-hidden-focusable="true"])').length>0},Xe=function(e){var t=e.target.value;A.onFilterValueChange?A.onFilterValueChange({originalEvent:e,value:t}):Q(t)},_e=function(){Q("")},ze=function(){O.alignOverlay(te.current,le.current.parentElement,A.appendTo||T&&T.appendTo||t.appendTo)},Ze=function(){var e=O.findSingle(te.current,'[data-pc-section="content"][data-p-highlight="true"]');e&&e.scrollIntoView&&e.scrollIntoView({block:"nearest",inline:"start"})},$e=function(e,t,n){if(e){if(qe(e,t)&&(n.push(e),delete t[e.key]),Object.keys(t).length&&e.children){var r,l=$(e.children);try{for(l.s();!(r=l.n()).done;){$e(r.value,t,n)}}catch(e){l.e(e)}finally{l.f()}}}else{var o,a=$(A.options);try{for(a.s();!(o=a.n()).done;){$e(o.value,t,n)}}catch(e){a.e(e)}finally{a.f()}}},qe=function(e,t){return ye?t[e.key]&&t[e.key].checked:t[e.key]},We=function(){var e=me?V({},"".concat(A.value),!0):Z({},A.value);q({}),e&&A.options&&Ge(null,null,e)},Ye=function(){var e,t,n=O.find(null===(e=ae.current)||void 0===e?void 0:e.getElement(),'[data-pc-section="node"]'),r=(t=n,j(t)||D(t)||P(t)||F()).find((function(e){return"0"===e.getAttribute("tabindex")}));O.focus(r)},Ge=function(e,t,n){if(e){if(qe(e,n)&&(Qe(t),delete n[e.key]),Object.keys(n).length&&e.children){var r,l=$(e.children);try{for(l.s();!(r=l.n()).done;){var o=r.value;t.push(e.key),Ge(o,t,n)}}catch(e){l.e(e)}finally{l.f()}}}else{var a,i=$(A.options);try{for(i.s();!(a=i.n()).done;){Ge(a.value,[],n)}}catch(e){i.e(e)}finally{i.f()}}},Qe=function(e){if(e.length>0){var t,n=Z({},z||{}),r=$(e);try{for(r.s();!(t=r.n()).done;){n[t.value]=!0}}catch(e){r.e(e)}finally{r.f()}q(n)}};e.useImperativeHandle(N,(function(){return{props:A,clear:De,show:Ne,hide:ke,focus:function(){return O.focus(re.current)},getElement:function(){return ee.current}}})),e.useEffect((function(){w.combinedRefs(re,A.inputRef)}),[re,A.inputRef]),s((function(){We(),se.current=S()+"_list",A.autoFocus&&O.focus(re.current,A.autoFocus),ze()})),p((function(){L&&A.filter&&ze()})),p((function(){We()}),[A.options]),p((function(){ue.current&&L&&(ue.current=!1,Ye())}),[L]),p((function(){L&&z&&ze()}),[z]),p((function(){L&&(oe.current||We(),oe.current=!1)}),[A.value]),f((function(){x.clear(te.current)}));var et,tt,nt=function(){if(A.filter){var t=A.onFilterValueChange?A.filterValue:Y;t=w.isNotEmpty(t)?t:"";var n=k({className:Ee("filterContainer")},he("filterContainer")),r=k({ref:ne,type:"text",value:t,autoComplete:"off",className:Ee("filter"),placeholder:A.filterPlaceholder,onKeyDown:function(e){return Ve(e,!1)},onChange:Xe,disabled:A.disabled},he("filter")),l=k({className:Ee("filterIcon")},he("filterIcon")),o=I.getJSXIcon(A.filterIcon||e.createElement(m,l),Z({},l),{props:A}),a=e.createElement("div",n,e.createElement("input",r),o);if(A.filterTemplate)a=w.getJSXElement(A.filterTemplate,{className:"p-treeselect-filter-container",element:a,filterOptions:we,filterInputKeyDown:function(e){return Ve(e,(function(){}))},filterInputChange:Xe,filterIconClassName:"p-dropdown-filter-icon",props:A});return e.createElement(e.Fragment,null,a)}},rt=function(){var e=[];if(w.isNotEmpty(A.value)&&A.options){var t=me?V({},"".concat(A.value),!0):Z({},A.value);$e(null,t,e)}return e}(),lt=U.getOtherProps(A),ot=w.reduceKeys(lt,O.ARIA_PROPS),at=k({ref:ie,role:"presentation",className:"p-hidden-accessible p-hidden-focusable",tabIndex:0,onFocus:function(e){var t=e.relatedTarget===re.current?O.getFirstFocusableElement(te.current,':not([data-p-hidden-focusable="true"])'):re.current;O.focus(t)},"aria-hidden":!0,"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0},he("firstHiddenFocusableElementOnOverlay")),it=k({ref:ce,role:"presentation",className:"p-hidden-accessible p-hidden-focusable",tabIndex:0,onFocus:function(e){var t=e.relatedTarget===re.current?O.getLastFocusableElement(te.current,':not([data-p-hidden-focusable="true"])'):re.current;O.focus(t)},"aria-hidden":!0,"data-p-hidden-accessible":!0,"data-p-hidden-focusable":!0},he("lastHiddenFocusableElementOnOverlay")),ct=k({ref:ee,className:E(A.className,Ee("root",{context:T,focusedState:R,overlayVisibleState:L,isValueEmpty:de})),style:A.style,onClick:function(e){A.disabled||te.current&&te.current.contains(e.target)||O.isAttributeEquals(e.target,"data-pc-section","closebutton")||(O.focus(re.current),L?ke():Ne())}},U.getOtherProps(A),he("root")),ut=(et=k({className:"p-hidden-accessible"},he("hiddenInputWrapper")),tt=k(Z({ref:re,role:"listbox",id:A.inputId,type:"text","aria-expanded":L,"aria-label":A.ariaLabel,"aria-labelledby":A.ariaLabelledBy,"aria-haspopup":"tree","aria-controls":se.current,onFocus:Ce,onBlur:Te,onKeyDown:Ke,disabled:A.disabled,tabIndex:A.tabIndex},ot),he("hiddenInput")),e.createElement("div",et,e.createElement("input",C({},tt,{readOnly:!0})))),st=function(){var t=k({className:Ee("token")},he("token")),n=k({className:Ee("tokenLabel")},he("tokenLabel")),r=k({className:Ee("labelContainer")},he("labelContainer")),l=k({className:Ee("label",{isValueEmpty:de,getLabel:Ie})},he("label")),o=null;return A.valueTemplate?o=w.getJSXElement(A.valueTemplate,rt,A):"comma"===A.display?o=Ie()||"empty":"chip"===A.display&&(o=e.createElement(e.Fragment,null,rt&&rt.map((function(r,l){return e.createElement("div",C({},t,{key:"".concat(r.key,"_").concat(l)}),e.createElement("span",n,r.label))})),de&&(A.placeholder||"empty"))),e.createElement("div",r,e.createElement("div",l,o))}(),pt=function(){var t=k({ref:le,className:Ee("trigger"),role:"button","aria-haspopup":"tree","aria-expanded":L},he("trigger")),n=k({className:Ee("triggerIcon")},he("triggerIcon")),r=I.getJSXIcon(A.dropdownIcon||e.createElement(d,n),Z({},n),{props:A});return e.createElement("div",t,r)}(),ft=function(){if(null!=A.value&&A.showClear&&!A.disabled){var t=k({className:Ee("clearIcon"),onPointerUp:De,tabIndex:A.tabIndex||"0",onKeyDown:Pe,"aria-label":r("clear")},he("clearIcon"));return I.getJSXIcon(A.clearIcon||e.createElement(y,t),Z({},t),{props:A})}return null}(),dt=e.createElement(h,{ref:ae,id:se.current,emptyMessage:A.emptyMessage,expandedKeys:pe,filter:A.filter,filterBy:A.filterBy,filterDelay:A.filterDelay,filterLocale:A.filterLocale,filterMode:A.filterMode,filterPlaceholder:A.filterPlaceholder,filterValue:fe,metaKeySelection:A.metaKeySelection,nodeTemplate:A.nodeTemplate,onCollapse:A.onNodeCollapse,onExpand:A.onNodeExpand,onFilterValueChange:Re,onNodeClick:A.onNodeClick,onNodeDoubleClick:A.onNodeDoubleClick,onSelect:Fe,onSelectionChange:je,onToggle:He,onUnselect:Ae,selectionKeys:A.value,selectionMode:A.selectionMode,showHeader:!1,togglerTemplate:A.togglerTemplate,value:A.options,pt:he("tree"),__parentMetadata:{parent:be}}),mt=function(){var t=nt(),n=k({className:Ee("closeIcon"),"aria-hidden":!0},he("closeIcon")),r=I.getJSXIcon(A.closeIcon||e.createElement(y,n),Z({},n),{props:A}),o=k({type:"button",className:Ee("closeButton"),onKeyDown:function(e){return Ve(e,!0)},onClick:ke,"aria-label":l("close")},he("closeButton")),a=k({className:Ee("header")},he("header")),i=e.createElement("button",o,r,e.createElement(b,null)),c=e.createElement("div",a,t,i);return A.panelHeaderTemplate?e.createElement("div",null,c,w.getJSXElement(A.panelHeaderTemplate,{className:"p-treeselect-header",filterElement:t,closeElement:i,closeElementClassName:"p-treeselect-close p-link",closeIconClassName:"p-treeselect-close-icon",onCloseClick:ke,element:c,props:A})):c}(),yt=w.getJSXElement(A.panelFooterTemplate,A);return e.createElement("div",ct,ut,st,ft,pt,e.createElement(_,{hostName:"TreeSelect",ref:te,appendTo:A.appendTo,panelStyle:A.panelStyle,panelClassName:A.panelClassName,scrollHeight:A.scrollHeight,onClick:function(e){v.emit("overlay-click",{originalEvent:e,target:ee.current})},header:mt,hide:ke,footer:yt,firstHiddenFocusableElementOnOverlay:e.createElement("span",at),lastHiddenFocusableElementOnOverlay:e.createElement("span",it),transitionOptions:A.transitionOptions,in:L,onEnter:function(){x.set("overlay",te.current,T&&T.autoZIndex||t.autoZIndex,T&&T.zIndex.overlay||t.zIndex.overlay),O.addStyles(te.current,{position:"absolute",top:"0",left:"0"}),Ye(),ze(),Ze()},onEntered:function(){Se(),A.filter&&A.filterInputAutoFocus&&O.focus(ne.current,A.filterInputAutoFocus),A.onShow&&A.onShow()},onExit:function(){xe()},onExited:function(){A.filter&&A.resetFilterOnHide&&_e(),x.clear(te.current),A.onHide&&A.onHide()},ptm:he,cx:Ee},dt),ve&&e.createElement(g,C({target:ee,content:A.tooltip,pt:he("tooltip")},A.tooltipOptions)))})));Y.displayName="TreeSelect";export{Y as TreeSelect};