carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 2.84 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("react-transition-group"),n=require("./picklist-item.style.js"),i=require("../__internal__/duelling-picklist.context.js"),o=require("../../../__internal__/utils/helpers/events/events.js");function l(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const c=l(t).default.forwardRef(((l,c)=>{var{children:u,type:a,onChange:p,item:d,locked:f,tooltipMessage:y="This item is locked and can not be moved",index:b,listIndex:m,groupIndex:O,isLastGroup:j,isLastItem:g}=l,k=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(l,["children","type","onChange","item","locked","tooltipMessage","index","listIndex","groupIndex","isLastGroup","isLastItem"]);const{setElementToFocus:x}=t.useContext(i.default),v=t.useRef(null),P=t.useCallback((()=>g?{itemIndex:j?0:0===O&&0!==b?1:O,list:j?0===m?1:0:m,group:void 0}:{itemIndex:b,list:m,group:O}),[O,b,j,g,m]),h=t.useCallback((()=>{const{itemIndex:e,list:t,group:r}=P();x(e,t,r)}),[P,x]),I=t.useCallback((()=>{p(d),h()}),[p,d,h]),w=t.useCallback((e=>{(o.default.isEnterKey(e)||o.default.isSpaceKey(e))&&(e.preventDefault(),p(d),h())}),[p,d,h]);return e.jsx(r.CSSTransition,(S=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}({timeout:{appear:500,enter:300,exit:0},classNames:"picklist-item"},k,"add"===a?{enter:!1}:{}),_=null!=(_={nodeRef:v,children:e.jsxs(n.StyledPicklistItem,{onKeyDown:w,"data-element":"picklist-item",locked:f,ref:v,children:[u,!f&&e.jsx(n.StyledButton,{"data-role":"picklist-item-button",buttonType:"primary",destructive:"remove"===a,iconType:a,onClick:I,ref:c}),f&&e.jsx(n.StyledLockIcon,{type:"locked",tooltipMessage:y})]})})?_:{},Object.getOwnPropertyDescriptors?Object.defineProperties(S,Object.getOwnPropertyDescriptors(_)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(_)).forEach((function(e){Object.defineProperty(S,e,Object.getOwnPropertyDescriptor(_,e))})),S));var S,_}));c.displayName="PicklistItem",exports.PicklistItem=c,exports.default=c;