UNPKG

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) 11.6 kB
this.primereact=this.primereact||{},this.primereact.cascadeselect=function(e,t,n,r,l,a,o,i,c){"use strict";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 r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var p=s(t),d=u(n);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function m(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 r,l,a=[],o=!0,i=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,l=e}finally{try{o||null==n.return||n.return()}finally{if(i)throw l}}return a}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}function y(){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 g(e,t){return m(e)||v(e,t)||h(e,t)||y()}var O=p.memo((function(e){var t=g(p.useState(null),2),n=t[0],r=t[1],a=p.useRef(null),o=function(t){e.onOptionSelect&&e.onOptionSelect(t)},u=function(t,l){var a=t.currentTarget.parentElement;switch(t.key){case"Down":case"ArrowDown":var o=s(a);o&&o.children[0].focus();break;case"Up":case"ArrowUp":var i=d(a);i&&i.children[0].focus();break;case"Right":case"ArrowRight":h(l)&&(n===l?a.children[1].children[0].children[0].focus():r(l));break;case"Left":case"ArrowLeft":r(null);var c=t.currentTarget.parentElement.parentElement.previousElementSibling;c&&c.focus();break;case"Enter":f(t,l);break;case"Tab":case"Escape":e.onPanelHide&&(e.onPanelHide(),t.preventDefault())}t.preventDefault()},s=function e(t){var n=t.nextElementSibling;return n?i.DomHandler.hasClass(n,"p-disabled")||!i.DomHandler.hasClass(n,"p-cascadeselect-item")?e(n):n:null},d=function e(t){var n=t.previousElementSibling;return n?i.DomHandler.hasClass(n,"p-disabled")||!i.DomHandler.hasClass(n,"p-cascadeselect-item")?e(n):n:null},f=function(t,n){h(n)?(r((function(e){return e===n?null:n})),e.onOptionGroupSelect&&e.onOptionGroupSelect({originalEvent:t,value:n})):e.onOptionSelect&&e.onOptionSelect({originalEvent:t,value:b(n)})},m=function(t){e.onOptionGroupSelect&&e.onOptionGroupSelect(t)},v=function(t){return e.optionLabel?i.ObjectUtils.resolveFieldData(t,e.optionLabel):t},b=function(t){return e.optionValue?i.ObjectUtils.resolveFieldData(t,e.optionValue):t},h=function(t){return Object.prototype.hasOwnProperty.call(t,e.optionGroupChildren[e.level])},y=function(t){return h(t)?(n=t,e.optionGroupLabel?i.ObjectUtils.resolveFieldData(n,e.optionGroupLabel):null):v(t);var n};l.useMountEffect((function(){if(e.selectionPath&&e.options&&!e.dirty){var t=e.options.find((function(t){return e.selectionPath.includes(t)}));t&&r(t)}var n,l,o,c,u;e.root||(l=i.DomHandler.getOffset(n=a.current.parentElement),o=i.DomHandler.getViewport(),c=a.current.offsetParent?a.current.offsetWidth:i.DomHandler.getHiddenElementOuterWidth(element),u=i.DomHandler.getOuterWidth(n.children[0]),parseInt(l.left,10)+u+c>o.width-i.DomHandler.calculateScrollbarWidth()&&(a.current.style.left="-100%"))})),l.useUpdateEffect((function(){r(null)}),[e.parentActive]);var E=function(t){if(h(t)&&n===t){var r=i.ObjectUtils.resolveFieldData(t,e.optionGroupChildren[e.level]);return p.createElement(O,{options:r,className:"p-cascadeselect-sublist",selectionPath:e.selectionPath,optionLabel:e.optionLabel,optionValue:e.optionValue,level:e.level+1,onOptionSelect:o,onOptionGroupSelect:m,parentActive:n===t,optionGroupLabel:e.optionGroupLabel,optionGroupChildren:e.optionGroupChildren,dirty:e.dirty,template:e.template,onPanelHide:e.onPanelHide})}return null},S=function(t,r){var l=i.classNames("p-cascadeselect-item",{"p-cascadeselect-item-group":h(t),"p-cascadeselect-item-active p-highlight":n===t},t.className),a=E(t),o=e.template?i.ObjectUtils.getJSXElement(e.template,b(t)):p.createElement("span",{className:"p-cascadeselect-item-text"},y(t)),s=h(t)&&p.createElement("span",{className:"p-cascadeselect-group-icon pi pi-angle-right"}),d=y(t)+"_"+r;return p.createElement("li",{key:d,className:l,style:t.style,role:"none"},p.createElement("div",{className:"p-cascadeselect-item-content",onClick:function(e){return f(e,t)},tabIndex:0,onKeyDown:function(e){return u(e,t)}},o,s,p.createElement(c.Ripple,null)),a)},w=i.classNames("p-cascadeselect-panel p-cascadeselect-items",e.className),D=e.options?e.options.map(S):null;return p.createElement("ul",{ref:a,className:w,role:"listbox","aria-orientation":"horizontal"},D)}));function E(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=S(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,l=function(){};return{s:l,n:function(){return r>=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 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 S(e,t){if(e){if("string"==typeof e)return w(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)?w(e,t):void 0}}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var D=p.memo(p.forwardRef((function(e,t){var n=g(p.useState(!1),2),c=n[0],u=n[1],s=g(p.useState(!1),2),m=s[0],v=s[1],b=p.useRef(null),h=p.useRef(null),y=p.useRef(null),S=p.useRef(null),w=p.useRef(!1),j=p.useRef(null),H=g(l.useOverlayListener({target:b,overlay:h,listener:function(e,t){t.valid&&K()},when:m}),2),C=H[0],G=H[1],N=function(t){e.onChange&&e.onChange({originalEvent:t,value:t.value}),L(),K(),i.DomHandler.focus(y.current)},P=function(t){w.current=!0,e.onGroupChange&&e.onGroupChange(t)},I=function(t){return(e.optionLabel?i.ObjectUtils.resolveFieldData(t,e.optionLabel):t)||t},U=function(t){return e.optionValue?i.ObjectUtils.resolveFieldData(t,e.optionValue):t},x=function(t,n){return i.ObjectUtils.resolveFieldData(t,e.optionGroupChildren[n])},A=function(t,n){return Object.prototype.hasOwnProperty.call(t,e.optionGroupChildren[n])},L=function(){var t;if(null!=e.value&&e.options){var n,r=E(e.options);try{for(r.s();!(n=r.n()).done;){if(t=R(n.value,0))break}}catch(e){r.e(e)}finally{r.f()}}j.current=t},R=function t(n,r){if(A(n,r)){var l,a,o=E(x(n,r));try{for(o.s();!(a=o.n()).done;){if(l=t(a.value,r+1))return l.unshift(n),l}}catch(e){o.e(e)}finally{o.f()}}else if(i.ObjectUtils.equals(e.value,U(n),e.dataKey))return[n];return null},k=function(t){e.disabled||h.current&&h.current.contains(t.target)||(i.DomHandler.focus(y.current),m?K():F())},T=function(){u(!0)},V=function(){u(!1)},_=function(t){switch(t.which){case 40:m?i.DomHandler.findSingle(h.current,".p-cascadeselect-item").children[0].focus():t.altKey&&e.options&&e.options.length&&F(),t.preventDefault();break;case 32:m?K():F(),t.preventDefault();break;case 9:K()}},B=function(e){a.OverlayService.emit("overlay-click",{originalEvent:e,target:b.current})},F=function(){e.onBeforeShow&&e.onBeforeShow(),v(!0)},K=function(){e.onBeforeHide&&e.onBeforeHide(),v(!1),i.DomHandler.focus(y.current)},M=function(){i.ZIndexUtils.set("overlay",h.current,d.default.autoZIndex,d.default.zIndex.overlay),$()},W=function(){C(),e.onShow&&e.onShow()},Z=function(){G(),w.current=!1},z=function(){i.ZIndexUtils.clear(h.current),e.onHide&&e.onHide()},$=function(){i.DomHandler.alignOverlay(h.current,S.current.parentElement,e.appendTo||d.default.appendTo)};p.useImperativeHandle(t,(function(){return{props:e,getElement:function(){return b.current},getOverlay:function(){return h.current},getInput:function(){return y.current},getLabel:function(){return S.current}}})),p.useEffect((function(){i.ObjectUtils.combinedRefs(y,e.inputRef)}),[y,e.inputRef]),l.useUpdateEffect((function(){L()}),[e.value]),l.useUnmountEffect((function(){i.ZIndexUtils.clear(h.current)}));var q=i.ObjectUtils.findDiffKeys(e,D.defaultProps);i.ObjectUtils.reduceKeys(q,i.DomHandler.DATA_PROPS);var J,X,Y,Q,ee,te,ne,re,le,ae=i.ObjectUtils.reduceKeys(q,i.DomHandler.ARIA_PROPS);return ee=i.classNames("p-cascadeselect p-component p-inputwrapper",{"p-disabled":e.disabled,"p-focus":c,"p-inputwrapper-filled":e.value,"p-inputwrapper-focus":c||m},e.className),J=e.value?I(e.value):void 0,te=p.createElement("div",{className:"p-hidden-accessible"},p.createElement("input",f({ref:y,type:"text",id:e.inputId,name:e.name,defaultValue:J,readOnly:!0,disabled:e.disabled,onFocus:T,onBlur:V,onKeyDown:_,tabIndex:e.tabIndex,"aria-haspopup":"listbox"},ae))),X=e.value?I(e.value):e.placeholder||"p-emptylabel",Y=i.classNames("p-cascadeselect-label ",{"p-placeholder":X===e.placeholder,"p-cascadeselect-label-empty":!e.value&&"p-emptylabel"===X}),ne=p.createElement("span",{ref:S,className:Y},X),Q=i.classNames("p-cascadeselect-trigger-icon",e.dropdownIcon),re=p.createElement("div",{className:"p-cascadeselect-trigger",role:"button","aria-haspopup":"listbox","aria-expanded":m},p.createElement("span",{className:Q})),le=p.createElement(o.Portal,{element:p.createElement(r.CSSTransition,{nodeRef:h,classNames:"p-connected-overlay",in:m,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:M,onEntered:W,onExit:Z,onExited:z},p.createElement("div",{ref:h,className:"p-cascadeselect-panel p-component",onClick:B},p.createElement("div",{className:"p-cascadeselect-items-wrapper"},p.createElement(O,{options:e.options,selectionPath:j.current,className:"p-cascadeselect-items",optionLabel:e.optionLabel,optionValue:e.optionValue,level:0,optionGroupLabel:e.optionGroupLabel,optionGroupChildren:e.optionGroupChildren,onOptionSelect:N,onOptionGroupSelect:P,root:!0,template:e.itemTemplate,onPanelHide:K})))),appendTo:e.appendTo}),p.createElement("div",f({ref:b,id:e.id,className:ee,style:e.style},q,{onClick:k}),te,ne,re,le)})));return D.displayName="CascadeSelect",D.defaultProps={__TYPE:"CascadeSelect",id:null,inputRef:null,style:null,className:null,value:null,name:null,options:null,optionLabel:null,optionValue:null,optionGroupLabel:null,optionGroupChildren:null,placeholder:null,itemTemplate:null,disabled:!1,dataKey:null,inputId:null,tabIndex:null,ariaLabelledBy:null,appendTo:null,transitionOptions:null,dropdownIcon:"pi pi-chevron-down",onChange:null,onGroupChange:null,onBeforeShow:null,onBeforeHide:null,onShow:null,onHide:null},e.CascadeSelect=D,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.csstransition,primereact.hooks,primereact.overlayservice,primereact.portal,primereact.utils,primereact.ripple);