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