UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ 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) 15.8 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/utils"),l=require("primereact/button"),i=require("primereact/ripple");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 c=o(e),s=a(t);function u(){return u=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},u.apply(this,arguments)}function p(e){if(Array.isArray(e))return e}function f(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,i,a,o=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);c=!0);}catch(e){s=!0,l=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw l}}return o}}function m(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 d(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}function g(){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 v(e,t){return p(e)||f(e,t)||d(e,t)||g()}var b={defaultProps:{__TYPE:"PickList",id:null,source:null,target:null,sourceHeader:null,targetHeader:null,style:null,className:null,sourceStyle:null,targetStyle:null,sourceSelection:null,targetSelection:null,showSourceControls:!0,showTargetControls:!0,metaKeySelection:!0,filter:!1,filterBy:null,filterMatchMode:"contains",filterLocale:void 0,sourceFilterValue:null,targetFilterValue:null,showSourceFilter:!0,showTargetFilter:!0,sourceFilterPlaceholder:null,targetFilterPlaceholder:null,sourceFilterTemplate:null,targetFilterTemplate:null,tabIndex:0,dataKey:null,breakpoint:"960px",itemTemplate:null,sourceItemTemplate:null,targetItemTemplate:null,onChange:null,onMoveToSource:null,onMoveAllToSource:null,onMoveToTarget:null,onMoveAllToTarget:null,onSourceSelectionChange:null,onTargetSelectionChange:null,onSourceFilterChange:null,onTargetFilterChange:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,b.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,b.defaultProps)}};function y(e){if(Array.isArray(e))return m(e)}function h(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function S(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(e){return y(e)||h(e)||d(e)||S()}var T=c.memo((function(e){var t=!e.selection||!e.selection.length,n=r.classNames("p-picklist-buttons",e.className);return c.createElement("div",{className:n},c.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-up",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=E(e.list),i=0;i<n.length;i++){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(0===a)break;var o=l[a-1];l[a-1]=l[a],l[a]=o}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"up"})}}}),c.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-up",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=E(e.list),i=0;i<n.length;i++){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(0===a)break;var o=l.splice(a,1)[0];l.unshift(o)}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"top"})}}}),c.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-down",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=E(e.list),i=n.length-1;i>=0;i--){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(a===l.length-1)break;var o=l[a+1];l[a+1]=l[a],l[a]=o}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"down"})}}}),c.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-double-down",onClick:function(t){var n=e.selection;if(n&&n.length){for(var l=E(e.list),i=n.length-1;i>=0;i--){var a=r.ObjectUtils.findIndexInList(n[i],l,e.dataKey);if(a===l.length-1)break;var o=l.splice(a,1)[0];l.push(o)}e.onReorder&&e.onReorder({originalEvent:t,value:l,direction:"bottom"})}}}))}));T.displayName="PickListControls";var k=c.memo((function(e){var t=e.template?e.template(e.value):e.value,n=r.classNames("p-picklist-item",{"p-highlight":e.selected},e.className);return c.createElement("li",{className:n,onClick:function(t){e.onClick&&e.onClick({originalEvent:t,value:e.value})},onKeyDown:function(t){e.onKeyDown&&e.onKeyDown({originalEvent:t,value:e.value})},tabIndex:e.tabIndex,role:"option","aria-selected":e.selected},t,c.createElement(i.Ripple,null))}));k.displayName="PickListItem";var C=c.memo(c.forwardRef((function(e,t){var n=c.useRef(null),l=function(t){var n=t.originalEvent,l=t.value,i=E(e.selection),a=r.ObjectUtils.findIndexInList(l,i,e.dataKey),o=-1!==a;if(e.metaKeySelection){var c=n.metaKey||n.ctrlKey;o&&c?i.splice(a,1):(c||(i.length=0),i.push(l))}else o?i.splice(a,1):i.push(l);e.onSelectionChange&&e.onSelectionChange({event:n,value:i})},i=function(e){var t=e.originalEvent,n=t.currentTarget;switch(t.which){case 40:var r=a(n);r&&r.focus(),t.preventDefault();break;case 38:var i=o(n);i&&i.focus(),t.preventDefault();break;case 13:l(e),t.preventDefault()}},a=function e(t){var n=t.nextElementSibling;return n?r.DomHandler.hasClass(n,"p-picklist-item")?n:e(n):null},o=function e(t){var n=t.previousElementSibling;return n?r.DomHandler.hasClass(n,"p-picklist-item")?n:e(n):null},s=function(t){return-1!==r.ObjectUtils.findIndexInList(t,e.selection,e.dataKey)},u=function(t){e.onFilter&&e.onFilter({originalEvent:t,value:t.target.value,type:e.type})},p=function(e){13===e.which&&e.preventDefault()};c.useImperativeHandle(t,(function(){return{listElementRef:n}}));var f=r.classNames("p-picklist-list-wrapper",e.className),m=e.header?c.createElement("div",{className:"p-picklist-header"},r.ObjectUtils.getJSXElement(e.header,e)):null,d=function(){if(e.showFilter){var t=c.createElement("div",{className:"p-picklist-filter"},c.createElement("input",{type:"text",value:e.filterValue,onChange:u,onKeyDown:p,placeholder:e.placeholder,className:"p-picklist-filter-input p-inputtext p-component"}),c.createElement("span",{className:"p-picklist-filter-icon pi pi-search"}));if(e.filterTemplate)t=r.ObjectUtils.getJSXElement(e.filterTemplate,{className:"p-picklist-filter",inputProps:{className:"p-picklist-filter-input p-inputtext p-component",onChange:u,onKeyDown:p},iconClassName:"p-picklist-filter-icon pi pi-search",element:t,props:e});return c.createElement("div",{className:"p-picklist-filter-container"},t)}return null}(),g=function(){var t=e.list?e.list.map((function(t){var n=JSON.stringify(t),r=s(t);return c.createElement(k,{key:n,value:t,template:e.itemTemplate,selected:r,onClick:l,onKeyDown:i,tabIndex:e.tabIndex})})):null,n=r.classNames("p-picklist-list",e.listClassName);return c.createElement("ul",{className:n,style:e.style,role:"listbox","aria-multiselectable":!0},t)}();return c.createElement("div",{ref:n,className:f},m,d,g)})));C.displayName="PickListSubList";var I=c.memo((function(e){var t=r.ObjectUtils.isEmpty(e.sourceSelection)||r.ObjectUtils.isEmpty(e.visibleSourceList),n=r.ObjectUtils.isEmpty(e.targetSelection)||r.ObjectUtils.isEmpty(e.visibleTargetList),i=r.ObjectUtils.isEmpty(e.visibleSourceList),a=r.ObjectUtils.isEmpty(e.visibleTargetList),o=r.classNames("p-picklist-buttons p-picklist-transfer-buttons",e.className);return c.createElement("div",{className:o},c.createElement(l.Button,{disabled:t,type:"button",icon:"pi pi-angle-right",onClick:function(t){var n=e.sourceSelection;if(r.ObjectUtils.isNotEmpty(n)){for(var l=E(e.target),i=E(e.source),a=0;a<n.length;a++){var o=n[a];-1===r.ObjectUtils.findIndexInList(o,l,e.dataKey)&&l.push(i.splice(r.ObjectUtils.findIndexInList(o,i,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:i,target:l,direction:"toTarget"})}}}),c.createElement(l.Button,{disabled:i,type:"button",icon:"pi pi-angle-double-right",onClick:function(t){if(e.source){var n=[].concat(E(e.target),E(e.visibleSourceList)),r=e.source.filter((function(t){return!e.visibleSourceList.some((function(e){return e===t}))}));e.onTransfer&&e.onTransfer({originalEvent:t,source:r,target:n,direction:"allToTarget"})}}}),c.createElement(l.Button,{disabled:n,type:"button",icon:"pi pi-angle-left",onClick:function(t){var n=e.targetSelection;if(r.ObjectUtils.isNotEmpty(n)){for(var l=E(e.target),i=E(e.source),a=0;a<n.length;a++){var o=n[a];-1===r.ObjectUtils.findIndexInList(o,i,e.dataKey)&&i.push(l.splice(r.ObjectUtils.findIndexInList(o,l,e.dataKey),1)[0])}e.onTransfer&&e.onTransfer({originalEvent:t,source:i,target:l,direction:"toSource"})}}}),c.createElement(l.Button,{disabled:a,type:"button",icon:"pi pi-angle-double-left",onClick:function(t){if(e.source){var n=[].concat(E(e.source),E(e.visibleTargetList)),r=e.target.filter((function(t){return!e.visibleTargetList.some((function(e){return e===t}))}));e.onTransfer&&e.onTransfer({originalEvent:t,source:n,target:r,direction:"allToSource"})}}}))}));I.displayName="PickListTransferControls";var N=c.memo(c.forwardRef((function(e,l){var i=b.getProps(e),a=v(c.useState([]),2),o=a[0],p=a[1],f=v(c.useState([]),2),m=f[0],d=f[1],g=v(c.useState(""),2),y=g[0],h=g[1],S=v(c.useState(""),2),E=S[0],k=S[1],N=v(c.useState(null),2),O=N[0],w=N[1],j=c.useRef(null),L=c.useRef(null),K=c.useRef(null),x=c.useRef(null),U=c.useRef(null),F=c.useRef(null),P=i.sourceSelection?i.sourceSelection:o,R=i.targetSelection?i.targetSelection:m,M=i.onSourceFilterChange?i.sourceFilterValue:y,D=i.onTargetFilterChange?i.targetFilterValue:E,A=r.ObjectUtils.isNotEmpty(i.filterBy),H=A&&i.showSourceFilter,B=A&&i.showTargetFilter,V=function(e,t){if(e){var n=r.DomHandler.findSingle(e,".p-picklist-list");switch(t){case"up":_(n,-1);break;case"top":n.scrollTop=0;break;case"down":_(n,1);break;case"bottom":setTimeout((function(){return n.scrollTop=n.scrollHeight}),100)}}},q=function(e,t,n){i.onChange&&i.onChange({originalEvent:e.originalEvent,source:t,target:n})},_=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getElementsByClassName("p-highlight");r.ObjectUtils.isNotEmpty(n)&&r.DomHandler.scrollInView(e,-1===t?n[0]:n[n.length-1])},J=function(e,t,n){"sourceSelection"===t?p(e.value):d(e.value),n&&n(e),r.ObjectUtils.isNotEmpty(P)&&"targetSelection"===t?p([]):r.ObjectUtils.isNotEmpty(R)&&"sourceSelection"===t&&d([])},X=function(e){var t=e.originalEvent,n=e.value,r=v("source"===e.type?[h,i.onSourceFilterChange]:[k,i.onTargetFilterChange],2),l=r[0],a=r[1];a?a({originalEvent:t,value:n}):l(n)},z=function(e,t){var n=v("source"===t?[M,Y]:[D,$],2),l=n[0],i=n[1];return A&&r.ObjectUtils.isNotEmpty(l)?i(l):e},Y=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim().toLocaleLowerCase(i.filterLocale);return G(i.source,e)},$=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim().toLocaleLowerCase(i.filterLocale);return G(i.target,e)},G=function(e,n){var r=A?i.filterBy.split(","):[];return t.FilterService.filter(e,r,n,i.filterMatchMode,i.filterLocale)},Q=function(){if(!F.current){F.current=r.DomHandler.createInlineStyle(s.default.nonce);var e="\n@media screen and (max-width: ".concat(i.breakpoint,") {\n .p-picklist[").concat(O,"] {\n flex-direction: column;\n }\n\n .p-picklist[").concat(O,"] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n\n .p-picklist[").concat(O,"] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n\n .p-picklist[").concat(O,"] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n\n .p-picklist[").concat(O,'] .pi-angle-right:before {\n content: "\\e930"\n }\n\n .p-picklist[').concat(O,'] .pi-angle-double-right:before {\n content: "\\e92c"\n }\n\n .p-picklist[').concat(O,'] .pi-angle-left:before {\n content: "\\e933"\n }\n\n .p-picklist[').concat(O,'] .pi-angle-double-left:before {\n content: "\\e92f"\n }\n}\n');F.current.innerHTML=e}};c.useImperativeHandle(l,(function(){return{props:i,getElement:function(){return j.current}}})),n.useMountEffect((function(){!O&&w(r.UniqueComponentId())})),n.useUpdateEffect((function(){return O&&(j.current.setAttribute(O,""),Q()),function(){F.current=r.DomHandler.removeInlineStyle(F.current)}}),[O,i.breakpoint]),n.useUpdateEffect((function(){x.current&&(V(x.current,U.current),x.current=null,U.current=null)}));var W=b.getOtherProps(i),Z=r.classNames("p-picklist p-component",i.className),ee=i.sourceItemTemplate?i.sourceItemTemplate:i.itemTemplate,te=i.targetItemTemplate?i.targetItemTemplate:i.itemTemplate,ne=z(i.source,"source"),re=z(i.target,"target");return c.createElement("div",u({id:i.id,ref:j,className:Z,style:i.style},W),i.showSourceControls&&c.createElement(T,{list:i.source,selection:P,onReorder:function(e){q(e,e.value,i.target),x.current=L.current.listElementRef.current,U.current=e.direction},className:"p-picklist-source-controls",dataKey:i.dataKey}),c.createElement(C,{ref:L,type:"source",list:ne,selection:P,onSelectionChange:function(e){return J(e,"sourceSelection",i.onSourceSelectionChange)},itemTemplate:ee,header:i.sourceHeader,style:i.sourceStyle,className:"p-picklist-source-wrapper",listClassName:"p-picklist-source",metaKeySelection:i.metaKeySelection,tabIndex:i.tabIndex,dataKey:i.dataKey,filterValue:M,onFilter:X,showFilter:H,placeholder:i.sourceFilterPlaceholder,template:i.sourceFilterTemplate}),c.createElement(I,{onTransfer:function(e){var t=e.originalEvent,n=e.source,r=e.target,l=[];switch(e.direction){case"toTarget":l=P,i.onMoveToTarget&&i.onMoveToTarget({originalEvent:t,value:l});break;case"allToTarget":l=i.source,i.onMoveAllToTarget&&i.onMoveAllToTarget({originalEvent:t,value:l});break;case"toSource":l=R,i.onMoveToSource&&i.onMoveToSource({originalEvent:t,value:l});break;case"allToSource":l=i.target,i.onMoveAllToSource&&i.onMoveAllToSource({originalEvent:t,value:l})}J({originalEvent:t,value:l},"sourceSelection",i.onSourceSelectionChange),J({originalEvent:t,value:l},"targetSelection",i.onTargetSelectionChange),q(e,n,r)},source:i.source,visibleSourceList:ne,target:i.target,visibleTargetList:re,sourceSelection:P,targetSelection:R,dataKey:i.dataKey}),c.createElement(C,{ref:K,type:"target",list:re,selection:R,onSelectionChange:function(e){return J(e,"targetSelection",i.onTargetSelectionChange)},itemTemplate:te,header:i.targetHeader,style:i.targetStyle,className:"p-picklist-target-wrapper",listClassName:"p-picklist-target",metaKeySelection:i.metaKeySelection,tabIndex:i.tabIndex,dataKey:i.dataKey,filterValue:D,onFilter:X,showFilter:B,placeholder:i.targetFilterPlaceholder,template:i.targetFilterTemplate}),i.showTargetControls&&c.createElement(T,{list:i.target,selection:R,onReorder:function(e){q(e,i.source,e.value),x.current=K.current.listElementRef.current,U.current=e.direction},className:"p-picklist-target-controls",dataKey:i.dataKey}))})));N.displayName="PickList",exports.PickList=N;