import*as e from"react";import n,{PrimeReactContext as t,localeOption as r}from"primereact/api";import{ComponentBase as o,useHandleStyle as a}from"primereact/componentbase";import{CSSTransition as l}from"primereact/csstransition";import{useMergeProps as i,useMountEffect as c,useUpdateEffect as s,useOverlayListener as u,useDisplayOrder as p,useGlobalOnEscapeKey as d,ESC_KEY_HANDLING_PRIORITIES as f,useUnmountEffect as m}from"primereact/hooks";import{ChevronDownIcon as v}from"primereact/icons/chevrondown";import{SpinnerIcon as b}from"primereact/icons/spinner";import{TimesIcon as y}from"primereact/icons/times";import{OverlayService as h}from"primereact/overlayservice";import{Portal as g}from"primereact/portal";import{classNames as w,DomHandler as S,ObjectUtils as O,IconUtils as E,UniqueComponentId as x,ZIndexUtils as I}from"primereact/utils";import{AngleRightIcon as P}from"primereact/icons/angleright";import{Ripple as C}from"primereact/ripple";function j(){return j=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);t .p-cascadeselect-sublist-wrapper {\n display: block;\n left: 100%;\n top: 0;\n }\n .p-cascadeselect-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n right: 3rem;\n }\n}\n"}});function F(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 K(e){for(var n=1;no.width-S.calculateScrollbarWidth()&&(u.current.parentElement.style.left="-100%"))})),s((function(){n.parentActive||l(null)}),[n.parentActive]);var k,A,L,R,T=function(t){if(D(t)&&a===t){var r=O.resolveFieldData(t,n.optionGroupChildren[n.level]),o=a===t,l=n.level+1;return e.createElement(_,{hostName:n.hostName,options:r,className:f("sublist"),selectionPath:n.selectionPath,optionLabel:n.optionLabel,optionValue:n.optionValue,level:l,onOptionSelect:v,onOptionGroupSelect:x,parentActive:o,optionGroupLabel:n.optionGroupLabel,optionGroupChildren:n.optionGroupChildren,dirty:n.dirty,template:n.template,onPanelHide:n.onPanelHide,ptm:d,cx:f})}return null},H=function(t,o){var l=T(t),i=r({className:f("text")},m("text")),c=n.template?O.getJSXElement(n.template,G(t)):e.createElement("span",i,N(t)),s=r({className:f("optionGroupIcon")},m("optionGroupIcon")),u=n.optionGroupIcon||e.createElement(P,s),p=D(t)&&E.getJSXIcon(u,K({},s),{props:n}),d=N(t)+"_"+o,v=r({className:f("content"),onClick:function(e){return g(e,t)},tabIndex:0,onKeyDown:function(e){return b(e,t)}},m("content")),y=a===t,h=D(t),S=r({className:w(t.className,f("item",{option:t,isGroup:h,isSelected:y})),style:t.style,role:"none","data-p-item-group":h,"data-p-highlight":y},m("item",{selected:y,group:h}));return e.createElement("li",j({key:d},S),e.createElement("div",v,c,p,e.createElement(C,null)),l)},V=(k=r({ref:u,className:f(0===n.level?"list":"sublist",{context:p}),role:"listbox","aria-orientation":"horizontal"},m(0===n.level?"list":"sublist")),A=n.options?n.options.map(H):null,L=e.createElement("ul",k,A),R=r({className:f("sublistWrapper")},m("sublistWrapper")),0===n.level?L:e.createElement("div",R,L));return V}));function W(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=U(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 a,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw a}}}}function U(e,n){if(e){if("string"==typeof e)return J(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)?J(e,n):void 0}}function J(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t ul {\n max-height: ").concat(D.scrollHeight,";\n overflow: ").concat(D.scrollHeight?"auto":"",";\n }\n\n .p-cascadeselect-panel[").concat(e,"] .p-cascadeselect-sublist-wrapper {\n position:relative;\n left:0 !important;\n }\n\n .p-cascadeselect-panel[").concat(e,"] .p-cascadeselect-sublist {\n overflow: hidden !important;\n }\n\n .p-cascadeselect-panel[").concat(e,"] .p-cascadeselect-item-active .p-cascadeselect-sublist {\n left: 0;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-cascadeselect-panel[").concat(e,'] .p-cascadeselect-group-icon:before {\n content: "\\e930";\n }\n}\n');Y.current.innerHTML=t}},Ie=function(){Y.current=S.removeInlineStyle(Y.current)};e.useImperativeHandle(P,(function(){return{props:D,getElement:function(){return z.current},getOverlay:function(){return Z.current},getInput:function(){return $.current},getLabel:function(){return q.current},focus:function(){return S.focus($.current)}}})),c((function(){D.breakpoint&&!F&&K(x()),D.autoFocus&&S.focus($.current,D.autoFocus),Ee()})),e.useEffect((function(){O.combinedRefs($,D.inputRef)}),[$,D.inputRef]),s((function(){de()}),[D.value]),m((function(){I.clear(Z.current)}));var Pe=function(e){D.onChange&&(ne.current=!0,D.onChange({originalEvent:e,value:void 0,stopPropagation:function(){null==e||e.stopPropagation()},preventDefault:function(){null==e||e.preventDefault()},target:{name:D.name,id:D.id,value:void 0}}))},Ce=function(e){"Enter"!==e.key&&"Space"!==e.code||(Pe(e),e.preventDefault())},je=function(){if(null!=D.value&&D.showClear&&!D.disabled){var n=C({className:M("clearIcon"),onPointerUp:Pe,tabIndex:D.tabIndex||"0",onKeyDown:Ce,"aria-label":r("clear")},J("clearIcon"));return E.getJSXIcon(D.clearIcon||e.createElement(y,n),X({},n),{props:D})}return null},Ge=function(){var n=C({className:M("dropdownIcon")},J("dropdownIcon")),t=E.getJSXIcon(D.dropdownIcon||e.createElement(v,n),X({},n),{props:D}),r=C({className:M("dropdownButton"),role:"button","aria-haspopup":"listbox","aria-expanded":R},J("dropdownButton"));return e.createElement("div",r,t)},De=C({className:M("wrapper")},J("wrapper")),Ne=C({ref:Z,className:w(D.panelClassName,M("panel")),style:D.panelStyle,onClick:function(e){h.emit("overlay-click",{originalEvent:e,target:z.current})}},J("panel")),ke=function(){var n=C({classNames:M("transition"),in:R,timeout:{enter:120,exit:100},options:D.transitionOptions,unmountOnExit:!0,onEnter:ge,onEntered:we,onExit:Se,onExited:Oe},J("transition")),t=e.createElement(l,j({nodeRef:Z},n),e.createElement("div",Ne,e.createElement("div",De,e.createElement(_,{hostName:"CascadeSelect",options:D.options,selectionPath:ee.current,optionGroupIcon:D.optionGroupIcon,optionLabel:D.optionLabel,optionValue:D.optionValue,parentActive:null!=D.value,level:0,optionGroupLabel:D.optionGroupLabel,optionGroupChildren:D.optionGroupChildren,onOptionSelect:le,onOptionGroupSelect:ie,root:!0,template:D.itemTemplate,onPanelHide:he,ptm:J,cx:M}))));return e.createElement(g,{element:t,appendTo:D.appendTo})},Ae=V.getOtherProps(D);O.reduceKeys(Ae,S.DATA_PROPS);var Le,Re,Te,He,Be,Ve,Fe,Ke,_e,We,Ue,Je,Me,Xe,ze=O.reduceKeys(Ae,S.ARIA_PROPS);return Le=D.value?ce(D.value):void 0,Re=C({className:"p-hidden-accessible"},J("hiddenSelectedMessage")),Te=C(X({ref:$,type:"text",id:D.inputId,name:D.name,defaultValue:Le,readOnly:!0,disabled:D.disabled,onFocus:me,onBlur:ve,onKeyDown:function(e){return be(e)},tabIndex:D.tabIndex,"aria-haspopup":"listbox"},ze),J("input")),_e=e.createElement("div",Re,e.createElement("input",Te)),He=D.value?ce(D.value):D.placeholder||"p-emptylabel",Be=C({ref:q,className:M("label",{label:He})},J("label",{context:X({label:He},G)})),We=e.createElement("span",Be,He),Ue=je(),Je=D.loading?(Ve=C({className:M("loadingIcon")},J("loadingIcon")),Fe=E.getJSXIcon(D.loadingIcon||e.createElement(b,{spin:!0}),X({},Ve),{props:D}),Ke=C({className:M("loadingButton"),role:"button","aria-haspopup":"listbox","aria-expanded":R},J("dropdownButton")),e.createElement("div",Ke,Fe)):Ge(),Me=ke(),Xe=C({id:D.id,ref:z,className:w(D.className,M("root",{focusedState:k,overlayVisibleState:R,context:G})),style:D.style,onClick:function(e){return n=e,void(D.disabled||D.loading||Z.current&&Z.current.contains(n.target)||(S.focus($.current),R?he():ye()));var n}},Ae,J("root")),e.createElement("div",Xe,_e,We,Ue,Je,Me)})));z.displayName="CascadeSelect";export{z as CascadeSelect};